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つ目のセッション。

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

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

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


QConTokyo2011:Webアプリケーションエンジニアが見て来た10年

キーノート2つ目のまとめ。

伊藤直也氏の「Webアプリケーションエンジニアがみてきたこの10年」。

この15年を振り返るセッションだったけど、一番聞いてよかったセッションだった。
『自分には”可能性”が無い』、と落ち込み、劣等感に苛まれていたのが情けなくなる。

やっぱりエンジニアである以上、世界をよりよくしたい。
そう原点に立ち戻らせてくれるセッションでした。


QConTokyo2011:ドメイン駆動設計

まずは冒頭のキーノートのまとめから。

Eric Evans氏の
「ドメイン駆動設計:複雑な問題群に対する有用なモデル達」。
ぶっちゃけると一番難解だった。

システムレベルのモデリングを行ったことが無いからある意味当然かな.

私は現状ベースのモデルは切られた上で、
その上でミクロな設計をしているにすぎないから。

とまぁ、まとめは下記の通りです。


QConTokyo2011、参加セッション決め台詞(?)一覧

QConTokyo2011 に参加してきました!

まともに参加した初めてのセミナーだったため、非常に新鮮でした。

まとめをしたい所なんですが、時間も時間で眠いため、
参加した各セッション毎の決め台詞というか、ポイント一覧だけまずは投稿します。

ドメイン駆動設計:複雑な問題群に対する有用なモデル達

現実/何にでも使える1つのモデルを追い求めるべきではない。
あくまで"何のために?"をベースに役に立つモデルを選択すべき。
設計時に役に立つモデルが見えていることはまず無い。


Webアプリケーションエンジニアがみてきたこの10年

エンジニアの誇りとは、高度な技術によって得るものではない。
自らが使命とする問題領域をより高度な技術基盤によって発展させることによって
得るものである。
#微妙に違うかもしれません。


自律的な学びのデザインと誘発 ― 学びのパターン・ランゲージ

変化が激しい現代社会では、詰込み型ではなく、
新しい関係性を発見し、自ら意味を編集・構成していけるような「創造的な学び」が必要。
そして、デザインパターンだけでなく、「創造的な学び」にもパターンが存在する。


品質検査技術のトレンド–レビューと測定・欠陥工学を中心に-

品質とは,腕で作り出すものではなく, 科学の力と目で創出するものである


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

サービス無停止と将来の規模拡張に対応可能な仕組み、
“分散キャッシュ” という考え方


Performance Engineering at Twitter

Just do less
Focus on Memory
Access data explicitly and in bulk
let the code make informed decisions


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

形式手法はレビュー/テストの限界を超えて検証が可能
但し、万能ではない。銀の弾丸は存在しない。
他の手法と組み合わせることで大きな効果を発揮することが出来る。


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

クラウドを通して日本をよりよくしたい想いは皆共通。
ただ、『今までと全く同じものを安く手に入れる』ことはクラウドでは出来ない。
それは忘れないでほしい。

福島原発の事故、レベル7てことはチェルノブイリ級?

どうやら、日本政府が福島原発事故のINESレベルを7に引き上げたそうで。

http://www.news24.jp/articles/2011/04/12/10180777.html

チェルノブイリレベルの事象になったということで、
一度チェルノブイリについてまとめて、マインドマップとしてまとめました。
・・・ハイ、嘘です。
状況と発表されている放射性物質の放出量から見てレベル7に達するかも、と見て
予めまとめておいたものです。

なんかいやな予感がしていたんですが、まさか現実となるとはなぁ。
ホントはこんなまとめ出さんで済むように終わってくれればよかったんだけど。。。。

尚、情報のベースは下記のドキュメンタリーより。

-チェルノブイリ原発事故・終わりなき人体汚染 → 1996年(事故10年後)NHKドキュメンタリー
-汚された大地で ~チェルノブイリ 20年後の真実~ → 2006年(事故20年後)NHKスペシャル

てか、チェルノブイリ事故発生時の幼い子供って私と同年代やん。
全く他人事とは思えない。。。。