give IT a try

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

2010-01-01から1年間の記事一覧

数値で測るコード品質

プロフィールのところにも書いてあるのですが、おいらの目標は「美しく無駄のないシステムアーキテクチャを設計、構築すること」です。 なぜならシステムの保守性や拡張性って、アーキテクチャやコードの品質によって雲泥の差が出ることを、幾度となく痛感し…

O/Rマッピングツールに対する誤解をときたい -実装編 Part9-

Part8を読む これまでのまとめ 当初考えていた以上に長いシリーズとなってしまったので、一度全体を振り返ってみます。 また、その後でO/Rマッピングツールを採用するかどうかの判断基準や考慮点、アンチパターンなんかも書いてみたいと思います。 これまで…

O/Rマッピングツールに対する誤解をときたい -実装編 Part8-

Part7を読む NHibernateに関する補足説明 できればサンプルプログラムを1から10まで説明していきたいのですが、そうするとボリュームが凄いことになってしまうので、注目すべき部分のみをピックアップしてみたいと思います。 Lazy Loading機能 Lazy Loading…

O/Rマッピングツールに対する誤解をときたい -実装編 Part7-

Part6を読む データベース関連の説明 Part1でもお話しした通り、ここまで「あ・え・て」データベース関連の説明をしてきませんでした。 なぜならO/Rマッピングツールは SQLを書きたくない人のためのツールではない からです。 そうではなく、O/Rマッピングツ…

O/Rマッピングツールに対する誤解をときたい -実装編 Part6-

Part5を読む NHibernateの利用を簡略化するヘルパークラス(NHibernateHelper.cs) 書籍Facadeの説明をする前にヘルパークラスの説明をしたいと思います。 実装コードの全体を載せる前にまずはクラスのAPIから紹介します。 namespace Junichi.Ito.NHibernateBo…

O/Rマッピングツールに対する誤解をときたい -実装編 Part5-

Part4を読む Facadeクラスの実装 次はFacadeクラスの実装です。 実はO/Rマッピングツールの説明をすると言っておきながら、ここまでほとんどO/Rマッピングツールに関するコードが登場していませんでした。 ここからようやくNHibernateを使ったコードが登場し…

O/Rマッピングツールに対する誤解をときたい -実装編 Part4-

Part3を読む ドメインモデルクラス それではここからドメインモデルを構成する注文クラス、注文明細クラス、書籍クラス、和書クラス、洋書クラスを説明していきます。 注文クラス(BookOrder.cs) using System; using System.Collections.Generic; using Syst…

O/Rマッピングツールに対する誤解をときたい -実装編 Part3-

Part2を読む 実装コード それではここからいよいよ実装コードの説明を進めていきます。 書籍注文ページを実装するには以下のようなクラスやファイルが必要になってきます。 書籍注文ページのUI(aspx + aspx.cs) ドメインモデルを構成する注文クラス、注文明…

O/Rマッピングツールに対する誤解をときたい -実装編 Part2-

Part1を読む プログラム設計 クラス設計 このプログラムの核となるクラス(ドメインモデル)を以下に示します。 この図はER図でもなく、テーブル設計図ではありません。 あくまでクラス図です。 基本的にこれがこのままC#のコードとして実装されます。 しかし…

O/Rマッピングツールに対する誤解をときたい -実装編 Part1-

2010.12.28追記 Part9にて、実装編Part1〜Part8の概要を載せています。 かなり長いシリーズ記事なので、この記事を初めて読む方はまずこちらに目を通してもらうと全体像が分かりやすいかもしれません。 イントロダクション 以前からやりたいやりたいと思いな…

C#プログラマのための理解度チェックリスト

C#

前回のエントリでは「新しい言語を勉強したって、前に使ってた言語と同じような書き方をしてたら意味がない」という話をしました。 そこでC#を題材にして、C#を本質からマスターできているかどうかを確認するためのチェックリストを作ってみました。 これら…

「ポータブルなスキル」や「エンジニアとしての基礎体力」の重要性

先日、チーム内ミーティングでメンバー全員が今期の自己啓発目標を発表していました。 その中で多く目立ったのが「C#を習得する」とか「Perlを習得する」というような新しい開発言語を習得する目標でした。 最初は「新しい言語にチャレンジするのはいいこと…

情報システム開発に役立つ10冊+10冊

最近、プログラマ向けの書籍を紹介するのが流行ってますね。 Loading... http://blog.usagee.co.jp/2010/11/23/level-up-programmer 見習いプログラマが読んでも、ほとんど無意味な10冊 - カレーなる辛口Javaな転職日記 きれいなソースコードを書くために読…

久々の技術書購入♪

最近どうも技術書を読む時間がなくて新しい知識が増えてないので、自分にムチ打つ意味を込めて技術書をどかーんと買ってみることにしました。 昨日、Amazonから本が届いてひとりでニタニタしています(笑)。 また、今回は人生で初めて洋書に手を出しました。 …

モデルを中心としたソフトウェアアーキテクチャを採用する意義

今とある新規社内システムの設計と開発を担当しています。 ソフトウェアアーキテクチャはおいらが考えました。 簡単に言うとこんな感じです。 UI層/サービス層/データアクセス層の3レイヤーに分ける 開発言語はC#、UIはASP.NET、データアクセスはADO.NETを採…

When Database Source Control Goes Bad 翻訳 Part6

Isolating your development database 開発用データベースを隔離する Imagine that you working on a project that involves several layers of DLLs communicating with each other. Because you are in active development, you and your team are constan…

ASP.NET開発時の注意点

C#

色々とASP.NETを研究していて感じた点をメモしておきます。 グリッド内編集は極力避ける 画面は極力小分けにする まず一点目について。 GridViewを使った更新は、更新衝突などを考慮しない簡単な更新シナリオを実現するのには便利です。 しかし、色々と凝っ…

When Database Source Control Goes Bad 翻訳 Part5

Developing Application code Locally ローカル環境でアプリケーションコードを開発する These days, most every application programmer develops their code locally. That’s just what you do. Many developers have learned the hard way that this is i…

もし兵庫の山奥に住む社内SEが「もし高校野球の女子マネージャーがドラッカーの『マネジメント』を読んだら」を読んだら

話題のビジネス書(?)を借りて読んでみました。 あまり時間がないので、スピード重視で読んでいったら一日で読めちゃいました。 ドラッカーやマネジメントの神髄がつかめるわけではありませんが、重要なポイントは結構頭に入ってくると思います。 ただ、個人…

When Database Source Control Goes Bad 翻訳 Part4

「The Catch」の後半部分です。記事全体からするとそろそろ折り返し地点?いやあ長いですね〜。 Anyhow, during the next deployment to QA, someone needs to remember that these specific changes need to get deployed. Since there is no defined strat…

When Database Source Control Goes Bad 翻訳 Part3

翻訳第3回です。このセクションは長いので今回は途中まで。 週末はちょいと旅行に出かけるので、次の更新はおそらく来週になります。 The Catch 難題 Let’s imagine that all database changes need to be checked into an isolated directory in source-co…

Settingsファイルの内容をASP.NETで動的に変更する方法

C#

問題: Web Project => ClassLibraryという依存関係があったとします。 ClassLibraryにはSettingsファイル内に各種の設定値が書き込まれています。 Webページの運用が始まると、その設定値は変更される可能性があります。 しかし、サイトの再コンパイルなしに…

When Database Source Control Goes Bad 翻訳 Part2

The Impedance Mismatch インピーダンス・ミスマッチ(開発者とDBAの違い) Why aren’t Database DML and DDL subject to the same level of source-control as the application? Why don’t developers think about databases the same way that they think ab…

When Database Source Control Goes Bad 翻訳 Part1

2010.03.07追記 結局全9回になりました。 かなり長いですけど、何回かに分けて読んでみてください。 When Database Source Control Goes Bad 翻訳 Part2 - give IT a try When Database Source Control Goes Bad 翻訳 Part3 - give IT a try When Database …

四葉のクローバー

非ITネタですが、ちょっと印象的だったのでブログに書いておきます。 我が家の周りは自然が豊かです。よく言えば。 悪く言えば雑草だらけです。(^_^; 色々な草が生えていますが、シロツメクサ=いわゆるクローバーは大量に生えている雑草の一つです。 しかし…

iPhone軍団

ちょっと前の話になりますが、夫婦でauからiPhoneに乗り換えました。 また、もともと嫁さんは実家のお母さんと家族通話するためにiPhone 3Gも持っていたので(つまり2台持ってた)、これを機にケータイを一台にまとめました。 これでiPhone 3G=1台とiPhone 4=2…

犬小屋と高層ビルの違い

ちょっと興味深いエントリを見つけました。 IDE教育に不安を覚えること - みねこあ なるほど、Smart UIと呼ばれる作り方が、システムの品質を下げるという点は同意です。 ただ、その原因がIDEにあるのかというと、必ずしもそれだけではない気がします。 おい…

はやく、やすく、うまい情報システム部の作り方

はやく、やすく、うまく(品質よく)システムを開発し、維持管理する情報システム部の作り方を紹介します。 情報システム部のバジェットを決める。 既存の情報システム部を解散する。*1 バジェットの範囲内で最高のマネージャーと最高のエンジニアを最高の待遇…

ダメエンジニアの使い道

blog.jnito.com↑のエントリで書いたダックタインピングとダメエンジニアの関係や考え方について、Matz先生の非常に興味深いコメントを読ませてもらいました。 以下にちょっと引用してみます。(またまた無断転載ですみません・・・)ダメエンジニアしか手に入…

ダックタイピングは間違い?

OOP

twitterで↓のネタを見つけました。 detail.chiebukuro.yahoo.co.jp すみません、ダックタイピングって時々耳にしたことはあったんですが、タイピング(文字入力)方法の一種だと勘違いしていました。お恥ずかしい・・・。 Wikipediaの説明を読んで、ようやく正…