プロの研究開発者になって丸1年で何が変わったのだろうと振り返ってみました。
1年前に比べると技術理解や知識量も変化・向上しているのですが、やはり最も変わったのは開発に対する意識であると思います。中でも大きかった3つの意識をピックアップしてここに掲載しておきます。
IEを無視しない
従来は自身のウェブサイトを作成する際、IEを積極的にはサポートしていませんでした。特に見苦しくなければ多少デザインが崩れても問題ないと考え、:hover擬似クラス*1やdisplay=inline-block*2なんかをよく採用していたと覚えています。
ただこれらはIE、特に古いバージョンではデザイン崩れの問題となるため、企業向けシステムでは採用すべきではないケースが多々あります。欧州ではWindows7にIEを同梱しないという話も出ているようですが、日本の一般企業が採用するブラウザがIEでなくなる日はまだ遠そうです。
ミドルウェアやプロトコルを理解する
私の場合、自作プログラムとエンタープライズアプリケーションの最大の違いは「規模」でした。
自作プログラムは1つのプロセスで完結するシステムが大半で、たまにCOMを通じてアプリケーションやWebAPIと連携する程度。ミドルウェアや通信プロトコルといったものは存在だけ知っていれば良く、積極的に理解しようとはしていなかったように思います。
反面、エンタープライズアプリケーションではまず間違いなくサーバーを利用します。この時点で1プロセスで完結するものではなく、複数のプロセスやマシンが協調動作する複雑なものであることが確定してしまいます。このため簡単な開発でも、アプリケーションサーバー・ウェブサーバー・データ永続化層・通信プロトコルなどに対する知識が必要です。
もちろんApache・Tomcat・MySQL・SQLite・memcachedなどは気軽に利用できるので、個人開発によるキャッチアップが難しいということはありません。ただこれらを必要とするプログラムを作ろうというシチュエーションにはなかなか出会えないのではと思います。
コードが読まれることを意識する
個人開発でもブログにコードをアップしたいたため「人に読まれる」ことは意識していましたが、これはプロとして「人に読まれる」こととは目的が異なります。
個人開発でのコードは「他の開発者の参考」「他の開発者の考えるきっかけ」になれば充分でしたが、プロとしてコーディングする以上「他の開発者が困らない」「引継いだ相手が問題なく修正・機能追加できる」のが最低条件となります。具体的に必要な要素はドキュメンテーションコメントの充実・意味のある変数名・洗練されたインタフェースなどなど。まだ理想の形すらぼんやりとしか見えていませんが、業務を引き継ぎ引き継がれることで少しずつ学んでいければと思います。