Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Refactoring Kataを使ってRubyのリファクタリングを練習する会 - 説明資料
Search
Yudai Tanaka
May 14, 2021
Technology
210
0
Share
Refactoring Kataを使ってRubyのリファクタリングを練習する会 - 説明資料
https://wall-hack.connpass.com/event/211464/
Yudai Tanaka
May 14, 2021
More Decks by Yudai Tanaka
See All by Yudai Tanaka
ふつうのWebサービス開発者がRubyKaigiを楽しむためのRubyの知識
ytnk531
4
4.3k
コードレビューやめた
ytnk531
0
510
リモートで生産性を上げるスクラム開発事例
ytnk531
0
600
Other Decks in Technology
See All in Technology
Standards et agents IA : un tour d’horizon de MCP, A2A, ADK et plus encore
glaforge
0
170
自立を加速させる神器 - EMOasis #11
stanby_inc
0
140
AIでAIをテストする - 音声AIエージェントの品質保証戦略
morix1500
1
120
みんなの「データ活用」を支えるストレージ担当から持ち込むAWS活用/コミュニティー設計TIPS 10選~「作れる」より、「続けられる」設計へ~
yoshiki0705
0
250
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
410
レビューしきれない?それは「全て人力でのレビュー」だからではないでしょうか
amixedcolor
0
330
AI時代のガードレールとしてのAPIガバナンス
nagix
0
290
今年注目する!データ分析プラットフォームでのAIの活用
nayuts
0
120
Practical TypeProf: Lessons from Analyzing Optcarrot
mame
0
370
これからの「データマネジメント」の話をしよう
sansantech
PRO
0
110
扱える不確実性を増やしていく - スタートアップEMが考える「任せ方」
kadoppe
0
300
[最強DB講義]推薦システム | 基礎編
recsyslab
PRO
1
170
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
220
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
Deep Space Network (abreviated)
tonyrice
0
120
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.6k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Documentation Writing (for coders)
carmenintech
77
5.3k
How to make the Groovebox
asonas
2
2.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Transcript
Refactoring Kataを使って Rubyのリファクタリングを練習する会 Wallhack Engineer ユーダイタナカ(@ytnk531)
⽥中悠⼤(@ytnk531) 来歴 1992/5/31 静岡県で誕⽣ 2017/4/1 Javaエンジニア 2019/2/1 Railsエンジニア 興味 コンピュータネットワーク、ソフトウェアのモデリング、テスティング
ギター、APEX エディタ GEdit -> vim -> さくらエディタ -> neovim -> eclipse -> VSCode -> RubyMine
Wall Hack Engineerについて キャリアの壁をいい感じに乗り越えたい⼈の集まり 発⾜のきっかけ: キャリア形成について漠然とした不安を感じた ⾼品質なソフトウェアを作る技術を頑張って学んできたけど、コスパよくない気 がする インプットは多いけど対外的なアウトプットがほぼ無い 何を勉強するのが良いのかわからない
解決策 教えてもらう 評価してもらう
今⽇やること Gilded Roseの説明 (10min) リファクタリング(1.5h) 振り返り(20min)
GildedRose-Refactoring-Kata リファクタリングの練習のためのクソコード可読性の低いコード いろいろな⾔語で書かれていて、Rubyもある Github https://github.com/emilybache/GildedRose-Refactoring-Kata
導⼊ 仕様の記述は最初はスルー。 https://github.com/emilybache/GildedRose-Refactoring- Kata/blob/main/GildedRoseRequirements_jp.md こんにちは、チーム・ギルドローズへようこそ。我々はアリソンという気さくな ⼈が経営する、都会の⼀等地にある⼩さな宿です。 また、私たちは最⾼級の商品のみを仕⼊れて販売しています。残念なことに、商 品は販売期限が近づくにつれ、品質が低下していきます。 私たちには在庫を更新するシステムがあります。これは、新たな冒険へと旅⽴っ たリーロイという無神経な性格の⼈物によって開発されました。
あなたの仕事は、システムに新しい機能を追加して、新しいカテゴリーのアイテ ムを販売できるようにすることです。
ソースコード https://github.com/emilybache/GildedRose-Refactoring- Kata/blob/main/ruby/gilded_rose.rb Item 販売する商品。名前、販売期限、品質を持つ。商品ごとに販売期限と品質の変化の仕 ⽅が異なる。 GildedRose 商品を販売する店舗。 #update_quality で陳列している商品の販売期限と品質を更新す
る
課題 最近、"Conjured"アイテムのサプライヤーと契約しました。そのため、システム の更新が必要です。 "Conjured"アイテムは、通常のアイテムの2倍の速さで品質が劣化します。 ItemクラスやItemsプロパティは変更しないでください。 これらは、隅にいるゴブリンのものなので、コードの共有所有権を信じていない ので、怒り狂ってあなたを⼀発で撃ってきます。
リファクタリング 進め⽅ モブプロ形式で、ドライバーを⼊れ替えながら実施 1. コードの問題点を指摘してタスクリスト化 2. リストを上から消化する 3. 全て消化したら1にもどる ルール
変更したらテストする 1コミット1リファクタリング リファクタリングと機能追加は⼀緒にしない ドライバーは10分--15分で交代
リファクタリングの着地点 新しい商品のための機能追加を安⼼してできるところまで 時間が余ればその先へ
テスト https://github.com/ytnk531/GildedRose-Refactoring-Kata/pull/1/files
モブプロ参加者の紹介 @okuramasafumiさん @fukajunさん @tamamushiさん
質疑応答