タグ

ブックマーク / dev.classmethod.jp (19)

  • Developers.IO 2018 で「API 設計」の話をしてきた #cmdevio2018 | DevelopersIO

    緊張すると声がアムロ・レイになる都元です。 ここからしばらく、キャッチコピーの迷走期が始まりますのでよろしくお付き合いください。 さて、去る 10/5 (金) 秋葉原 UDX にて開催された Developers.IO 2018、その中で 「クラスメソッドにおける Web API エンジニアリリングの基的な考え方と標準定義」 という仰々しいタイトルで1講座持たせていただきました。 スライド 話したかったことと、話したこと セッションで話したかったことはだいぶ多岐にわたり、当然 40 分では話しきれないので、当初は次の 2 テーマに絞ってお話しようと考えてスライドを作っていました。 アプリケーション動作ログガイドライン RESTful / リソース指向 API 設計 しかし実際にスライドを作ってみると、それぞれで 40 分の規模となってしまい…。 ログの話は断腸の思いで見送りとさせていた

    Developers.IO 2018 で「API 設計」の話をしてきた #cmdevio2018 | DevelopersIO
    jqk77
    jqk77 2018/10/10
  • 第6回 Elasticsearch 入門 基本コンセプトを理解する | DevelopersIO

    これまでの記事でも Cluster や Node を始めとする Elasticsearch を構成する要素について触れているのですが、 文章だけでは理解しづらいところもあるので、今回は改めて Elasticsearch の基コンセプトについて図も交えて解説したいと思います。 それではさっそく。 Cluster は Node の集合 Cluster は 1つ以上の Node (Elasticsearch Server) で構成されます。Elasticsearch は検索トラフィックの増加とデータ量や書き込み速度の分散を Node を増やすことで対応することができます。 Index は RDBDatabase に近い概念 Elasticsearch の Index は、リレーショナル・データベースの Database に相当します。1つの Cluster に複数の Index を作成す

    第6回 Elasticsearch 入門 基本コンセプトを理解する | DevelopersIO
  • 【AWS】VPC環境の作成ノウハウをまとめた社内向け資料を公開してみる | DevelopersIO

    よく訓練されたアップル信者、都元です。今回のお題は久しぶりにVPCです。 この記事は、アップデート版が存在します。最新情報は【AWSVPC環境構築ノウハウ社内資料 2014年4月版を参照してください。 VPCを利用する理由 弊社で構築するAWSのサーバ環境は、一部の例外を除いて全てVPCを利用しています。 突然ですが、筆者はあまり大規模なシステムに携わった経験がありません。大規模なプロジェクトだと「数百数千台のサーバがラッキングされ、それが論理的なネットワークで区切られていて」「複数のデータセンターが冗長化された専用線で結ばれて」等、正直ちょっと想像つかない世界があるんだと思います。よくわかんないですが。 (c)John McStravick. (CC BY 2.0 Licensed) 逆に、小さなシステムであれば、月々数万円でレンタルサーバを借りて「1台のマシンの中にWebサーバとDB

    【AWS】VPC環境の作成ノウハウをまとめた社内向け資料を公開してみる | DevelopersIO
  • MySQL のサブクエリって、ほんとに遅いの? | DevelopersIO

    こんにちは、みかみです。 今日のクラスメソッドのAWSおみくじ、RDS(t1.micro)でしたー!(昨日は Aurora!@@v はじめに 前職@アプリ開発時、MySQL のクエリチューニングをさせていただく機会がありました。 ユーザー入力のキーワードで全文検索 → 見つかったレコードを返すのですが、所要時間、約3分。。 Apache タイムアウトして画面真っ白。。。(泣きそうでした><。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリの

    MySQL のサブクエリって、ほんとに遅いの? | DevelopersIO
  • AWS事業部の採用方針について | DevelopersIO

    主にクラスメソッドメンバーズにおけるサポートサービスとフートシリーズ(運用保守オプション)を担当するグループです。運用保守、システム監視、セキュリティ監視、継続的コンサルティングと、システム稼動後のお客様インフラを24時間365日体制で安定した状態に保つために日々お客様とやりとりしています。 このように、一つの部の中に担当業務が違う複数のグループがありますが、部全体のビジョンはただ一つ、「AWSに関する圧倒的な量のノウハウを用いて、AWSインフラを安く早く構築し、AWSのことをまるっとお任せしてもらうことで、お客様のビジネスに貢献する」です。そして同じビジョンを掲げたチームとして、採用方針もグループ毎に分けず、部として統一しています。 今回はAWS事業部の採用方針をご紹介します。 AWS事業部の採用方針 AWS事業部の採用方針は以下の3つです。 技術が好きな人を採る クラスメソッドはエンジ

    AWS事業部の採用方針について | DevelopersIO
  • RailsでAPIサーバを開発する(AngularJS, Ruby on Rails, SPA) | DevelopersIO

    RailsでJSONを返すAPIアプリケーションを3週間ぐらい試行錯誤しながら作成しています。少しですがノウハウも溜まってきたのでここにまとめておこうと思います。 今回のアプリケーションの構成は大体次のようになっています。 RailsAPIサーバ(一般公開するAPIではなくSPA(シングルページアプリケーション)のサーバとしてJSONを返却する。HTMLは返却しない) クライアントサイドはAngularJSで画面遷移、Viewの描画まで管理する DBMySqlSession管理はRedis(まだローカル開発なのであまり関係無い) チームはサーバサイド、クライアントサイドで完全に分担して二人で作成しています(自分はサーバサイド担当)。 このブログエントリーでは次のことを書きます。 APIのルーティングの設定(JSONのみ返すようにする方法) Session管理(CSRFトークンの受け渡

    RailsでAPIサーバを開発する(AngularJS, Ruby on Rails, SPA) | DevelopersIO
  • JMeterの実行結果CSVデータをローカルMacにたてたElasticsearchとKibanaで可視化する | DevelopersIO

    「JMeterの結果CSV、216万行か〜。これくらいだったらJMeterの「グラフ表示」で読み込んで見られるかな〜」 CPU「ブオオオオオオオオン!」 はじめに システムの負荷試験において、Apache JMeterのようなツールを使って試験を実施・結果を出力するケースもあると思います。結果ファイルのサイズがそれほど大きくない場合は、全データを計算する(JMeterでいう「統計レポート」)で問題ありませんが、例えば、長時間負荷をかけたので時系列でデータをグラフ化したい、といったことになると事情が変わってきます。JMeterの結果CSVは手元にあるので、なんとかこれを活用したいところではありますが、数百万行レベルのデータになると、とたんにExcelなどでは辛くなります(というか最大行数的に無理な気がします)。 そこで、ちょうど、弊社木戸がElasticsearchシリーズを連載しているとこ

    JMeterの実行結果CSVデータをローカルMacにたてたElasticsearchとKibanaで可視化する | DevelopersIO
  • 【社内資料公開】AWSトラブルシューティングページまとめ/より早い原因把握のために心がけること | DevelopersIO

    はじめに こんにちは植木和樹です。オンプレで10年近くサーバーの保守運用をやっていた経験からいいますと、AWSの障害発生率は非常に低くて驚きます。数百台規模のサーバーを扱ってますと、毎日どこかでのサーバーでディスク、CPUファン、メモリーパリティエラーなんかの故障が起きていて日々対応に駆けまわってた覚えがあります。 さてAWSの障害発生率が低いといってもゼロというわけではありません。仮に0.1%だとしても1000日つまり3年運用していれば1回くらい障害に遭遇するものです。0.01%だったとしてもサーバーが1万台あれば1日1回なにかしらのトラブルに遭遇しても不思議ではありません。 トラブルに遭遇すると、当然サービスや処理に影響をきたしてしまうわけで早期の暫定処置と、その後に恒久的な対策が求められます。その時に重要なのは早く正しく原因を特定することです。トラブルシューティング力が重要です。 A

    【社内資料公開】AWSトラブルシューティングページまとめ/より早い原因把握のために心がけること | DevelopersIO
  • S3バケットに含まれる全オブジェクトのCache-Controlを書き換える、一撃で! | DevelopersIO

    はじめに CloudFrontとS3オリジンを組み合わせたWebサイトを構築した場合、キャッシュ時間(TTL)を制御する際には、S3オリジンに配置されたオブジェクトのMetaDataにCache-ControlやExpiresを設定する必要があります。詳しくは都元の以下の記事を参照して下さい。 CloudFrontのキャッシュ時間(TTL)はどの程度なのか ただし、AWS管理コンソールでは、S3のオブジェクトを複数選択して一気にMetaDataを書き換えることは出来ません。ちまちまとGUIで操作するのは大変面倒臭い。 なので、これを一撃で書き換えるスクリプトをAWS SDK for Rubyを使って作りました。 やってみる スクリプトの内容はこんな感じです。 # Must be carried out in advance: # export AWS_ACCESS_KEY_ID='YOUR

    S3バケットに含まれる全オブジェクトのCache-Controlを書き換える、一撃で! | DevelopersIO
    jqk77
    jqk77 2015/05/30
  • NginxでCloudFrontにリダイレクトしてカスタムオリジンで負荷分散する | DevelopersIO

    既に運用中のWordPressなどのWebサイトを負荷分散/軽減させたい 既に運用中のWordPressなどのWebサイトに一切手を加えずに負荷分散や軽減をしたいと思いませんでしょうか。そんなとき、Nginxなどのリバースプロキシを入れてコンテンツの圧縮やキャッシュ設定をすることは前回ご紹介しました。今回は、さらに踏み込んで超大規模なアクセスがあったときにも負荷を分散&軽減できるようにCloudFrontというコンテンツ配信ネットワークサービスを用います。 CloudFront CloudFrontは、AWSが提供しているコンテンツ配信サービスです。主に、S3のオリジンバケットをエッジサーバに配備して負荷分散を行います。まずは配信したいファイルをS3においてからCloudFrontに登録手続きをする必要があったのですが、カスタムオリジンといって既に動いているWebサイトそのものを指定できる

  • [イベントレポート] iOS オールスターズ勉強会 #dotsios | DevelopersIO

    iOS オールスターズ勉強会の最速レポート公開! こんにちは、横山です。iOSエンジニアの方であれば、大注目のiOSオールスターズ勉強会の最速?レポートしたいと思います。 我らiPhoneアプリサービス事業部のエース平井も、今回のイベントで「エンジニア戦記 ~ 小さなチーム 大きな未来 ~を発表させていただいたので、是非スライドをご一読いただければと幸いです! 主催協力 今回のイベントは、dots.様、がイベントの企画・運営を主導していただき、加えて維新株式会社様が協賛運営いただき 今回のイベントを開催の運びとなったそうです。当日はdots.の方々に司会進行や受付など、イベント進行全般に関して大変お世話になりました。 �参加者も定員の370人を超えて、キャンセル待ちもでる。注目度の高いイベントになりました。 会場 会場は恵比寿駅から少し歩いた、綺麗なビルの9Fで、エントランスもオシャレでし

    [イベントレポート] iOS オールスターズ勉強会 #dotsios | DevelopersIO
  • [iOS] iOSのDelegateをしっかりと理解する | DevelopersIO

    iOS の通知を知る こんにちは、iPhone アプリ開発担当の荒川です。 この記事では iOS アプリでの「通知」について紹介します。 今回扱う「通知」とは、「プッシュ通知(Push Notification)」や「ローカル通知(Local Notification)」のことではなく、特定のインスタンスから別のインスタンスへ処理を委譲することを指します。 「委譲(いじょう)」と言われると何やら難しいことのように思えますが、あるクラスに書かれた何かの処理を他のクラスで処理する事だと思って下さい。 iOS アプリケーションでは以下の通知方法がよく使われます。 Delegate(処理の委譲) Key Value Observe(キー値監視) Notification Center(情報のブロードキャスト) この中の Delegate について、Objective-C での実装方法を交えて紹介し

    [iOS] iOSのDelegateをしっかりと理解する | DevelopersIO
    jqk77
    jqk77 2015/02/09
  • チーム開発で感じた大事にしたい要素8つ | DevelopersIO

    はじめに 普段はスマホアプリのチーム開発をメインでやってます。正直昔はチーム開発とかいう言葉自体好きじゃなかった‥はずの中2です(今は好きですよ)。そんな僕ですが、チーム開発でこれ大事にしないと回ないよな、と思った事を紹介します。今回はチーム開発を助けるツールの話しではなく、ふわっとした話しです。 大事にしたい要素8つ 1.現実を受け入れる 例えば期限に間に合わない → 頑張れば少しはマシになるはず。 少しマシになるかもしれないけど、遅れる可能性があるなら先にアラートを上げてる。特に開発者やステークホルダーが多い場合に自分(達)だけが頑張って解決する問題じゃなくなる。各ステークホルダーに予め連絡してその場合の準備をしてもらう必要がある。現実を見て落下地点を計測する。 2.情報はできるかぎり公開する ≒ 開かれたコミュニケーション 現実を受け入れるとも関連。良い悪いにかかわらずこまめに情報を

    チーム開発で感じた大事にしたい要素8つ | DevelopersIO
  • Amazon EC2再入門 2015年1月版 | DevelopersIO

    ウィスキー、シガー、パイプをこよなく愛する大栗です。 半年前に「Amazon EC2再入門 2014年7月版」と銘打ってEC2の記事を書きましたが、AWSらしい頻繁なアップデートによって古くなっている部分もあるので、記事もアップデートしようと思います。 最近EC2関連の重要アップデートが出てきました。嬉しい機能が増えているのですが、昔の知識では使いこなせないので、現時点でのEC2の起動方法について纏めようと思います。 起動手順 EC2を起動していきましょう。 AMIの選択 AMI(Amazon Machine Image)を選択します。 AMIの種類 Amazon Machine Image(AMI)には以下のような種類があります。 My AMI 自分で作成したAMIです。 AWS Marketplace Marketpkaceで公開されているAMIです。 Community AMI 他の

    Amazon EC2再入門 2015年1月版 | DevelopersIO
    jqk77
    jqk77 2015/02/02
  • [iOS] NYXImagesKit を使って UIImage を編集する | DevelopersIO

    NYXImagesKit 遅くなりましたが明けましておめでとうございます。年もよろしくお願い致します。 iOS アプリで画像のアップロード機能を実装するとき、UIImage のリサイズを行うことがよくあると思います。 こういった編集処理は一度実装してしまえばソースコードを使い回せば良いのですが、頼れるのであれば OSS に頼ってしまいたいところです。 そこで今回はiOSオープンソースライブラリ徹底活用にも紹介されている、画像編集の定番 OSS の「NYXImagesKit」を使って UIImage をリサイズする方法をご紹介したいと思います。なお NYXImagesKit はリサイズ以外にも編集機能が備わっているので、それらも一緒に解説します。 Nyx0uf/NYXImagesKit 導入方法 導入は CocoaPods を使うのが簡単です。Podfile に NYXImagesKit

    [iOS] NYXImagesKit を使って UIImage を編集する | DevelopersIO
  • 【Swift】iOS アプリ開発で使えるオススメのオープンソースライブラリまとめ

    Swift で使えるオープンソースライブラリ 2014年は新言語 Swift が登場し、iOS アプリ開発者にとってはかなり印象深い年になったのではないでしょうか。Swift の登場以後、さまざまな取り組みが iOS アプリ開発者の中で行われ、その結果の1つとしてオープンソースライブラリもかなり増えました。 Swift で一から書かれたものもあれば、既存のものを Swift でも使えるようにアップデートしてくれているものもあります。ある意味、混沌としている現状では「じゃあいまから Swift で iOS アプリ開発するときに何を使えば良いの!?」といったことになりかねません。ということで、現在までに公開されている Swift で使えるオープンソースライブラリを目的別にまとめてみました。 Swift アドベントカレンダーのために書いた記事なので、タイトルには「Swift 時代の」としています

    【Swift】iOS アプリ開発で使えるオススメのオープンソースライブラリまとめ
    jqk77
    jqk77 2015/01/04
  • [Ruby on Rails]画像をアップロード・ダウンロードするコントローラの呼び出しとRSpec | DevelopersIO

    はじめに 画像をアップロード・ダウンロードする処理をRuby on Railsで作成する際、画面がないなどの理由で、コンソールから画像をアップロードする事や、ControllerのRSpecにて動作を確認することがあります。 今回はそれらの具体的なソースと、簡単なRailsの実装について書いてみたいと思います。 1.今回作成するアプリについて 先に書いたように、画像をアップロード・ダウンロードする処理をRuby on Railsにて実装します。アップロードした画像はアプリサーバ内の/public/imgフォルダ内に保存します。ダウンロード時にはURLパラメータにてファイル名を指定し、/public/imgフォルダ内よりファイルを取得してクライアントに送る仕組みです。(ファイル名を直に指定するのは、サンプルなので簡略化するためです。) 2.ルーティング アップロード処理はarticles/u

    [Ruby on Rails]画像をアップロード・ダウンロードするコントローラの呼び出しとRSpec | DevelopersIO
  • レスポンシブデザインの簡単な確認方法 | DevelopersIO

    レスポンシブデザインのテストツール Webサイトへアクセスするデバイスは、スマートフォン、タブレット、PCなど、非常に多様化してきており、 レスポンシブWebデザインが重要になってきています。 対応デバイスが増えるということは、それに伴ってテストも大変になるということです。 そこで今回は、Webサイト作成の際に「iPad2だとどう見えるんだろう」といったケースで簡単に確認できるツール、 designmodo.com/responsive-testを紹介します。 使い方は簡単です。ここへアクセスし、 画面上部のテキストボックスに、対象のURLを記述しましょう。(http://localhostとかでもOK) そして、画面右のドロップダウンメニューから「iPad」とか「15" Macbook Pro」とかの対象デバイスを選択すれば、 そのデバイスでどう見えるか確認することができます。 また、確

  • Node.jsアプリ開発で参考になる記事 まとめ | DevelopersIO

    最近は弊社のブログにもNode.js関連の記事が増えてきました。私も勉強中なのですが、社内ブログを参考にさせてもらうことがよくあります。 毎回探すのもちょっと面倒なのでClassmethid.dev()内のNode.js関連の記事をジャンルごとにまとめてみました。 1年以上前の記事もあり、情報が古い可能性があるので注意して下さい。今後も新しい記事が追加されたら更新していこうと思います。 メール送信 node.jsのいろいろなモジュール3 - Nodemailer node.js上から簡単にメールの送信ができるモジュールの記事です。 ファイル関連 node.jsのいろいろなモジュール1 - node-gzip node.js上で簡単にgzip圧縮ができるモジュールの記事です。 node.jsのいろいろなモジュール4 - Node Basic FFmpeg ffmpegという動画と音声を変換す

    Node.jsアプリ開発で参考になる記事 まとめ | DevelopersIO
  • 1