他人のソースコードが読みにくい理由

  • このエントリーをはてなブックマークに追加

こんにちは。株式会社8bit 高本です。

最近プログラムばかり作っているので今回はプログラムについて書いてみます。

デザインに関してはこのデザインすごく好き!などデザイナー同士でリスペクトしあっているのを見かけますが、不思議なもので「あいつの書くソースコードが読みやすくてメンテナンスがしやすい!」と褒めているプログラマーをあまり見たことありません。
(もし、いらっしゃったらすいません。単純に強いて褒めないだけなのかもしれませんが、、)

仕事としてプログラムをやっていると、他の人が書いたソースコードのバグ修正や改修をしなければならないことが多々出てきます。

個人的には、他人のプログラムを修正したりするときに、すんなり分かれば良いのですが、処理に違和感を感じてなかなか理解ができず苦戦することが 多いです。

そもそも、他の人が書いたプログラムを理解して修正するということは他人の頭の中の考える順番を読み取るということなので、違和感を感じて当然なのかと思います。

中には「俺ならこんな無駄な処理しねえ!」なんて憤怒を露わにキーボードを叩いている方も結構いらっしゃいます。

大人数で開発するような大規模なシステムだと、関数仕様などについては事前に統一しておくのですが、Webサービスなど少人数で開発している場合だと、完全に作った人の感覚で開発されている場合が多く、内容にも拠りますが、他の人がメンテナンスをせざるを得ない状況になった時、修正や改修するのが結構難しかったります。

そこで、どうしてこんなに他人のプログラムは読みにくいのだろう、、ということについて考えてみました。

特に解決策があるわけではないので、悪しからず。


変数名や関数名の付け方の趣味が違う。

変数名や関数名の名前の付け方の趣向の違いです。
ルールさえきちんと決めていて統一が取れていれば間違いはないのですが、ここで命名の付け方の趣向が出てくることが多く違和感を感じるポイントになるのではないかと思っています。

俺はアンダーバーやハイフンと必ず日付を入れるんだとか、英語にしても略し方の違いなどなど。
人によってかなりこだわりのポイントだったりするので、こういうところでちょっととっつきにくいなどの感情が芽生えてくるのかと。

コメントを付ける基準が自分と違う。

私個人はコメントがふんだんにないと頭の整理が付かないので、コメントを振って頭を整理します。

人によっては、コメントが少なかったり、コメントの意味が分からなかったりすることがあります。
1から10までコメントがあると読みにくいと感じる人、コメントは要所要所あれば良いという人、人によってそれぞれかと思います。

まったくコメントがないのは別ですが、コメントを付けるタイミングもポイントです。

リファクタリングの考えが違う

関数化などして処理を分割する際に、俺ならこの処理は外出しにして関数化する!など処理のりファクタリングは個人の考えによるものです。
ここが一番の読みにくいポイントかと思います。

ここで、「俺ならこうする!」みたいな個人のこだわりや指摘が出てきます。
理解はできるんだけど、そこはもっとこう作ったら良いのに、「作り直してええ!」なんて言っているプログラマーはたくさんいらっしゃいます。


使っているライブラリーやフレームワークの好き嫌い


使っているフレームワークやライブラリの好き嫌いも結構あると思います。

自分が使ったことのないものであれば、まずは理解しないといけませんし、理解したうえでシステムやサービスの仕様に基づく動作の理解をしなければなりませんので、場合によっては結構な労力を伴う場合もあります。

———–

などとまとめてはみましたが、どのポイントも開発した本人にとっては一番都合良く出来ているものです。
ですので、しっかりバグなく動いていれば何が正しいというのは決められないのかと思います。

バグがなく、仕様通りに動作していれば見た目的にはOKなのですが、プログラムにも個性があり、職人同士が集まると動けば良いってもんではなかったりもします。

色々な人のプログラムを見ていると、よく起こすバグの癖、作る人によってカスタマイズの融通がきいたりきかなかったり、作る人の人間性すらプログラムには出ているようにも感じてしまいます。

執筆者:高本

株式会社8bit 取締役の高本です。 社内のWebサービス企画、プログラミングや、売上・請求管理にいたるまで幅広く担当しております。

関連記事

プログラミング

jQuery+PHPで大容量ファイルを分割アップロードするお話

ファイルのアップロードを行う際に注意しないといけないのが「アップロード容量」と「タイムアウト」です。 どちらもサーバーの設定に関わるところでレンタルサーバーでは対処しきれないところもあり、大容量にするとそれだけアップロードに時間がかかりタイムアウトが発生しやすくなります。 そこでフロント側で分割してファイルをアップし、バックエンド側で受け取った後に結合するようにするとよいでしょう 注意すべき点として通常のPOSTでの送信ではないため、あらかじめそこら辺を考慮した処理が必要とな […]

スマホアプリ

お子さまの安全を守るアプリ「みまもりキッズ」をリリースしました!

お子さまが学校や習い事、遊びに出かけたあと、「ちゃんと安全に過ごしているかな?」と心配になったことはありませんか? 不審者による事件が後を絶たない昨今、お子さまの安全を守るために、常に高い意識を持たれている保護者の方も多いのではないでしょうか。 そんな中、親子の安心をサポートする新しいアプリ「みまもりキッズ」が登場しました! 基本無料で、カンタンに使うことができます。 この記事では、アプリの魅力や使い方を詳しくご紹介します。 目次1 みまもりキッズは何ができるの?1.1 カン […]

WordPress

WordPressの会員限定記事配信プラグイン「Simple Analytics」をリリースしました!

WordPressのイベントカレンダープラグイン「Simple Analytics」をリリースしました! ※この記事は2024年10月現在の情報です。 目次1 Simple Analyticsとは?2 こんなお悩みにおすすめです3 Simple Analyticsで できること3.1 月別・週別アクセス数3.1.1 確認できる項目3.2 ページ別アクセス数3.3 外部サイトからのアクセス数3.4 地域・デバイス別アクセス数3.5 時間帯別アクセス数3.6 ページ毎の直帰率3. […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。