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

70-シングルトンパターンの誘惑に負けない

「プログラマが知るべき97のこと」の70個目のエピソードは、シングルトンパターンに関する話です。シングルトンパターンはGoFのデザインパターンの中でも最もよく知られ、使われているパターンかと思います。その理由はシンプルであり、かつ強力で、かつ解り…

69-車輪の再発明の効用

「プログラマが知るべき97のこと」の69個目のエピソードは、車輪の再発明に関する話です。プログラミングにおける「車輪の再発明」とは、既に作られたフレームワークやライブラリがあるのにも関わらず、コストをかけて開発する事を指します。このような「車…

68-「人間」を知る

「プログラマが知るべき97のこと」の68個目のエピソードは、コミュニケーションに関する話です。きのこ本に書かれていることのほとんどは「当たり前」の事です。「あたり前」の事なのですが、すべてを実践できているプログラマは中々いないでしょう。きのこ…

Scenic3 0.4.0 リリース

Slim3を薄くラップし、T2Framework風に1つのページクラスに複数のコントローラメソッドを記述することのできるライブラリ「Scenic3」のバージョン0.4.0をリリースしました。 変更点は次の通りです。 REST風のページクラスのサポート 不足していたController…

67-コードを読む

「プログラマが知るべき97のこと」の67個目のエピソードは、コードリーディングに関する話です。プログラマがソースコードを読む場面は多くあります。開発中は期待通りに動作しないソフトウェアのソースコードを読み、不具合を探します。ソフトウェアの機能…

66-いったんコンピュータから離れてみる

「プログラマが知るべき97のこと」の66個目のエピソードは、プログラミング中の閃きに関する話です。このエピソードに書かれているような脳の論理的部分がどうこうという理由が正しいかどうかは解りませんが、根を詰めてプログラミングをしていてると効率が…

65-バージョン管理システムを使う

「プログラマが知るべき97のこと」の65個目のエピソードは、バージョン管理システムに関する話です。そろそろ都市伝説になってもいい気もしますが、バージョン管理システムが導入されていなかったり、導入していても適切に運用されていない開発現場は存在し…

64-プロのプログラマとは

「プログラマが知るべき97のこと」の64個目のエピソードは、プログラマが知るべきことに関する話です。 プロフェッショナルなプログラマの最大の特徴は「自分が責任を取る」という態度、責任感です。プロのプログラマは、まず自分のキャリアに責任を持ちます…

63-ユーザの操作ミスを防止する

「プログラマが知るべき97のこと」の63個目のエピソードは、ユーザビリティに関する話です。残念な事ですが、画面デザインに関して自分の仕事ではないと考えているプログラマは少なくありません。勿論、すべての分野のプログラマに必要なスキルではないかと…

62-プリミティブ型よりドメイン固有の型を

「プログラマが知るべき97のこと」の62個目のエピソードは、ドメイン型に関する話です。このエピソードでは1999年の火星探査機「マーズ・クライメイト・オービター」の事故を例にあげ、プリミティブ型と暗黙で利用している単位に関する問題を提起しています…

Javaのチェック例外はクソ仕様

Java言語のチェック例外は本当にGood Partなのか?というエントリーを読んで自分の考え方を簡単にまとめておこうと思う。

61-ビルドをおろそかにしない

「プログラマが知るべき97のこと」の61個目のエピソードは、ビルドに関する話です。これまで仕事で様々な開発現場を経験してきましたが、ビルドプロセスに関して真剣に取り組んでいる所はほとんどありませんでした。下請けで開発を行っている所が多かったの…

60-真実を語るのはコードのみ

「プログラマが知るべき97のこと」の60個目のエピソードは、コードの可読性に関する話です。可読性に関する話題は何度も登場しています。プログラムは実行できることが全てですが、保守をしていくなかで、ソースコードを読む比重は高くなっていきます。新し…

59-バイナリは常に1つ

「プログラマが知るべき97のこと」の59個目のエピソードは、ビルドとバイナリに関する話です。自分の経歴の7割以上はJavaによるソフトウェア開発であることもあり、バイナリにまつわる問題はほとんど経験した事がありません。ソフトウェアのほとんど同じだ…

Scenic3 によるRESTサポート

Scenic3はSlim3のController層を薄くラップした拡張ライブラリです。Slim3では1アクション(URL)に対して1つのControllerを作成するシンプルなデザインですが、どうしてもControllerの数が多くなってしまいます。関連するアクションは1つのクラスにまとめ…

58-テスト担当者はプログラマの友人

「プログラマが知るべき97のこと」の58個目のエピソードは、テストに関する話です。このエピソードにおけるテストはユニットテストではなく、QA(Quality Assurance:品質保証)やQC(Quality Control:品質管理)と呼ばれる部署が行うようなテストです。会社…

57-ポリモーフィズムの利用機会を見逃さない

「プログラマが知るべき97のこと」の57個目のエピソードは、ポリモーフィズムに関する話です。ポリモーフィズムはオブジェクト指向プログラミングにおいて最も重要な概念の1つです。日本語で多態性と呼ばれるこの技術は、実装レベルで考えれば方が同じで振…

56-未来へのメッセージ

「プログラマが知るべき97のこと」の56個目のエピソードは、コミュニケーションに関する話です。 「取り組む問題が難しければ、そのソリューションも難しく、わかりにくいものになるのが当然」そう考えている人がどうも多いようです。問題が難しいのだから、…

Slim3 に Scenic3 と PirkaEngineを使う方法

ここの所、随分とAppEngineへの関心が高まってきているようです。Slim3の周辺も活発になってきている事もあり、Scenic3に注目していただく方もチラホラと出てきました。注目されるということは非常にモチベーションが高まります。 今回は前回に予告した通り…

55-並列処理に有効なメッセージパッシング

「プログラマが知るべき97のこと」の55個目のエピソードは、並列処理に関する話です。並列処理に関する関心は日々に高まっています。プロセッサのクロック速度の向上はやや頭打ちになってきており、高速に処理を行う為にはコアを増やす傾向なのです。家庭用…

54-見えないものを見えるように

「プログラマが知るべき97のこと」の54個目のエピソードは、ソフトウェア開発の可視化に関する話です。ソフトウェア開発において可視化(見える化)はマネージャ層にとっては特に興味のある話題です。本文でも書かれているように、ソフトウェア開発の難しさ…

53-正しい使い方を簡単に、誤った使い方を困難に

「プログラマが知るべき97のこと」の53個目のエピソードは、インターフェイスに関する話です。ソフトウェア開発のスキルを身につけていく中で、インターフェイスやバウンダリ(境界)に関することは、最も悩まされる事の1つです。一言でインターフェイスと…

52-「その場しのぎ」が長生きしてしまう

「プログラマが知るべき97のこと」の52個目のエピソードは、暫定ソリューションに関する話です。暫定ソリューション(その場しのぎ)とは、本来は遵守すべき規約やプロセスに従わずに急ごしらえで作成したソリューションのことです。時間に追われ不具合を直…

51-プロジェクト自身にしゃべらせる

「プログラマが知るべき97のこと」の51個目のエピソードは、ソフトウェア開発の自動化に関する話です。先日のTDDBCでもid:t-wada氏は「近代ソフトウェア開発の三本柱はテスト・バージョン管理・自動化」と話していましたが、自動化は興味深く重要なテーマの1…

JavaScriptによるEtupirkaCMSのアップデートプログラム

EtupirkaCMS絡みでちょっとネタになりそうなプログラムを作ったので紹介します。内容としては、JSR223(スクリプト言語サポート)を使いJavaScriptでランチャープログラム(Swingアプリ)の更新を行う仕組みの解説です。 動機 EtupirkaCMSのウリとしてJavaだ…

50-Hello, Worldから始めよう

「プログラマが知るべき97のこと」の50個目のエピソードは、プログラミングの原点に関する話です。長くプログラミングを続けていたり、マネジメントやその他の業務が多くなってくると、基本的な事を忘れがちです。焦って自分を見失っている時などは、原点、…

49-見積りとは何か

「プログラマが知るべき97のこと」の49個目のエピソードは、見積りに関する話です。見積に関するこのエピソードは日頃よく思う部分です。しかし、残念な事に本当に読んで理解して欲しいのはプロジェクトマネージャです。そして、プロジェクトをリードしてい…

48-いろいろな言葉を学ぶ

「プログラマが知るべき97のこと」の48個目のエピソードは、コミュニケーションに関する話です。エピソードのタイトルになっている「言葉」にはプログラミング言語も含みます。プログラマはコンピュータと対話する職業である以上は、コンピュータと対話する…

47-大量のデータはデータベースで

「プログラマが知るべき97のこと」の46個目のエピソードは、データベースに関する話です。 アプリケーションで大量の永続データを扱う必要がある場合やデータが相互に関係し合う場合は、迷うことなくRDB(リレーショナルデータベース)にデータを保存すべき…

46-すべきことは常に明確に

「プログラマが知るべき97のこと」の46個目のエピソードは、仕事の進め方に関する話です。特に仕事でプログラミングをしている人にとって非常に有用なエピソードで、きのこ本の中でも特に感銘を受けました。 プログラミングに限ることではありませんが、仕事…