[Laravel] Scopeの使い方

頻繁に使う条件はScopeとして定義しておくことで、再利用が容易になる。

実装

使い方

参考サイト

Eloquent: Getting Started – Laravel – The PHP Framework For Web Artisans
http://laravel.com/docs/5.1/eloquent#query-scopes

[Laravel] AccessorとMutatorの使い方

AccessorとMutatorがあるなんてC#っぽい。モデルをカプセル化するために積極的に使うといいかも。

Accessor

実装

使い方

Mutator

実装

使い方

参考サイト

Eloquent: Mutators – Laravel – The PHP Framework For Web Artisans
http://laravel.com/docs/master/eloquent-mutators

[Git] GitHub Flowとは何だろうか?

Git 運営指南の覚え書き。

GitHub Flow (Japanese translation)
https://gist.github.com/Gab-km/3705015

GitHub Flowとは何だろうか?

– masterブランチのものは何であれデプロイ可能である
– 新しい何かに取り組む際は、説明的な名前のブランチをmasterから作成する(例: new-oauth2-scopes)
– 作成したブランチにローカルでコミットし、サーバー上の同じ名前のブランチにも定期的に作業内容をpushする
– フィードバックや助言が欲しい時、ブランチをマージしてもよいと思ったときは、 プルリクエスト を作成する
– 他の誰かがレビューをして機能にOKを出してくれたら、あなたはコードをmasterへマージすることができる
– マージをしてmasterへpushしたら、直ちにデプロイをする

これがフローのすべてだ。 とてもシンプルかつ効率的で、かなり大きなチームでも機能する。現在GitHubは35人で、そのうちの約15〜20人が一度に同じプロジェクト(github.com)で作業している(訳注:数字は2011年8月時点のもの)。 ほとんどの開発チーム(同時期に同じコードで作業をし、コンフリクトを発生させる可能性のある集団)はこれくらいか、もっと小さいと思う。 とりわけ、迅速に一貫したデプロイを行なうような進歩的なチームなら。

参考サイト

Github-flowを分かりやすく図解してみた – pyar.bz
http://b.pyar.bz/blog/2014/01/22/github-flow/

A successful Git branching model » nvie.com
http://nvie.com/posts/a-successful-git-branching-model/

[開発手法] SEの文書作成術 参考サイト

自分はこれまで上流設計にはあまり関わってこなかったので、上流設計の成果物としての文書作成ノウハウには乏しい。最近も要件定義書の作成にはかなり苦労した。エンドユーザ向けの操作マニュアルなどは割とスラスラ書ける気がするんだけど。

役立ちそうな文書術の参考サイトを覚え書きリンク。困ったときには見返そう。

「誰にでも分かるSEのための文章術」最新記事一覧 – ITmedia Keywords
http://www.atmarkit.co.jp/ait/kw/tesxtart_4_se.html

文章コミュニケーション・リファクタリング! インデックス - @IT自分戦略研究所
http://jibun.atmarkit.co.jp/lskill01/index/index_discom.html

「明日から使えるシステム開発プロジェクトの進め方 再入門」最新記事一覧 – ITmedia Keywords
http://www.atmarkit.co.jp/ait/kw/project_susumekata.html

[JavaScript] imagesLoaded – 画像のロードが完了したことを検知する

ページ上に配置される画像がすべてロードされてから実行したい処理がある場合に役立つスクリプト。

ImagesLoaded
http://imagesloaded.desandro.com/

ある案件で「ページに任意サイズの画像をグリッド状に配置して下端にフッタを表示する」というデザインがあって、フッタの位置はロードされた画像の高さを積算して求めないといけないので、すべての画像がロードされるのを待ってから計算処理する必要あり。最初はjQueryでloadイベントをフックしてみたんだけど、挙動が信用できないっぽかったので他の方法を探したところ、このスクリプトのお世話になって無事に実装を完了できたというわけ。

ちなみに、画像のロードの検知に関してはjQuery公式サイトにも注意事項が記載されている。

.load() | jQuery API Documentation
http://api.jquery.com/load-event/

Caveats of the load event when used with images

A common challenge developers attempt to solve using the .load() shortcut is to execute a function when an image (or collection of images) have completely loaded. There are several known caveats with this that should be noted. These are:

– It doesn’t work consistently nor reliably cross-browser
– It doesn’t fire correctly in WebKit if the image src is set to the same src as before
– It doesn’t correctly bubble up the DOM tree
– Can cease to fire for images that already live in the browser’s cache

[JavaScript] なぜJavaScriptフレームワークを使うのか

関わっている現場のフロントエンド担当が退社したので、当面自分がフロントエンドも見ないといけなくなった。いまのフロントエンドはjQueryを使っているけど、JSフレームワークまでは使っていない。JSフレームワークに関する情報を収集していたら、以下の記事が参考になったので覚え書きリンク。

第4回 運用開発におけるJavaScriptのフレームワークの選定:聞いたら一生の宝,プログラミングの基礎の基礎 |gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/js-foundation/0004

以下は記事からの抜粋。

なぜJavaScriptフレームワークを使うのか

  • 各ブラウザ間でのイベントの伝達方法やタグなどの仕様の不一致を吸収するため
  • 日々変わっていくブラウザの仕様に追従するため
  • それらを含めたブラウザやマシンの進化によりユーザのマシンに任せられる処理が増えたことでサーバサイドではなくフロントエンドで処理をすることが多くなりJavaScriptでの開発量の比率が増加したため元来MVCモデルで言うViewであったフロントエンドにMVCモデルを用いる必要が出てきたため

JavaScriptのフレームワークの導入により得られるもの

  • ロジックのコンポーネント化やViewとロジック部分の切り離し
  • フロントエンドエンジニア/Webデザイナー間でそれぞれ作業する箇所の分離をしチーム開発をしやすくする

[Laravel] ControllerからViewへの変数の渡し方

何通りかある。

参考サイト

【Laravel5】Viewへのデータ受け渡し – Bloq4Developer
http://site.oganity.pw/%e6%8a%80%e8%a1%93%e3%83%8d%e3%82%bf/%e3%80%90laravel5%e3%80%91view%e3%81%b8%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e5%8f%97%e3%81%91%e6%b8%a1%e3%81%97/