タグ

ブックマーク / dev.classmethod.jp (37)

  • CoffeeScript で学ぶ Observer パターンの基礎 | DevelopersIO

    CoffeeScript を導入したことによってクラス化が比較的易しくなり、導入前よりもずっと見通しの良いコードが書けるようになってきました。クラス化することによって関連する機能を一箇所に集約することができ、後から機能を追加する際も関連するクラス内に迷わず追記することができるので、コードがあちこちに散らばることがなくなります。そして各クラスは、それぞれが与えられた役目だけに徹する(関連機能が集約されているから)ので、他のクラスのことなど知ったこっちゃないと言わんばかりに意識しなくなり、自然と疎結合なコードになっていきます。 と、いうのが理想なわけですが、実際そうも言ってられなくなったりします。ひとつ以下の様なケースで考えてみます。 出版社(Publisher)と読者(Reader)という2つの登場人物がいます。読者は出版社が近日発売予定のとある書籍を購入したいと考えていますが、出版社内で編

    CoffeeScript で学ぶ Observer パターンの基礎 | DevelopersIO
  • [HTML5] CreateJS を利用した線表アプリの部品づくり ( 部品編 1/2 ) | DevelopersIO

    連載 URL CreateJS を利用した線表アプリの部品づくり ( 部品編 1/2 ) CreateJS を利用した線表アプリの部品づくり ( 部品編 2/2 ) CreateJS を利用した線表アプリの部品づくり ( 実装編 ) HTML5 の Canvas を用いた線表アプリを作るときに必要になるであろう、下記画像のような部品 ( タスクボタン ) の作りかたについて解説します。 環境 CreateJS 2013.09.25 ver. EaselJS 0.7.0 TweenJS 0.5.0 MovieClip 0.7.0 Haxe 3 CreateJS を用いたボタンづくり CreateJS の ButtonHelper を使用することによって簡単にボタンを作成することができます。ButtonHelper は MovieClip 拡張 JS をボタンとして利用するために必要な処理をサ

    [HTML5] CreateJS を利用した線表アプリの部品づくり ( 部品編 1/2 ) | DevelopersIO
  • HTML5 × CSS3 × jQueryを真面目に勉強 – #19 JS の Math 関数を最適化出来ないか検証してみた | DevelopersIO

    前回、前々回と画像処理について学びました。ピクセル単位での解析をするなど、何かにつけてループ処理を書くことが多くなりがちです。100 回程度のループならまだしも、画像処理となると 1000 回や 2000 回は当たり前、1万回以上ループすることも珍しくありません。そうなるとちょっとした処理の違いが大きなスピードの差を生むことになるわけです。塵も積もれば何とやらです。 で、今回格的に画像処理をやってみて気づいたのが、Math 関数を結構な頻度で使うんだなぁ、ということでした。Flash(ActionScript) の世界では、ド派手なヴィジュアルでも軽快に動作させるためにループ処理の中では Math 関数の使用を避けるのがセオリーとなっています。では JavaScript の場合はどうなのかいくつかベンチマークをとってみました。 はじめに - Math 関数について Math を直訳すると

    HTML5 × CSS3 × jQueryを真面目に勉強 – #19 JS の Math 関数を最適化出来ないか検証してみた | DevelopersIO
  • 【レポート】HTML5✕Internet Explorer 〜IEを使ってどこまでモダンなWebへ突き進めるのか?〜 に参加してきた | DevelopersIO

    そんな訳で、2013年8月1日、東京は品川にある日マイクロソフト株式会社にてHTML5✕Internet Explorer 〜IEを使ってどこまでモダンなWebへ突き進めるのか?〜という勉強会が開催されたので、潜入してきました。 技術革新が遅れてやってくるエンタープライズシステム界隈も、ようやくHTML5時代に突入しようとしています、、が!開発者は未だにInternet Explorerで多くの悩みを抱えているのではないでしょうか? (中略) 業務システムを良くするためには、IEのハックが必要なのです! (中略) このイベントでは、IEの持つポテンシャルを極限まで使いきって、周りのエンジニアの度肝を抜かせるようなIEハッカーになれるよう、MicrosoftMVPやMicrosoftエバンジェリストといった専門家を集め、ロードマップ・機能性・互換性問題・移行といったテーマについて、技術観点

  • 身につけておきたいWebサイト高速化テクニック #5|リクエスト数削減テクニック01:インラインイメージ編 | DevelopersIO

    5,インラインイメージのメリット・デメリットと注意点 5.1,メリット インラインイメージを使うことで画像自体のHTTPリクエストが発生しません。 例えばファイルサイズの小さな10個の画像を読み込んでいるとします。それらすべてをインラインイメージ化することで10回のHTTPリクエストを削減できます。 データサイズが37%増加するというデメリットはありますが変換前のデータが数MBでもない限りHTTPリクエストが減らせることの方が有益です。 5.2,デメリット IEの古いバージョンでは使えない Base64エンコードによりデータサイズが約37%増加する HTMLCSSに直接埋め込むため画像を変える度に差し替えが必要(ツールで改善可能) data URI schemeで埋め込まれたデータはキャッシュされない 同じデータを複数箇所に表示したい場合、それぞれの場所に埋め込む必要があるためインライン

    身につけておきたいWebサイト高速化テクニック #5|リクエスト数削減テクニック01:インラインイメージ編 | DevelopersIO
  • [ Middleman で超速プロトタイピング ] #00 Haml 再入門 | DevelopersIO

    Web アプリケーション開発の初期段階においては、そのアプリのモックアップをよく作ったりします。いわゆるプロトタイピングというヤツですね。実装となるともちろんサーバーサイドは JavaPHP などで実装し、それに伴ってフロントエンドもそれらのプログラミング言語によるテンプレートエンジンをベースに HTML で作り上げる訳です。しかしプロトタイピングの段階ではそういったプログラミング言語に頼ることなく、HTML だけで一通りの静的な Web ページを作ることになります。 実はこのモックアップ作成という名のプロトタイピング、HTML だけで作るという理由からかなりの重労働だったりします。画面数の少ない小規模な Web アプリケーションであればどうってことないですが、業務系の Web アプリケーションとなると10画面、20画面は当たり前。時には40画面以上にも及ぶことも少なくありません。

  • Sublime Text 2の基本とカスタマイズ【Vim風】

    2012年12月4日:Vim化について指摘と参考になる情報をいただいたので追記しました。 こんにちは、僕はVimユーザーです(ちなみにVimを完璧に使いこなしているわけではありません)。 今更ながら「Sublime Text 2」というナウでヤングなエディタも使いこなせるようになりたいと思い、Sublime Textの基設定からプラグインやスニペットの作り方まで調べた内容をこの記事にまとめることにしました。 細かい情報までまとめることはできなかったので、より詳しい内容を紹介してくださっているブログやサイトへのリンクを設けています。 この情報以外にもSublime Text 2をVimに近づけるプラグインやカスタマイズ方法があればコメントいただけるとうれしいです。 また、間違いがあればコメントいただければすぐに直します。よろしくお願いします! Sublime Text 2は有料($59)の

  • [Haxe/CreateJS] 万華鏡的な演出 | DevelopersIO

    上記画像のような演出デモを作ってみたので解説します。( デモ ) ネ申の砂場あそび 先日、CreateJS の生み親である Grant Skinner ネ申が申されました。 Started posting a few little demos & experiments to the CreateJS sandbox github.com/CreateJS/sandb… More to come. — Grant Skinner (@gskinner) April 15, 2013 「 CreateJS/sandbox に小さい実験デモを公開していくよ。 ( 意訳 ) 」…とのことなので、現在公開されている Kaleidoscope.js を弄ってみました。 Kaleidoscope.js の Haxe 用 extern クラス Haxe/CreateJS な人は下記コードをご自由にどうぞ

  • 【Sassで解決】CSSの@importはどれだけ悪影響なのか自分で試してみる | DevelopersIO

    はじめに Webサイトの高速化について調べてみるとCSSの@import url();は使わない方が良いという指摘をよく見かけます。 問題となるのはパラレルロード(複数のリソースを同時にロードする)ができなくなる場合があることと、CSSの読み込み順序が変わってしまうことがあるようです。 実際にどれだけ読み込み速度に問題があるのか、3つの読み込み方で試してみたいと思います。 比較する3つの読み込み方 今回はこの3つで読み込みを比較してみます。 CSSの@import url();で読み込む HTMLのlink要素で別々に読み込む Sassで@importして1つにまとめてlink要素で読み込む 対象ブラウザ 今回の検証ブラウザはChromeとInternet Explorerです。 どちらも備え付けの開発者ツールで検証します。 今回計測したサンプル サンプルはこちらに公開しているので問題があ

    【Sassで解決】CSSの@importはどれだけ悪影響なのか自分で試してみる | DevelopersIO
  • Twitter製フレームワーク「Flight」を試してみた! | DevelopersIO

    こんにちは。クラスメソッドの稲毛です。 前回のパッケージ管理ツール「Bower」インストールに続いて、いよいよ編となります「Flight」フレームワークです。 通常なら「Flightとは?」から始める所ですが、今回はどんどんサンプルを作っていくことで理解を深めてみました。 Flightのインストール まずはBowerを利用してFlightを構成するスクリプトファイルをインストールする必要がありますので、アプリケーションを作成する場所に下記の内容で「component.json」というファイルを用意します。 component.json { "name": "Flight Sample", "version": "1.0.0", "dependencies": { "flight": "~1.0.0" } } 用意できたらコマンドプロンプトを起動し、component.jsonがあるディレ

  • 【便利ツール】Emmetで、ちょっと気持ちいいコーディング with sublime text 2・下巻 | DevelopersIO

    ダミーテキストの挿入 loremを記載して、展開するとダミーのテキストを挿入してくれます。 //展開前 p*3>lorem //展開後 <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus consectetur nisi modi alias aspernatur suscipit nihil laborum vero possimus. Nobis velit iste eveniet atque aspernatur! Repellendus illum nulla similique quia.</p> <p>Magni sapiente dolorum dolorem expedita natus eaque aut nesciunt modi libero aspernatur omn

  • SinatraとHamlとScssとCoffeeScriptでモダンなWeb制作環境を構築する #1 | DevelopersIO

    こんにちは山形です。 htmlcss等を書いて静的なWebサイトを制作している方なら誰でも、より効率的な環境求めていると思います。 DreamweaverやAptana等のIDEを使うのも一つの手だと思いますが、より柔軟な環境構築としてご紹介したいと思います。 Rubyをインストールする Windowsの場合 Engineyard社が提供しているRailsinstallerでサクッと入れてしまいましょう。 Railsinstallerはこちらからダウンロード出来ます ダウンロードできたらexeを起動しウィザードに従ってインストールを実行してください。 Mac OS Xの場合 rbenvでのインストールを紹介します。 先にXcode Command line Toolsのインストールを済ませておいてください。 Xcodeの環境設定からインストールできます。 # rbenvをgithubから

    SinatraとHamlとScssとCoffeeScriptでモダンなWeb制作環境を構築する #1 | DevelopersIO
  • HTML5 × CSS3 × jQueryを真面目に勉強 – #10 CSS3 Transforms(2D)【20日目】 | DevelopersIO

    そんな訳で、CSS3トランスフォームについて学習した内容をまとめておくとします。 はじめに - CSS3のトランスフォーム(変形)機能について これまでにもCSS3の機能としてTransitionsやAnimationsについて紹介してきました。CSS3 Transformsは、文字通りWebページを変形させたり新たな次元を加える事が出来るモノです。変形と一口に言ってもトランスフォーム機能には2Dと3Dとがあり、これらを同じくCSS3の機能であるアニメーションと組み合わせる事で、驚きの効果をWebページにもたらす事が出来てしまいます。 要素に対してどのような変形をするかの指定は、Transformプロパティの値に予め用意されているtransform関数を指定する事で実現します。 Transform(2D)の関数一覧 translate(tx, ty) 今回はTransform2Dに的を絞っ

  • Sublime Text の習得に役立つショートカットキーのチートシートを作ってみた (Mac OS X / Windows)【15日目】 | DevelopersIO

    “世界的ですもんね 乗るしかない このビッグウェーブに” はじめに そんな訳で、IT業界で話題沸騰中のテキストエディタ、Sublime Text。弊社でも続々と利用者が増えている今日この頃です。 基的にビッグウェーブに鈍感な僕らしく、先日あたりからようやく使い始めてみました。長い間eclipseを使い続けていたので、色々と戸惑う箇所も多く、まだまだSublime(卓越した)に使いこなせていませんが、徐々に慣れていけたらなと考えています。 ショートカットキーのチートシートを作ってみた 少し前に弊社のとあるスタッフから「ショートカットキーのチートシートでナウいデザインのものがあったら、超捗るぜ。」とあおられ、僕自身まだまだ不慣れなこともあって、操作の習得も兼ねて作ってみました。 Sublime Text | Periodic table of the Keyboard Shortcuts.

  • HTML5で追加されたinput要素のタイプはiPhone、Androidでどのくらい使えるのか | DevelopersIO

    HTML5でinputタグのタイブが追加されましたが、現行のiPhoneAndroidでどのくらい使えるのか調べてみました。 OSとブラウザに関しては以下の機種で調べています。 iPhone 5(iOS6)のSafari Galaxy S3(Android 4.04)のGoogle Chrome バージョン18 目次 テキスト入力 検索(search) 数値(number) 電話番号(tel) URL(url) メールアドレス(email) 日付・時間指定 時間(time) 日付(date) 日時(datetime) 日時(datetime-local) 週(week) 月(month) その他 範囲から指定(range) 色選択(color) テキスト入力 まずはテキスト入力系の属性を調べてみます。 見た目が変わったり、フォーカスインした際の入力モードが変わります。 検索(search

    HTML5で追加されたinput要素のタイプはiPhone、Androidでどのくらい使えるのか | DevelopersIO
  • ちょっと高度にJavaScript/クロージャでイベントハンドラを作る | DevelopersIO

    前回の解説では、クロージャの「変数が保持される」「変数が隠蔽される」という特徴を使って、アクセサメソッドを作りました。 今回は、「呼ぶたびにクロージャが生まれる」特徴を使ってみます。 繰り返し処理内でイベントハンドラを作る まずは、何の工夫もなくやってみます。今回はjQueryも使います。 $(function() { var data = [ {label:'リンク1', value:1}, {label:'リンク2', value:2}, {label:'リンク3', value:3}, {label:'リンク4', value:4}, {label:'リンク5', value:5} ]; var ul = $('<ul/>'); for(var i = 0, l = data.length; i < l; i++) { var item = data[i]; var li = $('

  • iOS6 Mobile SafariがAjax POSTでキャッシュする問題を回避する方法 | DevelopersIO

    iOS6出た! iOS6が出来ましたね。社内ではiPhone5を入手した社員がLTEの速度に驚いていました。私はまだiPhone4Sですが、iOS6にして新しい機能を楽しんでいるところです。さて、iOS6にしてSafariの仕様が変わって困ったと言った投稿が海外のフォーラムで挙っています。それも、基的なPOST通信についてです。これは困ったということで、動作を確認して対策方法についてシェアしたいと思います。 どんな時にPOSTをキャッシュする? まずはどんな状況か確認してみたいと思います。 Cache-ControlもExpiresも無い場合 : iOS6 Mobile SafariはPOSTをキャッシュする Cache-Control max-age=0指定 と Expires指定 : iOS6 Mobile SafariはPOSTをキャッシュする Cache-Control: no-