一次選考の連絡が届きました
某ゲーム会社より、一時選考の連絡が届きました。今から1週間後です。何も勉強してないし、さてどうしようか。
ドキュメント作成
私が研究のために開発しているツール、グラフシミュレータのドキュメント整備を行っています。この場でのドキュメント整備とは、すべてのクラスがjavadocを通るようにすることを指します。
このツールの開発は私一人で行っており、もともとお遊びで作っていたということもあり、設計およびドキュメント化にはあまり力を入れていませんでした。ですが修士論文を書くにあたり、論文のネタが思いつかなかったので、このツールの発展系を研究することになり、急遽まじめに設計・ドキュメント化を行う必要が出てきました(うちの研究室では修論のテーマは自分で見つける。私は卒論のテーマも自分で決めた)。研究用ツールだから、作りっぱなしでも良いかなと思いもしましたが、大学生活の集大成として何か残すという意味も込めて、このツールをまじめに作り上げよう決心しました。そして今、急いでjavadocが通るようにコメント&ドキュメントを書いているわけです。
ドキュメントをきちんと書いていると、まじめに設計していないぶん、設計のあらが見えてくるんです。なんでここにこのメソッドがあるんだろうとか、このクラスは分割したほうが良くないかなあとか、一つのオブジェクトのいくつかの側面は一つにしたほうがいいのかなあ、分けたほうがいいのかなあ、なんてドキュメントを書いているうちにいろいろ考えてしまうわけです。
そしてこれは世間一般に言われている設計のリファクタリングにほかなりません(コードはまだ弄ってないけど)。やっと、ドキュメント作成は将来の自分のためにやるべきだと言った、私のプログラミングの先生(?)の意図を掴みかけてきた気がします。コードの理解ではなく、コードの改善のためにドキュメントを作成する、そう思うとドキュメント作成もまた一味違った見方ができ、モチベーションもよりいっそう高まると感じました。
関数の変形@Effective JavaScript
http://www.interq.or.jp/student/exeal/dss/ejs/1/4.html
この一つ前のセクションまでは、濃い内容だとは思っていたけど、lisp/schemeを勉強している身としてはまだ想像の範疇でした。しかし、今回の関数の変形はマジでやばいです。まさかJavascriptでここまでやるとは思いませんでした。
あとでもう一度読むためにメモ。