こちらでも同じものを書いています https://ttis.croud.jp/?uuid=97316adb-4153-45a2-8ea4-70beb76f2be6 1.前提として 私は日頃はサーバ側をNode.js+TypeScriptで構築しているので、その感覚をRailsに持ってきています。ということでRailsで書くべき流儀は全て無視というか、そもそも知りません 2.環境設定 yarnのインストール(Railsはnpmのパッケージ管理をyarn前提としているようなので)
I learned to code in the Javascript stack [1] and am building a Javascript based product [2]. I never questioned this stack: many companies default to it, JS everywhere seems good, and the community is big. But for my new side project I decided to try Rails because despite some perception that Ruby on Rails is ‘over’, people in HN comments say it was somehow more enjoyable than the newer Node base
こんにちは、アプリケーションを開発する皆さんはデータベースのテーブルやカラムにコメントを書いていますか?本記事ではテーブルコメントやカラムコメントといったメタデータについて以下の点をご紹介します。 メタデータ未整備だったSmartBank社内で「メタデータ大事だね…」と理解するにいたった背景をほんの少し 既存のテーブルやカラムへのメタデータ追加作業を簡易化する小さい工夫(こちらが本旨です) SmartBankが提供するプロダクトB/43の開発で主に使用しているRailsとMySQLを前提とした内容になりますが、アイデア自体は他の言語やデータベース製品でも有用かと思います*1。 データベースのメタデータとは? MySQLなどのデータベース製品ではテーブルやカラムにコメントを付与することができます。本記事ではこれらのコメントのようなデータを説明するためのデータをメタデータと呼びます。 MySQ
この記事は京都開発拠点アドベントカレンダー 18日目の記事です。 マネーフォワードには開発拠点が複数ありますが、技術情報はSlackで議論・共有されています。 今日はそんなSlackの中から、東京拠点と京都拠点を跨いで開催した「Railsへコントリビュートする勉強会」について、東京拠点のアルパカ隊長が紹介します。 はじまりのSlack ふとした時に、社内SlackのRubyチャンネルでこんな会話がありました。 @alpaca-tc 程よい難易度で、kamipoさんが「これ自分がやらんでもええやろ」みたいなissueがあれば このslackに投げてもらって 誰かシニアエンジニアがサポートしつつ、新卒がRailsコントリビュートするみたいなのやりたい:eyes: すると、kamipoさんからすぐ解決できるものは見た瞬間に直してしまっていると前置きがあった上で、 こんなissueを教えてもらいま
皆様こんにちは、サーバーサイドエンジニアの草分です。 最近ポケモン最新作を買ってしまったのでひたすら野原でボールを投げ続ける日々を送っています。 さて本題に入りましょう。 Amazon ECRには、pushしたコンテナイメージへのイメージスキャン(脆弱性診断)機能があります。 Image scanning - Amazon ECR メドピアではこれを利用して全社横断的にアプリの脆弱性の検知および可視化を行っています。 脆弱性が検知された場合の表示 この記事では、Railsアプリをイメージスキャンした際の【偽陽性】警告の問題と、その解決策について紹介いたします。 問題 ECRのイメージスキャンには「基本スキャン」「拡張スキャン」の2種類があり、この内の拡張スキャン(Enhanced scanning)では、Rubyのgemやnpmのパッケージなども診断の対象となります。 Gemfile.lo
Tailwind CSS for Railsを使って、NodeをインストールせずにTailwind CSS 3を導入する みなさんこんにちは。この記事はRuby on Rails Advent Calendar 2021の20日目の記事です。 20日は誰も埋めていなかったようなので(と言いつつもう日付も変わってしまっているのですが)、Tailwind CSS for Railsというgemについて書きます。 Tailwind CSSとRails Tailwind CSSは最近流行のCSSフレームワークで、Utility-Firstと呼ばれている思想に基づいています。これはある意味、従来のCSS設計のベストプラクティスの真逆を行くようなもので、class="flex items-baseline mt-4 mb-6 pb-6 border-b border-gray-200"みたいなスタイル
この記事は CAMPHOR- Advent Calendar 2022 の18日目の記事です。 2017年に「買ってよかったもの」というウェブサイトをリリースし運営していますが、リリースから5年経った今 PaaS 移行のため技術スタックも一新しフルスクラッチで書き直したのでその話をします。 ソースも公開しています。 github.com 「買ってよかったもの」とは Heroku 無料プラン終了に伴う移行検討 Vercel + PlanetScale への移行 新アプリの技術スタック (Next.js + Prisma + tRPC) パフォーマンスチューニング Rails vs Next.js Heroku に感謝 宣伝 「買ってよかったもの」とは 「買ってよかったもの」は Amazon で買ってよかったものを投稿・共有するサービスです。自分が投稿した商品へのリンクは自分のアフィリエイトリ
FindyでEMをしている栁沢(@nipe0324a)です。 今回は、FindyのとあるRailsのCIのテスト実行時間を10分から5分に高速化した話をご紹介します。 「CIのテスト実行時間が遅い...」 「CIの実行時間を短くしたい!!」 と感じている方はぜひご覧くださいませ。 Findyでは2024年2月現在、1人あたり1日4プルリクを平均で作っています。静的解析や自動テストなどを即時に行うCI環境がないとスピード感のある開発ができなくなるため、CIを高速で回しタスクを完了させる必要があります。機能も増え、テストケースも拡充したことでCIの高速化が求められるようになりました。 また、個人的には、CIは遅くても10分、理想は5分以内で終わるのを1つの目安にしています。これぐらいのスピード感でCIが完了すると、「プルリク作ってレビュー依頼する」、「レビューコメントもらって対応する」といった
Java、Goに続きRuby on Railsに対応。セキュアコーディングのeラーニング「KENRO」がアップデート 株式会社Flatt Securityは4月26日、Webエンジニアのセキュアコーディング習得を支援するSaaS型eラーニングサービス「KENRO(ケンロー)」において、脆弱性が埋め込まれたソースコードを修正する「堅牢化演習」の対応言語として新たにRuby(Ruby on Rails)を追加したことをお知らせします。 「KENRO」公式ページ https://flatt.tech/kenro ■「KENRO」について 「KENRO」はWebエンジニアのセキュアコーディング習得を支援するSaaS型eラーニングサービスです。 「資料に目を通して三択問題のテストを受けるだけ」という一般的なeラーニングとは異なり、攻撃者が用いる手法を体験する「ハッキング演習」や、脆弱なソースコードを
3行まとめ Rails 7.1 から dup, freeze, hash, object_id, class, clone, frozen は column 名や enum の種類として使えなくなる可能性が高い 該当 column を持つ Model の initialize で ActiveRecord::DangerousAttributeError が発生する 各位そういった名前を使わない、rename するなど身構えておきましょう 起きていた問題 会社の Rails アプリケーションに対して rails/rails の main branch を使ってテストを走らせていたら以下のようなエラーを数多く見かけるようになった。 ActiveRecord::DangerousAttributeError: object_id is defined by Active Record. Che
やったこと 自分の持ち手の中に以下の三拍子が揃ったプロダクトがあったのでruby 3.0まであげて強い気持ちで型を入れていくことにしました。 立ち上げ間もない(利用者も限定的) 各種ライブラリが最新(変な古いバージョンに影響されることが少ない) 今後そこそこの機能拡張が見込まれる うちのチームでは初めてのRuby 3.0&型付だったけどやっていき 結論成果物 tool RBS Steep API周りのモデル層に型定義を導入 circleciによる自動テストの追加 Rubyの型とは Rubyの静的解析はv3.0で導入された新機能になります。 型定義はrubyのコードの外側にRBSファイルとして定義していきます。 2010年代は静的型言語の時代でした。Rubyは抽象解釈を武器に、型宣言なしで静的型チェックする未来を目指します。RBSとTypeProfはその第一歩です。Rubyがもたらす誰も見た
(2021/9/27追記: この記事の内容に色々追加した物をzennへ載せました Deserialization on Rails) この記事はRuby on Rails Advent Calendar 2019 - Qiitaの11日目です。 この記事を見ている方はRailsアプリケーションの開発をしている方が多いと思います。手元のRailsリポジトリでちょっとbin/rails routesを試してみてください。 出力結果に以下のURLは含まれていたでしょうか? rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show rails_blob_representation GET /rails/active_storage/repr
2019.11.05 週刊Railsウォッチ(20191105前編)Rails 6のデフォルト設定解説、DHHも消したいaccepts_nested_attributes_for、スライド『実践Railsアプリケーション設計』ほか こんにちは、hachi8833です。今年の3連休は昨日のでおしまいだそうです。 実を言うと今年の祝日はもうだめです。 突然こんなこと言ってごめんね。 でも本当です。 この週末から月曜にかけて 3連休が来ます。 それが終わりの合図です。 3週間後に土曜日に潰される祝日が来るので 気をつけて。 それが過ぎたら、もう今年が終わるまで 祝日はありません。 — usa (@unak) November 1, 2019 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のよう
@sugamasaoさんと共著でRails本を執筆しました。Railsを始めたばかりの人向けの特集から、Rails 6の新機能紹介まで幅広く書かれたムック本です。今日から9日後の10月26日に発売予定です(電子書籍も同じくらいに発売されるはず)。 Ruby on Rails 6 エンジニア 養成読本posted with amazlet at 19.10.16すがわら まさのり 前島 真一 技術評論社 売り上げランキング: 2,448 Amazon.co.jpで詳細を見る @sugamasaoさんの書籍紹介エントリはこちら sugamasao.hatenablog.com 内容紹介 @sugamasaoさんが目次や対象読者を紹介しているので、こちらでは具体的にどんな内容を扱っているかを箇条書きにしておきます。Railsの新機能を追いかけていない人にとっては、なにこれ?となったり、名前は知っ
これはなに 8.0.0 Milestoneを見て気になったものをまとめています マイルストーンは先週くらいにできたのですがもうマージされているやつもたくさんあります DHHが年末年始にめっちゃ働いている 気になったものたち Ruby3.3以上のサポート DHHは最初3.3以上で、という気持ちだったんだけど流石にみんな大変やろ、という意見が出て結局リリース時(2024年の予定)にサポートされているRubyのバージョン、つまり3.1以上に落ち着いた PR: Bump the required Ruby version to 3.1.0 by byroot · Pull Request #50491 · rails/rails ↑のPRでは「メジャーバージョンアップ時にRubyのサポートを落とす」だとRails自体のメンテも大変だしアプリケーション開発者も大変なので、毎回マイナーバージョンアップ
Rails アプリケーションに gRPC を導入したときの話 こんにちは、エンジニアの齊藤です。 この記事は Enigmo Advent Calendar 2020 の10日目の記事です。 本日は、Kubernetes にデプロイした複数の Rails アプリケーション間のデータのやり取りに gRPC を採用した開発について ruby の実装を中心にいくつか共有したいと思います。 ruby を使った gRPC の開発という内容はオフィシャルのスタートガイドで細かく説明されているものがありますので、そちらを踏まえて実際どのように Rails アプリケーションに組み込んだのかという内容でまとめてみました。 まずは Protocol Buffers についてです。 Protocol Buffers によるサービスの定義 gRPC を利用するためには Protocol Buffers という ID
日本唯一のRuby on Rails コミッター 兼 Rubyコミッターである松田明さんが、このたびRIZAPテクノロジーズ社の技術顧問として就任しました。今後、プロダクトの開発支援や若手育成に携わっていただくことになります。そこで今回は、RIZAPの若手エンジニアと対話をしていただきました。 盛りだくさんの内容となったため、インタビューの模様は3回に分けてお届けします。 PART1のテーマは「これからのエンジニアに求められるものとは」。 若手エンジニアに松田さんが送るメッセージとは? RIZAPへの就職や転職を考えている人はもちろん、プログラミングに興味がある人は必読です! >>>PART2(→「Rubyの魅力について」)はこちら >>>PART3(→「RIZAPがメインスタックとしてRubyとRailsを採択した理由」)はこちら ■プロフィール 松田明/国内唯一のRuby on Rai
こんにちは、技術部の深谷(@fukajun)です。 先日(2020年10月3日)行われたKaigi on Railsにて、「Rubyで書かれたソースコードを読む技術」というタイトルで発表しました。 発表した内容について 仕事やプライベートではメインのRubyも含めていくつかの言語にふれていますが、Rubyで書かれたコードは非常に読みやすいと日々感じています。 基本的には、Ruby/Railsのコードは複雑なロジックでもすんなり理解できることが多いです。 とはいえ、なかなか動きがわからないコードに出会うこともあります。 今回は、そういった場合に自分がやっていることを中心に紹介しました。 発表資料 当日、使用した発表資料です。 発表動画 Rubyで書かれたソースコードを読む技術 / fukajun 発表に含めることができなかった内容について ここからは、時間の都合で本編に盛り込めなかった内容を
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Encapsulate each validation error as an Error object | Saeloun Blog 原文公開日: 2020/06/17 著者: Alkesh Ghorpade サイト: Saeloun モデルのsave、create、updateアクションが失敗した場合のRailsのerrorsの表現方法が#32313で変更されました。 変更前 たとえばUserというモデルがあり、そこにfirst_name、last_name、contact_number、emailなどのカラムがあり、どれも必須だとしましょう。Userオブジェクトを作成するときにfirst_nameやcontact_numberをstringとして渡さないと、#errors関数が以下のようなエラーを出力します。 class U
はじめに 今回はタイトルにある通りdockerを使用してrspecのSystem testを実行したので備忘録的に記事にしました。 こちらのrails+mysqlの環境にRSpec用の環境を加えた形になります。基本的にRSpecを追加する部分のみを記載します。 rails+mysqlの環境についてはこちらの記事をご覧ください。 Dockerを使用した既存のRailsプロジェクトの開発環境構築(Rails+Mysql) 構成としてはrails+MySQL+test用のdb+systemspec用に selenium/standalone-chrome-debugを用いた環境となります。 対象読者 既存のrailsプロジェクトの開発環境にdocker+rspecを利用したいかた。 dockerはダウンロード済みとしています。 参考 こちらの記事を参考にさせていただいております。 Docker
こんにちは、開発部の高橋です。 最近弊社のRailsプロジェクトでactive_hashというgemが使われ始めました。 個人的にも結構重宝しているgemでとても便利なのですが、一方で特性を理解せずに使うとハマりやすいgemでもあると思っています。 今回は、ActiveHashのクラシルでの事例と自分の過去の知見に基づくハマりポイントなどを書いていきます。 目次 目次 ActiveHashとは クラシルでの事例 導入経緯 使われ方 ハマりポイント インスタンス変数がクラスインスタンス変数相当 データがロードされるタイミング(特にActiveYaml, ActiveJsonの場合) 対応策 最後に ActiveHashとは データをRDBではなくHashやYAMLで定義し、それをActiveRecordライクに利用できるGem。 コード上にデータを持つためmigrationやseedなどの考
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: How to write Javascript in Rails 6 | Webpacker, Yarn and Sprockets 原文公開日: 2019/12/13 著者: Younes SERRAJ サイト: CapSens -- フランスのFinTech系Web開発会社です タイトルは内容に即したものにしました。画像は元記事からの引用です。 2020/01/16: 初版公開 2021/05/13: 更新 皆さんはアセットやJavaScript周りの変更で消耗してませんか?npm、Babel、ES6、Yarn、Webpack、Webpacker、Sprockets、これらのどこがどう違うのかさっぱりわからなかったりしますか? Rails 6アプリケーションでJavaScriptエコシステム全体がどのように機能しているかという
Rails 7.1正式リリース。本番デプロイ用のDockerfile自動生成、遅いクエリの非同期化など新機能 Ruby言語によるWebアプリケーションフレームワークの最新版となる「Rails 7.1」正式版がリリースされました。 Rails 7.1: Dockerfiles, BYO Authentication, More Async Queries, and more!https://t.co/c32MdUifNs — Ruby on Rails (@rails) October 5, 2023 メジャーバージョンアップとなったRails 7の登場が2021年12月。 Rails 7は、フロントエンド開発環境が刷新されてNode.jsを用いない構成がデフォルトとなり、TurboとStimulusという2つのフレームワークを搭載したHotwireなどが搭載されるなど、大型のアップデートで
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: What's the Best EC2 Instance Type for Rails Apps? - FastRuby.io | Rails Upgrade Service 原文公開日: 2020/10/28 著者: Noah Gibbs サイト: FastRuby 皆さんはAmazon EC2 インスタンスタイプのリストをご覧になったことはありますか?このリストにはさまざまなサイズの仮想マシン(VM)が並んでいて、皆さんはこれらをレンタルしてコードを実行できます。グループごとにさまざまなサイズのVMが山ほどあるので、サイズによってグループ分けされています。 では「Railsアプリを動かすならEC2インスタンスのどのタイプで動かすべきでしょうか?」 その答えは見た目よりもシンプルです。百聞は一見にしかず。 皆さんは数字がお好きで
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: 25 reasons to switch to Webpack(er) - rossta.net 原文公開日: 2020/03/02 著者: I'm Ross Kaffenberger サイト: rossta.net webpack/Webpackerで使える有用なツールも本記事で多数紹介されています。 画像は元記事からの引用です。 最近こんなことをよく聞かれます。「webpackとかWebpackerで頑張る価値ってあるの?」 よい質問だと思います。そして私の短い回答は「イエス」です。 近年JavaScriptコミュニティにおける認知度が急上昇していることで、フロントエンド開発用のツール、開発エクスペリエンス、最適化に巨大なイノベーションが続いています。 Railsはかつて最前線に躍り出ていました。登場した当時のRailsアセッ
As some questions have been raised about how the Rails project’s governance functions, we’d like to clarify how the team is structured and how we operate: Ruby on Rails is an Open Source project run by the Rails Core team. In addition to the Core team we have two additional teams - the Committer team who can merge code changes, as well as the Issues team who can triage issues and merge documentati
Kaigi on Rails 2022 Day2 で発表する内容です。 【資料内参考したものリンク】 texta.fm - 9. The 20th Anniversary of TDD https://texta.pixta.jp/entry/2022/03/10/150000 ASTERセミナー標準テキスト|Kouichi Akiyama|note https://note.com/akiyama924/m/m6981810393cd Software Design 2022年3月号|技術評論社 https://gihyo.jp/magazine/SD/archive/2022/202203 ソフトウェアテスト技法練習帳 ~知識を経験に変える40問~ https://gihyo.jp/book/2020/978-4-297-11061-1
どうもこんばんは、Railsを10年程やっているwebエンジニアです 唐突ですがフリーランスをはじめてみました(実際に稼働し始めたのではなくフリーランスとしての活動をはじめてみました) 転職系の記事はよく見かけるのですがあんまりフリーランスはじめました系の記事は見かけない気がしたのでせっかくなので書いてみようと思います 僕は今まで 自分でサービスを作る 広告収入 売る というサイクルで生きており、年に1回くらい「ここ手伝って欲しい」という知人づてのリファラルだったりDMをもらったりでチームにjoinしてちょっと働いてまた戻るという感じでした リファラルで働く場合は面接なんて形だけで即日で入る形になりますし、事前に僕の事をなんとなく知っていてくれるので「僕が頑張ってアピールする」必要がなくどちらかというとあっち側がアピールしてくれるという至れり尽くせりな状況で、一言で言ってしまえばぬるま湯の
本記事は7年前の2015年1月、私が前職の技術ブログに投稿した記事の再掲版となります。 元のブログが閉鎖していたのでこちらに移します。 前職の会社が買収された後、文章は取っておいたのですが、特に読まれることもなかろうと下書きで放置していました。 この度伊藤さんのtweetをきっかけに再掲することにしました。 久々にこの記事を読もうと思ったんですが、もうアクセスできなくなっちゃってますね。。 南谷さんの個人ブログに転載できたりしないかな〜?— Junichi Ito (伊藤淳一) (@jnchito) 2022年1月10日 伊藤さん、掘り起こしありがとうございました。 初めての技術ブログに思っていた以上に反響があって当時はとても嬉しかったのをよく覚えています。 b.hatena.ne.jp 改めて読み返してみると苦笑いが浮かんで書き直したい衝動にかられますが、無効なリンクを削除した以外は原文
2週目を終わらす事ができました!!!僕は圧倒的に1週目より達成感が大きいです!!1週目は10日間を費やし理解できたのは半分あるかなぁという感じでした。しかし2週目は1週目で分からなかったことや疑問点を解決するところが多く楽しかったです。また個人的な意見ですがRailsチュートリアルはPDFのページにして700ページ以上あります。コツコツ取り組み身につけていくのもいいと思いますがやはり量が多いので短期集中で一気に取り組んだ方がより深い知識を身につけられるなと感じました。1週目は苦戦しながら10日間、2週目は楽しく進められ5日間の計15日間で終わりました。Railsチュートリアルは基礎が詰め込まれていてとても良い教材ですが、まだまだ力としては基本的な知識をある程度身につけただけなので、さらに知識を詰め込んでいきたいと思います。次の課題はインスタグラムのクローン作成ですので気を抜かず頑張っていき
ファイルの種類(MIME Type)を識別するライブラリであるMimeMagicで発覚したGPL問題が波紋を広げている。 MimeMagicは従来MIT Licenseでライセンスされるオープンソースソフトウェアであったが、コアとなるマジックナンバー識別データベースのfreedesktop.org.xmlが、GPL v2.0でライセンスされるfreedesktop.org/shared-mime-infoの成果物であることが判明(minad/mimemagic Issue #97)。 GPLでライセンスされるファイルと一体のものとして提供されるソフトウェアは、同じくGPLでライセンスすることが再配布の条件となる。MimeMagicのメンテナは、即座にライセンスをGPL v2.0に変更した新しいバージョンをリリースすると共に、誤ったライセンスを適用していた過去のバージョンをパッケージマネージ
「【ハイブリッド開催】Rubyで追求するモジュラモノリスの可能性」は、バックエンドにRubyを採用している株式会社タイミー、hacomono社、ワンキャリア社が、Rubyにおけるモジュラモノリスの可能性や良い点、悪い点を共有する勉強会です。ここで株式会社タイミーの須貝氏が登壇。まずは、Railsでモジュラモノリスを実現する3つの代表的パターンと、各パターンの評価について話します。 須貝氏の自己紹介 須貝俊 氏:では、「RailsでModular Monolithを選択された御社に質問したいN個の疑問」というタイトルで発表をしたいと思います。 (スライドを示して)まずは自己紹介をしたいと思います。須貝と申します。タイミーには、2022年1月からジョインしています。スポットワークシステム領域というところで、チーム名がIronBank Squadという、企業さま向けの請求や、ワーカーさまへの給与
OAuth2やOpenID Connectの理解を深めようと思い、 OAuth徹底入門 セキュアな認可システムを適用するための原則と実践(Justin Richer Antonio Sanso 須田 智之 Authlete, Inc.)|翔泳社の本 Auth屋さんの書籍 【電子版】雰囲気でOAuth2.0を使っているエンジニアがOAuth2.0を整理して、手を動かしながら学べる本 - Auth屋 - BOOTH 【電子版】OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本 - Auth屋 - BOOTH 【電子版】OAuth・OIDCへの攻撃と対策を整理して理解できる本(リダイレクトへの攻撃編 - Auth屋 - BOOTH OAuth認証とは何か?なぜダメなのか - 2020冬 - r-weblife OAuth & OpenID Connect 関連仕
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く