You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
In the TC meeting today we came up with a vision for the first release. First, a few assumptions we've internalized that probably need to be stated for this to make sense. Node is pretty damn stable already. There are huge companies with it in production, 100K+ modules, etc. It is already far more stable that its pre-1.0 release tag suggests. Releasing more frequently leads to a more stable produc
こんにちは。 アメーバピグでNode.jsを使って開発をしている中村と申します。 平日はエンジニア、土日は主夫として働いています。 さて、早速ですが、この記事ではESLintを使って、JavaScriptのソースコードのバグを発見する手順をご紹介したいと思います。 ESLintとは ESLintはNicholas C. Zakas氏が中心となって開発しているJavaScriptのLintツールです。 JavaScriptのLintツールといえば、最近ではJSHintが定番だと思います。 ESLintはJSHint同等の機能を持つ他、解析ルールが完全にプラガブルになっており、独自ルールを自由に追加できるという特徴があります。 例えば、JSHintでいうところの、strict(strict modeで実行されるかをチェック)というオプションは下記のURLのように個別のルールとして実装されていま
このAdvent Calendarについて 今年になって急に盛り上がってきたように感じるReact.jsですが、「ちょっと前まではAngular.jsって言ってたのに!」っていう人も多いと思うので、Advent Calendar形式で簡単に紹介していきたいと思います。 React.jsの重要な要素であるVirtualDOMについては別にAdevent Calendarがありますのでそちらも是非見てください。 ※既に↑のAdvent Calendarがあったため、これは1人で書くように作ったものなので書く人が誰もいなかったわけではないです。 React.jsについて なぜ盛り上がってきたのかは正直よくわかっていないのですが、個人的にはgithubのatomがパフォーマンス向上のためにReact.jsを使うことにしたという記事を見て興味を持つようになりました。 React.jsはFaceboo
テストフレームワークは、busterJSが一番慣れてたんですが、 部署御推薦のmochaをいっちょやってみるかー、と思っているこのごろです。 そしてついでに、 「このへんは、node.jsの場合どうテストするのがかっこいいかしら!!」 と気になっていた部分について、いろいろ調べてみました。 mochaの細かい説明については、公式その他をみてください。 mochaっていうかほとんどshouldですよね。 普通のテスト(libraryやcontrollerのテスト) テストしたいmoduleをrequireして、 shouldもrequireして、テストを書く。これが基本ですね。 // テストしたいmoduleをrequire var hoge = require('../hoge'); // テスト用のライブラリをrequire (mochaの場合は、shouldがあればいいはず) var
業務で携わっている案件なのですが、アクセス数の急増が見込まれるイベントがありまして。準備期間も少なく、バックエンド側でできることがほぼないという状況でサイトを落とさないようにがんばる!というお仕事でした。レガシーソースてんこ盛り。CSSプリプロセッサとか何それ状態。 そこで実施した対策のまとめです。サーバー・アプリケーション・サイトの構成によって、効果の大小はありますが、比較的効果があったと思われるものをつらつらと。 リクエストの削減とファイルサイズの最適化 まず一番最初に考えなければいけないのがリクエスト数です。すごいおおざっぱに言うと、WEBサーバー(ApacheとかNginxとか)への負荷は、PV数×リクエスト数です。PVがそんなに無くてもそのページのリクエストがめちゃくちゃ多いとそれだけでかなりの負荷になります。リクエストを半分にできれば2倍の人数がさばけるってことに、すげーおおざ
みなさん、こんにちは。Ameba事業本部ゲーム部門の平木(Layzie) と申します。 最近はSteamで安いゲームを漁ってばかりの毎日です。このエンジニアブログでは初めて執筆になります。 さて、今回エンジニアブログで何を書こうか悩んだのですが、悩んだ結果Duoというパッケージマネージャの紹介をしようということになりました。 このDuo、GitHubのStar数は結構多いんですが、(2014/11現在2618Star)あまり紹介されてる記事とかが無いので紹介してみようと思った次第です。 Duoの特徴 昨今、フロントエンドで使えるパッケージマネージャは色々あると思います。厳密に言うとサーバ側のJavaScript実装ですがNode.jsのパッケージマネージャであるnpmにフロントのJavaScriptライブラリを登録して使うというパターンもありますし、新規プロジェクトの雛形を作ってくれるYe
// 悪い例 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
TypeScript について (1) 利用するメリット Java や C# のような文法の altJS です。下記に当てはまる場合は有力な選択肢です。 既存プロジェクトを altJS に移行したいとき JavaScript の文法そのままコピーして使用できるため 静的型付けをしたいとき 現状 TypeScript 一択です 新規の中・長期に渡る大規模プロジェクトのとき 静的型付やインターフェースを利用できるため (2) 利用上の注意 ただし TypeScript を利用する上で注意する点もあります。 コンパイルが遅い 型チェック等があるため、altJS の中でも特に遅めです this の用法が増える クラスのメンバ変数の参照には this.foo と記述します (3) サンプルコード // sample.ts module Saying { export class Greeter {
プラグイン機構を持っているので、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
jQuery や underscore.js では isFunction とか isArray とかの型判定関数的なものがあります。 え?ライブラリ使わないとJavaScriptはろくに型すら判別できないの? 半分YESで半分NO。 そもそも typeof とはなんぞやというお話し。 よく typeof と instanceof の違いについて、 「typeof は型の文字列表現を返して、instanceof は型から派生されたかどうかを返すから戻り値は違えどやってることは一緒」 的な事を耳にしますが全くもって違います。 まず、JavaScript で言う型とは何か? JavaScript はクラスを持ちません。よって型を作れません。 え? new Object() とかできるけど? var obj = new Object() として時の obj は確かにObject型のインスタンスオブ
Demo Static Analysis Online Parsing Syntax Validator Operator Precedence Regex Collector Dynamic Tracing Function Instrumentation Code Transformation Source Rewrite Minifiy & Obfuscate Editing Tools Identifier Highlight Rename Refactoring Autocomplete Project Git Repository Continuous Integration Mailing List Issue Tracker QA Unit Tests Benchmarks Suite Speed Comparison Module Loading Coverage Ana
VMware上、LAN上、インターネット上のCentOS6.3で動作確認済み。WebサーバはApache。 クライアントでの確認は以下の通り。 Mac, WindowsのChrome 22, Firefox 16, Safari 6, Opera 12(動作不可), IE 9(動作不可). iPad2(iOS 5.1.1), new iPad(iOS6), iPhone4~5(iOS6)のSafari, Chrome. Galaxy S2(Android2.3.3)のブラウザ(動作不可). 目次WebSocket Chat サーバの実装WebSocket Chat クライアントの実装HTMLJavaScriptWebSocket Chat サーバの起動とアプリの実行WebSocket Chat サーバの実装 // VMware上のCentOS6で動作させたときの例 // 8888番ポートで
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
先日、atomというgithub製のIDEが公開されて話題になってます。 これ、広める戦略がうまくて、昔のgmailと同じく、inviteを受けた人が3人だけinvite ticketを持ってて、その人からまた3人inviteできるって仕組みになってます。こうすることでSNSでのinvite ticket要求が盛んになり、流行ってるように見えるというのが上手い。 ちなみにDLされるファイルだけ他人に送っても内部的にチェックしててpackage managerとかが使えない仕組みになってるので、inviteを持ってない人はおとなしく誰かから回ってくるのを待ちましょう。 本題 atom自身はSublime Textっぽい外観で、apmっていうパッケージマネージャが付属されてます。 んで、早速apmに自作のpackageを作って公開してみました。 実行している所: yosuke-furukawa
Name : azu Twitter : @azu_re スライドをクリックでスタート、矢印キーでスライド移動、Escで一覧モードへ戻る
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く