タグ

ブックマーク / masuda220.hatenablog.com (4)

  • 「クラス設計の鉄則」執筆ノート - ソフトウェア設計を考える

    『Software Design 5月号』の第2特集「クラス設計の鉄則」を寄稿しました。 gihyo.jp 第2特集の概要と、今回はとりあげなかった、SOLIDGoFデザインパターン、凝集度と結合度について、私がどう捉えているかを説明します。 概要 第2特集のクラス設計の鉄則は3章で構成されています。概要は次の通りです。 第1章:クラス設計再入門 モジュール性・関心の分離・依存関係を意識する 第2章:迷わないクラス設計の指針 アプリケーション開発の実践例から考える現代的な設計方針 第3章:設計の落とし穴対策 コードから問題を検知する着眼点と改善方法 第1章:クラス設計再入門 この章は、クラス設計の基礎として、ソフトウェア設計の三つの視点を紹介しています。 ソフトウェアシステム構築の基課題として「複雑さ」と「変更容易性」に焦点を合わせ、二つの課題に取り組むための考え方として、「モジュール

    「クラス設計の鉄則」執筆ノート - ソフトウェア設計を考える
  • 『ドメイン駆動設計』の解説記事を書きました - ソフトウェア設計を考える

    日(1月18日)発売された、Software Design誌 2023年2月号の第一特集で「ドメイン駆動設計入門」を書きました。 執筆の意図と記事の概要を簡単にまとめておきます。 Software Design 2023年2月号|技術評論社 執筆の意図 特集のサブタイトルにある通り「設計力を磨きたい」読者が、ドメイン駆動設計の基礎を知ることで「設計の手法とアイデアの引き出し」を増やすことの役に立てればと思い執筆を引き受けました。 重視したこと 断片的な用語やパターンの解説でなく、ドメイン駆動設計の全体像と要点を伝える 全体像を伝えるための図や表を多めにした(ソースコードの例は少ない) 全体像と要点は、原典である『エリック・エヴァンスのドメイン駆動設計』(以下『ドメイン駆動設計』)の説明を中心にした ドメイン駆動設計の具体例として『ドメイン駆動設計』に出てくる国際海上貨物輸送の具体的な業務

    『ドメイン駆動設計』の解説記事を書きました - ソフトウェア設計を考える
  • 本の紹介『読みやすいコードのガイドライン』 - ソフトウェア設計を考える

    はじめに 良いです。コードを書く人であればだれでもが気づきと学びがあるでしょう。 特に、コードの規模が大きく長期間にわたってさまざまな関係者が読むことになるプログラムを書く人にはぜひ読んでほしいです。 gihyo.jp このから学べるのは、どちらかというと「やり方」よりも「考え方」です。 書き方の具体例というよりは、良いコードを書くための考え方を、著者の知見に基づいて丁寧かつ具体的に説明しています。 別の言い方をすると、とにかくコードの具体例で「やり方」を覚えたい、という人には合わないかもしれません。 コードの具体例もたくさん登場しますが、それは「考え方」を説明するための例であって、コードの書き方のお手やサンプルを集めたではありません。 サンプルコードはKotlinです。内容は、どちらかといえばユーザーインタフェースよりという印象です。しかし、Kotlinを知らなくてもほぼ問題な

    本の紹介『読みやすいコードのガイドライン』 - ソフトウェア設計を考える
  • 変数(variable)と値(value) - ソフトウェア設計を考える

    はじめてScalaに触れたとき、変数宣言(var)と値宣言(val)を使い分ける言語仕様に、なるほどなあ、と思った。簡単に言えば、変数(var)は再代入できて、値(val)は再代入できない。 プログラミングのスタイルとして、var宣言は命令的なプログラミング、val宣言は宣言的なプログラミングになる。どちらのプログラミングスタイルで書いているかを、varとvalで明示できるわけだ。 Javaだと言語の基の仕組みはすべてが変数。final宣言をすることで再代入をコンパイルエラーにすることはできる。Javaは、C言語やC++などの命令的なプログラミングの系譜の言語なのですべて変数(variable)というのは、とうぜんの言語仕様だった。 命令的なスタイルから宣言的なスタイルに 命令的なプログラミングでは変数(variable)を使う。宣言的なプログラミングでは値(value)を使う。 再代入

    変数(variable)と値(value) - ソフトウェア設計を考える
  • 1