2021-06-06

プログラマはなるべくコードを書くな」という言説

経験豊富プログラマほどこの言説をすっと理解して、経験の浅い人ほど理解できないらしい。

よくある誤解に「学習のためには車輪の再発明をした方がいい」というものがある。

これは間違っている。学習のためであっても、既製品劣化コピーを作るよりも、既製品を利用した方が学ぶものは多い。

たとえば、初心者データを保存するしくみを試行錯誤して実装したところで、既存リレーショナルデータベースよりも良いものができるはずがない。

一方、最初からデータベースを使っていれば、単にデータを保存すると言う目的を達成するだけではなく、主キーや外部キーインデックストランザクションSQLなどの重要概念を学ぶことができる。

プログラミング初心者車輪の再発明をするのは将棋で言えば、駒の動かし方を覚えただけの初心者が「一手目は76歩がいいのか26歩がいいのか」なんてことを延々と考えているようなものである。そんなことに意味はない。そんなことをするより、さっさと定跡を覚えた方がよい。

さて、経験豊富プログラマほど「コードを書くな」というのがすっと腑に落ちるのは、それがどういうことなのかを理解しているからだ。

たとえば彼らは、「設定より規約」という概念について、具体的な実例とともによく理解している。

一方、経験の浅いプログラマは、設計コーディング能力も低いし、複数パラダイムや良いフレームワークにも触れたことが無いから、「コードを書かない」というのが何を意味するのか理解できない。だから、「コードを書くな」という主張も理解できない。

  • 内容自体は同意するけれど、データベースの例えは完全に学習方法が間違っていて、データベースを再実装するならデータベースの教科書を見ながら現代的なRDBを模倣して作って見るの...

    • データベースを作るのでなければ、自分でつくる必要ありませんよね

      • データベースを手習いに作りたい人を想定していました(Webサイトを作りたいのならもちろん既製のRDBを使った方が良い)

  • DBMSを作ってDBMSの中身を深く知るのは既存のDBMS使う際にもいい経験になるぞ。 作る過程では既存のDBMSのコードを参照するだろうし。

  • なおベテランエンジニアが「コードを書くな」と言うのは、コードを書いた(or 修正した)分だけテストをしないといけないので無駄にテスト工数増やすなという理由が大きい。

  • DRY原則

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん