複雑なアプリケーションではロギング、 トレーシング 、メトリクスといったサポートの機能により、関数にすぐ負荷がかかってしまいます。これらのコードブロックはあらゆるコードベース上でそれぞれ少し変形して繰り返し使用されるのですが、これを 横断的関心事(cross-cutting concerns) と言います。 アスペクト指向プログラミング (AOP)は、アスペクトと呼ばれるモジュール内にコードブロックを引き入れて、 関心の分離 (separation of concerns)を手助けします。 AOPの実装 Phoneクラス ^(1) 不自然な例だというのは承知の上で、 dial メソッド1つを使って簡単なPhoneクラスを構築してみました。 function Phone() {}; Phone.prototype.dial = function (friend) { var start =
デキるプログラマだけが知っているコードレビュー7つの秘訣 7つの秘訣の1〜5は本当にそのとおりだと思います。 「怒り」って言葉を使っているところはなかなか画期的だと感じた。というのも僕は前から「人格攻撃に思われて」しまうような、コードで人を殴るようなことをしてしまう人が出てきてしまうのは何故かということを考えた時に、そこには「コードに対する怒り」があるからだろうなと思っていたからである。怒りがあるからこそ強く指摘しすぎてしまうことが起こりうる。 「怒り」というのはつまり「感情」である。であれば、「その『怒り』はコードに向けられたものであり、書いた人に対してのものではないので、その人に対しての攻撃ではない」というのは、理屈ではかろうじて通るかもしれないが、書いた人の「感情」的には通らないこともあることは理解したほうが良いと思う。 じゃあ怒らなければ良い、という話にはしたくなくて、どうしても怒
公開しているサーバーの負荷状況を仕事してる時にも知りたいと 思ってNotificationの出し方なんかを調べてたら何かが降りてきて数分毎にNotificationだそうとか考えた。 使ったGemとか Nokogiri スクレイピングの大御所 Menchanize Nokogiriを使いやすくしてくれる Clockwork Cronの代替。時間が来ると実行してくれる。 コード require 'clockwork' require 'mechanize' module Clockwork handler do |job| job.call end every( 1.minutes, lambda do url = 'http://path/to/site' items = [] agent = Mechanize.new page = agent.get(url) node = page.
1 以下、\(^o^)/でVIPがお送りします :2014/08/19(火) 21:19:26.53 ID:HuW0/ceK0.net 4 以下、\(^o^)/でVIPがお送りします :2014/08/19(火) 21:19:59.84 ID:8OvMPuva0.net バッカーノ 5 以下、\(^o^)/でVIPがお送りします :2014/08/19(火) 21:20:04.28 ID:Tow5Xfag0.net ガドガード 6 以下、\(^o^)/でVIPがお送りします :2014/08/19(火) 21:20:09.62 ID:A2uTwEGu0.net ステラ女学院 8 以下、\(^o^)/でVIPがお送りします :2014/08/19(火) 21:20:25.46 ID:a8LxJIWI0.net (けいおんって言いにくい・・・) 9 以下、\(^o^)/でVIP
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く