早くも2月も半ばに…早いっすねぇ。
この調子じゃあ、今年1年なんてあっ………………………………………って間ですぜ、お客さん。 って誰やねん!
は、置いといて。
この仕事(システム開発)をしてて特にプログラマで参画してる場合にありがちなのが、
ろくにメンテされていないドキュメント、或いはドキュメント自体が存在しないプログラムの改修又は、バグつぶしだったりします…よねぇ。
まあね、やってって言われればブツクサ言いながらもやりますよ。
基本そういうの嫌いじゃないし。
はい。
でもね。もうチョットどうにかならんもんかなぁとも思ったり。
やってて困るのは、
- 変数の定義が適当
- ローカル定義すればいいものをグローバル定義して使いまわす。
- 意味のある定数値にも関わらず、名前の付け方に意味を持たせていない
ロジックはね、あくまでも「手順」だから何とかなるんです、何とか。
でもその為の手がかりは変数、構造体、定数値の定義なんです。
ここに一番ある意味気を使って欲しいのにそうなっていない事が以外に多い。
で、ここまで読んで気が付かれた方もいるかも知れませんが、
変数の「定義」って書いてます。
ここ、普通は「宣言」って書きます。
「宣言」と「定義」は違います。
個人的なイメージで申し訳ないけど、
- 「宣言」は、使用を表明する。
- 「定義」 は、意味を限定する。
そもそもプログラミング言語の世界で、「宣言」って全然ロジカルじゃない気がするんです。
本来ならデータの「定義」である所を「宣言」って言っちゃったのは失敗じゃないか?
「定義」とすればもっと使い方、意味付に慎重になるんじゃないか。
辞書に意味を定義する
このイメージが出来れば、先に書いた3つの「やられて困る」は減るんじゃないか、
ひいては(極論すれば)ドキュメント無くってもプログラムの解析は楽になるんじゃないかと思うんですよ。
そう言えば、JavaのToolで「難読化」させる奴が有ったよな。
Javaってコンパイルしても元のソースのイメージが残るらしくって、意味の分かる変数名がそのまま残ってるとjarファイルを直接解析して、ソースに起こすことが出来るらしい。
「難読化」ってのはソース上付けられた意味のある名前を無意味な名前(それこそ'a'とか'a1'とか)に変更するToolらしいです。
うーん。
でも結局は、プログラマのポリシーだよな。
そういう所に拘れるプログラマってのは総じて「良いプログラマ」だと思う。
で、そう言うプログラマを育てて行かなきゃいけんのよ。
あーーーっ、そこに落ち着いたかぁ。
では〜。