( プログラムに魂を込めろ! > Z_ ̄∂
どーもボキです。

前回、指導した(苦言を呈した)同僚が修正したプログラムを、またチェックした。
指摘した箇所は直ってはいるが、何かが違う。モヤモヤしてスッキリしない。
すぐに言葉で言い表せなかったので、チェックする時間を貰った。

モヤモヤ感とは、たとえば、
何かを決定する立場に置かれたとき、上手く言葉で説明できないが、何かモヤモヤする。
喉の奥のほうに引っかかるものがある。要するに、即座にYes!といえない。
そんな時は、時間をかけて考えなおしてみると、
必ずモヤモヤの原因、往々にしてかなり根の深いモノ(解決が難しい問題)が見えてくる。

同僚が修正したプログラムを、時間をかけて見直してみると、
そんなに根の深いものではないが、モヤモヤした原因が見えてきた。
いや、この状況(実力)のまま放置され続けたこと自体が、根が深いコトか…。

それは、
「プログラムに魂が込もっていない」 ことだ。
 言い換えるなら、
「プログラムにコダワリが感じられない」

似たようなことを考えている人はいないかと調べてみると、やはりいた

ボキがいうコダワリとは、この人のような難しい話ではない。
けれど冒頭の部分は、ボキが言いたかったことをよく表している。
それは、
「どの一行についてもその目的が必ず説明できる」 ってところ。

同じことが、ユーザインターフェースにも言えるだろう。
「なぜそのようなUIにしたのか、説明できなければならない。」
説明できない = (使いやすさ や ユーザの使い方 を)考えていない、ということだ。

話がそれたが、
コダワリには、大きく二つ分けられると思う。それは、実行速度 と メンテナンス性。
残念だが、同僚のプログラムからは、そのどちらも読み取れなかった。

ボキの仕事上、実行速度はそこまで気にしなくていい。(プログラマの)常識の範囲でプログラムを書けば十分だ。
現に、かなりの速度で動かす処理はあるが、ボキが書くプログラムでも事足りている。
これに関しては、近年のCPUの処理速度UPに感謝ですな。

むしろ、ボキが重視しているのは、メンテナンス性 だ。

ボキが所属する係のように少人数(実働4人)の場合、ソレは特に重要になる。
各々に専属プログラムがあるので、一人でも欠けると、他のメンバでフォローしなければならない。
そんなときにメンテナンス性を考慮していないプログラムになっていたのでは、
プログラムを読解するだけで数日要してしまう。これではとてもASAPな対応はできない。
プログラマの世界では、「自分のプログラム、三日経てば他人のプログラム」 というくらいだ。

メンテナンス性 を良くするには、
 「どの一行についてもその目的が必ず説明できる」
コレに尽きる。

説明できる といっても、
「こうやっておけば動いたから」 や 「コレを書いておけばエラーがなくなったから」 ってことではない。
そんなコードにコメントすら付いてないもんなら、そこの役割を理解するだけで数時間掛かるだろう。

それは、各行において その位置に書いた理由 や その処理の意図すること を説明できるようにしておくこと、
これを突き詰めることが、プログラムのメンテナンス性 を高めることにつながり、スキルアップに繋がるといえる。


プログラムに魂を込める = すべての行の記述位置・処理内容に意味を持たせる

コレをこだわりぬいたプログラムは、
「いろは歌」ほど洗練されてものでないにしろ、限りなくソレに近くなる。と思ってる。

けどボキは、まだ そこまではたどりつけていない。
自分のプログラムにホレボレするときもあるけれど、後から見直すと修正したほうがいいところがいっぱい出てくるし。


3年くらい前にボキが作った「プログラム作成規約」。それは、
ボキがそれまでの感じていたモヤモヤを、この足らない頭で知恵をひねり出し、言葉に起こしたもの。
それを作ったときの「思い」を思い出しながら、これからどう指導していけばいいか考えよう。
[PR]
by yozda | 2009-02-25 00:05 | SE♂日誌 | Trackback | Comments(0)
トラックバックURL : https://yozda.exblog.jp/tb/7996801
トラックバックする(会員専用) [ヘルプ]
<< [blog] 文章に魂を込めた! [日記] 胃痛で病院に行く >>