アーキテクトの仕事

開発チームにアーキテクトがいないなと感じてしまうような、残念なコードスメルの例

まったく個人的なモチベーションの問題から、前回の最終更新から2年以上が経過してしまい、多くの読者のみなさんにはご心配をおかけいたしました。「プログラミングに関して調べたことや日々感じたことをメモとして残していきたいと思います。」というもとも…

開発コストや技術リスクを考えない「上流設計」がシステムの複雑化と大規模な障害の原因となっているのでは?

皆さん、明けましておめでとうございます。昨年の後半は私自身SI業界からWeb業界へ転職したことなど仕事環境の変化があり、ブログの更新頻度も鈍りがちになってしまっていましたが、本年もどうぞよろしくお願いいたします。 さて、ちょうど、一年前のお正月…

日本でパターンが広まらない理由の一つは「ワンパターン」などのネガティブな和製英語のせい?

ソフトウェアアーキテクトの作業の一つに、システム全体の設計思想や開発方針を記述するアーキテクチャ説明書を作成をする仕事があります。そして、そのような設計書を記述する際に私はアーキテクチャパターンやデザインパターンの用語を利用します。例えば…

staticおじさん達に伝えたい、手続き指向とオブジェクト指向の再利用の考え方の違いについて

何が良いプログラムかという点はもちろん人やコンテキストによって異なりますが、少なくともプログラマーとしての私の信念としては、 機能拡張や変更が容易なプログラム 単体試験によって正しく動作することの検証が容易なプログラム どういった内容が記述さ…

ConQATを利用してソースコードの品質をチェックする

ある程度プログラマーとして経験を積めば、ソースコードを読んだときに、そのソースコードの良し悪しというものは、嗅覚を使って直感的に嗅ぎ分けることができるものです。実際、そのように体の感覚を使ってこのコードは不吉だと感じるところは実際大いにあ…

こだわりのある職人プログラマーほど、無駄なコードを少なくしたいものという事実を理解してほしい

ちょっと興味深いエントリが目に留まりました。「プログラミングへのこだわり」を方向づける: 設計者の発言基本的に、この方自身もプログラマーや開発者をされているようですし、他のエントリを読んでも「プログラマーの地位向上をすべき」ということで、私…

EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る

十年一昔といいますが、文字通り一昔前の書籍ではJ2EEのEJBコンポーネントはプロセスが分散化されたリモート呼び出しにより処理を行う分散コンポーネントとして説明されています。そして、残念ながら現状Java EE関連の日本語の書籍はこうした古い時代に書か…

O/Rマッピングで緩和されるインピーダンスミスマッチには静的と動的の側面がある

一般的な業務アプリケーションではデータを永続化するために、RDBMS(関係データベース管理システム)を利用します。RDBMSでは大量のデータを効率的に検索したり、集約してレポートを作ったりすることが得意ですし、一般的に業務システムで求められるトラン…

自分は恵まれた環境で仕事をさせてもらっていることに感謝しなくてはいけないと思う

私の会社は一般的なSIerと比べてどちらかというと技術力を売りにしている会社だと思いますが、その中でも、現在はアーキテクトチームと呼ばれる部署で働いています。そういうこともあって、自分の周りには40歳過ぎてもプログラミングしているような人もたく…

Javaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その1)

昨日書いたSI業界(日本)のJavaプログラマーにはオブジェクト指向より忍耐力が求められている? - 達人プログラマーを目指してが予想以上に大きな反響があり驚いています。特に、あの有名なひがさんにもSI業界の現状と未来に関してコメントをしていただきま…

きのこ本のアーキテクト版

すべてのプログラマーに読んでもらいたい本で紹介した「きのこ本」があまりにも良かったので、同シリーズのアーキテクト向けの姉妹書としてソフトウェアアーキテクトが知るべき97のこと作者: 鈴木雄介,Richard Monson-Haefel,長尾高弘出版社/メーカー: オラ…

Javaプラットフォームにおけるコード自動生成の考え方の変遷

普段は上位のフレームワークや製品の中に隠蔽されているため、一般の業務アプリケーションのプログラマーには気づきにくいことですが、同じJava言語の環境といっても、時代によってコード自動生成に対する考え方は変わってきています。建材が木、石、鉄筋コ…

JUnit作成は本当はプログラミングスキルの必要な作業です

多くの開発プロジェクトで試験の自動化をきちんと行えているところはどのくらいの割合あるのでしょうか?理想的なプロジェクトでは単体試験はもちろん、画面の打鍵テストや性能のベンチマーク試験など多くの試験を自動化するのが良いとされていますが、私の…

フレームワークごとの生産性の違いを定量的に計算する方法があったらいいのにな

アーキテクトの重要な仕事の一つに、フレームワークの選択があります。そこで上流の方から毎回必ずと言っていい程求められるのは、選択肢となるフレームワークごとの生産性の違いがどのくらいあるか「定量的に」教えてほしいというものです。たとえば、Strut…

OSS Javaフレームワークはどんどん高度化している

以前、いつまでStruts1を使い続けるの?という記事を書きました。技術から離れているSEの方は、いまだにJavaのオープンソースフレームワークと聞くとStrutsくらいしか思い浮かばないという人も多いと聞きますが、その記事では、Strutsの問題点をあげて、そろ…

もしSIerがまともなエンジニアリングの会社だったとしたらどんな仕事が考えられるか?

以前にも何度か書いたように私自身一応SIerと呼ばれる会社で(肩書き上SEとして)働いているのですが、このブログでSIerのことについて書くと、おそらく技術力のある優秀なPGの方からだと思うのですが、 なぜみんなSI業界から飛び出さないんでしょうね 真っ…

プログラマーの才気

今日会社の上司から「読んでみて」ということで、以下の本を渡されました。ソフトウェア要求と仕様―実践、原理、偏見の辞典 (新紀元社情報工学シリーズ)作者: マイケルジャクソン,Michael Jackson,玉井哲雄,酒匂寛出版社/メーカー: 新紀元社発売日: 2004/04…

SIerがExcel→Javaのコード自動生成をPGに押し付けるのは善か悪か?

以前Java EEや.NETはCOBOLやVB6よりも本当に生産性が高いか? - 達人プログラマーを目指してにて 何でもかんでもとにかく自動生成させたがる。特にExcelなどの表から大量のクラスを自動生成させるなど。たいていそのようにして生成されたクラスはゴミで保守…

アーキテクト向けのパターン本

ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系作者: F.ブッシュマン,H.ローネルト,M.スタル,R.ムニエ,P.ゾンメルラード,Frank Buschmann,Hans Rohnert,Michael Stal,Regine Meunier,Peter Sommerlad,金沢典子,桜井麻里,千葉寛之,水野貴…

アーキテクトもプログラミングするべきか?

プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して で以下のようなコメントをいただきました。 アプリケーションのアーキテクトという役割についてちょっと理解が曖昧だったのがこのエントリ読んでだいぶスッキリした。今度…

Spring MVCのススメ

先日、Struts1に代わるWebフレームワークの選択 - 達人プログラマーを目指してにて、現状アクションベースのMVCフレームワークとしてはSpring MVCが有望ということを書いたのですが、今までStrutsの影に隠れてあまり人気がないようですね。*1これから何が流…

Struts1に代わるWebフレームワークの選択

先日書いたいつまでStruts1を使い続けるの? - 達人プログラマーを目指してが想像以上の反響の大きさで驚いています。こんなにたくさんブクマいただいたのはブログ開設以来初めてです。政治的理由でフレームワークが最初から天下り的に与えられてしまい、結…

いつまでStruts1を使い続けるの?

営業支援で提案中の案件があるのですが、現状CGI+Perlで作られているコンシューマー向けサイトがあるが、 CGIなので性能が悪い コンテンツの修正が大変なのでMVCできちんと作りたい 実績のあるJavaとStrutsをメインに検討している とのことです。今時多くの…

JavaEE、.NETの開発をするプログラマーが理解しておくべき設計のパターン

エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)作者: マーチン・ファウラー,長瀬嘉秀,株式会社テクノロジックアート出版社/メーカー: 翔泳社発売日: 2005/04/21メディア: 大型本購入: 10人 クリック: 635回この商品…

ビルドシステム構築スキルの重要性

忙しいプロジェクトだとどうしてもおろそかにされがちなところですが、maven2やant+ivyを使ってビルドやリリースの自動化を行い、Hudsonなどの継続的結合環境上で動作させることは、開発生産性向上のために欠かせないことです。ビルド自動化はアジャイル開発…

ソフトウェアアーキテクトほど魅力的な職業はない!?(アメリカでは)

ちょっと興味深い記事を見つけました。 大きく違う日米でのSEに対するイメージ | 日経 xTECH(クロステック) アメリカでは人気投票でバービー人形の新しい職業にITエンジニアが選ばれたり(プログラマーのバービー)*1、ソフトウェアアーキテクトがアンケー…

アナリシスパターン - 非常にとっつきにくいが読めば読むほどに良さがわかる名著

アナリシスパターン―再利用可能なオブジェクトモデル (Object Technology Series)作者: マーチンファウラー,Martin Fowler,堀内一,友野晶夫,児玉公信,大脇文雄出版社/メーカー: ピアソンエデュケーション発売日: 2002/04メディア: 単行本購入: 7人 クリック:…

プログラミングと設計は本来切り離せないものなのでは

最近はアーキテクトという役割で客先に常駐し、フレームワークの選定をしたり、事前に共通部品を設計したりする役割を担う仕事を引き受けることが結構あります。そこで運よくお客様のマネージャーがオブジェクト指向開発の経験が十分にある方だと、IDEなどの…

軽量Javaフレームワークを世の中に広めた名著

Expert One-on-One J2EE Development without EJB作者: Rod Johnson,Juergen Hoeller出版社/メーカー: Wrox発売日: 2004/06/18メディア: ペーパーバック購入: 1人 クリック: 8回この商品を含むブログ (24件) を見るこの本を読んだのは5年以上前のことですが…

侵略的なフレームワーク

SpringやSeasar2などの軽量なフレームワークが登場し、POJO、DI、AOPという考え方が今ではすっかり浸透してきているのかと思いきや、ぜんぜんそんなことはないみたいです。客先でも(主に社内での)実績最優先という考え方から、最近のOSSフレームワークには…