呪いの呪文、Snake/Camel/Pascal/Kebab | 熱脳しゃちょのブログ

熱脳しゃちょのブログ

おせっかい焼SE兼プログラマ兼……の辛い日々と、思う事なぞ

まぁ、「こうするもんだ」「こうすることが決まってる」とかさ。

教科書(Webページ)に書かれてるから、覚えて、何も考えずに、機械的に適用する。

AIか?

みたいなノリでなんも考えないできめごと作ってない?

 

ぶっちゃけ、クラスは××、変数は〇〇、関数の命名は動詞からって、場合によっちゃ守らなくても構わなくね? と思ってる(まぁ、その現場で決まってるなら我慢はするけど)。

これ、今はどんな理由付けがされてるんだろう?

変数かプロパティか関数かクラスか分からないとか、IDEがない頃なら分からんではないけど、今はたいていIntelliSenseとか、補完情報が出るだろうし。

Scalaあたりだと、Getter/Setterっぽいのは括弧なしで変数っぽく使って、副作用があるFunctionは括弧つける、ってのは、10年ほど前に初めて触れたとき、「ようやくここまで割り切ってくれた言語が出現したか」と思ったもんだけど。

Pythonとかのスッ裸のアクセス修飾子がない言語で、"_"がついてる奴は触らないでね、みたいなルールは、機能としてのルールではあるから「まぁ、ないから仕方ないよね。いろいろ事情があるからね」とは観念してる。

 

あとは、見た目が綺麗とか、やってる感とか?

なんというか、そういうのも必要だけど、それを整えるのだけに血道をあげても、適切なTestがないとか、そもそも適切なTestを仕掛けることが不可能な感じに非同期処理を密結合で組んでくるとか、その辺りの方がよほど問題だと思うんだよね(整えるのが不要とは言っていないが)。

一つ一つの処理本体の読みやすさより、ソースを隈なく読まなくてもその処理を信用し続けられる方が、大規模多人数プログラムでは何千倍も大事じゃないだろうか?

#「ソース読めばわかるでしょ」とか上から目線でいう技術者がいたが、障害発生時に見た目だけご立派なお前のクソみたいな処理を読み解いてる暇はねぇんだよ、とぶん殴ってやりたくなったことは結構ある。こそこそ陰で修正してリーダーにマージさせて何事もなかった風を装っても、履歴に残ってるんだからな。

 

でもAPIから取得するJsonのKeyがsnakeで、プログラム内はCamelで、DBに格納するときはsnakeで、「Jsonとの相互変換時、言語で自動で変換する機能が実装されたんやで」とかドヤ顔で日本語訳Webページを紹介されても、「正直意味あるんか?」と呆れ感がある(実装したん、お前ちゃうし、原文じゃなく誰かが翻訳してくれたページを、さ)。

三つとも、同じ実体なんだよね。

なら、名前も同じでいーじゃんか。

なんていうか、いつの間にかできた迷信に、なんでそんなに振り回されてるかな? と思う(Must/Should/Mayの区別がついてないとか、そもそものその区分がどうなのよ、ってのもあったりするが。相互運用などの機能的必然じゃなく、ただの主義主張じゃね? みたいな)。

個人で組むプログラムでは、外とのやり取りがある変数/パラメータ名には、CamelではなくわざとSnakeを使ってる。

通常のプログラム内で閉じる変数/パラメータじゃなく、外とのやり取りがある奴、というのがわかるし、一回の検索で関係箇所が全部リストアップできるしね。