タグ

ブックマーク / qiita.com/kidach1 (7)

  • TwilioとRailsで、1通1円のSMS認証を実装してみる - Qiita

    3行まとめ Twilioなら、自分だけの電話番号を簡単取得。 SMS受信のタイミングで任意のAPIをキックしてくれます。送信者の情報も取得できるので、それを用いて認証機能を実現。 コストは1通(1認証)あたり1円!(ただし最初にチャージが必要なので初期投資2000円から) 概要 SMS認証とは ユーザ登録を行うメディアにおいて、 不正なユーザ(いわゆる複アカなど)の防止策として有効な対策の一つです。 例えばこちら等。 FullCourt https://www.fullcourt.co/ja/docs/samplecode/smsauthentication ざっくり言うと、 ユーザは認証画面で電話番号を入力 メディアサーバは、SMS認証サービスへSMS送信依頼 SMS認証サービスはユーザのスマホ/携帯電話にSMSを送信 ユーザはSMSで送られてきた認証トークン(パスワード)を見て、認証画

    TwilioとRailsで、1通1円のSMS認証を実装してみる - Qiita
  • Rubyによるデザインパターン5原則 - Qiita

    概要 改めて基を学ぶ。 Rubyによるデザインパターン第1章。 デザインパターンとは プログラミングにおいて繰り返し現れる問題に対する、適切解のパターン。 無駄無く設計されたオブジェクト指向プログラムの実現をサポート。 パターンとしてカタログ化されていることで 車輪の再発明を防ぐ デザインパターンの根底にある5つの考え 変わるものを変わらないものから分離する プログラムはインターフェイスに対して行う(実装に対して行わない) 継承より集約 委譲、委譲、委譲 必要になるまで作るな(YAGNI) 変わるものを変わらないものから分離する ソフトウェアの仕様には必ず変更が加わるもの。 変わるものと変わらないものを分離しておくことで、 「仕様の変更」に対して「システムの変更」を出来る限り局所的にする。 プログラムはインターフェイスに対して行う(実装に対して行わない) 可能な限り「一般的・抽象的なもの

    Rubyによるデザインパターン5原則 - Qiita
  • [Ruby] メタプログラミングの入り口、オープンクラスを理解する - Qiita

    概要 メタプログラミングRuby勉強録。 今回のトピックはメタプログラミングの代名詞の一つ、オープンクラスです。 オープンクラスとは 既存するクラスを好きな場所で再オープンし、 メソッド修正・追加など任意の変更を加えられる機能のこと。 例えば 以下のような文字列操作メソッドがあったとします。 def love_ruby(str) str + ' I love Ruby!' end love_ruby('My name is kidachi.') => "My name is kidachi. I love Ruby!"

    [Ruby] メタプログラミングの入り口、オープンクラスを理解する - Qiita
  • [Rails] RSpecのリファクタリング - Qiita

    Ruby on Rails Tutorialのエッセンスを自分なりに整理してみる7 Railsにおけるリンクの記述方法とそのテスト http://qiita.com/kidachi_/items/d704e7eb63513c3831ae の続き。 Ruby on Rails Tutorial(chapter5) http://railstutorial.jp/chapters/filling-in-the-layout#sec-layout_exercises Rspecのリファクタリング 指定のページが指定の要素を持っている(もしくはいない)かをチェックするテストコード。 require 'spec_helper' describe "Static pages" do describe "Home page" do it "should have the h1 'Sample App'"

    [Rails] RSpecのリファクタリング - Qiita
  • 大規模Node.jsを支えるロードバランスとオートスケールの独自実装(FRPもあるよ) - Qiita

    というテーマで東京Node学園祭2015でセッションさせて頂くことになったので、先に整理/メモ的ななにかを。 (追記)以下資料で発表しました。 大規模Node.jsを支える ロードバランスとオートスケールの独自実装 http://www.slideshare.net/kidach1/nodejs-54841327 作ったもの ・スマホゲーム(マルチプレイアクション) 【公式】メザマシフェスティバル(メザフェス) | 株式会社アカツキ https://mezamashi-festival.aktsk.jp ・2D横スクロール ・マルチプレイ ・4人同時対戦 ・座標同期型 ・全国マッチング システム概要 Client: Cocos2d-x (c++) Server: API Server:Rails Websocket Server:Node.js 詳しくは スマホアプリにおけるマルチプレイア

    大規模Node.jsを支えるロードバランスとオートスケールの独自実装(FRPもあるよ) - Qiita
  • Ruby block/proc/lambdaの使いどころ - Qiita

    (2015/10/13追記) 今なら、他言語には無名関数やcallback関数というものがありますねとか、イベント駆動の世界を覗いてから戻ってくるとより腑に落ちるかもしれませんとか、もう少し全体観の中で説明する気がしますが、当時は記事の様な理解が役に立ったことは事実なので、引き続き公開を続けます。 (2013/11/29追記) block_given? について Twitter上で「Kernel.#block_given?についての解説があってもよさそう」と 指摘を頂きましたので、文下部に追記しました。 概要 Ruby on Rails Tutorialのエッセンスを自分なりに整理してみる4 Railsを触る際知っていると便利なRubyの基礎 [ブロックとかシンボルとか] http://qiita.com/kidachi_/items/46a6e49b6306655ccd64 の続き。

    Ruby block/proc/lambdaの使いどころ - Qiita
  • 最近のjs非同期処理 PromiseとGeneratorの共存 - Qiita

    (2015/10/21追記) 記事を書いてから半年経ちましたが、最近はRxの良さを理解したり、ES7のasync/awaitがbabelによって実用的になりつつあったり等、またもやベストプラクティスとはなんだったのか状態です。とはいえ、いまのところPromiseは非同期処理の土台であり続けそうですし、Generatorもasync/awaitへの足がかりとして知っておくことのメリットは大きいかと思いますので、引き続き公開させたままとさせて頂きます。 (追記ここまで) 数ある非同期処理のプラクティスを試してみて、だいたいこれが良いんじゃないかというパターンが固まったので書きます。効用はコールバック地獄からの脱出と結局非同期どれが良いの感の払拭。ES6寄りです。 前提知識 JavaScript Promiseの http://azu.github.io/promises-book/ ジェネレ

    最近のjs非同期処理 PromiseとGeneratorの共存 - Qiita
  • 1