タグ

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

  • モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita

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

    モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita
  • Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita

    Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜RubyrbsSteepTypeProf はじめに Ruby 3.0ではRubyのコードに型定義情報を提供するRBSという仕組みが導入されます。 この記事では簡単なサンプルプログラムを通して、RBSとその周辺ツールの使い方や役割を説明します。 なお、説明する内容はあくまで初歩的な内容です。予めご了承ください。 動作確認時の実行環境 記事の執筆時点ではまだRuby 3.0は正式にリリースされていません。 正式リリース時、または今後のバージョンアップによってこの記事の内容と実際の挙動が異なる可能性もあります。 記事の執筆時に使用した実行環境は以下のとおりです。 Ruby 3.0.0dev (2020-11-13T16:46:08Z master 782621054

    Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita
  • (アンチパターン)Railsの本番環境でローカル環境と同じエラー画面を表示させる - Qiita

    アンチパターン ソフトウェア開発におけるアンチパターン (英: anti-pattern) とは、必ず否定的な結果に導く、しかも一般的に良く見られる開発方式を記述する文献形式を言う。 アンチパターン - Wikipedia はじめに ローカル環境(開発環境)でRuby on Railsアプリケーションの開発をするとき、エラー(例外)が発生すると以下のようなエラー画面が表示されます。 しかし、番環境にRailsアプリをデプロイすると、ローカル環境のようなエラー画面は表示されず、デフォルトでは"We're sorry, but something went wrong."というようなエラーメッセージが表示されます。 ローカル環境のエラー画面では、エラーが発生した行やスタックトレース等の情報が豊富に表示されるので、デバッグに役立ちます。 一方、番環境ではそういった情報がまったく表示されないた

    (アンチパターン)Railsの本番環境でローカル環境と同じエラー画面を表示させる - Qiita
  • RailsのAction XxxやActive Xxxはどんな命名基準で使い分けられるのか - Qiita

    はじめに:ActionとActiveの命名基準は何? Railsフレームワークの内部には以下のようなコンポーネント(クラス群)が用意されています。 Action Cable Action Mailer Action Pack Action View Active Job Active Model Active Record Active Storage Active Support 各コンポーネントのPrefix(接頭辞)はよく見ると、ActionとActiveの2種類があります。 ActionとActive、どちらも最初の4文字が同じなので、ぱっと見で違いが分かりづらいですし、どんな基準で名前が使い分けられているのかよくわかりません。 僕もときどき「あれっ、Action Storageだっけ?それともActive Storage??」と迷うことがよくありました。 というわけで、Rails

    RailsのAction XxxやActive Xxxはどんな命名基準で使い分けられるのか - Qiita
  • テストコードの期待値はDRYを捨ててベタ書きする ~テストコードの重要な役割とは?~ - Qiita

    はじめに みなさん、DRY原則はご存知でしょうか? DRY = Don't repeat yourselfの略で「繰り返しを避けること」という意味ですよね。 良いコードを書くための重要かつ基的な原則なので、みなさんよくご存知だと思います。 ですが、DRY原則はテストコードを書く場合は必ずしも最善にはならない場合があります。 他の人が書いたテストコードを見ていると、テストコードにDRY原則を適用したために、かえって悪いコードになっているケースをときどき見かけます。 この記事ではなぜテストコードをDRYにすると良くないのか、ということを説明します。 追記:タイトルを変更しました @t_wada さんのコメントを受けて、タイトルを見直しました。 「テストコードはDRYを捨ててベタ書きする」 => 「テストコードの期待値はDRYを捨ててベタ書きする」 【注意】この記事は画一的なテストコードの書き

    テストコードの期待値はDRYを捨ててベタ書きする ~テストコードの重要な役割とは?~ - Qiita
  • システムスペックやフィーチャスペックで「〜が表示されないこと」だけを検証するのはちょっと危険、という話 - Qiita

    はじめに あなたは現在開発中のRailsアプリケーションでUserを削除する機能をテストしたいとします。 このアプリケーションではUser一覧画面に表示されている"Destroy"リンクをクリックすると、Userを削除できます。 ↓ そこであなたはRSpecで次のようなテストコード(システムスペック)を書きました。 RSpec.describe "Users", type: :system do let!(:user) { User.create! name: 'Alice' } example 'Delete user' do visit users_path # 削除前には"Alice"が表示されている expect(page).to have_content 'Alice' # 削除を実行する click_link 'Destroy' # 削除が完了すると"Alice"は画面に表示さ

    システムスペックやフィーチャスペックで「〜が表示されないこと」だけを検証するのはちょっと危険、という話 - Qiita
    alcus
    alcus 2020/02/04
  • サンプルコードでわかる!Ruby 2.4の新機能と変更点 - Qiita

    はじめに 2016年9月にRuby 2.4のpreview2が、11月にpreview3が、12月11日にrc1がリリースされました(参考1、参考2、参考3)。 僕は早速インストールして新機能を試してみましたが、みなさんはいかがでしょうか? というわけで、この記事では僕が実際に動かして確認したRuby 2.4の変更点や新機能をサンプルコード付きでまとめます。 この記事は大きく分けて次のセクションに分かれています。 文法上の変更点 後方互換性が失われる変更点 パフォーマンス改善 オブジェクト全般の新機能 主に数値に関連する新機能 主に文字列・正規表現に関連する新機能 主に配列・ハッシュに関連する新機能 ディレクトリやファイルに関連する新機能 その他の標準ライブラリに関連する新機能 スレッドに関連する新機能 なお、Ruby 2.4は2016年12月25日にリリースされる予定です。 記事はrc

    サンプルコードでわかる!Ruby 2.4の新機能と変更点 - Qiita
  • 「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - Qiita

    はじめに テストコードを書くことは重要です。 テストコードがないアプリケーションよりもテストコードがあるアプリケーションの方が望ましいことは間違いありません。 ですが、テストコードも書き方を間違えると、アプリケーションが壊れているのに正しく検知できないテストを書いてしまう可能性があります。 この記事ではそんな「アプリケーションが壊れているのに正しく検知できないテスト」のコード例を「〜するべからず(〜してはいけない)」の形式で紹介し、その修正方法を説明していきます。 サンプルコードはRSpecで書いてます(でも他の言語でも考え方は同じはず) サンプルコードはRailsアプリケーションをRSpecでテストする場合を想定したものになっていますが、基的な考え方自体は他の言語やテスティングフレームワークでも適用可能なはずです。 RSpecのイロハについて先に学んでおきたいかたは「使えるRSpec入

    「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - Qiita
  • 【Rails】ひらがな入力を必須にして海外スパムボットによるお問い合わせフォーム送信を禁止する - Qiita

    はじめに 僕のはパン屋をやっていて、僕はそのWebサイトを開発・運用しています。 Webサイトにはお問い合わせフォームがあるのですが、どこからともなくボットがやってきて、「あなたのサイトのプロモーションをお手伝いします!」みたいな英語のメッセージを送信してきます。 たとえばこんなメッセージです。 Hi my name is Livia Schacter and I just wanted to send you a quick note here instead of calling you. I came to your Contact - Coupé Baguette クープ バゲット website and noticed you could have a lot more hits. I have found that the key to running a successfu

    【Rails】ひらがな入力を必須にして海外スパムボットによるお問い合わせフォーム送信を禁止する - Qiita
  • サンプルコードでわかる!Ruby 2.7の主な新機能と変更点 Part 2 - キーワード引数に関する仕様変更 - Qiita

    サンプルコードでわかる!Ruby 2.7の主な新機能と変更点 Part 2 - キーワード引数に関する仕様変更Ruby はじめに Rubyは毎年12月25日にアップデートされます。 Ruby 2.7については2019年11月23日にpreview3がリリースされました。 Ruby 2.7.0-preview3 リリース この記事ではRuby 2.7で導入される変更点や新機能について、サンプルコード付きでできるだけわかりやすく紹介していきます。 ただし、Ruby 2.7は多くの新機能や変更点があり、1つの記事に収まらないのでいくつかの記事に分けて書いていきます。 記事で紹介するのはキーワード引数に関する仕様変更です。 キーワード引数以外のRuby 2.7の新機能や変更点はこちら Ruby 2.7ではパターンマッチ以外にもさまざまな新機能や変更点があります。 それらについては以下の記事で紹介

    サンプルコードでわかる!Ruby 2.7の主な新機能と変更点 Part 2 - キーワード引数に関する仕様変更 - Qiita
  • 【トリビア】Rubyにおける3連引用符(ダブルクオート3つ)は何を意味しているのか? - Qiita

    どうですか?想像通りの結果になりましたか? それではまた。ごきげんよう。 ・・・ではなくて、上のコードに出てきた3連引用符(""")ってみなさん知ってましたか? Rubyを長年やってる人もあまり見たことはないんじゃないでしょうか。 というか僕も最近知りました。 """ の種明かし 「Rubyに """ なんていう構文はあったっけな〜?🤔」と思ってネットや書籍を調べても、たぶんそんな構文はどこにも載っていないと思います。 これ、実は""" = "" + "の意味になっているだけなんです。 つまり、先ほどのコードはこう書いているのとほぼ同じです。

    【トリビア】Rubyにおける3連引用符(ダブルクオート3つ)は何を意味しているのか? - Qiita
  • Homebrewのruby-buildの更新を待たずにrbenvで最新版のRubyをインストールする方法 - Qiita

    はじめに Homebrewでrbenvとruby-buildの組み合わせでRubyをインストールしている場合は、以下のコマンドで最新版のインストールパッケージを取得することができる。 ただし、最新のruby-buildがHomebrewに反映されるまでには数日かかることがあるため(※)、最新バージョンのRubyがリリースされてもすぐにインストールできないことがある。 ※ 参考情報 ruby-buildの更新に時間がかかるのは、HomebrewへのPull request(以下PR)の作成とマージが必要になるから。 → 例:ruby-build 20191205のPR Homebrewの更新を待たずにすぐにインストールしたい場合は、以下の手順で自力で最新版のインストールパッケージをセットアップすることができる。(2019.12.26追記:@sakuroさんのコメントを参考にして以下の手順を全

    Homebrewのruby-buildの更新を待たずにrbenvで最新版のRubyをインストールする方法 - Qiita
  • サンプルコードでわかる!Ruby 2.7の新機能・パターンマッチ(後編) - Qiita

    はじめに 記事はRuby 2.7の新機能であるパターンマッチ(もしくはパターンマッチング)を紹介する記事です。 パターンマッチは説明する内容が多いので、次のように前編と後編の2部構成になっています。 前編 = パターンマッチの概要、case文っぽい使い方、配列やハッシュとのマッチ、変数への代入 後編 = 自作クラスをパターンマッチで活用する方法、パターン名の整理 この記事は後編ですので、まだ前編を読んでいない方は先に前編を読んでからこの記事に戻ってきてください。 サンプルコードでわかる!Ruby 2.7の新機能・パターンマッチ(前編) - Qiita それでは以下が後編です。 Step 3. 自作のクラスをパターンマッチに対応させる ここまでは配列やハッシュなど、Rubyで元から用意されているオブジェクトをパターンマッチで使用してきました。 ですが、自分で定義した自作のクラスをパターンマ

    サンプルコードでわかる!Ruby 2.7の新機能・パターンマッチ(後編) - Qiita
  • サンプルコードでわかる!Ruby 2.7の新機能・パターンマッチ(前編) - Qiita

    はじめに Rubyは毎年12月25日にアップデートされます。 Ruby 2.7については2019年11月23日にpreview3がリリースされました。 Ruby 2.7.0-preview3 リリース この記事ではRuby 2.7で導入される変更点や新機能について、サンプルコード付きでできるだけわかりやすく紹介していきます。 ただし、Ruby 2.7は多くの新機能や変更点があり、1つの記事に収まらないのでいくつかの記事に分けて書いていきます。 記事で紹介するのはパターンマッチ(もしくはパターンマッチング)です。 前編と後編にわかれています パターンマッチは説明する内容が多いので、次のように前編と後編の2部構成になっています。 前編 = パターンマッチの概要、case文っぽい使い方、配列やハッシュとのマッチ、変数への代入 後編 = 自作クラスをパターンマッチで活用する方法、パターン名の整理

    サンプルコードでわかる!Ruby 2.7の新機能・パターンマッチ(前編) - Qiita
  • サンプルコードでわかる!Ruby 2.7の主な新機能と変更点 Part 1 - 番号指定パラメータ(numbered parameter) - Qiita

    サンプルコードでわかる!Ruby 2.7の主な新機能と変更点 Part 1 - 番号指定パラメータ(numbered parameter)Ruby はじめに Rubyは毎年12月25日にアップデートされます。 Ruby 2.7については2019年11月23日にpreview3がリリースされました。 Ruby 2.7.0-preview3 リリース この記事ではRuby 2.7で導入される変更点や新機能について、サンプルコード付きでできるだけわかりやすく紹介していきます。 ただし、Ruby 2.7は多くの新機能や変更点があり、1つの記事に収まらないのでいくつかの記事に分けて書いていきます。 記事で紹介するのは番号指定パラメータ(numbered parameter)です。 参考:Ruby 2.7に関する新機能や変更点のまとめはこちら 番号指定パラメータ以外のRuby 2.7の新機能や変更点

    サンプルコードでわかる!Ruby 2.7の主な新機能と変更点 Part 1 - 番号指定パラメータ(numbered parameter) - Qiita
  • 永久保存版!?伊藤さん式・Railsアプリのアップグレード手順 - Qiita

    はじめに Railsアプリケーションを長く運用していると避けて通れないのがRailsのバージョンアップです。 古いバージョンのRailsは順次サポートの対象から外れていく(=不具合修正やセキュリティ対応がされなくなる)ため、バージョンアップをせずに運用するわけにはいきません。 そこでこの記事では僕・伊藤淳一がRailsアプリのバージョンをアップグレード(アップデート)する手順を紹介します。 この手順はこれまで何度もRailsアプリケーションをアップグレードしてきた僕の知見が詰まった、いわば「秘伝のタレ」的なアップグレード手順です。 想定するRailsアプリケーション この記事で想定しているのは以下のようなRailsアプリケーションです。 開発者1人でもなんとか面倒が見れるレベルの規模(=アップグレードは1人で作業する想定) 趣味で作っているのではなく、外部のユーザーがいるRailsアプリ(

    永久保存版!?伊藤さん式・Railsアプリのアップグレード手順 - Qiita
  • サンプルコードでわかる!Ruby 2.6の主な新機能と変更点 - Qiita

    はじめに Rubyは毎年12月25日にアップデートされます。 Ruby 2.6については2018年12月6日にrc1がリリースされました。 Ruby 2.6.0-rc1 Released この記事ではRuby 2.6で導入される変更点や新機能について、サンプルコード付きでできるだけわかりやすく紹介していきます。 2018.12.26追記: 内容を一部更新しました 2018年12月23日と、Ruby 2.6.0リリース後の2018年12月26日にそれぞれ内容を一部更新しました。 具体的な変更点は以下のdiffをご覧ください。 2018年12月23日の変更点 2018年12月26日の変更点 記事の情報源 記事は以下のような情報源をベースにして、記事を執筆しています。 Ruby 2.6.0のリリースノート Ruby 2.6.0のNEWS リリースノートやNEWSに記載されている各種issue

    サンプルコードでわかる!Ruby 2.6の主な新機能と変更点 - Qiita
  • 【初心者向け】テストコードの方針を考える(何をテストすべきか?どんなテストを書くべきか?) - Qiita

    はじめに 「テストコードを書きましょう」とはよく言われるし、テストコードが大事だってことも理解できるんだけど、何をテストしたらいいの?どんなテストを書いたらいいの?と迷っている初心者プログラマさんは意外と多いのではないでしょうか? そんな方たちに向けて、この記事では僕が普段意識しているテストコードの方針を紹介します。 おことわり 来であれば具体的なコード例も豊富に入れたいところなのですが、かなり時間がかかってしまうので、いったん文章メインで記事を公開します。 もしかすると、そのうちコード例も一緒に盛り込んだ「リッチバージョン」を公開するかもしれません。 この記事の前提条件 この記事ではあくまで、「今現在、筆者が仕事で書いているテストコードの方針」です。 そのため、状況が異なると適用しづらい方針も出てくるかもしれません。 筆者は以下のような現場でコードを書いています。 月額定額で、お客様と

    【初心者向け】テストコードの方針を考える(何をテストすべきか?どんなテストを書くべきか?) - Qiita
  • (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita

    (2021-8-28追記) この記事の改訂版を書いてみました。改訂版の方が易しい内容になっているので、プログラミング初心者の方はこちらを参考にしてみてください。 はじめに:「引数があるよりは、ない方が良い」? 先日、同僚の西見さん(@mah_lab)がこんな技術ブログを書いていました。 インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) 同じ内容を僕だったらどういうふうに書くかな~?と思って、ちょっと書き始めてみたんですが、わかりやすく実践的な説明をするのは意外と難しく、内容も西見さんのブログとほぼ同じになりそうだったので、途中で断念しました。 というわけで、インスタンスメソッドとクラスメソッドの使い分けが未だにあやふやだという方は、ぜひ西見さんのブログを読んでみてください! ・・・なんですが、1点だけ気になる点がありました。 それはインスタンスメソッ

    (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita
  • Railsアプリケーションにおけるエラー処理(例外処理)の考え方 - Qiita

    はじめに Railsアプリケーションを格的に作り込んでいくと、「エラー」とは無縁ではいられません。 しょうもないバグでエラーが発生することもありますし、ほとんど不可抗力ともいえるような大規模なネットワーク障害でエラーが発生することもあります。 エラーの種類がなんであれ、エラーが起きた場合は「原因を素早く特定し、速やかに復旧させること」と「あるエラーが引き金になって、さらに大きなエラーに引き起こさないようにすること」が重要です。 エラー処理を適切に実装していれば、原因の特定や復旧もすばやくできますし、さらに大きなエラーを引き起こす可能性も少ないです。 また、ソースコードも比較的シンプルに保てます。 逆にエラー処理が不適切だと原因の特定に時間がかかったり、異常なデータがどんどん増えてさらに大きなエラーを引き起こしたりします。 ソースコードにも無駄に複雑な処理フローや条件分岐がたくさん出てきて

    Railsアプリケーションにおけるエラー処理(例外処理)の考え方 - Qiita