RSS

プログラマが知るべき5つのこと(?)

もちろん、書籍は「プログラマが知るべき97のこと」です。

ひたすら遅くなりましたが、ようやく読み終わりました。
電車での移動って素晴らしい。

ただ、この本って具体的にどうしろではなく、
行動指針や心構えに対するものがメインであるため、
今後も直接見返す必要がありそうです。

さすがに読んですぐ「コードは未来へのメッセージ」を体現できるとは思いまへんので。

ですが、それだけでは芸がないので、
とりあえず現状の私にとって重要だなぁ、と思うことを5つピックアップしました。

1.名前重要
まつもと ゆきひろ氏の寄稿。
あらゆる機能をデザインする際に名前に最もこだわるとのことですが、非常に同意です。
やっぱり、プログラミングは名前つけに始まり、名前つけに終わると思うんですよね。
基本であり、最も重要な内容だと考えています。

2.DRY原則
スティーブ・スミス氏の寄稿。
「DRY(Don't Repeat Yourself:繰り返しを避けること)原則」ですが、
これも名前と同じくらい重要な事項。
直近ではいいのかもしれませんが、同じコードが一杯あるって
後で酷い目にあうんですよね。

3.単一責任原則
ロバート・C・マーティン氏の寄稿。
「変更する理由が同じものは集める、変更する理由が違うものは分ける」という
単一責任原則(Single Responsibility Principle:SRP)に対する記述。
モジュール分割に対する考えなんですが、
これが見事に出来たなら、再利用性と保守性が高いコードにすることが出来ます。

4.美はシンプルさに宿る
ヨルン・オルムハイム氏の寄稿。
エレガントとか、美とかだけだと個人の感覚に左右されますが、
「シンプルである」は非常にわかりやすい。
コードも機能が絞り込まれたシンプルなものはわかりやすいですね。

5.面倒でも自動化できることは自動化する
ケイ・ホルストマン氏の寄稿。
これも姿勢として重要。
テストコードの実行やビルドやらは毎回手でやるって非効率ですし、
誤りも紛れ込む可能性が大きいんですよね。
かつ、繰り返しになるから間違う可能性も高い。
面倒でも自動化出来るものはしておく、というのは重要ですね。


とりあえず現状はこんな感じ。
今後時がたてば重要だと思うことは変わっていくのかな。
ともあれ、現状は以上。

QConTokyo2011:クラウドパネルディスカッション

ついにラスト。見ていただいた方々、ありがとうございます。

萩原 正義氏&Adrian Cockroft氏&山下 克司氏&玉川 憲氏による、
「クラウドパネルディスカッション」です。

クラウド系セッションの総まとめと、
クラウドを用いて今の日本をよりよくしていこう、というセッション。

東日本大震災を経て、クラウドへの流れが更に強まっています。
ですが、現状はサプライチェーンも、ビジネスプロセスも追い付いていない。
どうすればいいのか、という内容でした。

これも胸が熱くなるセッションだったなぁ。
やっぱり、世の中をよりよいものにしていこう、という意志は欠かせないな。



。。。。そして、全く関係ないですが、

物理サーバに固執するのではなく、
仮想化することでシステムをクラウドに持っていける。。。
というくだりから思ったこと。

物理サーバに魂を縛られたシステム(オールドタイプシステム)と、
新時代を担うシステム(ニュータイプシステム)の対立が生まれるのか!?

ハイ、宇宙世紀ガンダム見過ぎですね。

お後がよろしいようで。


QConTokyo2011:形式手法の現在と実開発への適用可能性

7個目。セッション5回目の時間帯。

小林 健一氏&今井 宜洋氏による、
「形式手法の現在と実開発への適用可能性」。

形式手法って何なのかな?と思っていた所、
「数学に基づいたシステム開発技法」だそうです。

レビューやテストでは全網羅って基本的に出来ません。
ですが、形式手法であれば限定的な条件下においては
完全な網羅照明が可能という辺りは興味深いですよね。

なんか調べたいことがどんどん増えていくなぁ。。。。


QConTokyo2011:Performance Engineering On Twitter

そしてやってまいりました、今回の目玉。

Evan Weaver氏による
「Performance Engineering On Twitter」。

スケールが私の知っているシステムのどれとも桁が違うTwitter。
そのTwitterを成り立たせるための対処についての話。

GCを自分達で作るや、mallocの性質も調査して選択など、
非常にLowレベルから始まった話でした。

ただ、深いトラバーサルを持たないことで性能を見切りやすくするなど、
非常に参考になることも多い内容でした。

にしてもEvan氏、若い。
凄いなぁ。これが世界を変えるエンジニアなのか。

QConTokyo2011:サービスのスケーラビリティと無停止のためのインメモリ技術

セッション5個目。

杉 達也氏の、
「サービスのスケーラビリティと無停止のためのインメモリ技術」。
平たく言うとOracle Coherenceの紹介と、機能の説明。

機能自体はすごくて、資料も非常に充実しているんだけど、
だからこそのっぺりとしたプレゼンテーションがネックだった。

資料を読み上げているだけで終わっているような。。。
発表している最中もスライドの方ばかり見ていて聞いている人の方見ないし。

なので、詳細は資料を見てください、が正直なところかな。
あまり聞いている最中にマインドマップ広がらなかった(汗

QConTokyo2011:品質検査技術のトレンド

4つ目のセッション。

細川 宣啓氏の
「品質検査技術のトレンド–レビューと測定・欠陥工学を中心に-」。

多分QCon Tokyo2011で私が見たセッションの中で
一番上手かった&見事だったと思う。

地震すらアイスブレークに利用する、テンポもいい、適度に刺激を入れる。
かつ内容としても非常に興味深いものでした。
総合的に見て、細川さん程プレゼンを上手い人はほとんど見たことが無い。

キーノート2の伊藤さんや、最後のクラウドパネルディスカッションは
胸が熱くなる方向性な関係上、軸が違うのであまり比較できませんが。。。。

とりあえず、Hemletの法則は再確認しておこう。

QConTokyo2011:自律的な学びのデザインと誘発

3つ目のセッション。

地味に楽しみだった、井庭 崇さんの
「自律的な学びのデザインと誘発 ― 学びのパターン・ランゲージ」。

これまで「~~を学ぶために何がいいか?」を考えることはあっても、
「学び方のいい形は何か?」を考えることは無かったので、非常に新鮮でした。

なんですけど、「学習パターン ブログ」に非常に詳しくのっているため、
あまりまとめることが無かったなぁ。。。。