Open7
この世からボイラープレートを滅ぼしたい (目指す世界はゼロコンフィグ)
ピン留めされたアイテム
現実
- 〇〇をセットアップするためにぐぐる、xxを△△に書き換えて叩く。エラーが出る。ぐぐる。叩く。ぐぐる
- プロジェクトディレクトリでVSCodeを開く。いつもの設定と違いすぎるから npm をインストールしまくる。設定をどっかからコピペしまくる
- 動くようになる
- 足りない(よくあるのはTypeScript, eslint, prettier, CSS関連、あるいは特殊なコンポーネント)。仕方ないから npm 探す。npm の使い方を勉強する。時間がかかりすぎてもうエネルギーが付きてきている
- デプロイその他全域を考えると、足りないことだらけだし、コードもまだほとんどかけてない
この現実を変えたい
何かプロジェクトを始めるときにボイラープレートを生成するコードを叩いて、いくつかのディレクトリとファイルが作成される。たいていそれらは魔法のおまじないとなり、プロジェクトの時の流れで忘れ去れホコリをかぶり、いつの間にかそれは割れ窓を呼び寄せている。
- JavaScript 界隈では少しずつゼロコンフィグが実現されているが、それでもまだまだ不完全
- AST合成あたらり前なんだから、ボイラープレートの概念そのものがいらんやろ
ということで、本来目指すべき理想の世界は、ボイラープレートのない世界だ
設定ファイルを滅ぼしたいとき、一つの考え方は設定ファイルを隠蔽することだ。
- 次善策といえるが
project.conig.js
のようなファイルも最近ではpacage.json
内に定義できることも増えた。 - そもそもあるツールを初期化するコードに設定ファイルを渡す箇所があればそこで設定を隠蔽できる
- どうしても駄目な場合はどうしても駄目なツールをwrapper かいてしまうか別の hack を考えよう
プロジェクトを設定する手順も0か、最低でも1にしたい。
理想形は、slack command でも物理ボタンでも何でもいいけど、
- リポジトリ作成完了
- develop CI/CD 完了
- 開発用URL割り振り完了
- 他必要なセッテとアップが全部終わってる
僕のやりたいこと
- 何かアイデアを思いついたら、そのアイデアに応じた適切なリポジトリやサービス経由やくが全部完了してること
- アイデアを試してみて駄目なら消す
- アイデアを試してみて良さそうなら残す
- どちらにせよ、工程はプライベートリポジトリでもなんでもいいから残る
実験をゼロコストにしたい
たとえば、OpenAPI/swagger であれば、サーバー実装から自動生成されるのが筋であり、なんなら OpenAPI とかいうクソ仕様書を介さずにクライアントコードも生成されなければならない。
- ディレクトリは基本、決め打ち
-
src/
にある JS/TS などのファイルを解析、import してるパッケージを取り出して、パッケージ名ルールチェックと Node.js builtin じゃないことの確認をして、インストールが必要なパッケージリストを作成