並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 589件

新着順 人気順

rubocopの検索結果81 - 120 件 / 589件

  • 中途で入社したての私からみたメドピア開発環境のいいところ - メドピア開発者ブログ

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

      中途で入社したての私からみたメドピア開発環境のいいところ - メドピア開発者ブログ
    • VSCode Remote Containerが良い - Qiita

      Visual Studio Code Remote Development VSCode Remote Containerは、VSCodeの拡張機能の1つです。 Dockerのコンテナ内でVSCodeを開き、開発することを可能にします。 使ってみてかなり良さげだった&当初はよく分からない部分も多かったので、2週間くらい使ってみて分かったことをまとめます。 そもそもDockerで開発環境を作るメリット 開発環境が簡単に作って壊せる 今どういう環境で開発しているのかファイルで確認でき、バージョン管理も容易 PCにRubyやらRubocopやら各種CLIやらをいれる必要がなくなる プロジェクトごとに言語等のバージョンを切り替える必要がなくなる VSCode Remote Containerを合わせて使うメリット 開発環境をDockerで作っていても、構文チェックや補完が効く ローカルで開発すると

        VSCode Remote Containerが良い - Qiita
      • 独学で未経験のモダンな技術を学習してポートフォリオを作るまで【Rails / Next.js / AWS / Docker / GitHub Actions】 - Qiita

        独学で未経験のモダンな技術を学習してポートフォリオを作るまで【Rails / Next.js / AWS / Docker / GitHub Actions】RailsAWS初心者個人開発Next.js はじめに こんにちは!きいな(@keynyaan)と申します。 今回、モダンな技術を使って初めてポートフォリオを作ってみたので、開発背景や学習教材などを紹介します。 ポートフォリオを作るにあたって、色々な方の素晴らしいポートフォリオ作成記事が参考になったので、今度は私の記事が誰かのためになることを祈ってます。 自己紹介 大学卒業後、新卒でSIer企業に入社し、3年ほどJavaやJavaScriptなどを使って、バックエンドやフロントエンドのシステム開発を行っていました。 そんな私が自社開発企業に興味を持ち、退職を機に、2023年1月からポートフォリオ作成に向けて学習を始めました。 学習期間

          独学で未経験のモダンな技術を学習してポートフォリオを作るまで【Rails / Next.js / AWS / Docker / GitHub Actions】 - Qiita
        • RSpec の Request spec をチームで改善していった話 - ANDPAD Tech Blog

          この記事は ANDPAD Advent Calendar 2022 の 7日目の記事です。 qiita.com こんにちは、ydahです。 先日のRubyWorld Conference 2022で燗酒の美味しさに感動していたのですが、ふと気がついたら島根の日本酒がたくさん我が家にいました。 気が付くと何故か我が家にいらっしゃった方々(不思議だ...) そして、また気がつくと枡や徳利、平盃も我が家にいらした(不思議ですね...)のでこれから寒くなるので、燗酒を飲んで温まっていこうと思います。 はじめに 本記事では私が所属しているANDPAD検査チームで取り組んだ以下のことについて紹介いたします。 Request specの改善についてやったこと チームとして改善タスクやリファクタリングを推進するための仕組み作り Request specの改善について 長年、様々な人によって書かれてきていた

            RSpec の Request spec をチームで改善していった話 - ANDPAD Tech Blog
          • Lintを使う人、作ってみたい人、問題解決の引き出しを増やしたい人のための勉強会Lint Nightを開催します! - DeNA Testing Blog

            SWETグループのLint大好きマンKuniwakです。2022/11/18にオフライン・オンライン同時開催の勉強会「Lint Night #1」を開催します! Lint Nightはプログラミング言語不問でLintに関するトピックを取り扱う勉強会です。ここでLintとはソースコードや文書を静的に解析して問題をみつけるツールのことです。ただ、どこまでをLintとするかには幅があるようです。 さて、Lintの面白いところはソースコードや文書を入力データとして扱うプログラムであることです。ソースコードを入力データとするプログラムといえばコンパイラやインタプリタがあげられますがいずれも実装がかなり大変です。しかしLintはそこまでではありません!実は手軽に実装できるんです(Lintの作り方については次のスライドをご覧ください)。 しかもそれでいてコードレビューを一部自動化できて実用的ですし、ソー

              Lintを使う人、作ってみたい人、問題解決の引き出しを増やしたい人のための勉強会Lint Nightを開催します! - DeNA Testing Blog
            • 『研鑽Rubyプログラミング』を読んだ - valid,invalid

              『研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフ』を読んだ。ちょっとブームに乗り遅れたけどまぁ、本なんていつ読んでもいいものなので気にせず感想を書く。 研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフ 作者:Jeremy Evans,角谷信太郎ラムダノートAmazon 想定読者層はあらかじめ示されているとおり中級〜上級で、Ruby初学者には厳しめ。RubyやRailsでのアプリケーション開発にそこそこ慣れてきた自称中級者が読むと知識の広がり幅が大きくて良さそう*1。 同じようなレベルの層に対してよく推薦される図書として『メタプログラミングRuby』があると思うのだけど、そちらよりは平易かつ実践的な内容が多いと感じた。 具体的にはDSLやプラグイン機構の作り方など、ふだんのWebアプリケーション開発業務でしょっちゅう書くわけじゃないけど、書き方を知っ

                『研鑽Rubyプログラミング』を読んだ - valid,invalid
              • Announcing Standard Ruby 1.0

                  Announcing Standard Ruby 1.0
                • Breaking Change

                  平成Ruby会議01 (https://heiseirb.github.io/kaigi01/)

                    Breaking Change
                  • 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
                    • KibelaにRBS / Steepを導入しようと考えています | bitjourney Kibela

                      KibelaにRBS / Steep、つまり型を導入しようと考えています。ただ、後半に書きますが導入はしばらく後になると思います。2月に入ってからかなあ。 (社内向けドキュメントですが、別に隠すこともないので外部共有しています) 目次 導入する目的 導入する方針 導入する方法 導入すると何が変わるのか、どう対応する必要があるのか 導入のスケジュール 導入する目的 Kibelaの開発体験をより向上させるためです。また、 @masataka-kuwabara がRBS, RBS Rails, Steepなどの都合の良い実験台としてkibelaを使うためでもあります。 導入する方針 RBSはまだ発展途上です。そのため、Kibelaのようなある程度育ったRailsアプリケーションで型エラーをゼロに保って開発するのは、現状ではとても難しいと予想しています。 これは現状のコードベースをすべて型エラーゼ

                      • Rubocop Performanceを測ってみた。前編 - アクトインディ開発者ブログ

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

                          Rubocop Performanceを測ってみた。前編 - アクトインディ開発者ブログ
                        • Rewriting the Ruby parser

                          At Shopify, we have spent the last year writing a new Ruby parser, which we’ve called YARP (Yet Another Ruby Parser). As of the date of this post, YARP can parse a semantically equivalent syntax tree to Ruby 3.3 on every Ruby file in Shopify’s main codebase, GitHub’s main codebase, CRuby, and the 100 most popular gems downloaded from rubygems.org. We recently got approval to merge this work into C

                            Rewriting the Ruby parser
                          • Ruby フルタイムコミッタの仕事報告 2023年Q4 - ANDPAD Tech Blog

                            こんにちは hsbt です。RubyConf Taiwan 2023 の登壇から帰国して後はバルダーズ・ゲート3をプレイして年を越すのみ...! とは行かず、Ruby 3.3.0 のリリースに向けて最後の準備作業をしている真っ最中です。 さて、今回はANDPAD Advent Calendar 2023の20日目として、今年1年私がプログラミング言語 Ruby の開発のために手を動かしてきた内容の中からテックブログやカンファレンスで発表していない内容をまとめてご紹介します。 default gems から bundled gems への変更の目的 私は数年前から Ruby に元々添付されていたライブラリ(標準添付ライブラリ)を default gems と呼ばれる gem としてもインストールやアップデートができる状態にし、そこからさらに bundled gems と呼ばれる Ruby 本

                              Ruby フルタイムコミッタの仕事報告 2023年Q4 - ANDPAD Tech Blog
                            • プロジェクト独自のコーディングルールを簡単に正規表現で定義できる `rubocop-grep` の活用 - ROUTE06 Tech Blog

                              はじめに: 弊社のとあるEDI(電子商取引)関連のプロダクトでは、Ruby on Railsを利用してGraphQL APIを提供しています。 その開発活動の中で最近、コードの品質と整合性を維持するためのツールとして rubocop-grep を利用し始めました。 この記事ではその具体的な活用事例についてお話しします。 目次 rubocop-grepとは 最初のユースケースと、基本的な使い方の説明 複数のルールをディレクトリごとに設定するための工夫 ほかにどのようなユースケースがありそうか まとめ rubocop-grepとは rubocop-grep は、rubocop の拡張ツールです。 プロジェクト独自のコーディングルールを、正規表現を用いて簡単に定義することができます。 この手の問題は、今までもカスタムCopを書くことで解決することはできましたが、カスタムCopはASTの知識やRu

                                プロジェクト独自のコーディングルールを簡単に正規表現で定義できる `rubocop-grep` の活用 - ROUTE06 Tech Blog
                              • コードの品質に関するメトリクスを取得するGemをリリースした - 何でも屋エンジニアのブログ

                                CodeKeeperというGemをリリースした。循環的複雑度、ABCソフトウェアメトリクス、クラスの行数という品質面にまつわるメトリクスを取得するGemで、Rubyファイルを対象にしている。 github.com 動機 主に以下の3つである。 Four keysのような生産性を測る指標とは別に、内部的な品質に関する指標を取りたかった 継続的な改善を続けた結果としての変化を見たかった コードを解析するコードを書いてみたかった Saasなどもあるが自分で書いてみたかった Gemを1から書いて公開したことがなかったのでやりたかった 使い方 メトリクス・出力形式 対応しているメトリクスは 循環的複雑度(ファイル) ABCソフトウェアメトリクス(ファイル) クラスの行数 である。 前者2つは、実装の簡便さを鑑みファイル単位とした。また、出力について、取得したメトリクスをBigQueryなどに取り込め

                                  コードの品質に関するメトリクスを取得するGemをリリースした - 何でも屋エンジニアのブログ
                                • Sinatra(Ruby製軽量フレームワーク)の使い道を本気で検証してみた - ANDPAD Tech Blog

                                  この記事は ANDPAD Advent Calendar 2022の 20 日目の記事です。 こんにちは、アンドパッドに今年の 9 月に入社しました、 田上(shuntagami)です。アンドパッドでは図面チームに所属していて、主にサーバーサイドを担当しています。Ruby と Rails を使うことが多く、Go や TypeScript を書くこともあります。 本記事の概要 以下のようなケース 将来的に規模が大きくなることも想定されるアプリケーションの API サーバーを 0 から開発する際のメインフレームワークとして 既存の大きく成長した Rails アプリケーションの一部をマイクロサービスとして切り出したいケース において Ruby 製の軽量フレームワーク Sinatraを採用することが生産性高く開発を行う上で最適解のひとつになるのではと考え技術検証してみた、という記事です。経緯として

                                    Sinatra(Ruby製軽量フレームワーク)の使い道を本気で検証してみた - ANDPAD Tech Blog
                                  • Rails: モジュール化強制ツール"Packwerk"の導入を振り返る(翻訳)|TechRacho by BPS株式会社

                                    概要 原著者Chris Salzbergさんの許諾を得て翻訳・公開いたします。 英語記事: A Packwerk Retrospective | Rails at Scale 原文公開日: 2024/01/26 原著者: Gannon McGibbon、Chris Salzberg 日本語タイトルは内容に即したものにしました。また、一部のパラグラフを分割しています。 CC BY-NC-SA 4.0 Deed | 表示 - 非営利 - 継承 4.0 国際 | Creative Commons Rails: モジュール化強制ツールPackwerkの導入を振り返る(翻訳) 2020年、ShopifyのチームはPackwerkという名前のRuby gemをリリースしました(関連記事)。Packwerkは、Railsアプリケーション内で境界を強制的に定めてモジュール化するツールです。Packwerk

                                      Rails: モジュール化強制ツール"Packwerk"の導入を振り返る(翻訳)|TechRacho by BPS株式会社
                                    • Ruby用VSCode拡張: vscode-ruby-light

                                      Ruby向けに、vscode-ruby-lightというVSCode拡張をつくっています。この拡張は、利用者に特にRubyのインストール要求することなく、シンタックスハイライトやカーソル操作など、VSCode標準の機能よりちょっと良い編集体験を提供しようという目的の拡張です。 最初は「メソッドやブロックをもう少し上手く選択できるようにしたい」というモチベーションで調べ始めたのですが、気付けば色々な機能を持つVSCode拡張が出来上がっていました。この記事では、幾つかの機能を紹介しながら、関連する話を書いていこうと思います。 Selection Range VSCodeにはExpand Selectionというコマンドがあり、選択範囲を拡大したり狭くしたりできます。このコマンドには、例えばWindowsであればデフォルトでShift + Alt + →にショートカットキーが割り当てられていま

                                      • GemfileでのRubyバージョン指定を.ruby-versionから読む - koicの日記

                                        Gemfile での Ruby バージョンの指定を、値の直書きではなく .ruby-version からの読み込みに変更する設定です。 https://github.com/rubygems/rubygems/pull/6876 例えば、Rails アプリケーションなんかで Gemfile に .ruby-version と同じ 3.3.0 を指定しているようであれば、以下のように記述できます。 -ruby '3.3.0' +ruby file: '.ruby-version' asdf に類するものを使っているようであれば、ruby file: '.tool-versions' と記します。 https://github.com/rubygems/rubygems/pull/6898 この設定によって Ruby のアップデート時のバージョンの更新ポイントを減らすことができます。 なお、古

                                          GemfileでのRubyバージョン指定を.ruby-versionから読む - koicの日記
                                        • Ruby Parser開発日誌 (9) - RubyKaigi 2023で発表してきた ~ 世はまさに”大パーサー時代” ~ - かねこにっき

                                          5/10から5/14の5日間、RubyKaigi 2023に参加するために松本市に行ってきました。前回参加したのがRubyKaigi 2019の福岡のときなので、じつに4年ぶりの参加でした。 今回はコミッター/登壇者/LTスピーカーとしての参加になりました。その結果、0日目のDevMeeting含めて3種類のスライドをつくり、3日目の"Ruby Committers and The World"含めて3回登壇するというイベント盛りだくさんなKaigiでした。 いやー、自分のRubyKaigi史上、最高のRubyKaigiでしたね。まさにParserKaigiだったのではないでしょうか。 いろいろ書きたいことはありますが、まずは時系列で振り返っていきましょう。 Day 0 (5/10) - DevMeeting DevMeetingに参加するためDay 0から松本へ向かいました。新宿から特急

                                            Ruby Parser開発日誌 (9) - RubyKaigi 2023で発表してきた ~ 世はまさに”大パーサー時代” ~ - かねこにっき
                                          • rails statsと企業価値 - algonote

                                            開発スピードが遅いのか、作っているものの筋が悪いのか 前口上: rails statsで企業価値は測れるか? rails stats はRailsリポジトリの統計情報が取れる便利コマンドです。LaravelでもLaravel Statsを使って php artisan stats で同様のことができます。 結構リポジトリの内情を丸裸にするコマンドで、モデルやコントローラーのサイズからアプリの規模感が掴めますし、コードとテストの割合からしっかりテストが書かれているかがわかります。 Webサービスの事業価値は大きく見れば売上や成長率、より細かく見ると業態やtoBかtoCか、どこの産業向けか、アクティブユーザー数などで決まります。一方でIPO以降の売上成長率は従業員数に比例しているという話もあり、ビジネススキームが決まってしまえば後は頭数に比例するとも言えそうです。 Four Keysなどの開発

                                              rails statsと企業価値 - algonote
                                            • Git履歴をgit resetとgit rebaseで管理する(翻訳)|TechRacho by BPS株式会社

                                              概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: How I manage my git history | Binary Solo 原文公開日: 2023/05/26 原著者: Ayush 日本語タイトルは内容に即したものにしました。 Git Logo by Jason Long is licensed under the Creative Commons Attribution 3.0 Unported License. 私は全般的に、どちらかといえば規則にうるさい方ですが、自分のプロジェクトでgit履歴を管理するときはこの性格が役に立ちます。以前の私はGitHubの"squash & merge"方式をしばらく使っていましたが、その後Chris Mooreからいくつかのコツを教わりました。 私は"squash & merge"方式が好きになれません。どんなに巨大なプルリクエ

                                                Git履歴をgit resetとgit rebaseで管理する(翻訳)|TechRacho by BPS株式会社
                                              • RuboCop Under a Microscope

                                                Lint Night #1 https://lintnight.connpass.com/event/263931/

                                                  RuboCop Under a Microscope
                                                • Project automation for internal affairs

                                                  Porting mruby/c for the SNES (Super Famicom) - RubyKaigi 2024

                                                    Project automation for internal affairs
                                                  • 週刊Railsウォッチ(20191105前編)Rails 6のデフォルト設定解説、DHHも消したいaccepts_nested_attributes_for、スライド『実践Railsアプリケーション設計』ほか|TechRacho by BPS株式会社

                                                    2019.11.05 週刊Railsウォッチ(20191105前編)Rails 6のデフォルト設定解説、DHHも消したいaccepts_nested_attributes_for、スライド『実践Railsアプリケーション設計』ほか こんにちは、hachi8833です。今年の3連休は昨日のでおしまいだそうです。 実を言うと今年の祝日はもうだめです。 突然こんなこと言ってごめんね。 でも本当です。 この週末から月曜にかけて 3連休が来ます。 それが終わりの合図です。 3週間後に土曜日に潰される祝日が来るので 気をつけて。 それが過ぎたら、もう今年が終わるまで 祝日はありません。 — usa (@unak) November 1, 2019 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のよう

                                                      週刊Railsウォッチ(20191105前編)Rails 6のデフォルト設定解説、DHHも消したいaccepts_nested_attributes_for、スライド『実践Railsアプリケーション設計』ほか|TechRacho by BPS株式会社
                                                    • Prettier for Ruby goes v1.0 🎉 · Prettier

                                                      After 1500 commits and 50 releases since July 2018, we're happy to announce that we've just released v1.0 of Prettier for Ruby. In this blog post, we'd like to give a short overview of how the plugin works, its philosophy, and what to expect in the future. How does it work? Prettier for Ruby works through Prettier's plugin API. Its parse function works by spawning a Ruby process and using Ruby's o

                                                        Prettier for Ruby goes v1.0 🎉 · Prettier
                                                      • `Layout/LineLength` のデフォルトを 120 にした - koicの日記

                                                        RuboCop の LineLength のデフォルトが 80 ではつらいという声はずっと聞いていて、そもそも RuboCop にパッチを送り始めた頃は、いつかこの変更をするのが目標のひとつだった。 今回 3年半越しに実現することができた。現在の最新版の RuboCop 0.84.0 に適用済み。 github.com OSS で年月をかけた粘り強い振る舞いは kamipo さんから学んだことで、RangeError にまつわる rails/rails#30000 もそこに到るまでを含めてコントリビュータ時代から何年か掛けていると聞いている。 RuboCop リポジトリ自体の方では、その後にコアメンバーからエディタを縦分割した際に 120 だと厳しいという声があり、RuboCop リポジトリ自体の設定は 100 になったというエピソードがある (デフォルトの設定は 120 で維持されていま

                                                          `Layout/LineLength` のデフォルトを 120 にした - koicの日記
                                                        • Rails8.0.0マイルストーンの現状 - おもしろwebサービス開発日記チラシの裏

                                                          これはなに 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自体のメンテも大変だしアプリケーション開発者も大変なので、毎回マイナーバージョンアップ

                                                            Rails8.0.0マイルストーンの現状 - おもしろwebサービス開発日記チラシの裏
                                                          • Rubyists, we must do better | Tim Riley / timriley.info

                                                            Ruby: come for the language, stay for the community. That’s the story I tell people, anyway. Yesterday, however, we saw some of the worst in our community. An issue was raised with the RuboCop team about changing the name in light of the race-related police brutality issues (and more) being tackled in the USA right now. Bozhidar Batsov, the project author and lead maintainer, declined the request

                                                            • Ruby 3でprivate/public/protectedとattr_*アクセサを1行で書けるようになった|TechRacho by BPS株式会社

                                                              WEB+DB PRESS Vol.121の「特集 Ruby 3」を読んでいて、「その他の追加機能」に以下がありました。 private attr_reader :fooのようにシンボルを書けるようになった privateがシンボルの配列を受け取れるようになった 1つ目はともかく2つ目がよくわからなかったので調べてみました。 注 RubyのModuleにある可視性変更用のprivate/public/protectedメソッドを本記事では「アクセス制御メソッド」と総称します。 また、RubyのModuleにあるattr_accessor/attr_reader/attr_writerを本記事では「アクセサメソッド」と総称します。アクセサメソッドで定義されるメソッドについて、便宜上「ゲッター」「セッター」というJavaの用語も使っています。 Ruby 3.0で改善された点 Feature #1

                                                                Ruby 3でprivate/public/protectedとattr_*アクセサを1行で書けるようになった|TechRacho by BPS株式会社
                                                              • Railsでモジュラモノリスを実現する3つの代表的パターン 5つの基準で見たそれぞれの評価

                                                                「【ハイブリッド開催】Rubyで追求するモジュラモノリスの可能性」は、バックエンドにRubyを採用している株式会社タイミー、hacomono社、ワンキャリア社が、Rubyにおけるモジュラモノリスの可能性や良い点、悪い点を共有する勉強会です。ここで株式会社タイミーの須貝氏が登壇。まずは、Railsでモジュラモノリスを実現する3つの代表的パターンと、各パターンの評価について話します。 須貝氏の自己紹介 須貝俊 氏:では、「RailsでModular Monolithを選択された御社に質問したいN個の疑問」というタイトルで発表をしたいと思います。 (スライドを示して)まずは自己紹介をしたいと思います。須貝と申します。タイミーには、2022年1月からジョインしています。スポットワークシステム領域というところで、チーム名がIronBank Squadという、企業さま向けの請求や、ワーカーさまへの給与

                                                                  Railsでモジュラモノリスを実現する3つの代表的パターン 5つの基準で見たそれぞれの評価
                                                                • Rubyのコードの書き方 - スタディサプリ Product Team Blog

                                                                  こんにちは、ujihisa といいます。現在スタディサプリのProduct Platform の Software engineerとしての仕事を行っています。先月から社内留学で、開発支援チームからコーチングチームに一時的に移籍して、そちらの仕事をやっています。 Rubyのコードの書き方 まずは全体的なコーディングスタイルなどについて。 現在社内で統一的に使用しているコーディングスタイルの標準化などはとくに行われておりません。各チームごとに、それぞれのチームが開発運用している (= ownershipをもっている) コンポーネントそれぞれに対して個別のRuboCop設定などはあります。また、複数のチームの境界にある、歴史的な共有サービスに関しては (そう、まだあります、そしてこれは今後もかなり長いあいだ付き合っていくことになるでしょう) testdouble/standard というTes

                                                                    Rubyのコードの書き方 - スタディサプリ Product Team Blog
                                                                  • .rubocop_todo.ymlを解消するPull RequestをGitHub Actionsで自動生成する (前編)

                                                                    .rubocop_todo.ymlを解消するPull RequestをGitHub Actionsで自動生成する (前編) 前編ではr7kamura/rubocop-challengeというCustom Actionの話をし、後編では再実装したr7kamura/rubocop-todo-correctorというCustom Actionの話をする。 ただ開発しているだけで、.rubocop_todo.ymlはそこ此処に積もる。たまに慈善活動的に解消してPull Requestを出したりもする。しかし人力でやっているとキリがない。この作業を自動化したい。こういうときに便利な、rubocop_challengerというGemがある。 便利なGemだが、設定しようとすると幾つかハマりどころがあり、導入が大変。そこで、簡単に導入できるようにr7kamura/rubocop-challengeという

                                                                    • カスタムCopでリファクタリング

                                                                      RuboCopのカスタムCopを書いてリファクタリングを行う話として、丁度良い事例があったので紹介します。 改善したいコード 仕事先のRailsアプリを眺めてみると、昔から慣習的に次のようなコードが書かれていることが分かりました。 module A extend ::ActiveSupport::Concern included do def foo end def bar end end end 本来は、特別な理由が無い限り次のように書かれるべきコードです。 module A def foo end def bar end end これは後から分かったことですが、このようなコードはファイル数で言うと数百件、メソッド定義数で言うと千件弱あるようでした。 用意したカスタムCop そこで、RuboCopのカスタムCopを書いて、このコードを自動修正することにしました。詳しい書き方についてはここ

                                                                      • なぜ、アンドパッドは最新のRuby/Railsにこだわるのか?アップデートを止めないための体制と仕組み - what we use(技術スタックデータベース)

                                                                        なぜ、アンドパッドは最新のRuby/Railsにこだわるのか?アップデートを止めないための体制と仕組み 株式会社アンドパッドの白土慧と申します。OSSなどではkei-sで活動しています。アンドパッドではリアーキテクティングチームに所属し、チームの立ち上げから携わっています。 リアーキテクティングチームの活動を簡単に紹介すると、アンドパッドにある大規模なRailsアプリケーションを、コードや構造も含めて、もっと拡張しやすくて、開発者が使いやすく、ミスの防止などもできるようにする活動をしています。今回のRuby/Railsのアップデートも取りまとめているほか、チームのスコープにはマイクロサービスやモジュラーモノリスなどへの移行の検討も含まれます。 アンドパッドでのRailsの役割アンドパッドにある大規模なRailsアプリケーションをもう少し掘り下げます。 このアプリケーションは「ANDPAD施

                                                                          なぜ、アンドパッドは最新のRuby/Railsにこだわるのか?アップデートを止めないための体制と仕組み - what we use(技術スタックデータベース)
                                                                        • cache を最適化して RuboCop の CI 実行時間を劇的に改善した話 - JMDC TECH BLOG

                                                                          こんにちは、プロダクト開発部の八杉です。JMDC では主に web フロントエンドの実装や設計を中心に行っているほか、最近は Rails の GraphQL モジュールの設計や CI の最適化にも取り組んでいます。 本記事は JMDC Advent Calendar 2023 11日目の記事です。 qiita.com この記事では、 RuboCop を CI で実行した際に遭遇した cache にまつわる 3 つの問題とその対処について紹介します。 背景 今回お伝えするのは、私が開発に携わる Pep Up (ペップアップ) という web サービスの話です。 Pep Up は Ruby on Rails 製のアプリケーションで、コードフォーマッターに RuboCop を使用しています。8 年前の開発初期から使用していますが、違反のチェックを厳格に行っていなかったこともあり、ここ数年はフォー

                                                                            cache を最適化して RuboCop の CI 実行時間を劇的に改善した話 - JMDC TECH BLOG
                                                                          • Terraform のテストを Golang で書く! - READYFOR Tech Blog

                                                                            こんにちは。READYFOR 株式会社で SRE として働いている ジェダイ・パンくず🚀 と申します。 突然ですが、皆さんの現場ではインフラのテストの仕組みは導入済みですか?我々はまだ出来ていません(笑)。 READYFOR では IaaS として AWS を、IaC として Terraform を導入しているのですがコードのテスト・コードによってデプロイされた状態のテストを何かしらの仕組みを使って実践したいなぁと考え、今調査している最中です。 今回は Terraform のテストを書くツール Terratest について調べた内容を皆さんに共有したいと思っています。また AWS の状態をテストする仕組みとしてよく知られている Awspec との比較も行っていきたいと思っています。 必要になるモノ 事前に必要になるソフトウェアの一覧です。 Golang (requires version

                                                                              Terraform のテストを Golang で書く! - READYFOR Tech Blog
                                                                            • RuboCopで型情報を利用した解析を試している - pockestrap

                                                                              3行 RuboCopで「この変数はString」とかの情報を含めて解析させられないか試している まだPoCだけど、なんとなくは動いている https://github.com/pocke/rubocop-typed を見て 何をしているの rubocop-typed というプロジェクトで、RuboCopで今までできていなかった解析ができないか試しています。 github.com RuboCopの実行前にSteepを実行し、Steepの解析結果をCop内で使用することで型情報を利用した解析を実現しています。 何ができるの 現在は「nilになりえない式をレシーバーにした&.でのメソッド呼び出し」に警告を出すCopのみを実装しています。 arr = [1, 2, 3] value = arr.find { |x| x == 1 } arr&.first # arrはnilになりえないので、警告が

                                                                                RuboCopで型情報を利用した解析を試している - pockestrap
                                                                              • BUNDLE_ONLY is now available

                                                                                I recently added BUNDLE_ONLY option to Bundler. This is the long-awaited feature from 8+ years ago that allows you to install only the gem groups you need, available from bundler 2.3.19. https://github.com/rubygems/bundler-features/issues/59 https://github.com/rubygems/bundler/pull/4907 https://github.com/rubygems/rubygems/issues/4048 https://github.com/rubygems/rubygems/pull/5759 For example, in

                                                                                  BUNDLE_ONLY is now available
                                                                                • reviewdog🐶を飼ってGitLab-CI上で静的解析しませんか? - Qiita

                                                                                  はじめに レビュワーの工数削減とヒューマンエラーを防ぎコードの品質をさらに向上させていく取り組みの一環として、自動コードレビュー(静的解析) を検討しました。 そこで、reviewdogというツールを用いて実装しようとしたのですが、 reviewdogはgithub-actionsベースで開発がされているため、gitlabでの使用に関しては、ほとんど事例・記事はありませんでした。 導入まで少しだけ苦労したので、この記事がgitlab上でreviewdogの使用を想定している人に向けて参考になれば幸いです。 reviewdogとは? Go言語で記述されたOSS。 各種 linter 解析の検出結果を MR(またはPull Request) にコメントする形で指摘してくれるツール 以下のreviewdog開発者の記事を読むと概要が掴めると思います。 Reviewdog を飼ってコードレビューや

                                                                                    reviewdog🐶を飼ってGitLab-CI上で静的解析しませんか? - Qiita