2011-01-01から1ヶ月間の記事一覧

42-コマンドラインツールを使う

「プログラマが知るべき97のこと」の42個目のエピソードは、コマンドラインツールとIDEに関する話です。コマンドラインツールとIDE、テキストエディタとIDEといったテーマに関しては、時には宗教戦争となる危険なネタとして知られています。結局の所は好みの…

41-無駄な警告を排除する

「プログラマが知るべき97のこと」の41個目のエピソードは、コンパイラによる警告に関する話です。静的な型付けの強い言語を好むプログラマならば、強く意識しておきたいエピソードです。静的な型付が強いコンパイル言語の場合、ソースコード上の誤りの多く…

40-プロセス間通信とアプリケーションの応答時間の関係

「プログラマが知るべき97のこと」の40個目のエピソードは、リモートプロセス間通信に関する話です。近年のアプリケーションでは、ほとんどのパフォーマンス上のボトルネックはリモートプロセス間通信にあると言っても過言ではありません。ウェブアプリケー…

JSR223を使ってJavaからJavaScriptを実行する時にJavaのクラスを利用する

JSR223スクリプト言語サポートでは、JavaScriptなどのスクリプト言語をJavaから利用するためのAPIを提供しています。Java6ではJavaScript(Rhino)がサポートされており、ライブラリを使えばJRubyやJythonなどが利用できます。 利用方法は簡単です。 public …

39-最初が肝心

「プログラマが知るべき97のこと」の38個目のエピソードは、ソフトウェアのユーザビリティに関する話です。受託開発で開発されたソフトウェアの場合、通常はそのソフトウェアが唯一であり、他のソフトウェアとの比較をされることはありません。しかし、オー…

38-余分なコードは書かない

「プログラマが知るべき97のこと」の38個目のエピソードは、シンプルさに関する話です。「より少ないことは、豊かなこと(Less is More)」は、YAGNIと並んで最も重要な考え方です。仕様など設計にも言えることですが、より少ない仕様・コードで同じだけの価…

37-バグレポートの使い方

「プログラマが知るべき97のこと」の37個目のエピソードは、バグレポートに関する話です。非常に悲しいことですが、効果的なバグレポートを書くことのできる人は多くありません。それがソフトウェア開発に関して無知なユーザであるならば仕方のないことかも…

36-ハードワークは報われない

「プログラマが知るべき97のこと」の36個目のエピソードは、プログラマの働き方に関する話です。プロのプログラマとしてどんな姿勢で仕事に臨むべきかについて書かれています。 神経を集中させる時間、製品を産み出すのに使う時間が醜に30時間を超えるような…

TDD Boot Camp 札幌を開催しました

1/22-23と2日間に渡り、id:t-wadaさんをお招きし、テスト駆動開発の体験型勉強会「TDD Boot Camp」を札幌にて開催しました。テスト駆動開発は結構前から話題にはあがっていましたが、ここ1〜2年でぐっと身近になってきた感覚があります。それは、TDDの伝道…

35-超人の神話

「プログラマが知るべき97のこと」の35個目のエピソードは、エスパー(超人)に関する話です。このエピソードでは超人という言葉で語られていますが、エスパーという方が馴染み深いかもしれません。以前、誰かに聞いたことがあるのですが、欧米の人よりも日…

34-API設計の黄金律

「プログラマが知るべき97のこと」の34個目のエピソードは、APIの設計におけるユニットテストに関する話です。API(Application Programming Interface)は文字通りにプログラム(コード)間の境界を定めます。あるフィーチャを実現するプログラムを書くこと…

33-オープンソースプロジェクトで夢を実現する

「プログラマが知るべき97のこと」の33個目のエピソードは、オープンソースプロジェクトに関する話です。以前はオープンソースプロジェクトと言うと、高度な事をやっていて参加する敷居が高いようなイメージがありましたが、最近は随分と敷居が下がってきた…

32-浮動小数点数は実数ではない

「プログラマが知るべき97のこと」の32個目のエピソードは、浮動小数点数に関する話です。プログラムにおける整数や実数に関しては、数学的な整数と実数と異なる性質を持つため、適切な理解が必要と述べられています。非常に基礎的な話な筈ですが、開発現場…

31-状態だけでなく「ふるまい」もカプセル化する

「プログラマが知るべき97のこと」の31個目のエピソードは、カプセル化とドメインモデルに関する話です。オブジェクト指向プログラミングの特徴といえば、継承・ポリモーフィズム・カプセル化の3点です。何れも効率良くプログラムを構成するための考え方で…

30-そのコードに触れてはならない!

「プログラマが知るべき97のこと」の30個目のエピソードは、開発に関わる環境とプログラマの責務に関する話です。特にエンタープライズ系のシステム開発では、開発環境(ローカル環境)、開発サーバ、ステージングサーバ、本番サーバと役割に合わせて環境を…

29-DRY原則

「プログラマが知るべき97のこと」の29個目のエピソードは、DRY原則に関する話です。「DRY(Don't Repeat Yourself:繰り返しを避けること)原則」は達人プログラマーの中で提唱された原則の1つであり、プログラマならば誰もが聞いたことのある最も有名で重…

例のアレ

MacBook Air 11インチ欲しい!

28-「魔法」に頼りすぎてはけない

「プログラマが知るべき97のこと」の28個目のエピソードは、プログラマの知るべきスキルの範囲に関する話です。ソフトウェア開発では様々なスキルを持った人間が関わります。プログラミング、プロジェクトマネージメント、テスト・・・など多種に渡るスキル…

Slim3 pluginでScenic3の使い方

Slim3には簡単にプロジェクトを作成する為に使えるEclipse pluginがあります。@tomotaro1065 さんが中心になって作られていますが、ご厚意でScenic3の対応もしていただいています。ですが、自分で使ってみて使い方が解らないのではないか?と気付きました。…

27-死ぬはずのプログラムを無理に生かしておいてはいけない

「プログラマが知るべき97のこと」の27個目のエピソードは、例外処理とアプリケーションの続行に関する話です。このエピソードでは、例外に対するアプローチについて安直な例外の握りつぶしは避けるように書かれています。 try-catchブロックをコードベース…

26-言語だけではなく文化も学ぶ

「プログラマが知るべき97のこと」の26個目のエピソードは、新しい言語の学習に関する話です。既に何度か登場しているように「達人プログラマ」にはプログラマが知るべき重要な事がたくさん書かれています。その中の1つとして「毎年、新たなプログラミング…

25-見られて恥ずかしいデータは使わないこと

「プログラマが知るべき97のこと」の25個目のエピソードは、テストデータやコメントに関する話です。笑い話で済む場合も済まない場合もあり、程度問題ですが1回くらいは経験があるのではないでしょうか?テストデータ・コメント・メッセージなどにネタを仕…

24-変更を恐れない

「プログラマが知るべき97のこと」の24個目のエピソードは、リファクタリングに関する話です。「動いている物は修正するな」という鉄則はアプリケーションのコードの質が低い現場であればあるほど、徹底される傾向があります。本当は品質が低すぎて致命的な…

23-ドメイン特化言語

「プログラマが知るべき97のこと」の23個目のエピソードは、ドメイン特化言語(DSL:Domain Specific Language)に関する話題です。「ドメイン」という用語は、DSLだけでなく、クラス設計としてのドメイン、上流工程におけるドメインなど様々な場面で登場しま…

22-1万時間の訓練

「プログラマが知るべき97のこと」の22個目のエピソードは、エキスパートになるために必要な学習に関する話題です。このエピソードでは、プログラマとしてエキスパートとなるには「1万時間の訓練」が必要と述べています。 他のエピソードでも触れられていま…

21-技術的例外とビジネス例外を明確に区別する

「プログラマが知るべき97のこと」の21個目のエピソードは、例外に関する話題です。このエピソードは具体的な内容なので書くべき事はあまりありませんが、例外に関して適切に設計されているかどうかは、その開発チームのレベルがハッキリと解る部分とも言え…

pirka-mobileによるGAEのモバイル対応

1月に入ってからGoogle App Engine/Javaで必要最低限の実装でモバイル対応をするためのライブラリを書いてました。 やれることとしてはシンプルに次の3点。 絵文字の出力 キャリア判定 UID/GUIDの取得 機能てんこ盛りにすることもできますが、それならば既…

20-すばやくデプロイ、こまめにデプロイ

「プログラマが知るべき97のこと」の20個目のエピソードは、デプロイなどの開発環境に関する話題です。インストールやデプロイなどに関わる作業、メトリクス測定や静的なコードチェック等もそうですが、開発の開始時期には後回しにされがちな作業です。最悪…

19-誰にとっての「利便性」か

「プログラマが知るべき97のこと」の19個目のエピソードは、APIのデザインに関する話題です。API(Application Program Interface)はその名前の通りインターフェイスです。インターフェイスとは、複数の異なるものの間で情報をやりとりする取り決めです。プロ…

18-学び続ける姿勢

「プログラマが知るべき97のこと」の18個目のエピソードは、継続的な学習に関する話題です。良いプログラマになるためには、様々なスキルを身につけることが求められますが、その中でも最も重要で最も習得が難しいのが「学び続ける姿勢」ではないでしょうか…