Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

YassLabのブックマーク (3,841)

  • ActiveRecordでよくみるSTIをPrismaで再現する(ついでにポリモーフィックも) - Qiita

    STIについてPrismaでもできないのか検証してみました。なお、なるべくの時間短縮のため、コードや図の内容はChatGPTにヒントをもらいながら実装していますので、誤りがあればご連絡いただけると幸いです。 STI(Single Table Inheritance) Single Table Inheritance(STI)は、複数のモデルを単一のデータベーステーブルに収納できるオブジェクト指向パターンの1つです。RailsのActiveRecordが代表的ですが、他のプログラミング言語のフレームワークにも同じ概念を実装しているものもあります。 クラス図を以下のように定義します。 DBとしてはCar、Truckは存在せずVehicleだけが作成されます。これが名前の由来となってることがわかると思います。(Single Table→テーブル1つ) Ruby + ActiveRecord Ru

    ActiveRecordでよくみるSTIをPrismaで再現する(ついでにポリモーフィックも) - Qiita
    YassLab
    YassLab 2024/12/23
    “ActiveRecord + Ruby で実装 - 当たり前ですがRuby + ActiveRecordではいとも簡単に実装可能です。DBの設定やMigrationなどは省きます。/ Prisma + TypeScript - 作るのが面倒なのでやめました(笑)”
  • 【Rails】Active Record暗号化を試してみた

    はじめに お疲れ様です。 おおくまです。 今回は、「【Rails】Active Record暗号化を試してみた」ということで、Active Record暗号化についてまとめてみました。 少しでも皆様の参考になりますと幸いです。 対象読者

    【Rails】Active Record暗号化を試してみた
    YassLab
    YassLab 2024/12/23
    “今回はArticleテーブルのbodyカラムを暗号化 ; 実務ではメールアドレスや住所などの個人情報を暗号化することが多いかと思います。万が一、データベースに不正アクセスされた場合の保険として、Active Record暗号化を使用”
  • Rails で既存テーブルに STI を適用する時に気をつけること

    Rails の STI (Single Table Inheritance) は、1つのテーブルで複数のモデルを管理できる便利な機能です。しかし、既存のテーブルを STI に移行する際には注意が必要です。今回は、実際に遭遇した問題とその解決策について共有します。 問題が発生した状況 既存のテーブルに STI を導入するため、以下の変更を1回のリリースで行おうとしました。 type カラムの追加 サブクラスの追加 デプロイの流れは以下のようになっていました データベースのマイグレーション実行(db:migrate) Rails アプリケーションの再起動 この時、マイグレーション実行から Rails の再起動までの間に ActiveRecord::SubclassNotFound エラーが発生しました。 なぜ問題が起きたのか Rails では、テーブルに type カラムが存在すると、自動的に

    Rails で既存テーブルに STI を適用する時に気をつけること
    YassLab
    YassLab 2024/12/23
    “この設定方法はRailsガイドにバッチリ記載がありました https://railsguides.jp/association_basics.html#継承カラムを無効にする”
  • Ruby 2.5→3.3、Rails 5.2→7.0 バージョンアップの振り返り! - ユニファ開発者ブログ

    この記事はユニファアドベントカレンダーの21日目の記事です。 adventar.org こんにちは、サーバーサイドエンジニアの横山です。 今年は、フォトサービスのRuby/Railsの大幅なバージョンアップを実施しました! Ruby/Railsのバージョンアップは私にとって初めての経験だったので、どのような手順が必要で、どれだけ時間がかかるか未知数でした。 手探りで進めた部分も多かったため、(次回バージョンアップする際の自分のためにも^^;)今回は手順や気をつけるポイントをまとめておきたいと思います。 一昨年〜昨年に同じチームの方が書いた記事も参考にさせていただきました! Railsのプロダクションコードを約1万行削除しました - ユニファ開発者ブログ チームのKPTで振り返るRailsRubyバージョンアッププロジェクトのはなし - ユニファ開発者ブログ Ruby2.7/Rails6.1

    Ruby 2.5→3.3、Rails 5.2→7.0 バージョンアップの振り返り! - ユニファ開発者ブログ
    YassLab
    YassLab 2024/12/23
    “最終的に、今回は以下のバージョンまでアップデートしました。 Ruby: 2.5 → 3.3 Rails: 5.2 → 7.0”
  • RubyのHash、Struct、OpenStruct、Data、Class、ActiveModel、ActiveRecordどうやって使いわけてる? - DIGGLE開発者ブログ

    あるキーに対して値(バリュー)を持つ、いわゆるキーバリューのようなデータ構造はプログラミングでよく使います。Rubyでそれを扱うには複数の選択肢(Hash、Struct、OpenStruct、Data、Class)があり、Ruby on Railsを使う場合さらにActiveModel、ActiveRecordもあります。この記事では私の知っている特徴と、使いわけを紹介します。 こちらはRuby Advent Calendar 2024の12/6日分の記事です。 Rubyアドベントカレンダー6日目に書けたわけではありませんが、Rubyに関係ある記事をタイミングよく公開することになったのと、せっかくなら自分が好きな言語のカレンダーを埋めたい気持になったので参加しました! 私はこう判断してます RDBの読み書きに使いたい? 同じ値を保持しているなら同じ物と考えたい? Hashの柔軟さを制限した

    RubyのHash、Struct、OpenStruct、Data、Class、ActiveModel、ActiveRecordどうやって使いわけてる? - DIGGLE開発者ブログ
    YassLab
    YassLab 2024/12/23
    “概観をつかむにはリファレンスよりRailsガイドがよいと思いますのでActive Record の基礎をどうぞ。 言わずと知れたRailsの強力なライブラリです。”
  • 今年もイベントに参加(出展)してきたよ - CoderDojo西那須野などなど

    CoderDojoの活動には様々な形があると思うのですが、CoderDojo西那須野では毎月一回開催しているドージョーの他に、地域のイベントに参加することがあります。「子どものためのプログラミング」ではありますが、道場というよりは楽しく体験することに重きを置いています。 ここではCoderDojoの2024年アドベントカレンダーの16日目として、今年のイベント参加(出展)について簡単にまとめたいと思います。 2023年にCoderDojo西那須野が置かれている栃木県那須塩原市が主催するイベント、「なすしおばら まなび博覧会」にSTEAM教育コーナーの1つとして、プログラミングでの出展オファーを受けました。出展形式はお任せされたので、ワークショップ形式にすることも考えたのですが、そのイベントが学校の文化祭に近いこども向けのイベントなことから、より短時間で体験できるコーナーにしようと考えたのが

    今年もイベントに参加(出展)してきたよ - CoderDojo西那須野などなど
    YassLab
    YassLab 2024/12/21
    “より短時間で体験できるコーナーにしようと考えたのが、ちょっと立ち寄ってプログラミングする「立ちプロ」 / テーマに沿った作品を作ってもらい、ランドでみんなに見てもらう”
  • 第6回Minecraftカップ Road to Minecraft カップ in 富山 2024 ~子どもたちの挑戦を応援しよう~ These Are the Voyages…

    第6回Minecraftカップ Road to Minecraft カップ in 富山 2024 ~子どもたちの挑戦を応援しよう~ These Are the Voyages… このブログは CoderDojo Advent Calendar 2024 19日目の記事として登録しています。 昨年に引き続き、今年もRoad to Minecraftカップ in 富山 ~子どもたちの挑戦を応援しよう~ 2024」を開催して参加チームを応援してきました! Road to Minecraftカップ in 富山とは 【Road to Minecraftカップ in 富山】は、富山県内のMinecraftカップ出場を盛り上げるために企画されたイベントです。富山市が「未来共創」を推進する拠点として整備したビジネス交流・共創施設『スケッチラボ』とCoderDojo富山をはじめとした富山県内のCoderDo

    第6回Minecraftカップ Road to Minecraft カップ in 富山 2024 ~子どもたちの挑戦を応援しよう~ These Are the Voyages…
    YassLab
    YassLab 2024/12/21
    “今回の経験を通じて、子どもたちは「機会があれば、知らない間に成長していく」ことを改めて感じさせられました。大人が見守り、挑戦の場を提供することで、子どもたちは可能性を広げていくのだと実感”
  • 退職した今だから言える!Railsができないのにできると言い張って入社したRailsエンジニアの末路 - Qiita

    この記事は ex-crowdworks Advent Calendar 2024の20日目の記事です。 はじめに 今年、株式会社クラウドワークスを退職した@nisyuuです。お気に入りのティッシュは鼻セレブです。 エンジニアとしてクラウドワークステック(旧クラウドテック)というフリーランスと企業をマッチングするエージェントサービスを開発していました。 クラウドワークステックはRuby on Railsで開発をしているのですが、入社直前の私はRuby on Railsができませんでした。 できると言って入社してしまったのですが、なんとかRailsエンジニアとして開発に加わることができました。 今回はどのようにRailsのスキルを手に入れ、入社直後からRails実装できるようになったか紹介します。 必死だったあの頃 クラウドワークス入社前は、職がありませんでした。 家もありませんでした。 なん

    退職した今だから言える!Railsができないのにできると言い張って入社したRailsエンジニアの末路 - Qiita
    YassLab
    YassLab 2024/12/20
    “チュートリアルで基礎を学習し、オリジナルアプリ開発で応用を学習する方法は他のフレームワークや言語を習得するのに非常に有効的です。”
  • 【Rails7】パフォーマンス測定ヘルパー「benchmark」で、特定の処理の速度を測ってみる

    #db/seeds.rb User.create!( name: "kamekame", email: "example-1@practice.com", password: "password", password_confirmation: "password" ) 700.times do |n| Post.create!( title: Faker::Music.band, content: "example-#{n+1}", user_id: 1 ) end ②benchmarkヘルパーをcontrollerに埋め込む 今回は、 ①posts#indexにアクセスし、@posts = current_user.posts.order(created_at: :desc)の処理を終えるまでにかかる時間 ②posts#showにアクセスし、@post = current_user.p

    【Rails7】パフォーマンス測定ヘルパー「benchmark」で、特定の処理の速度を測ってみる
    YassLab
    YassLab 2024/12/20
    “Railsを学ぶ中で、処理速度の測定に興味を持ちました。 調べていくと、Railsで使用することのできる「benchmarkヘルパー」を見つけたため、実際に試してみました。”
  • 安全なRailsのバージョンアップを目指して

    記事はSimpleForm Advent Calendar 2024の19日目の記事です。 今回は、シンプルフォーム株式会社が提供する「SimpleCheck」および「SimpleMonitor」において、Ruby on Railsのバージョンを 6.1.7.9 から 7.0.8.1 へアップデートした際の進め方をご紹介します。 Railsバージョンアップ時に感じる課題 Railsのバージョンアップはこれまで何度か経験しましたが、特にレビュアー視点から以下のような課題を感じていました。 差分が膨大なPRのレビューが困難 多くのファイルが変更されると、変更点の意図や影響範囲を把握しづらくなります。 設定変更の影響範囲が不明確 前のバージョンからの変更点がどこで、何がどう変わったのかを素早く理解しにくい状況に陥りがちです。 テストが通っているからといって、少しの動作確認で問題なさそうだからと

    安全なRailsのバージョンアップを目指して
    YassLab
    YassLab 2024/12/19
    “Railsバージョンアップの一般的な手順 - Railsガイドの Rails アップグレードガイド に沿った流れは以下が一般的です。”
  • セキュリティ、DB設計、パフォーマンス分析__。Railsを使ったWebアプリ開発をパワーアップする書籍6冊 | レバテックラボ(レバテックLAB)

    TOPコラムプロフェッショナルの技術書セキュリティDB設計、パフォーマンス分析__。Railsを使ったWebアプリ開発をパワーアップする書籍6冊 日Rubyの会代表理事 高橋 征義 株式会社達人出版会代表取締役、一般社団法人日Rubyの会代表理事。20世紀末よりWeb制作会社にてプログラマーとして勤務する傍ら、任意団体として日Rubyの会を設立。後に法人化し、現在まで代表理事を務める。2010年よりITエンジニア向けの電子書籍の制作と販売を行う達人出版会を創業、現在まで代表取締役。ほか、RubyKaigiや技術書典の運営にも関わる。著書に『たのしいRuby』(共著)など。好きな作家は新井素子。 X:@takahashim keyboard_arrow_down はじめに keyboard_arrow_down 想定しているレベル感について keyboard_arrow_down

    セキュリティ、DB設計、パフォーマンス分析__。Railsを使ったWebアプリ開発をパワーアップする書籍6冊 | レバテックラボ(レバテックLAB)
    YassLab
    YassLab 2024/12/18
    “Railsアプリ開発者は全員データベース設計者でもある、ということです。これはDBに詳しい人にDBのスキーマ設計をお願いするべきではなく、Railsアプリ開発者全員がスキーマ設計できなければいけない、ということ”
  • ActiveStorageでアップロードしたファイルに認証をかける

    初投稿です。 最近業務にてActiveStorageでアップロードしたファイルをログインしたユーザーのみ閲覧できるようにしたいという要件をいただいたため、技術的なアウトプットの練習も兼ねて実装方法を記事にまとめました。 ActiveStorage 公式ドキュメントにもある通り、ActiveStorageでアップロードしたファイルに認証をかけるには自前で認証機構を実装する必要があります。 開発環境 ruby 3.3.0 (2023-12-25 revision 5124f9ac75) Rails 7.1.3.4 DevContainerを使用して開発しています。 準備 ActiveStorageの初期設定、Deviseなどの基的な認証機構は実装済みである前提で進めます。 class User < ApplicationRecord devise :database_authenticata

    ActiveStorageでアップロードしたファイルに認証をかける
  • PKSHA FAQ のリファクタリング&リアーキテクチャの取り組み|PKSHA Delta

    こんにちは、PKSHA Communication で PKSHA FAQ 開発チームのテックリードをしている清水です。PKSHA FAQ は Ruby on Rails で作成されています。稿では PKSHA FAQ が現在取り組んでいるリファクタリング&リアーキテクチャの一部をご紹介させていただきます。 清水 勇太(CS 事業部 FAQ 事業部 ソフトウエアエンジニア) 前職にてソフトウエアエンジニア〜フルスタックエンジニアとして経験を積んだ後、PKSHA Communication  へ入社。入社後は複数の新規サービスをメインで立ち上げ、現在は PKSHA FAQ の開発チームのテックリードを手掛けている。 課題アーキテクチャの寿命に関してはさまざまな見解がありますが、個人的には概ね 5 年程度が一つの目安であると考えています。実際に PKSHA FAQ のソースコードの Git

    PKSHA FAQ のリファクタリング&リアーキテクチャの取り組み|PKSHA Delta
    YassLab
    YassLab 2024/12/18
    “PKSHA FAQ は Ruby on Rails で作成されています”
  • Railsのパフォーマンスを向上させる ActiveRecordの基本と最適化手法 - Qiita

    はじめに 日々のコードリーディングの中で「これは何のデータを取得しているのか?」と疑問に感じることがあります。 特に、ActiveRecordに定義されたカスタムクエリを読み解く必要がある場合、基をしっかり理解していないと迷子になりがちです。 ActiveRecordはRailsアプリケーションの中心的な要素であり、モデルクラス内で頻繁に活用されています。 なので、この基を押さえなければ、コードリーディングはおろか、メンテナンスや機能追加も難しいと感じています。 そこで、記事ではRailsガイドを参考に、ActiveRecordの基を理解し、Railsガイドを読んでいて気になった、カスタムクエリや最適化手法に焦点を当てていきます。 目次 はじめに ActiveRecord::Base の概要 ActiveRecordの内部動作 関連付け(アソシエーション)の活用 遅延読み込みとN

    YassLab
    YassLab 2024/12/17
    “ガイドだけでもかなりの量がありますが、一個一個理解して自分のものにしていきたい”
  • プログラムを約3200倍高速化して、社内業務のボトルネックを解消したお話 - Tabelog Tech Blog

    はじめに この記事は べログアドベントカレンダー2024 の16日目の記事です🎄 こんにちは。べログ開発部ウェブ開発1部 システム運用改善チーム所属の @4palaceです。 今回は、私の所属するシステム運用改善チームで、とある社内業務の処理パフォーマンスを改善した事例を紹介します。 この事例では、10日間かかっていた処理を、少しの改修で10分未満に短縮しました。 改修量としては小さくとも、大きなパフォーマンス改善を実現でき、運用業務の効率化につながりました。 個人的に興味深い例でしたので、ここで共有させていただきます。 問題の発見 月次処理が月内に終わらない! きっかけはカスタマーサポートチームからの相談でした。 「月次の新店舗の登録チェック業務で行われているマッチング処理が遅すぎて、後続の業務も含めて月内に終わらなくなってきている。どうにかできませんか?」 そもそもこの業務とは

    プログラムを約3200倍高速化して、社内業務のボトルネックを解消したお話 - Tabelog Tech Blog
    YassLab
    YassLab 2024/12/17
    “10日かかっていた処理が10分未満で完了 / わずか20行程度の修正で爆速になる / 開発を高速化するには、問題・真因のいち早い特定が不可欠”
  • PDD: Presentation Driven Development を勧めたいので聞いてくれ - freee Developers Hub

    こんにちは!freee の債権請求書領域の開発をしている hachi です。この記事は freee Developers Advent Calendar 2024 - Adventar の 13 日目の記事です。 今年ももうすぐ終わりますね。みなさん今年はどうでしたか?私は今年を振り返って自分は発表 Driven で開発するのが一番捗るなと思ったのでその話をします! Presentation Driven Development とは、発表の予定を先に押さえておくことで生産性を著しく上げる開発方法です。(勝手に作った用語なので後ろで詳しく説明します。) 今年の振り返り 今年は以下の登壇・執筆を行いました!(細かいものを挙げるともう少しあります) Drive Your Code ~ Building an RC Car by Writing Only Ruby~ - Speaker Deck

    PDD: Presentation Driven Development を勧めたいので聞いてくれ - freee Developers Hub
    YassLab
    YassLab 2024/12/16
    “ラジコン作成本は Ruby on Rails チュートリアル の 読み物ガイド でも紹介いただきました!”
  • Next.js App router セキュリティで気をつけること

    はじめに Next.jsのApp routerは、server components/server actionsによって、フロントエンドとバックエンドを型安全にやり取りでき、開発体験がとても良いですよね。 しかし、フロントエンドとバックエンドの境目がわかりづらくなったので、何も考えずに実装していると、フロントエンドにセキュアな情報が露出してしまうリスクが高まります。 そこで今回は、App routerを使う中で、セキュリティで気をつけることを紹介します。 先に言うと、フロントエンドとバックエンドの境目に気を遣えば基良いかなと思います。 クライアントコンポーネントのpropsを当に必要な情報だけにする App routerでは、 をする流れが多いです。 クライアントは、サーバーのデータをpropsで受け取れてしまうので、props経由で受け取るデータを気をつける必要があります。 例えば

    Next.js App router セキュリティで気をつけること
    YassLab
    YassLab 2024/12/16
    "フロントエンドとバックエンドの境目がわかりづらくなったので、何も考えずに実装していると、フロントエンドにセキュアな情報が露出してしまうリスクが高まります。"
  • Join Slido: Enter #code to vote and ask questions

    Participate in a live poll, quiz or Q&A. No login required.

    Join Slido: Enter #code to vote and ask questions
    YassLab
    YassLab 2024/12/12
    "セキュリティの観点からはフロントエンドのWAFとバックエンドのWAFをそれぞれ別々に使うのではなく、1つのフルスタックのWAFを使うことがリスク軽減に繋がるのでしょうか? (A. 防げる脆弱性は多い。が、基本はご自由に)"
  • Vue.jsでOpenAI APIを使って話し相手をつくる

    はじめに 2024年1月からエンジニアとして勤務開始予定です。 2023年12月からプログラミング学習を開始して、10月から転職活動を始めて、11月に転職先が決まりました。 今は入社に向けて学習を進めているところです。 転職先の会社でVue.jsを使っているとわかり、最近学習を始めました。 動画教材を見てインプットを進めていましたが、覚えることが多くダレてきました。 いったん今わかっていることで、何か作ってみて、足りないところを後から足していこうと考えました。 作ったもの 普段話し相手がいないので、ChatGPTAPIを使って話し相手になってもらおうと考えました。 もちろん普通にChatGPTを使えばいいのですが、今回は学習用ということで自分で作ってみることにしました。(世の中にまだないものを思いつくのは難しいですね...) 最初に完成したVue.jsのコードを見せます。 <script

    Vue.jsでOpenAI APIを使って話し相手をつくる
    YassLab
    YassLab 2024/12/12
    “転職活動中は、転職活動と並行してポートフォリオのブラッシュアップを行っていました。転職活動後は、基本情報技術者試験の学習とRailsチュートリアルを進めていました。”
  • 働きながら、子育てしながら、大学院に通う - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事はコインチェック株式会社(以下、コインチェック)のアドベントカレンダー11日目(シリーズ1)の記事です。コインチェック Advent Calendar 2024 はじめに 私は文系出身で、 「情報系の学位が欲しい。体系的な知識を学びたい」 と思っていました。 でも、 「仕事も子育てもあるし…無理か…」 と諦めていました。 ところが、現在は情報系の大学院で学んでおり、あと3ヶ月で卒業できるところまで来ました(!) ↑入学式のとき そんな目標を叶えた私が、 「情報系の大学院に興味があるけど、実際どうなの?」 という人に向けて、以下を

    YassLab
    YassLab 2024/12/12
    "特に印象に残った科目たち..フレームワーク開発特論: Railsチュートリアルを進める授業..業務でRailsを利用しており、授業についていくのに支障はありませんでしたが、安川先生の授業を受けられることは非常に貴重な経験"