戦略と戦術
役半年間、このブログを書き続けています。システムの検討も具体的になりつつありますが、7月頃はもっと概念的な思考をしていました。 自分で読み返して、ハッとする箇所もありました。もう一度全体を整理する時期なのかもしれません。
既に定番だと思いますが、今頃たどり着きました・・ J2EE パーターン カタログ Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle J2EE エンタープライズアプリケーションの設計 Oracle Technology Network for Java Devel…
WebサービスのJAX-RS、ORマッパーのJPAなど、Javaの開発では今後ますますアノテーションが使用されると思います。アノテーションはインタフェースとは異なる方法ですが、上位が下位に依存しない新しい仕組みを提供出来ると思うのです。フックハンドラを継承…
これらのパターンがカタログに追加されている、特にプレゼンテーション部分の追加パターンは充実している。 Martin Fowler: eaaDev
MicrosoftのMSDNでソフトウェア開発の為のナレッジベースが公開されている。 [マイクロソフトのアプリケーションアーキテクチャガイド、第2版] Microsoft Application Architecture Guide, 2nd Edition | Microsoft Docs [ここのリンクはまさに知識の宝庫!…
MicrosoftのMSDNにpatterns&practicesというソフトウェアアーキテクチャのリファレンスがあるが、その関連サイトでRIA(リッチインターネットアプリケーション)の設計構造について解説されていた。 [Google先生の翻訳] Google 翻訳 [原文はこちら] CodePlex A…
遅ればせながらDomain Driven Designが熱い、まだまだ理解が全然足りないがOOの現時点での集大成的なものを感じている。 マーチン・ファウラーのDDDについての考察 EvansClassification InfoQのDDDについての実践的な構築方法 ドメイン駆動設計・開発の実践 …
何をするにも、誰かの影響を受けることが大切だと思っている。芸術や音楽でも誰かのマネをすると上達が早い。優れた物を、とことん観察・研究して本質を得てからオリジナリティを出しても決して遅くない。ソフトウェア開発も誰かのマネをしようと思う、正確に…
OOのUMLとRDBのER図、どちらもシステムの抽象概念をモデリングすることが出来ると思う。ここに来て、UMLでシステムの概要を検討しながらクラス仕様に落としていく行為と、データ構造をシンプルに表したER図を徐々に具体化してデータベーススキーマに落として…
やはりデータモデリングは重要だと思う、RDBやSQLはそんなに苦手ではなく、むしろ好きな分野だが、まだ知識と実践が足りていない。OOAと並行してDOAに取り組む必要がある。
無理にMVCアーキテクチャに当てはめる必要はないかもしれない。欲しいのはプレゼンテーションレイヤとドメインレイヤの分離なんだ。
MVCがObserverパターンで実装されることに疑問を感じた、GoFのObserverパターンはSubjectのメソッドから起動されるはずだ。 MVCアーキテクチャをObserverパターンで実装する場合、ModelがSubject役だ、ClientからはModelのメソッドから起動されるべきではな…
UMLでモデリングすることの重要性に改めて気付いた、いやむしろソフトウェア構造の一部がシンプルなUMLで表現出来ないシステムでは駄目ではないだろうか?実装の詳細部分をUMLでモデリングする必要はないと思うが、仕組みの骨格部分を検討するには、UMLを使…
もう大人しく既存のDIコンテナフレームワークを使用するのが賢明だと思うのだ。誰しもが具象オブジェクトの生成を最後まで保留する為に、ファクトリクラスを作った筈だ。また、リフレクションで生成すること以外に必要もない、空実装の別名サブクラスを量産…
一度立てた戦略は変更するのは困難だが、状況に合わせて変更せざるを得ない場合もある、常に柔軟な対応が必要となるんだ。インタフェースも同様だと思う。変更するのが困難であるという事実は初めから判っている、だからこそ準備を怠るなって事なんだ、常に…
以前このブログに書いた内容 戦略と戦術とは? 戦略(strategy:ストラテジー) 全体的な方針。 変更は困難。 戦術(tactics:タクティクス) 戦略に基づいて細かい個所を決める。 戦略に基づいていることが必須。 変更は可能。 この様に考えてはどうか? イ…
JavaやC#などの言語では、インタフェースとクラス(※含む抽象)の2種類の方法がある。 Microsoftは.NETで、クラスでオブジェクト変数の型を指定するように推奨しているが、私は逆にインタフェースで指定する方が好ましいと思っている。インターフェースの場合…
インタフェースを抽象クラスで隠蔽して、具象クラスにはオーバーライドしたフックハンドラのみ実装する。 ホットスポットが明確であり、確実に呼び出される構造が本質なんだと思う。プログラム構成を大きく捉え、抽象から呼ばれる仕組みを作り出す。絵画のデ…
世の中の出来事には全て2面性がある、インタフェースも同様だと思う。 あちら立てればこちらが立たぬ・・オブジェクト指向も万能ではなく、あまたある開発手法の一つに過ぎないのか?
気負っていては前に進めない、そもそも無駄な努力など存在しないと思うのだ。どこかで必ず自分の力に変わる、そうやってここまで来たんじゃないのか?急がば回れの精神だ、大きく考えよう。一見、何の役にも立たないと思われる事柄から、インスピレーション…
Twitterは面白いと思う、未来の情報通信の姿のミニマム版といったところか。はてなに足りないのは拡張性(API)だと思う。閉じてちゃダメなんだ、サービスを公開してあとは自由に遊んでもらう精神だ。
C#でいきますと言っておきながら、一向にその方向に進まない。そもそも何が必要なのか?長期的な開発戦略を自分の中にイメージすることだ。総合的な力がないとこの先戦えない、刀を常に磨いていかなければならない。ブログに日記を書いているうちに自分の考…
Googleのアクセス解析を利用している、現代を生き抜く為には情報を分析するスキルが必要不可欠だ。客観的なニーズと自身の戦略がマッチングしていく方向に自らが進んでいかなくてはならないからだ。 昨日はインドからアクセスがあった、ある程度ブログ内を眺…
重要性に気付くことも出来た、Googleドキュメントの威力は絶大だ、これはアジャイルだ。願わくばGoogleドキュメントでUMLも描けるように機能アップしてくれたら便利だが、贅沢というものか。また、とにかく書き続けることに意義があることも分かった、ドキュ…
己を信じて旧態依然を打ち破るのだ、そこに客観的な結論など出てくるはずもない。 個人の信念が、全体の目標の為に妥協を強いられることは必然なのか?そうだ引力が必要なんだ、影響力を勝ち取るのだ。
良い仕組みを構築する仕組みを作り出す仕組みを日々考えている。 Googleドキュメントで外部に公開する方法をまとめた。とりあえず毎日実践してみよう。 http://docs.google.com/View?id=dgt6tpwt_5cz67nmcx
遠くの山が青く見えるのは、簡単に言うと青色以外の反射光が目まで届かないからだそうだ、近くの植物の葉を見ると、青の他に赤と緑の光も含まれた反射光を見ているので、本来の緑色に見える。5歳くらいの子どもがお絵かきで山を描く時には、たいてい緑で塗…
物事をゼロから生み出すことは非常に困難だ。せいぜい既存の仕組みをアレンジすることで、多少なりとも独自性を付加するのが精一杯だ。新たな発想を阻害するのは、固定観念に囚われてしまうからだろうか。そこで何らかの方法で思考を拡大することが必要とな…
ただそこに辿りつきたいんだ、見た目が悪いポンコツ車でもいい、多少効きが甘いブレーキでも問題ない。でも安全運転は忘れるな、必ずしも法定速度を守る必要はないが、他人に気を配り流れに身をまかせろ。心配するな、必ずたどり着く、行き先が判っているん…
システム手帳を持ち歩いている、ふと浮かんだアイデアを書き残すことはとても重要だと思う。だがシステム手帳にメモを書き残すことすら躊躇してしまう時がある。これはでは拙い、なんか整然とまとまっていないと気がすまないからだろうか?とにかく書くのだ…