2008-01-20 例の開発費管理システムの案件を振り返ってみる
なんでこんなに時間をとられてしまったのかを振り返ってみたい。
一週目:Eclipse + Oracle + WebLogic + Tomcat + Visual SourceSafeのセットアップとテスト用サーバ環境構築に二日ほど潰れた。
EclipseとVisual SourceSafeの連携Pluginがうまく動かないので、連携なしで開発スタート。
Strutsフレームワークの動作原理の説明を受け、予算管理画面のソースを元に、
詳細設計書どおりの画面レイアウトのモックアップ作成を行っていた。
二週目:OJT発表会とかいうようなイベントがあり、プレゼン用パワーポイントの作成のために定時以降の時間が奪われる。
作成したモックアップJSPは、動的に作成されるべきHTMLが直打ちで書かれたものなため、
以降の開発には直接的には再利用不可能だと気づき、再び作業が振り出しにもどったりした。
三週目:既に過去のプロジェクトにより完成していたメニュー画面から、
私が担当する機能の初期画面への画面遷移が正しく行われるようにしたのが
二週〜三週ぐらいのところだったと思う。web.xmlとかstruts-configとかに名前を登録し、
findFoward()かなにかで遷移するように
したはず。この時点で自分の機能の初期画面は、某別機能のJSPを元に改造したソースになっていたのだが、
この部分が後から問題になった。
四週目:検索機能を実装した。プルダウンとテキストボックスから取得する検索条件+ログインIDのユーザ権限を元に
7,8個のテーブルを結合して必要なデータを成形して返す先輩のSQLの実行結果をリストで受け取り、
ループをまわしてエンティティにつっこんでいくメソッドを当該Actionメソッドに追加。
Jsp側でそのエンティティのサイズ分ループをまわして中身を表示させるようにした。
Action内の検索処理の後、どうやって画面再表示を行っているのかがわからず、子一時間ほど途方にくれた。
findFoward("ok")でいいらしい。
データにnullがはいったままのオブジェクトに対してメソッド呼び出しを行ってNullPointerExceptionになるバグが死ぬほど連発し
年末までうまく動いてなかった。
五週目:繰越金額のテーブルインサート処理の実装。とりあえず内部設計どおりの処理の枠を作っていった。
細かいところのギモンはあったが、動かしながら考えることにして前進。
どうやってJSP側のテキストボックスの値をAction側で受け取れるのか分からずつまづく。
テキストボックスのname値にgetメソッドでもあるのかと思ったが当然コンパイルとおらない。
name値をCommonに登録したらなぜかそのCommonの値と同じ変数に勝手に値が追加されていくらしいことを教わる。
Strutsって意味不明だと思った。とりあえずテーブルに登録できるようになった。
六週目:登録処理の細部の条件を内部設計どおりに動くように細かい部分を直した。単体テストを開始し、JSPとActionを二段階でテスト。
大量のバグをチマチマ直しながら夜12時前後まで残業し、休日も出社して本日に至る。
最初の二日間はJSPでJavaScriptを駆使した連動プルダウンとかいう余計な機能のために潰れる。
普通のプルダウンに戻すこと自体が大変な作業になった。
休日出勤したのは条件に合致しないデータのチェックボックス&テキストボックスをdisableにしたときに
カウンタがズレて登録データが何番目かをしていするカウントが狂ってしまうのを修正する+レイアウト微調整のため。
チェックボックスとテキストボックスはdisableになるとvalueを返さなくなるらしい。
帰ってきてるvalueの数で何行目のデータが選択されているかを知る仕掛けにしているので、調整に少し時間を割かれた。
使っているPCがクソなので、サーバを上げなおしてプロジェクトをビルドしなおし、デプロイしなおすと15分ぐらい待たされる。
ちょっと数字を変えて試してみようとするたびに
15分ぐらい待たされるので、中々ウンザリした。細かい修正になればなるほど時間がかかる。
しかしなんとか昨日で単体テストは終わった。
どう考えても六週間もかかる仕事ではなかったと思う。
おそらく私自身、Javaで仕事が出来ること自体にうっとり陶酔しすぎていつまでもこうしていたいと思っていたせい…
ではなくてStrutsを使ったサーバサイドJava開発というもののワケワカラン方法論にとまどってつまづきすぎたのが原因だと思う。
hidden属性で渡した変数が、Commonで登録した名前でフォームに入ってくるとか、中々予想してないことがアタリマエのように使えるらしい。
次はもう少し効率的にコーディングして、さっさとお家に帰れるようになりたいと思う。
暴力的なほどアグレッシブな車両がこの世に20台も同時に出現
エッジの効いたシェイプ、跳ね上げ式のドア等々、ひと目でランボルギーニということが判るレヴェントン。しかし、このレヴェントンは究極のスペックを持ったロードゴーイングカーであり、20台限定の究極のスーパースポーツカーなのだ。ムルシエラゴLP640の技術をベースにしており、その上で航空工学からインスピレーションを受け、エアロダイナミクス、エンジン冷却システム、ブレーキなどなど、あらゆる箇所を改良した。特徴的な矢印のマーキングを各所に配したボディは、軽量かつ高い強度を有するカーボンファイバー製。車内にも、航空機同様のTFTディスプレイを奢るなど、内外共に見どころ満載。この魅力的な限定車は100万ユーロで販売される。
http://www.carview.co.jp/tms/2007/take_car/lamborghini_reventon/default.asp
制御装置と共にボディ全体のエレクトロニック・プラットフォームを採用することにより、レヴェントンのエレクトロニック・システムは、ランボルギーニのエキスパートによって独自に開発することが可能になりました。
車両のエレクトロニック・ディスプレイを統合したのと同じプロセスが、ランボルギーニ・エンジニアリング部門にも適用されました。
レヴェントンは、優秀なエキスパート・チームが結束することにより、コンセプトの非常に早い段階から、イタリアのサンタアガタ・ボロネーゼで開発が行われました。極めて洗練され、効果的なプロセスが採用されました。研究開発部門のテクニシャンおよびテスターによる一貫した監督の下で、CAD デザインおよび開発、プロトタイプ部門によるプロトタイプの製作が実施されました。
http://www.lamborghini.co.jp/
ランボルギーニ・レヴェントンは、チェントロ・スティーレの合理的な機能性と効率性を物語る具体例と言えるでしょう。最初のアイデアから最終的な車両の製作までに要した日数は1 年未満です。最初のペーパー・スケッチから1:10 または1:4 スケールの3D コンピューター・モデル、実寸プロトタイプに至るデザイン・プロセスは、無駄なく迅速かつ効率的な作業グループによって組織的に実施されました。チェントロ・スティーレの存在によって、ランボルギーニは史上初めて、外部の協力なしに、その独自のデザイン哲学の結晶を生み出すことが可能になりました。
20 台のレヴェントンは、完璧なクラフトマンシップと厳格な品質基準に基づいてサンタアガタで生産されます。
http://www.lamborghini.co.jp/
ムルシエラゴLP640 に採用されたテクノロジーは、変更せずにそのまま使用しています。LP640 に搭載されているエンジンは、従来の6.5 リッターV12 エンジンです。レヴェントン専用に、ランボルギーニによる保証の下、エンジン出力を驚異的な650HP(478kW)/8,000rpm に引き上げています。最大660Nm の強大なトルクは、アクセルをごく軽く踏み込むだけで強烈な推進力を生み出し、どの回転数からでもパワフルな加速を実現しています。ロボタイズドe ギヤは、どの熟練ドライバーよりも素早く変速を行います。さらに、フルタイム・ビスカス・トラクション4WD システムは、すべてのエンジン・パワーを余すところなく路面へと伝達します。
オリジナルのムルシエラゴLP640 と同様に、レヴェントンの0〜100km/h 加速はわずか3.4 秒、最高速度は340km/h 超です。
http://www.lamborghini.co.jp/
