プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

アルゴリズムとデータ構造におけるバランス感覚を磨こう

まだ読んでいる途中なのですが、「第三章 設計と実装」で印象に残った言葉を。

プログラミング作法

プログラミング作法

 このプログラムの設計と実装からは、もっと大きなプログラムにあてはまる教訓をいくつか引き出せる。その1つ目は、シンプルなアルゴリズムとデータ構造を選択することの重要性だ。想定される問題のサイズに見合った時間で作業が完了する、一番単純なアルゴリズムとデータ構造を選ぶこと。

プログラムの設計と実装の極意は、まさにこの一言に尽きると思う。大事なことは、必要十分なデータ構造を選択することで、これによりアルゴリズムはシンプルで、移植性や拡張性にも優れたプログラムになると感じている。

個人的には実行時間に加え、プログラムの規模にも注意を払うべきだと考える。実装が必要以上に面倒で複雑になるのなら、データ設計に何かしらの問題がある場合が多い。かと言って、あまりにも単純すぎる実装は、ちょっとした機能追加にも苦労し、構造が複雑化する危険をはらんでいる。

「想定される問題のサイズに見合った時間で作業が完了する」言葉では簡単だが、実際には明確な基準があるわけではなく、なかなかバランスさせることは難しい。プログラムが実行される環境によっても変化する。私もそうだが、日々精進すべし。