Upgrade to Pro — share decks privately, control downloads, hide ads and more …

今年 会社でのレビューで話した事

Ryz310
December 13, 2019

今年 会社でのレビューで話した事

レビューでクラスの設計がムズいという声を受けて幾つか社内で解説をしたのですが、今日はその中から一部を抜粋して持ってきました。

Ryz310

December 13, 2019
Tweet

More Decks by Ryz310

Other Decks in Programming

Transcript

  1. 銀座 RAILS に 3 回登壇しました 銀座 RAILS に 3 回登壇しました

    銀座 Rails #07, Mar. 26 rubocop_challenger という gem を作った 銀座 Rails #10, June 21 My API Client 銀座 Rails #16, Dec. 13 今年 会社でのレビューで話した事 ← New!!!
  2. RUBOCOP_CHALLENGER という GEM を RUBOCOP_CHALLENGER という GEM を 作った (#07)

    作った (#07) https://github.com/ryz310/rubocop_challenger
  3. MY API CLIENT (#10) MY API CLIENT (#10) class ExampleApiClient

    < MyApiClient::Base endpoint 'https://example.com/v1' error_handling status_code: 200, json: { '$.errors.code': 10 }, raise: MyApiClient::ClientError attr_reader :access_token def initialize(access_token:) @access_token = access_token end # GET https://example.com/v1/users def get_users(condition:) https://github.com/ryz310/my_api_client
  4. def call(env) [ 200, # (Integer) { 'Content-Type' => 'text/plain'

    }, # (Hash) ['Hello World'] # (String ] end
  5. ヘッダから JWT を検証する処理は で実装する。 class ApplicationController < ActionController::API before_action :verify_authentication_header

    def verify_authentication_header decode_authentication_header rescue InvalidAuthenticationScheme render status: :bad_request rescue VerificationFailed, Expired render status: :unauthorized end end
  6. 拙作の も DSL Pattern です(宣伝) class ExampleApiClient < MyApiClient::Base endpoint

    'https://example.com/v1' error_handling status_code: 200, json: { '$.errors.code': 10 }, raise: MyApiClient::ClientError https://github.com/ryz310/my_api_client