きのこ97

68-「人間」を知る

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

67-コードを読む

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

59-バイナリは常に1つ

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

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

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

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

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

56-未来へのメッセージ

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

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

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

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

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

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

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

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

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

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

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

50-Hello, Worldから始めよう

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

49-見積りとは何か

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

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

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

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

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

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

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

45-限界を知る

「プログラマが知るべき97のこと」の45個目のエピソードは、リソースに関する話です。このエピソードは、アルゴリズムと計算量に関する記述が目立ちますが、冒頭にあるようにリソースの限界を知ることが重要であるという主張です。 ソフトウエア開発には様々…

44-IDEを知る

「プログラマが知るべき97のこと」の44個目のエピソードは、IDEに関する話です。きのこ本には幾つかのIDEに関するエピソードがあります。プログラマにとってIDEやテキストエディタは最も重要な道具なので当然でしょう。それらのエピソードで共通する主張は、…

43-プログラミング言語は複数習得すべき

「プログラマが知るべき97のこと」の43個目のエピソードは、プログラミング言語の習得に関する話です。26-言語だけではなく文化も学ぶでも書いたように達人プログラマーには「毎年、新たなプログラミング言語を1つは学ぶこと」と書かれています。新しいプロ…

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

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

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

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

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

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

39-最初が肝心

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