makotan _at_ gmail dot com

ソフトウェア開発

ある人のコード

自分の周り(以外でも結構有名なんだけど)では知らない人がいない超有名なある人のコードを分析してた・・・かなり不思議だ〜 この構造ははほぼあのやり方で作ったものと酷似してる、でもあのやり方の嫌だった雰囲気が全くなし。むしろ普通に作るよりもすっ…

読書の秋

asin:4774121568 届いたので読んでるところ。 (追記) 読み終わり。 目新しさが無かった(^^; それにしてもプロセス改善の統合的アプローチの記事・・・まんまCMMやん、あのやり方は無理があるって思わないのかなぁ〜えっと、これ以上のコメントは差し控えさ…

つーことは・・・

ひがさんのところからくーすやら色々みててふと思った事。 分割の方法と精度の問題? オブジェクト指向も構造化分析もあんなものもこんなものもすべては「分割して統治せよ」の考え方の亜種だと思ってるんだけど・・・(笑) 分割して統治せよって所からみる…

分割する

ソフトウェアを分割する。どんどん分割する。分割の結果、つなぎ合わせるのが大変になる。つなぎ合わせるのも楽をしたい、だからつなぎ合わせるツールが出来る。 だから基本は分ける事、正確につなぎ合わせる事。 後からつなぎ合わせるって事の副次的効果と…

RIA10

jrexはさておき、どんなAPIだとプログラムって作りやすいのかなぁと考えてみたりする・・・もちろんS2ありきで(笑) 普通にクライアントのプログラムを作るときは class Hoge extends Form { private TextBox hogeID = new TextBox; // setter/getter付き .…

RIA9

#このネタ続ける気か!? と〜り〜あえず、JRexを使うとして・・・あ〜このAPI・・・まるでC言語だよ(笑) たぶん、jrex.jarとjrex.dllとjrex.greがあれば作れるんでしょう っていうか使ってる言語は適度に慣れたものばかりなんだから、スクラッチ近くから…

RIA8

画面はHTMLで作ってプログラムはJava・・・そしてイベントドリブンに自動データバインディングかぁ〜なかなか難しい条件ですね〜(^^; しかもHTMLはスタイルシートからJavaScriptまで自由に使えないとデザイナーに制限かける事になっちゃうしなぁ〜 HTMLを表…

メソッドポイント

呼び出し、計算式、値の設定=1 判定式(if/else if/3項演算子)=2 ループ=3 例外(catch毎)=2 としておいて・・・ すべてのメソッドについてトータル15ポイント以下になるように作る。 それを超える場合は許可が必要 って条件で開発するとメソッドは小…

RIA7

#いつまで続くんだろう・・・このネタ JavaのGUIと言えばAWT,Swing,SWTの3つですね〜 昨日の条件に当てはめて考えてみましょう 画面周りはデザイナーの手できれいに出来る事 デザイナーが細かくデザインを変更できるものじゃないと駄目なんですよね〜今だ…

RIA6

もっと細かく決めていく・・・ 画面周りはデザイナーの手できれいに出来る事 サーバとの通信方法はHTTPとそれ以外を切り替え可能 開発時にはモックで画面が作れる事 画面のちょっとした修正がプログラムへ影響する事(その逆も)無い事 ポップアップ画面など…

RIA5

とりあえずクライアントにJREを入れる事は問題ないんだろう・・・環境依存性を最小限に抑える意味からすると最適なのは今のところJavaだけかな といいつつ知らないだけでJavaも互換性問題抱えてるんだろうなぁ(笑) Flashはクライアントにインストールする…

RIA4

ふと思った、Java Web Startで駄目な理由って何なんだろう JREのランタイムのサイズは8Mも無い。64kの細い回線でもランタイムのダウンロードは30分以内に終わる程度。ADSLでも普通に2分かからないのに、HTTPも好きなプロトコルを何でも使い放題、環境間の…

S2Unit〜ちゃんと使い方覚えようっと だれか入門記を・・・o(゜^゜)○☆バキッ! もし、テスト用のExcelファイルを手で作るとしたら、シート名をテーブル名にして1行目は項目名だと・・・ タイムスタンプはっと・・・何も考えずにやって良さそうな雰囲気 さ…

RIA3

開発手順を考えてみる 画面が決まる=>入出力項目が決まる、データフォーマットが決まる、DBが決まる=>処理が決まる・・・ 画面デザインをして、それに対して入出力のデータのバインディング設定をして、サービスのインタフェースが同時にデザインされて…

RIA2

ランタイムのインストールは簡単に小さいもの クライアントのOSの自由度が高い事、かつプログラムに差がない事 クライアントでマシンのパワーをあまり要求しない事 ランタイムの安定性は十分な事 クライアント側のプログラムのバージョンを常に最新に維持で…

RIA

たとえばこんなの・・・ GUIのデザインはHTMLエディタみたいなので楽々 クライアントもサーバもPC単体でお手軽開発&デバッグ クライアントのテストもUnitTest利用OK! クライアントはコンポーネントベースでお気楽機能拡張 データはコンポーネントに簡単バ…

バグの数

バグの数がこれくらいに行かなきゃだめだからバグを出してくれ! ってパターンが多いのは他の人からは聞いてます(なんで遭遇しなかったんだろ)で、その行動自体が間違えてるのは事実だとして、もう一つの側面が実はとっても重要じゃないかなぁと思う。 も…

プログラミングのマニュアル化

やろうと思えば出来る筈ですけどね〜真面目に書くとCODE COMPLETEより分厚くなるかも(笑)プログラマの役割定義を記述したものとプログラマのマニュアルはそもそも別ですよね。 プログラミングのすべてを記述したマニュアルがあって本当に役に立つかなぁっ…

まぁ個人的な意見ですが・・・

生産性を向上させると言われているツール・手法っていうのは必ず一度生産性を落とすところから始まります。 それと同時にピンポイントで生産性を向上させた場合は他の工程に生産性の低下を招くパターンが多いので他の工程も変化させざるを得なくなります。 …

仕様とインタフェース

インタフェースとはたとえばコンセントの形状。仕様とはコンセントの形状とそこに何ボルトの電気が流れているか、何アンペアまで大丈夫なのかのセット。 インタフェースさえ決まっていれば火力発電だろうが水力発電だろうが太陽光発電だろうが何でも言い訳じ…

AOPの用途

これまでコアな処理でなくて、広範囲に分散するコードを一カ所にまとめる(例外とかそういうの)用途としてのAOPを考えていたものの、S2Dao、Hamachi等の違う用途がぽつぽつと出現。そしてこの前のセミナーでデザパタの実装支援方法としてのAOPが登場。 そん…

BACE分析

ソフトウェアをBACEに分解する。 B:バウンダリ A:アクティビティー C:コントロール E:エンティティー BCEに関してはkusuと同じ アクティビティーとは・・・ 必ずバウンダリから呼び出され、1または複数のコントロールを使って動作するもの。アクティビティ…

ハマチを活用したソフトウェア開発

#思いつき ハマチの持っている能力を最大限に引き出すソフトウェア開発方法を考えてみたりするコーナー ハマチはコンポーネントを繋ぐ糊の役割を持っているソフトウェアです。この特徴から仕様変更に強いのでそっち方面ばかり目を奪われるともう一つの特性…

依存性注入

依存性を注入出来ると何が起こるか・・・一番大きい現象はデザパタの利用頻度が減ります。デザパタを使って解消したいと思っている一部分は依存性注入によって解消するって事です。 Abstract Factoryパターン Bridgeパターン Builderパターン(一部) Factory …

そう遠くない未来のソフトウェア開発

画面ばポトペタとドリで作成 画面とデータのやりとり、validationを組み込む<ほとんど自動 サービスはInterfaceだけ作ってDBとのやりとりのほとんどは自動 DB以外のサービスはコンポーネントを繋げていくだけ コンポーネントはほとんど既製品 手作りが必要…

下手テトリス理論

#まぁ冷蔵庫理論とほぼ同じかな(笑) テトリスをやるときに一番やりがちな間違いは、余裕があるからって最初にきれいに積み上げてテトリスをねらうじゃないですか、それで、棒が落ちてこなくてぎりぎりになってあわてて他のを積んで自爆・・・たまに自爆して…

Re:続・DAOはアスペクト?(はてなダイアリー - koichikのひとりごと)

koichikさん納得してるし・・・(笑) 個人的にはDaoがAOPなのは微妙なんですが、実装的にほかの手段を選ぶよりユーザにと〜っても優しいので、S2の方針にあってるからこの使い方はありかなぁ〜って感じです。

アフォなコードの価値

#意味不明系に戻すんじゃないのかと・・・(笑) 「どんなコードでも動けばいい」っていうのがアフォなコードの最大の言い訳です・・・ええ、必ずと言っていいほど言われました・・・アフォなコードであってもきちんと納期に間に合って作れて、アフォなコード…

工学

ソフトウェア工学って”ソフトウェア”を工学的に研究するものですよね(ぇ? #16番会議室は(仮称)だったから何でもありだったも〜ん(w ”本来のソフトウェア工学”はソフトウェアを効率的に作ろうとしているわけじゃないですよね(笑) アフォなコードとも…

S2疑問 S2Container.injectDependency

S2Container.injectDependencyを使えば外で定義されたコンポーネントをS2のgetComponentでとってこれるって事だよね。 これってdiconファイルを作成した時点でComponentとか、数が判ってない場合は無理? XMLファイルを読みつつ設定したコンポーネントを使い…