TAも来週で終わりです。
TA来週でクビになるんだ(人聞きの悪い言い方)って書こうと思って30秒でやめました
取り組む課題が変わっただけで、私のやっていることは前期のTAとあんまり変わりありません。
ただ、今回の演習は昼から2コマぶっ通しだし、人も少ない分よく呼び止められるしで、結構体力がいります。しかも、前期は基礎の基礎だったのですが、今回はソケットを使った通信とかいう、割と高度なところから話が始まり、かと思えば今度はクライアントサイドのスクリプティングと扱う範囲も手広く、それでいて学部の時にとっていない演習だったので、あまり勝手のわからない状態でした。にもかかわらず、ひたすらただっぴろいただっぴろい演習室をまわりっぱなし、しゃべりっぱなしです。結構呼び止められるので終わったら声枯れかけてます。
ただ来週で一区切りついて、再来週から担当の先生が交代されるので、それと同時に私もお役御免です。
ネタがないいい機会なので、今回もいろいろ振り返りましょう。今まで見ていてつまづいてるというか困ってそうだなって思ったのはこんなところです。
シェルスクリプトのコメント
//これ
や
/*これ*/
じゃなくて
#これ
です。
5人ほど見かけたので指摘しました。
Google Chromeでローカルファイルを開き、JSを実行するとAjaxでハマる
こちらのブログがくわしいです。
Google Chromeでは(Ajaxで)ローカルファイルにアクセスしようとするとエラーになることについて、他 - エンジニアのソフトウェア的愛情
セキュリティの方針か何かで、デフォルトではローカルからAjaxでファイルを取得することはできない仕様になっています。どうしても使いたいときは「google-chrome --allow-file-access-from-files」という感じに起動します。WindowsでこれをやるときはChromeのショートカットを作り、プロパティ→「ショートカット」→「リンク先」のパスに半角スペースを挟んで先のオプションを書いておけば同じことができます。まあ特にこだわりがなければFirefoxでも使っておけばいいでしょう。
イベントドリブン
後半からJavaScriptで書かれた簡単なスクリプトを改善するという課題が与えられました。なにで苦労しているか見ていると、どうやら「どこから(スクリプトの実行が)始まるかわからない」という人が結構多いように見えました。「何かしたらこのイベントが起きて、それに関連付けられている関数が呼ばれて始まる」ということを結構な人数に説明した気がします。
非同期処理とコールバックメソッド
これもコードを追いかけにくくしている原因でした。ちょうどこんな感じのコードがあったんです。
//do Something var callback = function(data) { store = data.root.items; doSomethingLoadCompleted(); }; parser.async(callback); parser.loadAndParse(); //end eventhandler
このコードを前に、
状態の人が、割と進んでいるほうの人でも見受けられました。
時間のかかる作業にかかりっきりになっているとUIが全く応答しなくなって使い勝手が悪いから、「ある作業を裏方でやらせて(非同期処理)、その仕事が終わったら結果を返してもらって(コールバックメソッド)続きをする」という一見めんどくさいコードを書くんだよということを、できる範囲で説明してみました。