はじめに
ソフトウェア開発の過程で、時折面白くて創造的なコメントに出会うことがあります。これらのコメントは開発作業に楽しさを加え、コードを読む人々に笑顔をもたらします。多くの開発者がこの素晴らしい伝統を受け継いでおり、今日も様々な形でコード内にユーモアを表現しています。
創造的なコメントの例
まずは実際のコード例を見てみましょう。以下は位置情報を扱うクラスの例です:
/**
* 位置情報クラス
* 作成者: yamada
* メール: yamada@example.com
* 日付: 2023-05-15 14:30:00
*/
public class LocationData implements Serializable {
private static final long serialVersionUID = 1L;
/**
**************************************************************
* *
* .=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-. *
* | ______ | *
* | .-" "-. | *
* | / \ | *
* | _ | | _ | *
* | ( \ |, .-. .-. ,| / ) | *
* | > "=._ | )(__/ \__)( | _.=" < | *
* | (_/"=._"=._ |/ /\ \| _.="_.="\_) | *
* | "=._"(_ ^^ _)"_.=" | *
* | "=\__|IIIIII|__/=" | *
* | _.="| \IIIIII/ |"=._ | *
* | _ _.="_.="\ /"=._"=._ _ | *
* | ( \_.="_.=" `--------` "=._"=._/ ) | *
* | > _.=" "=._ < | *
* | (_/ \_) | *
* | | *
* '-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=' *
* *
* ここから先は神聖な領域です *
**************************************************************
*/
/**
* 緯度経度のデータ型を変更しないでください。
* 変更すると後で必ず後悔します。
* 理由は作成時には理解していましたが、今では神のみぞ知る状態です。
*/
private Integer locationId;
private String pointId; // 識別子
private double longitude;
private double latitude;
private String category;
private Integer state = 0; // 状態:0未追加、1追加済み、2送信済み デフォルト:0
private List<LocationData> childPoints = new ArrayList<LocationData>();
......
また、ファイルの末尾には以下のようなコメントを追加する開発者もいます:
/*
* ┏┓ ┏┓
*┏┛┻━━━┛┻┓
*┃ ┃
*┃ ━ ┃
*┃ ┳┛ ┗┳ ┃
*┃ ┃
*┃ ┻ ┃
*┃ ┃
*┗━┓ ┏━┛
* ┃ ┃神獣が守る
* ┃ ┃バグのないコードを!
* ┃ ┗━━━┓
* ┃ ┣┓
* ┃ ┏┛
* ┗┓┓┏━┳┓┏┛
* ┃┫┫ ┃┫┫
* ┗┻┛ ┗┻┛
*
*/
ネット上で見つかった面白いコメント
1. 初心者開発者のコメント
// これが必要かどうか分からないけど、削除する勇気がない
2. 正直な開発者のコメント
// このコードの品質については責任を負いません。
// 意に反して書かされたものです。
3. 不思議なコードのコメント
// なぜこれが機能するのか分からないが、問題は解決した
4. アスキーアートを使ったコメント
/**
* .,:,,, .::,,,::.
* .::::,,;;, .,;;:,,....:i:
* :i,.::::,;i:. ....,,:::::::::,.... .;i:,. ......;i.
* :;..:::;::::i;,,:::;:,,,,,,,,,,..,.,,:::iri:. .,:irsr:,.;i.
* ;;..,::::;;;;ri,,,. ..,,:;s1s1ssrr;,.;r,
* :;. ,::;ii;:, . ................... .;iirri;;;,,;i,
* ,i. .;ri:. ... ............................ .,,:;:,,,;i:
* :s,.;r:... ....................................... .::;::s;
* ,1r::. .............,,,.,,:,,........................,;iir;
* ,s;........... ..::.,;:,,. ...............,;1s
* :i,..,. .,:,,::,. .......... .......;1,
* ir,....:rrssr;:, ,,.,::. .r5S9989398G95hr;. ....,.:s,
* ;r,..,s9855513XHAG3i .,,,,,,,. ,S931,.,,.;s;s&BHHA8s.,..,..:r:
* :r;..rGGh, :SAG;;G@BS:.,,,,,,,,,.r83: hHH1sXMBHHHM3..,,,,.ir.
* ,si,.1GS, sBMAAX&MBMB5,,,,,,:,,.:&8 3@HXHBMBHBBH#X,.,,,,,,rr
* ;1:,,SH: .A@&&B#&8H#BS,,,,,,,,,.,5XS, 3@MHABM&59M#As..,,,,:,is,
* .rr,,,;9&1 hBHHBB&8AMGr,,,,,,,,,,,:h&&9s; r9&BMHBHMB9: . .,,,,;ri.
* :1:....:5&XSi;r8BMBHHA9r:,......,,,,:ii19GG88899XHHH&GSr. ...,:rs.
* ;s. .:sS8G8GG889hi. ....,,:;:,.:irssrriii:,. ...,,i1,
* ;1, ..,....,,isssi;, .,,. ....,.i1,
* ;h: i9HHBMBBHAX9: . ...,,,rs,
* ,1i.. :A#MBBBBMHB##s ....,,,;si.
* .r1,.. ,..;3BMBBBHBB#Bh. .. ....,,,,,i1;
* :h;.. .,..;,1XBMMMMBXs,.,, .. :: ,. ....,,,,,,ss.
* ih: .. .;;;, ;;:s58A3i,.. ,. ,.:,,. ...,,,,,:,s1,
* .s1,.... .,;sh, ,iSAXs;. ,. ,,.i85 ...,,,,,,:i1;
* .rh: ... rXG9XBBM#M#MHAX3hss13&&HHXr .....,,,,,,,ih;
* .s5: ..... i598X&&A&AAAAAA&XG851r: ........,,,,:,,sh;
* . ihr, ... . .. ........,,,,,;11:.
* ,s1i. ... ..,,,..,,,.,,.,,.,.. ........,,.,,.;s5i.
* .:s1r,...................... ..............;shs,
* . .:shr:. .... ..............,ishs.
* .,issr;,... ...........................,is1s;.
* .,is1si;:,....................,:;ir1sr;,
* ..:isssssrrii;::::::;;iirsssssr;:..
* .,::iiirsssssssssrri;;:.
*/
5. 開発者の悩みを表すコメント
// ユーザーが認証なしでログインを要求。これは明らかに悪い考えだ
// このフレームワークは私が心血を注いで作ったものです。
// 秘伝のタレを受け継いでいないなら、コードを修正しないでください。お願いします!
// この部分はまだ未完成です。トイレに行ってきます。
// もし見つけたら、コードを補完してくれると助かります。ありがとう!
// また締め切りが早まったか。心の中で上司を呪っている
(a != b) ? b : a // 妻と意見が一致しない時は彼女の意見を聞く。一致する時は私の意見を聞く
for(int i = 0; i < 100; i++){
saveDocument(); // ドキュメントを100回保存して、確実に保存されたことを確認する
}
6. ある開発者の履歴書に隠されたメッセージ
<!--
<H4>目標:</H4>
広いオフィス、良い給与、そして非常に少ない仕事。
頻繁な経費でエキゾチックな土地への出張もあればなお良い。
-->
7. 古典的なシステムコードのコメント
/*
* 新しいプロセスがスワップアウトによって一時停止した場合、
* スタックレベルを最後のsavu(u_ssav)呼び出しに設定する。
* これにより、aretu呼び出しの直後に実行されるreturnが、
* 実際にはsavuを実行した最後のルーチンから返ることになる。
* これを理解する必要はない。
*/
if(rp->p_flag&SSWAP) {
rp->p_flag =& ~SSWAP;
aretu(u.u_ssav);
}
8. 親切な警告
IF TIMEDIFF >=5
SAY "システムが不安定です。しばらくお待ちください" // システムがおかしくなったら、我慢してください
SLEEP(10)
ENDIF
//
// 親愛なるメンテナーへ:
//
// このルーチンを最適化するのに苦労している場合、
// 以下のカウンターを増やして次のメンテナーに警告してください:
//
// total_hours_wasted_here = 16
//
// 魔法です。触らないでください。
9. 眠気を誘うコメント
/**
* 1匹の羊 == one sheep
* 2匹の羊 == two sheeps
* 3匹の羊 == three sheeps
* 4匹の羊 == four sheeps
* 5匹の羊 == five sheeps
* 6匹の羊 == six sheeps
* 7匹の羊 == seven sheeps
* 8匹の羊 == eight sheeps
* 9匹の羊 == nine sheeps
* 10匹の羊 == ten sheeps
* 11匹の羊 == eleven sheeps
* 12匹の羊 == twelve sheeps
* 13匹の羊 == thirteen sheeps
* 14匹の羊 == fourteen sheeps
* 15匹の羊 == fifteen sheeps
* 16匹の羊 == sixteen sheeps
* 17匹の羊 == seventeen sheeps
* 18匹の羊 == eighteen sheeps
* 19匹の羊 == nineteen sheeps
* 20匹の羊 == twenty sheeps
* 21匹の羊 == twenty one sheeps
* 22匹の羊 == twenty two sheeps
* 23匹の羊 == twenty three sheeps
* 24匹の羊 == twenty four sheeps
* 25匹の羊 == twenty five sheeps
* 26匹の羊 == twenty six sheeps
* 27匹の羊 == twenty seven sheeps
* 28匹の羊 == twenty eight sheeps
* 29匹の羊 == twenty nine sheeps
* 30匹の羊 == thirty sheeps
* もう眠くなったでしょう。さあ、以下のコードはもう修正しないで、寝ましょう~~
*/
10. 神獣に祈るコメント
/**
* ━━━━━━神獣出現━━━━━━
* ┏┓ ┏┓
* ┏┛┻━━━┛┻┓
* ┃ ┃
* ┃ ━ ┃
* ┃ ┳┛ ┗┳ ┃
* ┃ ┃
* ┃ ┻ ┃
* ┃ ┃
* ┗━┓ ┏━┛
* ┃ ┃ 神獣が守る
* ┃ ┃ バグのないコードを
* ┃ ┗━━━┓
* ┃ ┣┓
* ┃ ┏┛
* ┗┓┓┏━┳┓┏┛
* ┃┫┫ ┃┫┫
* ┗┻┛ ┗┻┛
* ━━━━━━可愛いですね━━━━━━
*/
11. 仏陀に祈るコメント
/**
* _ooOoo_
* o8888888o
* 88" . "88
* (| -_- |)
* O\ = /O
* ____/`---'\____
* . ' \\| |// `.
* / \\||| : |||// \
* / _||||| -:- |||||- \
* | | \\\ - /// | |
* | \_| ''\---/'' | |
* \ .-\__ `-` ___/-. /
* ___`. .' /--.--\ `. . __
* ."" '< `.___\_<|>_/___.' >'"".
* | | : `- \`.;`\ _ /`;.`/ - ` : | |
* \ \ `-. \_ __\ /__ _/ .-` / /
* ======`-.____`-.___\_____/___.-`____.-'======
* `=---='
*
* .............................................
* 仏様が守ります 永遠にバグなし
*/
まとめ
面白いコメントは開発者の気分を向上させ、より良い状態でコーディングすることができます。もちろん、厳格なコードレビューを行っている会社では、このようなコメントが通らないかもしれません。
面白いコメントを書くかどうかは、完全にその日の気分と天気に左右されます。
この記事の多くの内容はネットや他のブログから収集したものです。もし何らかの権利を侵害している場合は、お知らせいただければ削除いたします。