===========================================================

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ファイル
になります。

ではまず、一枚目の表の左側、コントロール層のヘッダファイル
をご覧下さい。


※ソースファイルの説明が行われる。


※以下、ソースコードに対するレビュー及び質問とそれに対する
解答が行われるが、書記者の手元に資料がなく、質疑応答の展開
が早かったため意味のある文章が取れていない。

全体的にレビュー側の資料準備が十分ではなく、進行役が質問内
容を十分に理解できていなかった。また、ソースコードに関する
細かい話はあったが、その前提となる仕様の検討もまた不十分で
あり、ソースコードの内容が仕様よりも正しいという意見まであっ
た。