はじめに

うさぎもついに設計業務を担当することに!
設計の学習におすすめのUdemy講座や技術書ってあるかな?

もちろんたくさんあるよ!
今回は評価が高いものを中心に紹介するよ!
技術書編
現場で役立つシステム設計の原則
システム設計の中でもクラス設計、ドメイン駆動設計に特化した書籍です。
システム設計の書籍としては、有名で口コミの評価も高いです。
オブジェクト指向をベースとしたクラス設計の考え方を身につけることができます。
具体的な事例、ソースコードをもとに解説しているためイメージも湧きやすいです。
「ソースがごちゃごちゃしていて、どこに何が書いてあるのか理解するまでがたいへん」「1つの修正のために、あっちもこっちも書きなおす必要がある」「ちょっとした変更のはずが、本来はありえない場所にまで影響して、大幅なやり直しになってしまった」といったトラブルが起こるのは、ソフトウェアの設計に問題があるから。日本最大級となる60万件以上の求人情報サイト「イーキャリアJobSearch」の主任設計者であり、システム設計のベテランである著者が、コードの具体例を示しながら、良い設計のやり方と考え方を解説します。
出典:Amazon
良いコード/悪いコードで学ぶ設計入門
良いコードと悪いコードを比較し、何が悪いのか、どう改善すれば保守性高いコードになるか。一から学ぶことができる設計の入門書です。サンプルコードが多く、とにかく分かりやすいです。近年、爆発的な人気を得ている書籍です。若手は是非一度手にとってみることをおすすめします。
「ITエンジニア本大賞2023」技術書部門で大賞受賞!
本書は、より成長させやすいコードの書き方と設計を学ぶ入門書です。
システム開発では、ソフトウェアの変更が難しくなる事態が頻発します。
コードの可読性が低く調査に時間がかかる、
コードの影響範囲が不明で変更すると動かなくなる、
新機能を追加したいがどこに実装すればいいかわからない……。
変更しづらいコードは、成長できないコードです。
ビジネスの進化への追随や、機能の改善が難しくなります。
成長できないコードの問題を、設計で解決します。
(こんな方におすすめ)
・ コードの設計スキルに興味がある人
・ 日々、悪いコードと向き合っていて改善したい人
・より良いコードを書きたい人
出典:Amazon
Clean Architecture 達人に学ぶソフトウェアの構造と設計
保守性の高いソフトウェアを開発するための設計の原則(単一責任の原則など)やクリーンアーキテクチャについて学ぶことができます。具体的なソースコードはなく概念的な説明が多いため、初心者は理解が難しいかもしれません。実務経験を積んだ中級者向けの書籍です。
書いているコードが変わらないのだから、どんな種類のシステムでもソフトウェアアーキテクチャのルールは同じ。ソフトウェアアーキテクチャのルールとは、プログラムの構成要素をどのように組み立てるかのルールである。構成要素は普遍的で変わらないのだから、それらを組み立てるルールもまた、普遍的で変わらないのである。(本書「序文」より)
出典:Amazon
はじめての設計をやり抜くための本 第2版
設計の目的から始まり、画面設計、バッチ設計、I/F設計、データベース設計、アーキテクチャ設計など幅広く設計知識を身につけることができます。この本を一通り読むことで各設計で出すべきアウトプットのイメージが沸くようになるでしょう。
システム開発における設計の解説書が14年ぶりにリニューアル。
エンジニアがシステムの設計を「はじめてやり抜く」ために必要な基本知識を紹介します。プログラミングの仕事をひと通りマスターし、その前工程である「設計」に挑戦しようとするエンジニアには、いくつかの乗り越えなければならない壁が立ちはだかります。
〇アプリケーション設計をどうするのか
〇データベース設計をどうするのか
〇画面・帳票設計をどうするのか
〇外部システムとの接続方式をどうするのか
〇アーキテクチャ設計をどうするのか
本書では、こうした課題の事例を示しながら、
システムをゼロから作り上げるための
実践的・普遍的なノウハウを解説しています。
出典:Amazon
システム設計のセオリー
設計や各工程の知識、スキルについて幅広く解説されています。「業界に入ったばかりで、各工程のイメージを掴みたい人」、「全体工程の中での各種ドキュメント、設計書の位置付けを知りたい人」におすすめです。
システム設計には様々な考え方があります。しかし目的は明白です。
情報システムの価値を最大化するために、ユーザーと開発チームとを橋渡しして、
「ビジネスの要件を正しくシステムの実装へとつなぐ」――これ以外にありません。
本書はその手順を明示します。各工程の目的・作業内容・成果物・留意点を示しながら、
データ・業務プロセス・画面UIといった設計対象ごとに「概要定義から詳細定義へ」
「論理設計から物理設計へ」と進める手順を説明します。
特定の開発手法や方法論に囚われることなく、情報システムを設計する上で
知っているべき原理原則、実装技術や環境変化に左右されない「システム設計のセオリー」を
厳選して集約しました。
出典:Amazon
クラウドベース開発に主軸をおいた姉妹本も販売されています。是非、併せてご覧ください。
Udemy編
【入門】システム要件定義と基本設計(実践ワークで理解する上流工程の進め方)
この講座は「これから上流工程に取り組んでいきたいと考えているエンジニア」におすすめです。
要件定義、基本設計で実施すべき内容や留意点が整理されており、上流工程に最低限必要なことはこの講座で学ぶことができます。また、実践ワークを通して成果物を作成していくので、実務のイメージもつきやすいでしょう。

- 要件定義・基本設計のアウトプット資料が作れるようになる
- 要件定義・基本設計の具体的な手順・思考プロセスを実践ワークで習得できる
- ITプロジェクトの企画推進に必要な、ビジネス・エンジニア両面の前提知識が体系的に身に付く
- ビジネス・エンジニア間のコミュニケーション能力が向上する
【超実践】ビジネス要件分析・基本設計・詳細設計をやり抜く実践ワーク講座
この講座は一つ前に紹介した「【入門】システム要件定義と基本設計」の発展編です。
同じ講師が作成しており、入門編後に取り組むステップアップとして非常に有意義な講座です。
内容も素晴らしく、要件定義〜詳細設計で作成する成果物を一通りハンズオンで作成することができます。また、口コミの評価も高く、多くの方から支持を受けているベストセラーです。
まだ受講していない人は是非一度、チェックしてみてください。

- 要件定義・基本設計のアウトプット資料が作れるようになる
- 要件定義・基本設計の具体的な手順・思考プロセスを実践ワークで習得できる
- ITプロジェクトの企画推進に必要な、ビジネス・エンジニア両面の前提知識が体系的に身に付く
- ビジネス・エンジニア間のコミュニケーション能力が向上する
リバーシで学ぶアプリケーション設計入門〜仕様の整理からTypeScriptでの実装まで〜
本講座では、「MVC」、「三層アーキテクチャ」、「ドメインモデル」、「クリーンアーキテクチャ」等のアプリケーション設計の基本概念をハンズオンで学習することができる数少ない講座です。
実装に慣れてきたプログラマがより良いコード、設計を学んでいく上で非常におすすめです。
この講座を受講することでプログラマとして一段階レベルアップすることができると思います。

- TypeScript の基礎知識と async/await を用いた非同期処理
- アプリケーションの仕様の整理や API・DB 設計の流れの例
- MVC や 3 層アーキテクチャなどの、アプリケーション設計の基本概念
- Table Data Gateway パターンや Repository パターンによるデータアクセス
- ビジネスロジックの概念と、ドメインモデルの設計・実装例
- 依存性逆転の原則を適用した、ドメイン層を中心としたアーキテクチャ
- QueryService を使った Repository の弱点への対応
手を動かして学ぶITプロジェクトの資料作成!システム開発のドキュメンテーション技術と成果物テンプレート
この講座はITプロジェクトの各フェーズでどんな資料を作るべきなのかを網羅的に学ぶことができます。
業界に入りたての方で各工程での成果物を把握したい方におすすめです。
また、3時間という短い動画で効率よく学習できるのも魅力的です。

- ITプロジェクトの中で、考えなければいけないことがわかる
- フェーズ毎に、どんな資料を作ればよいのかがわかる
- システムの設計書や会議資料を読んで、全体像を理解できるようになる
- 論理的にわかりやすい資料のまとめ方がわかる
終わりに
本記事はここまでとなります。
ご覧いただきありがとうございました。ご指摘等がございましたら頂けますと嬉しいです。
引き続き、プログラミングについて定期的に発信していきますのでよろしくお願いします!
また、もしよろしければtwitterもフォローしていただけると嬉しいです!🐢
コメント