7. とあるSPAの環境 • Mac OS上でコーディング • Mac OS上でローカルサーバをたてて動作確認 • coffee-script や SCSS などのメタ言語のコンパイル • APIをJSONファイルをレスポンスとして返すモックサー バで置き換え
![最近のフロントエンドツールの紹介](https://cdn-ak-scissors.b.st-hatena.com/image/square/9a1f70782fa850d5bfcc3133e496c51c308aba70/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2F2015-01-28-150128032022-conversion-gate02-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
スマートフォン向けwebアプリを開発中にz-indexを使うことになり、androidでうまく動かなかったのでメモ。 やりたかったのは、ボタンのonclickでポップアップのようにiframeを表示すること。 で実際にやってみたらiphoneだとうまくいくのだがandroid(galaxy s)だとうまく動かない。 (iframeの下にあるページのリンクもクリックできちゃう) これはまずいということで、ググったら以下のページにあたった。 Android のブラウザのフォーカスが z-index を無視しているバグがなおらない - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech で、ここを参考にしようと思ったのだが、記事にもあるとおり ただ、この方法ですと、onclick ハンドラが設定されている場合に対処できません (onclick ハンドラは、設定するだけで
タスク管理 package.json にはパッケージの依存を書いて npm install するのが基本だけど、 タスクの管理をどうするかというのは、別途また考えないといけない。 自分は gulp が良いと思っているが、 grunt や jake や make を使う人もいる。 また、たくさんオプションをつければほぼ一つのタスクが実行できてしまう browserify, jsh/eslint, mocha などのコマンドを提供するツールもある。 そして、 npm にも一部それらをサポートする npm run 機能があるので、そこに Unix ワンライナーを書くこともできる。 今回は、「どのタスクツールが最良か」みたいな話ではなく、それらをどうやって実行するか、または npm との棲み分けとか構成の流儀について、最近良いと思っているやり方について書いておく。 各方針で問題点を書いていくが、
hoge.js を minify したファイルを hoge.min.js として 出力する方法です. gulp-rename ってやつを使います. 拡張子を .js から .min.js に変換する gulp-rename というタスクを使います. 下記コマンドでインストールできます. $npm install --save-dev gulp-rename ついでに uglify も $npm install --save-dev gulp-uglify あとは gulpfile.js に下記のようなタスクを 書けばOK♪ var gulp = require("gulp"); var rename = require("gulp-rename"); var uglify = require("gulp-uglify"); gulp.task("build", function()
今、Node.jsに起きてることを語る上で、io.jsは避けて通れない話題でしょう。 今回のNode.js アドベントカレンダー 2014の締めを飾るために、このio.jsについて僕が知っている限りの事をまとめて書くことにします。 io.jsを知り、今後"Node"がどうなっていくのかを皆で一緒に考えていきましょう。 またこの一連のio.jsのfork騒動はOSSという特殊なプロジェクトをどう進めていくのがハッピーなのかを知る一つの教材だと思います。 OSSに関わっている皆さん、今回も長いですが、最後まで読んでもらえると幸いです。 io.js とは何か Node.jsのForkです。次のNode.jsの安定版になる、v0.12をForkしています。「アイ・オー ジェイエス」と読みます。名前の由来は木星にある四番目に大きな衛星の名前から取られました。*1 Nodeを使っている人のことをnod
2. 前提となる適用先 • 管理画面的なWebアプリケーションのリニューアル …だったもの(仮) • REST APIを前提としたSingle Page Applicationもどき (※すべてが1ページではないけど) • 機能・画面が多い • 複雑化することがほぼ確実 3. Viewへの要求事項 • 統一されたスタイルでUIとなるHTMLを生成できる • なるべく簡単に書けること(含セキュリティリスク回避) (生DOM・jQueryはあり得ない) • 業界におけるパラダイムが過渡期のため、 巨大フレームワークに乗っかりたくは無い (交換可能な部品の組み合わせでプレーンに) • 困ってもなんとか出来るための緊急ハッチも必要
Search, replace, and refactor your JavaScript code based on its structure rather than its text Grasp is a command line utility that allows you to search and replace your JavaScript code - but unlike programs such as grep or sed, it searches the structure behind your code (the abstract syntax tree), rather than simply the text you've written - this allows you to: Search your code with unparalleled
こんにちは!ChatWork CTOの山本です。 チャットワークのバックエンドをPHPからScalaへの切り替えることを決断し、現在は移行に向けての大プロジェクトが進行中です。 バックエンドはScalaにしていく。じゃあフロントエンドはどうするの?ということで、今回はチャットワークのフロントエンド開発における今後の戦略を書いてみようかと思います。 現在のフロントエンドにおける課題現在のJavaScriptコード量は、ざっと5万行ほどになっています。(OSSライブラリ、言語キーなどを除く。たぶん大規模・・ですよね?) 約5年前の開発スタート時より、素のJavaScriptとjQueryをベースにゴリゴリと書き重ねられ、これぐらいのコード規模になったソースコードはご想像通りメンテナンスコストがかなり高くなってしまっています。。。 バックエンドの刷新に伴い内部APIも一新されるため、どうせ大幅に
これは VirtualDOM Advent Calendar 2014 に勝手に参加する記事です。 あたたかい春の昼下がりのこと、あるブラウザベンダの社内を不穏な噂が駆け巡った。 「React.js なるライブラリ、どうも仮想 DOM というやつのせいで速いらしいぞ」 もうリアルな DOM はお役御免、ブラウザも商売上がったりか・・・。雇用に不安を覚える人(私)がいる一方、 そのアイデアをとりこんでブラウザの DOM を速く出来ないかと考える人たちもいた。 仮想 DOM はなぜ速いのか。誰かのつてを辿って React.js チームにおいでいただき、速さの秘密をテックトークしてもらう。 イミュータブルなデータ構造による単純化、非同期適用による処理のバッチ化、差分アルゴリズムによる副作用の最小化… いくつかのアイデアはブラウザからはどうにもならないが、たとえば非同期化なんかは形は違えどブラウザ
http://qiita.com/advent-calendar/2014/frontrend 概論 ここ近年のモダンJSは特に理由がなければcommon.jsのrequireスタイルで記述され、webpack/browserifyでビルド/読み込むことを前提にしてよい。今やビュー層を除いてブラウザとnodeのライブラリの境界は非常に曖昧である。 識者諸君においては常にどちらの環境でも読み込めるようなライブラリを提供するように心がけることを切に願う。 今日はライブラリの名前しか出さないんで各自ググるように。 立場 サーバサイド~ゲームプログラミング出身node寄りフロントエンドエンジニア このサイトのスタッフだけど他のことに手一杯でQiitaのフロントはまだそんなにいじってない すまんな 他ってなんだろうな 言語 CoffeeScript TypeScript 最近DDDっぽい構成を目指し
これですね。これ何か呼び方あるの? なにこれ グローバル変数にならないようにする仕組み。 スコープ問題 JavaScriptではスコープ(変数の有効範囲)は関数単位(function(){~})になるのが基本。 そして一番外側、どの関数の中でもないものは「グローバルスコープ」に所属する「グローバル変数」となり、どこからでも利用できる変数になる。そうなるとどこかで変数の名前がかぶった際、勝手に値が変わったりして大変恐ろしい事になってしまう。 そこで、ファイル全体を関数で括る事でスコープを生成して、グローバルではない変数にしておこう、というもの。ただしvar宣言なしに変数を使い始めると、結局グローバル変数になってしまうので注意。 次世代JavaScriptだとletとかあるけど触れません、関係ないし。 関数の前後にくっついてる括弧は 関数は作成するだけでは何もならないので、即時実行してやります
こんな記事があった。 My ECMAScript 7 wishlist | NCZOnline 大雑把にいうと、制限されたgetterがほしいという意見に記事のほとんどが割かれてる。 JavaScriptのデバッグ中、一番つらいものの一つに、未定義値にアクセスしたときにundefinedが代入されており、その結果が次のアクセスにならないとわからないという点だと思う。 o = { a: () => 1, b: () => 2, c: () => 3, d: () => 4 } f = o.e // ここでエラーにならない // 30行ぐらいのコードがあって忘れるとする f() // エラー これが辛い。これを回避するためにどんな仕様が必要か。 というわけで、自分がほしいものはなんだろうと考えてみた。(注意:この記事は上の記事の翻訳記事ではない) 僕自身があんまりES harmonyの議論追っ
Name : azu Twitter : @azu_re スライドをクリックでスタート、矢印キーでスライド移動、Escで一覧モードへ戻る
atom-shellとはどういうもので、どのようにすれば動かせるのかということを調べているので、その過程で得られた情報をまとめておく。 atom-shellでデスクトップアプリをつくれる GitHub製のAtomというエディタはatom-shellというライブラリを利用して実現されている。atom-shellはJavaScriptでデスクトップアプリケーションをつくるための便利なライブラリで、ネイティブAPIを実行するための実行環境を提供することでそれを実現させようとしている。Webサーバの代わりにデスクトップアプリケーションに特化したNode.jsの実行環境だと考えても良いだろう。 atom-shellには2つの側面がある Node.jsでWebアプリを書いたことがあれば分かるかもしれないが、JavaScriptのコードにはサーバサイドで動かすためのものとクライアントサイドで動かすための
はじめに この話はGuillermo Rauch氏が書いたhttp://rauchg.com/2014/7-principles-of-rich-web-applications/ という記事の翻訳です。許可を得て翻訳しています。 ここ最近Web業界を賑わしているSingle Page Applicationの必要性、HTTP2/SPDYといった技術、リアクティブプログラミングやIsomorphicデザインという考え方について包括的にまとめたすごく良い記事になっております。 最初に断っておきますが、ものすごく長いです。各セクションがわかれているので時間がない方はセクションごとに書かれたtl;DRとまとめを読むだけでも参考になるかと思います。 ちなみに明日のNode学園祭には、本記事を記述したGuillermo Rauch氏が見えるので、そこで詳しく聞いてみるのもいいのではないでしょうか。
JavaScript 系パッケージマネージャの重複問題 npm は言わずもがな Node.js のパッケージマネージャだが、フロントエンド開発においては Bower も利用するのが一般的になっている。この現状の問題点は、package.jon と bower.json という似たような管理ファイルを二重で管理しなければならないということだ。 現状の使い分けをおさらいをしておくと、次のような感じになる。 タスクランナー(Grunt/gulp)・モジュールシステム(browserify/webpack)・テストスイート(karma/testem)などの開発環境系の管理が npm の主なお仕事。インストールされたパッケージは node_modules 内に展開されて、CommonJS スタイルのモジュール管理から利用する。 本題につながる話としては、ブラウザで動くライブラリの一部は npm にも
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く