Node.js の基本を越えたクイズ

ナレッジ・パスの進み具合をテストする

Node.js に関する知識とスキルのテストをしましょう。このテストを受けると、ナレッジ・パス「Node.js: 基本を越えて」で学んだ重要な内容やコーディング手法がどの程度身に付いているかがすぐにわかります。

Andrew Glover, CTO, App47

Andrew GloverAndrew Glover は、ビヘイビア駆動開発、継続的インテグレーション、アジャイル・ソフトウェア開発に情熱を持つ開発者であるとともに、著者、講演者、起業家でもあります。また、easyb BDD (Behavior-Driven Development) フレームワークの創始者、そして『継続的インテグレーション入門 開発プロセスを自動化する47の作法』、『Groovy in Action』、『Java Testing Patterns』の 3 冊の本の共著者でもあります。詳細は彼のブログにアクセスするか、Twitter で彼をフォローしてください。



2012年 8月 02日

この記事で行う演習とその解答は、developerWorks のナレッジ・パス「Node.js: 基本を越えて」を補足するものです。

  1. Node.js による以下の単純な Web アプリケーションを CoffeeScript に変換しなさい
    var express = require('express');
    
    var app = express.createServer(express.logger());
    
    app.get('/', function(req, res) {
      res.send("Hello World!");
    });
    
    var port = process.env.PORT || 3000;
    
    app.listen(port, function() {
      console.log("listening on " + port);
    });
  2. CoffeeScript で作成された以下のコードを引き継ぎましたが、このコードをコンパイルすることができません。このコードを修正しなさい。
    express = require 'express'
    
    app = express.createServer(express.logger());
    
    app.get '/', (req, res) ->
    	console.log "/ hit!"
    		res.send "Hello World!"
    
    var port = process.env.PORT || 3000
    
    app.listen port, ->
    	  console.log "listening on #{port}"
  3. Amazon の DynamoDB でサポートしているデータ型は、文字列型のみです
    1. 正しい
    2. 誤り
  4. DynamoDB ではテーブル内のさまざまなキーをインデックス化することができます
    1. 正しい
    2. 誤り
  5. なぜ以下の Node.js プログラムは実行できないのでしょう。このプログラムのどこが悪いのでしょう。
    var express = require('express');
    
    var app = express.createServer(express.logger());
    
    app.get('/', function(req, res) {
      res.send("Hello World!");
    });
    
    var port = process.env.PORT || 3000;
    
    app.listen(port, function() {
      console.log("listening on #{port}");
    });
  6. Cake は以下のどれに該当するでしょう
    1. CoffeeScript のビルド・ツール
    2. DynamoDB を扱うための Node.js ライブラリー
    3. JavaScript を扱いやすくするための言語として Fortran に着想を得た言語
  7. Heroku にコードをデプロイする手段は以下のうちのどれでしょう
    1. SCP
    2. FTP
    3. Git でのプッシュ
    4. カスタムのプロトコル
  8. 以下のうち、DynamoDB の Scan API を使用して行えることはどれでしょう
    1. 主キー・フィールド以外のフィールドの検索
    2. イメージのバルク・アップロード
    3. 項目内での新規属性の作成
  9. Mocha テスト・フレームワークを使用すると、同期コードと非同期コードの両方をテストすることができます
    1. 正しい
    2. 誤り
  10. dyno を追加すると、Heroku でホストされる Web アプリケーションの速度を高めることができます
    1. 正しい
    2. 誤り
  11. CoffeeScript で作成したコードをテストするための、Mocha による以下のテストのロジックは、どこに誤りがあるのでしょう。このテストはなぜ失敗するのでしょう
    describe 'updates for a beer using DynamoDB API', ->
    	before (done) ->
    		update = {votes: {put : 1}, type: {put: 'IPA'}}
    		dynode.updateItem 'beer_ratings', '60 Minute IPA', update, (err, resp) ->
    			done(err)
    	it 'should support incrementing a value corresponding to a vote', (done) ->
    		dynode.getItem 'beer_ratings', '60 Minute IPA', (err, item, meta) ->
    			item.should.have.property 'votes'
    			item.votes.should.be.above 1
    			done(err)
    	after ->
    		update = {votes: {add : 1}, type : {put: 'IPA'}}
    		dynode.updateItem 'beer_ratings', '60 Minute IPA', update, (err, resp) ->

解答

皆さんの答えが正しいかどうか、ここで確認してください。

参考文献

  • Node.js: 基本を越えて」: このナレッジ・パスは最初に Node.js の基本事項について説明し、次に Node と Node をサポートする技術を使用してアプリケーションを構築してテストし、そしてサービスとしてのプラットフォーム上にデプロイする方法について説明しています。
  • developerWorks の Java technology ゾーン: Java プログラミングのあらゆる側面を網羅した記事が豊富に用意されています。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Java technology
ArticleID=828030
ArticleTitle=Node.js の基本を越えたクイズ
publish-date=08022012