Slide 1

Slide 1 text

OSSを作っている時に 考えていること ーUNIX哲学を添えてー 会津秋の陣 大 LT 大会 @sachaos

Slide 2

Slide 2 text

自己紹介 • @sachaos (サカオスと読みます) – Twitter, GitHub もこれでやってます。 – 友達欲しいのでフォローしてくれると 嬉しいです。 • 所属: 株式会社アカツキ – 新卒 3 年目 – 技術基盤開発 – Go, GCP • U2病 – UNIX 2 年生病 – UNIX 文化にかぶれて、なんでも ターミナルで解決したくなる病気

Slide 3

Slide 3 text

早速本題

Slide 4

Slide 4 text

GitHub はこんな感じです

Slide 5

Slide 5 text

• 2年前は少しレポジトリ公開してるくらいで 誰も見向きもしないような感じだった。 • 意識的に考え方を変えていくと 開発も迷いなく出来るようになって どんどん使ってくれる人も増えてきた。 • 今日はその考え方をシェアして、 OSS開発ハードル高いと思っている人たちの 背中を押せればと思っています。

Slide 6

Slide 6 text

• アイデアができた時 • 作っている時 • リリースする時 • それぞれ悩んでいること、考えていることを話します。

Slide 7

Slide 7 text

アイデアができた時 • 「似たような奴あるけど、作る必要あるかな?」 • 「これ作っても誰も使ってくれないんじゃないかな・・・」

Slide 8

Slide 8 text

作るかどうか迷う時間があるなら 作った方がいい。 • 車輪の再発明は恐れなくていい。 – 何かを作らないよりも作ったほうが実装力が上がるはず。 – 既にあるものより良いものを作ることも出来るはず。 • 作らないと需要があることもわからない。 – 誰も使わないだろうなーというものでも おそらく誰か同じ悩みは抱えているはず。

Slide 9

Slide 9 text

作っている時 • 「この機能も入れたい!あの機能も!」 • 「どうやったら使いやすい形になるかな?」 • 「なんか色々考えているうちに飽きちゃったなー」

Slide 10

Slide 10 text

UNIX哲学に沿って作る • 小さいものは美しい。 • 一つのことをうまくやるツールを作る。 • 全てのプログラムをフィルタとして設計する。 • etc

Slide 11

Slide 11 text

sachaos/note • U2病だからターミナルでしかエディタは立ち上げられない。 • ターミナルだけではマークダウンのプレビューができない。 • なのでプレビューだけいい感じにできるものが欲しい。 • https://github.com/sachaos/note

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

一つのことをうまくやる • ファイルを監視してマークダウンを いい感じにブラウザに表示することだけをうまくやる • エディタとビューアが分離しているので 特定のエディタに依存せず組み合わせやすい。

Slide 14

Slide 14 text

無理に機能を付け足さない • 開発中はアイデアが発散して、多く機能を追加したくなる。 • 本当にこのソフトウェアに必要なものなのかを考える。 – リリースしたら意外と使われないかもしれない。 – 届けたい体験に関与しないものかもしれない。 • 時間がかからないなら一旦作ってみるのもあり。 – ただシンプルに保つことを意識する。 • もしかしたら別のソフトウェアにしたほうがいいかも知れない。 – プレビューしているものを GitHub Gist にアップロードできたら 便利だと思ったけど、それはこのソフトが解決すべきこと ではないので別途作成した。 -> https://github.com/sachaos/gist

Slide 15

Slide 15 text

sachaos/todosit • todoist というサービスのCLI • U2病だからターミナルでしか(ry • https://github.com/sachaos/todoist

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

出力はシンプルに保つ • 出力がシンプルだと組み合わせやすい。 • フィルタリングするツールと組み合わせることが出来るよう、出力は1 行に1レコードを保つ。 – grep, peco などでフィルタリングしやすい。 • 結局、ユーザーの強い要望があって 複雑なクエリに対応するために --filter オプションを付けた・・・

Slide 18

Slide 18 text

飽きないように鉄は熱いうちに打て • だらだら作ってると飽きてしまうというのが何度かあった。 • PoC までは思い立った瞬間に作ってみると良い • ひとまず形になれば最悪その状態でも公開できる。

Slide 19

Slide 19 text

リリースする時 • 「公開・宣伝して叩かれたりしたら怖いな・・・」 • 「炎上したらどうしよう・・・」

Slide 20

Slide 20 text

プロモーションを恐るな • いいものを作ったら勝手に評価されるというのは 「地道にやっていたらスカウトされる」と思っている バンドマンくらい甘い • 作ったら Twitter でも Qiita でも Reddit でも なんでもいいから宣伝しよう – 個人的には Reddit おすすめです。

Slide 21

Slide 21 text

最後に • 今日は触れなかったけど 自分のレポジトリ外のOSS 活動について • 「なんか PR 投げたら怒られたりするんじゃないか?」 とか思ってた時期があったんですけど、 OSS 公開する側になったら PR とか すごく嬉しいものなんだなと思いました。 (人によるかもしれないですが・・・) • なのでガンガン投げればいいと思います! • OSS 活動やっていきましょう!

Slide 22

Slide 22 text

おわり