こんにちは。株式会社8bit 高本です。
最近プログラムばかり作っているので今回はプログラムについて書いてみます。
デザインに関してはこのデザインすごく好き!などデザイナー同士でリスペクトしあっているのを見かけますが、不思議なもので「あいつの書くソースコードが読みやすくてメンテナンスがしやすい!」と褒めているプログラマーをあまり見たことありません。
(もし、いらっしゃったらすいません。単純に強いて褒めないだけなのかもしれませんが、、)
仕事としてプログラムをやっていると、他の人が書いたソースコードのバグ修正や改修をしなければならないことが多々出てきます。
個人的には、他人のプログラムを修正したりするときに、すんなり分かれば良いのですが、処理に違和感を感じてなかなか理解ができず苦戦することが 多いです。
そもそも、他の人が書いたプログラムを理解して修正するということは他人の頭の中の考える順番を読み取るということなので、違和感を感じて当然なのかと思います。
中には「俺ならこんな無駄な処理しねえ!」なんて憤怒を露わにキーボードを叩いている方も結構いらっしゃいます。
大人数で開発するような大規模なシステムだと、関数仕様などについては事前に統一しておくのですが、Webサービスなど少人数で開発している場合だと、完全に作った人の感覚で開発されている場合が多く、内容にも拠りますが、他の人がメンテナンスをせざるを得ない状況になった時、修正や改修するのが結構難しかったります。
そこで、どうしてこんなに他人のプログラムは読みにくいのだろう、、ということについて考えてみました。
特に解決策があるわけではないので、悪しからず。
● 変数名や関数名の付け方の趣味が違う。
変数名や関数名の名前の付け方の趣向の違いです。
ルールさえきちんと決めていて統一が取れていれば間違いはないのですが、ここで命名の付け方の趣向が出てくることが多く違和感を感じるポイントになるのではないかと思っています。
俺はアンダーバーやハイフンと必ず日付を入れるんだとか、英語にしても略し方の違いなどなど。
人によってかなりこだわりのポイントだったりするので、こういうところでちょっととっつきにくいなどの感情が芽生えてくるのかと。
● コメントを付ける基準が自分と違う。
私個人はコメントがふんだんにないと頭の整理が付かないので、コメントを振って頭を整理します。
人によっては、コメントが少なかったり、コメントの意味が分からなかったりすることがあります。
1から10までコメントがあると読みにくいと感じる人、コメントは要所要所あれば良いという人、人によってそれぞれかと思います。
まったくコメントがないのは別ですが、コメントを付けるタイミングもポイントです。
● リファクタリングの考えが違う
関数化などして処理を分割する際に、俺ならこの処理は外出しにして関数化する!など処理のりファクタリングは個人の考えによるものです。
ここが一番の読みにくいポイントかと思います。
ここで、「俺ならこうする!」みたいな個人のこだわりや指摘が出てきます。
理解はできるんだけど、そこはもっとこう作ったら良いのに、「作り直してええ!」なんて言っているプログラマーはたくさんいらっしゃいます。
● 使っているライブラリーやフレームワークの好き嫌い
使っているフレームワークやライブラリの好き嫌いも結構あると思います。
自分が使ったことのないものであれば、まずは理解しないといけませんし、理解したうえでシステムやサービスの仕様に基づく動作の理解をしなければなりませんので、場合によっては結構な労力を伴う場合もあります。
———–
などとまとめてはみましたが、どのポイントも開発した本人にとっては一番都合良く出来ているものです。
ですので、しっかりバグなく動いていれば何が正しいというのは決められないのかと思います。
バグがなく、仕様通りに動作していれば見た目的にはOKなのですが、プログラムにも個性があり、職人同士が集まると動けば良いってもんではなかったりもします。
色々な人のプログラムを見ていると、よく起こすバグの癖、作る人によってカスタマイズの融通がきいたりきかなかったり、作る人の人間性すらプログラムには出ているようにも感じてしまいます。
株式会社8bit (エイトビット)
東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。