きり丸の技術日記

技術検証したり、資格等をここに残していきます。

設計

ソフトウェア工数見積で意識すべきABPとHPとパーキンソンの法則(CCPMの文脈)

よくABPとHPの正式名称を忘れるので自分用にまとめます。 前提 クリティカルチェーン・プロジェクトマネジメント 略称はCCPM ABPとは ABPとはAggressive But Possibleの略称です。日本語訳としては「積極的に行えば可能」「頑張れば可能」です。私の感覚では…

Javaのtransientで本来は関わりのないデータであることを強調する

本来の使い方とは異なります。黙って使うと怒られるかもしれないので、導入の際は念のため確認してください。 Javaにはtransientという修飾子があります。これを使うことでコードで表現できることが増えます。 環境 Java 15 ユースケース コードの表現力を増…

よく使うInterfaceの活用方法【Java】

Java Advent Calendar 2022の8日目の記事です。指摘コメントよろしくお願いします。 Javaに限らず、interfaceは使い道を理解することは難しいです。この記事では、私が普段使用しているinterfaceの使い方実例を記すことで、情報共有を行うことを目的としてい…

Javaでストラテジーパターンを素振りする

ストラテジーパターンというGoFのデザインパターンが良いコード悪いコードでも紹介されていたので、素振りします。 自分の言葉で上手な言語化ができていないので、メリットは参考情報や良いコード悪いコードの購入、または別の方の記事を参考にしてください…

【設計論】文字列だと単純にラップした型でも便利

ちょっとポエム寄りのお話です。 プリミティブ型をラップした型を作成することは、対象の業務を表現できることがメリットです。たとえば、主キーのIDが文字列だった場合に、次の制約があった場合でもプリミティブ型では伝えられません。 頭文字3桁がシステム…

私が好きなアーキテクチャ(ポートアンドアダプター)を説明する

新人育成用に自分が知っている知識を棚卸するための記事です。なお、解釈が誤っている可能性は十分にあります。 キーワード ポートアンドアダプター ヘキサゴナルアーキテクチャ ミュータブル/イミュータブル 腐敗防止層 ポートアンドアダプター(ヘキサゴナ…

腐敗防止層を意識して綺麗なドメインを保ちたい

Qiitaに書いた記事のお引越し記事です。 本記事は ドメイン駆動設計#1 Advent Calendar 2019 20日目の記事です。 こんにちは、会社でエリックエヴァンスのDDDの輪読会が開催されていて、半年経ってようやく飲み込めてきた程度のレベルのきり丸です。 注意 私…

基本型以外を使って設計レベルアップ!(Primitive ObsessionとFCC)

いいコードとは、悪くないコードのことを指すと考えています。 そして、悪くないコードを目指していくには、Code Smellsに注目すると改善できます。 今回の記事では、Code SmellsのなかのPrimitive Obsession(基本データ型の執着)に注目します。 Primitive…

REST APIのレスポンスJSONでデータが無い時の表現

REST APIで対象の項目にデータが無い時の表現方法が分からなかったので纏めました。 大きくは2つ、派閥があります。 null undefined データ項目を定義しない null派閥 RFC8259でJSONが定義されています。 JSONの値としては、オブジェクト、配列、数値、文字…

SLAP(抽象度統一の原則)を覚えてリファクタリングをしよう

SLAPという抽象度統一の原則をご存じでしょうか。 エンジニアであれば、覚えておくと1つレベルアップできるキーワードとなりますので、覚えておくと便利です。 ぜひ、この記事で覚えていってください。 この内容は以下のLTの中で、リファクタリングの一環と…

UMLは覚えておくべき(ステートマシン図)

はじめに UMLは覚えておくべき(概念編) と UMLは覚えておくべき(ユースケース記述編) と UMLは覚えておくべき(クラス図編) の続編です。 UML関連の記事はこれでおしまい。 UTPっていうUML Test Profileとかいう面白そうなものもありますが、少なくとも今すぐ…

UMLは覚えておくべき(クラス図編)

はじめに UMLは覚えておくべき(概念編) と UMLは覚えておくべき(ユースケース記述編) の続編です。 クラス図は、重要さを知ってる人は多いと思います。 なので、サクっと自分がなんで重要だと思っているかを記載します。 クラス図で覚えておくべきもの 個人…

UMLは覚えておくべき(ユースケース記述編)

はじめに UMLは覚えておくべき(概念編) の続編です。 個人的に、ユースケース記述はアジャイル開発では必須だと考えています。 アジャイル開発でなくても、自分の整理のために作っておくのは有効です。 TDD,BDDをもっとうまくする訓練にもなるので、一度は作…

UMLは覚えておくべき(概念編)

UMLは優秀だと思っていますが、何を覚えておくべきで、何は勉強しなくていいのか、という点を自分の言葉で言い換えなおしておくべきか纏めたことはありませんでした。 なので、今回の記事ではUMLの大事さ、覚えておくべきダイアグラムを纏めたいと思います。…