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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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


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

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

———–

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

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

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

執筆者:高本

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

関連記事

プログラミング

【phpdotenv】PHPで環境変数を取り扱うお話

PHPでサーバーの環境ごとに設定ファイルを用意する場合、config.phpなどのファイルにデータベースの接続情報やAPIのキーなどをdefineで登録すると思います。 これは昔からある一般的なやり方ですが、例えば「ローカル環境やテスト環境と本番環境で情報を出し分けたい」「GitHubやSubversionなどに接続情報を管理されたくない」ということがあるかと思います。 Linuxの場合は「.env」でユーザーごとの情報をあらかじめ設定することが可能ですが、PHPだとデフォル […]

Webサービス

【CAPTCHA系】reCAPTCHAの代替サービスを紹介するお話

みなさん、reCAPTCHAを使ってますか? CAPTCHAと呼ばれる機能は問い合わせフォームやログインフォームなどいわゆるbot系対策として有効で、その中でもreCAPTCHAは無料かつ簡単に導入できるたため、様々な場所で使われてます。 目次1 2024年4月から実質有料化?2 他にないのだろうか?3 アカウントを作る4 PHPでの実装5 最後に 2024年4月から実質有料化? しかし、2024年4月から今まで100万リクエストまで無料だったのが、1アカウント合計1万リクエ […]

Webサイト制作

Webアクセシビリティの基本を学ぼう!

近年Webサイト制作時に求められる『Webアクセシビリティ』。 正直なんだかよくわからない、ややこしそうだなあと思う方も多いと思います。 自分も勉強中ではありますが、今回は対応しやすそうな内容をなるべくわかりやすくまとめてみました。 一緒にWebアクセシビリティについて学んでいきましょう。 目次1 そもそもWebアクセシビリティってなに?2 基本的な対応内容2.1 色のコントラストをはっきりさせよう2.2 文字サイズを変更できるようにしよう2.3 できるだけテキストベースを心 […]

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

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

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

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