『ひなた先生が教えるデバッグが256倍速くなるテクニック』を読みました。

ひなた先生が教えるデバッグが256倍速くなるテクニック』を読みました。

この本は先輩プログラマと特別講師が新人プログラマにデバッグの技術を教える話で、初級者から中級車のプログラマが読者の対象になります。
「__LINE__」マクロでソース行を埋め込んだり、コールスタックを調べて関数の呼び出しもとを判定したりするなど、C言語の入門書には書かれていない方法が学べました。
このような方法を知らない方は少なくないのではないでしょうか。

デバッグの技術よりも、バグのないプログラミングの方法についての考察が面白くて参考になりました。
たとえば、「W(x,y-1)+W(x,y+1)+W(x-1,y)+W(x+1,y)」という列挙順はよくないなど。

変数の命名規則についての考察はとても興味深い話でした。

  • 1990年中頃の命名規則は、Windows3.0のSDKは各種ハンドルが同じ型だったため、変数名に型をつけるハンガリアン記法が有効でした。
  • 2000年頃の命名規則は、変数名でメンバ変数であることがわかるように「m_」ではじめたり、アンダーバーを最後につけたりしました。
  • 2005年頃になると、インテリセンスを使うようになり、メンバ変数にアンダーバーをつけなくなります。

開発言語や開発環境・コンパイラなど、さまざまな環境によって、最良の命名規則は異なります。
新しいプログラミング言語やOS・開発環境を使うときは、それまで使っていた方法に固執しないように気を付けたいと思います。

ゾーンを避けろ。ゾーンの集中状態は生産性が高いわけではない。

「フロー」や「ゾーン」というと、意識が集中していて生産性が高い状態、のような印象がある。
誰もがゾーンの状態に入りたいと願っているのではないだろうか。

ところが『Clean Coder プロフェッショナルプログラマへの道』では、「ゾーンを避けろ」とアドバイスしていて興味深い。

ゾーンの集中状態は理論的な能力やスピード感覚が落ちている軽いめい想状態で、ゾーンに入ることの問題は大局観を失うことだ著者は言う。

コードを書くのは速くなるかもしれないが、あとでやり直さなければならなくなる。

著者はゾーンに入ったと感じたら、メールの返信やツイートの閲覧、昼食をとったりして、ゾーンから遠ざかるようにしているそうだ。

Clean Coder プロフェッショナルプログラマへの道』では、次のようなアドバイスもしている。

  • 披露時や注意散漫のときには、コードを書いてはいけない。
  • 心配事があるときは、コードを無理矢理書くよりも、心配事を沈めることに時間を使った方がいい。

プログラミングとは大変な作業である。

『哲学者クロサキのMS-DOSは思考の道具だ』

哲学者クロサキのMS-DOSは思考の道具だ』は、月刊アスキーに1991年8月から1992年8月まで掲載された連載記事を一冊の本にまとめたものです。
20年前の本ですが、参考になる部分がたくさんありましたので紹介します。

この本は、2つの側面があります。

1つはMS-DOSについての入門書的な側面です。
MS-DOSの知識は、今となってはあまり役に立たないかもしれません。

もう一つの側面は、コンピュータがもたらす個人や社会への影響を考察する側面です。
この点では、20年前の本ですが参考になりました。

考えるヒントになったところを抜粋します。

■第3章 思考は<流れ>なのか?

論文の作成方法が、原稿用紙からワープロに変わり、思考と表現の関係が直線的思考法から変化した。
自分にとって本来的なものを、事柄そのものにとって本来的なものと考えてしまっていないだろうか?
人はその時代時代の技術や文化に制約されている歴史的存在である。

古い考え方や昔の成功体験にしがみつかず、あたらしい道具に挑戦することを忘れないようにしたいと思います。

■第4章 物質性を持たない電子文字

プリントアウトしたくなる欲求について。
電子文字は発想や思考と同型の流動性を有している。
プリントアウトすることで思考を固定化して、他者の視点から見ることができる。
※関連:イギリス経験論のロック、ドイツ観念論のヘーゲル、フルボルト

ペーパーレス化を考える時は、プリントアウトの利点も忘れないように。

■第6章 ハードディスク階層構造の構築

あらゆるトラブルを解決するスーパーマニュアルは可能か。

答え:不可能。慣れるしかない。
※フレーム問題

■第8章 CD-ROMは印刷文化を変えるか

これは、ちょうど計算記述源以前に、円周率を一生かかって何千桁も計算した学者に似ています。コンピュータ時代にあっては、残念というか、悲しいというか、彼の一章の努力は、せいぜいパソコンの数十秒でしかなかったのでした。

現代でも、コンピュータに任せたらすぐにできることを、人が時間をかけて行っている場面があります。

■第9章 CD-ROMタンデム走行を目指す

書籍の値段は、本制作費と発行部数の兼ね合いで決められる。
内容の濃さやレベルに応じて、値段が設定されているのではない。
印刷本から電子文字化が進む今後、その価格をめぐって大混乱の起こることが予想される。

日本で電子書籍がなかなか始まらない理由を、ずばり指摘しているように思います。

■第12章 文字表現のカラオケ化

カラオケがプロの伴奏で歌うという行為を大衆に開放したように、パソコン通信がものを書くという行為を大衆に解放した。
人々は、自分について、自分の思いについていっせいに大声で語り始めた。

まるでSNSやツイッターのことを言っているようです。
もちろん20年前には、SNSもツイッターもありませんでした。

プロジェクト管理ツール導入の最初の一冊に。『Trac入門 ソフトウェア開発・プロジェクト管理活用ガイド』

Trac入門 ソフトウェア開発・プロジェクト管理活用ガイド』を読みました。
プロジェクト管理ツールの入門書です。

この本の特に良かった点は、プロジェクト管理ツールを導入することでどのような問題が解決できるのか、どのような点に注意して導入したらいいのか、といったことがわかりやすく説明しているです。
プロジェクト管理ツールの全体像をつかむことができます。

図解・挿絵・漫画・画面キャプチャをたくさん使っているので、読みやすく理解しやすくなっています。

入門書として、とても良くできていると思います。
本書を読むことで、Tracを導入するイメージがつかめるでしょう。

プロジェクト管理ツールを導入する最初の一冊に最適です。