並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 2943件

新着順 人気順

gemの検索結果281 - 320 件 / 2943件

  • AWS Lambda でコンテナに入れた Sinatra を動かす - id:onk のはてなブログ

    何番煎じか分からないけど、最近やったので。 前提知識 AWS Lambda + Amazon API Gateway で HTTP リクエストを受け付けることができる AWS Lambda ではコンテナイメージを動かせる New for AWS Lambda – Container Image Support | AWS News Blog AWS Lambda で Sinatra アプリを動かすための公式サンプルがある https://github.com/aws-samples/serverless-sinatra-sample つまりコンテナ化した Sinatra アプリを Lambda 上にデプロイして HTTP リクエストを受け付けることができる。 動かす準備はもう全部整っていて、お手軽そうですね。 Ruby アプリを Lambda で動かすコンテナイメージを作る Sinatra

      AWS Lambda でコンテナに入れた Sinatra を動かす - id:onk のはてなブログ
    • Feature Toggleを用いたRailsアプリの継続的なリリースと要注意事項 - メドピア開発者ブログ

      はじめに 皆様こんにちは、サーバーサイドエンジニアの草分です。 突然ですが、開発者の皆様、実装したソースコードはこまめにリリースしていますか? 「大きい機能なので開発に時間がかかる」「障害が起きないよう念入りにテストする必要がある」などの理由で、Featureブランチのままコミットグラフが伸びに伸びたりしていませんか? 大きな機能を作ること自体は悪いことではありませんが、大きすぎるFeatureブランチは、本流ブランチとの挙動の乖離やコードの衝突が発生しやすく、レビューやマージに多大な苦労を伴います。 この記事では、この問題の解決策の1つとなる「Feature Toggle」を、Ruby on Railsにおける実装方法と共にご紹介します。 Feature Toggle自体は開発手法の一種であるため、言語/フレームワークを問わず広く活用されています。 Feature Toggleとは 「機

        Feature Toggleを用いたRailsアプリの継続的なリリースと要注意事項 - メドピア開発者ブログ
      • GitHub Actions上で独自のワークフローを構築しやすくするための仕組み - Pepabo Tech Portal

        本エントリはGMOペパボエンジニア Advent Calendar 2021の25日目のエントリです。メリークリスマス! はじめまして、技術部技術基盤チームの@k1LoW と申します。最近はYouTube Musicの「おすすめのアーティスト」をふらふらと漂流するのが好きです。その漂流で見つけた Nubiyan Twist がカッコいいです。 GMOペパボではGitHub Enterprise Server (以下、GHES)を利用しており、CI/CD基盤としてGitHub Actionsを活用しています。 本ブログでも様々なGitHub Actions活用事例を紹介しています。 #GitHub Actions に関する記事一覧 手動で実施していた業務やタスクをGitHub Actionsのワークフローとして構築しなおす GMOペパボではGitHub Actionsをいわゆる「CI/CDの

          GitHub Actions上で独自のワークフローを構築しやすくするための仕組み - Pepabo Tech Portal
        • クジラに乗ったRuby: Evil Martians流Docker+Ruby/Rails開発環境構築(更新翻訳)|TechRacho by BPS株式会社

          さて、どこからお話を始めましょうか。ここに到達するまでに長い長い旅路をたどりました。かつて私は開発にVagrantを使っていましたが、当時のVMは私の4GB RAMのノートPCでは少々重すぎました。そして2017年にコンテナへの乗り換えを決意したときに、やっとDockerを使い始めました。 しかしDockerで問題がたちまち解決したという気持ちではありません。自分自身やチーム、そしてすべての人々にとって完璧な設定を追求し続けてきましたが、「これでよし」と言える究極の設定はありません。標準的なアプローチを見出すまでにかなりの時間を要しました(2019年に本記事を最初に公開した時点でも相当の時間を費やしていました)。 本記事を最初に公開して私の秘密を隅々までオープンにして以来、多くのRailsチームや開発者が私の手法を採用し、さらに改良や貢献にもご協力をいただきました。 前置きはこのぐらいにし

            クジラに乗ったRuby: Evil Martians流Docker+Ruby/Rails開発環境構築(更新翻訳)|TechRacho by BPS株式会社
          • 映画館は「3密」か?空気の流れを可視化した「映画館の換気実証実験」が公開 | THE RIVER

            新型コロナウイルス感染拡大となって、新たな基準となった「3密」。「密閉」「密集」「密接」の意味だが、果たして映画館はどうか。少なくとも多くの来場客が劇場内に集まり、締め切った空間で2時間前後を過ごすことになるが……。 新型コロナウイルス感染拡大は映画界も直撃。2020年4月から5月の映画館の長期休業、また新作映画の公開延期、映画製作に遅れが生じるなどの大きな打撃を受けた。このまま映画館に人が戻らないとなると、業界そのものが衰退する。そこで全国興行生活衛生同業組合連合会(以下:全興連)は、興行場での空気の流れを「可視化」した『映画館における換気実証実験』を実施。3密の「密閉」にはあたらないと証明している。監修は愛知医科大学 感染症科の三鴨廣繁教授。実験協力は愛知県立大学 看護学部の清水宣明教授。 実験では、映画館内(客席数352席)にスモークを充満させ、スモークが完全に消えるまで何分かかるか

              映画館は「3密」か?空気の流れを可視化した「映画館の換気実証実験」が公開 | THE RIVER
            • Rubyの型チェッカーのSorbetを導入しました - freee Developers Hub

              申告チームでテックリードをやらせてもらっている id:nanjakkun です。 freeeではfreee会計をはじめ多くのプロダクトがRuby on Rails(以下Rails)のアプリケーションとして実装されています。 日々の開発の中で、Rubyでも静的な型の解決ができればなあと思うことがあります。 ということで、Rubyの型チェッカーのSorbetをfreee申告に導入してみました。 Sorbet(ソルベ)とは sorbet.org 決済代行サービスのStripeを運営しているStripe社が公開している漸進的型チェッカーです。 ※余談ですがfreeeアプリストアではStripeを決済手段としたアプリの有料販売ができます。 developers.freee.co.jp 有料アプリ販売の準備をする | freee Developers Community 漸進的型付けとは 漸進的型付け

                Rubyの型チェッカーのSorbetを導入しました - freee Developers Hub
              • Rubyの静的型検査を利用した開発手法の現状まとめ

                Leaner 開発チームの黒曜(@kokuyouwind)です。 先週はBurikaigi2022で登壇させていただきました! 今回はリモート開催でしたが、来年は現地でブリしゃぶを食べられると良いですね! Burikaigi ではRBSから始める静的型付け生活と題して、 Ruby の静的型検査の概要や開発手順などについて登壇しました。 入門的な内容ではありますが、今回は発表内容を大まかにまとめた記事をお届けします。 なお記事の構成上、発表内容から一部割愛している話がありますがご容赦ください。[1] Ruby 静的型検査の概要 TypeScript の台頭や Python 3.5 での型注釈記法の導入など、動的型付けの言語においても静的型検査の仕組みを導入する動きが近年活発です。 Ruby においても 2020 年 12 月にリリースされた Ruby 3.0.0 において RBS と Typ

                  Rubyの静的型検査を利用した開発手法の現状まとめ
                • Ruby の型チェッカーの比較 | Wantedly Engineer Blog

                  はじめにこんにちは、Wantedly の 2021 年サマーインターンに参加した宮下と申します。今回のインターンでは三週間の間 DX (Developer Experience) チームに所属し、Wantedly のコードベースに Ruby の型チェッカーの導入を試みることをテーマにしていました。 インターンの前半では、様々な型チェッカーの性能を調べたり、それぞれの型チェッカーを実際に使ってみることで、開発効率を基準とした比較を行いました。インターンの後半では、現段階では一番実務に適しているだろうと判断した Sorbet に焦点を当て、Wantedly のいくつかのコードベースに実験的に Sorbet を導入した環境を作った型情報をつけていく作業をしていました。 本記事は、主にインターンの前半で調査した、型チェッカーの比較という部分に焦点を当て、文章の形にまとめたものになります。 Ruby

                    Ruby の型チェッカーの比較 | Wantedly Engineer Blog
                  • SSMって20種類あんねん 〜Run Commandで定期バッチを起動する〜 - NRIネットコムBlog

                    どうも。小林です。 みなさん、自動化してますか? 私の課では特定の顧客のシステムを多数運用しています。 かなり多くのシステムがあり、顧客側の担当者も異なるため、弊社側でも複数のチームを組んで手分けしてシステムを担当しています。 チームも顧客担当者も異なるとなれば、当然運用のやり方はシステムごとに変わってきます。その一方で統一できる部分は統一しておかないと全体の統制は効きづらくなってしまいます。 そこで「標準化チーム」を発足し、チーム間で共用するシステムのアカウント管理やその申請ルール、顧客報告やメンバーの勤怠管理といったものの標準化を進めています。 標準化の恩恵のひとつとして、「作業が単純化できて自動化しやすくなる」という点が挙げられます。 例えばアカウント発行の申請フォーマットを統一すると、「フォーマットにしたがって記載されたテキストをバッチに読み込ませてアカウントを自動的に発行する」と

                      SSMって20種類あんねん 〜Run Commandで定期バッチを起動する〜 - NRIネットコムBlog
                    • Rails開発でやっておくと良かったCI設定集 - STORES Product Blog

                      STORES 予約 でwebアプリケーションエンジニアをやっております。ykpythemindです。 Rails開発で、どのようなアプリケーションでも抑えておくとチーム開発が少し楽になるポイントがあります。今回はいくつか実例を載せながら紹介します。 アプリケーションの設計的な部分や実装には踏み込まず、すぐに導入できます。 あくまでRailsアプリケーションについての記事ですが、他言語やフレームワークを用いていても同様のことができます。 1. シードデータが壊れないようにCIで担保する 新しいメンバーが入って環境構築をしてもらう度にシードデータが壊れており、 db/seeds.rb *1 を直すという作業を何回か経験しています。db/seeds.rbで実行する内容をテスト中に実行しておくとメンテされるようになります。 # db/seeds.rb # 定数データが必要であればここで呼ぶ req

                        Rails開発でやっておくと良かったCI設定集 - STORES Product Blog
                      • 『設計ナイト2024』に行ってきたよメモ - コード日進月歩

                        『設計ナイト2024【オフライン】 - connpass』に参加してきたのでそのメモです。 各発表の感想 ※資料スライドは見つけたら貼ります。 ロジックから状態を分離する技術 今日の登壇資料です。 ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyhttps://t.co/XxBNAYiKXS #sekkeinight— わいとん (@ytnobody) 2024年6月14日 感想 純粋関数の話を基軸にいかに容易にしていくのか、という話 入力から必然的に出力が決まるロジック類をDomainとしておこうという発想はよかった 純粋関数の構成デザインパターンの分け方すごくいいなぁと思ったのと、このあたりの話を提唱している人いないのがびっくり 関連リンク 純粋関数とは - 意味をわかりやすく - IT用語辞典 e-Words Flux パターンが解決した課題 -

                          『設計ナイト2024』に行ってきたよメモ - コード日進月歩
                        • Misocaフロントエンドの歴史と未来 - 弥生開発者ブログ

                          こんにちは、 @mugi_uno です。 Misocaがサービスローンチされたのは 2011年です。実は2021年は10年目ということで何気に節目の年だったりします。 10年もあれば世の中的にもさまざまな技術変遷があり、Misocaもその波に乗っていけるよう、日々改善を繰り返してきました。 というわけで今回は、私自身がフロントエンド側の作業を多くやってきたこともあり「この10年間でMisocaのアーキテクチャがどのように変わってきたのか?」をフロントエンド側に焦点を絞って振り返ってみたいと思います。 ※ 意思決定に関する資料が無いものも存在するため、一部は情報に基づく推察になる点をご承知おきください。 年表 いきなりですが、ざっくり年表を書いてみました。 上部の黄色いラインは、フロントエンドに大きい影響を与えたMisocaの機能です。 これをもとに、サービスローンチから順を追って見てみます

                            Misocaフロントエンドの歴史と未来 - 弥生開発者ブログ
                          • AWS + ngx_mruby で SSL 証明書の動的読み込みシステム構築 - メドピア開発者ブログ

                            CTO室SREの @kenzo0107 です。 2021年6月24日に「 kakari for Clinic ホームページ制作 」がリリースされました。 kakari for Clinic ホームページ制作 今回は上記サービスで採用した、 AWS + ngx_mruby で構築した SSL 証明書の動的読み込みシステムについてです。 SSL 証明書を動的に読み込みする理由 kakari for Clinic ホームページ制作の1機能で、制作したホームページに独自ドメインを設定する機能がある為です。*1 複数ドメインでアクセスできる =複数ドメインの SSL 証明書を読み込む を実現する必要があります。 動的に SSL 証明書を読み込むには? 以下いずれかのモジュールを組み込むことで SSL 証明書の動的読み込みが可能になります。 ngx_mruby lua-nginx-module 以下理

                              AWS + ngx_mruby で SSL 証明書の動的読み込みシステム構築 - メドピア開発者ブログ
                            • Androidの父、とても細長いスマホ「GEM」を披露 「根本的に異なるフォームファクタ」

                              “Androidの父”と呼ばれるアンディ・ルービン氏は10月9日(日本時間)、新しいスマートフォンと思われる製品「GEM」をTwitterに投稿した。 新端末のコードネームは「GEM」。ルービン氏のツイートを見ると、新端末は一般的なスマートフォンを垂直に2分割したような細長い形状だ。画面には地図やカレンダーなどが表示されているが、既存のAndroidアプリとは異なるユーザーインタフェース(UI)を採用しているように見える。 ルービン氏は端末自体について詳しく説明していないものの、UIについては「根本的に異なるフォームファクタのための新しいUIだ」としている。 端末の背面には、見る角度で色が変わる光沢素材を採用。ツイートでは4色のカラーラインアップを紹介している。 ルービン氏が率いる米Essential ProductsのTwitterアカウントもGEMについて投稿。「われわれはモバイル端末

                                Androidの父、とても細長いスマホ「GEM」を披露 「根本的に異なるフォームファクタ」
                              • Rails 6リリース記念!?Qiitaにいろいろ記事を書きました - give IT a try

                                先日、Rails 6が正式にリリースされました。 ついにRails 6が正式リリースされたようです!🎉 Rails 6.0: Action Mailbox, Action Text, Multiple DBs, Parallel Testing, Webpacker by default, and Zeitwerk | Riding Rails https://t.co/pHoJb68B97— Junichi Ito (伊藤淳一) (@jnchito) 2019年8月16日 だから、というわけでもないのですが、Rails関連の記事をいくつか書いてQiitaにアップしています。 Railsアプリのアップグレードの手順 1つ目はRailsアプリのアップグレード(バージョンアップ)の手順です。 永久保存版!?伊藤さん式・Railsアプリのアップグレード手順 - Qiita qiita.com

                                  Rails 6リリース記念!?Qiitaにいろいろ記事を書きました - give IT a try
                                • モックしないテストも書く話 - STORES Product Blog

                                  STORES 予約 でwebアプリケーションエンジニアをやっております。ykpythemindです。 皆さん、Webアプリケーションのテストを書いていますか。 モック(mock)を使っていますか。 今回は自動テスト上で、偽物だけではなく(要所で)本物を使おうよという話を書きます。 想定読者としては主にRuby on Railsを開発しているバックエンドエンジニアを想定しています。 モックとは 今回のモックの定義は以下にしておきます。 *1 実際の外部サービスや内部サービスの代わりをする偽のサービスを作成することです。 ref: https://circleci.com/ja/blog/how-to-test-software-part-i-mocking-stubbing-and-contract-testing/ Rubyでは外部サービスとの接合部で、 RSpecの allow(xx).

                                    モックしないテストも書く話 - STORES Product Blog
                                  • パーフェクトRails【増補改訂版】を読んで、パーフェクトすごい…って思いました:)|tatsuosakurai

                                    著者の1人である すがわらまさのりさん から恵贈賜りました『パーフェクト Ruby on Rails 【増補改訂版】』、とても読みたかった本なので嬉しいです。ありがとうございます! パーフェクトRuby on Rails【増補改訂版】 2020/7/25日発売ですが、店頭に並んでいるところもあるようです。 Railsの基本から実戦レベルの応用、最近のナウいRails環境も書かれており、パーフェクトな内容で、初心者から上級者にもオススメの書籍です:) 「パーフェクト Ruby on Rails」の初版は、2014年7月10日とあるので、約6年ぶりの増補改訂版ですね(Railsのバージョンは、初版で4.0-4.1でしたが増補改訂版では6.0です。月日の流れを感じますね)​。 表紙Rubyを乗せた列車のCG、初版の列車と比べるとだいぶテクノロジーが進化した感じの列車になっていて速そうです。下の方

                                      パーフェクトRails【増補改訂版】を読んで、パーフェクトすごい…って思いました:)|tatsuosakurai
                                    • RailsアプリをRBS + Steepで型チェックするまでの手順 - アジャイルSEの憂鬱

                                      rails new してから steep check が通るまでにやってみた作業をまとめておく。 GitHub コードはGitHubで公開しているので、詳細な手順を知りたい方は参照してください。 github.com 手順 gemを入れる steepとrbs_railsをGemfileに追加する。 # Gemfile group :development do gem 'rbs_rails', require: false gem 'steep', require: false end bundle install を実行する。 $ bundle install rbs_rails のREADMEの手順に従って lib/tasks/rbs.rake を作成する。 # lib/tasks/rbs.rake require 'rbs_rails/rake_task' RbsRails::Rak

                                        RailsアプリをRBS + Steepで型チェックするまでの手順 - アジャイルSEの憂鬱
                                      • activerecord-originator をリリースしました - pockestrap

                                        こんにちは。 id:Pocke です。 今日は activerecord-originator という gem を作ったので紹介します。 github.com なにこれ Active Record が発行するSQLの各部分に、それがどこで作られたものかをコメントとして入れ込む gem です。 理解するには実例を見るのが早いでしょう。次のログはArticlesController#indexで実行されるクエリの例です。 Article Load (0.1ms) SELECT "articles".* FROM "articles" WHERE "articles"."status" = ? /* app/models/article.rb:3:in `published' */ AND "articles"."category_id" = ? /* app/controllers/artic

                                          activerecord-originator をリリースしました - pockestrap
                                        • Railsアプリの開発環境を速くするための調査 その1 - gemの読み込み時間 - アジャイルSEの憂鬱

                                          その1って書いたけど、続くかは不明。 今回は使っているgemの読み込み時間を測ってみた。 Benchmark を仕込む config/application.rb でgemを読み込む前に Kernel.require を上書きして、計測する。 +require 'benchmark' +$result = {} +Kernel.singleton_class.prepend(Module.new do + def require(feature) + ret = nil + $result[feature] = Benchmark.realtime { ret = super } + ret + end +end) Bundler.require(*Rails.groups) +$result.sort_by { |_, t| -t }.take(20) + .each { |featur

                                            Railsアプリの開発環境を速くするための調査 その1 - gemの読み込み時間 - アジャイルSEの憂鬱
                                          • Ruby gem で Rust をつかって爆速にしたい!!!!!!11

                                            Ruby Gems で Rust が Native として利用可能になった のでとりあえず UUIDv4 を生成してみた。 リポジトリ 準備 Ruby 側の gem に Rust を利用する準備として rb_sys と rake-compiler を利用します。この二つの gem は native compile するためにインストールしておきます。 Rust 側から Ruby へ関数を公開するために rb-sys と magnus を利用します。 gem install とりあえず cargo で Rust のパッケージを作って Rust を書いてみます。 > bundle gem rust_uuid --mit --ext rust_uuid # --ext を指定してnative build する gem を作成 > cd rust_uuid # 作成した gem のディレクトリへ移

                                            • 永久保存版!?伊藤さん式・Railsアプリのアップグレード手順 - Qiita

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

                                                永久保存版!?伊藤さん式・Railsアプリのアップグレード手順 - Qiita
                                              • mimemagicに依存しなくなったmarcelのmime type判定の変化には気をつけようって話 - Tallman

                                                mimemagic gemのライセンス問題で色々ありましたね。ライセンスは法的な問題なので確認も難しい問題でした。 さて、marcelからmimemagicへの依存が無くなってmime typeの判定がApache Tikaを元にしたものになりました。 hackmd.io しかし、この変更にはmarcelのmime type判定結果が変化するものが含まれていました。 例えば、以下のsample.xlsxというファイルのmime typeの判定をMarcel: 1.0.0、0,3,3それぞれに行わせると... ❯ xxd sample.xlsx 00000000: 504b 0304 1400 0808 0800 3123 7d52 0000 PK........1#}R.. 00000010: 0000 0000 0000 0000 0000 1800 0000 786c ........

                                                  mimemagicに依存しなくなったmarcelのmime type判定の変化には気をつけようって話 - Tallman
                                                • BigQueryの監査ログをリアルタイムに監視して使いすぎを防止してみる - ZOZO TECH BLOG

                                                  こんにちは。SRE部の塩崎です。七味唐辛子の粉末を7種類に分類するという趣味を発展させて、おっとっとを新口動物と旧口動物に分類するという趣味を最近発明しました。 BigQueryは非常にパワフルなData WareHouse(DWH) SaaSであり、大容量のデータを一瞬で分析できます。しかし、課金額がスキャンしたデータ量に比例するという特徴があるため、意図せずに大量のデータをスキャンしてしまい大金を溶かしてしまうことを懸念する人もいます。 qiita.com そのため、課金額が大きすぎるクエリを発見した際にSlackへ通知する仕組みを作りました。GCP Organization内の全プロジェクトで実行されたBigQueryの監査ログをリアルタイムにチェックすることによってこの仕組みは実現されています。本記事では作成したシステムを紹介します。 なお、本記事は以下のQiita記事に着想を得た

                                                    BigQueryの監査ログをリアルタイムに監視して使いすぎを防止してみる - ZOZO TECH BLOG
                                                  • Prism:エラートレラントな、まったく新しいRubyパーサ | gihyo.jp

                                                    Ruby 3.3リリース! 新機能解説 Prism⁠⁠:エラートレラントな⁠⁠、まったく新しいRubyパーサ Prismは、Ruby 3.3.0にバンドルされた新しいライブラリで、プログラミング言語Rubyの新しいパーサであるPrismパーサのバインディングです。Prismはエラートレラント、移植性、メンテナンス性、高速性、効率性を考慮して設計されています。この記事では、Prismの歴史、設計、API、そして今後の課題について取り上げます。 使用方法 Rubyバインディングを通してPrismパーサを使うにはrequire "prism"をして、Prismモジュールのparseメソッド、または他のparse_*系のメソッドを呼んでください。次に例を示します。 require "prism" Prism.parse("1 + 2") parseメソッドは、パース結果のオブジェクトを返します。こ

                                                      Prism:エラートレラントな、まったく新しいRubyパーサ | gihyo.jp
                                                    • Puma 5がリリース!スリープソートによる高速化など(翻訳)|TechRacho by BPS株式会社

                                                      概要: Puma 5は当プロジェクトの大きなメジャーリリースであり、実験的な新パフォーマンス機能がいくつも導入されたほか、多数のバグ修正や機能追加も行われました。その中でも最も重要な目玉機能についていくつかお話しいたします(1839 word/7分)。 Puma 5(コードネーム Spoony Bard1)が本日リリースされました(私の誕生日です!)。このリリースにはさまざまなものが盛り込まれていますので、Pumeユーザーの皆さまが自信を持ってアップグレードできるよう、Pumaのさまざまな機能や変更点についてお話しいたします。 ⚓ MRI + クラスタモードでの実験的パフォーマンス機能 今回のリリースの見出しを飾るのはたぶんこれでしょう。メモリ使用量を削減する機能が2つと、レイテンシを削減する機能が1つ加えられました。 Puma 5には以下の3つの実験的パフォーマンス向上機能が含まれていま

                                                        Puma 5がリリース!スリープソートによる高速化など(翻訳)|TechRacho by BPS株式会社
                                                      • Railsプロジェクトをモジュール分割して見通しをよくする|こんぴゅ

                                                        今年もRubyKaigiが始まりましたね!noteはrubyスポンサーとして協賛しています。三重の会場にきている方は、ぜひnoteのブースにも足を運びください。 さて、noteはRuby on Railsを用いたwebサービスとして2014年にリリースされました。現在でも継続してRailsのコードベースを利用しています。 しかし、多くの機能がリリースされ、開発者も増えたため、モノリスの巨大化が進んでおり、開発効率に影響が出始めていました。 今回はそれらの問題を解消するために、noteが継続的に取り組んでいる・取り組んできたバックエンドの改善プロセスについて説明していきます。 モジュールでサービスを構成するモノリスは大きくなるとメンテナンスが難しくなります。Railsは、MVCの各層に全てのドメインがフラットに並び、レイヤごと・レイヤ間の結合度が高くなる設計思想で、巨大モノリス化への対処が難

                                                          Railsプロジェクトをモジュール分割して見通しをよくする|こんぴゅ
                                                        • ActiveRecord::Base.transaction(joinable: false)を使ってはいけない - SmartHR Tech Blog

                                                          注意喚起の記事になります。タイトルが結論です。 既にこの問題に言及している記事はいくつかあるのですが*1、私は気付かずに踏んでしまったので、タイトルで「おっと、うちは大丈夫かな」と思ってもらえるようにこの記事を書いています。 joinableとは何か 問題として挙げているjoinableオプションですが、これはネストしたトランザクションの挙動に影響を与えます。少しややこしいので、サンプルコードを見せながら説明します。 # frozen_string_literal: true require "bundler/inline" gemfile(true) do source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } gem "activerecord", "7.

                                                            ActiveRecord::Base.transaction(joinable: false)を使ってはいけない - SmartHR Tech Blog
                                                          • wkhtmltopdfの次どうするか問題 - おもしろwebサービス開発日記

                                                            wkhtmltopdfというライブラリは、HTMLからPDFを生成してくれるライブラリです。Rubyからだとwicked_pdfや pdfkit 経由で使われることが多いです。 さてそんなwkhtmltopdfですが、GitHubリポジトリ を見るとわかるようにアーカイブされてしまっています。公式ページ に経緯が書いてありますが、要約するとwkhtmltopdfが依存しているQtWebkitのメンテが止まったのが原因でメンテが続けられなくなったということのようです。 wkhtmltopdfが参照しているQtWebkitはかなり古いものなので、モダンなブラウザでの描画と差分が出たり、脆弱性を付かれたりする可能性がありそう。なのでなにか別のやり方に乗り換えたい。 選択肢を考えてみる 乗り換え先は具体的に何がいいの、というと僕も自信を持ってこれだ!という解を持っていないのですが、headless

                                                              wkhtmltopdfの次どうするか問題 - おもしろwebサービス開発日記
                                                            • 新卒から7年7ヶ月勤めた会社を退職しました

                                                              いわゆる退職エントリです。(遅) ということで最終出社キメてきました🙏フォトブックが特に嬉しすぎる😂😂😂色紙、前チームメンバーのメッセージが適当すぎて、ほんとそういうところやぞ!!!(満面の笑み)というお気持ち😂😂😂 pic.twitter.com/NOStaZmV1c— ぷぽ (@pupupopo88) 2019年10月18日 高円寺のとあるIT企業に総合職で入社、気づけば7年7ヶ月と在籍していました。この業界からすると、長く務めた方かなと思います。 まともに自己PRもできず、文系未経験だったのにも関わらず、エンジニアとしてここまで成長させてもらったことは大変感謝しています。 社内向けエントリ(?)をがっつり書いたので「もういいか」とも思ってたのですが、ここ最近の某社のエントリに若干触発されてしまいました。あと、周りに「まだですか?」と煽られる。(人のせい) 社内向けのでも

                                                                新卒から7年7ヶ月勤めた会社を退職しました
                                                              • 「実践プロパティベーステスト」という本が出版されました #pbtbook - YAMAGUCHI::weblog

                                                                はじめに こんにちは、Google Cloudのオブザーバビリティ/SRE担当者です。このたび私が翻訳しました「実践プロパティベーステスト PropErとErlang/Elixirではじめよう」という書籍がラムダノート社より去る11月1日に出版されました。書店ならびに各社オンラインストアでご購入いただけます。 実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう 作者:Fred HebertラムダノートAmazon 実践プロパティベーステスト ― PropErとErlang/Elixirではじめようwww.lambdanote.com 電子書籍についてはラムダノート社のECサイトよりご購入いただけます。 実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう(電子書籍のみ)www.lambdanote.com 「実践プロパティベ

                                                                  「実践プロパティベーステスト」という本が出版されました #pbtbook - YAMAGUCHI::weblog
                                                                • irb に show_source があることをもっと知らしめたい - id:onk のはてなブログ

                                                                  要は以下の記事の繰り返しなのだが。 k0kubun.hatenablog.com Kaigi on Rails _2022_ new というイベントの LT で、メソッド定義を探ろうという話があった。 speakerdeck.com Rails のソースをシュッと眺めに行くという、非常に尊い良い発表でした。 Object のことは Object に聞け、は Ruby の非常に面白いところなので、Method を取り出して source_location を尋ねるのは一度体験して感動して欲しいんだけど、実務だとタイプ数の少ないやり方も知っておくと更に便利に使えるのでご紹介。 irb の show_source も武器に加えてあげたい #kaigionrails— Takafumi ONAKA (@onk) October 9, 2022 Pry の $ https://github.com/

                                                                    irb に show_source があることをもっと知らしめたい - id:onk のはてなブログ
                                                                  • Rust 製の全文検索システム Tantivy を Ruby で使える Tantiny を導入した

                                                                    過去記事ページの UI 考察 ずっと過去記事をどうやって効率よく見せるか(自分自身が効率よく読むか)ばかり考えている。一つ前の記事では絞り込み UI について書いた。ブログというものが生まれたとき、誰も 10 年以上にわたっ... portalshit.net ブログのアクティビティダッシュボード Archive ページにこだわってしまう理由、グラフを表示させてみて(ブログ過去記事をカテゴリーごとに集計してグラフ化 - portal shit!)何となくわかった気がする。過去記事ページとい... portalshit.net このブログの維持管理で一番時間を割いているのが Archives ページだ。しかしアクセスログを見ると自分以外はほとんど利用していない。完全に自己満なのだが、過去の自分を振り返ることができてとても自分には有意義なページだ。 過去記事を振り返るときには検索をしたくなる。

                                                                      Rust 製の全文検索システム Tantivy を Ruby で使える Tantiny を導入した
                                                                    • The State of Ruby 3 Typing

                                                                      The State of Ruby 3 TypingIntroducing RBS, Ruby’s new type signature language We're pleased to announce Ruby 3’s new language for type signatures, RBS. One of the long-stated goals for Ruby 3 has been to add type checking tooling. After much discussion with Matz and the Ruby committer team, we decided to take the incremental step of adding a foundational type signature language called “RBS,” which

                                                                        The State of Ruby 3 Typing
                                                                      • RendertronをGKEとCloud Runで構築しました - pixiv inside

                                                                        こんにちは、インフラ部の id:sue445 です。 今回はRendertronをGKEとCloud Runの両方で構築した話をしたいと思います。 tl;dr; 前置き 今までのRendertronの問題点 GKE版Rendertronについて GKEの採用理由について GKE版Rendertronの構成 全体 GKE内部 pod内部 Kubernetesの設定と解説 rendertron-deployment.yaml rendertron-hpa.yaml rendertron-ingress.yaml rendertron-service.yaml Tips nodeのストレージサイズをケチり過ぎたらpodが起動できなくなった N1マシンタイプのnodeとN2マシンタイプのnodeを比較した結果、N2マシンタイプが安くなった Cloud Run版Rendertronについて Clou

                                                                          RendertronをGKEとCloud Runで構築しました - pixiv inside
                                                                        • 「英語圏で『ISEKAI(異世界)』が動詞として使われる」海外の反応 : 暇は無味無臭の劇薬

                                                                          Comment by iEatZeroTwosPanties 自分が行きたいところ。 ※海外掲示板で「Isekai」が「Isekai'd」などのように動詞として使われていることに気付いたので、それに関連する話題をこの記事ではまとめています。 私はアニメ方面にあまりアンテナを向けていなかったので先日まで知らなかったのですが、調べたところ二年ほど前に初めて使われ始め少しずつ使用頻度が増えていき、この半年ほどは盛んに使われているようでした。 基本的には「異世界に転生する」といった意味で使われているようですが、文脈によって多少意味が違っていたりしていました。 reddit.com/r/Animemes/comments/a3492d/i_know_where_i_want_to_go/ Comment by jakobebeef98 3 ポイント お前らこれをただのネタだと思ってるかもしれないけど

                                                                            「英語圏で『ISEKAI(異世界)』が動詞として使われる」海外の反応 : 暇は無味無臭の劇薬
                                                                          • 成熟したRailsアプリのフロントエンドを最新にリニューアルする方法(翻訳)|TechRacho by BPS株式会社

                                                                            概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Keep up with the Tines: Rails frontend revamp — Martian Chronicles, Evil Martians’ team blog 原文公開日: 2020/06/03 著者: Rita Klubochkina、Andy Barnov サイト: Evil Martians -- ニューヨークやロシアを中心に拠点を構えるRuby on Rails開発会社です。良質のブログ記事を多数公開し、多くのgemのスポンサーでもあります。 日本語タイトルは内容に即したものにしました。 アセットパイプラインで提供される既存のjQueryやCoffeeScriptのフロントエンドを一切損なわずに、「React」「MobX」「GraphQL」「Tailwind CSS」「Webpacker」の複雑な

                                                                              成熟したRailsアプリのフロントエンドを最新にリニューアルする方法(翻訳)|TechRacho by BPS株式会社
                                                                            • 滞りなくサービスをクローズするために必要なこと - メドピア開発者ブログ

                                                                              メドピアエンジニアの難波です。 医師専用コミュニティサイト「MedPeer」では、今年の8月にMedPeer Journalというサービスのクローズを行いました。今回の記事ではその時に行った作業の紹介をしたいと思います。 サービスの新規開発に関する記事というものは世の中にたくさんあれど、大規模なサービスにおける一部機能(サービス)の終了に関する経験や知見は中々オープンにされにくいものです。しかしサービスを滞りなく素早く終了させることは新しいサービスを作るリソースの確保という観点でも大事なことであり、今回の記事が将来の参考になればと思い1つの事例としてここに認めます。 MedPeer Journalについて MedPeer Journal(以下Journal)とはPubMed(Wikipedia)という医学を中心とする生命科学の文献情報を収集したオンラインデータベースへの検索エンジンを利用し

                                                                                滞りなくサービスをクローズするために必要なこと - メドピア開発者ブログ
                                                                              • strong_migrations gemのススメ - Money Forward Developers Blog

                                                                                こんにちは。会計Plusでエンジニアをしているぽっけです。最近はシャケをしばくバイトで、やっとでんせつに上がりました。 今日はstrong_migrationsというRails向けのgemを紹介します。 strong_migrationsとは https://github.com/ankane/strong_migrations strong_migrationsは、危険なmigrationを検出するgemです。 データベースのmigrationは、ときに危険になります。たとえば実行するDDLによってはデータベースへの書き込みをブロックしてしまうことがあります。またテーブル定義の変更は、うまくやらないとアプリケーションが意図せぬ動作をするかも知れません。 strong_migrationsはそのような危険なmigrationを検出します。 ⁠使い方 使い方はかんたんです。strong_mi

                                                                                  strong_migrations gemのススメ - Money Forward Developers Blog
                                                                                • Rails design patterns

                                                                                  A design pattern is a repeatable solution to solve common problems in a software design. When building apps with the Ruby on Rails framework, you will often face such issues, especially when working on big legacy applications where the architecture does not follow good software design principles. This article is a high-level overview of design patterns that are commonly used in Ruby on Rails appli

                                                                                    Rails design patterns