タグ

refactoringに関するmanabouのブックマーク (65)

  • リファクタリングに向けた自動インテグレーション実装 - RAKUS Developers Blog | ラクス エンジニアブログ

    背景 経費精算システム「楽楽精算」は2009年にリリースされ、15年以上にわたり運用されてきました。 その間、基的なシステム設計はリリース当初のまま維持されています。 しかし、年月が経つにつれ、技術トレンドやビジネス的な要求は大きく変化しましたが、現状のシステムではそれらの変化に柔軟に対応することが困難になってきています。 システムの柔軟性は低く、機能追加のたびに既存機能への影響を広範に調査する必要があり、既存の処理フローを変えることができないため、イレギュラーなテクニックが必要となることも多く、追加開発のたびに多くの手間とコストがかかるようになってきました。 すべての問題が現行システムに起因するわけではありませんが、特定のミドルウェアに強く依存した構造を持っているため、将来的な技術革新や新しいミドルウェアへの移行が困難であるという課題も抱えていました。 このような背景から、ミドルウェア

    リファクタリングに向けた自動インテグレーション実装 - RAKUS Developers Blog | ラクス エンジニアブログ
  • Terraformのリファクタリング始めました - VISASQ Dev Blog

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

    Terraformのリファクタリング始めました - VISASQ Dev Blog
  • コドモンさんのミノ駆動本輪読会に呼ばれました - READYFOR Tech Blog

    こんちはー、リファクタリング大好きなミノ駆動です。 私は初級〜中級向けのソフトウェア設計入門書『良いコード/悪いコードで学ぶ設計入門』(通称「ミノ駆動」)を2022年4月に出版しました。 拙著はありがたいことに、さまざまな勉強会グループや企業さんでの輪読会で用いられていると聞きます。 この記事は、株式会社コドモン のエンジニアさんからお呼びを受けて輪読会に参加したレポートです。 召喚の儀(ことのはじまり) 「輪読会に召喚したい」的な雰囲気をTwitterで感知したので、私は次のようなツイートをしました。 僕は常にエゴサしているので、 #ミノ駆動 の輪読会などで僕を召喚したい場合は、僕の名でツイートしていただけると、予定等にもよりますが召喚に応じます。 (※DMは相互フォロワー以外解放していないため) https://t.co/ljv8KnxcI6— ミノ駆動 (@MinoDriven)

    コドモンさんのミノ駆動本輪読会に呼ばれました - READYFOR Tech Blog
  • 新入社員ソフトウェア研修「レガシーコード改善ハンズオン」を実施しました! - NTT Communications Engineers' Blog

    こんにちは! 今年もう2ヶ月ほど経ちましたがまだまだ寒い日が続いていますね。 イノベーションセンターの原田です。 日は2021年11月頃に実施しました新入社員研修の取り組みについてご紹介します。 研修の概要について このハンズオンは新入社員が半年ぐらい業務に携わった頃に おそらく対峙する or したであろうレガシーなコードについて、 どのように立ち向かうべきか?を5日間チームで手を動かしながら学習していただく研修です。 この研修には2つのゴールがあり、1つ目が「レガシーコードを安全に変更するための土台作りの方法を学ぶ」、2つ目が「どのようにレガシーコードを戦略的に改善していくか意識付ける」です。 受講生は 20 名で、2021 年度入社以外の社員も数名参加しました。 また講師・メンターを社員7名が担当し、 研修は全体を通してオンラインで行いました。 下記は全体のスケジュール表になります。

    新入社員ソフトウェア研修「レガシーコード改善ハンズオン」を実施しました! - NTT Communications Engineers' Blog
  • 良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer

    CyberZ CTO室のメンバーの森 (@at_sushi_at) です。 先日、株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 そこで話した内容とスライドを完全公開します。 45分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 はじめに こんにちは、森 篤史と言います。2019年度入社で今年で3年目になります。株式会社CyberZのOPENREC.tvというプロダクトでAndroidアプリチームのリーダをやっています。 最近はプログラムを書く仕事以外に、次世代マネジメント室という全社横断組織でDevelopers Blogの改善プロジェクトを実行したり、CyberZ CTO室で組織活性化に取り組んでいます。 あと、2019年度の未踏スーパークリエータにも認定されました。 メインの仕事としては、入社して

    良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer
  • データベースをリファクタリングしたお話 - BASEプロダクトチームブログ

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

    データベースをリファクタリングしたお話 - BASEプロダクトチームブログ
  • リファクタリングに関する何か - 日々常々

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

    リファクタリングに関する何か - 日々常々
  • iOSリバーシリファクタリングチャレンジ w/ Redux - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? リバーシリファクタリングチャレンジ koherさんが公開された、このFat View Controller、あなたはリファクタリングできますか?チャレンジに参加しました。 チャレンジは、 Fat View Controller として実装されたリバーシアプリをリファクタリングし、どれだけクリーンな設計とコードを実現できるかというコンペティションです(ジャッジが優劣を判定するわけではなく、設計の技を競い合うのが目的です)。 GitHubのソースコード Qiitaの解説記事 Swift Zoomin' チャレンジ #1 チャレンジ Swi

    iOSリバーシリファクタリングチャレンジ w/ Redux - Qiita
  • 100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順|ハイクラス転職・求人情報サイト AMBI(アンビ)

    100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順 マイクロサービスの導入事例を、中の人が徹底的に語ります。クックパッドでは、100万行オーバーの超巨大なRuby on Railsアプリのマイクロサービス化に挑みました。アプリをいかに分離し、連携できるようにするか、など、同社が採ったマイクロサービス化の戦略を聞きました。 Ruby on Railsのバージョンアップに1年かかっていた 【マイクロサービス化戦略】まずはコードを減らすことから 【マイクロサービス化戦略】アプリ固有のバッドノウハウを減らす 【マイクロサービス化戦略】まずは分離しやすい部分からお試しで 【マイクロサービス化戦略】データベースが切れていればサービスも切りやすい 【マイクロサービス化戦略】インフラ構成を標準化する 【マイクロサービス化戦略】サービスメッシュを入れて通信の課題をクリ

    100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • 【書評】「レガシーコードからの脱却」の9つのプラクティスは圧倒的に正しい(経験者談) - give IT a try

    はじめに 株式会社アトラクタの原田騎郎さん(@haradakiro)から、書籍「レガシーコードからの脱却」をご恵贈いただきました。(どうもありがとうございます!) せっかくいただいたなので、書を読んだ僕の感想を書いてみようと思います。 どんななの? 端的に言うと、「初めからレガシーコードを作りださないための9つのプラクティスを説明した」となります。 最初にタイトルを見たときの印象は「今そこにあるレガシーコードを、どうやってイケてるコードに書き直していくのか?」を説明したなのかなと思ったんですが、書が主眼としているのは「そもそもレガシーコードを作らないこと」でした。 ですので、「レガシーコード改善ガイド」とは毛色が違うだと考えた方が良さそうです。 (「レガシーコード改善ガイド」は、「今そこにあるレガシーコードを改善する方法」を解説したです) レガシーコード改善ガイド (Obj

    【書評】「レガシーコードからの脱却」の9つのプラクティスは圧倒的に正しい(経験者談) - give IT a try
  • クラウドワークス プロダクトの持続的開発のためのリファクタリング実践アプローチ

    株式会社オロ 新規事業開発チーム 後藤歩と申します。 NestJSは弊社の2つのプロダクトで1年ほど使っています。 (個人的にも1プロダクトで使っており、合計3プロダクトでNestJSを使って開発をしています) その実例をコードを交えてご紹介できればと思います。 システム構成 認証、認可、フレームワーク、DBAPI、バリデーション、キューイング、スケジューリング、マイグレーション、テスト、- Swagger、i18nをどのようにやっているかのコードを交えて実例紹介 など

    クラウドワークス プロダクトの持続的開発のためのリファクタリング実践アプローチ
  • マーチン・ファウラー氏の新著「リファクタリング 2nd Edition」が完成、ほぼ全面的な刷新。日本でも11月22日発売

    マーチン・ファウラー氏の新著「リファクタリング 2nd Edition」が完成、ほぼ全面的な刷新。日でも11月22日発売 マーチン・ファウラー氏が約2年を費やして執筆してきた新著「リファクタリング 2nd Edition」が完成し、日Amazon.comなどで予約が始まりました。発売日は11月22日と表示されています(下記の表紙画像からもAmazon.comへリンクしています。記事執筆時点でのAmazon.comでの販売価格は7279円)。 「リファクタリング」とは、ソフトウェアの機能追加や変更、性能向上などに備えるため、開発されたコードの外部に対する振る舞いは変えずに、より整理された、あるいは洗練されたコードに書き換えること、あるいはその手法のことを指します。 いまでは開発者の間で広く知られているこのリファクタリングの意義や方法論をはじめて系統的に解説し、普及に大きな貢献を果たした

    マーチン・ファウラー氏の新著「リファクタリング 2nd Edition」が完成、ほぼ全面的な刷新。日本でも11月22日発売
  • マーチン・ファウラー氏「リファクタリング 2nd Edition」で20年ぶり内容刷新、サンプルコードはJavaScriptに。Web主体で書籍はエッセンシャル版の位置づけ

    マーチン・ファウラー氏「リファクタリング 2nd Edition」で20年ぶり内容刷新、サンプルコードはJavaScriptに。Web主体で書籍はエッセンシャル版の位置づけ マーチン・ファウラー氏が20年ぶりに大幅に内容を刷新した書籍「リファクタリング 2nd Edition」を今年秋に出版する計画だ。サンプルコードはJavaからJavaScriptに変わる。また、コンテンツ体はWebサイトとなり、書籍はそのエッセンシャル版の位置づけとなる。 「リファクタリング」とは、ソフトウェアの機能追加や変更、性能向上などに備えるため、開発されたコードの外部に対する振る舞いは変更せず、より整理された、あるいは洗練されたコードに書き換えること、あるいはその手法のことを指します。 いまでは開発者の間で広く知られているこのリファクタリングについて、その目的や手法などを書籍としてまとめあげ、出版したことで啓

    マーチン・ファウラー氏「リファクタリング 2nd Edition」で20年ぶり内容刷新、サンプルコードはJavaScriptに。Web主体で書籍はエッセンシャル版の位置づけ
  • ペイモのリファクタリングとの戦い

    割り勘アプリ「ペイモ」がリリースされて早1年。僕がペイモiOSの開発に関わり初めたのはリリース直後だった。驚くべきことに、当時、弊社AnyPayにはアプリエンジニアが誰もいなかった。 誰がペイモを作ったのか。そう、完全に外部のチームがペイモiOS/Androidを作りあげたのだ。それもおよそ3ヶ月という短い期間で。さらに、プレスリリースの日付も決まっていたので、決して遅れることは許されなかった。今、当時の仕様書を振り返ってみても、よくこれをそんな短時間で作り上げたな…となってしまう。 では、そんな短時間でこんなハードな開発を行うとどうなるのか…。ブクブクに太ってしまったViewController。APIから受け取った配列データをDictionaryにマッピングした結果期待通りの順番が保証されていないデータ群。急に登場するTableViewController。どこで値が更新されているのか

    ペイモのリファクタリングとの戦い
  • Gyazo の Web API の設計変更 - r7kamura - Medium

    業務委託として現在 Nota 社の Gyazo のサーバサイドの開発をお手伝いさせてもらっているのですが、その中でやっていることについて幾つか紹介したいと思い、今回は開発環境で全面的に Docker を使うようにしたという話について書こ… ここでは、Web ブラウザやその他のクライアントから HTTP を介して利用し、JSON などのデータフォーマットでクライアントアプリケーションとやり取りを行うようなエンドポイントのことを Web API と呼んでいます。 Jbuilder からの移行これまでのコードでは、JSON を生成するために Jbuilder というライブラリを使っていました。これは DSL を用いて JSON を生成するライブラリで、Rails の場合は ActionView と協調して動きます。 Jbuilder からの変更の理由は幾つかあるのですが、主要な理由を挙げると、以

  • リファクタリング

    自分はリファクタリングが好きなので、リファクタリングに対する考えとかを書いてみる事にした。 前提としては自社製品、さらにパッケージソフトウェアのためデプロイは存在しない。リリースは一ヶ月に一回程度。ソースコードは 10 万行未満。 自分がリファクタリングするのは機能追加に飽きた時。ペーストしては月1回程度で、多い方だと思う。よく飽きる。 リファクタリングをする時はまず、コードを端から端まで読みながらコメントをしていくところから始める。その後、またコードを端から端まで読みながらコメントを読みつつ、どんなリファクタリングをするか決めていく。そして、決めたらブランチを切って作業。 とにかく、手を付けるコードを読むことが重要だと思っている。人間は適当なものでコードを適当に理解している事が多いので、一度頭を空っぽにしてコードを読むと「この辺は大丈夫」と思っていた部分も全然大丈夫じゃないことがある。

  • きれいなコードとは? リファクタリングできれいなコードを書く方法 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? エイチームライフスタイルアドベントカレンダー2017の8日目です。 日は株式会社エイチームライフスタイルの新卒1年目のエンジニア@kyntkが担当します。 はじめに 私もエンジニアとして 「コードがきれい」って言われたい! と思い、普段学んだことをまとめる一環としてこのテーマで書くことにしました。 約8ヶ月前、入社したばかりの頃、私は「きれいなコード」と聞いてもあまりピンとこない状態でした。スキルはRailsで簡単なアプリを作れる程度で、コードの美しさについては考えたとがありませんでした。私が書くコードに対しては、ほぼ毎回「読みづらい

    きれいなコードとは? リファクタリングできれいなコードを書く方法 - Qiita
  • Refactoring React Components with Jest’s Snapshot

    Here come the jesters… In this article we will be discussing Jest’s Snapshot test feature and how it can be used to help maintain consistent UI output while refactoring React components. For those unfamiliar with Jest, it is a powerful javascript testing library that was released by Facebook in 2014. Though the library was not designed to be used exclusively with React it has become the go to test

    Refactoring React Components with Jest’s Snapshot
  • ULTRABeerBashで『大規模サービスのリプレイスへの道』と題して登壇してきました

    はじめに こんにちは。ビューティー事業ユニットプロダクト開発グループでマネジャーをしている小川です。 先月のことではありますが、ホットペッパービューティーというサービスで取り組んでいるシステムのリプレイスについて ULTRABeerBash でお話してきました。 ULTRABeerBashとは ビズリーチ社が主催する、ビールをのみながら、技術、知識、経験、哲学を共有するイベントです。 詳細については、ULTRABeerBash公式サイトをご覧ください。 ホットペッパービューティーについて 国内最大級のヘアサロン・リラク&ビューティーサロン検索予約サイトです。 予約などがおこなえるカスタマー向けのサイトと予約管理や集計分析などがおこなえるクライアント向けサイト、他にも内部向けにいくつかのサイトを連結してできているというようなサービスです。 資料の中にも記載していますが、2017年9月更新の数

    ULTRABeerBashで『大規模サービスのリプレイスへの道』と題して登壇してきました
  • Java9 でも String クラスがリファクタリングされていました (JEP 254: Compact Strings 編) - 地平線に行く

    日、ついに JavaSE 9 がリリースされました! そこで、かねてから噂になっていた JEP 254: Compact Strings がどのように実装されているのか調べてみました。 Compact Strings の概要 これまで String クラスや StringBuilder クラスなどの内部では、文字列を UTF-16 でエンコードして char 配列で保持していました。 つまり、一文字あたり*1常に char ひとつ = 2バイト分のメモリを使っていました。 しかし、これだと 1 バイトで表せる LATIN1(ASCII コード + ラテン文字)の文字列の場合、その半分が 0x00 になるという無駄がありました。 そこで、内部表現を変更し、文字列が LATIN1 のみで構成されるときは 1 文字を 1 バイトで保持するようにリファクタリングされました。 ちなみに、LATIN

    Java9 でも String クラスがリファクタリングされていました (JEP 254: Compact Strings 編) - 地平線に行く