開発の心得

プログラムを書くことについて考えます。思いつくままにただ書くだけでは、早晩行き詰まってしまいます。その原因を突き止め、対策を立てましょう。何を作るにしても、事前の準備が重要です。

あなたはもう若くはないのです。若さとは、技術の低さです。技術がないから、選択肢に気づかず、一気呵成に書けてしまうのです。年齢を重ねるにつれ、気づきもあり、技術もつき、書けなくなっていきます。これはプログラマの運命です。

馬鹿であれ。小学生のころからプログラムを書きつづけてたどり着いた境地は、この一言ですべて表現できます。賢くある必要はないのです。

動くコードはよいコード

プログラムは、価値を生産します。そうでなければ、ただの念仏です。生産とは、新しくなにかを作ることです。ファイルであったり、またユーザの空き時間であったりもするでしょう。逆に、価値をなにも生産しないプログラムもあります。たとえば、スロットマシン。理由は言及しません。

動けば勝ち。単純ですが、それを実現できるプログラマの人数は驚くほど少ないのです。プログラムを学んだ多数の人のうち、おそらく10人に一人いるかどうかくらいではないでしょうか。

プログラマとしての適性があると、動くプログラムは書けません。動かないプログラムを、自分が死ぬまで書きつづけることになるのです。馬鹿であれとはこの部分にもかかっていて、あらゆる便利な動作をするプログラムを追い求めるのはとりあえず横に置いて、ひとつのことを確実にこなすプログラムを意識して書いていく馬鹿さ加減を持つ必要があるでしょう。

人生は短い、コードを書け

設計は完璧、でも書くのに何年かかるの?と、これがよくある話で、夢を追い求めると人生は終わります。誰しも、自分で使うものは自分で作りたいと考えることでしょう。自分の家を建てるために釘から作り始めることがまったく現実的でないのは誰でもわかりますが、ことソフトウェア業界となると、それが現実になりがちです。いまの自分を振り返って、もしや釘を作ってはいませんか?巨人の肩には積極的に立っていく、そうでなければ家は建ちません。

どんな素晴らしい実績をもってしても、死ぬ直前になって、まだ何もしていないのにと悔やむことは避けられません。プログラマにとっての死とは、自分の技術の成熟です。選択肢が見えるばかりに、ああでもないこうでもないとやり、そんなことをしているうちに、死ぬのです。馬鹿は生きる、賢者は死ぬ。この業界においてはその傾向が強いようです。

なにか一つくらいは世に残していきたい、人類に貢献したい、それを善欲と呼びます。善欲は、めぐりめぐって自分の身を滅ぼします。他人のためもいいですが、自分の生活があってこそです。まずは自分のためにコードを書かねばなりません。

書かないコード

コードを書いていると、あれも必要だった、これも必要だ、となりがちですが、本当にいま必要なコードを書くことだけに注力しないと、きりがありません。コード書きに先見の明はありません。後になって、この機能を書いておいてよかった、と思ったことが人生で何回ありましたか?その回数に満足できますか?

コードを書けば、保守工程が発生します。記憶もしておかなければなりません。わかりやすく、後で読んでも理解できるようなコメントも書く必要があるでしょう。いま使わないコードは、言い切りますが、死ぬまで使いません。使わないコードのテストを書く手間を、使うコードを書くことに使いましょう。

何を使うのか、それとも使わないのか、書いてみるまでわからないという場合もあるでしょう。私のスタイルにはその傾向があります。使わないコードを書いて死ぬ、それでは生きてはいけません。コードは生活、生きて活動するものです。博物館に並ぶようなコードを書いて人生を傾ける、そんな私のようなプログラマにはならないでください。

べからず集に従わない

いわゆるコーディングスタイルガイドのような、何かをしないことを啓蒙することで記述者が満足感を得た結果残された塵芥には、極力接しないことが肝要かと思われます。自分自身で考え、何をするのが有用か、きちんと普段から整頓しておいた方がよいでしょう。これをしないのはなぜですかと問われたときに、あそこに書いてあったから、と答えなければならなくなった状況の情けなさといったらないものです。

無から何かを作ることは難しいですが、すでにある何かを廃することは簡単です。寝ていればいいのですから。我々は、起きて活動しましょう。

しかし、べき集もまた問題で、いわゆる自己啓発系のことですが、守っていれば安心できる類の情報商材もまた別の害があります。結局、自分で考えて自分で行動するのが一番よい結果を得られます。私は、べからず集にもべき集にも何度か引っかかってしまいましたが、どうなんでしょう、一度引っかからないと得られない教訓めいたものはあるかもしれませんね。皆さんは、時間を節約してください。私が地雷を踏んでおきますので…。


© 2019 高崎 伸裕 (Nobuhiro Takasaki)