その5表と裏を区別するもしもこれが人間性の話だとしたら、もちろん裏表はない方がいいですよね?でも、プログラミングにおいては、いつも表と裏をはっきりと区別しなければなりません。外面と、内面を意識すると言い換えてもいいです。外面、それはインタフェースの部分に相当します。アプリケーションの外面ならユーザインタフェースであったり、公開API等の仕様であったりしますね。これはしっかりと仕様を決めなければ話にならない部分でもあります。ライブラリプログラムだった場合はどうでしょうか。C言語のような関数だけでできているライブラリもあれば、C++のクラスライブラリのようなものもあります。通常、こういったプログラムはインタフェース仕様書を書いてライブラリのユーザに提供する機能や動作、使用方法や手順をしっかりと定義します。同じ機能を提供するのであれば、よりシンプルなインタフェースが求められます。ところが、仲の良い同一プロジェクトチーム内でプログラムを分担するような場合、ついついそれを使う側も作る側も同じチームだから、内々で済ませてしまえるという甘えが出てしまいがちです。インタフェース仕様をきっちり決めずに作り始めてしまったり、決めても作る時の身勝手な都合でそれを守らずにどんどん崩してしまうのです。その結果、インタフェースの内側と外側の区別がなくなってしまい、ぐだぐだになってしまうのですね。これはプログラムの品質が格段に落ちることを意味しています。なってしまっても誰にも見せない内々の話なんだから構わないだろう、と考えたあなたはかなりやばいです。ライブラリに限らず、プログラムには使う側と作る側があります(一番外側のプログラムは使う側の立場のみとも言えますが、たとえばmain()関数はOSから使われると考えることもできます)。そこをしっかりと区別しましょう、ということですね。これはむしろ本能的な感覚として身につけておくべき基本的な習慣だと、僕は感じています。プログラムを関数やクラスといった単位、あるいはもっと小さな単位かも知れませんが、そのまとまりごとに内側と外側を意識して作ることが大切です。オブジェクト指向プログラムの醍醐味オブジェクト指向プログラミングで、クラスのユーザ側から見える仕様を設計することはとても楽しいことです。単なる関数と違って、設計方法を工夫することで非常にスマートでセンスの良いクラスインタフェースを実現できるからです。外面を格好よくできるのですね。1人の担当者がそのユーザにもなるし、制作者にもなることは普通のことですが、他の章でも書いたように、明日の自分は他人ですから、その他人に向けてよいプログラムを作る、という意識を持つことができるわけです。実際に明日そのプログラムを使ってみたときに感じる快感は、ある意味独りよがりなのかも知れませんが、それもプログラミングにおける醍醐味の1つだと考えています。お問い合わせはHPより。◆ミュージシャンのプロモーションビデオを制作したり、CDジャケットの写真撮影などを行っています。システム開発は請負受注します。◆ミュージックビデオ以外に、マルチカメラによるライブ映像制作を行ったり、即興ミュージシャンのための映像譜等の企画・制作なども行ってきました。システム開発は30年以上の実績の中に様々な種類が含まれています。◆今後は映像制作活動を通じて得られた人の魅力についての理解を元に、これまでの枠にとらわれない本当に役に立つプロモーション映像制作や、最終的には映画制作まで行いたいと考えています。システムは我々独自企画のものを立ち上げ、運営します。