タグ

ブックマーク / qiita.com/awakia (8)

  • コードレビューの際に気をつけること - Qiita

    コードレビューをする際と、してもらう際に気をつけるべきだと思っているをまとめておきます。 レビュイーとして大切なこと コードレビューをお願いする前に レビュアーが高いパフォーマンスを発揮するためには、レビューを受ける人の心構えと事前の打ち合わせが実は最も大切です。 特に大きめの変更のコードレビューをお願いする前にすると良いこととしては、 まず、レビュアーを確保する そのレビュアーと大まかな設計の合意をとる という方針でやっていくのが良いです。 レビューしていても、根をひっくり返すような指摘はしにくいですし、したとしても、それなら1から書いたほうがはやくて良い物が出来るといったことが簡単に起きます。 「レビュー後に直せるもの < レビュー前に直せるもの」 ということを意識して、Issueなどを用いて、出来る限り事前に設計、打ち合わせをしましょう。そうすればレビュアーもすんなりレビューできる

    コードレビューの際に気をつけること - Qiita
  • PostgreSQLで各テーブルの総サイズと平均サイズを知る - Qiita

    DBを使っている時、どのテーブルがどのくらい容量をっているか知りたいことがあると思う。 また今後のサイズ増加を見積もりたいとき、あるテーブルの1行あたりの平均バイトサイズも知りたいはず! PostgreSQLで見るべきところ pg_classのテーブルの relpagesがブロック数 reltuplesが行数 を表すらしい。 これらは実際にはプランナが用いる推測値。ANALYZEコマンドを打つとこれらの統計情報が更新されるので、ANALYZE直後にやるほうが正確。まぁ大抵、概算が知りたいだけなのであまり気にする必要ないかもしれないが。 ブロックサイズは8K(SHOW block_size;で確認可能)なので relpages / 128Mbytesのサイズを占領しているということ。 平均サイズは、バイト数で知りたいのでrelpages * 8192 / reltuplesすれば良い。0割

    PostgreSQLで各テーブルの総サイズと平均サイズを知る - Qiita
  • with_indexが便利だという話とstable_sort_by - Qiita

    Rubyはいろんなことがone lineで書けて便利ですよね。 いろんなことを1行に書けるようにするには String, Array, Hash, Enumerable あたりの、リスト系の構造になったものにどういうメソッドがあるかを覚えておけば、たいていのことは1行で書けます。 今回の話は、これに加えて、 Enumerator のメソッドも知っておくともっと世界が広がるよという話です。 map_with_indexが欲しい! 例えば、あるユーザーのリストに対して、名前の前に通し番号をふった文字列を出力したい(あんまり無さそうな例でごめんなさい)という要求があったとしましょう。 それをただ出力すれば良いのであれば、each_with_indexを使って users.each_with_index do |user, i| puts "#{i+1}: #{user.name}" end とす

    with_indexが便利だという話とstable_sort_by - Qiita
  • 開発フロー研修 @ Wantedly - Qiita

    Githubでの開発 - Issue, Commit, Pull Request, Mention, Code Reviewに関する基的なルール ゴール 「 チーム で 長期にわたって 生産性を上げる 」 前提 みんながサービス・プロダクトについて自主的に考える組織 エンジニア全員がそれぞれオーナーシップを持ってよりプロダクトを良くすることを考える いわゆるPM職の不在 = コードは書かずに、マネージだけする人がいない これは組織による。(e.g. 外注やディレクター職の存在) けれど、Wantedlyは、多少変化しつつも、より良いサービスを生み出すために、役割の程度の差はあれ全員がプロダクトについて考え責任を持ったほうが良いと考えている。 理想型 図:「青と黄色」のチーム構成が従来の縦割り+統括チーム、「緑(金)色」のところが目指すべきマイクロサービスチーム マイクロサービスチームは、

    開発フロー研修 @ Wantedly - Qiita
  • Ruby/Railsでの高速化の際に使うgem達 - Qiita

    1. ベンチマーカー プロファイルすると、プロファイル自体に時間がかかるので正しく速度が測れない。そのためベンチマーカーも使うと良い。 ただし、ベンチマーカーはどこが遅いか等の解決の糸口は教えてくれない。 benchmark-ips 2. プロファイラ 実際に速度のボトルネックを見つける際に使う。 stackprof どのメソッドに多くの時間を費やしているかがわかる これを入れても速度にさほど影響がない rblineprof 行ごとにかかっている時間を出してくれる peek-rblineprofを使うとブラウザで結果が見れる ただしプロファイリングに結構時間がかかる (3. NewRelic) 実際、これらのことを手元でやらなくても、特にstackprof的なことや、どこのページやどのSQLクエリが特に遅いかなどは、 New Relic がやってくれます。お金を払うと結構詳細な部分も見れま

    Ruby/Railsでの高速化の際に使うgem達 - Qiita
  • RailsアプリでPDFを出力する (Heroku対応) - Qiita

    wicked_pdfというGemを使うとHTMLを元にPDFを生成できるのでこれを使う。 Gem wicked_pdfは、wkhtmltopdfコマンドを叩くという実装になっているので、まずはそのバイナリをインストールする必要がある。 普通にインストールしてもいいのだが、wkhtmltopdf-binary gemで入れることをお薦めする。これで、wkhtmltopdfをインストールする必要があることを知らない他のメンバーのPCでも動き、Herokuでも動くアプリになる。 結果Gemfileは以下のようになる。

    RailsアプリでPDFを出力する (Heroku対応) - Qiita
  • RailsでいろんなSNSとOAuth連携/ログインする方法 - Qiita

    Deviseというgemのomniauthableを利用して、いろんなOAuth提供元サービスと連携orそのサービスを用いたログインを実現する方法。 こういうことやりたい人結構いるんじゃないかと思って、Wantedlyで実際にやってみた経験を大公開!! Gemのインストール deviseと各providerのomniauth関連Gemをインストール gem 'devise' gem 'omniauth' gem 'omniauth-facebook' gem 'omniauth-github' gem 'omniauth-google-oauth2' gem 'omniauth-hatena' gem 'omniauth-linkedin' gem 'omniauth-mixi' gem 'omniauth-twitter' とりあえず、omniauth-'provider'でググって出て

    RailsでいろんなSNSとOAuth連携/ログインする方法 - Qiita
  • Railsで、URLにIDでなく名前を入力して、アクセスする方法 - Qiita

    でアクセスできるようにする。 単純にURLのかっこ良さが上がる気がするし、文字列でのアクセスのみ受け入れるようにしたら、サイトの持っている情報のスクレイピング対策にもなる。 例として、適用するモデル名をUser、urlに使用するカラム名をcanonical_nameとする。ここではidとcanonical_nameのどちらでもアクセスできるようにする例を書く。 モデル側のコード class User < ActiveRecord::Base validates :canonical_name, uniqueness: { case_sensitive: false }, format: { with: /^[A-Za-z][\w-]*$/ }, length: { minimum: 3, maximum: 25 } def to_param canonical_name ? canonic

    Railsで、URLにIDでなく名前を入力して、アクセスする方法 - Qiita
  • 1