並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 174件

新着順 人気順

リファクタリングの検索結果1 - 40 件 / 174件

  • リファクタリングをする際にソースコードの設計からはじめてはいけない - MonotaRO Tech Blog

    どうも、レコメンド商品のシステム開発をしている野川と申します。 私は、2021年にモノタロウに新卒入社し、2022年5月からレコメンド商品の開発に関わり始めました。 モノタロウのレコメンド商品は、下の図の①~④の流れでクライアントサイドで表示しています。大部分の処理はJavaScriptで構成しており、UIもそのHTML部分をjQuery(JavaScript)で作成しています。 図:レコメンド商品表の流れ 入社当時私は、ソフトウェアエンジニアとして、「可読性の低いコードは駆逐するべきだ」「読みやすいコードだけが正義である」「理解しやすいシステムだけが皆を幸せにする」と心の底から考えていました。加えて、「なぜ先輩たちは可読性の低いコードを放置して平気なのか?」と疑問を持つこともしばしばありました。 レコメンド商品周りのコードはまさに可読性の低いコードベースとなっていたため、当事者となった私

      リファクタリングをする際にソースコードの設計からはじめてはいけない - MonotaRO Tech Blog
    • Software Design連載 2021年8月号 Python製のレガシー&大規模システムをどうリファクタリングするか - MonotaRO Tech Blog

      Software Design連載開始 ※ (2021/09/02 08:55) 「Pythonを用いて開発を始めたのが2003年」を「Pythonを用いて開発を始めたのが2002年」に修正 こんにちは。金谷です。 このたび、モノタロウにおけるPython大規模開発に関する取り組みを、技術評論社様で発刊されている Software Design に連載させていただくことになりました。 モノタロウがPythonを用いて開発を始めたのが2002年。2021年の現在もPythonを用いた開発が続けられています。 事業の成長に伴い、関連するシステムやエンジニアの数も増え続けていくなかで、いかに安定的に価値を提供し続けられるのか。 モノタロウにおける取り組みを、開発や運用周りを通してご紹介していきます。 本記事の初出は、 Software Design2021年8月号「Pythonモダン化計画(第1

        Software Design連載 2021年8月号 Python製のレガシー&大規模システムをどうリファクタリングするか - MonotaRO Tech Blog
      • シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita

        はじめに ことの始まりは「シェルスクリプトでツールを作ったけど速度が遅くて使い物にならなかったので供養」というツイートを見たからです。コードを見てみると、実例をあまり見ないシェルスクリプトのリファクタリング例として丁度良い内容と分量だったため記事にいたしました。記事を書くにあたりコードの利用を快く承諾していただいた @Hayao0819 様にはこの場を借りて御礼を申し上げます。 内容は章立てで構成しており、序章で事前調査をし、第一章で一般的なリファクタリング、第二章でパフォーマンスを重視したリファクタリング、終章で少し余談をして締めくくっています。最初はパイプは並列処理されるから速くなるというのは神話(そうとは限らない)についても書いていたのですが流石に長いので分けました。それでも書きたいことを色々書いていたらめちゃくちゃ長くなってしまいましたので読み物として私がどんなことを考えながらリフ

          シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita
        • サービスを停止せずにデータベースリファクタリングする - Pepabo Tech Portal

          2022年7月13日にカラーミーショップで提供開始した「副管理者機能」のアップデートにあたって、従前の挙動を変えずにデータベーススキーマの構造を変える必要がありました。また、サービスの提供を停止することなく、スキーマの構造の変更を進める必要がありました。 この記事では、サービスを停止せずにデータベースの構造を徐々に変更するデータベースリファクタリングをどのように進めたかについて紹介します。 「データベースリファクタリング」とは データベースリファクタリングについて体系的に述べた書籍として"Refactoring Databases"があります。この本では、データベースリファクタリングのさまざまなパターンにおいて、スキーマの変更、データマイグレーション(既存データの移行)、アプリケーションの変更それぞれをどのように進めるべきかについて解説しています。ここでは、"Refactoring Dat

            サービスを停止せずにデータベースリファクタリングする - Pepabo Tech Portal
          • リファクタリングはエンジニアの福利厚生であり管理指標への影響はほとんどないんでは - きしだのHatena

            おそらくリファクタリングの工数を確保する説得力のある材料がほしくて、リファクタリングの効果をどう示すか悩んでる人がいたのですが、リファクタリングって非開発者に示せるような数字だすのは難しいよねという結論になったので、そのまとめ。 工数としてはコード管理費みたいな感じで乗せるのがよさそう。 まず、リファクタリングはそれ自体では価値を示せません。人工衛星に搭載するプログラムで、動きだしたらメンテナンスできないようなコードを最後にリファクタリングしたとして、どのような価値を示せるかと考えると想像できるのではないかと思います。 なのでリファクタリングの価値というのは、その後で新しいコードを追加したり既存のコードを変更したりといった作業がどれだけ作業時間短く品質高くなったかという間接的な指標で測ることになります。 ここでまず、最初のコードを書いた人とリファクタリングする人が同じなら、そこまで保守性か

              リファクタリングはエンジニアの福利厚生であり管理指標への影響はほとんどないんでは - きしだのHatena
            • 大規模リファクタリングの極意

              iOSDC 2021 での登壇資料となります。 登壇内容 https://www.youtube.com/watch?v=yWO47AFkDls 以下、スライド内に登場するリンク一覧です。 MoT Teck Talk vol.3 「タクシー配車ならではの技術が盛りだくさん!iOSアプリの開発現場」 https://www.youtube.com/watch?v=KwaMV7-uMdI 不要なコードを検知して PR にコメントする Danger プラグイン https://github.com/imairi/danger-detect_unused_definition xcode-select の自動切り替えツール https://github.com/klaaspieter/chxcode RIBs アーキテクチャのボイラープレート自動生成 + 依存解決ツール https://githu

                大規模リファクタリングの極意
              • リファクタリングは事前準備が9割 - freee Developers Hub

                会計チームで債権周りの開発をしている hachi (@hachiblog)です。会計チームが開発している freee 会計は freee の中で一番歴史が長いプロダクトです。加えて会計というドメインは複雑かつバグを生むと顧客の業務を大きく阻害するという点で一度作ったものを変更しづらいという特徴があります。 そのような環境で今回、債権のチームでは freee会計の初期からある「自動で経理」という機能の一部リファクタリングを行いました。リファクタリングのしづらい環境下でうまくリファクタリングをすすめるための tips は多くの人に役立つのではと思い、このエントリを書くに至りました。 今回「自動で経理」でリファクタリングしたときに事前に以下のことを行いました。 課題の発見 課題の具体化 設計とスケジュール見積もり テストコード実装 それぞれについて今回意識したことを書いていきます。 課題の発見

                  リファクタリングは事前準備が9割 - freee Developers Hub
                • リファクタリング - 西尾泰和のScrapbox

                  「このコードは既に十分に綺麗だから、(コメントは追加してもいいけど)リファクタリングする必要はない」" 一生リファクタリングしている自分とは仲良くなってくれなさそう。

                    リファクタリング - 西尾泰和のScrapbox
                  • SOLID原則に従って行うリファクタリング実践 | メルカリエンジニアリング

                    この記事は、Merpay Advent Calendar 2022 の21日目の記事です。 こんにちは。メルペイBackendエンジニアのfivestar(@fivestr)です。 本記事では「SOLID原則」と呼ばれる設計原則に沿って実際に行ったリファクタリングについて、メルペイの「あと払い」サービスの開発現場事情を踏まえながらご紹介していきます。 あと払いの歴史とコード負債 私が所属するCredit Designチームではメルペイの「あと払い」や「メルペイスマートマネー」といった与信サービスの開発を行っています。中でも「あと払い」はメルカリが2017年にリリースした「メルカリ月イチ払い」を前身とする歴史の長いプロダクトであり、単純な機能追加だけでなく、設計上大掛かりな変更を伴う修正を繰り返しながら今日まで成長してきました。 例えば、あと払いをメルカードの決済・清算のバックエンドとして統

                      SOLID原則に従って行うリファクタリング実践 | メルカリエンジニアリング
                    • データベースをリファクタリングしたお話 - BASEプロダクトチームブログ

                      基盤チーム所属の沖中( @okinaka )です。 「リファクタリング」という言葉、エンジニアのみなさんならご存知でしょう。 システムの振る舞いを変えずに内部を改善することを指す言葉です。 一般的に、コードの修正を指すことがほとんどですが、今回はデータベース設計のリファクタリングについてお話ししたいと思います。 絶版になってしまいましたが、データベース・リファクタリング という書籍に様々な手法が紹介されていて参考になります。英語で良ければ 原書 はまだ入手可能ですね。 データベース・リファクタリング 作者:スコット W アンブラー,ピラモド・サダラージ発売日: 2008/03/26メディア: 単行本 Refactoring Databases: Evolutionary Database Design (Addison-Wesley Signature Series (Fowler)) (

                        データベースをリファクタリングしたお話 - BASEプロダクトチームブログ
                      • IntelliCodeがプログラマのリファクタリング作業を自動的に学習。学習内容からリファクタリング箇所を提案するように

                        IntelliCodeがプログラマのリファクタリング作業を自動的に学習。学習内容からリファクタリング箇所を提案するように マイクロソフトは、機械学習を用いてプログラミングを支援するVisual Studioの拡張機能「IntelliCode」の新機能として、リファクタリング作業の支援が可能になったことを発表しました。 IntellCodeはGitHubなどに公開されているコードを機械学習し、その学習内容を基にコード入力や補完の適切なレコメンデーション、コードレビュー時のアドバイス、問題がありそうな部分の指摘などをしてくれるツールです。 今回の新機能では、プログラマが行うリファクタリング作業をIntelliCodeが自動的に学習し、コードのほかの部分でも同様のリファクタリングが適用可能な場所があればそれを提案してくれるようになります。 これによりプログラマはリファクタリング可能なコードの探索

                          IntelliCodeがプログラマのリファクタリング作業を自動的に学習。学習内容からリファクタリング箇所を提案するように
                        • AIでユニットテストを自動生成。リファクタリング、ドキュメントの生成、バグの検出なども行う「Refraction」登場

                          AIでユニットテストを自動生成。リファクタリング、ドキュメントの生成、バグの検出なども行う「Refraction」登場 ChatGPTに代表される自然言語やプログラミング言語のコードを理解するAIを用いてコーディングの支援を行うツールがまた新たに登場しました。 Refractionは、示されたコードから自動的にユニットテストを生成するほか、コードのリファクタリング、ドキュメントの生成、バグの検出などを行います。 Updates! https://t.co/9otFTI7nh0 is now https://t.co/MtN5JgnetI. Building out many utilities. You can... Generate unit tests Generate inline documentation Refactor your code Added a $5 / month

                            AIでユニットテストを自動生成。リファクタリング、ドキュメントの生成、バグの検出なども行う「Refraction」登場
                          • 「グラブル」のリファクタリングに関する資料、Cygamesが無料公開 6人の専任チームのノウハウを紹介

                            2月に開催した、デベロッパー向けイベント「Developers Summit 2024」にて行った講演「『グランブルーファンタジー』100万行を超える大規模なシステム再構築~10周年のその先へ~」で使用したもの。全86ページに渡る資料を掲載した他、テックブログにて解説記事も公開中だ。 グランブルーファンタジーは、Cygamesが提供するスマートフォン向けRPGで、3月で10周年を迎えた。同ゲームでは、今後もサービス提供を続けていくために、100万行を超えるシステムの再構築を実施。その判断を決めた経緯や、手段、実際に遭遇した困難などについて解説している。 資料を作成したCygamesのサーバサイドエンジニアである伊藤顕二郎さんは「グラブルは数十人規模のエンジニアが開発・運用に当たっているが、リファクタリングに関しては6人のバックエンドエンジニアを中心に専任チームで進めた」と説明。「(リファク

                              「グラブル」のリファクタリングに関する資料、Cygamesが無料公開 6人の専任チームのノウハウを紹介
                            • フロントエンド開発環境の継続的なリファクタリング | MEDLEY Developer Portal

                              2020-10-20フロントエンド開発環境の継続的なリファクタリングこんにちは、第二開発グループエンジニアの西村です。主にCLINICSの開発を担当しています。 はじめにCLINICS は電子カルテ、オンライン診療、予約システム、患者アプリなどを含む統合アプリです。CLINICS がローンチしてから現在に至るまで常に新機能開発と定常改善が行われており、開発環境のメンテナンスは後手になりがちでした。今回はそういった状況を改善すべく、開発環境のメンテナンス、リファクタリングを行った過程から得られたプラクティスについて紹介していこうと思います。 モチベーションプロダクトの新規開発時に行われる技術選定は非常に難しく、業務要件やチーム状況など総合的に考慮してその時点でのベストな選択をする必要があります。 しかし、選択した技術で長期運用をしていくうちに、メンテナンスが行き届かなくなったコードやライブラ

                                フロントエンド開発環境の継続的なリファクタリング | MEDLEY Developer Portal
                              • リファクタリング自爆奥義集 - Qiita

                                こんにちは、リファクタリングが大好きなミノ駆動です。 この記事は READYFORアドベントカレンダー2021 、13日目の記事です。 これはなに? コードが複雑化し、技術的負債が蓄積していくと、コードの変更が難しくなり、開発生産性が低下していきます。技術的負債の解消にはリファクタリングが必要です。 しかし、リファクタリングの実施には数々の罠やハードルがあります。 下手すると逆に負債を作り込んでしまうといった、自爆技をやりかねません。 この記事は、リファクタリングのアンチパターンと、その対策をまとめたものです。 この記事のゴール リファクタリングには様々なアンチパターンがあることを知る。 アンチパターンにハマらないためのアプローチを知る。 リファクタリングの効果を高めるにあたり、何のために実施するのか意義を理解する。 前提知識 なぜ自爆技となるのか、自爆だと理解するのに必要な前提知識を挙げ

                                  リファクタリング自爆奥義集 - Qiita
                                • お役立ち Twitter Bot を作りながら学ぶ AWS ドリル ~第 3 回 リファクタリング & 曜日ごとのツイート 編 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

                                  ソリューションアーキテクト(SA)の金澤 (@ketancho) です。3 月になりましたが、皆さまいかがお過ごしですか ? 私は毎年 3 月に (駆け込みで) 健康診断・人間ドックを受けることが多いのですが、社会人になってから単調増加し続ける某数字と向き合わなければならないので、落ち込んでいることが多いです。おそらくこの記事が公開されるであろう日が健康診断当日なので、優しく声をかけていただければと思います。一番嬉しいお声は「AWS ドリルやりましたよ !」です。何卒よろしくお願いいたします🙏 さて、 前回の AWS ドリル #2 も多くの方にご覧いただくことができ、大変ありがたい限りです。前回に引き続き、実際に Twitter Bot を実装されている方も多く見受けられ、著者冥利に尽きるなーと思っています。今回も楽しい記事を丁寧に書ければと思っておりますので、皆さまも引き続き手を動かし

                                    お役立ち Twitter Bot を作りながら学ぶ AWS ドリル ~第 3 回 リファクタリング & 曜日ごとのツイート 編 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
                                  • リファクタリングが先か、テストが先か - E2E自動テストの理想と現実 |Autifyブログ

                                    2023年5月17日から5月19日にかけて開催された Qiita Conference 2023 にて、弊社の Senior Technical Support Engineer である末村 拓也が『リファクタリングが先か、テストが先か – E2E自動テストの理想と現実』というタイトルで講演を行いました。本記事はこのセッションを元に、ブログ向けに若干アレンジを加えたものとなります。 概略 この記事では、以下のような内容について説明します。 自動テストコードはアプリケーション本体のコードと 依存関係 を作る 一般的に、 不要な依存関係 を排除するのが良い設計と言える 一方で、E2Eテストは GUIに対して強い依存関係 を作る テストの準備などで GUIとの不要な依存関係 を作らないようにするのが重要 不要な依存関係を減らすために、テストレベル を一つ落とす(ユーザーストーリーE2E) 低いテ

                                      リファクタリングが先か、テストが先か - E2E自動テストの理想と現実 |Autifyブログ
                                    • 開発者からのコード改善(リファクタリング)要求を受け入れず、先延ばしにした場合に発生しうるビジネス機会の損失

                                      http://creativecommons.org/licenses/by-nd/4.0/ 著: あんざいゆき(@yanzm) 開発者からのコード改善(リファクタリング)要求を受け入れず、先延ばしにした場合に発生しうるビジネス機会の損失 インシデントの頻発 アプリのクラッシュやフリーズが多くなるなどの軽いものから、見えてはいけない情報が見えてしまう(ユーザー自身でしか見えないデータが他のユーザーからも見えてしまう)ような情報漏洩に至る重大な問題など、さまざまなインシデントが発生する確率が上昇します。インシデントがセキュリティに関係するものだった場合、社会的信用を失ったり損害賠償等具体的な損失が発生する可能性があります。 うまくオーガナイズされていないコードでは、どこに何が書いてあるのか、どんな処理が行われるのか、どこまで影響範囲があるのかを開発者が正確に把握することが難しく、予期せぬバグ

                                      • Terraformのリファクタリング始めました - VisasQ Dev Blog

                                        こんにちは、プラットフォーム開発グループ SREチームの西川 (@taxin_tt) です。 皆さんTerraform使ってますか? 弊社では既存サービスのマイクロサービス化を進めており、GCPベースのインフラはTerraformを利用して整備するようにしています。 一方で、サービス数の増加などに比例してtfファイルのコード量も増えていき、ディレクトリ構成や個別のリソースの定義などマイクロサービスのインフラ整備において負担になる部分があり、昨年末からSREチーム主導でリファクタリングを行っています。 今回は、そのリファクタリングの背景や進め方についてお話しできればと思います。 (本記事は、Terraform v1.3系を前提にしています。) リファクタリング後のTerraformのディレクトリ構成は下記をベースにしているので、下記の記事も合わせてどうぞ。 tech.visasq.com リ

                                          Terraformのリファクタリング始めました - VisasQ Dev Blog
                                        • リファクタリングを文化にする 〜組織が技術的負債と向き合うワークショップ〜 - MonotaRO Tech Blog

                                          皆さんこんにちは。 CTO-Office の香川とEC開発-Bグループの竹原です。 11/28に 和田卓人氏(id:t-wada)を講師としてお招きしてテストとリファクタリングのためのワークショップを開催いたしました。 技術者正社員のうちプログラミングをすることの多いメンバー全体の約1/3にあたる総勢53名が参加しての開催となりました。 本記事ではまず第一弾としてワークショップの概要や目的、全体の流れについて簡単にご紹介いたします。 また第二弾(2024年1月公開予定)では、運営とワークショップの問題の作問に関わったメンバーにそこでの学びや実践について紹介いただきます。 開催に至った経緯とMonotaRO DOJO MonotaRO DOJO とは 社内の課題とワークショップの目的 開催経緯 ワークショップの全体像と開催までの段取り ワークショップの全体像 概要 タイムテーブル 開催までの

                                            リファクタリングを文化にする 〜組織が技術的負債と向き合うワークショップ〜 - MonotaRO Tech Blog
                                          • 効率的にリファクタリングを進めるための下準備教えます - MonotaRO Tech Blog

                                            はじめに ※ (2024/03/14 16:33) 「インテグレーションテストの気軽な実行・変更ができない」節にて、データのクリーンアップを teardownで行うよう修正 EC開発-B グループの岡崎と EC開発-A グループの菊川です。2人とも普段は MonotaRO の EC サイトの開発に従事しています。 今回は、昨年11月に開催した、テストとリファクタリングのためのワークショップの中で行ったライブコーディングの準備をするにあたって困ったことについて記載します。 ライブコーディングでは、参加者全員の前で実際のプロダクトのソースコードをリファクタリングする、ということにし、それにあたって研修の運営メンバーでリファクタリングに取り組んでみました。ただ闇雲にリファクタリングするのではなく、研修では参加者に「どのような流れや考え方でリファクタリングをするか」を理解してもらえるように、運営メ

                                              効率的にリファクタリングを進めるための下準備教えます - MonotaRO Tech Blog
                                            • このFat View Controller、あなたはリファクタリングできますか? - Qiita

                                              iOS アプリ開発において、 Fat View Controller はよく知られたアンチパターンです。 iOS アプリ開発では View Controller が大元にあるので、 View Controller になんでもかんでも実装していると、どんどん View Controller が肥大化してしまいます。 Fat View Controller には、たとえば次のような問題があります。 UI とロジックが分離されておらずテストしづらい。 コードの見通しが悪く、可読性が悪い。 状態管理が複雑になり、修正時の影響範囲を見通しづらい。 みんなで同じファイルを触ることになり、コンフリクトが起こりやすい。 そんな Fat View Controller との戦い方の知見を共有し合うために、たくさんのiOSエンジニアで同じ Fat View Controller のリファクタリングに取り組んで

                                                このFat View Controller、あなたはリファクタリングできますか? - Qiita
                                              • VBAにはユニットテストやリファクタリング機能がない・・・そんなふうに考えていた時期が俺にもありました - Qiita

                                                コンテキストメニューまたは、メニューバーのRubberduckメニューからRefactorを実行することでリファクタリングが行えます。 下記の例では関数名を変更しています。 他にも引数の削除や順番が行えます。 テスト用のモジュールとメソッドの追加方法 Rubberduck→Unit Tests→Test Moduleでテストモジュールを追加、Rubberduck→Unit Tests→Test Methodでテストメソッドを追加します。 テストモジュール中の「'@TestMethod」というコメントが記載された関数がテストメソッドとなります。 テスト実行例 まず以下のようなテストモジュールを用意します。 Option Explicit Option Private Module '@TestModule '@Folder("Tests") Private Assert As Object

                                                  VBAにはユニットテストやリファクタリング機能がない・・・そんなふうに考えていた時期が俺にもありました - Qiita
                                                • 会社がリファクタリングに賛同してくれないたったひとつの理由 - shiodaifuku.io

                                                  会社がリファクタリングに賛同してくれないたったひとつの理由一定の工数をかけてリファクタリングをやったほうがいいことは(少なくとも筆者の観測範囲では)エンジニアリングのバックグラウンドがない人でもだいたい理解しています。 上司の無理解をあげつらっても仕方ありません。 リファクタリングの実施を渋る真の原因が工期や予算の問題であることはあまりないとおもいます。タイミングの問題である可能性はありますが。 必要であればコストをかけることにも同意してくれます。 「技術的負債は過去のビジネス上の選択によって生じたまさに負債なので、計画的に返済しましょう」っていえば、多くの経営者は理解を示してしてくれるでしょう。 本当に無理解ゆえにリファクタリングをしないのであれば技術的には死んでいる組織なので、エンジニアとして幸せになりたい場合は逃げ出したほうが賢明です。 というわけで、本稿ではそういう組織においてもな

                                                    会社がリファクタリングに賛同してくれないたったひとつの理由 - shiodaifuku.io
                                                  • リファクタリング専門チームによるお金周りリファクタリング - クラウドワークス エンジニアブログ

                                                    こんにちは、エンジニアの @MinoDriven です。 今年2019年4月にリファクタリング専門チームを発足しました。 crowdworks.jp の最重要機能であるお金周りの機能に関して、どのような技術アプローチでリファクタしているかを紹介致します。特に、Railsには適用困難と言われているドメイン駆動設計の考え方を取り入れた手法を解説致します。 目次 背景 リファクタリング専門チーム発足 技術的負債 リファクタリング対象選定 方針①:パレートの法則(80:20の法則) 方針②:リファクタリング選定基準3軸 「仕事周り」か「お金周り」か お金周りモデルのリファクタリングを妨げるConcern 課題①:ActiveRecord側の構造に依存したコード 課題②:型や構造のチェック(リスコフの置換原則違反) 課題③:重要業務概念の埋没 どのようにリファクタしたか 手法①:Concern側メソ

                                                      リファクタリング専門チームによるお金周りリファクタリング - クラウドワークス エンジニアブログ
                                                    • 開発者からのコード改善(リファクタリング)要求を受け入れず、先延ばしにした場合に発生しうるビジネス機会の損失

                                                      開発者からのコード改善(リファクタリング)要求を受け入れず、先延ばしにした場合に発生しうるビジネス機会の損失

                                                        開発者からのコード改善(リファクタリング)要求を受け入れず、先延ばしにした場合に発生しうるビジネス機会の損失
                                                      • レビュアーにやさしいリファクタリングPRを作る

                                                        リファクタリングの PR、見るのツラい内容になりがち PR(PullReqeust)を作成してレビューを受け、Approve を受けたらマージする..という開発スタイルはよくあるパターンで、新たな機能追加や修正では観点が明確で動作確認も実施しやすいのですが、これがリファクタリングがテーマになると、途端にレビューが大変になることがあります。 個人的な経験則もありますが、何も意識せずに PR を作ると、次のような問題が発生しやすいように感じます。 1テーマに関する修正が一気に詰め込まれていて物量が多い 何を確認したらよいのかわからない 複数 PR に分けている場合に、後続の PR だけを見ても理解できない など... リファクタリングの PR は内容も淡々としたものになることが多く、確認もリグレッションテストが中心で、レビュアーはそこそこ心を削られます。そのうえ上記のような問題を抱えていると、

                                                          レビュアーにやさしいリファクタリングPRを作る
                                                        • Figmaのリファクタリングからはじめるデザインシステムの構築|TORAJIRO

                                                          こんにちは、GaudiyデザイナーのTORAJIRO(@jirosh1998)です。 『英単語アプリ mikan』の副業デザイナーとして、Figmaリファクタリング&デザインシステムの一歩目を構築した話を書こうと思います。 このnoteの最後に、今回作成した『mikan DesignSystem』のデータを公開していますので、ぜひご覧ください👋(mizoさんをはじめmikanのみなさん、具体的なアウトプットの公開まで許可いただき感謝です!心広すぎ!) 読んで欲しい人 - これからチームでデザインシステムを作っていきたい - コンポーネントライブラリをFigmaで構築したい - Figmaをリファクタリングして、デザイナーの作業効率を上げたい デザインシステム本題に入る前に、このnoteで書いている「デザインシステム」の定義について触れておきます。デザインシステムとは「良いデザインを『効率

                                                            Figmaのリファクタリングからはじめるデザインシステムの構築|TORAJIRO
                                                          • リファクタリングに関する何か - 日々常々

                                                            リファクタリングの話をするとき、焦点が合ってないなーと感じることがたまにあるのでざっくり描いてみた。 自分のために描いたものなので、なんか違うなーって思ったらご自身で描いてみるといいと思います。レッツモデリング。 破線は依存、実線は変換。長方形は名前などで明確に識別可能なもの、角丸は様々なものを包含する活動。雲は思いです。 描いた時の経緯と言うか 該当ツイート: リファクタリングって常時やるものなんですよね。もちろん「よーしやるぞー」って感じで行うものもあるんですけど、それは深呼吸的な。 とは言え。やったことがない、やってはいけない文化(動いているコードに触ってはいけない)に染められてしまっている、そのような方に「無意識にやれ!」と言っても、何の意味もないので言いません。むしろ害悪ですらある。 該当ツイート: 無意識にやるようになって、ようやく「リファクタリング」がカタログ化される前の「偉

                                                              リファクタリングに関する何か - 日々常々
                                                            • 巨大レガシーシステムの戦略評価とリファクタリングにおけるDDDの活用事例

                                                              こちらのイベントで発表した資料です。 『ドメイン駆動設計を導入するためにやったこと』 https://modeling-how-to-learn.connpass.com/event/229811/

                                                                巨大レガシーシステムの戦略評価とリファクタリングにおけるDDDの活用事例
                                                              • リファクタリング(第2版) 既存のコードを安全に改善する | Ohmsha

                                                                リファクタリングは、ソフトウェアの外部的な振る舞いを保ったままで、内部の構造を改善する作業を指します。本書はリファクタリングのガイドブックであり、リファクタリングとは何か、なぜリファクタリングをすべきか、どこを改善すべきか、実際の事例で構成され、ソフトウェア開発者にとって非常に役立つものとなっています。 本第2版では、約20年前のオリジナル原稿の構成は変わらないものの、大幅に書き換えられているほか、サンプルコードがJavaからJava Scriptになるなど、現代的にアレンジされています。

                                                                  リファクタリング(第2版) 既存のコードを安全に改善する | Ohmsha
                                                                • Value Object (値オブジェクト) でリファクタリングしたら結構良かった

                                                                  ドメイン分析とモデル化ここで「モデル化」と呼ぶのは、実装者が理解しやすいように重要な側面に注目して、端的な形に抽象化する行為であると定義します。 また、実際に実務で行なっている自身のモデル化を行う時の書き振りを近しく再現(中身は変更)しているため、わかりづらいかもしれませんが、”実務ではこうやっている” というのを理解していただければ。 先の要件を整理すると、数という概念に金額とポイントという2つのドメインモデルが含まれる。 金額とポイントという異なる概念を計算して最終的に獲得ポイント数を導き出す必要がある。 存在する制約 金額が負の数になることはありえない。ポイントが負の数になることはありえない。金額は日本円のみを考慮し、外貨は存在しない。ポイントは文脈によって呼び名が変わるが、単位は変わらない。支払い金額合計以上にポイント利用数が設定されることはない。金額に小数点は存在しない。ポイント

                                                                    Value Object (値オブジェクト) でリファクタリングしたら結構良かった
                                                                  • リファクタリングの価値の考察 - プログラマーの脳みそ

                                                                    リファクタリングには価値がある、とプログラマは確信していることだろう。しかし、その価値が何であるか?を上手く説明できるかというと難しいのではないだろうか。本稿ではリファクタリングの価値をテーマに筆者の説を提示していく。 品質特性の側面から 補足 品質特性の相互作用 リファクタリングの価値 障害対応 機能追加 システムの製品寿命 まとめ 品質特性の側面から ソフトウェアの品質特性としてISO/IEC 9126が一般的に用いられている。大きく6つの特性と細分化された副特性からなり、ISO/IEC 9126 - Wikipedia から引用すると 機能性(functionality) - 機能とその特性に影響する特性群 信頼性(reliability) - ある状況がある時間続いたときにソフトウェアがどの程度機能するかに影響する特性群 使用性(usability) - 利用するのにかかる手間、個

                                                                      リファクタリングの価値の考察 - プログラマーの脳みそ
                                                                    • 20,000+行のmanifestをリファクタリングして分かったKustomizeの美しきアーキテクチャと拡張性 / Kustomize deep dive

                                                                      #CNDT2021 で Kustomize の話をしたときの資料です。

                                                                        20,000+行のmanifestをリファクタリングして分かったKustomizeの美しきアーキテクチャと拡張性 / Kustomize deep dive
                                                                      • Reactコンポーネントの抽象化とインターフェースのリファクタリング

                                                                        記事の概要と動機 Takepepeさんの「AtomicDesign 境界線のひき方」という記事を読んでいて、はたと気づいた。「限定的コンポーネントを横断的なものに移行する」という箇所は、SOLID原則のISPとそのリファクタリングの話だ。ISP(Interface Segregation Principle)とはインターフェース分離原則である。 コンポーネントは、はじめは限定的コンテキストで実装するべきでしょう。共通利用される頃合いに、リファクタリングすれば十分です。その際に忘れてはならないことが「抽象化」です。 この記事は、Takepepeさんの記事中の以下の一文に対して、インターフェースという観点から解説を加えた返歌、つまりアンサーソングである。 コンポーネントのインターフェース フロントエンドのコンポーネントのインターフェースとは、単純化するとPropsの型である。 type Art

                                                                          Reactコンポーネントの抽象化とインターフェースのリファクタリング
                                                                        • クラウドワークス プロダクトの持続的開発のためのリファクタリング実践アプローチ

                                                                          19/07/24開催の「持続可能なプロダクト開発への取り組み ~メドピアとクラウドワークスの事例公開~」における、クラウドワークス側の登壇資料です。 https://connpass.com/event/136791/

                                                                            クラウドワークス プロダクトの持続的開発のためのリファクタリング実践アプローチ
                                                                          • テストコードのリファクタリングが目指すもの/DXD 2021

                                                                            学生時代にソフトウェア工学を学び、オブジェクト指向分析/設計に傾倒。執筆活動や講演、ハンズオンイベントなどを通じてテスト駆動開発を広めようと努力している。 『プログラマが知るべき97のこと』(オライリージャパン、2010)監修。『SQLアンチパターン』(オライリージャパン、2013)監訳。『テスト駆動開発』(オーム社、2017)翻訳。『Engineers in VOYAGE』(ラムダノート、2020)編者。テストライブラリ power-assert-js 作者。

                                                                              テストコードのリファクタリングが目指すもの/DXD 2021
                                                                            • “14年もの”の技術的負債をどうやって解消した? ラクスがリファクタリングで取り組んだこと

                                                                              株式会社ラクスが開催するエンジニア向けのイベント「RAKUS Meetup」。今回は「開発戦略・マネジメント・設計」というテーマで、「配配メール」の開発を担当している西原優人氏が、リリースサイクルに影響を与えず円滑にリファクタリングを進めるために実施した工夫について共有しました。 14年目のサービスが経験したリファクタリングの課題 西原優人氏(以下、西原):「14年目のサービスと今後も歩むためのリファクタリング戦略」と題しまして、株式会社ラクスの西原が発表させていただきます。よろしくお願いします。 まず自己紹介です。西原優人と申します。Twitterをやっているので、よかったらフォローしてください。あまりつぶやいてはないですが(笑)。 経歴ですが、2015年に新卒でラクスに入社しまして、「メールディーラー」や「チャットディーラー」といったサービスの開発を経験し、現在は「配配メール」の開発を

                                                                                “14年もの”の技術的負債をどうやって解消した? ラクスがリファクタリングで取り組んだこと
                                                                              • 法律をリファクタリングしながら読んでみる - 日々常々

                                                                                法律って慣れてないと読みにくいですよね。慣れたら読みやすくなるのかわからないけれど。 取り違いや誤解、漏れが少ないようにを意識して書かれているのか、どうしても冗長に感じます。 よくあるのが「AAAのBBB若しくはCCCのDDD」のようにAAAとCCC、BBBとDDDが並列で、これを一塊として後の文が続くもの。この塊を抜き出せると一気に読みやすくなります。 てことでリファクタリングをしてみる。テストがないのは気にしないで。 やるのは一次変数の抽出と名前の変更。 お題は「特定商取引に関する法律」の第三節 通信販売(通信販売についての広告)、第十一条です。 選んだ理由はたまたま今読んでるから。 まず原文から開始。 第十一条 販売業者又は役務提供事業者は、通信販売をする場合の商品若しくは特定権利の販売条件又は役務の提供条件について広告をするときは、主務省令で定めるところにより、当該広告に、当該商品

                                                                                  法律をリファクタリングしながら読んでみる - 日々常々
                                                                                • Let'sリファクタリング!! 〜ボクシル開発チームでやってきたこと〜 - SMARTCAMP Engineer Blog

                                                                                  こんにちは!フリーランスエンジニアの曽根田です。 本日は「Let'sリファクタリング!!」ということで、以下の内容でお届けさせていただきます。 はじめに ボクシル開発チームで取り組んできたこと リファクタリングに取り組むにあたっての背景 リファクタリングコードのサンプル Let's リファクタリング DB への問い合わせの削減(N+1 対策) 対策 1: categories と category_setting_items を予め読み込んでおき、キャッシュさせておく 対策 2: product_category_settings を予め読み込んでおき、キャッシュさせておく/ view での SQL の発行を止める 改善結果 view のコンポーネント化 未使用の関数の削除 外部キー制約をつける NOT NULL 制約をつける test コードを書く まとめ はじめに スマートキャンプさん

                                                                                    Let'sリファクタリング!! 〜ボクシル開発チームでやってきたこと〜 - SMARTCAMP Engineer Blog