give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

システム開発

How to improve performance?

おいらが読んでいるメルマガに以下のような記事がありました。 画面表示が想定外の遅さ 処理見直し「1秒の闘い」に勝利 http://itpro.nikkeibp.co.jp/article/COLUMN/20100308/345466/ 冒頭には 1. 新営業店システムの開発中,画面の表示が予想以上に遅いと…

効率の良いInfo Pathフォーム開発

これから着手する開発案件にInfo PathとShare Pointを使った報告書システムがあります(これまでにも何度か書いてますが)。 ところがこの報告書は入力項目が多く、ワークフロー機能も持たせなきゃいけません。 Info Pathは基本的に便利なのですが、普通に作る…

Microsoftの功罪?

例の残念なコラムの筆者さんのコメントから。 私はデータベースを活用してます。コメントをいただいた何名のかたはC#を使っているそうですが、DataSet DataTable テーブルオブジェクトとかDataTableからGridView(表)へのバインドなどのテクニックを使って…

44のアンチパターンに学ぶDBシステム

先日購入した本のうち一冊を読み終わりました。 44のアンチパターンに学ぶDBシステム (DB Magazine SELECTION)作者: 小田圭二出版社/メーカー: 翔泳社発売日: 2009/11/28メディア: 単行本(ソフトカバー)購入: 12人 クリック: 113回この商品を含むブログ (1…

人間は機械じゃない

昨日は次に担当するシステムの仕様打ち合わせをやっていました。 やっぱり人間界のルールをシステムに落とし込むのって難しいですね・・・。 主にワークフロー絡みの話だったんですが、ある程度枠組みはあっても「こういう場合に限りこうなる」とか「たまに…

Info Pathのお勉強

次の開発案件に向けてInfo PathとShare Pointのお勉強をしてました。 他のOffice製品にも言えることですが、「ある程度のことをやるにはとっても便利。でもその"ある程度"を超えてしまうとちょっと大変」という印象があります。 今回の案件もかなり入力項目…

「おいしい」ところを最大限に活かす!

プログラミングにおいてはひとつのやり方をいつでもどこでも使おうとするより、それに固執せず言語の特性にあわせて一番「おいしい」ところを活用するプログラミングにすべきだとおいらは考えます。 たとえばこんな感じです。 例外 例外はエラー処理を非常に…

.NETの例外処理

外部ベンダーさんに開発してもらったASP.NETの社内システムがあって、昨日はそのソースを眺めてました。 いろいろツッコミどころはありますが、一番気になったのは例外処理のまずさ。 やっぱり、こういう感じなんですね〜。 bool GetDataSet(string id, out …

プログラムと同期が取れていないストアド

しょっちゅうエラーログが飛ばされてくるシステムがあるので、エラーの原因を調査していました。 その中の理由のひとつに「プログラムと同期が取れていないストアド」がありました。 具体的にはこんな感じです。。。 ストアドの実行結果から特定のカラムの値…

Design Horror!

このブログでも何回か登場している「ヤヴァイシステム」で、またまた驚きの大発見をしてしまいました。。。 なかなか一覧表示のレスポンスが上がらないので、あの手この手でSQLをチューニングしていました。 そうするとどうもボトルネックと思われるストアド…

結局ウォーターフォール?

開発プロセスはウォーターフォールよりもアジャイル開発やUP/RUPのような反復型開発の方がいい!とずっと信じているおいらですが、これからやろうとしている案件の計画を立てたら・・・「あれ?これって完全にウォーターフォール?」みたいな計画になってし…

Nasty design can blast your brain!

ひどい設計は頭をおかしくします。 ヘタなプログラム(たとえばブロックが長過ぎるとか、重複が多いとか)もデバッグに苦労しますが、ほとんどメリットが感じられないのに開発者の自己満足としか思えないくらい、技巧的な設計の上に構築されたシステムもまた超…

人の気持ちがわかるコンパイラ

「あるWebシステムの一覧画面にカラムを一つ追加してほしい」という改造依頼を受けました。 話を聞く限り、楽勝そうなのですが・・・蓋を開けたらガーン!! 数百行あるようなメソッドがわんさか存在するコードの固まりでした。 一通りソースを眺めましたが…

ASP.NET + Info Path + SQL Server

次の開発案件の技術調査をやってました。 「ASP.NET + Info Path(XML File) + SQL Server」で出来るだけ楽して報告書管理システムを作るというもの。 「楽しよう」というコンセプトながら、Info Pathのあたりが初挑戦の分野なのでハマりまくり・・・。 週末…

製造装置制御プログラム開発トレーニング

最近は連日製造装置制御プログラム開発トレーニング(通称Automationトレーニング)を受けているのであまり書く内容がありません。。。(1月中はほぼ毎日午後の時間がつぶれます) しかし、うちの会社は製造業なので現場や装置の仕組みが分かっているのと分かっ…

ユーザーとのコミュニケーション

ASP.NET案件の仕様打ち合わせに参加しました。 小規模システムなので仕様もすぐ決まるだろうと思っていましたが、思いのほか難航。 実はこちらがユーザーの意図をきちんと汲み取れないまま仕様を考えていたり、こちらは頭の中でデータベーステーブルを思い描…

.NET Applicationのエラー処理

エラー処理(例外処理)の設計はシステム設計の重要課題の一つです。 設計が悪いと以下のような症状が出ます。 ソースコードがエラー処理の分岐だらけになる。 エラーに関する情報が不足し、原因調査に時間がかかる。 エラー発生時のシステムの振る舞いに一貫…

脳に優しいC#のメソッド設計

Code Complete, Code Craft, 危険なプログラムの処方箋といった書籍にも書いてあるベストプラクティスやアンチパターンをまとめて、「脳に優しいC#のメソッド設計」を定義するとすればこんな感じかも。 単一の責務を持つ(1つのメソッドであれもこれもしない)…

要求開発スキル

先日書いた小規模ASP.NET案件のお手伝いで、仕様決めのミーティングに参加しました。 納期が短い(来年3月から本番稼動希望)ので、できるだけあっさりした仕様にしないと間に合わないんですが、どうも若干凝った方向へ流れがちに・・・。 ただお客さん自身は…

またまたお手伝い

別件でASP.NETを使った比較的小規模なWebシステムを開発するみたいなので、その設計や実装をお手伝いすることになりそうです。 今の会社に入社してから3年になりますが、ずっと保守保守保守・・・ばかりでした。 なんかここ最近になって突然新規開発モノが増…

ソフトウェア設計手法を教えることの難しさ

例の在庫管理システムの一部をとりあえず第一リリースするため、今度は設計のお手伝いをすることにしました。 最終的にはかなり大規模なシステムにしたいようなので、しっかり設計しておかないと後が大変、ということでこれまでの経験や勉強して学んできた設…

在庫管理モデリング(2)

やっぱり自力で考えるとこれでいいのか悪いのか区別がつかん!ということで、ネットや書籍に同じようなモデルが無いか探すことにしました。 結局「独習UML」に載っていたサンプルモデルがかなりイメージに近かったのでこれをほぼそのまま採用することになり…

在庫管理モデリング

昨日は社内向け在庫管理モデリングのお手伝いをしてました。 意外と業務ルールが複雑で、きれいにモデリングできない。 大変だけど、知的な仕事は面白い(^ ^)