JJUG CCC 2018 Fall 2018-12-15T16:45+09:00 #ccc_e6 http://www.java-users.jp/ccc2018fall
![コードをどまんなかに据えた設計アプローチ - Speaker Deck](https://cdn-ak-scissors.b.st-hatena.com/image/square/bb84315386bfa311421c1cacf67084f141b6dc69/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fa8bb0866f87c4c1da18793db49f5b9e0%2Fslide_0.jpg%3F11456743)
設計するとき、「このオブジェクトの責務は何だろうか?」とか「この責務に名前をつけるなら何か?」とか、責務について考えることがよくあります。そもそもその責務とは何か、という根源的な疑問について再確認すると共に、ドメイン駆動設計の観点からドメインオブジェクトの責務についても考えてみたいと思います。 責務とは 困ったときの古典引用。もう絶版になった、オブジェクトデザインという、書籍を紐解いてみましょう。DDDからの引用が多い書籍で、DDDの設計スタイルは、この書籍で紹介する「責務駆動設計(responsibillity-driven design)」の原則に従うことが大きいとされています。 この書籍によると、「責務」には以下が含まれるそうです。 「4.1 責務とは何か」 オブジェクトが行う動作 オブジェクトが持つ知識 オブジェクトが他に影響を与える主要な判断 これらの言葉を身近な言葉で置き換える
この記事は、開発を持続可能にできるようなアーキテクチャとその適用方法を考察するものです。 骨子はできていますが、実装経験をフィードバックして詳細を若干変更するかもしれません。 勉強不足な点もあるので、意見を歓迎します。 開発においてよくある問題点 ビジネスロジックの本質が何だったか見失う。ソースコードのどこまでが業務上の関心で、どこからがそれを実現するための技術上の関心か分からなくなる。 入出力双方向の処理が散在して処理が追い切れなくなる。特にイベント処理でどこに飛ぶかわからないコールバック地獄になる。 初期化・つなぎ込み・統合者的オブジェクトが小さな機能単位で生まれて統一感が無くなる。 状態を持つ値が大量に散在して副作用を起こしバグを生む。 これらの問題の結果、小さな単位ごとに個人のノウハウで"良い"設計がされ、機能を追加しようとしたときにどういう方針で行えばよいか分からなくなる。 解決
システムエンジニア Advent Calendar 2016 の 15 日目です。システムエンジニアなら避けては通れない設計について考えたことを書いてみようと思います。 設計ってむずかしい システム開発の様々な局面で「設計ってむずかしいなあ」と思うことがあります。細かいところはシステムの規模や自分のポジションによって変わりますが、だいたい以下に挙げたようなことで困ることが多いです。 設計 なにを、どこまで、どんなフォーマットで書くといいんだろう? 各ドキュメントはどうやって関連付けるといいんだろう? 基本設計書と詳細設計書はなにが違う? 開発 なんでこういう設計になっているんだろう? 設計されていない組み合わせのデータはどう処理すればいいんだろう? 試験 試験データのパターンや量はどれくらい用意すればいいんだろう? 運用 設計と実装が乖離していてなにが正しいのか分からない... 仕様変更や
統一モデリング言語(とういつモデリングげんご、英: Unified Modeling Language, UML)は、ソフトウェア工学で用いられる、汎用的かつ開発方面に特化させたモデリング言語である。システム設計を視覚的に図式化しての標準化されたモデリング手法の提供を目的にしている[1]。UMLの略語で呼ばれることが多い。オブジェクト指向分野でよく用いられている。 UMLは、数々の技法が乱立していた当時の業界に、標準化されたモデリング手法を普及させようとする目的から企画され、1994~95年のラショナルソフトウェアにて最初の版が作成された。グラディ・ブーチ、イヴァー・ヤコブソン、ジェームズ・ランボーらの手によるもので、彼らはスリーアミーゴスと呼ばれている[2]。彼らは96年までその改良を続けた[3]。 1997年にUMLは、Object Management Group(OMG)の標準モデ
注釈: CASH LAYER:キャッシュレイヤ FRONT END:フロントエンド ASSET SERVE:アセットを供給 WEB SERVER W/ROUND ROBIN FAILOVER:ラウンドロビンとフェールオーバーを実装したWebサーバ THE CLOUD:クラウド ALL READS! :全ての読み込み WRITES:書く READS:読む MASTER:マスタ INPORTANT POINTY THINGS:重要な鋭い情報 MULTI MASTER DB CLUSTER:複数のマスタからなるデータベースの集合体 「エンジニアはまずアーキテクチャの全体像から始めるべき」、というのが先人たちの知恵からの教訓となっています。データベースを使ったサービスが他のサービスと関係する様子を、線や矢印で表したのが上の図です。キャッシュレイヤ、ロードバランサ、その他の複雑な形も上図の情報フロー
概要 XEAD Application Driverは、企業システムを開発するための軽量プラットフォームです。同梱されているXEAD Application Editorを用いて仕様書を作成するだけで、XEAD Application Driverがその内容を読み込んでシステムを動的に立ち上げます。開発作業の生産性向上のために、また、業務知識学習のためにご活用ください。 インストーラ(Win専用)のダウンロード β版について XEAD Application Driverには、最終的に7種類程度の「処理パターン」が組み込まれることになりますが、現在はそのうちの4種類しか完成していません。それゆえに、サンプルとして同梱されている販売管理システムも未完成です。 改善と不具合修正の履歴(一部) 感想、バグ報告、改善提案を歓迎します。バグについては、バージョンナンバーとともに再現手順を
以前職業プログラマーなら必ず読むべき「Code Complete」 - $shibayu36->blog;や補足 - 職業プログラマーなら必ず読むべき「Code Complete」 - $shibayu36->blog;で紹介したコードコンプリートを再読した。 Code Complete 第2版 上 完全なプログラミングを目指して 作者:スティーブ マコネル日経BPAmazonCode Complete 第2版 下 完全なプログラミングを目指して 作者:スティーブ マコネル日経BPAmazon 一年前はどちらかというと、コードのスタイルの話とか、条件をどうやって綺麗に書くのかとか、コメントはどう書くのかということを学びたくて読んだけど、今回はクラス設計をどうしていくべきかとか、チームでのエンジニアリングをどうしたら良いかとかを中心に読んでいった。 やっぱり学びたいと思っている内容が違うとそ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く