タグ

ブックマーク / qiita.com/jnchito (11)

  • コードレビューの極意。それは「自分のことは棚に上げる」こと!! - Qiita

    はじめに:コードを良くするためなら遠慮は不要 昨日Twitterに投稿した内容が思った以上に拡散されていたので、タイムラインに流れてしまわないようにQiitaにも書いておきます。 内容は上に書いてあるとおりです。 コードレビューはコードの問題点を指摘し、そのコードを良くすることが第一の目的です。 そのため、少しでもおかしいと思った部分は遠慮せずにどんどんツッコむ必要があります。 しかし、レビューする側が「これ、自分もあまりできてないんだよなあ」「お前もできてないじゃん!って言われたら返す言葉もないし・・・」などと思って遠慮してしまうと、コードを改善できるせっかくのチャンスが失われてしまいます。 「自分ができているかどうか」と「そのコードを改善すること」は、それぞれ別の問題です。 なので、レビューする人は自分のことを棚に上げてでも、コードの問題点を指摘する必要があります。 また、レビューされ

    コードレビューの極意。それは「自分のことは棚に上げる」こと!! - Qiita
  • モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita

    はじめに 他の人が書いたコードを読んでいるときに時々気になるのが、英語の間違いです。 特に動詞、名詞、形容詞の使い分けが間違っていたりすると、かなり違和感を感じます。 そこで今回はモデル(=クラス)やメソッドに名前を付けるときの基的な原則をまとめてみます。 また、英文法的に正しい品詞が選べるようになるための習慣についても最後に説明します。 想定する言語/フレームワーク この記事の説明ではRuby/Ruby on Railsを想定しています。 ただし、基的な考え方は他の言語でも同じように使えるはずです。 モデルの名前は名詞にする 例: 「支払い情報」を表すモデルを作りたい場合 × Pay ○ Payment 「支払う = payか。よし。」でモデルを作ってはいけません! payは動詞で、payの名詞形がpaymentです。 Payモデルではなく、Paymentモデルを作りましょう。 例:

    モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita
  • (翻訳)RubyGems.orgでgemが置き換えられる脆弱性とその緩和策について - Qiita

    はじめに この記事は2016年4月6日に公開された RubyGems.org gem replacement vulnerability and mitigation の日語訳です。 内容を見る限り、この脆弱性が実際に悪用された可能性は低そうですが、念のためgemの開発者やgemの利用者は一読しておくことをお勧めします。 翻訳の方針について 筆者はgem開発やセキュリティ問題にそこまで詳しくないため、一部翻訳に怪しいところがあるかもしれません。 また、翻訳は日語としての読みやすさを重視してところどころ意訳しています。 もし完全に間違った訳になっていたり、意訳しすぎて原文のニュアンスが変わってしまったりしているところがあれば、コメントや編集リクエスト等でやさしく指摘してやってください。 原文: RubyGems.org gem replacement vulnerability and

    (翻訳)RubyGems.orgでgemが置き換えられる脆弱性とその緩和策について - Qiita
  • サンプルコードでわかる!Ruby 2.3の主な新機能 - Qiita

    はじめに Ruby 2.3が2015年12月25日にリリースされました。 そこでこの記事ではRuby 2.3の主な新機能を紹介していきます。 対象となるバージョン 以下のとおり、この記事では ruby 2.3.0 を使っています。 参考文献 今回紹介するサンプルコードは下記のサイトにあったコードをベースにしています。 New features in ruby 2.3 - BlockScore Blog ただし、実行結果を確認するために Minitest を使ったり、コードをいくつか変更したりしています。 サンプルコードはGitHubにあります この記事で使ったサンプルコードはGitHubに置いてあります。 興味のある方は手元で動かしてみてください。 JunichiIto/ruby-2.3-sandbox それではここからRuby 2.3の新機能を紹介していきます。 深い階層にあるハッシュの

    サンプルコードでわかる!Ruby 2.3の主な新機能 - Qiita
  • 実用的な新機能が盛りだくさん!RSpec 3.3 完全ガイド - Qiita

    はじめに 2015年6月12日にRSpec 3.3がリリースされました。 APIが大きく変更されたり、派手な新機能が追加されたりはしていませんが、うまく活用するとテストを効率よく書いていけそうな実践的な新機能がたくさん導入されています。 この記事ではそんなRSpec 3.3の新機能を紹介していきます。 新機能一覧 RSpec 3.3で追加された主な新機能は以下の11個です。 これから各新機能の内容を紹介していきます。 特定のエクスペクテーション群をまとめて検証できる(aggregate_failures メソッド) グループやexampleをID指定して実行できる 失敗したテストだけを再実行できる(--only-failures オプション) 失敗したテストを1件ずつ修正できる(--next-failure オプション) テストが増減しても seed を指定したランダム実行が同じ順序で実行

    実用的な新機能が盛りだくさん!RSpec 3.3 完全ガイド - Qiita
    azumakuniyuki
    azumakuniyuki 2016/01/13
    --bisectで失敗する箇所の絞り込みが或る程度できる
  • Rails 5.0で追加される主な新機能(Ruby on Rails公式ブログより) - Qiita

    はじめに Rails 5.0.0.beta1が2015年12月18日にリリースされました。 また、それにあわせてRuby on Railsの公式ブログに主な変更点がまとめられています。(投稿者はあのDHH氏のようです) Rails 5.0.0.beta1: Action Cable, API mode, Rails command beta1がリリースされたということは、Rails 5.0の正式リリースもそろそろ近いということです。 (ちなみにRails 4.0ではbeta1の4ヶ月後に正式版がリリースされました。) Railsユーザーであれば、みなさん早かれ遅かれRails 5.0を使うことになると思うので、事前に予習しておきましょう! というわけで、上記の公式ブログの内容を翻訳してみました。 これを読めばRails 5.0でどういう変化が起きるのか、だいたい理解できるはずです! 翻訳の

    Rails 5.0で追加される主な新機能(Ruby on Rails公式ブログより) - Qiita
  • [初心者向け] RubyやRailsでリファクタリングに使えそうなイディオムとか便利メソッドとか - Qiita

    はじめに: 遠回りせずに「近道」を探す RubyRailsを始めたばかりの人は、もっと短く書く方法や便利な標準ライブラリの存在を知らずに遠回りした書き方をしてしまいがちです。 そこで、RubyRails初心者の人によく見かける「遠回り(または車輪の再発明)」と、それを回避する「近道」をいろいろ集めてみました。 2013.11.06 追記 この投稿を書くに至った経緯などを自分のブログに書きました。 こちらも合わせてどうぞ! 昨日Qiitaに投稿した記事は普段のコードレビューの副産物 - give IT a try Ruby編 以下はRubyの標準機能を使ったイディオムやメソッドです。 Railsプロジェクトでもそれ以外でも使えます。(Ruby 1.9以上を想定) 後置ifで行数を減らす

    [初心者向け] RubyやRailsでリファクタリングに使えそうなイディオムとか便利メソッドとか - Qiita
  • Effective Rubyのcatch/throwをproduct/findで書き換える - Qiita

    はじめに 最近、書籍「Effective Ruby」を購入しました。 まだ全部読み終わっていませんが、トリビア的な(?)知識がいろいろ載っていてRuby使いとしてはなかなか面白いです。 その中に catchとthrowを使ったサンプルコードが載っていたんですが、僕の場合catchとthrowって今まで使ったことがありません。 だいたいcatch/throwを使わなくても書けるんですよね~。 Effetive Rubyに載っていたコードもそんなパターンだったので、ちょっと書き直してみることにしました。 License 元のコードはBSD3ライセンスで提供されています。 Copyright and Authors ################################################################################ # This fil

    Effective Rubyのcatch/throwをproduct/findで書き換える - Qiita
  • RSpecのletを使うのはどんなときか?(翻訳) - Qiita

    はじめに RSpecにはletという機能があります。 これを使うとインスタンス変数を次のように置き換えることができます。 # インスタンス変数を使う場合 before do @user = User.new(name: 'Taro', email: 'taro@example.com') end it 'is valid' do expect(@user).to be_valid end # letを使う場合 let(:user) { User.new(name: 'Taro', email: 'taro@example.com') } it 'is valid' do expect(user).to be_valid end RSpecを使い慣れている人であれば、おそらくletを使うことが多いと思いますが、初心者の人には違いやメリットがよくわからないと思います。 また、使い慣れている人で

    RSpecのletを使うのはどんなときか?(翻訳) - Qiita
  • RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita

    RubyRailsにおけるTime, Date, DateTime, TimeWithZoneの違いRubyRails 2021.2.11追記:DateTimeクラスは非推奨なクラスになりました DateTimeクラスは非推奨なクラスとなり、DateTimeクラスではなくTimeクラスを使うよう、公式にアナウンスされました。 参考1 But we consider use of DateTime should be discouraged. - matz (Yukihiro Matsumoto) https://bugs.ruby-lang.org/issues/15712#note-4 参考2 DateTime は deprecated とされているため、 Timeを使うことを推奨します。 https://docs.ruby-lang.org/ja/latest/class/DateT

    RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita
  • 使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita

    はじめに RSpecは難しい、よくわからない、といったコメントをときどき見かけます。 確かにちょっと独特な構文を持っていますし、機能も結構多いので「難しそう」と感じてしまう気持ちもわかります。 (構文については僕も最初見たときに「うげっ、なんか気持ちわるっ」と思った記憶がありますw) しかし、RSpecに限らずどんなフレームワークでも同じですが、慣れてしまえばスラスラ書けますし、実際僕自身は「RSpecって便利だな-」と思いながらテストコードを書いています。 そこでこの記事では、僕が考える「最低限ここだけを押さえていれば大丈夫!!」なRSpecの構文や、僕が普段よく使う便利な機能をまとめてみます。 具体的には以下のような構文や機能です。 describe / it / expect の役割 ネストした describe context の使い方 before の使い方 let / let!

    使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」 - Qiita
  • 1