floatの日記: "Where Did You Learn Your Code Audit Discipline?" by EXTomar
Theoインタビューの "Where Did You Learn Your Code Audit Discipline? by EXTomar"の1st draft(途中まで).指摘,感想お待ちしています.
Where Did You Learn Your Code Audit Discipline?
by EXTomar
Did the drive to audit code come from the need or the design of BSD? Or was it initially a whim? More imporantly, where did you learn it from? Is their some "mentor" you looked too for ridge design? I have to admire your team's daunting code reviewing...I wonder if I'll ever have that kind of meticulous coding nature
コード監査の訓練はどこで学びましたか?
EXTomarによる
コードを監査する原動力は,必要性によるものでしょうか,それともBSDの設計から来たのでしょうか. あるいはもとより思いつきなんでしょうか? 何より,どこでそれを学んだのでしょうか? 共に見ている「先達」がいらっしゃるのは, めりはりのある設計のためなのでしょうか. あなた方の圧倒されるようなコードのレビューには, 感服せざるを得ません……自分にもあれほどの 精細なコーディングの素質があれば良いのですが.
Theo:
The auditing process developed out of a desire to improve the quality of our operating system. Once we started on it, it becames fascinating, fun, and very nearly fanatical. About ten people worked together on it, basically teaching ourselves as things went along.
We searched for basic source-code programmer mistakes and sloppiness, rather than "holes" or "bugs".
We just kept recursing through the source tree everytime we found a sloppiness.
Theo:
監査過程は,自分たちのOSの質を向上させようという欲求から生まれました.
最初にそれを始めたときは,魅惑的で,楽しくて,
そしてかなり狂信的に近いものがありました.約十人がその共同作業に携わって,
原則としてお互いに教えあいながら事を進めていきました.
「ホール」や「バグ」といったものより,
ソースコードにおけるプログラマーの
基本的な誤りや杜撰な点を探しました.
ずぼらな点を見つけるたびにソースツリーを繰り返したどるということを,ずっとやっていたのです.
Everytime we found a mistake a programmer made (such as using mktemp(3) in such a way that a filesystem race occured), we would go throughout the source tree and fix ALL of them. Then when we fix that one, we would find some other basic mistake, and then fix ALL of them. Yes, it's a lot of work. But it has a serious payback. Can you imagine if a Boeing engineer didn't fix ALL of the occurances of a wiring flaw? Why not at least try to engineer software in the same way?
プログラマーが犯した誤りを見つけるたびに (たとえばmktemp(3)を使ってファイルシステム競合が起こるような場合), ソースツリーを最初から最後までたどって,それをすべて修正します. そうやって一つ直すと,他にも基本的な誤りを見つけるでしょう. そうしたらまたすべて修正します.そう,大変手間のかかる作業です. でもとても大きな見返りがあるのです. ボーイングの技術者が,発生した配線の不具合をすべて 直さなかったらどうなるか想像できますか? 少なくとも,ソフトウエアも同じように設計するように試みましょう.
"Where Did You Learn Your Code Audit Discipline?" by EXTomar More ログイン