概要 †
- 技術選定は、開発組織が長期に渡って健全にワークするか、というのを決める、非常に重要かつ長期にわたる問題
原則 †
- その技術を学ぶことで得られるメリットや効率化できる部分を徹底的に調べること
- メリットがない技術は今学ぶべきではないということ
- 調べる方法はQiitaやZennで「技術選定」と検索して、評価の高い記事を中心に調べること
- Qiitaの場合は「LGTM」が多い記事
- Zennの場合は「♡」が多い記事
ポイント †
プログラミング言語・フレームワーク †
- プログラミング言語やフレームワークの選定だけで、Webアプリの開発の7割が決まる。慎重さと決断力の両方が要求される
関心事の分離 †
- ソフトウェア開発は複雑さとの戦いになる
- 特に、「ビジネスの関心事」と「技術的関心事」をいかに分離するかは、持続的に変更可能なアプリケーション開発を実現するためのキモとなる
- 「ビジネスの関心事」と「技術的関心事」を分離して設計するアプローチで最も優れた手法は、ドメイン駆動設計(DDD)である
- 関心事を分離し、「ビジネスの関心事」をユビキタス言語を駆使しながらモデリングを行い、継続的にリファクタリングすると本当に変化に強くなる
実際にさわる †
- 公式ドキュメントをただ単に眺めるだけで決断してはならない。簡単なアプリでもいいので、自分でなにか実際に作ってみることが重要
選択する †
以下の観点でチェック
- 複雑なビジネスロジックをわかりやすく表現できること
- コンパイラやエディタの支援があり、易しくリファクタリングできること
- コミュニティが存在し、メンテナンスされていること
- 十分な量の情報が流通していること
- プログラマーのモチベーションが上がること
技術スタック †