2014年6月16日月曜日

Pattern-Oriented Software Architectures: Programming Mobile Services for Android Handheld Systems (4th Virtual office hours)

[W3A2(simple-semaphore)]
メンバ変数を初期化もfinalもしていない。
finalに何故しないのかと言う質問があったが、しても良いと言ってただけのような気がする。。。
mCountをstaticにすべきではない。UnitTestでNGになる??
volatileは無くても良い??
初期化時にcountは負になる場合も考慮しているが、0まででもOK。
Uninterruptibilyでロジック上は割り込みは発生しないのでtryは不要だが、書いた方が良いと講師は考えている。良い習慣や不慮のexceptionに備えて。
mCountの取得はvolatileなのでjavaではlock不要。atomicは保障されている。
lockしていても不要なだけなのでpointは引くなと言っているが。。。

[W4A3(ping-poing)]
こちはら実装前のskeletonを見ながらの説明。
acquire()ではUninterruptiblyを使うのが推奨。
CountDownLatchではなくてjoinでも済むが、練習のためのと次の課題のために使っている。
mLatch.await()もtry{}が推奨と言っていたが、finallyするものが無いのでは?

[git]
説明videoだけの様なので省略。

[Etc.]
Assignmentの細かい説明があった。皆から上がった疑問に基づいているので興味深い。
自分も同じ課題を解いているので、同じ疑問や違った視点もあり面白かった。
単なるvideo baseのcourseよりinteractiveになっていて良い。
peer evaluationの基準は「間違っていない事」。
冗長な部分や非効率があってもそこでは点数は引かない。コメントに記載する。
「これは教育目的の演習だから許すけど、実プロジェクトなら許さない」等のコメントもあり面白かった。

0 件のコメント:

コメントを投稿