セミナー通信:受講者のみなさんへ

■ 記事一覧
Date: Sat, 23 May 2009 15:34:43 +0900
Subject: 《セミナー通信》受講者のみなさんへ@2009/05/23
From: kotsubu3@gmail.com

------------------------------(きりとれません)------------------------------
Jython2.5 の正式リリースが待たれる中で、
過去のセミナー課題に手を加えて、再構成したものを公開しています。


http://d.hatena.ne.jp/kotsubu-chan/20090419
Java プログラマーのための Python 導入ガイド


セミナー課題を準備するときに気を配るのは、
各テーマをいかにサンプルプログラムに盛り込むかです。
また、作成した課題は、そのままツールとしても活用できて、
システム開発にも役立つ機能(の雛形)を提供することです。


課題のための課題にならないように、心掛けているつもりです。


... zap ...
今回用意している課題のひとつは、過去の課題を掘り起こしたもので、
JFC/Swing とともに、デザインパターンを習得する狙いがあります。
Python の拡張モジュール os/sys/time によって得られる情報を、
いかに効果的に提示できるかが鍵となります。


JTree/DefaultMutableTreeNode を利用するとともに、
GoF〉Composite/Iterator/Visitor を導入することで、
その相乗効果について考察します。


これらの相乗効果は、コーディングにも反映されます。
従来の、構造化プログラミングには定番の「if/for が不要」になるので、
OOP の特徴を活かした、簡潔で見通しの良いコードを記述できるようになります。


... zap ...
最初にこの課題を用意したときには、単一モジュールでしたが、
今回は、複数モジュールに再構成しています。
すると、暗黙のうちに〈GoF〉Mediator を導入することになり、
Swing を利用するだけで〈GoF〉Observer を導入することにもなります。


デザインパターンを導入するのは手段のひとつであって、
それを導入することが目的にならないように注意が必要です。
また、JFC/Swing が提供するフレームワークと競合する場合もあるので、
うまく折り合いをつけないと、むしろ逆効果にもなりかねません。


Visitor を導入する場面では、あえて異なる戦略を盛り込みました。
それぞれのメリット/デメリットを考察して、比較検討するためです。

また、GoF を鵜呑みにすると損をする場面もあり、
メタプログラミングを導入して、より洗練されたコードを記述する術を紹介します。


http://d.hatena.ne.jp/kotsubu-chan/20070520#Visitor
・Let’s GoForward: GoF を反面教師に…


Java/C# で作成されたレガシーシステムを、
Python などで再構築するときには、役立つでしょう。

⇒ 続きはこちら GoF を反面教師に


... zap ...
限られたセミナー時間を有効に活用するために、
最初にデザインパターンを導入する前のソースコードを提供します。
受講者のみなさんは、これに手を加えながら、課題に取り組みます。


課題のモジュールを起動するときには、
コマンドラインの引数に任意のパスを指定します。

$ jython2.5b3 -i TreeEx.py 任意のパス

Macintosh なら、任意のフォルダーを選択してから、
ターミナルに copy&paste(または drag&drop)するだけで、
パス名に展開されるので「任意のパス」を手入力する手間を省けます。

$ jython2.5b3 -i TreeEx.py /Users/sketch/home_Jython/myHome/swing/demo/dpJTree

dpJTree
+-- class
+-- TreeComposite$py.class (12697)
+-- TreeEx$py.class (8015)
+-- TreeView$py.class (11890)
+-- TreeVisitor$py.class (6365)
+-- src
+-- TreeComposite.py (3236)
+-- TreeEx.py (2544)
+-- TreeView.py (4308)
+-- TreeVisitor.py (1119)
ここから、モジュールを分割/統合するときの目安となる情報が得られます。 また、過去の履歴を追跡すると、システム開発の進捗を掌握するのにも役立ちます。 プレゼンテーションの場では、Swing/GUI が効果的ですが、 レポートを作成するときには、加工しやすいテキスト形式が重宝します。 別のセミナー課題では、CSV 形式のレポートを作成するので、 他の表計算ソフトで加工して、ビジネスグラフを作成するのも容易です。 詳細は、 http://d.hatena.ne.jp/kotsubu-chan/20090518Java/Python 導入ガイド:Swing/Jython2.5 - JTree を筆頭に(過去の)関連記事をご覧ください。
  • -