今月の Software Design : 2013/02 (その3)

 「今月の Software Design 」の2月号の投稿第3回目です。

 今月も以下のフォーマットで、各記事の要約と感想を書いてゆきます。

 

・記事のタイトル
( 1 行目 ) 記事の要約
( 2 行目以降 ) 感想

 

・第一特集⑤ :パイプの仕組みを読み解く

 パイプ処理の仕組みについて、FreeBSD の ash のコードを用いて深ぁ〜く話しています。後半は、パイプによって起動したサブシェルのプロセスが並列処理される様子について、サンプルを用いて解説しています。

 パイプを意識しないで使っている人間としては非常に興味深い内容です。システムコールレベルにおいて、どういう仕組みでパイプ処理が行われるかについて解説してくれています。更に深い実装レベルの話については BSD dependent なお話でしたが、非常にわかりやすく bash の場合はどうなっているのかについて思わず調べたくなる内容でした。

 あと、パイプと並列処理についての話も面白かったです。並列処理というと、排他制御が云々と難しいイメージでしたが、実際に簡単なパイプ処理を書いてみて、top コマンドから全ての CPU コアでちゃんと並列処理された時には、ちょっとした感動が味わえます。

 

 

・第一特集⑥ :シェルスクリプトの覚えておくと便利な技

 シンボリックリンクによる排他制御、名前付きパイプ、ヒアドキュメントなど、シェルを利用する上での実用的かつ便利な手法についていくつか紹介してくれています。

 これまでの原理や仕組みなどの話とは対照的に、実用的なテクニックについていくつか解説してくれています。個人的には、名前付きパイプがの話が面白かったです。あと、特集の中で1,2回出てきた「シバン」単語があって、なんのことかわかりませんでしたが、ファイルの冒頭で、カーネルにインタプリタを指定する命令 "#!" を含む一行目のことを「シバン(shebang)」言うんですね(初めて知りました)。

 ところで。スクリプトの排他制御について、シンボリックリンクを作成する手法について紹介されていましたが、記事による手法だとカレントディレクトリの異なるスクリプトから実行すると排他制御されません。シェルスクリプトによる排他制御の目的は、ファイルのロックや、プロセス二重起動の防止などいろいろあると思います。「プロセスの場合は、pgrep -xf でやればいいし、ファイルの場合も flock あるじゃん」とか思ったら、flock の util-linux プロジェクトのライセンスが GPL なんですね。FreeBSDFreeBSD-10 から BSD を一掃すると言っているので、多分そういうことなんだと思います。

 

 

・第二特集① : 明日の朝までにこれをよんでこい!

 IT エンジニアが時々刻々と変化する技術に対応するための勉強法について、物語風に書いたもの。未経験に新入社員が IT 業界に入ってきて、右も左もわからぬ中日々の業務と格闘するお話で、かつて同じ境遇に居たベテランが、昔の成功体験について振り返りながら、新入社員に教えを解いていくという内容です。

 速読勉強法の具体的な内容については慧眼でした。僕も記事で触れられているようなダメ例をこれまでずっと行なってきたので、早速試してみようと思います。

 

 

・第二特集② : お前はノートもろくに取れへんやろ?

 メモ(ノート)のとり方の話。議事録をマインドアップ記法で記録した失敗談と、板書ノートがダメだよという話。そして、四色ボールペンメモ法なるノートのとり方を紹介しています。

 僕は独自のメモ法みたいなモノは無く、またここで提案されているやり方も初めて知るやり方なので、これらについては素直に「そうなんだー」と思うのですが、ここで述べられているメモの用途についてはちょっと疑問です。

 作中で、先輩の新人時代のノートを後輩に渡すシーンがありますが、エンジニアの世界でこんな事って実際あるんでしょうか?4年前の『モダンな Perl 』と銘打たれたノートなんてものは、もはや高校時代の卒業アルバムを見返すくらいの価値しかないんじゃないでしょうか。

 個人的にメモは自分で見返すためのもので、賞味期限はせいぜい1週間くらいだと考えています。ここで言っている「賞味期限」というのは「メモを見ることで、その時の状況や頭で考えていた内容を引き出すことが出来る期間」の事を言っています。当然これは自分にとっての賞味期限であって他人に対して賞味しているものではありません。その期限が来る前にメモを必要とした内容を自分のモノに会得してしまえば、メモを残しておく意味は無いので、そんなに凝ったメモを頑張って作成する必要は無いんじゃなかろうか。

 

 

・第二特集③ : 人に教えてはじめてわかる

 誰かに何かを教える時にやらかすダメな例についての紹介。抽象化がなされていない内容がギッチリ詰め込まれた話をする例がいかに悪いかという事を解説しています。

 目からナニカが落ちました。同時に耳が痛いです。話の内容の正確さを追求するあまり、分り易さがいつの間にかどこか一人旅に出ているなんて事はしょっちゅうです。特に話の内容について詳しく理解している(つもりになっている)場合には特にです。しかし、真に話す内容について十分に理解をしているならば、それをズバリ一言で言い当てる事ができ、逆にそれが出来ない場合にはまだ未熟であるという事なのかなと思いました。

 また作中ではこれを、柳生家の奥義伝承の話を持ってきてこれを解説しており、非っ常に説得力がある素晴らしい内容だとめちゃめちゃ関心しました。今後誰かに何か物事を尋ねられた際には、一言で説明できるよう考えるようにします。