タグ

ブックマーク / qiita.com (442)

  • マイクロサービスにおける障害と Failurewall - Qiita

    こちらは Scala Advent Calendar 2015 25日目の記事です。 Scalist の皆さん、一年間お疲れさまでした。 当記事の目的はマイクロサービス(に限らないですが)における失敗の怖さについて説明することと、それを克服するためのライブラリ、Failurewall を紹介することです。 障害は怖い 障害の連鎖 現代的な Web アプリケーションは多くの依存を抱えています。MySQL のようなデータベースに依存することもあれば、Twitter API のような外部サービスに依存することもあるでしょう。マイクロサービスを実践している環境では社内 Web API に依存していたり、あるいは他のシステムが自分のシステムに依存していたりするかもしれません。 このように優秀なミドルウェアや Web API を組み合わせることで、アプリケーションは高い性能を発揮したり、豊かな機能を提

    マイクロサービスにおける障害と Failurewall - Qiita
    s5ot
    s5ot 2016/01/13
  • 【React】「isMounted is an Antipattern」の邦訳 - Qiita

    React component の isMounted() は,component が DOM に描画されているかどうかを返すメソッドである.isMounted() は将来的に廃止されることが決定されており,ES6 の React.Component クラスを継承する component では既に利用できない. isMounted() のユースケースや移行手段について,React 公式ブログ に「isMounted is an Antipattern」という記事が投稿されていた.SPA で React を使う場合は向き合わなければならない問題なので,邦訳してみる. 邦訳:isMounted is an Antipattern by Jim Sproch isMounted の公式廃止に近づいてきたので,isMounted がなぜアンチパターンなのか,そして isMounted を使わないコ

    【React】「isMounted is an Antipattern」の邦訳 - Qiita
    s5ot
    s5ot 2016/01/12
  • Angular2のHttpモジュールを眺めてベストプラクティスを考える - Qiita

    @laco0416 です。今回はHttpモジュールの機能を眺め、アプリケーション中で使う際のベストプラクティス案みたいなものを考えていこうと思います。 なお、稿で扱うAngular2のバージョンはbeta.0です 基的な使い方 まずはざっとAPIリファレンスを眺めます。 https://angular.io/docs/ts/latest/api/ 重要なのは以下のシンボルです。 HTTP_PROVIDERS Http Request Response HTTP_PROVIDERSはHttpクラスのインスタンスをDIで取得するために必要なプロバイダのセットです。テストでモックサーバーなどを差し込みたい場合はこのプロバイダをいじくります。 HttpはAjaxの主役、いわゆるクライアントです。このクラスのメソッドでリクエストを送り、レスポンスを受け取ります。 RequestはHttpクラスが

    Angular2のHttpモジュールを眺めてベストプラクティスを考える - Qiita
    s5ot
    s5ot 2016/01/07
  • テストがないJS環境にモダンなテスト環境を導入していく - Qiita

    Qiita:Teamに投げた社内ドキュメントだったけど、特に問題ないのでQiitaにも投げる。 前提として browserify-rails とbabelify が導入されている状況を想定してる。 基方針 新規コードはES2015で書く 番はbrowserify(-rails)でコンパイルする。 単体テストは node 環境下で走らせる テスト環境下では jsdom で window, document をモックする 単体テストでは ブラウザ特有の挙動はテストしない 裏側の環境(browserifyやspec-helper)は難しくして良いが、利用者からみえる範囲は複雑にしない(npm install; npm testで走る) Universal JavaScript に寄せることでコードのポータビリティを上げる 事前準備 browserify-railsを導入する。 .babelr

    テストがないJS環境にモダンなテスト環境を導入していく - Qiita
    s5ot
    s5ot 2016/01/06
  • graphite, grafana, sitespeed.io, diamond で継続 Web パフォーマンスモニタリング - Qiita

    graphite, grafana, sitespeed.io, diamond で継続 Web パフォーマンスモニタリングgraphitegrafanadiamondperformancesitespeed.io Web のパフォーマンス継続モニタリング環境 intro Web の健康状態を把握するためには、きちんとしたモニタリング環境を整える必要がある。 正しくメトリクスが測定できていないと、正しくボトルネックの把握ができないし、チューニングの副作用も正しく把握できない、アプリの変更の影響もわからないし、負荷対策もできない。 単にパフォーマンスチューニングだけのためではない。が、パフォーマンスチューニングには必須、という関係。 そして、メトリクスは一回適当に取っただけでは正確とは言えず、やっぱり定期的な取得が必要になる。 この辺のノウハウは、サーバサイドではかなり成熟している。 しかし

    graphite, grafana, sitespeed.io, diamond で継続 Web パフォーマンスモニタリング - Qiita
    s5ot
    s5ot 2016/01/05
  • Electronを探す日常 - Qiita

    ごきげんよう皆様、精神が壊れてしまい休職中の erukiti ですが、第2のドワンゴ Advent Calendar 2015 - Qiita の第20日目を5日ほど遅れてお送りします。遅れてすみません。 erukiti/rize-filer 今回の記事は… さて、Electronの解説記事は割と多いですが、ちゃんと使えるアプリを作るために必要な情報は色々散らばっています。そこで今回はリゼ先輩&シャロちゃんと一緒に一つ一つそれらを見ていきましょう。ごちうさ風味の書き方ですが内容は普通にElectronの記事です。 Electronに興味があるけれどよく知らない方は 第8羽 トランスペアレントプレイング・プレイヤーストーリー (ごちうさ Advent Calendar 2015) - Qiita をまずはお読みください。Electron でちょっとした動画プレイヤーを作ってみるという記事でし

    Electronを探す日常 - Qiita
    s5ot
    s5ot 2015/12/25
  • TypeScript 1.6時代の.d.ts管理について意見を述べておく - Qiita

    おはようございますわかめです。 TypeScript 1.6でnode_modulesからの依存性解決が入りました。 まだ.d.tsより.tsが優先してlookupされる不具合などがありますが、実質上、型定義ファイルを自然な形でバンドルできるようになったのです。 npm installして使えば型定義が有効になっている。暖かいですね。 過渡期の機能の常として、複数のやり方がありいくつかのワークアラウンドが必要な場合があります。 ですので、ここではわかめが考える現在最も便利な運用について意見を述べていきます。 TL;DR ライブラリ作成側は 自力で.d.tsをメンテできる場合のみnpmパッケージに.d.tsをバンドルする 非TypeScriptユーザかつTypeScriptの型について詳しくなければ今のままDefinitelyTypedに丸投げのほうがよい .ts はnpm packageに

    TypeScript 1.6時代の.d.ts管理について意見を述べておく - Qiita
    s5ot
    s5ot 2015/12/22
  • TypeScriptで書くAurelia 最小構成 - Qiita

    期待の新MV*(MVW)フレームワークAureliaを、TypeScriptで書いてみたいと思います。 折角なので、Aurelia公式のGet StartedやNavigation Skeletonよりもシンプルなスケルトンをフルスクラッチで作成します。 この解説の成果物はこちらのリポジトリに用意してあります。 もっともフルスクラッチが目標なので、この解説を通して同じものが簡単に作れることを確認していただきたいです。 追記 2015/07/23 Visual Studio 2015の公開と、Aurelia型定義ファイルのテスト配布開始に伴い記事を更新しました。 なお色々試した結果として、以下の理由からASP.net 5 プロジェクトの採用は推奨しません。 Aureliaは基的にjspmを利用するが、新しい依存性管理システムはnpm/bowerにしか対応していないうえ、コマンドプロンプトよ

    TypeScriptで書くAurelia 最小構成 - Qiita
    s5ot
    s5ot 2015/12/22
  • Angular 2のカレンダー | Advent Calendar 2015 - Qiita

    About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    Angular 2のカレンダー | Advent Calendar 2015 - Qiita
    s5ot
    s5ot 2015/12/21
  • システム障害と僕達はいかにして戦えば良いのか、障害対応について考えた - Qiita

    IT界隈でエンジニアしていると、よく出くわすのが障害対応です。できれば会いたくないという人が多いと思うんですが、僕はけっこう好きです。障害対応。どこに原因があるのか調査をして、バランス良くベターな対応をしたときの楽しさは、プログラミングとはまた違ったものがあります。探偵っぽい感じが面白いですよね。もちろん、障害が発生しない状況を作るのが一番です 弊社では数多くのWebサービス/アプリを運営しているので、過去様々な障害対応をしてきました。その際に、解決までどんな道筋を僕がたどるのかを振り返ってまとめてみました。これが大正解なんてことはなく、人や事象によって違うとは思いますが。 なお、障害検知手法とか、サーバのコマンドとか、コードのデバッグ手法とか、具体的なことは一切出てきません。手続きと思考プロセス的な話です。 障害対応フローチャート 一般的な感じだと思いますが、障害報告から対応完了までのフ

    システム障害と僕達はいかにして戦えば良いのか、障害対応について考えた - Qiita
    s5ot
    s5ot 2015/12/21
  • 初心者がElixir Phoenix + MySQL でちゃんと公開できるJSON REST APIサーバーを作成するまで (Sana API Server) - Qiita

    初心者がElixir Phoenix + MySQL でちゃんと公開できるJSON REST APIサーバーを作成するまで (Sana API Server)ElixirPhoenix WEB+DB PRESS vol88&vol89のElixirの紹介が言語紹介の文章でいまだかつてないほどのわかり易さだったので Elixirド素人がElixirとPhoenixフレームワークを使ってちゃんと公開できるREST APIサーバーを作ってみるまでを紹介します。 これを読めばたぶん2時間ぐらいで任意のデータのREST APIサーバーが作成できます。 フル版のソース - github 実際に作成したAPIの仕様 放映中のアニメ公式 Twitterアカウントのフォロワー変動履歴情報を提供するRESTful API サーバーを作りました 作成テーマ要件 Elixir PhoenixフレームワークでRES

    初心者がElixir Phoenix + MySQL でちゃんと公開できるJSON REST APIサーバーを作成するまで (Sana API Server) - Qiita
    s5ot
    s5ot 2015/12/20
  • Web Frameworkとして検討する言語とフレームワーク - Qiita

    はじめに 今までは、Webアプリの開発というとRailsという感じでした。しかし、今日ではRailsを参考に多くのWeb Frameworkも登場しているので、それらについておすすめのものを検討してみます。 Ruby on Rails Rubyでは、RailsというWeb framework(Webフレームワーク)が有名ですね。 しかし、速度が遅いなどと言われているのが少し気になります。 Elixir on Phoenix Elixirでは、Phoenixがあります。Phoenix-frameworkは、Rails風なリッチなフレームワークである割にデフォルトでもそこそこ速いらしいです。 これは興味があったので試してみました。Dockerでやる場合は以下。

    Web Frameworkとして検討する言語とフレームワーク - Qiita
    s5ot
    s5ot 2015/12/20
  • Elixir初心者がOTPって結局なんなのか調べてみた - Qiita

    ずっとJava一筋で生きてきた僕が、最近Elixirに興味を持って色々触っています。 そんな中、色々なところで「OTPが強力」「OTPイケてる」みたいに言われていて、OTPってなんなんだろうとちょっと調べてみたんですが、結局わかったようなわからないような気持ちにしかなれませんでした。 ので、僕自身の理解向上と、そして僕みたいな迷える初心者さんたちのために一度ちゃんと調べたうえでまとめてみようと思いました。 まだまだ浅い理解で書いているので誤った記述もあるかもしれませんが、その際はご指摘いただければ幸いです。 また、具体的な活用方法など詳細については詳しい方々に譲るとして、今回はあくまで概略をざっくり書いていきます。 記事執筆にあたり、下記記事とすごいE、『Programming Elixir』、あと公式サイトなどを参考にさせていただきました。 [翻訳] ElixirにおけるOTPの紹介

    Elixir初心者がOTPって結局なんなのか調べてみた - Qiita
    s5ot
    s5ot 2015/12/17
  • png画像の圧縮には pngquant を使おう [Mac/Win] - Qiita

    Tips デフォルトのまま使うと、 圧縮前の画像を残したまま  圧縮した新しい画像 を作ってくれます。 例 pngquant image.png ↓ 「image-fs8.png」が新規作成される。 これはこれで良いですが、不要なファイルは消しときたいものです。 その場合は、オプションで色々指定出来ます。 // 同じファイル名で圧縮後上書きする pngquant --ext .png --force {your_dir}/*.png // 圧縮率を指定 (JPEGの圧縮率みたいなものらしい) pngquant --quality=65-80 {your_dir}/*.png // 圧縮スピード (1が最も遅く、10が最も速い。遅い方が圧縮率が高い、デフォルトは3) pngquant --speed 1 {your_dir}/*.png // IE6用 pngquant --iebug {y

    png画像の圧縮には pngquant を使おう [Mac/Win] - Qiita
    s5ot
    s5ot 2015/12/16
    “pngquant --ext .png --force --speed 1 {your_dir}/*.png”
  • しくじりグロースハック - Qiita

    はじめまして。freeeの@tetsuwadaと申します。 この記事は freee Engineers Advent Calendar 2015 15日目です。 freeeにはエンジニアの組織の中に「グロース」というチームがあります。 今日はこれまでの技術的な話しの流れと打って変わり、私がこのチームに入って1年間でやらかした数々のしくじりについて赤裸々に書いてみようと思います。 うまくいかないことを発見する 2010年頃からグロースハッカーという言葉が生まれ、今ではすっかりバズワードになってしまいましたが、そもそもグロースハックって何でしょう?freeeでは、グロースチームのミッションを次のように定義しています。 「freeeを継続して利用してくれるユーザーを増やすために、圧倒的な速さで枠にとらわれない施策を大量にリリースし改善を続けていく。それすなわち、エジソン。」 継続利用してくれるユ

    しくじりグロースハック - Qiita
    s5ot
    s5ot 2015/12/15
  • Node.jsの「構築事例」、そして「向いていること」と「向いてないこと」 - Qiita

    Node.jsはシングルスレッド、ノンブロッキングI/O、イベントループなどの特徴があり、「向いていること」と「向いていないこと」があると思います。 言語選定の際に使えるメモとして、Node.jsの構築事例も加えてまとめてみました。 Node.jsに「向いていること」 処理が短時間でイベント処理が重要なアプリ 例えば、チャットアプリなどの大量のアクセスのあるリアルタイムなネットワークプログラミングが得意 シングルCPUのサーバー シングルCPUの環境化でもその性能を十分使い切れるため、比較的性能の小さいサーバ上で大きなパフォーマンスを発揮できる Node.jsに「向いていないこと」 CPU負荷の高い処理 CPUリソースを大量に必要とするJavaScriptの処理を行うとイベントループが回らない状態になり、イベントハンドリングが行えない状態に陥る。このため、CPU処理が大量に必要とされるアプ

    Node.jsの「構築事例」、そして「向いていること」と「向いてないこと」 - Qiita
    s5ot
    s5ot 2015/12/15
  • Angular 2 @Inputのアレコレ - Qiita

    おはようございます、@armorik83です。今回はAngular 2の特徴的なAPIのうち@Inputを取り上げます。 稿執筆時点での最新バージョンはAngular 2 alpha.48なのですが、ビルドが通らない致命的な問題があったため、仕方なくalpha.47で動かしています。@Inputについてはa47, 48で破壊的変更はありません。 【追記151226】Angular 2 beta.0に対応しました。 @Inputとは @Input (Docs) は、Angular 2のComponentに属性を定義するAPIです。つまり、HTMLでの独自の要素に対して独自の属性を持たせることができます。

    Angular 2 @Inputのアレコレ - Qiita
    s5ot
    s5ot 2015/12/14
  • npm i angular2してHello World!するところまで - Qiita

    【160325追記】この記事はAngular 2 alpha時代に初稿を仕上げ、それ以降は変更にあわせて保守を続けていましたが、そろそろ差が大きくなってきたため改稿版として別の記事を用意しました。今後はそちらをご覧ください。 @armorik83です。初日である昨日は、このアドベントカレンダー最大のサプライズとして@btford氏に寄稿していただきました。アドベントカレンダーの立ち上げ直後からオファーし、日の「アドベントカレンダー」という特殊なTech系の事情を説明し、Angular 2のカレンダーをぜひ飾ってほしいという旨で依頼したことを覚えています。直前になって、時差で向こうはまだ11月なため日のカレンダー開始に気付いていなかった、という笑い話も乗り越え、公開にこぎ着けたことを喜ばしく思います。 Thank you so much for contributing! Angular

    npm i angular2してHello World!するところまで - Qiita
    s5ot
    s5ot 2015/12/02
  • Gitで今のブランチの派生元ブランチを特定する - Qiita

    $ git show-branch master fixes mhf * [master] Add 'git show-branch'. ! [fixes] Introduce "reset type" flag to "git reset" ! [mhf] Allow "+remote:local" refspec to cause --force when fetching. --- + [mhf] Allow "+remote:local" refspec to cause --force when fetching. + [mhf~1] Use git-octopus when pulling more than one heads. + [fixes] Introduce "reset type" flag to "git reset" + [mhf~2] "git fetch

    Gitで今のブランチの派生元ブランチを特定する - Qiita
    s5ot
    s5ot 2015/11/25
  • Goでwebサーバー作るときに考えたこと - Qiita

    Goでwebサーバーを作るときに考えたことをまとめておきます。 dockerコンテナで動かす場合を少し考慮してます。 フルスタックフレームワークか軽量系フレームワークか 最初に突きつけられる問題です。 フルスタックフレームワーク revel beego 軽量系フレームワーク goji negroni どんなフレームワークもそうですが、フルスタックなフレームワークならば、 その道に乗っかることで余計なことを考えずにすみます。 だけどその道から外れることをする場合に苦労が伴います。 golangの場合、Go初心者ならばフルスタックでもいいけれど、 ある程度Goに慣れてくると標準のライブラリといくつかのライブラリを使うだけで webサーバーを作る場合、十分な場合があります。 前にrevelを使っていたときは、最初はrevelの機能を使っていたけれど、途中で他のライブラリを使ったほうが楽なんじゃな

    Goでwebサーバー作るときに考えたこと - Qiita
    s5ot
    s5ot 2015/11/20