UX / UI のデザインに強いWebシステムの開発と、BtoB Webマーケを支援するWeb制作を提供する
N's Creates (エヌズクリエイツ) 株式会社 フロントエンドエンジニアの齋藤 (@31mskz10) です。
長期休みの前には本をいくつか積んでおいて、休みのタイミングに読むようにしています。
お正月休みと言いつつ、12月の中旬頃からフライングで少しずつ読んだものも含まれますが、今回はその中からエンジニアに関連する書籍を紹介します。
GitLabに学ぶ パフォーマンスを最大化させるドキュメンテーション技術

『GitLabに学ぶ パフォーマンスを最大化させるドキュメンテーション技術 数千ページにもわたるハンドブックを活用したテキストコミュニケーションの作法』
最近ドキュメント作成に興味があり、どのように整理すれば明確で一貫性のあるドキュメントを作れるのか知るために読みました。
GitLabは「GitLab Handbook」という3000ページ以上にもわたるドキュメントがあることで有名です。
そもそも国や文化の違う人がフルリモートで働いているため、あらゆる業務の考え方やGitLabの社内文化をまとめていて、ガイドラインをベースに社員が動いています。
本書では、GitLabのドキュメント作成プロセスやその文化、そしてドキュメント作成の重要性について深く掘り下げています。
テキストコミュニケーションの重要性
面白かったのが、ドキュメントに限らずテキストコミュニケーションの重要性についても書かれている点です。
よく、「チャットを打つよりも話す方が早い」と言う人がいますが、そういう人はそもそも文章としてまとめられるレベルまで思考が整理できていないのかもしれません。
そんな状態で会話をしたとしても「なんとなく伝わったつもり」で終わってしまい、後になって認識齟齬や言った言わない問題に発展してしまいそうです。
エリック・エヴァンスのドメイン駆動設計

ドメイン駆動設計というソフトウェア設計の考え方について提唱したエリック・エヴァンスの書籍です。
ドメイン駆動設計について調べるととにかくこの本が出てくるので、とりあえず読んでみようと思って読みました。
本書は、複雑なビジネスロジックをソフトウェアに実装するときの考え方である「ドメイン駆動設計」について解説しています。
読み進めていく上で、ドメイン駆動設計の専門用語を先にある程度抑えてから読んだ方が、頭に入りやすそうです。
ドメイン駆動設計の基本的な考え方と用語
ドメイン駆動設計では、「ドメイン(システムを作るために必要な情報)」をベースにして設計を進めていきます。
しかし、ドメインだとシステムに使わない余計な情報も混ざってしまうので、シンプルに整理(モデリング)した「ドメインモデル」を作成します。
そして、ドメインモデルから実際にコードに落とし込んだ「ドメインロジック」を作成します。
また、この「ドメイン」「ドメインモデル」「ドメインロジック」の3つの中で、認識齟齬が無いようにする必要があります。
そこで登場するのが「ユビキタス言語」です。
これは上記3つの中で、同じ概念は同じ言葉で表現しようという考え方です。
例えば運送業務システムを作る場合、担当者は「販路」という言葉を使っているのにエンジニアは「ルート」という言葉で表現するなど、別々の表現を使っていると、思わぬ認識齟齬が起きるかもしれません。
また、途中から参加してきた人は「販路」と「ルート」という別々の概念があるのかな?と勘違いしてしまうかもしれません。
このようなことがないためにも、言葉を定義していく必要があります。
ドメイン駆動設計は設計から開発までにフォーカスしているため触れられていませんが、このユビキタス言語はデザイナーにも共有する必要がありますね。
チーム開発実践入門 共同作業を円滑に行うツール・メソッド

『チーム開発実践入門 共同作業を円滑に行うツール・メソッド』
下記のような、複数人で開発するツールや手法について説明した本です。
- バージョン管理
- チケット管理システム
- CI(継続的インテグレーション)
- 継続的デリバリー
- リグレッションテスト
具体的なツールやワークフローについても細かく解説されています。
10年近く前の本なのですが、根本の考え方が学べました。
最適なプラクティスはケースバイケース
本書の中で最初に紹介される基本的な考え方に「最適なプラクティスはケースバイケース」というものがあります。
これはチーム開発に限らず、あらゆるITツールに言えることだと思います。
どこにでも通用する万能のベストプラクティスがあるわけでなく、ツールによってメリット・デメリットや、そもそもできないこともあります。
これらをうまく見極めて、実際にプロジェクトに応じた最適解を導き出せるかどうかが重要だと紹介されています。
この考え方は本書のタイトルにもある通り「実践」的な考え方だなと思います。
ツールには開発された目的がありますから、うまく見極めて使いこなしたいものです。
UX / UI のデザインに強いWebシステムの開発と、BtoB Webマーケを支援するWeb制作を提供する
N's Creates 株式会社は、神戸三宮オフィスまで週1出社(それ以外はリモートワーク)できる「デザイナー」「エンジニア」を募集しています。
興味のある方は、カジュアル面談しますので気軽にお問い合わせください!









