サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
レイングッズ
64.hateblo.jp
先日 Gotanda.js という勉強会で Immutable.js と Flowtype についてLTさせてもらったのだけど、その補足というか詳細的な話でもあります。 speakerdeck.com Immutable.Record + Flowtype Immutable.jsのRecordのよく紹介される使い方として、継承してイミュータブルなモデルクラスを作るというものがある。 import { Record } from 'immutable'; const FooRecord = Record({ a: '1', b: 2, c: true }); class Foo extends FooRecord { getSquaredB() { return this.b * this.b; } } const foo = new Foo({ a: '2', b: 3, c : fal
パーフェクトRuby on Rails読んでてハマったところ。 RSpecでビューのテスト書くとき、こんな風にコントローラのヘルパーメソッドをスタブしているのだけど、 context '未ログインユーザがアクセスしたとき' do before do allow(view).to receive(:logged_in?) { false } allow(view).to receive(:current_user) { nil } end # 中略 end 最新バージョンのrspec-railsだと Failure/Error: allow(view).to receive(:logged_in?) { false } #<#<Class:0x007fa8613dc140> ....> does not implement: logged_in? 怒られるもよう。(rspec-rails v
Frontrend Advent Calendar 2014 - Qiita 18日目の記事です。 フレームワークや使用技術など は方々で語られているので、それ以外の話をします! JavaScript Advent Calendar 2014 VirtualDOM Advent Calendar 2014 Vue.js Advent Calendar 2014 Backbone.js Advent Calendar 2014 一人React.js Advent Calendar 2014 AngularJS Advent Calendar 2014 KnockoutJS Advent Calendar 2014 個人的には最近Ampersand.jsが気に入ってます。 リポジトリ構成 フロントエンドのリソースはサーバー側のフレームワークのassetsやstaticといったディレクトリで管理
ちょっと前に紹介されてたAmpersand.jsを使ってみたので、ざっくりとした紹介。 Ampersand.jsはView, Model, Routerなど複数のモジュールに分割されていて、個別に読み込んで使うことができる。 $ npm i --save ampersand-model で var AmpModel = require('ampersand-model'); 多くのモジュールはBackbone.jsのコードをベースにしているので、名前が同じものは概ね同じ感覚で使うことができる。 以下、全部ではないけど触ったモジュールのBackboneとの違いをざっくり紹介。 ampersand-state 後述するampersand-modelのベースになるモジュール。違いとしてはAjax周りの機能がない。 get/setメソッドを介さずにプロパティへのアクセスができる var Amper
メモリリークは起きていないか 初期化時に無駄な通信はないか ページ移動時に保持するデータと破棄するデータの分別ができているか 読まれたくないロジックを置いてないか 直接叩かれて困るAPIやルーティングはないか バリデーションの項目はサーバー側と揃っているか 最低でもモデルのテストは書いているか Ajaxリクエストが失敗した時のリカバリー処理はあるか リリース時にユーザー側のリソースを更新させる仕組みはあるか SPAにする必要性はあるか
semverとは? semver(Semantic Versioning)は依存関係のもつれを解決するべく制定されたバージョニングの標準仕様です。 Semantic Versioning 2.0.0 npmに登録されているモジュールのバージョンもsemverに沿った形式で設定されています。 The semantic versioner for npm 概要 バージョンをmajor.minor.patch(-prerelease, +build)の形式で記述し、 majorは後方互換性のないAPIの変更時に minorは後方互換性のある機能追加時に patchは後方互換性のあるバグ修正時に それぞれインクリメントします。 node-semver バージョンがsemverに沿ったものであるかは、npm内部でも使用されているnode-semverで確認が可能です。 $ npm install -
Marionette.jsはBackbone.jsのラッパー的なライブラリです。 Backbone.jsの問題点 Backbone.jsは割と自由度が高いフレームワークなのですが、 それ故に中規模以上のプロジェクトで使おうとすると 設計が難しい(ベストプラクティスがわからずオレオレ実装になる) 初期化やインスタンスの管理が面倒 Viewは同じような処理が増える(で基底クラスにまとめたりする) といったデメリットがあります。 実際僕もよくわからないまま初期設計をした結果 大きな技術的負債を作ってしまった事がありました。 Marionette.js Marionette.jsはBackbone.jsと比べて抽象度が高く、 モジュール機構、CollectionView、Viewのデストラクタなど 独自実装になりがちな機能を提供してくれます。 これらを使う事で上に挙げたようなデメリットを回避し B
今業務でやってるプロジェクト、ジョインした時点では 普通のソーシャルゲーム 規模はそこそこ大きい MVCフレームワークなどは使ってない テスト0 運用中 フロントはこんな感じでした。 これはヤバいと思い開発の合間合間にテストを書いていったのですが、 その時にやったことの記録です。 使ったもの Mocha chai Sinon.js testem PhantomJS CasperJS DOMのテストもしたかったので実行環境はブラウザにしています。 Jasmineでも良かったのですがアサーションも自分で選びたかったので Mochaを使いました。 どのくらい書いたか 結論から言うと共通のメソッドやコンポーネントだけしか書いてません。 そもそもテストを書く事を全く考慮されていないコードで、 DOMと密結合しまくりだったり if (result) { resultDom += '<div class
最近のフロントエンド GitやNode.jsやSassやaltJSのコンパイラなど、使うものが増えて 環境構築の手順も複雑になってきています。 そこでVagrantとchef、それからcookbookの依存関係を管理するBerkshelfを使って 環境構築の手順を自動化かつ共有できるようにしました。 開発環境の中身 最近自分がよく使っているものを入れてみます。 Git Node.js grunt-cli Bower testem PhantomJS CasperJS 必要なもの Vagrant chef Berkshelf vagrant-berkshelf セットアップ スケルトンの作成 berks cookbook chef-frontend 実行するとchefリポジトリのセットアップから Vagrantfileの生成、.gitの追加までやってくれます。 Berksfileの編集 使用
このページを最初にブックマークしてみませんか?
『64.hateblo.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く