並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 1051件

新着順 人気順

activerecordの検索結果161 - 200 件 / 1051件

  • Rails 7.0.5以降におけるcreate_associationメソッドの挙動変更についてまとめ - おもしろwebサービス開発日記

    この件、関連するPRやIssueが複数あってコメントも分散しており、人に説明するのがややこしいのでブログとしてまとめたものになります。間違いや意見などあったらコメントください! 追記(2023/08/02) 7-0-stableブランチに今回の変更をrevertするコミットが入りました。挙動が変わって困った人が出たので一度元に戻して仕切り直しにする方針のようです。 [7-0-stable] Revert singular association breaking changes by zzak · Pull Request #48809 · rails/rails 7.0.7がいつリリースされるかはわかりませんが、今の状態でリリースされたら7.0.4の振る舞いに戻ることになります。7.0.5以降の変更で困っている人は一旦7-0-stableを指すようにすると良いかもしれません。 概要 Ra

      Rails 7.0.5以降におけるcreate_associationメソッドの挙動変更についてまとめ - おもしろwebサービス開発日記
    • 【Kaigi on Rails 2023】発表資料まとめ - Qiita

      2023/10/27, 28 に行われた Kaigi on Rails の資料まとめです。 資料が公開され次第、内容を更新します。公開済みのURLがあれば教えてください。 10/27 スケーラブルActive Jobs with Sidekiq Enterprise (スポンサーLT) Rails アプリの 5,000 件の N+1 問題と戦っている話 HTTPリクエストを手で書いて学ぶ ファイルアップロードの仕組み 生きた Rails アプリケーションへの delegated types の導入 Async Gem で始める ruby 非同期プログラミング Exceptional Rails やさしいActiveRecordのDB接続のしくみ Update Billion Records 初めてのパフォーマンス改善〜君たちはどう計測す(はか)るか〜 Simplicity on Rails

        【Kaigi on Rails 2023】発表資料まとめ - Qiita
      • crowdworks.jpのマスタデータベースをAWS RDS MySQL 5.7から8.0にアップデートしました - クラウドワークス エンジニアブログ

        こんにちは。crowdworks.jp SREチームの田中(kangaechu)です。 crowdworks.jpでは、2023年8月にAWS RDS MySQL 5.7から8.0へのアップデートが完了しました(ようやく!)。 今回はMySQL 8.0へのアップデートの手順と対応が必要な変更点について書いていきます。 MySQL 8.0にアップデートした理由 MySQL 8.0にアップデートした理由はAWS RDS MySQLのEOL対応のためです。 AWS RDS MySQL 5.7のEOLは2023年10月(のちに2023年12月に変更されました)であり、8.0へのアップデートが必要でした。 crowdworks.jpで使用している他のMySQLデータベースは8.0へのバージョンアップを完了していました。 しかしcrowdworks.jpのマスタデータベースは30億行を保持し、1日に約

          crowdworks.jpのマスタデータベースをAWS RDS MySQL 5.7から8.0にアップデートしました - クラウドワークス エンジニアブログ
        • キーワード引数の分離への対応にRuby 2.8.0-devを使う - koicの日記

          先日のパッチ会で kamipo さんにもらったアドバイスを書き残しておく。 TL;DR としては表題そのまま。キーワード引数の分離への対応にRuby 2.8.0-devを使うというもの。 2.8.0-devを使えばイージーモードだけど2.7.0縛りプレイだと常人にはクリア不能のむずかしさ https://t.co/tpJGTARwAc— Ryuta Kamizono (@kamipo) 2020年1月24日 Ruby 2.7.0 を使ってキーワード引数の分離への警告のみでそれを抑制しようとする場合は、スーパーハードモードルビーとパッチ会で呼ばれた変更箇所の特定が難しいケースになる場合がある。 スーパーハードモード (Ruby 2.7.0) Ruby 3.0 に向けてキーワード引数の分離が必要になる場合は、Ruby 2.7.0 を使うと以下のような警告が表示される。 % ruby -v ru

            キーワード引数の分離への対応にRuby 2.8.0-devを使う - koicの日記
          • Ruby 3.0とRails 6.1の "サポート"マトリクス

            How ActiveRecord::Migration converts create_table DSL into SQL statements

              Ruby 3.0とRails 6.1の "サポート"マトリクス
            • 『Rails Developers Beer Bash 〜Railsのトレンドとこれから〜』に行ってきたよメモ - コード日進月歩

              Unite2019Tokyoを早めに切り上げて勉強会はしご、本業のほうのRailsの勉強会である、Rails Developers Beer Bash 〜Railsのトレンドとこれから〜 に行ってきたよメモ 各発表の感想 2週間でRails5.1 > Rails6 タイムアタックチャレンジ 資料でっす #railsbeerbash https://t.co/TqHFAsVWPd— shiro16 (@_shiro16) September 26, 2019 感想 今日の発表までのタイムアタック 過去にアップデート経験している方なので、ノウハウが生かされているのと、再現性のあるノウハウということが示される発表だった。 5.1からのアップデートでも5.2を踏むほうがいいんだな…というのが知見として得られた感じ。 関連リンク minne の Rails を 5 にアップグレードしました - ペパ

                『Rails Developers Beer Bash 〜Railsのトレンドとこれから〜』に行ってきたよメモ - コード日進月歩
              • 中途で入社したての私からみたメドピア開発環境のいいところ - メドピア開発者ブログ

                2020年1月付けで入社した社長室 エンジニアの芝田と申します。 社長室ではkakariという、かかりつけ薬局化を支援するサービスをやっており、そちらでサーバーサイドエンジニアとして働いています。 エンジニアとしてのキャリアはメドピアで2社目で、まだまだ勉強中の身です。 今回はメドピアでの開発を始めて、開発環境のいいところや実装のtipsを一部ご紹介したいと思います。 開発環境のいいところ CIでRSpecやRubocopをはじめとする複数のLint👮が通っていないと原則マージできない Rubyは自由な記法ができるメリットの反面で、記法のばらつきが比較的出がちです。そこは、Lintによってある程度カバーすることが可能です。 また、ClassLength・LineLength・AbcSize等によって、ファイルの肥大・コードの複雑度合いを知ることができます。 kakariではClassLe

                  中途で入社したての私からみたメドピア開発環境のいいところ - メドピア開発者ブログ
                • 2021年版イエウールで導入しているRailsのデザインパターンのKPT - Speee DEVELOPER BLOG

                  ※この記事は、Speee Advent Calendar22日目の記事です。 昨日の記事はこちら tech.speee.jp 2021年7月から業務委託のエンジニアとして主にイエウールの開発のお手伝いしている高尾です。所属は株式会社ネットワーク応用通信研究所。Rubyのまつもとゆきひろさんも在籍されており、Rubyに関するSIでそれなりの実績のある会社です。私は20年近くSIerとして仕事をしてきました。 そんな私にとってもSpeeeでの開発は魅力的です。 プロジェクトの運営、プロダクトの仕様、技術の採用、リリースなど、多くのことをエンジニアが主体的に決めます。各エンジニアがお客様の価値を理解してプロダクトを作り上げるという意識が伝わってきます。そんなエンジニアのみなさんが、 Rubyをつかって楽しくプログラミングできるように全力でサポートしていきたいと思います! 前置きが長くなってしまい

                    2021年版イエウールで導入しているRailsのデザインパターンのKPT - Speee DEVELOPER BLOG
                  • 【2024年版】JavaScriptのおすすめライブラリ&フレームワーク40選

                    【2024年版】JavaScriptのおすすめライブラリ&フレームワーク40選 JavaScriptのライブラリやフレームワークを使うことで、幅広い特徴と機能により、ウェブサイトやアプリケーションの開発が容易になります。これを可能にしているのが、JavaScriptの動的で柔軟であるという特性でしょう。2020年に実施されたStackOverflowの調査によると、JavaScriptは回答者の67.7%が使用しており、最もよく使われているプログラミング言語として記録を更新(8年目)しています。 その汎用性の高さから、バックエンドとフロントエンド両方の開発やテストに利用できます。その結果、さまざまな目的に対応する数多くのJavaScriptライブラリやフレームワークを見つけることができます。それゆえに、プロジェクトでどれを利用すべきかと迷ってしまうこともあるでしょう。 しかし、心配はご無用

                      【2024年版】JavaScriptのおすすめライブラリ&フレームワーク40選
                    • RBS Railsを使ってRailsアプリケーションにSteepを導入する - pockestrap

                      RBS Railsを使ってRailsアプリケーションにSteepを導入するまでの解説します。 ただしこの「導入できる」というのは、解析が完走するという意味です。 型エラーを全てつぶすことや、Steepを実際の開発フローに乗っけることは私もまだできていないため、この記事ではサポートしません。 登場人物 RailsアプリケーションにSteepを導入するには、複数のプロジェクトが関連してきます。 まずはそれらをざっと紹介します。 steep gem Rubyの静的型検査器です。 rbs_rails gem RailsでRBSを使う上で必要な型定義を提供・生成するgemです。 データベースのスキーマ定義からモデルの型生成、及びroutesの定義からパスヘルパーの型生成をします。 それ以外のコードの型生成は担当範囲外です。 rbs gem ビルトインのライブラリ、及びスタンダードライブラリの型定義を

                        RBS Railsを使ってRailsアプリケーションにSteepを導入する - pockestrap
                      • ツイッターで見つけて直したActiveRecordの問題3つ - かみぽわーる

                        Rails Advent Calendar 2020の3日目です。 時間がないのでとりいそぎ3つだけ。 enum state: {active: 0, inactive: 1}とかした時に、typecast前の0とか1を取りたい ActiveRecord::Enumってstate: {active: 0, inactive: 1}とかした時に、typecast前の0とか1を取る場合、read_attribute_before_type_castを使うしかないのか?— アルフォートおじさん (@joker1007) October 21, 2020 github.com belongs_to :author, class_name: 'User'したときにleft_joins(:author).where("author.id": nil)とか書きたい これすると、joins(:author

                          ツイッターで見つけて直したActiveRecordの問題3つ - かみぽわーる
                        • Rubyとの出会い、Railsの衝撃、Rubyコミュニティの面白さ【Rubyistめぐりvol.1 takahashimさん】 - STORES Product Blog

                          Rubyist Hotlinksにインスパイアされて始まったイベント『Rubyistめぐり』。第1回は高橋征義さんをゲストに迎えて、お話を聞きました。 パーソナルコンピュータとの出会い 藤村:こんばんは、藤村と申します。STORES のCTOをやっています。Rubyist Hotlinksをプログラミングを始めた頃にめっちゃ読んでて。 高橋:あれいいですよね。 藤村:いい。プログラマがどういう人たちなのか、なんとなくわかるみたいな、めっちゃ好きなコンテンツだったんですよ。で、ある日、これをもっとやった方がいいと思ったので、弊社でもやってみようとなったのがこのRubyistめぐりですね。ということで第一回は高橋会長に来ていただきました。なぜかというと、この STORES を手伝ってくださっているからというところでございます。 高橋:その話はあんまり外でしてないので、あらかじめお話しておきます

                            Rubyとの出会い、Railsの衝撃、Rubyコミュニティの面白さ【Rubyistめぐりvol.1 takahashimさん】 - STORES Product Blog
                          • def 保険料 = 算定額 * 保険料率 - SmartHR Tech Blog

                            はじめに SmartHRで届出書類機能を開発しているqwyngと申します。 今回はSmartHRの届書書類機能において、日本語エイリアスを用いた開発を行ったので紹介します。 背景 SmartHRの届出書類機能は、書類の作成から電子申請の送信までを一括で行うことができる機能です。 ユーザーは画面上で書類に記入するような感覚で書類の作成を行うことができます。 SmartHR届出書類機能の書類確認画面 この体験の実現のために書類のどんな項目にどのような値が入力されたかを永続化する必要があります。 DBのカラム名は英語であるため、開発者は日本語の項目名を英語のカラム名に脳内で変換する必要があります。 この変換が煩わしく、プログラムの修正やレビュー時を含めて開発者の負担になっていました。 そのため、日本語の項目名をそのまま実コードに使えるようにすることを検討しました。 日本語化の是非 日本語の項目名

                              def 保険料 = 算定額 * 保険料率 - SmartHR Tech Blog
                            • rubygem開発でSteepを使って型を書く時の現状のオススメ設定 (2023年3月版) - joker1007’s diary

                              Rails(というかActiveRecord)に型を付けるのは大変だが、Railsが絡まないrubygemにはそんなに苦労なく型が書けるので、これからgemを書く時には型を書きたいという人向けに今のところオススメの設定を紹介します。 というか自分が忘れるのでまとめておきます。 現状とはsteep-1.3.1, rbs-2.8.4を指します。 rbsは既に3系が出ていますが、一般利用者が型検査に利用する場合はsteepを使うはずで、steepはまだrbsの3系に対応していません。また、rbs-3.0で多少変わっているところもあるので、割と寿命が短い話かもしれません。 設定例 とりあえず結論から。Steepfileとrbs_collection.yamlを修正します。 Steepfile: D = Steep::Diagnostic target :lib do signature "sig"

                                rubygem開発でSteepを使って型を書く時の現状のオススメ設定 (2023年3月版) - joker1007’s diary
                              • 23新卒エンジニアがチーム開発研修で学んだこと - Cybozu Inside Out | サイボウズエンジニアのブログ

                                こんにちは! 2023年新卒エンジニアの伴野・谷・和渕です。 サイボウズでは、2023年エンジニア新人研修の集大成として、チームに分かれてソフトウェア開発を行う実践演習が行われました。この記事では、各チームがどんな成果物を作成したのかを、チームごとにご紹介したいと思います。 エンジニア新人研修全体については以下の記事で詳しく紹介されています。ぜひそちらもご覧ください。 blog.cybozu.io 概要 実践演習では3チーム(「チーム gogo!」・「明日から」・「TEMBIN」)に分かれ、それぞれ一つのソフトウェアを2週間で開発しました。「サイボウズ流チーム開発を新メンバーだけで実践できた」「未知見の課題に対してどう行動すればよいか考えるきっかけになった」というコンセプトのもと、自由な発想で取り組みました。 チーム gogo! チーム gogo! では、演習開始時に Mastodon や

                                  23新卒エンジニアがチーム開発研修で学んだこと - Cybozu Inside Out | サイボウズエンジニアのブログ
                                • STIとautoloadingとRails 7 - Money Forward Developers Blog

                                  こんにちは。マネーフォワード クラウド会計Plus (以下会計Plus)でエンジニアをしているぽっけです。 しばらく前に、会計PlusのRails 7へのアップグレードが完了しました。その中では様々な対応を行いましたが、この記事では特に印象的だったSTIとautoloadingの対応についてご紹介しようと思います。 STIとautoloadingは相性が悪いです。Rails 7以前は簡単な修正でこれらが共存して動いていましたが、Rails 7ではそのコードが動かなくなってしまいました。この問題は最終的には修正されましたが、それまでに紆余曲折あり修正までに何回ものPull Requestが必要になりました。 ⁠対象読者 Ruby on Railsを使用した開発経験があることを前提としています。また、STIやautoloadingについて詳細な説明はしません。それらを知らない場合は、該当するR

                                    STIとautoloadingとRails 7 - Money Forward Developers Blog
                                  • Railsのissueに書いてある再現コードを使ってgit bisectする方法 - アジャイルSEの憂鬱

                                    備忘録。 具体的な例 先日に登録されたissueを例にしてみる。 github.com 再現コードを少し書き換える v5.2.3と6.0.0.rc2でsqlite3の依存周りでエラーが出たので、Gemfileのあたりを少しだけ弄った。 # frozen_string_literal: true require "bundler/inline" gemfile = File.read(File.expand_path("Gemfile", __dir__)).strip version = gemfile.lines.find { |line| line.include?('sqlite3') } .then { |sqlite3_line| sqlite3_line.strip.split(',').last.delete('"') } gemfile(true) do source "h

                                      Railsのissueに書いてある再現コードを使ってgit bisectする方法 - アジャイルSEの憂鬱
                                    • Railsにおけるマルチテナントの資料まとめ

                                      SaaSサービスをRailsで開発するにあたり、マルチテナントに関する情報収集をしたため本ページにまとめとして記録いたします。 DBのマルチテナント DBのマルチテナントにあたっては、セキュリティーの確保と保守性が方式の選定ポイントとなります。 ただし、SaaSサービスとして成功するほど保守のコストが増大するためプール型に移行していくようです。 ブリッジ型でマルチテナントを実現可能なGem「apartment」 データーベースのインスタンスは全テナントで共有するものの、テナントごとにスキーマ(テーブル、インデックス、ビュー、ストアドプロシージャ)を分ける方式です。 この実装にはGem「apartment」の使用が有名です。 SmartHR社も創業当初はセキュリティーを高めるためにapartmentを利用していたようです。 ただし、後述するように、サービスの特性上カラム数が多く契約社数の伸び

                                      • 初心者3人でペアプロ始めたら、想像以上にメリットだらけだった - Paytner Tech Blog

                                        ペイトナーでエンジニアをやっている脇田慎平(@shimpeee_)です! 僕が入社した2022年5月からチーム内でペアプロ導入を提案し、実際にこれまで何度か実施して得た経験や気づきを書きます! 結論 めちゃくちゃにイイです!!! これからも続けていきます!!! 以降、始めたきっかけや良かった点、苦労したことなどを書きます。 きっかけ ペイトナーには、「同期作業」という文化があります(僕がとても素敵だと思う会社文化のひとつです)。 「オンラインで繋いで、仕事の会話するもよし、雑談するもよし、黙って作業するもよし」 というものです。 業務上でのもくもく会みたいなものです。 「biz側(PM) x エンジニア」の同期作業を週2回、各30分ずつやっているのですが、これがもうすごく良くてですね。。。 ペイトナー社では現在、フルコミットメンバーは週2の出社でオフィスの席数の関係で出社日を曜日で分散させ

                                          初心者3人でペアプロ始めたら、想像以上にメリットだらけだった - Paytner Tech Blog
                                        • ためして分かる、N+1問題とその解決方法 - プログラミング漫遊記

                                          この記事はフィヨルドブートキャンプ Part 1 Advent Calendar 2022 の23日目の記事です。 昨日はpart1が penoさんのフルタイムで働く社会人が月に100時間の勉強時間を確保できるようになるまで。私なりの具体的なやり方と失敗事例 - ぺのめも、part2が uchihiroさんのVSCodeのパッケージ不適合によるエラー解決までの道のり(Byebug編)でした。 前振り フィヨルドブートキャンプを今年の4月に卒業しました。卒業生なので、近況報告などしようかなと思ったんですがDiscordや日報などで日々わーわー言ってるので自重しておきます。 その代わり?最近友達とN + 1 問題の勉強会を行ったのでハンズオン形式で理解できるような記事を書いてみようと思います。(わからないところあったらフィードバックください) Ruby on Rails でよく発生するN +

                                            ためして分かる、N+1問題とその解決方法 - プログラミング漫遊記
                                          • Rails: 本当にやった「責務過剰クラス」の事例(翻訳)|TechRacho by BPS株式会社

                                            概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: When objects become super objects - Write it simple 原文公開日: 2020/08/11 著者: Juan Manuel Ramallo サイト: Write it simple - Simple programming short articles. Mostly ruby focused. 日本語タイトルは内容に即したものにしました。 鉛筆は、何かものを書くのに使います。それ以上のものではありません(お尻に消しゴムが付いている鉛筆もありますが、この際考えないことにしましょう)。 今は何でもデジタルに移行する時代ですよね。鉛筆本体に簡単なOCRスキャナを取り付けて、書いたものが片っ端からデジタル化できたらさぞ便利でしょう。 私は会議で意見を交換中、手元で書いたちょっとした技術用の

                                              Rails: 本当にやった「責務過剰クラス」の事例(翻訳)|TechRacho by BPS株式会社
                                            • NetflixのFast JSON APIを使ってみた - dely Tech Blog

                                              はじめに はじめまして。 mochizukiです。 クラシルアプリのサーバーサイドをやってます。 昨日はAndroidエンジニアのumemoriさんが 「マルチモジュール時代のDagger2によるDI」 という記事を書いてくれました。 tech.dely.jp dely Advent Calendar 2019の2日目は Netflixがつくった Fast JSON API について書いてみようと思います。 qiita.com adventar.org Fast JSON API Netflix/fast_jsonapi A lightning fast JSON:API serializer for Ruby Objects. Performance Comparison We compare serialization times with Active Model Serialize

                                                NetflixのFast JSON APIを使ってみた - dely Tech Blog
                                              • WEARにおけるプッシュ通知システムのリプレイスを全て完了した話 - ZOZO TECH BLOG

                                                こんにちは、WEARバックエンドブロックの天春です。バックエンドの運用・開発に携わっています。本記事では、以前公開したWEARにおけるプッシュ通知システムのリプレイス のフェーズ2を終え、旧環境のプッシュ通知システムのリプレイスを完了したのでシステム構成や移行手順をご紹介します。 目次 目次 1:Nのプッシュ通知システム リプレイス前の1:Nのプッシュ通知システム リプレイス前のシステム構成 問題点 リプレイス後の1:Nのプッシュ通知システム リプレイス後のシステム構成 1:Nキュー(Sidekiqダッシュボード) 負荷テスト 目標 対象 事前準備 負荷テスト実施 負荷テスト結果 負荷テスト実施後の改善内容 大量の通知の遅延を減らす 同時実行数の調整 500件単位でFCM通知配信 1:N通知配信の親ジョブ 500件単位でFCM配信を行う1:N通知配信の子ジョブ 500件単位でDynamoD

                                                  WEARにおけるプッシュ通知システムのリプレイスを全て完了した話 - ZOZO TECH BLOG
                                                • Rails 7で導入される invert_where メソッドが危険そうだったので調べた - pockestrap

                                                  この記事は現時点(2021-04-28)のrails/railsのmainブランチの最新のコミットでテストしています。 TL;DR invert_whereはすべてのwhereをinvertする 使い方によっては意図しない条件をinvertして危険 invert_whereとは invert_whereは、Rails 7でActiveRecord::Relationに追加される予定のメソッドです。 このメソッドは、relationにチェーンして呼び出すことで、それまでのwhereの条件を反転できます。 つまり次のようになります。(CHANGELOGから引用) class User scope :active, -> { where(accepted: true, locked: false) } end User.active # ... WHERE `accepted` = 1 AND

                                                    Rails 7で導入される invert_where メソッドが危険そうだったので調べた - pockestrap
                                                  • ISUCON10 予選敗退^H^H突破した - id:onk のはてなブログ

                                                    id:uzulla、id:moznion と共に curl gotti というチーム名で出場しました。このメンバーでやるのは去年に引き続き 2 回目。 三行で 最高得点 2125 で予選通過ならず 繰り上がり当選した!!! ほぼいつもの力が出せた。ので実力不足である。。 とても楽しめた良問だった。ありがとうございます 多分この辺の施策をやったんだと思う condition.json を静的に返す 雑に INDEX 張る features の LIKE 検索を正規化して撲滅 xxxRangeId カラムを追加 なぞって検索の N+1 改善 PHP のチューニング DB のチューニング ORDER BY popularity DESC, id ASC をどうにかする DB 2 台構成に Bot に 503 を返す 自分が考えたことや手を動かしたことは分かるんだけど、それ以外のチームメンバーがや

                                                      ISUCON10 予選敗退^H^H突破した - id:onk のはてなブログ
                                                    • 機械学習エンジニアからソフトウェアエンジニアになって1年経った - たいむかぷせる2

                                                      はじめに ユーザーに近い機械学習プロダクトのむずかしさ サービス開発のスピード チームで開発するということ ソフトウェアエンジニアは楽しい? 実際にユーザーに届くということ これからのこと はじめに 「そういえば,来期は1年間ソフトウェアエンジニアをやっていただきたいんですが」と当時のマネージャーに言われてから1年になる。その頃の私は機械学習エンジニアとして着実に成長はできていたのだと思う。実際に機械学習プロダクトを本番環境に投入することができていたし,機械学習のモデル構築以外にもデプロイ周りやインフラ周り,データベース周りといった知識も身につけることができていた。けれど「もっとユーザーに近いところで仕事がしたい」という思いも持っていた。 ユーザーに近い機械学習プロダクトのむずかしさ 機械学習プロダクトをユーザーに近いところ,つまり実サービスに投入するのはむずかしい。そもそも機械学習プロダ

                                                        機械学習エンジニアからソフトウェアエンジニアになって1年経った - たいむかぷせる2
                                                      • 軽量DDDではじめるゲーム開発 ドメイン駆動設計の基本と実践を解説

                                                        2019年10月23日、『神姫PROJECT』などソーシャルゲームの企画・開発を手がける株式会社テクロスが主催するイベント「TECH x GAME COLLEGE」が開催されました。第28回となる今回のテーマは「形から入ったドメイン駆動設計によるゲーム開発の光と闇」。株式会社Nextat取締役・中榮健二氏が、ドメイン駆動設計(DDD)をゲーム開発に取り入れた事例を語りました。登壇資料はこちら ドメイン駆動設計によるゲーム開発の光と闇 中榮健二氏(以下、中榮):最初にいきなりなんですが、お詫びと訂正から。 サブタイトルに「DDDは果たしてゲーム開発に向いているのか!?」と書いていただいたんですけど、本日はDDDの核心部分の話はしません。この煽り文の答えが出ないことをお詫びして訂正いたします。すみませんでした。 (会場笑) 自己紹介です。株式会社Nextatの取締役の中榮と申します。取締役と書

                                                          軽量DDDではじめるゲーム開発 ドメイン駆動設計の基本と実践を解説
                                                        • YJIT: Building a New JIT Compiler for CRuby

                                                          Opens in a new windowOpens an external siteOpens an external site in a new window The 1980s and 1990s saw the genesis of Perl, Ruby, Python, PHP, and JavaScript: interpreted, dynamically-typed programming languages which favored ease of use and flexibility over performance. In many ways, these programming languages are a product of the surrounding context. The 90s were the peak of the dot-com hype

                                                            YJIT: Building a New JIT Compiler for CRuby
                                                          • Rubocop Performanceを測ってみた。前編 - アクトインディ開発者ブログ

                                                            morishitaです。 以前、弊社のWebエンジニアキエンが次のエントリで紹介した prontoによる自動レビューですが、今ではほかのRailsアプリケーションにも導入して使っています。 tech.actindi.net うっかりしたコードを書くと容赦のない指摘コメントが付きます。 その多くはコードフォーマットに関するものなのですが、時々rubocop-performanceにより「遅いかもしれないので書き直しましょう」という指摘をされます。 へーそうなのかーと素直に修正してきたのですが、ツールを活用するのはいいのだけど、盲従するのは良くないぁと心に引っかかるものを感じていました。 JuanitoFatas/fast-rubyにも測定結果があるのですが、ざっと見て古すぎるRubyバージョン(2.2など)での結果が更新されていないものが結構あるなぁと思いました。 また、Rubyのバージョン

                                                              Rubocop Performanceを測ってみた。前編 - アクトインディ開発者ブログ
                                                            • 週刊Railsウォッチ(20200427前編)Railsで避けたい8つのミス、ridgepole導入の注意点、RDS ProxyのPostgreSQL対応ほか|TechRacho by BPS株式会社

                                                              2020.04.27 週刊Railsウォッチ(20200427前編)Railsで避けたい8つのミス、ridgepole導入の注意点、RDS ProxyのPostgreSQL対応ほか こんにちは、hachi8833です。 つっつきボイス:「近所のビアパブに注文しておいたビール取りに行ってた🍺」「お疲れさまです!」「最近酒類の販売免許が飲食店向けに割と簡単な手続きで申請できるようになったじゃないですか」「あ、酒の持ち帰りは居酒屋の免許とは別なのか😳」「持ち帰りだと販売として扱われるので☺️」「なるほど〜」「本来だと酒販免許を取るのはかなり面倒なんですけど、その店は5日ぐらいで取れたって😋」「そういえば都内で店やってる知り合いも2日で取れたって言ってました😋」「都内だと特に早いらしい」「ではつっつき始めましょう〜」 参考: 酒類のテイクアウト販売が可能になる「期限付酒類小売業免許」とは?

                                                                週刊Railsウォッチ(20200427前編)Railsで避けたい8つのミス、ridgepole導入の注意点、RDS ProxyのPostgreSQL対応ほか|TechRacho by BPS株式会社
                                                              • RubyKaigi 2024 のサイネージについて

                                                                今月中旬に沖縄県那覇市で RubyKaigi 2024 を開催した。COVID-19 対応をしていた RubyKaigi Takeout 2020, RubyKaigi Takeout 2021, RubyKaigi 2022, RubyKaigi 2023 とは異なり、今回は配信を伴わないオフラインのみの開催だった。 わたしは Organizer の一人として Sponsor Relations 業などをしつつ、Wi-Fi の支度をしたり、サイネージの支度をしたりしていた。Wi-Fi の話はこれまでもいくつか書いている のでまた今度として、今回はサイネージの話をかきます。 RubyKaigi ではいくつかのサイネージの映像を用意して会場のあちこちに表示している。各セッション会場の横に添えて字幕やチャット, LT タイマーを流すサブスクリーン、お知らせやセッション案内を廊下に設置したモニタ

                                                                • How to Fix Slow Code in Ruby

                                                                  Opens in a new windowOpens an external siteOpens an external site in a new window By Jay Lim and Gannon McGibbon At Shopify, we believe in highly aligned, loosely coupled teams to help us move fast. Since we have many teams working independently on a large monolithic Rails application, inefficiencies in code are sometimes inadvertently added to our codebase. Over time, these problems can add up to

                                                                    How to Fix Slow Code in Ruby
                                                                  • Railsのパターンとアンチパターン4: コントローラ編(翻訳)|TechRacho by BPS株式会社

                                                                    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Ruby on Rails Controller Patterns and Anti-patterns | AppSignal Blog 原文公開日: 2021/04/14 著者: Nikola Đuza: ハンガリーNovi Sad在住のエンジニア兼ライター、ブログや登壇で知識の普及に努めています。JavaScriptやRubyで面白いものを作るのが好きです。 サイト: AppSignal Blog Ruby on Railsのパターンとアンチパターンシリーズの第4回目にようこそ。 前回までの記事では「一般的なパターンとアンチパターン」「Railsのモデル関連のパターンとアンチパターン」「Railsビューのアンチパターン」をそれぞれ取り上げました。今回は、MVC(Model-View-Controller)の最後であるRails

                                                                      Railsのパターンとアンチパターン4: コントローラ編(翻訳)|TechRacho by BPS株式会社
                                                                    • Rails で大量のレコードを並列処理する - ボクココ

                                                                      ども、@kimihom です。 今回、大量のレコードを一つずつ処理する実装をしたので、その実装方法をまとめておく。 コードの大枠 以下は全ユーザー(User)に紐づいているレコード(Record) に対して処理をするコードとなっている。 User.all.order("id").each do |u| r_all = u.records r_all.find_in_batches do |records| Parallel.each(records, in_threads: 50) do |r| begin # 処理 ActiveRecord::Base.connection_pool.with_connection do # ActiveRecord を使った処理 end rescue => e puts "err #{e}" end end end r_all = nil end fi

                                                                        Rails で大量のレコードを並列処理する - ボクココ
                                                                      • Practicing Railsの良さを広めたい - Eat, Play, Nap and Code

                                                                        はじめに www.justinweiss.com ちょっとずつ読んでいたPracticing Railsという本を読み終えたので、簡単な書評でも書いてみようかと思います。 日本語になっていないけど、本当にためになるよい本なのでみんな読んでほしい。 久々にこの電子書籍を読んでみたけど、どのページもすごくいいこと書いてあるなー。時間があったら翻訳したい。(時間があれば) Practicing Rails: Learn Rails Without Getting Overwhelmed - Justin Weiss https://t.co/cX1hX18t8M— Junichi Ito (伊藤淳一) (@jnchito) 2021年5月17日 伊藤淳一 (id:JunichiIto)さん(この本の存在を教えてくれたのも伊藤さん)がいつか翻訳してくれるかもですが、その日が来るまでは英語で読んでも

                                                                          Practicing Railsの良さを広めたい - Eat, Play, Nap and Code
                                                                        • 画像管理をActiveStorageからCarrierWaveへ乗り換えた話 - dely Tech Blog

                                                                          本記事は dely Advent Calendar 2019 22日目の記事です。 qiita.com adventar.org 昨日はiOSエンジニアのknchstが「“ダーク“な2019年」という記事を書きました。 tech.dely.jp こんにちは、delyでサーバーサイドエンジニアをやっているyamanoiです。 弊社のとあるプロダクトにて画像アップロード処理周りに、ActiveStorageを使用していたのですが、使いづらい点がいくつかあったため、採用実績があったCarrierWaveへ乗り換えました。 この記事ではなぜ乗り換えたのかと、乗り換える手順を書いていきたいと思います。 なぜActiveStorageから乗り換えたのか 1. CDNとの相性が悪い 2. 画像のリクエストがRailsに向いてしまう 3. DBへのリクエストが頻繁に走る CarrierWaveへ乗り換える

                                                                            画像管理をActiveStorageからCarrierWaveへ乗り換えた話 - dely Tech Blog
                                                                          • Active RecordでRow Level Securityを使って安全にテナント間のデータを分離する - SmartHR Tech Blog

                                                                            従業員データベース機能の開発を担当している渡邉です。最近公開したGemであるactiverecord-tenant-level-securityの紹介をします。 SmartHRにおけるマルチテナントの現在 私たちが開発するSmartHRはお客様ごとに1つの環境を提供する、マルチテナント型SaaSです。サービス全体で1つのデータベースを持ち、複数のテナントのデータが混ざらないように、SQLで問い合わせを行います。 1つの環境ごとに1つのデータベースを持つ方式は安全性の面で優れていますが、スキーマの保守やマイグレーションにかかる時間の増加など、多くの技術的な困難をもたらします。この選択の背景については、2018年に書かれた以下の記事もご覧ください。 tech.smarthr.jp とはいえ、常にテナントごとのWHERE句を意識しながらコードを書くのは大変ですし、不具合の温床になります。幸い、私

                                                                              Active RecordでRow Level Securityを使って安全にテナント間のデータを分離する - SmartHR Tech Blog
                                                                            • Rails 7.1にバージョンアップしました - inSmartBank

                                                                              こんにちは、サーバーサイドエンジニアのmitaniです。先月、B/43を構成するシステムのうち、3つのRailsリポジトリの7.1バージョンアップが完了しました! 大きな躓きポイントはなかったのですが、参考までに手順やRails 7.1の内容を紹介しようと思います。 B/43のアーキテクチャ https://smartbank.co.jp/recruit/engineer-summary B/43は、上の図のように複数のサービスから構成されています。そのうちRailsで作られているサービスが3つあります(core-api / auth-api / aml-api)。バージョンアップする際には3つまとめて行う運用をとっているため、今回も3つバージョンアップしました。 各リポジトリは全てDocker化されています。各リポジトリのDockerfileは、共通してruby等をインストールしているベ

                                                                                Rails 7.1にバージョンアップしました - inSmartBank
                                                                              • Rails 6からActiveRecordのAssociationはscopingの影響を受けなくなっている件と対処法

                                                                                こんにちは。日本ではすっかり秋の空が近づいてきました。個人的に夏は暑さが苦手であまり好きではないのですが、終わってしまうとなると毎年どこか寂しい気持ちになります。 一方で、秋はご飯が美味しいので食べる事が好きな僕にとっては一番好きな季節でもあり、結構心が踊っています。笑 さて、前置きは置いといて今回は表題の通り、とあるRails 5.2プロジェクトをRails 6にアップグレードした際に、ActiveRecordのscopingの仕様変更を踏んでしまったのでその対処法をご紹介します。 そもそもscopingとは ActiveRecord::Relation の機能で、引数にブロックを受け取り、その中では、実行時に適用されていたスコープを全クエリでデフォルトで適用する、と言う物になります。 例として、deleted_at (timestamp, nullable) と言うattributeを

                                                                                  Rails 6からActiveRecordのAssociationはscopingの影響を受けなくなっている件と対処法
                                                                                • Introducing new features for the aws-sdk-rails gem | Amazon Web Services

                                                                                  AWS Developer Tools Blog Introducing new features for the aws-sdk-rails gem The Ruby SDK team is happy to announce that we’ve added new features and consolidated existing gems into the aws-sdk-rails gem to make developing Rails applications using AWS easier than ever. Features supported Amazon Simple Queue Service (SQS) queue adapter for ActiveJob (new) ActiveSupport::Notification instrumentation

                                                                                    Introducing new features for the aws-sdk-rails gem | Amazon Web Services