All slide content and descriptions are owned by their creators.
![[WIP]これからの生JS & jQueryとの付き合い方 // Speaker Deck](https://cdn-ak-scissors.b.st-hatena.com/image/square/186eb2a82940b59c5c92c3099669ab595a939682/height=288;version=1;width=512/https%3A%2F%2Fspeakerd.s3.amazonaws.com%2Fpresentations%2Fe8eb376a63b64293987c99a6574d8363%2Fslide_0.jpg)
All slide content and descriptions are owned by their creators.
日々の仕事の中で役に立つES2015(ES6)のティップス、コツ、ベストプラクティス、プログラムの見本をご紹介します。コントリビューション歓迎です! 目次 var vs. let / const IIFEからブロックベースへ アロー関数 文字列 デストラクチャリング モジュール パラメータ クラス シンボル マップ WeakMaps Promises ジェネレータ Async/Await var vs. let / const var の他に、値を格納する let と const という識別子が新たに追加されました。 var とは異なって、 let と const はクロージャのスコープ内で最初に記述されることはありません。 var の使用例です。 var snack = 'Meow Mix'; function getFood(food) { if (food) { var snack
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 昨今のWebブラウザはどのような機能があるのか把握するのも大変なほど多機能で便利ですよね。 Webブラウザの機能を把握してうまく使いこなせること(とくに開発者ツール)が、フロントエンドエンジニアの前提スキルになってきてるのかなぁと感じる今日この頃です。 ということで自分のデフォルトの開発用ブラウザはChromeなのですが、これを覚えて捗ったなぁということをメモしていこうと思います。 思い浮かんだら追記していこうと思っているのでストックして頂けると幸いです。 基本系 キーボードショートカットを覚える Chromeのキーボードショ
楽しかったです。 「フロントエンドに秩序を取り戻す方法」 発表に至るまで きっかけ スライド作成 社内勉強会 トークの練習 当日 Q&A Util系のモジュールをnpmで公開しないの? リファクタリングの工数、どうやって確保した? テストについての補足 イベントの感想 NodeDiscuss おひるごはん 懇親会 終わってみて 「フロントエンドに秩序を取り戻す方法」 speakerdeck.com togetter.com はてなブログチームで行った改善についてのトークです。 アンケートの結果では5位にランクインしました!!! 発表を聞いてくださった皆様、ありがとうございました。 発表に至るまで きっかけ 応募のきっかけはYAPC2015でした。 yapcasia.org YAPC1日目のLTを見てるうちに自分も発表したくなって、即LT応募しました。 絶対通るでしょと思ってスライドまで作成
Babelで始めるES6入門 BabelとはJavaScriptの新規格であるES6 ( ECMAScript 6th Edition/ECMAScript 2015 ) で書かれたJavaScriptコードを古いブラウザでも解釈できるようにES5の書式に変換してくれるツール(JavaScriptトランスパイラ)です。 利用方法は様々ありますが今回はgulpでBabelを利用する方法と、ES6の主要な機能をBabelがどのようにES5に変換するかについて解説を行います。 (gulpに関しては、「タスクランナーgulp入門」を参考にしてください) gulp-babelのインストール gulpでBabelを利用するにはgulp-babelをインストールする必要があります。インストールは以下のコマンドで可能です。 sudo npm install gulp-babel --save-dev gu
これまでのシリーズで Electron の開発環境が固まってきので実際にアプリを作成してみたい。サンプルとしてある程度の複雑さがほしいから以前に nw.js を使ってみる 5 - 簡易音楽プレーヤーで実装したものを移植することにした。 設計方針 移植にあたり単純に動かすだけなら NW.js 版の実装を Renderer プロセス部分へまるごとコピーするだけでよい。 しかし今回は Electron らしく Main/Rendrer を分割、ダイアログ表示や音楽ファイルのメタデータ読み込みは Main プロセスで実行させて Main/Rendrer 間の連携は IPC に限定する。 remote を利用すれば Main プロセス部分の機能を Renderer プロセスから簡単に呼び出せるけれど却下。便利な反面 Main/Renderer が密結合になりやすい。特に双方の Object を参照し
Electron を試すで残された課題を解決したので、その内容を記録しておく。 2015/10/5 追記 本記事のはてブにて id:Pasta-Kさんより .ico ファイルを反映させるために wine が必要との指摘があった。試してみたところ OS X 環境でもアイコンとバージョン情報変更を反映した Windows 向けパッケージを生成できたので追記した。 electron-packager の --icon オプションに .ico ファイルを指定すると OS X でエラーになる問題だが Windows 環境で実行したらパッケージ化に成功。一方、Windows 環境だと OS X 版のパッケージ化がスキップされる。Linux 版は特別なオプションがないためか OS X と Windows のどちらでもパッケージ化できた。 この状況から察するに、アイコンの埋め込み処理などでプラットフォーム
これまで NW.js を使ってきたが同じ Chromium + Node 系のフレームワークとして最近は Electron のほうが勢いあるようなので試したくなった。使用感を把握するため、まずは開発環境を構築してみる。 更新履歴 2015/11/5 npm-scripts を babelify 7.2 (Babel 6.x) を採用した内容へ更新。また最新 watchify の Windows 対応について追記した。これらの詳細については babelify v7.2 を試すを参照のこと。 2015/10/19 npm-scripts を最新へ更新、Main プロセスのビルド説明に Browserify の --node オプション解説を追加。 設計方針 package.json と npm だけを使用 AltCSS は Stylus を採用 ユニット テスト対応 コード ドキュメント対応
JavaScriptにもクラスがやってきた!JavaScriptの新しいclass構文をマスターしよう 高津戸壮(株式会社ピクセルグリッド) ECMAScript 2015(ECMAScript 6)で新たに追加された待望のclass構文について、その概要をサンプルコードを交えて紹介します。 これまでのJavaScriptにおけるクラス 多くのプログラミング言語はクラスを作れる機能を持っていますが、JavaScriptにその機能は用意されていませんでした。しかし、JavaScriptにはprototypeという柔軟な仕組みが存在しており、このprototypeを利用することで、他の言語で表現されている「クラス」と似たような振る舞いを再現することが可能でした。 それは例えば、こんなふうにです。 /* Cat雛形の作成 */ function Cat(name) { this.setName(
上からも分かるように、ページの読み込みが完了する前に、テストでリンク探しを始めたのにも関わらず、Capybaraは優雅にインタラクションを処理しています。 しかし、Capybaraがこれらの非同期の問題を処理してくれるにもかかわらず、成功したり失敗したりする一貫性のないテストにいとも簡単に陥ってしまうのはなぜなのでしょう。 競合状態の数を最小限に抑えて、Capybara APIを正しく使用するには、いくつかのコツがあります。 最初に適合するエレメントを見つける 悪い例 first(".active").click まだページに.active要素がない場合、firstはnilを返し、クリックは失敗します。 良い例 # 完全に一致するものが欲しい場合 find(".active").click # ただ単に最初の要素がほしいだけの場合 find(".active", match: :first
こんにちは丸山@h13i32maruです。 ES6でアプリコード、テストコードを書いてテストをするための環境を作ったので、そのメモです。 目標 ES6で書いたアプリコードとテストコードをnpm run testでテストする 最終的な環境 最終的にはこんな環境になった。リポジトリ ECMAScript6 Google Chrome Travis CI npm traceur-compiler mocha espower-cli karma karma-cli karma-mocha karma-chrome-launcher bower power-assert 今回はgrunt/gulpのようなビルドシステムは入れていない。npm runをタスク実行のフロントとすることでタスク自体はお手軽にshで書いた。shだとwindowsが厳しいけど、まあとりあえず自分の環境用だしいいかなと。 以降で
環境 OS:CentOS release 6.6 (Final) casperjs:1.1.0-beta3 phantomjs:1.9.8 概要 上記環境からスクレイピングを行い、指定したページの全画面をキャプチャしたいと考えております。 現状、指定ページの一部キャプチャは保存できるようになりましたが、そのページはマウスの↓スクロール操作で徐々にリストが表示されるタイプ動的サイトのため、全画面を取得できていません。 最下層まで画像取得をするため scrollToBottom() 関数を下記の通り用いてキャプチャを撮りましたが、スクロールができておらず、全画面が取得できておりません。 有識者の方がいましたらアドバイスお願いいいたします。 詳細 キャプチャを取っているソースは下記の通りです。 casper.thenOpen("https://hoge.hoge/list", function(
はじめに 先日、PhantomJS でログインが必要なページでも自由自在にスクレイピング - 凹みTips という記事を書きました。 前回は PhantomJS のみを用いてスクレイピングを行なっていましたが、スクレイピングした結果を使って色々やりたい!となると、Node.js の力を借りたくなってきます。単純に取得した HTML を利用するだけなら、PhantomJS の fs モジュールを使って HTML をファイルに書き出し、これを Node.js で読み取って…、なんてことをすれば可能ですが、何かしらの入力を受けて動的にページを遷移したい、となると厳しくなってきます。 そこで、本エントリでは PhantomJS を Node.js から使って色々出来るよ!ということを解説したいと思います。 利用するモジュール PhantomJS をラップした Node モジュールは沢山あります。試
前回、PhantomJSのbuildpackを作成したので、Heroku上でPhantomJSのプロセスを自由に稼働させることができるようになった。 PhantomJSはGUI環境のない(Headless) WebKitブラウザであるため、ブラウザ上のJavaScriptの単体テストor結合テストをサーバ上で走らせて、継続的インテグレーションに組み込むなどの利用方法もあるだろう。これも興味深いトピックではあるけど、ここでは触れない。 今回はPhantomJSの画面レンダリングの機能を使って、スクリーンショットサーバをHeroku上に構築する。 構成と処理フロー PhantomJSにはwebサーバ機能も含まれており、単独でHTTPサーバとしてリクエストを受け取る事もできるが、実サービスで利用するようなシロモノではない。そのためクライアントからリクエストを受け取るNode.jsのサーバを別に立
PhantomJSは、Webページのロード/操作が可能です。 Webページ上での様々な操作を自動化することができます。 DOMの操作 PhantomJSではDOMスクリプティングやCSSセレクタを使うことができます。 ブラウザで実行されているかのように振る舞います。 page = require("webpage").create() url = "http://www.httpuseragent.org" console.log "The default user agent is #{page.settings.userAgent}" page.settings.userAgent = "SpecialAgent" page.open url, (status)-> if status != "success" console.log "Unable to access network
Webページをスクレイピングしてる時、HTMLじゃなくてJavaScriptの変数をのぞきたい事が稀によくある。 インストール brew install phantomjs document.titleを取得 page_title.js var url = phantom.args[0] || 'http://shokai.org'; page = new WebPage(); page.open(url, function(stat){ if(!stat){ phantom.exit(); } else{ var title = page.evaluate(function(){ return document.title; }); console.log(title); phantom.exit(); } }); 実行 phantomjs page_title.js http://go
こんにちは、三宅です。 最近はSwiftによるiOSアプリ開発が多かったのですが、久しぶりにJavaScript。 ECMAScript 6の仕様が承認されたということで、ECMAScript 6で記述したアプリのHerokuへのデプロイを試してみました。 flect-miyake/heroku-es6 Herokuボタンから、自分のアカウントで簡単に試してみることができます。 ECMAScript 6(ES6)について ECMAScriptはEcma InternationalによるJavaScriptの標準です。 実装ごとの互換性が低かったJavaScriptの標準を定めたものであり、モダンブラウザやNode.jsはECMAScript 5(ES5)に基づいて実装されています。 その言語仕様であるECMA-262の最新バージョン、6thエディションの承認が2015年6月に発表されました
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く