Open3
エンジニア以外にエンジニアの活動を伝えるためのアイデア

エンジニア以外から見るとエンジニアって何しているのか全く分からん
それを説明するためのアイデア
それは技術負債をジェンガで説明したものだったりする
思いついたら書き溜めておく

ライブラリの更新
一言で言って「ライブラリ」の概念が意味不明だと思う
身近なものに置き換えたい
Chromeで説明
- 自分のPCに外部のソフトウェア入れてますよね
- ChromeだったりSlackだったり
- 例えばChromeってよく更新してって出ますよね?
- 理由はセキュリティリスクだったり、新機能の追加だったり
- 更新しないとPCが危険になる
- 更新しないと新機能が使えなくて作業効率が悪い
- 僕らのプロダクトでも同じような事をしています
- 外部のソフトウェアというのがライブラリと読んでるもの
- OSS(open source software)とも呼ばれる
- 更新しないとセキュリティリスクを抱える
- 更新しないと開発効率が悪い
- なので随時更新していく必要がある
- プロダクトを1年放置すると対応が必要なライブラリはどんどん増えていく
- ずっとリスクを抱えた状態が続く
ファッションで例える
hoge

LinterとCIツール
ソースコードにおけるLinterの役割は、文章のトンマナを揃えることと似ています
例えばプレゼン資料をスライド単位で分担して、複数人で作成しているとします
このときスライドごとのトンマナは揃えたいですよね
例えば「ですます調」と「である調」が混ざるとしたら、どちらかに寄せたくなるはずです
Linterはトンマナを揃えるために警告を出してくれるツールです
「ですます調」を採用すると決めたら、「である調」の記述に対して警告を出してくれます
このようにソースコードの一貫性を担保することで、文字だけで構成されるソースコードの品質を一定に保つことができます
このツールは基本的に手動で実行するものです
修正のたびに手動で実行し、警告があればそれを修正する必要があります
このような状況だと、修正後にLinterの実行を忘れる時がいずれ訪れます
その対応策として修正のたびに自動でLinterを実行する仕組みが必要です
この仕組みCIツール(Continuous Integration:継続的インテグレーション)と呼ばれるものを使って構築します