1. 趣味でOSSをやっている者だ
  2. 15: OSSは政治なのか?もしく..
2024-12-19 59:52

15: OSSは政治なのか?もしくはOSS開発者の憂鬱 (yusukebe)

spotify
  • 引き続きHonoの話
  • メジャーバージョンアップデートポリシー
  • OSSは政治なのか?
  • Honoのメンテナンス体制
  • CIでパフォーマンスを見る
  • Cloudflareこぼれ話

引き続きHonoの話

消極的理由によるメジャーバージョンアップデート

OSSは政治なのか?

Honoのメンテナンス体制

Cloudflareこぼれ話

サマリー

OSSの政治性について、開発者たちがどのようにガバナンスを行い、リーダーシップを発揮しているかが議論されています。また、フロントエンドライブラリの商業的な影響やその政治的側面についても触れられています。OSS開発におけるコミュニティの重要性と、貢献者との関係構築について語られています。意外にも、OSSが政治的な問題に悩まされることなく、自然に成功を収めることができることが示されています。本エピソードでは、OSS(オープンソースソフトウェア)の開発におけるドキュメント作成やコントリビューターとのコミュニケーションの重要性が議論されています。また、リファクタリングやテストの必要性、OSSコミュニティでの交流についても触れられています。OSSの開発におけるノイズやプルリクエストの影響について議論し、クラウドフレアの利用や新しいAI機能に目を向けています。特に、MCPプロトコルの活用によるアプリケーション開発の簡素化が話題となっています。このエピソードでは、OSSの影響や開発者の懸念について議論し、クラウドフレアの技術やデータセンターの仕組みがOSSに与える影響を探っています。

OSSの始まりと成長
はい、ということで、趣味でOSSをやっている者だ、は引き続き、yusukebeさんをゲストに迎えて、いろいろお話を伺っていこうと思います。よろしくお願いします。
よろしくお願いします。
前回に引き続き、ちょっと本の話をしていければと思ってるんですけど、
もともと結構、さっきも似たような話をしたけど、サービス開発者のイメージだったから、ライブラリフレームワーク作者としてここまでなるのがすごい意外だったんですけど、
もともとクラウドフレアワーカーズを使おうとして作り始めたみたいなふうに伺ってるんですけど、その時は何を作ろうとされてたんですか?
何だったっけな。もう手段が目的化して、目的すら忘れちゃってる気がする。
その前はね、普通にクラウドフレアは便利だなと思ってて、クラウドフレアワーカーズをいわゆるオリジンに対して、フロントでユーザーエージェントを見て、
デバイスがスマホなのかPCなのかって判断して、後ろ側にヘッダー付けて送るみたいなのを作ってて、これはクラウドフレアワーカーズ便利じゃんって思って、何か作ろうとしたんでしょうね。
だったら自分で作っちゃえと思って、あまり気に入るものがないから。で、作り出したって感じだね。
そしたらあれよあれよと、何か思いもよらぬ方向に転がり始めたみたいな感じですか。
ちょうど3年前の12月15日で、本当そのときは1日1コミとかPRかわかんないけど、1日1機能みたいな感じで、本当に1日1時間2時間をちょこちょこっと作って、毎日なんか結構楽しかったんだよね、それが。
それがもう突然、いやー何かどこまでいくのかなーって。
突然ってわけもないんでね、割とね徐々に成長していった感はある。
そうだよね、何か割と最初の方から、お、何かすごい勢いあるじゃんって思ったけど、それが結構その留まることを知らない感じがあるなーっていう風に。
俺も飽きるのかなと思ったけど飽きなかったね。
こういうのだと飽きがちじゃん。
そうだね、飽きそう。飽きないのって何でなの?
何でだろうね。クラウドフェアに入ってクラウドフェアの業務の一環としてやってるからかもしれない。義務感。
でもやりたいこととかはあるわけでしょ?
えっとね、でもね、最近そう結構やりきったからそんなに、そんなになんだ、すごい機能的な、本当に機能の実装って俺全然してなくて今。
ほとんどレビューか、レビューをしてるか、バグの修正しかやってない。
あとプロジェクト設定が間違ってるからですね、スターツとかなんかそんなことしかしてないです。
すごいなんか、プロダクトマネージャーみたいな感じになっている。
あんまりね、機能で追加したいのは結構、炎のコアではもう結構やりきってて、一個やりたいのは、でやってるんだけど、
そのいわゆるメタフレームワークっていって、ネクストJSとかリミックスとかスベルテとか、いろいろそのウェブのUIも含めてなんか作れますよってところに炎をなんかうまいこと差し込んで、
炎ってAPI作るの楽だから、たとえばSLA、APIっていうのを生やすのに便利な、ちょっとした炎を差し込むみたいなことをやりやすいようにして、
要はそういうメタフレームワークの中でも炎を使ってもらおうかなって思って、ちょっと仕掛けている。
なるほどなるほど。まあじゃあそういうのも、まあまだやっぱりやりたいことはあるって感じですかね。
そうね、あとはあれかんちゃうね、普通になんだろう、機能的なこともあるけど、なんだろう、でっかいリファクタリングじゃないけど、
なんかその、そうね、もうちょっとスッキリさせたいな、デザイン的にスッキリさせたいなみたいなちょっと、まああるっちゃあるね。
なるほど、まあでも確かにそういうところは逆に最初から、てか全体像を知ってる人とかある意味そういうリーダーシップ取れる人が大なたを振るうみたいなことをやるようなところかもしれないね。
なんかね、結構いわゆるメジャーアップデート、2.0.1だったら2が3になるみたいなって、今はブレイキングチェージが含まれる更新になるけど、なんか案外そういうのって結構消極的な理由が多くて、
例えばなんか炎だと、2から3かな、2から3に上げるときに、あるオブジェクト、リクエストオブジェクトっていうのを炎リクエストオブジェクトっていうのに丸っきり変えるっていうでかい作業があったのね。
そういうのって内部的な構造のリファクタリングとかAPIのデザインの変化なんだけど、それによってブレイキングチェージが起こるから、メジャーアップデートで変えなくちゃいけないっていう、機能を追加するじゃなくて、どうしてもやりたいことがあるんだけど、それって機能追加とかじゃなくて、単に破壊的変更が起きるだけだから、2から3のときに入れたいみたいなのが結構あったりとかしてて。
結構ブレイキングチェージを入れるときは、案外作者のしょうがねえ、どうしようもないなと思ってやってるっていうのは結構あって、今の状況だと4から5に行くときに多分そういうのが起こるかなと思っていますね。
おだしょー なるほど。その辺、そうだよね。消極的理由っていうのはまさしく、景気づけにちょっと勢い出したいから新機能と一緒にバーンとメジャーバージョンを上げるみたいなことよりかは、ちょっと消極的な理由で上げざるを得なくなるみたいな。
ちょっともったいない感じがしちゃうし、その辺でやっぱりバージョンマネジメントの難しさが最近あるなっていうのを感じています。
だから炎の場合だと、ちょっと派手に見せるために新しい機能と消極的な破壊的変更を一緒に入れて3から4にしましたみたいなのが割とある。
結構バージョニングは難しいっていうか、いわゆるセマンティックバージョニングに従えば楽なんだけど、案外フロントエンドとかだと結構マーケティングの意味合いって結構あるじゃん。
ある。
あるよね。
ちょっとそれだけじゃない、測れないものが割とあったりとかして、それは面白いんだけどユーザーとしては混乱するかもしれないなと。
そう、ライブラリとしてはね、ちゃんとそういうセマンティックバージョン切ってやっていきましょうっていうのもあるけど、ちょっと大きめのフレームワークとかサービス的なものになってくると、
割とそういうメジャーアップデートみたいなものがある意味そういうマーケティング的に大事なマイルストーンだったりするから、そこと結構相反するよなっていうのは。
相反するっていうわけじゃないけど、うまく足並み揃えるのは難しいなっていうのは思いますね。
特に、そうでね、昨今だとマーケティング要素って結構大きいよね。
うんうん。
大きい。
だからなんかそのロマンティックバージョニングっていうのがあって、なんかこれその、まあそのメジャーマイナーパッチじゃなくて、そのヒューマンメジャーマイナーっていうやつなんですけど、
つまり同じ三つの数字のやつが並んでいるのはそうなんだけど、一番先頭のやつはヒューマンバージョンで、コンセプトチェンジとかすごい大幅なリライトがあったときにヒューマンバージョンを上げ、真ん中のやつがメジャーバージョンで、
インコンパティブルチェンジがあったときに真ん中のバージョンを上げみたいな、そういうのがこう書いてあるんですけど、いやなんか結構こういう考え方でもいいよなっていうふうに思う。
ていうかもともと結構そういう考えの人もいたんじゃないかなっていう気はしている。
いいね。バージョン0.0とか0.1とか0.2とか0.でずっとやってるっていうのがあって、例えばESVideoって言われてみんな使ってるJavaScriptのライブラリとか0.いくつのはずなんだけど、
あれって0.いくつまではセマンティックバージョニングに沿わないでもブレイキングチェンジ入れられるっていうなんかそういうのがあって、みんな1に従わないっていうのがあるんでね。なんかちょっとそういう考え方は似てる。
それこそね、もう昔パールの人たち、宮川さんのウェアとかみんなずっと0.いくつがずっと続くみたいな話があったし、僕のライブラリとかもすごい0.いくつが続くみたいなのがあって。そう、そのセマンティックバージョニングの抜け道として、その先頭がゼロだといくらでも語感変更入れてほしいってやつがあるから、それもなんかバージョニングとしてそのゼロバーオルグっていうのがあって。
そういう、とにかく先頭をゼロにしてるプロジェクトみたいなやつがたくさんラレッドされているので、このサイトも面白いですね。リアクトネイティブとかエクスカリートゴースター。
そういうのがあるかもしれない。面白いね。
このサイトはそう、先頭、メジャーバージョンがゼロのメジャーソフトウェアをバーってラレッドしてあって。
なるほどね。なるほどね。ジグとかもそんなんだ。まあなんかそんな感じのプロダクトが多いですね。
バージョン管理に縛られたくないぞみたいな感じのプロダクト。
逆に面白いのは、下の方にもゼロバージョンじゃなくなったソフトウェアたちみたいなのがあったりして。いつゼロバージョンから脱出したのかみたいな。
面白いな。
でも、今、数字3つのバージョン番号をつけてるときに、基本的にセマンティックバージョンのルールに従ってるというふうに思われがちっていうか、みたいなのがあるから。
そこがちょっと難しい。ニュアンスの違いが出ることもあるし、コミュニティとか言語の文化によって、温度感が結構違うよなっていうのは感じるところではあるね。
だからガイドラインとしてはセマンティックバージョンいいとは思うんだけど、あんまり他人が厳密に守ってないみたいなことでやいのやいの言い出すと、あんまり嬉しくないかなって思ったりはしますね。
セマンティックバージョニングを警察が言うとか、つらいかもしれない。
OSSの政治的側面
そうだよね。そういうOSSの難しさみたいなのがあると思うんですけど、ゆうすけベイの前書いたブログで結構印象的な言葉として、OSSは政治だっていう結構強い日本語が書いてあって、
でもこれすごいよくわかるなって思ったのは、僕もちょっとしたOSSにコントリビュートしたり、ちっちゃめのOSSをメンテナンスしたりしてるけど、結局、ある意味関わる人が増えてくるとガバナンスみたいなのが大事になってくるし、
どう合議するか、もしくは誰かのリーダーシップでことを進めるかみたいなところが結構重要な話になってくるよなっていうのは思うんですよね。この辺り何か考えてることとか、最近考えがアップデートされたこととかってありますか。
おだしょー OSSなんだけど、ちょっとあるある。1個あるのは、OSSっていうよりかは、OSSなんだけど、フロントエンドのライブラリフレームワーク。
ネクストJSとかリミックスとかスベルテとか、あとリアクトなんたらとか、あとはORMのトリズルとかって、そのJavaScriptのライブラリって、すごい政治色が強くて、XとかYouTubeとかでどれだけ取り上げられてるかみたいなのとかっていうのは結構影響するし、インフルエンサーもたくさんいるんだよね。
すごい商業的になってて、それを考えると、商業的って意味だけど政治というよりかは、になっちゃってるのかなっていうのは結構あるかな。
おだしょー なるほど、なんかその、それは以前にも増して結構複雑な変数が増えてるなっていうようなお話ですね。 ネクストJSでね、それを考えると、例えばホノって、まず俺がやってる、日本人が中心にやってるってことだと、例えばなんかのポドキャストに出て紹介しますってことができないんだよね。できるかもしれないけどしないんだよね。
それなりの知名度があるからやろうと思えばできるかもしれないけど、あとはイベントとかに海外のリアクトコンとかJSコンフどこどことかっていう感じで、海外のところで有名なフレームワークの作者が出てるところに行くみたいなことはできない。
してないってことなんで、なかなかそういうガチな人間関係で知らしめるってことが難しいっていうのがまずあって、それがハンデになるんじゃないかなとかちょっと考えちゃうね。
なるほどね。それはあるよね。結局どのコミュニティに属してるかみたいなところが結構大事になっちゃう部分があって、いくらいいものを作っても閉じたコミュニティでしか使われてないと、なんかあんまり盛り上がらないし使われないし、進化も遅くなっちゃうみたいなところはあったりするよね。
なのでそういう状況がありながらも、ホノンは割と使ってくれてるし、例えばホノンのツイッターアカウントって1万いくつとかフォロワーがいるし、あとクラウドフレアでブログを書かせてもらってホノンのことを書いてるんだけど、そうするとなんかすげえいろんな海外の人からいい記事だとか言ってくれたりメールくれたりする人もいるし、
あんまり政治とかコミュニティとかって考えなくても実はなんとかなってんだなっていうのも一つあって、それはそれで良かった。
OSSと政治の関係
なんか狙ってやる部分と自然とうまく回り始める部分とみたいなのが両方あるような感じはしていて、なんかその、確かにユースケ部は所々でこういい感じのアクションをとってて、それがこう全部、全部っていうかかなり良い方向に動いてってるようなイメージがあるかな。
それこそね、クラウドフレアに入ったこととかもそうだし、まあそれ以前になんかいろんなインフルエンサーがYouTubeとかPodcastで取り上げてくれたりとか、なんかそういう、なんか、だからそうそう、なんかそういう、日本からでもそういうことできるんだなみたいな、そういうのが意外だった。
意外だった、意外だったな。
そうなんだよね。今日、今朝メール見たら、朝の7時半にGitHubからGitHubのスポンサーがついたよってきて、嬉しいなって思ったらSyntaxっていう、世界で一番強力なテック系Podcast買って、そこから2000ドル、2001ドルのワンタイムのスポンサーをもらったっていう。
すごい。 これは名誉のことで。金額も相当なんだけど、このSyntaxのウェスって人が、何かいるんだけど、特にウェスって人がすごい、なんか僕のこと好きで、なんかOSSに、いくつかのOSSに、たぶんね、合計ね500万円とかなんだけど、寄付するよって言ってて、そのうちの一つとして寄付してもらったんだよね。
そうなんだ。 別になんか頑張ってれば、あんまり政治とかコミュニティとかあんまり考えなくても、そういうふうに指示してくれる人できんだなっていうのはあって。だから逆にOSSは政治だって言ったけど、案外気にしなくてもいいんじゃないかなっていうのは、実は最近気づいたことかもしれないね。
そういうなんかいい感じのサイクルが回るようになってきてるってことか、すごいなそれは。 なんかね、だからね、一周とかプロリークに真摯に対応するとかね、そういうのでいいのかもしれない。
そうだよね。 そうすると言語とか人種とか政治コミュニティ関係なくみんないいっていうふうに思ってくれるから、そうするとね、指示してくれるじゃんっていう。
その場合もなんか思想みたいなものをどう通停させるかみたいなところがあるんじゃないかなと感じていて、というのも、僕の場合、僕がメンテしてるOSSとかって1000スターぐらいのものがいくつかあるみたいな感じで、僕が作ったやつは数百スターのものがいくつかあるみたいな、
小粒なものなので、あえて結構小粒に留めてる部分があって、自分が把握できる範囲とか、コントロールできる範囲に留めてるっていうのがあるんですよね。だからそのために結構、一周とかプロリクエストは自分が捌けるペースで捌くし、
なんかこれはちょっとできないときはこれはちょっとできませんっていうシーンみたいなところを、なるべくそういうコミュニケーションを取るようにしていて、だから逆にそれこそ、炎なんかだと、それこそいろんなユーザーがいて、いろんな要望が来る中で、なんかこれはあんまり入れたくないんですよねとか、これはちょっと筋があんま良くないですよねとか、
そういうのを真摯に対応するのすごい大変なんじゃないかなって思うんですけど、そこはどうなんでしょうか。
えっとね、ちょっと細かい話だけど、僕が一周とかプロリクでどういう発言を知れるかっていうのを観察すると、すごいですよ。差別とかそういうんじゃなくて、言ってる内容に対してのリアクションの差っていうのは結構あって、
なんかいいこと言ってくれると、グッジョブみたいな感じで軽いんだけど、ちょっとなんか、一周で質問するなみたいなのがたまにあって、あとはそんな再現性ないことを言ってくるときがあって、そうすると結構厳しい言葉で言ったりとかしてますね。
いや、それがやっぱ難しいと思うんだよな。だから、そうちゃんとできてるのがやっぱり素晴らしいなっていう感じですかね。
厳しい、厳しいとは厳しいですね。たぶん大抵も面倒くさくなったら、I can't reproduce it in my何とかって言って、
Please provide minimal project to reproduce itみたいなことを定形文みたいに書いて、もう全部終わらすみたいなのをやってて、でもそのぐらいやんないと捌けないし、っていうのは結構ありますね。
そうですよね。で、そこはやっぱ上手くやらないと、それこそコントリビューターとか利用者の間で結構意見対立みたいなのが起きちゃったりとか、そういうのもあるんじゃないかなって思うんですけど、そういう辛い体験とか。
はい、あーはいはい。そうそうそう、あとだから、それで言うと、自分で頑張りすぎるとやっぱり難しいのがあって、自分の知識が足んないとか、実装力が足んないっていうのは、実はすごいたくさんあることがわかんなかったときもあったんだけど、
でも、やっぱそうだから、今だと本当にアットマークでメンション飛ばして、なんか結構ここを中心的に書いてくれた人は協力してくれるだろうと思って、アットマーク何とか意見を求むみたいなことを結構書いてますね。
なるほど、そっか。そうだよね、なんかそういう巻き込み力みたいなのとか、なんかいい感じにそのコントリビューター、コミッターみたいな人が集まっている感じがしている。なんかそこってなんかどう見てるんですか。割と意識して巻き込んだのか、割とそのグイグイ来てくれる人がたくさんいたのかとか、なんかその辺りどういうふうに考えられてるんですか。
あんま意識してなくて、校舎がね、グイグイ来てくれる人がいたって感じ。
やっぱなんか、欲しがってる人がやっぱいたっていう、結構多かったっていうことなのかな。
だから面白いのは、日本、まあ当然かもしれないけど日本人の人が多くて、ただ最近ね、すごいインドの人だと思うんだけど、すごい協力してくれるし、あとどこの国かな。
そう、別に台湾とかかな。日本人に限りないんだけど、まあ日本人が多いかなって感じ。
なるほど。そういう感じなの。
でもなんかその、メンテナーをやってくれっていうのはちょっと言い難いから、本当にいわゆるコントリビューターだよね。
この部分、例えばAWSの部分はこの人が強いとか、ウェブソケットを実装したのはこの人が強いみたいな感じで、もうそうしちゃって、そこの部分はアットマークでとかして聞くっていうのは、まあいっちゃん楽だし。
もしその人が反応しなかったら自分でやればいいだけだからっていうふうなやり方でやってるね。
なるほどね。今ってリリースはゆうすけ米がやってると思うんだけど、そういうのかな?
コミット権とかそういったものは他の人にも渡してる感じなんですか?
プロジェクト?レポジトリとかプロジェクトの管理権は残り、あと二人の人に渡してる。
そういう感じなんですね。
でも基本的に発動しなくていいよって言ってる。僕がなんかよっぽどいなくなるとか、死んでしまった時になんかしてくれるぐらいのことしか言ってない。
そう、なんかそう、やっぱり緩く長く活動して燃え尽きを防ぐみたいなのが結構、OSS活動の大事なところだなと思っている。
なんかその辺こう、楽しみ続けるコツみたいなのはありますか?
そうね。確かにメンテナーの体制はちゃんとした方がいいかなとは思いつつも、まあなんとかなってて、それこそそのコントリビューターの人にコード書いてもらってるかなと思っている。
最近でこそだって中学生に書いてもらってるから、中学生に書いてもらってありがたいなって思いながらマージしてる。
いやー、中学生コントリビューターがいるのすごいよね。
すごいし、筋がいいよ。びっくりする。
すごいな。なんかどうやって勉強してるんだろう。すごい、コード読みまくったりしてんのかな?本とか読んだりしてんのかな?
どうしてるんだろうね。
あとは受験勉強でコミットしなくなるとかありそうだよね。あとは中学生が高校生になってリア充になって急にいなくなるとかさ、あり得るかもしんない。部活入ってリア充になりましたとかね。
それはありそう。まあそうだね。それはまあ喜ばしいことですね。
喜ばしい。
そう、なんかそういうOSSメンテナンス、変に責任感みたいなの感じすぎず、でもちゃんとサステナブルにいいものを出し続けるみたいなのが大事なのかなと思っているんですけど、自分ができる範囲で。
まあとはいえ、そのなんかこう責任みたいなものが発生するっていうか、そういうのを求められてしまって辛いみたいな話とかもあるんじゃないかなっていうのと、あとなんかフレームワークとかになると、それこそなんかセキュリティーイシューみたいなのが飛んでくるみたいなことはあるんじゃないかなと思っていて、なんかそういったところの対応で苦労したこととかってありますか?
ありますよ。ありますね。でももう慣れた。サクリティーのことについては。はい、CV撮りますみたいな感じで、慣れた。慣れた、大丈夫。
慣れた、すごい。いい経験だな、それは。
だいたい連絡が来て、ゾッとするやつと、この前あったんだけど、いやそれは想定内だから実はセキュリティーイシューではないとか、だいたいその察しがつくようになった。
なるほどね。そうか。いい経験をしているな。
なんかもう少しネガ的な話があれば、ちょっとだけでも聞きたいんですけど、それこそそのOSS開発者の憂鬱みたいなところで話そうとされてたことで、ちょい出しできるものとかってなんかありますか?
まあやっぱり、一周のやり取りが大変っていうのがあって、さっきも言ったけど、なんかそのただの質問じゃんみたいなことを言ってくると対応に困るけど、結構まあそれでも対応してくれる人はいるんだけど、あのね、一番困るのは対応するときに、これ僕いつも思ってるんですけど、怖い、なんでこうしたのっていうのを聞かれると辛いっていうのがありますね。
まあ。
例えば、なんでこのルーティングでこれマッチしないの、これマッチさせるようにしないの、みたいなことを言われると、なんか結構カチンときて、なんでかっていうと、そういうことって散々昔に他のコントリビューターも含めてめっちゃ議論したことで、
OSS開発者のドキュメント作成
例えばそのルーティングの順番とか、ミドルウェアの実行される順番とか、みんなそれをなんでって言うけど、それって過去にめちゃくちゃ議論して出した答えなのに、それをなんか突然来た人がなんでそうなってんのって聞かれるとなんか腹立てちゃうと思って。それがね、結構ありますね。
それはなんかどう対応してるの?なんかフィギリスイッシュみたいな、なんかこうリンクをポンってあって、なんかイッシュ番号とかを貼り付けるみたいな感じなのか、それともドキュメントが。
そう、イッシュ番号貼り付けるのと、あとは本当にデザインプリンシパルみたいなのを書いときゃいいんだけどね。書けばいいんだけどねと思ってる。一部書いているんだけど。たぶんそれが正しいんだろうね。
そのなんでこうしたのって聞かれることに対しては、しっかりドキュメント書いてそれを見てっていう対応をするのが、たぶん一番正しいやり方かな。
まあなかなかね、手が回らない部分とかはありそうだけど。
あとはその怒りを鎮める、アンガーマネジメントね。なんか言われてる。あんまり怒らないようにする。
なるほどね。
それはある、それはある。あとは。
うーん。
そうね、なんかこれも入れてこれも入れてくると、やっぱりこっちもパンクしそうになるから、つらいよねっていうのは最近ちょっと出だしたんで、これもなんかポリシーを決めないといけないなと思って。
そうだよね。
うん。
まあそう、結構そうで、大変な時とか余裕がない時に結構プッシュが来ると辛くなっちゃったりもするから、
まあその向こうとしてはあんま悪意がないとしても、なんかそうその辺どう流々コントロールするかみたいなのはありそう。
あとね、あとね、リファクタリング。えっとね、急に、もうなるべくなくそうと思うんだけど、急にコントリビュートしますってきて、
なんか散々リファクタリングをしてきて、割とデカめのプロジェクト作って、リファクタリングってやるとディフが出て、かつその最新のディフがその人になるわけじゃん。
で、結構なんかそれって暴力だなと思ってて、なんかあんまり好きくなくて。で、一個の結論はリンターを作って、
リントルーを作ることによって、なんか参考演座誌の書き方これとか参考演座誌を無しにするみたいなことをすることによって参考演座誌でリファクタリングしましたっていう人を少なくするみたいなやり方がまあ一個かなと思っているのと、
まああんまりリファクタリングでトヤ顔をしないでほしいなとちょっと思って。
なんかそれ多分結構ちゃんとポリシー書いてあるプロジェクトある気がするな。 そうそうなんかリファクタリングは僕らでやるから、あのコントリビュースを受け付けてませんみたいな、なんか。
それはそうだね。いや本当そうなんですよ。これも多分そういうのを知らなかったりとか、経験なかったりとか、あとコード規約みたいのないからだと思うんだけど、最初の方はちょっとゾッとしたことがあるね、それで。
そうだよね。まあなるほどな、そういう名文化難しいよな。
それこそ経験かもね。経験がないとわかんないことで名文化されてなかったとか、心構えができなかったとかね。
リファクタリングの課題
でもなんか逆、そのこうコントリビューター的な立場に立つと、割とそのもう最初ディポジトリのイシューとかプルリクエストを検索するとかして、
なんかそのこう、僕の場合、でもユースキュベもすると思うんだけど、なんか、このプロジェクトの今のメンテナーは多分この人で、どれぐらいのペースでプルリクエスト取り込んでくれそうで、かつなんかこういうのは入りそう入らなさそうみたいな、
なんかそういうこう、のを判断してから、じゃあプルリクエスト送ってみるかみたいな、そういうなんかその、こう、のを僕はやるんだけど、多分なんかそう、そういうのをやらない人が増えてくるような大規模プロジェクトになってくると、やっぱりそういうデザインプリンシプルとかなんかコントリビュートガイドラインみたいなのをしっかり厚くしないといけないんだろうなっていうのを今思いました。
なんかわかるよね、来た、特にプルリクで来た時に、ちょっとこれは指導がしなくてはいけないぞっていうのと、これはすごい丁寧に書いてある、ありがたい、みたいなのって、やっぱそれは校舎は総務さんが言った通り、ちゃんと観察してる人が書いたもんだなっていうのがわかる。それは本当にありがたいよね。
なんかそうそう、結構そういう作者のポリシーみたいなのあるし、なんかそれはやっぱ尊重した方がいいじゃんって思っていて、まあそれこそ例えばそのプリリクエスト作るときになんかコミットが分かれててもいい人と、それが多数なんだけど、なんかちゃんとこうコミット1個にしてからプリリクエスト出してほしい人とかがいたりするから、
なんかそう、それでなんかその、こうイシューとかのプリリクのやり取りを見てて、割とそのコミット1個にしてくれみたいなコメントをつけてるのを見ると、ああ、このリポジトリはコミット1個にしないといけないんだなと思って、コミット1個にしてからプリリクエスト送るみたいなのをやったりはしますね。
そうそうそう。で、あとその、結構そのフォーマルにちゃんとしきたりを守ってくれる人もいれば、守らないとかすごいカジュアルな英語を書いてくれる人もいるんだけど、ただなんか書いてあるコードとか発想がすごい人みたいなのは、別枠でいて、なんかそれは許せるみたいな。
いや、そうそう、そうなんだよね。だからなんかあんまりそんなにこう、ハードルを上げたくないみたいなのもあるし、そういうこう、ちょっとこう、フラッとやってきてすごいこう、いいものを上げてくるみたいな、なんかそういうのもあるからね、本当に。
し、なんかその人ならではの流儀で上げてくるけど、こっちは不快じゃない。そう、なんかそういう人にいちいちなんかそういうコントリビュートMDみたいなの読んでもらったりとか、一周テンプレートのチェックリストを全部埋めてもらってみたいなことをする必要もあるのかなーみたいに思うのもあります。なんかそういうのやりだすと肩苦しさがすごい出ちゃうから、なんかそう、その辺の塩梅がやっぱ難しいなっていうのは思うね。
まあ、だから唯一本当、テストだね。テスト書いてくれてると、あの、いい。それはもう、あの、書いてくれるに越したことはないと。
まあ、それは絶対そうだね。確かに。そこでだいぶこう、うん、フィルターできる気がする。
うん、そうそうそうそう。
そうだよな。リファクタリングしました?って言って、なんかテストなかったりすると困るもんな。
なんか、まあまあ、もちろん既存のテストが十分あればっていう話もあるんだけど、まあ、だからそういうのも含めてそのリファクタリングはその、やっぱ開発者のご褒美みたいなふうに捉えることもできるから、そのなんか、テスト書かなくてもやれることではあるから、まあ理想的にはね、なんか。
あとね、最近面白いのがね、CIでパフォーマンスを測って、で、それをプルリクに結果をペッて貼るっていうのを、まあテストカバレッジとかって貼るの、たまにあるけど、そのCIでパフォーマンス、で、タイプスクリプトの型の、えーと、推論、えーと、タイプスクリプトのコンパイルの診断結果と、えーと、あとバンドルのサイズ、えーと、まあ、普通にファイルサイズ。
で、もうすぐそのパフォーマンスっていうのを入れたいんだけど、まあ速さっていうのを入れたいんだけど、そういうものが前回とかメインと比べて、えーと、変化したかっていうのを、えーと、そこ、CIで回して、えーと、プルリクのコメントに書くっていうのを作ってくれて、それを入れたんだけど、なんかそういうので縛るっていうか、なんかプルリク来たけど、なんかこれパフォーマンス下がってんじゃんっていうことを言えるから、そういう試みはすごい良いかなって思って。
OSSコミュニティの交流
おだしょー そうですよね。最近あれ、あのー、えーと、オクトコブ入れたやつだよね。
そうそうそう。面白いよね、そういうのもね。
おだしょー なんかあれのコントリビュートした人、あの、ペッパ合戦来てたけど、なんか話したりした?特にそこはせってなく。
めっちゃ話した。
おだしょー めっちゃ話して、めっちゃ話して、あのー、こういう、今度はなんかパフォーマンス、リクエストレスのパフォーマンスやりたいよねって言って、で、じゃあそのためのベンチマークって難しいけど、ここのレポジトリみたいのはいいよみたいな話を結構ちゃんと話した。
でもそういうの楽しいよね、そのコントリビューターの人と話すっていうのは、なんか楽しくない?
おだしょー 楽しい、楽しい。
楽しいよね。
おだしょー やっぱああいう、ペッパ合戦はそう。
なんか知らない人と話すことが多いじゃん。あ、コントリビュートありがとうございますみたいな感じで。
おだしょー そう、なんかこちらとしてもありがたいし、向こうもすごいなんか感謝してくれるし、みたいな、そういうのがあるから、し、なんかそこで共通の話題があってすごい盛り上がれるから、まあそういうね、なんかカンファレンスの廊下みたいな話もあるけど、同じっていうか同じものだと思うけど、そこでよりそういう同じプロジェクトみたいなOSSに関わってると、より仲良くなれるみたいなのはあるよね。
し、まあ結構僕らもそういうとこもあるし、パールコミュニティーとか、まあその後のコミュニティーもそういうとこあったからな、そうだよな、なんかそれでそうだよな、まあ海外のOSSにコントリビュートして多少コミュニケーションできたりとかもあるからな、そういうのもっと増えるといいなと思ってるし、
ほのおはやっぱりそういうやりとりも増えてそうだから、なんか羨ましい、素晴らしいなって思います。
けっこう、なんかさっきの、まあ駆け出しエンジニアじゃないけど、なんかそのOSSにコントリビュートすることが目的になってる風潮もちょっとあって、あるかなと思っていて、なんかそのとりあえずタイプ直しましょうみたいなのをそっからできるよみたいなのって、まあいいんだけど、
そのコントリビュートした先の面白さって、そういうその行動について語り合えるとか、行動を良くすることについて語り合えるってことだと思うから、なんかどうせね、コントリビュートするんだったら、なんかそういう話ができるぐらいのなんか濃密なプルリクを送って、送り合うほうが面白いんじゃないかなと思った。
そうだよね、その辺もやっぱ案外が難しいなーっていうのがあるよね。てかまあ基本的にはそう、そういう、なんかいっちょ髪するとか、なんかとりあえずなんか、タイプ直してみるみたいな、なんかのがすごく増えちゃうと困るよなーみたいなのはあるから。
でもなんかそれこそその、そのハクトバーフェストとかがあっていうやつがあって、多分そういうなんかOSSへのプルリクエストを出してみようみたいな、なんかそういうのが多分何年前からGitHub上でやられていて、そのデジタルオーシャンとかがスポンサーしてるのかな。
それでなんか最初はなんかもういろんなリポジトリに多分、なんかのべつ幕なしにいろんなプルリクエストが飛んできて困ったみたいな事件が多分あって、だから最近はなんかそれに結構同意するリポジトリが登録するみたいに多分なってるはずで、だからそういう趣旨になんていうか協力するリポジトリが登録されて、そこには割とそういう気軽なプルリクエスト送っていいですよみたいな感じになっている。
OSSにおけるノイズの影響
それは結構いいことだなって思いました。ある意味そういうノイズになっちゃうかもしれないプルリクエストでもちゃんと我々を受け入れますよっていうのを言ってくれたところにだけそういうのが来るようにしてるっていうのはいいことだなって思いましたし、そこにちゃんとレジストレーションしてるリポジトリとかは偉いなと思います。
僕はね、ノイズはあんまり関係しないです。
そこはちゃんと、そうそうそう、立場をね。だから明確にできるようになったっていうのはすごい良い点だなっていうのは思う。
あれ多分ね、何か前からやったけど、GitHubのプロジェクトのラベルで何かやってた気がする。ハットワークヒュースってつけてるかつけてないかで参考表明できた気がする。
うん、そうだった気がするな。
で、あれなんかやるとTシャツもらえるからみんなね、やったらめったりやるっていうね。
ああ、そうなんだ。
何かもらえるはず。
そうだったのか。
なるほどね。
はい。
じゃあまあOSSの話はそれぐらいにして、まあだいぶ話してるけど、なんかそのクラウドフレア僕もすごい活用させてもらっていて、ありがたく使わせてもらってるんですけど。
何か最近のおすすめトピック、おすすめ機能みたいなのって何かありますか。
えっとですね、そうですね、あんまりベーシックに使ってるだけで楽しんでいいですが、AI関係は社内、会社的にはすごい推してて。
あんまりですね、詳しくないっていうか、最近追いついただけなんです。MCPっていうのがあって。
MCP。
クラウドで使うのかな。モデルコンテキストプロトコルっていうのがあって。
ああ、はいはいはい。
これ言っといてあんまり説明うまくないとしょうがないんですけども、ローカルかな、でクラウドフレアのサービスを立ち上げて。
社内のプロンプトからそれを呼ぶことができるんでね。
ってことは、つまりローカルで何か立ち上げると、プロンプトに私が所有しているクラウドフレアのプログラムは何個ありますかって言ったら、
あなたは10個持ってますとか言ってくれるんでね。
であとは、あなたがクラウドフレアに登録しているD1SQLのデータベースの中に入っているテーブルの構造を教えてくださいとかって言うと教えてくれるのね。
クロードっていうのはクロードからなんだけど、これができると何がすごいって、
ワーカーズとかD1とかR2とかKVとかっていうクラウドフレアの製品があるけど、それを組み合わせたアプリケーションを勝手に作れるんじゃないかなっていうのがあるのよ。
それこそさっきの花火の話じゃないけど、前半でやったやつか。
だからTwitterのアプリ作ってって言ったら、ワーカーズを使ってD1にこういうSQLのスキマを流せばいいでしょみたいなのをAIが勝手にやってくれるのではないかなっていうのが目の見であるっていう、
このMCPっていうプロトコルがあるらしくて、そういうのはすごく面白いなって思っておりますね。
なるほど。最近AI関係も熱いし、確かにそういう、それこそたくさんサービスがあって組み合わせ方がよくわからないとか、
そういうのもよく、それこそAWSとかでも聞く話だから、そこをいい感じにやってくれるものとか、逆に既にあるデータをうまいこと、勝手に活用してうまいことやってくれるみたいなのも作れるとうれしいっていうところがあるのか。
クラウドフレアのAI機能
そうそうそう。僕がC広島でやった、Webcamのカメラで写真を撮って、その写真をAIが分析して、その分析した結果を音声サービスに送って、音声サービスがダンサーとかパフィックスの声になって帰ってくるみたいなのを、
主導でやってたけど、それさえもこういうサービスで作ってって言ったら勝手に作ってくれるっていうのがあり得るかもしれないよね。っていうか、ありそうだよね、すぐ近くにね。
おだしょー なるほどね。クラウドフレア、僕はこのポッドキャストをホストしてる環境もクラウドフレアページだし、趣味プロダクトはかなりクラウドフレアにお世話になっているので、今後も便利に使わせていただきたいなと思っております。
おだしょー なんかいいよね、クラウドフレアってなんだろう、自分の会社とか所属だから言うってわけでもないんだけど、使い勝手がほんといいよね。手に収まる感というか、なんか取り回しの良さみたいなのがあるんじゃない。
おだしょー ある。コンソールもまあ比較的わかりやすいし、なんかどの階層に何があるのかたまにわかんなくなることはあるけれども。
おだしょー そう、それはある。 まあ、ドキュメントもちゃんと必要最小限あるし。
おだしょー 英語、日本語がないのは、もう他の言語作んないっていうポリシーだと思うんだけどないんだけど、ドキュメントは結構頑張ってるんでね。
おだしょー ドキュメント結構頑張ってるなっていう印象があります。
おだしょー ドキュメントはね、ちゃんとドキュメントエクスペリエンスみたいな感じで、ドキュメントのコンテンツ体験っていうのを向上しようっていうプロジェクトがちゃんとあってるっていうのじゃない。
だから単に説明書書きましょうよっていうポリシーじゃなくて、体験として提供しましょうよっていう感覚でやってて、まあ頑張ってはいる。
おだしょー ああそうそう、なんか結構紹介するブログ記事とかも結構ちゃんとしてて、あと詳細なドキュメントへのリンクもあって、みたいな。もうなんかそう、そういうわかりやすいなって思ったなあっていう。
しかもちゃんとその紹介記事で書いてる内容もちゃんとその鮮度が保たれるような感じで頑張ってメンテナンスされてる感じがしたかな。
なんか最近調べたやつだとそのクラウドフレアページズってそのロールバックのAPIがちゃんとあって、なんかそのそれのリリースノートのブログ記事とちゃんとそのドキュメントのところを見に行ったら、なんかちゃんと自前でやることができたから。
多分それこそ、CLIクライアントとかサポートしてないけど、まあ自分でカールとかたたえたら全然いけたんで、なんかすぐできて、わかりやすいってなりました。
あとはね、例えばなんだけど、そのクラウドフレアのSDK、それこそラングラーとかなんだけど、のレポジトリをウォッチしてるとわかるんだけど、すっごい勢いでアップデート入ってて、プルリクイ集の数とかもすごい、朝起きたら4,50と余ってたとかしてて、もうすごい勢いなんだけど、それもクラウドフレアのエンジニアがもう頑張ってやってるから、そりゃそうなんだけど。
そっち側のアップデートがものすごい早いし、プロダクトのアップデートも早いから、そのドキュメントが追いつかないっていうのはあるかもしれない。すごいね。だからね、面白いのは、ラングラーとかワーカーズのSDKでやってる、オープンでやってるのと内部でやってるのっていうのが微妙にリンクしてるから、
実は、クラウドでワーカーズSDKっていうレポジトリを覗いてると、クラウドフレアが次発表しようとしてるものは何かっていうのは、実はネタバレ、めっちゃネタバレしてるっていうのがあって、面白い。
たまに見てはいます。手元にレポジトリはあるのと、ラングラーのソースコードどこにあるのかなと思ったって、探したらここにあんのかみたいになって、最初探しづらいなって思ったんだけど。
そう、でっかいモノレポになってる。ラングラーもなんかすごいデカくなって、コマンドがとあるコマンドととあるコマンドがいろいろ入ってて、そのとあるコマンドを実は発見すると、え、こんなことやろうとしてんだみたいなのがわかってしまうっていう。
なるほどね。クラウドフレアページーズ周りの操作ができるクライアントがそんなに強くないのかなという気はしていて、あんまり注力しない感じなのかなっていう気もしている。どうなんだろうな、あんまり答えられない話もあるかもしれないけど。
ページーズとワークハウスの統合
ページーズ?
ページーズ。
なんかもう細い話だけど、ページーズワークハウスで言うともうワークハウスを使ってくださいっていう風潮になります。
そうだよね。
うん、なってるなってる。
そうだよね。だからあんまりそこは手っこ入れされないのかなという雰囲気は感じている。
ね、なんかこれ本当クラウドフレア使ってる人じゃないとなかなか伝わんないかな話かもしれないけど、ページーズとワークハウスっていうのがありましてねみたいな。
ページーズワークハウスでページーズと同じようなことができるようになって、最近になって、社内、俺らの中でもかにばってるみたいなこと言ってて。
どうすればいいのみたいなちょっと多少あるんだけども、もともと統合するって話はしてたし、今はワークハウスに乗せていこうねっていうのを社内でも言ってるところですね。
なるほどね。じゃあ僕も何かページーズにやってるやつをいくつか何か試しにワークハウスにマイグレートするのをやりたいなというと思いました。
まあじゃあそんな感じで、それはまた試してみることにします。
あれ?あ、そうか。
HTMLにしてるのか、ファイルにしてるってことだよね。
ああそうだね、僕が一個なんか今日話のネタで課題にしようかなと思ってたやつは、
ああそうそう、なんか一個本当炎で使ってるやつで、もうスタティックサイトジェネレーションで整理ファイルにしてるやつがあって、まあなんかそれをクラウドフレアページーズにもう1枚だけ置いてるやつがあるんだよねっていう。
じゃあ今んとこそれクラウドフレアページーズに置いておいたほうがいいね。今カットキーだから。それはね、ワークハウスで置くとちょっとお金かかっちゃうかもしれない。
そうなんだよね。
それはちょっとね、いやスティックサイトだと本当そうなっちゃう。
そうなっちゃう。あとそのリダイレクトファイルっていうのが置けるじゃないですか、ページーズに。それを使ってて、まあ割と簡単にそのリダイレクターみたいなのが実現できてるんで。
そうだよね。
便利だなってなっています。
そう、わかる。すげえわかる。すげえわかるよ。それね、ワークハウスでやろうとするとリダイレクトなんとかっていうの実装されるようにするのを待つか、じゃあワークハウスでやりましょうって言ったときに、ワークハウスのその起動がそれごとにかかるわけだから、まあお金かかっちゃうよねって。
まあ数そんな多くなければいいんだけど、っていうのは結構ある。毎回起動するのもパフォーマンス的に問題ないんだけど、その料金とかそういうので引っかかっちゃうよねっていうのはちょっとあって、なんかあんまりリダイレクトめっちゃ使うっていうところに進めづらいかもしれない。
そうなんだよね。でもなんかそう、それこそ結構その炎でURLショートナー作りましたみたいな、でクラウドペアワークハウスで動かしてますみたいな、サンプルは結構なんか世の中にちょいちょい出回ってるなっていうのは観測しつつ、そうなんか僕もじゃあクラウドフレアでなんかそういうのデプロイしてみるかって思ったら、なんか普通にページズにペラ一置いて、
かつそのリダイレクトファイルってやつにそのリダイレクトルールかければこれだけでいけんじゃんってなってそうなりました。
OSSの影響と技術
結構ね、それもできるし、クラウドフレアの本ちゃんっていうか、管理画面からやる機能でもリダイレクトは全然かけるはず。結構そのリダイレクトとかそういう基本的な操作に関して言うと、ワークハウスでもできるし管理画面でもできるし、そういうページズだったらページズの機能もできるしみたいな、割とできる、いろんなところでね。
どこでやるかみんな迷うでしょ。
そう、あとログ周りとかがね、ちょっとなんかどうすればいいのかみたいなのがちょっとこう、わかんないなってなっているところではあります。
オブザービリティのが強化されましたからね、最近。ワークハウスログっていうのがね。
ワークハウスログ。だからそうなるとやっぱワークハウス使った方が面白そうなっていう。
そうそうそう。今ほんとか時だからね、悩ましい。
あとね面白いのは結構、クラウドフェアのサービスってワークハウスで動いてるものが多くて、ワークハウスログこそ本当にワークハウスで動いてるから、やっぱりワークハウスとクーディングしてるし、それだけちゃんと動くし、
その過半生とかっていう意味でも、あとパフォーマンスも全然出るっていう意味で使ってる。ワークハウスでワークハウスのものを作るみたいなことがやってて、それはすごいすげえなって思ってる。
ああ、なんかそれすごい面白いね。 面白い。でね、これね、思うんだけど、なんでこんなことができるかっていうと、一回あったんだけど、ケントンっていうスーパーエンジニアがいて、この人がワークハウス作ったんですよ。
なるほどね。でもその、そう、AWSのサービスとかも結局全部S3に乗ってるみたいな話とかがあったりするから、なんかそれに近いものを感じたけど、でもそれがそのワークハウスみたいなところで、なんかそう、全部ワークハウスでできてるみたいな感じになってるのは、その、そう。
レイヤーが違うところでそういう現象が起きてるのが面白いし、クラウドフレアっぽいなって思いました。
なんかすごい大雑把な話なんだけど、そのクラウドフレアのデータセンターは世界中に300とかって言ってるのかな、好評で。あるんだけど、データセンターに全部同じものが載ってるらしい。だから同じワークハウスが全部のデータセンターというか、ポップで動いてるっていうことになってて、それが面白いよね。
エピソードのまとめ
そうだよね。そういう最小単位っていうか、一番プリミティブな単位としてワークハウスがコンポーネントとしてあるっていうふうに考えられるっていうことだもんね。
おだしょー 面白い。 よし、まあそんなところかな。これは多分過去最長のエピソードになります。
おだしょー 差しすぎた。 いや大丈夫、最後いろいろ話してくれてよかった。
おだしょー クラウドフレアなんかでの好発役を今後も楽しみにしておりますし、炎の発展も楽しみにしているので、また何か機会があれば話すなり、交流するなりまた来てもらうなりできると嬉しいです。
おだしょー ぜひぜひ。 じゃあそんなところかな。ということで、趣味でOSSをやっているものだわ、ゆうすけベイさんを交えていろいろお話しました。ということでありがとうございました。
おだしょー ありがとうございました。
59:52

コメント

スクロール