第38回HTML5とか勉強会「Webアプリ×テスト最新事情」の発表資料です。 https://html5j.cloudfoundry.com/event/sd38

こんにちは。kintone開発チームの天野 (@ama_ch) です。 最近はJavaScriptのテストツールが著しく進歩し、日々新しいツールが登場しています。kintoneの開発もこれらのツールによって支えられています。 kintone開発チームでは、昨年末頃からテスト環境の改善に取り組み、モダンなツールセットに乗り換えました。今回は、現在のkintoneのJSユニットテスト環境について紹介します。 kintoneとJSユニットテスト 数年前からユニットテストと自動化の仕組みはあったのですが、ごく一部のユーティリティ関数に書かれているのみで、普段の開発には活用されていませんでした。 ここ1,2年ほどで テストスケルトンを生成するジェネレータスクリプトを作る テストの書き方をまとめたドキュメントを用意する MTGで「ユニットテストを書かなくていいのは小学生まで」などと煽る コードレビュー
kintoneはJavaScriptを使って自由にカスタマイズできます。 カスタマイズにより独自のリッチなUIを構築したり、新しい機能を追加したりできますが、セキュアなコーディングをしないと クロスサイトスクリプティング (以下、XSS)などの脆弱性を作り込んでしまう危険性があります。 この記事では、JavaScriptでセキュアなコーディングをするための基本的なポイントを解説します。
JavaScriptについては一通りマスターした中上級者がさらに上を目指すための高度でかつ有用なテクニックを盛り込んでいます。デザインパターン、コーディングパターン、アンチパターンに基づき、いままで以上にJavaScriptを使いこなし、プログラミングの力を向上させ、JavaScriptのエキスパートになるための知識と技を豊富に紹介。次のステップに踏み出したいプログラマにとって貴重な情報源となる一冊です。Yahoo!のエンジニアとして数々の有用なアプリケーションの開発に携わってきた著者がJavaScriptを200%使いこなすための秘伝を伝授します。 まえがき 1章 はじめに 1.1 パターン 1.2 JavaScriptの概念 1.2.1 オブジェクト指向 1.2.2 クラスというものはない 1.2.3 プロトタイプ 1.2.4 環境 1.3 ECMAScript 5 1.4 JSLin
歴史認識 だいたい以下のような流れだと認識している。 IE8以前を含むECMAScript 3暗黒時代があった この時代をベースにベストプラクティスが構築 + HTML5ブームが発生した 暗黒時代なんで結構つらいし、IE9じゃないとECMAScript 5使えないし、結局辛い CoffeeScriptを筆頭としたaltJS一派に救いを求めた(結局Coffeeは一過性のカフェインだったわけだけど) 気がついたらECMAScript 6が来そうになっていた ES6でのsyntaxの拡張・標準ライブラリの増強はカッコいい 気がついたらES5当たり前、ES6も使えそうな世界が来そうになっていた(希望的観測が多分に含まれているのは暗黙の了解と化している) ES6、altJSの次のナウい世界として注目を集める だいたいこんな感じで、ECMAScript 5を用いたベストプラクティス的な物が存在しない、
homework help,online homework help,online tutors,online tutoring,research paper help,do my homework, https://www.homeworkping.com/ Ankit Rustagi has over 11 years of experience in software development. He currently works as a Senior Advisory Consultant at IBM India Pvt Ltd. Previously he has worked as a Lead Engineer at PureSoftware Ltd, Senior Consultant at Capgemini India Pvt Ltd, and Senior Ass
先日JSHint 1.1.0がリリースされ、そのリリースノートに気になる記述がありました。 Adds new option gcl to make JSHint style checks compatible with Google Closure Linter. うそーまじでーなにそれヤバイ! 普段は仕事でClosureにどっぷりなせいもあってClosure Linterを使っているんですが、Closure LinterってJSDocとかお作法的なとこはチェックしてくれるけど、他のLintツールが当たり前にチェックしてくれるとこはやってくれないんですよね。たとえばvarの付け忘れとか。 Closure Compilerを使ってコンパイル時にチェックすることもできるけど、規模が大きくなってくるとその結果が出るまでに10分とか待たないといけなくっていやな感じー。Closure Linterと
前置き この記事は Frontrend Advent Calendar 2013 の7日目です。 意見表明を避けてたジャンルだけど、俺流Backbone.jsとの付き合い方と、それを反映したライブラリについて書いてみる。大半が夏前に書かれていたけど、イマイチで放置してた系を掘り起こした! 職場近くに俺流塩らーめんというお店があって、そこの熟成塩ラーメン(¥680)が、スガキヤのラーメン(¥280)に近い味してる気がする。¥400余分に払っても価値がある。 巷ではdata bindingsだとかMV*の在り方に関心が集まっている昨今、マイペースにAOP風(記述言語がないので実装はmixin...)とか、Viewの領域管理の表現に腐心していた。 今の時点ではこれがベストとは思っておらず、つまるところ Marionette.js あたりを上手に使うことに注力すれば良さそうというのが結論だ。そこに
JavaScript performance comparison Revision 5 of this test case created on 29th August 2012 Preparation code <script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script> <script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js"> </script> Preparation code output Test runner Warning! For accurate results, please disable Firebug before running the tests.
Backbone.js Advent Calendar 2012の21日目でございます。おもむろに小ネタなパターンを、3つほど簡単に紹介してみる次第。 renderとpresenterの分離パターン これは Backbone.js Tips and Tricks を参考にしています。実践してみたところ、なにかと具合が良くてお気に入りのパターンです。 Backbone.View.extend({ tmpl: 'path/to/tmpl', initialize: function() { this.model = new SomeModel(); this.model.fetch({ success: this.render }); }, presenter: function() { var data = this.model.toJSON(); // data manipulation
Vue.js 軽量でパワフルなデータバインディングMVVM, vue.jsで遊んでみた - mizchi's blog を読んで触発されたので、自分も外見的に良いなと思ったポイントだけ書き留めてみます。さすがに実戦投入できていないので、そのあたりの精度は悪しからず。 サンプルコードの雰囲気 サンプルコードとか自分でちょっと触ってみたときの感触からは、以下のポイントが気に入りました。data-bidingsとかは前提として便利です。はい。 覚え切れそうな分量のAPI Class: Vue - vue.js 脳みそちっちゃいので助かります。それに尽きる。 プロパティによる宣言っぽさ Angularだとイベントハンドラ類を書くにも、$scopeに都度ハンドラを仕込んでいくのがあまり好きでないです。工夫で回避できそうですが、与えられたスタートが下記のような状態であることには変わりません。 angu
jsPerf — JavaScript performance playground What is jsPerf? jsPerf aims to provide an easy way to create and share test cases, comparing the performance of different JavaScript snippets by running benchmarks. For more information, see the FAQ. Create a test case Login with GitHub to Create Test Cases
// 悪い例 var id = $("#content").data("id"); var itemId = $("#content").data("item-id"); // 良い例 var content = $("#content") var id = content.data("id"); var itemId = content.data("item-id"); // 悪い例 $.each(reallyLongArray, function(count, item) { var newLi = '<li>' + item + '</li>'; $('#ballers').append(newLi); }); // 良い例 : DocumentFragmentを使用 var frag = document.createDocumentFragment(); $.each(reall
JavaScriptのパフォーマンスのボトルネックを解消するテクニックとアプローチを解説します。実行時間、ダウンロード処理、ページのライフサイクルなどJavaScriptの様々な部分に対応しながら、DOMへのアクセス、ネットワークのレイテンシ、JavaScriptの同時ダウンロードのブロッキングなど、高速なJavaScriptエンジンであっても最適化できない部分をもカバーしています。本書で述べられているテクニックとアプローチは、パフォーマンスを向上する上で重要であるだけでなく、今後低レベルなJavaScriptの実行時間が短縮されていくにつれて、さらにその重要性は増していくでしょう。 はじめに 1章 読み込みと実行 1.1 スクリプトの配置 1.2 スクリプトのグループ化 1.3 ノンブロッキングなスクリプト 1.3.1 スクリプトの遅延 1.3.2 動的なscript要素 1.3.3 X
果敢にもMVCフレームワークの図解を試みたので、どうぞ! MVCの動機 MVCという言葉が初めて登場してから30年以上たった今、最早なんだったのか分からないほどMVCの定義は混迷をきたしているわけだが、どれがMVCでMVVMでMVPであるという定義についてあれこれ考察するのは個人的には好きでなくて、「結局何がしたいのか」という動機がぶれていなければ何でも良いと思っている。 じゃあそれは一体何なのかということを自分なりに考えてみたところ、次の一言に落ち着いた。 「ModelはViewに依存したくない」 世間的には(?)ModelとViewを単に「分ける」と説明されることが多いが、私はそれだけでは納得していなくて、依存の方向こそが重要だと思っている。たとえ分かれているように見えてもModelがViewを参照していたら、情報の取得先や表現方法は固定化されてしまう。 ModelはViewの事情から
JavaScript Garden はJavaScriptというプログラム言語の一番奇妙な部分についてのドキュメント集です。 このドキュメントはJavaScriptという言語に慣れていないプログラマーがこの言語について深く知ろうとする際に遭遇する、良くある間違い・小さなバグ・パフォーマンスの問題・悪い習慣などを避ける為のアドバイスを与えます。 JavaScript GardenはJavaScriptを教える事を目的にしていません。このガイドの項目を理解する為には、この言語に対する前提知識がある事を推奨します。この言語の基礎部分についてはMozilla Developer Networkのガイド がオススメです。 著者 このガイドは愛すべきStack Overflowの2人のユーザーIvo Wetzel (執筆)とZhang Yi Jiang (デザイン)によって作られました。 貢献者 貢献
JavaScriptを書いていてぶち殺したくなった時によく使うリファクタリングです。 1.定義順を整理 JavaScriptパターンの5.4.1 モジュールパターンの開示を参考に、var、処理、API公開の順に並べなおす。 function () { //宣言 var hoge = 'hoge', fuga = ''; //処理 fuga = foge; //APIの公開 return { hoge: hoge, fuga: fuga }; } 2.戻り値をオブジェクトにする 戻り値を増やしたいときにまずオブジェクトに変えてから、値を増やす。 型付けが弱い言語は二つ以上の値を返すのが当たり前なのが凄い。 function () { return { hoge: hoge, fuga: fuga }; } 3.戻り値をオブジェクトでなくす 「戻り値をオブジェクトにする」の逆。 戻り値を一つし
プラグイン機構を持っているので、Lintするルールを追加できる ESLint 本体のコードがシンプルに保たれる Mozilla JavaScript AST をベースとしているため、他のものと連携しやすい EsprimaでパースしたASTをLintする two-pass のツール つまりEsprimaでパースできないとLintはできない また、現段階だと巨大なjsファイルではJSHintより3倍程度遅い Rule performance などにまとめられている、速度については今後改善していくとのこと JSLint/JSHint互換のようなルールが作られている – ESLint Rules List Node.js で書かれているツール 将来的には Browserified されたバージョンも出す予定 ドキュメントがよく書かれている それぞれのルールごとにドキュメントが書かれている esli
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く