オブジェクト指向カンファレンス2024 クソコード動画『カプセル化 Mk-II』 https://twitter.com/MinoDriven/status/1771763728234537310 下記セッションで用いたスライドです https://fortee.jp/oocon-2024/proposal/9e935d37-5480-4488-bc6d-3b9ee492106f
![クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2](https://cdn-ak-scissors.b.st-hatena.com/image/square/72d1af487fe22b4d3d425d7567e16e2de7e60b4f/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F67bc5fd888ff453096447af83b7ca3cf%2Fslide_0.jpg%3F29425800)
オブジェクト指向カンファレンス2024 クソコード動画『カプセル化 Mk-II』 https://twitter.com/MinoDriven/status/1771763728234537310 下記セッションで用いたスライドです https://fortee.jp/oocon-2024/proposal/9e935d37-5480-4488-bc6d-3b9ee492106f
はじめに DDDの実装パターンとして、エンティティと値オブジェクトというものがあります。 ドメイン駆動一般に複雑な抽象論が多い中で、コードに近く一番イメージがつきやすいコード事例として出てくるため、ここだけは何となくわかるぞ!という方もいらっしゃるのではないでしょうか。 今日はこちらの概要とそれぞれの使い道について書きたいと思います。 先にざっくりイメージ図をお伝えすると、こういう図を使って解説します。 何の目的で作るのか? ドメイン駆動設計は何を解決しようとしているのか こちらの記事で、ドメイン駆動設計のアプローチは以下の2ステップがあるということを書きました。 ドメインの問題を解決するための抽象的なモデルを作る. モデルをソフトウェア(コード)に落とし込む ※ ドメイン=ソフトウェアを適用して問題解決しようとする領域 DDDでは、このStep2の モデルをコードで表現するためのパターン
定期的にオブジェクト指向disを書いてしまってるのだけど。 とりあえずオブジェクト指向の話をすると定義が人によって違いすぎるので、改めてここでの定義を書いておくと 、基本的にはOMTの「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェアを組織化すること」 に従うのですが 「1990年に流行りソフトウェア開発のすべてを飲み込み、いまとなっては人それぞれ定義が違って技術的議論に使えなくなった、主にオブジェクトを基本単位としてプログラムを整理するやりかたを指すマーケティング用語」 という感じです。 ほとんどの場合で人によってオブジェクト指向の指す範囲が違いすぎて、技術的知見の共有には使えなくなっています。でも、いずれの定義にしろオブジェクトを基本単位にするというのは重要ではないかと。 ソフトウェアの組織化の単位としてオブジェクトを使うというのが大事で、データの搬送に構造体代
/// <summary>契約金額</summary> public class ContractAmount { public int AmountIncludingTax; public decimal SalesTaxRate; } 当然データの入れ物(以後データクラスと呼称)だけでなく、税込み金額を計算するロジックが必要です。ここであまり設計を考えないと、この手の演算ロジックはデータクラスとは別のクラスに実装されることが多いです。以下のようにControllerに実装されることが多いのではないでしょうか。 /// <summary>契約コントローラー</summary> public class ContractController { private ContractAmount _contractAmount; /// <summary>税込金額を計算する。</summary>
はじめに 私自身は今年の 7 月にドメイン駆動設計(DDD)を実践する企業に転職したばかりで DDD 実践歴は浅いのだが、最近は開発業務の他にも中途採用者の DDD 教育や 現場で DDD!2nd のドライバー役をする機会を頂くなど、DDD の布教活動にも少し関わっている。 その中で「DDD ムズイ」という言葉をよく聞いたので、DDD の実践に悩んでいる人向けにサンプル問題の解説を通して、実は DDD 自体は難しくないんだよってことを教える目的で本記事を書いた。 TL;DR(最初に結論) DDD 自体はドメインを中心にモデリングと実装をイテレーティブに繰り返す設計プロセスであり、モデリングと OOP の理解があれば誰でもできる。 難しいのは DDD 自体ではなくて、モデリングまたは OOP である。特に「良いモデル」を得ることは非常に難しい。 なので「DDD ムズイ」と感じる人はモデリング
オブジェクト指向設計実践ガイド is https://www.amazon.co.jp/dp/477418361X その名の通りオブジェクト指向の原則に沿った設計を実践しながら学ぶという内容です。 私は今年の3月からCloud Automatorを開発するサービス開発課に配属になりましたが、これまでのプログラミング経験が乏しいこともあり、 オブジェクト指向というものがいまいち掴みきれませんでした。 そこで夏頃からこの書籍を読み始めたのですが、これまで頭の中でぼんやりしていた概念が丁寧に論理立てて整理できた感覚があり、とても勉強になりました。 オススメの書籍ですので、今回はこの書籍の基礎部分をPythonでご紹介したいと思います。 なぜPython? 私自身、普段の業務では主にRubyを利用していますが、 社内の他部署ではPythonが主に使われていて、新人研修で初めて学んだプログラミング言
Javaプログラミングにおけるextendsやimplementsの使い方は、それなりの難しさはあるものの、プログラムを動かすという狙いがはっきりしているだけに、わりと扱いやすい。 一方、ドメイン分析における汎化(generalization)は扱いが難しい。 汎化そのものは「is-a」の関係、集合とその部分集合というように考えれば、モデルの中でいくらでも使う場所が出てくる。しかしながら、汎化を無軌道に乱発すると、後々困ったことになるのである。 不必要にモデルが複雑化するという"分析中毒(analysis paralysis)"という問題もあるけれど、さらに深刻なのは設計・実装の段階で実装モデルにうまくマッピングができず、分析モデルと実装モデルに乖離が出てきてしまうことである。こうなると、正本は実装モデル上にしかないという状況となり、分析から設計、実装まで抽象度の異なった同一モデルを共有す
iPhoneの一般修理店は予約なしでも来店できる? 基本的には飛び込みで修理に行ってもOK iPhoneを置いていたソファにうっかりと腰かけてしまい、パネルを割ってしまった、こんな時はスマホの一般修理店へ行きましょう。画面割れは、スマホやタブレットの故障原因として非常に多いものです。予約なしで突然お店に行っても平気かしらと、不安に思う方々もいらっしゃるかもしれません。結論としては特に問題はなく、予約なしで訪問しても画面割れの修理はお願いできます。 ただし他のサービス業のお店同様、予約なしの場合、お店が混雑していると順番待ちをしなければいけないです。特に繁盛しているスマホ修理のお店だと、行列が店内で出来ており、予約なしだと、自分の順番が巡ってくるまで長時間待たされる可能性があります。平日の朝、昼なら利用客が少ない場合が多く、飛び込みでも比較スムーズに修理が頼めます。 予約は入れた方が時短に、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く