IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
この記事は賞味期限切れです。(更新から1年が経過しています) JavaScriptユニットテスト一年生の私が、Nettuts+ のチュートリアルで知ったテストツール 「testem」のお陰で大変捗ったので是非お勧めしたく、ここで紹介してみます。 testem ってなに testem via GitHub : airportyh/testem Unit testing in Javascript can be tedious and painful, but Testem makes it so easy that you will actually want to write tests. 要するに、面倒なJSのユニットテストをより快適にしてみんなでハッピーにテスト書こうよ!というツールです。 testem自体はnode.jsベースで動作し、Jasmine/QUnit/Mochaに対応して
JavaScriptのユニットテストは2年ほど前にQUnitから入って、最近はもっぱらJasmineを利用していました。近年のJavaScriptテスト関連情報をまとめたいなと思い、改めてQUnit最新Version1.10.0のドキュメントとソースを読んで仕様を把握して資料にまとめてみました。 Qunit1.10.0 from Koji Nakamura サーバーサイドJSを開発する時にQUnitを採用する選択肢は僕の中ではないのですが、ブラウザJSを開発する時にはこのシンプルさと導入のしやすさはやはり利点だなと再認識した次第です。
Closure Library は、Googleが提供する JavaScript ライブラリです。 主な特徴は、 他の追随を許さない API の充実度 純粋なクラスベースのオブジェクト指向 Closure Compiler との組み合わせによる高圧縮性能 以下の Google のサービスで使われており、高信頼性
JavaScriptなどのスクリプト言語は動作が遅く、最適なパフォーマンスを得るにはC/C++で実装しなければならないという常識に挑んだ先進的な講演が話題になっています。この話題の発端は2012年10月7日から10月8日までベルリンで開催されたJSConf.euでFelix Geisendörfer氏が行った講演です。 彼の講演の題材はnode.jsからMySQLに接続する為のバインディングのパフォーマンスに着目しています。2010年当時、node.jsにはMySQLのバインディングが存在しておらず、増井さん作のnode-mysqlモジュールが開発中の状態でした。このモジュールはJavaScriptでバイナリを解析しておりJavaScriptのみで開発されていました。この状況を受けてFelix氏が新たにnode-mysqlモジュールを新規に開発を始めました。このモジュールもJavaScri
前回はクロージャの基礎を解説しましたが、あれだけではイマイチなんの役に立つのかイメージが湧かないかもしれません。そこで今日は、もっと実用的な例を挙げてみようと思います。 private変数的なもの+アクセサを作る JavaScriptでクラス(的なもの)を作ろうとするとまず気になるのが、プロパティが全部publicになってしまうことです。JAVA等の言語の経験があれば、private変数が作れないというのがとても不便に感じると思います。どこからでも自由に値を変更できてしまうので、正常な動作を担保するのが難しいですね。 しかしクロージャを使えば、レキシカル変数の保持されつつも外部からアクセス出来ないという特性を利用して、クラス外部から保護された領域を作ることができます。 まず、普通にクラスを作ってみます。 function Multiplier(value1, value2) { this.
HTML5とJavaScriptによるインタラクティブなWebアプリケーションの開発が注目される中、ゲーム分野では数多くのHTML5 JavaScriptゲームエンジン(ゲーム開発用のフレームワーク)が登場している。JavaScriptのライブラリーや情報をまとめているJSwikiによると、その数は70以上に上り、開発者はどのゲームエンジンを選べばいいのか判断が難しい状況だ。 本記事では、数多くあるJavaScriptゲームエンジンの中から、筆者がおすすめするライブラリーを紹介しよう。紹介するゲームエンジンはすべてMIT Licenseで提供されているので、個人はもちろん、商用でも利用できる。 Cocos2D JavaScript (http://cocos2d-javascript.org/) Crafty (http://craftyjs.com/) enchant.js (http:
JSX is a statically-typed, object-oriented programming language designed to run on modern web browsers. Being developed at DeNA as a research project, the language has following characteristics. faster JSX performs optimization while compiling the source code to JavaScript. The generated code runs faster than an equivalent code written directly in JavaScript. The gain may vary, but even the optimi
サーバもクライアントもJavaScriptで記述できる「Meteor」が注目を集めている。サーバ上のコードが変更されると、クライアントも自動的に変更されるという Wikipedia MobileのiOS版がHTML5に 今年は、HTML5を使用したネイティブアプリ開発(ハイブリッドアプリと呼ばれます)が盛り上がりつつありますが、強力な事例が登場しました。WikipediaのiOSアプリがApache Cordova(PhoneGapのオープンソース版)を使って書き直され、Android版と同じソースコードを使用するようになったそうです(詳細:New Wikipedia app for iOS(and an update for our Android App))。 Opera 12ベータ版リリース Operaの次期メジャーリリースが近づいて来ました(リリース)。 一番大きな変化は、Oper
「Meteor」は、JavaScript/HTMLで開発するリアルタイムWebアプリケーション基盤。何が起きているのかすぐに分からないほどすごい 「Meteor」は、Webアプリケーションを開発するためのフレームワークと実行環境を提供しています。アプリケーションはすべてJavaScript、HTML、CSSで記述できるため、サーバ側でRubyやPerlやJavaなどのプログラミングをする必要はありません。 TechCrunchの記事では、JavaScript/HTML/CSSだけでWebアプリケーションが開発できる点にフォーカスが当たり話題になりましたが、公開されたデモンストレーションのスクリーンキャストを見たところ、Meteorにはそれ以上に新しい仕掛けが盛り込まれていました(スクリーンキャストはこの記事の末尾に埋め込んであります)。 それは「リアルタイムなWebアプリケーションを構築す
node.js を代表とする JavaScript を用いた非同期プログラミング環境においては、コーディングパターンのベストプラクティスが共有されておらず、結果として品質の低いコードが多くなるという問題があるように思います。そこで、特にエラー処理をどう書くべきか、既存のライブラリを使う方法を紹介してみることにしました。 いきなりですが、ファイルの文字数を返す関数を作ることを考えてみます。Java だと以下のような感じになるでしょうか。countChars メソッドに注目すると、エラーを例外として扱っていて、モジュラーかつ簡潔になっていることがわかります。 class FileCounter { static long countChars(String filename) throws IOException { FileInputStream is = new FileInputStre
Mojito, is a free, open source JavaScript MVC framework. Yahoo Developer Networkは1日(米国時間)、MVC (Model View Controller)アプリケーションフレームワークの「Mojito」を、オープンソースにしたことを発表した。Mojitoは、同社が提供するJavaScript Ajaxアプリケーションフレームワーク「YUI」用に開発されているWebアプリケーションフレームワーク。YUIと同様に、JavaScriptで記述されている。 Mojitoフレームワークは、Node.js上もしくはブラウザ内とサーバ側、またはクライアント側で動作させることができる。ブラウザ側でJavaScriptが実行できない場合には自動的にサーバー上で実行させる機能を持っており、Yahooではこの特徴によって開発者はコー
そろそろ4月も近いということもあって、新たにWeb業界やSIer業界に入るぞという方がプログラミングの勉強をし始めているころでしょうか。最近は、エンタープライズでもWebクライアントが主流になりつつあるのでJavaScriptの習得は避けては通れない道だと思います。また、Node.js等サーバーサイドのJavaScriptも出てきたこともあって、非常に有用な言語になりつつあります。 そんなJavaScriptを学び始めている人の中でも、ある程度プログラミングをやったことがある人がJavaScriptの綺麗な書き方を学ぶのに絶対理解しておいた方が良い300行程度のソースコードがあります。 それは、JavaScript: The Good Partsに載っているJSONパーサのコードです。 JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス 作者:
圧縮後のファイルサイズはenchant.jsのほうが3kbほど少ないですね。 どちらもjs上に継承などを行う擬似クラスを作るためのClass要素があったり、スマートフォン/PC両方で使えるようにtouch系イベントとmouseDown/Move系イベントを判定したり、fps(フレーム数)を設定してフレーム毎のイベントを設定するなどしています。 後発だけあって、Arctic.jsのほうはenchant.jsの機能をパクったenchant.jsにある機能はだいたいあるような感じですね。 オブジェクトの描画についてですが、Canvasでの描画の方が性能的に有利かもしれませんが、enchant.jsは divタグ毎にオブジェクトに持っていることで利便性をあげています。既存のアニメーション効果をdivタグ単位で 適応することにより、今までのエフェクトを使いまわすことができるのです。 ench
AS3ライクに記述できるJavaScriptゲームライブラリです。(ライセンスはMIT License) ダウンロード - https://github.com/DeNADev/Arctic.js <html> <head> <script type="text/javascript" src="js/arctic.js"></script> <script type="text/javascript" src="js/game.js"></script> </head> <body> <canvas id="canvas"></canvas> </body> </html> (function() { // arcGameクラスを継承したメインクラス var Main = arc.Class.create(arc.Game, { // コンストラクタ(必要なら引数を指定) initial
株式会社ディー・エヌ・エー(本社:東京都渋谷区、代表取締役社長:守安功、以下DeNA)は、人気ゲームタイトルで使用されているHTML5開発支援フレームワーク「Arctic.js」をオープンソースとして公開しました。 「Arctic.js」は、スマートフォン向けブラウザゲームにおけるインタラクティブなアクションゲーム操作や、複雑なアニメーション表現を支援するJavaScript*1フレームワークです。開発者は「Arctic.js」を用いてJavaScriptのコーディングを行うことで、短期間かつ一度の開発でAndroid*2とiOS*3双方の様々なスマートフォンデバイスへ高品質なゲームを提供することが可能になります。*4
調べる方法を知る JavaScriptは調べるとやり方が見つかることが多い 古いものと最近のものがまざってる ごく最近〜未来のものは見つけにくい 以下の総集編的な内容 海外のJavaScript情報を見つけよう 世界のJavaScript情報を読もう 今からRSS購読すべきタグと検索結果 ブラウザの最新情報を知るために、Web開発者が読んでおくべきブログ Webの動きはとても早いので、調べ方を知る
ソースコードリーディングとかしてると、ただコード読んでてもどうしようもなく、オブジェクトの中身や変数などを見るためにデバッグツールを使いながらでないとやっていけないことが今になって分かりました。自分でもどうしようもなくアホだと思いながら戒めのために覚書。 デバッグツールの機能 僕自身まともに触れる言語はjavascriptとphpくらいなもので、どちらもeclipseのようなIDEを使わず頑なにvimを使って組んできました。phpの場合はxdebugと連携させる方法*1や、javascriptならrhinoなんかを入れてquickrunとかって方法も考えられますが、僕はある程度は知っていながらもひたすら標準のスタックトレースやalert,console.log,console.dirばかりしていたので、まずはIDEなどに搭載されている一般的なデバッグ機能を復習をかねて覚書。 ブレークポイン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く