タグ

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

  • PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita

    注意 この記事の実験は実際の運用を正確に反映していない恐れがあります(コメント欄の @hmatsu47 さんの投稿を参照)。 実務のアプリケーションでは異なる結果になる可能性もあるので、記事の内容はあまり鵜呑みにせず参考程度に留めておいてください。 ※「実務に近い環境で実験してみた」という投稿もお待ちしています! はじめに データベース(この記事ではPostgreSQLを対象とします)の主キーは1,2,3のような連番の整数値を主キーにするSERIALと、"00009236-b73c-4338-8ebd-e1f6c4f4fdd8"のようなランダムな文字列を主キーにするUUIDがあります。 それぞれメリットとデメリットがありますが、パフォーマンスについてはどうでしょうか?なんとなくSERIALの方がシンプルなぶん、速そうなイメージがありますが、実際はどうなのか調べてみました。 実行環境 Ma

    PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita
    peketamin
    peketamin 2023/02/08
  • 【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
    peketamin
    peketamin 2020/01/15
  • 【初心者向け・動画付き】Railsで日時をフォーマットするときはstrftimeよりも、lメソッドを使おう - Qiita

    <% @users.each do |user| %> <tr> <td><%= user.name %></td> <!-- 作成日時を表示する --> <td><%= user.created_at %></td> <td><%= link_to 'Show', user %></td> <td><%= link_to 'Edit', edit_user_path(user) %></td> <td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td> </tr> <% end %>

    【初心者向け・動画付き】Railsで日時をフォーマットするときはstrftimeよりも、lメソッドを使おう - Qiita
    peketamin
    peketamin 2019/07/31
  • bundle install時に--path vendor/bundleを付ける必要性は本当にあるのか、もう一度よく考えてみよう - Qiita

    bundle install時に--path vendor/bundleを付ける必要性は当にあるのか、もう一度よく考えてみようRubyRailsBundler TL; DR(最初に結論) bundle installをする場合は--path vendor/bundleを付けてプロジェクトごとにgemを管理しろ、という意見をよく見かける。 しかし、pathを指定しないと問題が起きる可能性があるのは、かなり特殊な条件下に限られる(100人いたら100人全員が遭遇するような問題ではない)。 よって、--path vendor/bundleのオプションは、付けたい人が付ければよいだけで、開発者全員に強制するようなルールではない、と筆者は考える。 はじめに bundle installコマンドを実行するとき、Ruby界に大きく分けて2つの流派があります。それは「--path vendor/bund

    bundle install時に--path vendor/bundleを付ける必要性は本当にあるのか、もう一度よく考えてみよう - Qiita
    peketamin
    peketamin 2019/06/07
  • Qiitaで記事を公開するときに気を付けるべきマナーについて 〜無断でネットや書籍の内容を丸写しするのはやめよう〜 - Qiita

    はじめに 僕は「プロを目指す人のためのRuby入門」(通称チェリー)というRubyの入門書の著者です。 書は発売以来、非常に多くのみなさんに読んでいただき、筆者として大変喜んでいます。 しかし、その一方でQiitaを見ていると、「これ、明らかにチェリーの説明文やサンプルコードを参考にして書いてますよね?」という記事をよく見かけます。 中にはきちんとマナーを守って記事を公開されている方もおられますが、残念なことに僕から見て「悪意がないのはわかるけど、そのスタイルで公開されるのはちょっと困る」と感じるケースがかなり多いです。 この記事では、書籍やネット上の情報を参考にしてQiitaに記事を公開する際の最低限のマナーについて説明します。 また、この記事の内容はQiitaのみならず、自分のブログに記事を書くときにも意識すべき内容になります。 備考:「そもそもこの記事ってガイドライン違反じゃな

    Qiitaで記事を公開するときに気を付けるべきマナーについて 〜無断でネットや書籍の内容を丸写しするのはやめよう〜 - Qiita
    peketamin
    peketamin 2019/04/25
  • コードレビューの極意。それは「自分のことは棚に上げる」こと!! - Qiita

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

    コードレビューの極意。それは「自分のことは棚に上げる」こと!! - Qiita
    peketamin
    peketamin 2019/02/26
  • 【Ruby】乱用厳禁!?後置ifで書くとかえって読みづらくなるケース - Qiita

    ただし、後置ifが使えるからといって、無理に普通のif文を後置ifに書き直す必要はありません。 むしろ、後置ifを使うとかえって読みづらくなるケースもあります。 後置ifが不向きなケース たとえば、あなたがコードレビューをしているとき、こんな(物騒な)コードを見かけたらどう思いますか? 「おいおい、頭大丈夫?」と思うようなコードですが、実はこのコードは後置ifで書かれていました。 (ユーザがゾンビだった場合のみ、メッセージを返すメソッドだった!) 後置ifを読むときは条件文があとにやって来ます。 コードが横に長いと条件文がぱっと目に入らないため、「えっ、なんでこのタイミングでこんな処理が入るの!?」と読み手を困惑させる原因になります。 こういったケースでは普通のif文で書いた方が可読性が高くなります。 def message_to(user) # 普通のif文で書けば、特定の条件のみメッセ

    【Ruby】乱用厳禁!?後置ifで書くとかえって読みづらくなるケース - Qiita
    peketamin
    peketamin 2018/08/31
  • 【翻訳】RSpecのリードメンテナだけど何か質問ある? - Qiita

    はじめに 先日、Redditでこんな記事が載っていました。 AMA: The authors of "Effective Testing with RSpec 3", Myron Marston and Ian Dees : ruby この記事は書籍「Effective Testing with RSpec 3」の筆者であるMyron Marston氏とIan Dees氏が、書籍に関する質問に何でも答えます、という企画です。 この2人のうち、Myron Marston氏はRSpecの開発者(リードメンテナ)です。 Q&Aを読んでいると、RSpecの開発者ならではの意見だなと思うところがたくさんあり、なかなか興味深い議論になっていました。 というわけで、この記事では先ほどのQ&Aから「これは日Rubyプログラマにも役立ちそう」と思ったやりとりをピックアップして翻訳してみます。 ピックアッ

    【翻訳】RSpecのリードメンテナだけど何か質問ある? - Qiita
    peketamin
    peketamin 2017/10/16
  • サンプルコードでわかる!Ruby 2.5の主な新機能と変更点 Part 1 - Qiita

    はじめに Rubyは毎年12月25日にアップデートされます。 今年はまだpreview版がリリースされていませんが(2017年10月10日時点)、今年もそろそろリリースの日が近づいてきました。 Ruby 2.5については2017年10月10日にpreview1がリリースされました。 Ruby 2.5.0-preview1 Released そこでこの記事ではこの2.5.0-preview1を参考にして、おそらくこんな感じでリリースされるであろうRuby 2.5の新機能や変更点をまとめてみました。 2017.12.25追記: Part 2もあります! この記事を公開したあとにも多数新機能が追加されました。この記事に追記すると長くなってしまうので、Part 2として公開しています。こちらもあわせてご覧ください。 サンプルコードでわかる!Ruby 2.5の主な新機能と変更点 Part 2 - Q

    サンプルコードでわかる!Ruby 2.5の主な新機能と変更点 Part 1 - Qiita
    peketamin
    peketamin 2017/10/10
  • 【初心者向け】「コミットの粒度がわからない問題」の模範解答を考えてみた - Qiita

    はじめに 先日参加したRails Developers Meetupの中で、「コミットの粒度がわからない問題」が少し話題になっていました。 「commitの粒度がわからない」すいません、私もです…!よく迷っちゃいます…!!! #railsdm — まえとー (@maetoo11) July 20, 2017 commitの粒度がわからない問題、ある。(ほんとわからない) #railsdm — おおた (@ota42y) July 20, 2017 普段僕は感覚的に「それっ、ここでコミット!」とコミットしているんですが、具体的にどういうルールでやってるの?と聞かれると、きれいに明文化しづらいものです。 とはいえ、できるだけ明文化できるよう、模範解答を考えてみました。 この記事ではそんな「適切なコミット粒度」について解説します。 動画で明文化・・・!? すいません、「明文化した模範解答」という

    【初心者向け】「コミットの粒度がわからない問題」の模範解答を考えてみた - Qiita
    peketamin
    peketamin 2017/09/26
  • 和英辞典・自動翻訳だけじゃダメ!もっといい英語名を見つけるためのTips集 - Qiita

    はじめに プログラマのみなさんはコードを書くときによく英語を使うと思います。 だけど、英語って難しいですよね。 僕自身もそうですが、クラスの名前やメソッドの名前、テーブルのカラムの名前を考えたりするときは「これ、英語でなんて言うんだろう??」と頭を抱えることが多いはずです。 他にも、トラブルが発生したときにWebサービスのサポートに英語でメールを書いたりする場合もあります。 そんなとき、安易に頼ってしまいがちなのが、オンラインの和英辞典や自動翻訳の類いです。 ですが、和英辞典や自動翻訳だけが適切な英語を探す唯一の方法ではありません。 むしろ、僕に言わせれば和英辞典や自動翻訳は質の悪い英語を作り出してしまう原因になりやすいです。 なので、僕はできるだけ和英辞典や自動翻訳には頼らないようにしています。 でも、こんなふうに言うと「えー、そんな!じゃあ和英辞典や自動翻訳以外にどんな方法があるの!?

    和英辞典・自動翻訳だけじゃダメ!もっといい英語名を見つけるためのTips集 - Qiita
  • 【短命に終わった】国民の祝日.csvをパースして変換するRubyプログラムとコード解説動画 - Qiita

    はじめに 1週間ほど前、内閣府の「国民の祝日」CSVがひどい、みたいな話が話題になっていました。 参考: 【悲報】内閣府の「国民の祝日」CSVがひどいと話題に なぜ「ひどい」と言われていたのかというと、普通のプログラマが期待する「日付と名前が上から下に並ぶCSV」ではなく、「2016年の列 => 2017年の列 => 2018年の列」のように年単位で列方向(横方向)に繰り返すフォーマットになっていたからです。 (しかも一番下に「月日は表示するアプリケーションによって形式が異なる場合があります。」みたいな注意書きが入ってる!) まあ、ひどいと言えばひどいんですが、これを扱いやすいフォーマットに変換するプログラムを作るのはなかなか面白そうだなと思いました。 というわけで、そんなプログラムを作りました! 国民の祝日.csvをパースするプログラム、とりあえずコードは書いた。https://t.co

    【短命に終わった】国民の祝日.csvをパースして変換するRubyプログラムとコード解説動画 - Qiita
    peketamin
    peketamin 2017/03/03
  • Rails 5.1の変更点まとめ - Qiita

    はじめに 去る2017年2月23日、Rails 5.1.0.beta1が公開されました。 Rails 5.1.0.beta1: Loving JavaScript, System Tests, Encrypted Secrets, and more - Riding Rails Rails 5.1ではマイナーバージョンアップと言えど、かなり大きな変更点が多数入っているようです。 そこで上記公式ブログの内容を僕なりにまとめてみます。 おことわり この記事は公式ブログやpull requestの内容を読んで、筆者が個人的にまとめたものです。 実際に動かして試したりはしていないので、おかしな内容や誤解している内容が含まれている可能性もあります。 もし、「これは明らかにおかしい!」という内容を見つけた場合は、コメントや編集リクエストで優しく指摘してやってください。 サンプルコードについて この記事

    Rails 5.1の変更点まとめ - Qiita
    peketamin
    peketamin 2017/02/25
  • Arelでクエリを書くのはやめた方が良い5つの理由

    はじめに:Arelって何? みなさん、Arel(アレル)ってご存知ですか? ArelはActive Recordの内部で使用されるSQL生成ライブラリです。 Railsのクエリの書き方をググると、ときどきArelを使った実装例が見つかるので、見たことがある、もしくは何度か使ったことがある、という人もいると思います。 Arelをよく知らない人のために、Arelの利用例をちょっと見てみましょう。 たとえば「コメント文中に、"ruby"が含まれるユーザープロフィールを検索したい」という場合、Rails標準のクエリインターフェースを使うと条件部分のSQLを文字列で書く必要があります。(PostgreSQL環境を想定) Profile.where( "profiles.comment ILIKE ?", "%ruby%" ).to_sql #=> SELECT "profiles".* # FROM

    Arelでクエリを書くのはやめた方が良い5つの理由
    peketamin
    peketamin 2016/08/11
  • プログラミング初心者歓迎!「エラーが出ました。どうすればいいですか?」から卒業するための基本と極意(解説動画付き) - Qiita

    はじめに 先日、スタック・オーバーフローを見ているとこんな質問が載っていました。 Ruby On Railsで質問に対してのBA機能 - スタック・オーバーフロー 「BA機能」というのはどうやらベストアンサー機能の略らしいです。(BAって略し方は一般的なの??) それはさておき、僕が気になったのは質問の最後の部分です。 Processing by BestAnswersController#best as HTML Parameters {"authenticity_token"=>"DtGJ+4qzzG2PqEJpa7GH9Fb8pQhGDX0cg+w+qhf0tP/9HIIVYabiJeW0rEiL7iydpa5PpjrdR1V1LeGzfOeJjw==", "comment"=>"43", "note_id"=>"36"} Note Load (0.2ms) SELECT "note

    プログラミング初心者歓迎!「エラーが出ました。どうすればいいですか?」から卒業するための基本と極意(解説動画付き) - Qiita
    peketamin
    peketamin 2016/06/27
  • Rails 5 + ActionCableで作る!シンプルなチャットアプリ(DHH氏のデモ動画より) - Qiita

    【注意!】この記事はRails 5.0.0.beta1を対象にしています。最新のRails 5では仕様が変わっている可能性もあるので注意してください。 はじめに 先日、Rails 5のAction Cableを使ったシンプルなチャットアプリの作り方をDHH氏がYouTubeで公開していました。 Rails 5: Action Cable demo - YouTube 動画を見ながら僕もコードを写経してみたので、その内容をこちらで紹介してみます。 なお、ここで紹介するのはコードだけで、DHH氏の発言は完全に再現していません。 発言内容を確認したい人はオリジナルの動画をチェックしてみてください。 チャットアプリの完成形 今回は下のような非常にシンプルなチャットアプリを作成します。 ソースコード 今回作ったコードはGitHubにアップしています。 JunichiIto/campfire コードを

    Rails 5 + ActionCableで作る!シンプルなチャットアプリ(DHH氏のデモ動画より) - Qiita
    peketamin
    peketamin 2015/12/22
  • Rails開発におけるwebサーバーとアプリケーションサーバーの違い(翻訳) - Qiita

    はじめに 先日スタック・オーバーフローでこんな質問に回答しました。 webサーバー、アプリケーションサーバー、Rackといった仕様や概念と、WEBrick、Unicorn、Pumaといった実装の関係が頭の中で結びつきません 質問者の方はwebサーバー、アプリケーションサーバー、Rack、Unicorn、Pumaと言った用語や概念の理解がこんがらかっているように見えたので、このあたりをきれいに説明している記事を探していたところ、以下の記事を見つけました。 A web server vs. an app server - Justin Weiss スタック・オーバーフローでは記事の一部を抜粋して「ざっくり翻訳」したのですが、それだけで終わらせるのはもったいない気がしたので、Qiitaには全文を翻訳して載せておこうと思います。 これを読むと、あなたもwebサーバーとアプリケーションサーバーの違い

    Rails開発におけるwebサーバーとアプリケーションサーバーの違い(翻訳) - Qiita
    peketamin
    peketamin 2015/10/21
  • 使えるRSpec入門・その4「どんなブラウザ操作も自由自在!逆引きCapybara大辞典」 - Qiita

    はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第4回です。 今回はCapybaraを使ったフィーチャスペックについて説明します。 ただし、今までの記事とは異なり、フィーチャスペックのイロハよりも「Capybaraの使い方」に重点を置きます。 なぜなら、僕個人の経験からいって、フィーチャスペックで困るのは「このブラウザの操作って、どうやってコードで表現するの??」というケースが大半だからです。 それ以外は第1回~第3回の内容をそのまま応用できるので、特に「フィーチャスペックだから困る」ということはないと思います。 今回は説明する主な項目は以下の通りです。 フィーチャスペックの基 ページの移動や画面のクリック、フォームの操作など 画面やフォームの検証 画面の操作や検証の応用テクニック その他

    使えるRSpec入門・その4「どんなブラウザ操作も自由自在!逆引きCapybara大辞典」 - Qiita
  • Rails 4.1以降のコンソールコマンドは必ず bin/ を付けなきゃいけないの? - Qiita

    はじめに:Springが起動するコマンドはいったいどれだ!? Rails 4.1からはアプリケーションpreloaderとしてSpringが標準で組みこまれています。 Springを使うとバックグラウンドでRailsサーバーが動いている状態になるので、rails g やrakeコマンドが素早く起動します。 一般に、Springを使う場合は bin/rails g や bin/rake -T のように、bin/ を付けるように言われていますが、これは必須なんでしょうか? bin/ を付けずに実行すると、何が起きるんでしょうか? というわけでちょっと調べてみました。 対象バージョン Rails 4.1または4.2 railsコマンドの場合:bin/ を付けなくても大丈夫! まず最初に、bin/rails c と rails c を実行して、Springのstatusがどう変わるか確認してみまし

    Rails 4.1以降のコンソールコマンドは必ず bin/ を付けなきゃいけないの? - Qiita
    peketamin
    peketamin 2015/01/01
  • 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
    peketamin
    peketamin 2014/12/08