達人プログラマー読書会@札幌-2011.11.15 に参加しました

11月15日(火)に行われた、達人プログラマー読書会@札幌に参加しました。
第6章「コーディング段階」に入りました。実践編。
自分がきちんとやっている分野と全然わかっていない分野がはっきりした日でした。

章の前書き

10年前の本に「いったんプロジェクトがコーディング段階に入ると作業はほとんど機械的に設計を実行文として書き写す作業になる」とされているが「こういった考え方こそが、プログラムを見にくく、不十分で、構造化されていない、保守不能な、ただただ悪い物にする最大の理由である」と書かれていたことに驚きを覚えました。
今もなお、そういう流れは残っているな、と感じます。
コーディングは機械的な作業ではない、機械ができることではない、人間の意思決定が必要な作業である、という本の根底にある考えにとても勇気づけられました。

31. 偶発的プログラミング

幸運と行き当たりばったりの成功に頼るような偶発的プログラミングは避けなければいけない。
新人の頃の自分を振り返ると、よくわかります。
「なんで動いているかよくわからないけれど、ここを変えたら思ったように動いた。」
いま考えると恐ろしい。
その他にも、業務でよくわからないスパゲッティコードをちゃんと解析せずに勘やデバッグで動かしていたりしたこともありました。まさに、ジェンガの土台の上でジェンガのようなコードを組み立てていた。
しっかりとプログラムを理解すること、そして自分の書いたコードの未来を考えて実装をすること、絶対に忘れてはいけない考え方です。

32. アルゴリズムのスピード

数学的な知識がまったく乏しいことを痛感した章。
基本的なアルゴリズムをきちんと学び直さなければいけない。
なんとなく普段「これは遅いかも」と思うときがあってもアルゴリズムをきちんと考えることは少ないなあ、SQLの実行計画くらいかもしれない。
今、自分がすぐできることとしては、実装中に頭の片隅に「アルゴリズム」という意識をおいておくこと、わからない・不安だったところについてはアルゴリズムを理解している人にきちんと教えを請うこと、だと思いました。

33. リファクタリング

プログラマとしてお仕事をしていて、時間とともにだんだん理解していったことの一つがリファクタリングの重要性です。
コードがすっきりしていく快感は病みつきです。
リファクタリングをする際に重要なこととして、コードの振る舞いを変えないことがあります。これはテストコードを書いておくことにより、非常に安心感が得られるところ。
この本に書かれていた「リファクタリングと機能追加を同時に行ってはいけない」これは、忘れがち(思わず機能追加途中でリファクタリングを行ってしまいいろいろ混乱してしまう)なので、気をつけようと思いました。
自分がそのコードに触れたあと、そのコードがちょっとだけよくなっている、そういうコーディングを心がけたいです。

この読書会、終盤がだんだん見えてきました。
読書会が終わったあと、きちんと読み直して自分の中にどれだけたくさん取り込めるか、が肝だなあと思っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください