IT技術にまつわる実験ノート

「長編を書くより、短編を数多く完成させてください。それが上達への近道です」 by 手塚治虫

技術書では抽象化を解説しない

書籍「パーフェクト Ruby on Rails」を読んでいたところ、以下のような文章を見つけた。

Rails でアプリケーションを開発する時、最も重要な構成要素はモデルです。システムを開発する際には、システムの対象となる業務に必要な知識を抽象化し、各概念の関係性を明確にすることが重要です。

  • p.332

なるほど、いいこと言ってる。この説明は間違いない。

ただ、この文章の意味を理解するには、読者が「抽象化」思考をできなければならない。この本は技術書なので「抽象化することは重要」とは言っても、抽象化とはなんぞや、どうすれば抽象化できるようになるのか、といった記述はない。

技術書では抽象化を解説しない。そのため、抽象化思考は別途で学ぶ必要がある。

とはいえ、そもそも抽象化思考が重要であるということすら知らない人には、学ぶ機会すらない。技術書でさらりと「抽象化が重要」と書かれていても、さらりと読み飛ばすだけだ。

 

なお、抽象化思考は数学や物理学といった学問で養われるため、理系の学生は無意識のうちに抽象化の訓練を行っているとのこと。(リンク

また、抽象度の高い概念は、見える人にしか見えない、とのこと。(リンク

 

というわけで、抽象化はプログラミングにおいて重要であると言われながらも、(理系だったら学校で訓練しているため)技術書でわざわざ解説されない傾向がある。とにかく、抽象化がわからないのなら、別途で学ぶ必要がある。

 

f:id:matt-note:20190130102107j:plain