タグ

2013年12月6日のブックマーク (8件)

  • とある CMS を使ったサイトに Varnish を導入した話

    Shin x blog Advent Calendar 2013 の 6 日目です。 とあるサイトに、Varnish をリバースプロキシとして導入して、半年が経過しました。 導入した経緯やその効果など書いてみたいと思います。 Varnish とは Varnish は、HTTP アクセラレータです。Web サーバのリバースプロキシとして動作し、キャッシュを生かして高いパフォーマンスを発揮するのが特徴です。また、VCL という独自の設定言語を持ち、これにより状況に応じた設定を柔軟に行うことができます。 導入の経緯 このサイトでは LAMP 構成の CMS を利用しており、インフラには AWS を利用しています。基、閲覧が中心なのですが、イベント時に多数のアクセスがあります。S3 や CloudFront も検討したのですが、コンテンツを数分おきに更新する必要があるので今回は採用しませんでした

  • 第0回 開業のごあいさつ(診断するPHPコードも大募集!) | gihyo.jp

    PHPは実用的な言語 こんにちは。新原と申します。連載では、PHPプログラミング診断室ということで、世のPHPコードが健全になるべく、診断していきたいと思います。よろしくお願いします。 PHPを開発したRasmus Lerdorf氏は、「⁠PHPは歯ブラシのようなものだ」とPHPを表しています。歯ブラシは毎日使うもので、それは仕事であり、シンプルな道具である、と。筆者はこの発言を知ったときにPHPを端的に表した良い表現だと感じました。そう、PHPはシンプルな道具ゆえに誰もが簡単に使い始めることができます。HTMLの中に埋め込んで、動的にHTMLを生成するのはとても簡単です。また、コードも柔軟に書くことができ、ユニークな書き方をしてもそれなりに動いてくれます。 PHPは、これまでとても多くのユーザを獲得してきました。特に特徴的なのが、プログラミングを行う人(プログラマですね)だけではなく、

    第0回 開業のごあいさつ(診断するPHPコードも大募集!) | gihyo.jp
    k-holy
    k-holy 2013/12/06
    これは期待せざるを得ない "若気の至りで生み出した秘蔵のお宝コード"
  • SNSチームでのドメイン駆動設計の実践 | GREE Engineering

    こんにちは!グリープラットフォームでSNSの開発をしています、うきょーです! GREE Advent Calendar 2013 6日目です、よろしくお願いします! 今回は僕が所属するチームでの、ドメイン駆動設計を実践してきた過程をお話したいと思います。ドメイン駆動設計とは何か、については簡単に要所要所で説明していきますが、詳しくはで!また、ドメイン駆動設計そのものについての話ではなく、実践の一例となります。 スマートUIパターンからのスタート 今回僕のチームが扱っていたものはJavaScript製のクライアントアプリケーションで、APIから取得した情報を表示し、ユーザーの操作によってAPIを呼び出す、というごく一般的なものです。 ドメイン駆動設計にはアンチパターンとして、スマートUIパターンと呼ばれるものが存在します。簡単に言えば「見た目都合から設計やモデルを考えてしまった」という状況

    SNSチームでのドメイン駆動設計の実践 | GREE Engineering
    k-holy
    k-holy 2013/12/06
  • Beyond MVC

    PHP Advent Calendar 2013 - 6日目 昨日は@fivestrさんのComposerを使った簡単Travis CI設定でした。 TL;DR オブジェクト指向/MVCでうまく捉えきれていなかったものは何なのか?MVCから続くソフトウェアアーキテクチャーの「その先」は何なのか?Reenskaug博士を知っていますか? WikipediaによればReenskaug博士は1930年生まれ。MVCという概念が世の中に送り出された論文『MODELS - VIEWS - CONTROLLERS (pdf)』は1979年ですから、49歳の時ということになります。1960年からソフトウェアを書き始め、1973年からオブジェクト指向でソフトウェアを開発しており、現在でも現役でソフトウェアの世界にいらっしゃいます(ex 2009年の講演)。「プログラマ歴42年 (* Clean Coder

    Beyond MVC
    k-holy
    k-holy 2013/12/06
  • 『オブジェクトの不変性、変数の再代入不可能性、防御的コピー』

    不変と言われてもピンとこないかもしれません。 注意してほしいのは、不変オブジェクトと再代入不可能な変数の違いです。 (変数への再代入も最小限にすべきであることに違いはありませんが。) Java で言うと、、、 String は不変クラスです。 String のインスタンスは不変オブジェクトです。StringBuilder は可変クラスです。 StringBuilder のインスタンスは可変オブジェクトです。final 修飾子つきの変数は再代入不可能です。 再代入不可能な変数が可変オブジェクトを参照することもあれば、 再代入可能な変数が不変オブジェクトを参照することもあります。あるオブジェクトのフィールド (変数) への再代入は、そのオブジェクトの変更です。 あるオブジェクトのフィールド (オブジェクト) の変更は、そのオブジェクトの変更です。 初期化済みのオブジェクトに対して変更する手段が

    『オブジェクトの不変性、変数の再代入不可能性、防御的コピー』
    k-holy
    k-holy 2013/12/06
  • Javaの理論と実践: 可変性か、不変性か?

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Javaの理論と実践: 可変性か、不変性か?
    k-holy
    k-holy 2013/12/06
  • 「オブジェクトをイミュータブルにしろ」って言うけど、それってたとえば状態が変わったらオブジェクト作り直すってことでしょ、ちょう非効率じゃん。って思ってたんだけど、 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    オブジェクトの内部の値がイミュータブルであれば、今後もその値は変更されないことが保証されているので、新しい状態を持った新しいオブジェクトの内部の値のうち、変更のない部分(つまり値のうちのほとんど)は古いオブジェクトの値をそのまま参照すればよく、コピーする必要がないということを @takkkun が言っていて(正確には、イミュータブルなリストに新しい値を追加した新しいリストを作るときには、中身をコピーする必要ない。変更されないことが保証されてるから、という話だった)目から鱗が落ちたのでここに記して置こうとおもった。 で終わろうと思ったんだけど、もう少しちゃんと書く。 ミュータブルな世界では同一性の問題がある。 たとえば playerA と playerB の HP がたまたまおなじ 10 であったとしても playerA と playerB の HP 変数が同じ数値オブジェクトを参照していた

    「オブジェクトをイミュータブルにしろ」って言うけど、それってたとえば状態が変わったらオブジェクト作り直すってことでしょ、ちょう非効率じゃん。って思ってたんだけど、 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    k-holy
    k-holy 2013/12/06
  • リーンなコードを書こう:実践的なオブジェクト指向設計

    DevLove仙台 オブジェクト設計とリーン開発、その実践 変更しやすく、コードを改善するRead less

    リーンなコードを書こう:実践的なオブジェクト指向設計
    k-holy
    k-holy 2013/12/06