トレタのフロントエンドエンジニア武市です。
トレタではマイクロサービスを採択していることにより高い設計力が求められます。品質の高いソフトウェアを開発をする為に、求められる技術レベルがかなり高くなりました。前職ではモノリシックアーキテクチャだったこともあり、日々勉強する毎日です。
弊社のプロダクトのお手伝いをしていただいている奥野賢太郎さんと (@okunokentaro )と設計についてお話しさせていただき僕なりの腹落ちがあったので共有します。
僕の解釈で言葉をまとめているので、奥野さんの言っていたこととはニュアンスも違うし言っていることも違う可能性もあるので悪しからず
設計ってなんでするの?
なぜ単一責任の原則を守らなければならないのか
システムの設計は建物などの設計と違って完成したら終わりではない。
設計とはなんなのか
それは治安維持、秩序維持活動。
常に進化していくものであってケースバイケースで変わる
手段であって目的ではない。
動くものを作るそれが目的。
ただモノづくりをする上で我々エンジニアは、過去に辛い経験をしてきた。
- 命名が分かりにくい
- コードの段落が違う
- 拡張性がない
それらを維持する為に設計するのであり、〇〇アーキテクチャはそれらをテンプレート化したもの。
コードフォーマッターを入れるのも設計、命名規則を整えるのも設計、リポジトリを分かりやすくするのも設計
設計力とは
治安の悪い箇所を見つける力、見抜く力が設計力だ
これには多くの経験が必要だが、まずは動くものを作ること
その中で見えてきた治安の悪い箇所を放置せず直すことで設計力は格段にあがる
設計に正解はない
大事なのは諦めず良いシステムを作ろうと考え作り続けることである
最後に
今回お話しさせていただいた奥野賢太郎さんの一人アドベントカレンダーです。