タグ

2014年3月13日のブックマーク (12件)

  • Practical Symfony #23: ドメインの知識を使ったフォームバリデーション

    フォームは、PHPメンターズの設計と実装の型で述べているように、アプリケーションレイヤーにて実装されます。今回はフォームのバリデーションの拡張についてとりあげます。 バリデーションの仕組みの基ユーザーが入力した値を受け取り、アプリケーションのフォームでその入力を表すオブジェクト(フォームのデータを格納する入れ物、フォームDTO: Data Transfer Objectと名づけます)が組み立てられます。このフォームDTOの持つデータが妥当かどうかをチェックするのがバリデーションの役割です。 バリデーションはフォームDTOに対して行われるため、SymfonyではフォームDTOクラスにバリデーションの定義を記述します。 class Author { /** * @Assert\NotBlank() * @Assert\Length(min = "3") */ private $firstNa

    Practical Symfony #23: ドメインの知識を使ったフォームバリデーション
    oppara
    oppara 2014/03/13
    [23:]
  • Vagrant 1.5 で追加された Rsync Synced Folder が良い

    Vagrant 1.5 がリリースされました。1.1 以来の big change ということで、目新しい機能が追加されています。 目玉はやはり Vagrant Share だと思うのですが、その他にも Web システムの開発に Vagrant を使っている人には嬉しい機能が追加されています。 その一つが Rsync Synced Folder です。 Vagrant には、ホストマシンとゲストマシンとでファイルを共有、同期する機能があります。 これにより、開発はホストマシンで行い、実行は LA(MP)P 環境であるゲストマシンで行うという、いいとこ取りができました。 この機能を実現する方法として、shared folder(VirtualBox の機能)や NFS を利用することができたのですが、これに rsync による同期が追加されました。 ホストマシンからゲストマシンへ rsync

    oppara
    oppara 2014/03/13
  • OSSの開発モデルを、そのまま社内に持ち込むのは止めたほうがいい(もしくはコードレビューの話) - kazuhoのメモ置き場

    以前以下のようにツイートした話だけど、OSSの開発モデルを社内開発にそのまま持ち込むのは危険。 チーム開発の場合、簡単にコメント返せないようなPR送られた時点で負けだと思ってる。無駄なコードが生産されないよう事前に設計を詰める作業をすべき / “雑なレビュー - ✘╹◡╹✘” http://htn.to/by5or1 https://twitter.com/kazuho/status/431602421068877824 今日一般的に想定される「OSSの開発モデル」はEric S. Raymondの有名なエッセーである「伽藍とバザール」によって解説されたところの「バザール」である。 「バザール」モデルにおいては、多くの改善提案の中から最善と考えられる実装が取り入れられ、コミュニティで共有されるようになる。同エッセーから引用するなら、 ふりかえってみると、Linux の手法や成功の前例は G

    OSSの開発モデルを、そのまま社内に持ち込むのは止めたほうがいい(もしくはコードレビューの話) - kazuhoのメモ置き場
    oppara
    oppara 2014/03/13
  • CSSプリプロセッサーの必要性

    やはりSassは必要だと考えている。あるいはLESSでもStylusでも良い。それはCSS Variablesの実装が落ち着き、行き渡っても、だ。もちろんその時にはCSSプリプロセッサーの変数を使わずに、CSS Variablesを使って書いた方が良いけれども。 CSSプリプロセッサーの変数やネスト、そしてミックスインはショートカット記法に過ぎない。DRYを加速させるだけで、それ以上特に付け加えられる何かはあまりない。変数への命名規則の採用による意味付けやネストでの構造化は有用・有益であることには気づくが、質的な意味付けや構造化をもたらすものではない。これらの機能はCSSの貧弱さと比較すると輝かしく見えるものの、プリプロセッサーを使ってまで利用する価値があるかというと疑問が残る。 ならばなぜ必要だと考えるのか。 それはウェブページの要素間でのルールセットの共有ではなく、セレクター同士での

    CSSプリプロセッサーの必要性
    oppara
    oppara 2014/03/13
    CSSプリプロセッサーの必要性 - Weblog - http://t.co/IYL85F6mMu
  • specinfraを使ってみよう - Qiita

    specinfraは汎用コマンド実行フレームワーク。RubyGemsとしてで配布されています。 追記:これは1の頃の話なので全体的に古いです。 この書籍が一番詳しい。 => O'Reilly Japan - Serverspec ソースはこちら https://github.com/serverspec/specinfra specinfraが目指す所は、情報処理学会研究報告の serverspec: 宣言的記述でサーバの状態をテスト可能な 汎用性の高いテストフレームワーク という論文を見ると良いでしょう。 論文もソースコードと同様にGithubに公開されています。 https://github.com/mizzy/serverspec-thesis 概要 同じメソッドで任意のOS用のコマンド実行文字列を取得したり実行して結果をとったりします。 さわった感じこんな挙動 バックエンドの形式を

    specinfraを使ってみよう - Qiita
    oppara
    oppara 2014/03/13
  • NoShi - DB不要、Markdownファイルを使ったCMS MOONGIFT

    Webサイトを構築する上で欠かせないのがCMS(コンテンツ・マネジメント・システム)です。しかし大抵データベースが必要だったり、テンプレートエンジン独自の記法に沿ったり、ユーザログインがあったりと何かと面倒なものです。 そんな面倒さを取っ払ってくれるのがNoShiです。Markdownファイルをコンテンツにした、ごくごくシンプルなCMSです。 NoShiの使い方 インストールはとても簡単で、以下のコマンドを打つだけです。なおPHPは必須ですが、Apacheはいりません。 $ php composer.phar create-project -s dev cundd/noshi target/path/ 起動はPHPで書かれたWebアプリケーションサーバで行います。 $ php -S localhost:9000 -t . これで準備は完了です。 ファイル構成。 さっそく http://lo

    NoShi - DB不要、Markdownファイルを使ったCMS MOONGIFT
    oppara
    oppara 2014/03/13
  • Takazudolog - OOCSSとSass

    CSS Preprocessor Advent Calendar 2012の10日目、@Takazudoです。 僕はSassが好きです。なぜならSassにはextendがあるからです。その理由を、社内勉強会で発表した、以下のスライドで話したことを補足しつつ、書きます。 OOCSS + Sass OOCSSってなんぞ まず、Sassのextendが素敵な点を紹介する前に、OOCSSについて簡単に紹介します。 OOCSSというのは、Nicole Sullivanという人が言い出した考え方です。そのプレゼン資料やビデオなどは、人が発表したものが、slideshare等にアップされています。 Object-oriented CSS Object Oriented CSS by Nicole Sullivan · Fronteers The Cascade, Grids, Headings, an

    Takazudolog - OOCSSとSass
    oppara
    oppara 2014/03/13
  • microインスタンスはlimitかけると大きくパフォーマンスが向上する(※再追記あり) - アルパカDiary Pro

    ※2014/07/02 T2インスタンスタイプとの比較 を追記しました。 ※2014/03/13 他インスタンスタイプとの比較/m3.mediumの検証 を追記しました。 こちらの記事の二番煎じです。 cgroupで、お手軽CPU使用率制限 なるほど。 リソースにLimitかけるとstealを防げるためパフォーマンスも上がるというわけですね。 どのくらい変わるのか実験してみました。 cgroup前準備 sudo yum install libcgroup sudo chkconfig cgconfig on sudo service cgconfig start cgroup設定 上記参考URLとほぼ同じ設定です。 実行時はcpu.cfs_quota_usを変動させて比較してみました。 sudo vi /etc/cgconfig.conf # 以下を追加 group limittest {

    microインスタンスはlimitかけると大きくパフォーマンスが向上する(※再追記あり) - アルパカDiary Pro
    oppara
    oppara 2014/03/13
    microインスタンスはlimitかけると大きくパフォーマンスが向上する(※追記あり) - アルパカDiary
  • [JavaScript] そんな継承はイヤだ - クラス定義 - オブジェクト作成 - Qiita

    JavaScript のオブジェクト作成においてクラス定義で継承を実装する方法はいくつかあります。 正しい継承はどうあるべきか、基から検証しながら考えてみたいと思います。 ※正しくクラス定義がエコ楽にできる様に追加記事書きました。 [JavaScript] getter/setterも使えるエコ楽なクラス定義 - もちろん継承も - private変数も 一番簡単なオブジェクトの作成方法 典型的な JavaScript のオブジェクトを簡単に作成してみて、それらを確認してみましょう。 var obj1 = {x: 12, y: "ab"}; var obj2 = new Object; // または new Object() obj2.x = 34; obj2.y = "cd"; // obj < Object var obj3 = [12, "ab"]; var obj4 = new

    [JavaScript] そんな継承はイヤだ - クラス定義 - オブジェクト作成 - Qiita
  • git-svnを利用した運用を考える - Qiita

    最近、諸事情あってsubversionからgitプロジェクトの半ばでバージョン管理を変更しました。その際にちょっと変わった形でgit-svnの運用を行う事になったのでやりかたに関して簡単にログを残しておきます。 プロジェクトを取り巻く事情 今まではSubversion(仮にメインとします)を用いた運用を行っていたのですが、気軽にtrunkに対してコミットする事が出来ない事情がありました。では、メインSubversion上にbranchをたてればいいじゃんという話になるのですが、ブランチすら気軽に切る事が出来ない状態でした。その上、メインのSubversionにコミットすることが可能なのはコミッターだけとなっておりコミッターの負担が増えつつありました。 今までの運用 今まではメインSubversionとは別に 同期しないSubversion(仮にローカルとします)を別途立てて、なんと手動で

    git-svnを利用した運用を考える - Qiita
    oppara
    oppara 2014/03/13
  • 些末なコードレビュー - naoyaのはてなダイアリー

    朝起きて布団から出るのがつらいので、HBFav をつらつらと眺めていた。 あるサービスの JavaScript が重いとか、そのコードが難読化されてないとか、担当者とおぼしき人間が書いたコメントがそのまま残ってるから消しましょうよとか、そんなことが書かれていた。JavaScript が重い、という話は結局そのサービスの JavaScript が重かったのではなく、ユーザーが自分で導入した広告が重いというだけの話だった。 コードが難読化されていない、趣味の製品ではなく会社の製品なのでコメントそのまま残ってるから消しましょう・・・実にくだらない。 ところで話は変わってコードレビューについて。 コードレビューに慣れないチームが、何の考えもナシにコードレビューを始めるととにかく気になったこと大小様々な指摘が行われることになる。一見、いろいろな指摘が出て議論が活発になっているように見えるが、だいたい

    些末なコードレビュー - naoyaのはてなダイアリー
    oppara
    oppara 2014/03/13
  • TechCrunch | Startup and Technology News

    Welcome back to TechCrunch’s Week in Review — TechCrunch’s newsletter recapping the week’s biggest news. Want it in your inbox every Saturday? Sign up here. Over the past eight years,…

    TechCrunch | Startup and Technology News
    oppara
    oppara 2014/03/13