タグ

ブックマーク / waka.github.io (6)

  • RailsのAsset PipelineとPrecompileをNode.jsのみで処理できるgulp-sprocketsを作った - yo_waka's blog

    RailsのAsset PipelineとPrecompileをNode.jsのみで処理できるgulp-sprocketsを作った 仕事ではRailsアプリを書いていて、JSやCSSなどのフロントエンドRailsのAsset Pipelineの仕組みに則ってビルドしてる。 普通にRailsアプリ作ってると普段Sprocketsについて特に意識しないと思う。 Sprocketsはそこが凄くて、あまり考えなくてもドキュメント通りにやってれば、必要なAssetを結合できて、リリース時は変更がなければブラウザキャッシュから、変更があれば 新しく読み込まれるみたいなことをやってくれる。 なんだけど、もうそろそろ新しい機能はES2015で書きたいよねという人が増えてきた。 とはいえSprocketsは独自のディレクティブ以外は使えなくて、SprocketsWayから外れると途端に脆い。 ES2015

    lEDfm4UE
    lEDfm4UE 2015/11/27
  • 渋谷JavaでRxJavaをAndroidアプリでどう活用するかという話をした - yo_waka's blog

    少し、いやかなり前に渋谷Javaで「Android meets RxJava」というタイトルでLTしてきました。 スライド上げるのが遅くなってすいません。。。 freeeAndroidアプリの開発前にチーム内で考えていたのが、テストの書きやすさを考慮するとどうしてもFragmentとAPIのやりとり含むビジネスロジックを切り分けたいというところで、 ViewController/ViewModel/Modelを上手く疎に分けられる仕組みが必要でした。 先行して開発していたiPhone版では、ReactiveCocoaを導入して上手くいったこともあり、FRPが出来るJavaのいいライブラリはないか探していたところ、上手くマッチしそうだったのがRxJavaでした。 RxJavaObservable、Subscriber、Func/Actionを使うことで、API呼び出し/モデルへの変換/画

  • Hubotを導入したらレビューの敷居が下がった話 - yo_waka's blog

    ウチの会社ではHipchatとGitHubを開発のコミュニケーションの中心にしている。 だんだん人も増えてくると、以前よりプルリクの数がそれだけ増えて、レビューで1日終わってしまう人がでてきた。 昔から仕様を知っている人にレビューが投げられがちで集中しやすいとかは他の会社でもよくある話しだと思う。 レビューは自分のタスクと同様に大事だけど、それで自分のタスクが全くできなくなったり、新しく入ってきた人がレビューする機会を失うのはあまりよくない。 というのもあって、Hubotを立ててみてプルリクのレビュアーをランダムで振れるようにしてみた。 Hubotというのはご存知Hipchatのbotとして動くプログラムで、botにコマンドを指定してリモート実行させたり、特定の文字列に反応させたりということがHipchat上でできる。 CoffeeScriptでスクリプト書けるのでとてもお手軽。 sush

  • AngularJSのディレクティブの仕組みを追ってみた - yo_waka's blog

    追ってみたシリーズ第3回目。 AngularJSのディレクティブ、名前は聞いたことあるけどあれでしょ?自前の「ng-hoge」を作るための仕組みでしょ? だいたいそんな感じですが、どうやって実現しているのか。 ディレクティブの役割 ディレクティブはHTMLビューを書き出すためだけのものじゃない。 「ng-controller」や「ng-model」など、HTMLに対して処理をバインド/注入する機能もディレクティブで出来ている。 AngularJSが持つ組み込みのディレクティブだけでもこれだけの数がある。 まさしくAngularJSのベースとなっている仕組みがDirectiveというわけか。 追ってみる ベースとなるngDirective関数を見ると、"link"と"restrict"プロパティを持ったオブジェクトを返す関数を作っていることが分かる。 function ngDirective

  • AngularJSのDIの仕組みを追ってみた - yo_waka's blog

    AngularJS黒魔術のうちの1つ。DI。 コントローラーの引数に$httpなどを指定すると、なぜ何もしなくてもHttpProviderの返り値が入ってくるのか。 var userControllers = angular.module('userControllers', []); userControllers.controller('UsersCtrl', function($scope, $http) { $http.get('users/index.json').success(function(data) { $scope.users = data; }); }); function invoke(fn, self, locals){ var args = [], $inject = annotate(fn), length, i, key; for(i = 0, lengt

  • AngularJSの2way bindingの仕組みを追ってみた - yo_waka's blog

    AngularJSの特徴でもある、モデルとビューの2way binding。 AngularJSの簡単なコードがあるとする。(投稿時点ではv1.2.6) <body ng-app ng-init="message = 'nothing'"> <div ng-controller="SampleCtrl"> <input type="text" ng-model="message"> <br> <button ng-click="clearMessage()">Clear</button> <br> <span>{{getMessage()}}</span> </div> <script> var SampleCtrl = function($scope) { $scope.message = ''; $scope.clearMessage = function() { $scope.mes

  • 1