=========================================================== Hamana-3 S1-4-4 Surveyor Project Hamana-3 最終調整 20:30-22:30 F会場 =========================================================== 司会: えっと、これよりHamana-3ソースコードレビューを始めさせて頂 こうと思います。できるだけ前に来られるようお願いします。 進行役: まず、このソースコードレビューに先立って、ソースコードの全 体の仕様をレビューしようと思います。 では、仕様書から見たいと思います。 まずいきなりジャイロセンサのデバイスドライバの仕様書から入 ろうと思うのですが、全体に関係する資料を用意することを怠っ てしまいまして、そちらの資料を映像として流すことができず申 し訳ありません。 今年はジャイロセンサを1からデバイスドライバを作りました。 そちらの仕様書をまず見ていただきたいと思います。ジャイロセ ンサのジャイロの状態を2.1に載せました。 ※状態遷移図に関する説明が行われる。 なお、変数の初期化に関していくつかの質問が入ったが、大部 分は聞き取れなかった。 Q: 初期値一定だと、startの状態から始まっているというのは在り 得るのですか。 A: invalidの場合のみ、強制的に終了し、sleep状態に遷移します。 進行役: では、下に移ります。 先ほどの状態遷移図を表示したもので、状態遷移表です。 こちらの左の縦に並んでいるのが、遷移前ということになります。 上に並んでいるのが遷移後ということになります。そして、×と 表示されているのが、遷移できないということになります。 そして、こちらが遷移図をまとめたものになります。 今度は下を見ていただきたいと思います。 ※エラー一覧表を見せる。 その下、gyroのstart、restartであるという、またスタートされ ていないとうエラーになります。 ※エラー一覧の説明が行われる。 では、次はジャイロセンサーのインターフェイスの詳細に入りま す。 ※ジャイロセンサーの説明が行われる。 次は4.3ジャイロセンサ計測スタートについてです。機能と致 しましては、ジャイロエラーのスタートを致します。 こちらでは停止が呼ばれるまでは計測が続けられます。 なお、その制限事項で、startとstopこれは必ず実行されます。 続きまして4.4ジャイロエラーの計測ストップについてです。 制限事項は、gyrostopは必ず実行し、停止できない時はジャイロ エラーのstopを開始します。 続きまして、4.5ジャイロエラーの説明をします。 ※ジャイロエラーの説明が行われる。 こちらの関数を読みますと、最新のデータを読み込みします。 もし引数エラーの場合には、パラメータエラーを返すこととしま す。 では、ソースコードの説明に入りたいと思います。 司会: ソースコードのレビューを、どういう風にレビューして頂きたい かということを書いていこうと思います。 まず、今回のは新入社員が書いたものなので、かなり下手なソー スコードとなっています。 私の意図としては、経験豊かな皆様にご意見いただきたい。 そして下手なソースコードを、どのようにすれば上手く書き直せ るのかを提案していただきたい。 次に、今言ってしまったのですが、上手なコードというものがど のようなものか教えて頂きたい。 「方針」 ・綺麗なコード ・読みやすい 今回は二時間と短く、分科会というのが後一時間しかないため、 残りは303号室でします。 また、個別に意見頂きたいと思います。 ぜひとも厳しい目で見ていただきたいと思います。 私からは以上です。 では、実際にコードの中を見て頂こうと思います。 それではコードレビューをお願いします。 ※これから先のレビューは、主に配布(?)資料を見て進められ た。 進行役: ではコードに入りたいと思います。 今回はソースコードを2層に分けました。 ハードウェア層、これをコントロール層と呼んでおりますが、コ ントロール層はハードウェアを触りません。 ハードウェア層は、レジスタなどをまとめた構成にしました。 説明が遅れましたが、まず一枚目の紙になりますが、こちらがヘッ ダファイルを右(のページ)と、左(のページ)に分けて載せて あります。 左側(のページ)に関しましては、コントロール層ヘッダファイ ルがあり、右側(のページ)にはハードウェア層のものがありま す。 一枚目の裏は、コントロール層のCファイルに入ります。 二枚目の表の左半分の上、真中より上、ここまでがコントロール 層のCファイルになります。 その続きから、二枚目の裏にかけてハードウェア層のCファイル になります。 ではまず、一枚目の表の左側、コントロール層のヘッダファイル をご覧下さい。 ※ソースファイルの説明が行われる。 ※以下、ソースコードに対するレビュー及び質問とそれに対する 解答が行われるが、書記者の手元に資料がなく、質疑応答の展開 が早かったため意味のある文章が取れていない。 全体的にレビュー側の資料準備が十分ではなく、進行役が質問内 容を十分に理解できていなかった。また、ソースコードに関する 細かい話はあったが、その前提となる仕様の検討もまた不十分で あり、ソースコードの内容が仕様よりも正しいという意見まであっ た。