はじめに
ゆとり世代の中野です。
さっそくチャレンジについて書いていきます。
チャレンジする背景
- 新しいmacになるので環境周りを整備したい
チャレンジ内容
- 過去に作った環境構築用のスクリプトのリプレイス
やったこと
振り返り
- good
- 基本的な設計は悪くなかったことは3年運用していて感じた
- メンテしやすく柔軟にmacの変化に対応できた
- bad
- 複数のArchitecture対応の設計をしていたので複雑性があった
- 微妙な設計部分があり久しぶりに触ると脳がバグるところがあった
- 不要な情報までハードコーディングしていた
思想
- シェルスクリプトで動かす
- 未設定のmacで動かせるように
- 保守運用が簡単にできる
- シンボリックリンク先と同じディレクトリ構成にして追加変更削除の時に脳内置換を無くす認知負荷を無くす
- 冪等性を担保する
- 何度でも実行できる
- 簡単に使える
- 全部を一括に設定できる
- 一部だけを指定して再設定できる
- 簡単に消せる
- シンボリックリンクをunlinkするだけ
- 個人情報や設定を環境毎に変えれるようにする
- 編集しても差分にならないようにする
構想
- 以下のディレクトリ構成を考えました
- 環境構築に必要なものは全てsrc配下に配置してあります
- src配下のディレクトリそれぞれに属するディレクトリ内の構築用のスクリプトを入れています
- それをsrc/init.shで呼び出して環境を作れるようにしてあります
.
├── .github
├── .gitignore
├── .gitmodules
├── README.md
└── src
├── asdf
├── dotfile
├── homebrew
├── init.sh
└── shell
実装
- 前回のスクリプトの設計で吸収できなかったものの掃除がメイン
- 追加機能はハードコーディングしなくても差分にさせないテンプレートファイルを作成
- homebrewのインストール方法やパスが変わってたので微調整
結論
- 以下が今回作った環境構築用のスクリプトです
さいごに
- 思った以上に3年前の設計がよくできていたのでいい答え合わせになりました
- 2年前に作ったRepositoryなのでなんでこの名前にしたのか覚えていません
yutanakano
WEBエンジニア
大阪生まれのゆとり世代です
趣味はバイクでツーリングに行くこと
愛車は Ninja ZX-25R SE KRT EDITION
Expoでプロダクトを作っています