Not Found
TL;DR Web applicationを書いてると,たいてい業務ロジック実装のための分岐処理でコードが汚くなり,また色々な場所に同様な処理のコピペが発生する 権限管理用ライブラリであるPunditを使って業務ロジックにおける分岐処理を1箇所にまとめるときれいに整理できるケースがある 複雑なUser Roleベースの権限管理をするときはcancancanなどを使うべきで,目的に応じた使い分けが大事 書いていないこと Punditの詳しい使い方(コードベースが非常にシンプルでdocも充実しているので自分で読んだ方が早い) 他の権限管理ライブラリの使い方(筆者より優秀なエンジニアが書いた記事が沢山あるのでググった方がいい) 前置き Web applicationがある程度大きくなった時に生じる2大問題 ビジネスロジックの条件分岐でコードが汚れる問題 以下のようなビジネスロジックを実装するため
nginxのv1.9あたりからOSS版でも使えるTCPロードバランシング機能をmrubyでプログラマブルに制御できるようにngx_mrubyでもサポートしました。 github.com これで、HTTPやHTTP/2だけでなくTCPのロードバランシングでもmrubyによって通信をプログラマブルに制御できるようになったわけです。 nginxのTCPロードバランシング機能は、nginx内部ではstreamモジュールとして、httpモジュールとは別で実装しているため、ngx_mrubyでも一から実装し直す必要がありました。 ということで少し面倒だなぁと思っていたのですが、ちょうど、僕の最近やりたい事としてTCPのロードバランサをもう少しプログラマブルに書きたいというのがあって、色々とTCPロードバランサを探したり、既存のソフトウェアで設定を試行錯誤するよりも、自分でnginxのTCPロードバラン
今回はインフラに対する自動テストツールであるInfratasterを軽く試してみたいと思います。 Infratasterはインフラの外部から振る舞いをテストするツールで、構築したサーバに対してそのサーバのサービス利用者に近い視点でテストをすることができるのが特徴です。 ちなみにインフラの自動テストと言えばServerspecがよく知られていますが、サーバ内部からテストするServerspecに対してInfratasterは外側からと、ひと味違ったアプローチのテストツールとなっています。 準備 Infratasterの公式サイトにチュートリアルがありますが、今回は最初の一歩としてそれをさらに単純化したものを試していきます。 ローカルのマシンに作業ディレクトリを作り、その中でInfratasterを動かしていきましょう。 MacもしくはLinuxなどで試してみてください。 $ mkdir in
山下記念研究賞は,研究賞として本学会の研究会および研究会主催シンポジウムにおける研究発表のうちから特に優秀な論文を選び,その発表者に 贈られていたものですが,故山下英男先生のご遺族から学会にご寄贈いただいた資金を活用するため,平成6年度から研究賞を充実させ,山下記念研究賞としたものです.受賞者は該当論文の登壇発表者である本学会の会員で,年齢制限はありません.本賞の選考は,表彰規程,山下記念研究賞受賞候補者選定手続および 山下記念研究賞推薦内規に基づき,各領域委員会が選定委員会となって行います.本年度は37研究会の主査から推薦された計53編の優れた論文に対し,慎重な審議を行い,決定されたうえで,理事会(2015年7月)および調査研究運営委員会に報告されたものです.本年度の下記受賞者には,3月10日に慶應義塾大学で開催される第78回全国大会の席上で表彰状,賞牌,賞金が授与されます. <コンピュ
「次世代クラウド勉強会 テーマ:【Docker、DevOpsを取り巻くマイクロサービスのコンセプト】」の資料一覧です。
The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin with a quick overview of the Elixir language syntax, along with just enough functional programming to use it effectively. Then, you'll dive straight into OTP and learn how it helps you build scalable, fault-tolerant and distributed applications through several fun examples. about the technolo
スマートニュースのようなフリックでページを移動したり、タブをスクロールしてページを選ぶような感じのUI。 最近はかなり増えているので今更な感はありますが、アニマネ の次期バージョンでも導入を検討中です。 一から実装せずともいくつかライブラリがあるようなので、試してみました。 比較したライブラリ はじめにざっくりとした比較表を。 2015年9月前半に比較していたので、今はまた状況が変わっているかも知れません。 あくまで参考程度に見て頂ければと思います。 ※追記 下記のライブラリもオススメです。 言語 ライブラリ 言語 RMPScrollingMenuBarController Objective-C PageMenu Objective-C,Swift PagingMenuController Swift 対応OSバージョン ライブラリ バージョン RMPScrollingMenuBarCo
2. Adrian Cockcro3 • Director, Architecture for Cloud Systems, Ne6lix Inc. – Previously Director for PersonalizaMon Pla6orm • DisMnguished Availability Engineer, eBay Inc. 2004-‐7 – Founding member of eBay Research Labs • DisMnguished Engineer, Sun Microsystems Inc. 1988-‐2004 – 2003-‐4 Chief Architect High Performance Technical CompuMng – 2001 Author: Capacity Planning for Web Services
会員事業部の森田です。 対象と内容 この記事は、クックパッドと同じような200~300名規模の組織で働く、「最近調整が多くてコードを書く時間がないなぁ」と思い始めた30代エンジニアを対象として、日々の調整の負担を減らすための「考え」と「行動」を整理し、まとめたものです。 組織における分業と調整 組織に所属する人たちは協力して組織目標の達成を目指します。みんなで同じことをしてもしょうがないので、必然的に役割を分担(分業)をします。分担した仕事はなんらかのタイミングで統合する必要があります。その統合が調整です。つまり分業と調整はセットです。じゃどういう分業があるのかといえばそれは組織構造によります。今回は私達が採用している事業部別組織下*1 での調整の話をします。 分業の種類 事業部別組織では垂直と水平の2つの分業が存在します。それぞれに少し毛色の違う調整が発生するわけですが、いくつかのことを
こんにちは。 開発チームのウォーボーイズことめろたん(@renyamizuno_)です。 みんな!V8讃えてるぅ!? はい。 今回は前回まで続けていた便利なGem紹介をネタ切れのため一旦置いておいて、 Misocaのプルリクエストの運用について書きたいと思います! Descriptionのテンプレート 弊社ではプルリクエストのDescriptionを書くときのためのテンプレートが存在しています。 CONTRIBUTING.mdに、 ## 関連文書 * **** * 関連Pull request: xxxx ## 変更点概要 (どう変わるのかを簡潔に。 複数の変更を行なっているならPRを分割すること) ## 注意・伝達事項 * 今後の実装において注意すべき点や、使うと便利な点。 * 見てほしい箇所や、整合性が気になる箇所について。 * レビュー時の観点について:**** ## このPull
Using Recursion In Elixir To Break Your OO Brain September 04, 2015 | I have to start out each post this way: I have no idea what I'm doing, but dammit am I having fun. In the fist few posts I ham-handedly threw some code against the wall to see what would ... stick? Anyway It worked, but I realized (as I did with Ruby, wonderfully) that there just has to be a better way. I don't want to diminish
Apache kafka 最近仕事でApache Kafkaの導入を進めている.Kafkaとは何か? どこで使われているのか? どのような理由で作られたのか? どのように動作するのか(特にメッセージの読み出しについて)? を簡単にまとめておく(メッセージングはまだまだ勉強中なのでおかしなところがあればツッコミをいただければ幸いです). バージョンは 0.8.2 を対象に書いている. Apache Kafkaとは? 2011年にLinkedInから公開されたオープンソースの分散メッセージングシステムである.Kafkaはウェブサービスなどから発せられる大容量のデータ(e.g., ログやイベント)を高スループット/低レイテンシに収集/配信することを目的に開発されている.公式のトップページに掲載されているセールスポイントは以下の4つ. Fast とにかく大量のメッセージを扱うことができる Scal
2. クライアント実装サーバ実装 仕様 Web API にありがちなこと API ドキュメント リクエストレスポンス ぶっちゃけAPI の追加時く らいしか更新していない なぜかドキュメントにない属性が 含まれている 手が滑ってドキュメントと若干違う形式の 属性を含めちゃったけどなんとなく通った 3. クライアント実装サーバ実装 仕様 いまは API Blueprint で頑張ってる (http://apiblueprint.org/) API ドキュメント リクエストレスポンス Markdown の スーパーセット (ツラい) API Blueprint (YAML 表現) generate mockvalidate あんまり嬉しく ない なんか別に JSON Schema 書かない といけない
4. Agenda • 言語の紹介 – Erlang/Elixirの紹介 – エコシステムについて – 環境構築 • 弊社広告事業部での使われ方 – 利用モジュール – サービスの構成 • 所感 – 良い/悪い所 – ハマった所 • まとめ 5. Erlangの紹介 • 平行処理指向のプログラミング言語 • 分散化された環境 • 障害耐性(フォルトトレラント) • (ある程度の)リアルタイム性 • 無停止稼動(ホットスワップ) • ActorModel(Shared Nothing Artchitecture) • OTP(Open Telecom Platform) • 超軽量プロセス/メッセージング • GCはプロセスレベルで実行 • Prologチックなsyntax • Immutableな変数 • 単一代入変数(1回しか値を代入できない) • パターンマッチを多用(メッセージパッシ
高品質のコードベースは、反復作業やコラボレーション、メンテナンスを簡単にすることで、長期的な開発のスピードを上げてくれます。Quoraではベースコードの品質は重要だと考えます。 高品質のコードを維持することは利点がありますが、その反面かなりのオーバーヘッドが発生し、実際の開発のサイクルに時間が掛かってしまいます。このオーバーヘッドと利点の折り合いを付けるのは難しい問題です。この場合、2つの選択肢しかないように思えます。低品質でコードスピードが速いか、もしくは高品質でスピードが遅いか。スタートアップは素早い開発サイクルに最適化しているので、多くの人は低品質で進めたほうがいいと思っています。 このジレンマは解消できます。ツールやプロセスを工夫することで、コードベースの品質を維持したままスピードを速めることができるのです。この投稿では、コードの品質に関しての私たちの考えや、2つの世界を共存させる
このエントリで書いた内容は、ほぼ Growing Rails Applications in Practice の内容が元になっています。英語ですが、ここで挙げた内容以外にもコードを綺麗に保つテクニックが書かれており、かつページ数も少なく読みやすいです。コードを綺麗に保つのが好きな方は一読してみることをおすすめします。 はじめに Rails で fat model を避けるための方法は、7 Patterns to Refactor Fat ActiveRecord Models を始めとして、多くのやり方が存在します*1。 validation や callback は ActiveRecord(以下AR) を継承せずとも利用することができます。7 Patterns to Refactor Fat ActiveRecord Models の 「3. Extract Form Objects
(編注:2020/08/11、いただいたフィードバックをもとに記事を修正いたしました。) マイクロサービスのアーキテクチャスタイル がモノリシックアーキテクチャよりも優れたアプローチであるというのは、多くの開発チームが実感していることです。その一方で、生産性を低下させる重荷のようなものだと感じているチームも存在します。プラスの面もあればマイナスの面もあるという点においては、マイクロサービスも他のアーキテクチャスタイルと変わりません。具体的なコンテキストに適用する前に、これらをよく理解して、賢明な選択をする必要があります。 マイクロサービスがもたらす利点 強固なモジュールの境界 :マイクロサービスではモジュラー構造が強化されています。この点は、チームの規模が大きくなるほどその恩恵は増してくるでしょう。 個別にデプロイ :サービスがシンプルなほどデプロイは容易です。また、マイクロサービスではそ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く