Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
sinsoku listy
2,411 views
技術的負債とリファクタリング
https://rails-developers-meetup.connpass.com/event/58046/
Internet
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Downloaded 11 times
1
/ 29
2
/ 29
3
/ 29
4
/ 29
5
/ 29
6
/ 29
7
/ 29
8
/ 29
9
/ 29
10
/ 29
11
/ 29
12
/ 29
13
/ 29
14
/ 29
15
/ 29
16
/ 29
17
/ 29
18
/ 29
19
/ 29
20
/ 29
21
/ 29
22
/ 29
23
/ 29
24
/ 29
25
/ 29
26
/ 29
27
/ 29
28
/ 29
29
/ 29
More Related Content
PPTX
書くネタがCoqしかない
by
Masaki Hara
PDF
Pyramid + socket.io 人狼を作ってみた
by
Junya Hayashi
PDF
hooks riverpod + state notifier + freezed でのドメイン駆動設計
by
Shinnosuke Tokuda
PDF
すごいCoq入門
by
真一 北原
PDF
Implement tech
by
HCPC: 北海道大学競技プログラミングサークル
PDF
Clrh 20140510
by
Tomoyuki Obi
PPTX
Rustのテストやエコシステム
by
KiyotomoHiroyasu
PDF
MfcLightToolkit for small MFC apps
by
Takaaki Suzuki
書くネタがCoqしかない
by
Masaki Hara
Pyramid + socket.io 人狼を作ってみた
by
Junya Hayashi
hooks riverpod + state notifier + freezed でのドメイン駆動設計
by
Shinnosuke Tokuda
すごいCoq入門
by
真一 北原
Implement tech
by
HCPC: 北海道大学競技プログラミングサークル
Clrh 20140510
by
Tomoyuki Obi
Rustのテストやエコシステム
by
KiyotomoHiroyasu
MfcLightToolkit for small MFC apps
by
Takaaki Suzuki
What's hot
PDF
Riverpodでテストを書こう
by
Shinnosuke Tokuda
PDF
証明プログラミング超入門
by
Kyoko Kadowaki
PDF
CA15卒勉強会 メタプログラミングについて
by
Huy Do
PDF
Ansibleに貢献してみよう
by
Michihito Shigemura
PDF
RxShowcase -for ignote & i-Jupiter-
by
Takaaki Suzuki
PDF
可視化周辺の進化がヤヴァイ~rChartsを中心として~
by
Nagi Teramo
PDF
ドキュメントを直し続ける話 #kbkz_tech
by
Michihito Shigemura
Riverpodでテストを書こう
by
Shinnosuke Tokuda
証明プログラミング超入門
by
Kyoko Kadowaki
CA15卒勉強会 メタプログラミングについて
by
Huy Do
Ansibleに貢献してみよう
by
Michihito Shigemura
RxShowcase -for ignote & i-Jupiter-
by
Takaaki Suzuki
可視化周辺の進化がヤヴァイ~rChartsを中心として~
by
Nagi Teramo
ドキュメントを直し続ける話 #kbkz_tech
by
Michihito Shigemura
Similar to 技術的負債とリファクタリング
PDF
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01
by
Kenichi Tatsuhama
PPTX
表参道.rb #19 / ただRailsで使われていないメソッドを削除したい人生だった
by
Yasuhiro Matsumura
PDF
アプリケーションコードにおける技術的負債について考える
by
pospome
PDF
アジャイルサムライ横浜道場「リファクタリング:技術的負債の返済」
by
Hiroyuki Ohnaka
PDF
【Ltech#8】技術的負債返済・実装改善に関する事例紹介
by
LIFULL Co., Ltd.
PPTX
僕たちがすべきことはリファクタリングなのか
by
Ito Takumi
PDF
技術的負債を生み出す構造とその対処について
by
Masahiro Nishimi
PPTX
技術的負債の根源の根源を断ち切って再発を予防するためにどうしたらいいのかを仮説ベースで考えてみた
by
ssuser0e110a
PDF
Railsプロジェクトを成功させるために現場ができること -Railsdevcon2010
by
Yuki Akamatsu
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01
by
Kenichi Tatsuhama
表参道.rb #19 / ただRailsで使われていないメソッドを削除したい人生だった
by
Yasuhiro Matsumura
アプリケーションコードにおける技術的負債について考える
by
pospome
アジャイルサムライ横浜道場「リファクタリング:技術的負債の返済」
by
Hiroyuki Ohnaka
【Ltech#8】技術的負債返済・実装改善に関する事例紹介
by
LIFULL Co., Ltd.
僕たちがすべきことはリファクタリングなのか
by
Ito Takumi
技術的負債を生み出す構造とその対処について
by
Masahiro Nishimi
技術的負債の根源の根源を断ち切って再発を予防するためにどうしたらいいのかを仮説ベースで考えてみた
by
ssuser0e110a
Railsプロジェクトを成功させるために現場ができること -Railsdevcon2010
by
Yuki Akamatsu
More from sinsoku listy
PDF
Rails6にいつ上げるか?
by
sinsoku listy
PDF
Git 初心者講座 by forkwell
by
sinsoku listy
PDF
Randomly Failing Specs
by
sinsoku listy
PDF
本当にあった怖い話 7つの幽霊 7つの成仏
by
sinsoku listy
PDF
DVCSとGitの基礎
by
sinsoku listy
PDF
毎日gemをアップグレードする生活
by
sinsoku listy
PDF
LT_Gitのfast fowardと継続的デリバリー
by
sinsoku listy
PDF
Action pack variantsの話
by
sinsoku listy
ODP
20101001 5分でわかるtrac pluginの作り方_slideshare
by
sinsoku listy
PDF
ENGINEER WORK!!
by
sinsoku listy
PDF
Rails Testing on Fargate
by
sinsoku listy
PDF
Rails 5.2: credentials
by
sinsoku listy
PDF
ES2015のカバレッジ計測
by
sinsoku listy
PDF
CSSのカバレッジツール
by
sinsoku listy
PDF
Swift on Docker
by
sinsoku listy
PDF
自己修復的なインフラ -Self-Healing Infrastructure-
by
sinsoku listy
PDF
バージョン管理とGit
by
sinsoku listy
PDF
Awsでwindowsゲームを動かす
by
sinsoku listy
PDF
Search Form for Rails
by
sinsoku listy
PDF
Git天空闘技場_ハンズオン
by
sinsoku listy
Rails6にいつ上げるか?
by
sinsoku listy
Git 初心者講座 by forkwell
by
sinsoku listy
Randomly Failing Specs
by
sinsoku listy
本当にあった怖い話 7つの幽霊 7つの成仏
by
sinsoku listy
DVCSとGitの基礎
by
sinsoku listy
毎日gemをアップグレードする生活
by
sinsoku listy
LT_Gitのfast fowardと継続的デリバリー
by
sinsoku listy
Action pack variantsの話
by
sinsoku listy
20101001 5分でわかるtrac pluginの作り方_slideshare
by
sinsoku listy
ENGINEER WORK!!
by
sinsoku listy
Rails Testing on Fargate
by
sinsoku listy
Rails 5.2: credentials
by
sinsoku listy
ES2015のカバレッジ計測
by
sinsoku listy
CSSのカバレッジツール
by
sinsoku listy
Swift on Docker
by
sinsoku listy
自己修復的なインフラ -Self-Healing Infrastructure-
by
sinsoku listy
バージョン管理とGit
by
sinsoku listy
Awsでwindowsゲームを動かす
by
sinsoku listy
Search Form for Rails
by
sinsoku listy
Git天空闘技場_ハンズオン
by
sinsoku listy
技術的負債とリファクタリング
1.
技術的負債とリファクタリング 2017/06/22(木) Rails Developers
Meetup #2
2.
自己紹介 ● HN: 神速 ●
twitter: @sinsoku_listy ● github: sinsoku ● 所属: 株式会社grooves ● Ruby/Rails歴: 6年くらい
3.
Forkwell の紹介
4.
技術的負債とは > 手抜き、ハック、重複などなど、開発速度と期日の 名の下に、私たちは数々の 狼藉をコードベースにコ ミットしている。技術的負債とは、そうした狼藉が時間 とともに積み重なったものだ。 引用:
アジャイルサムライ p249
5.
自社のコードに技術的負債のない人
6.
今日話すこと 1. DB制約 2. 変更しやすいコード 3.
リファクタリングはいつやるの?
7.
1. DB制約
8.
null: false は基本的に必須 ●
3値論理は複雑なので避ける ○ Ruby 側で nil チェックが増える ● 意図しないデータ挿入を防ぐ ● NULL は不定で、空文字列とは違う ○ 値比較、インデックス、UNIQUE制約でハマる
9.
OAuth とスライドのデータが 同じテーブルのDB設計
10.
null: false がつけられない...
11.
UNIQUE制約にも気をつける ● 意図しないデータ挿入を防ぐ ● 後から追加するのが大変 ※
users.email にUNIQUE制約を追加する良い知見をお持ちの方、後ほど教えて頂ける と嬉しいです。
12.
2. 変更しやすいコード
13.
コードの可視性 スコープの狭いメソッドは変更しやすい。 ● private ● Refinements
14.
読みやすいコード ● 分かりやすい変数名 ● 短い行数のクラス・メソッド ●
ABCSize の小さいコード ○ RuboCop で検出できます ● 過剰な DRY よりも可読性
15.
eval, send の少ないコード eval,
send があると影響範囲が分かりづらい eval のコード例
16.
3. リファクタリングはいつやるの?
17.
引用: アジャイルサムライ p249
18.
良いコードは伝説 https://twitter.com/sinsoku_listy/status/163621382054346752
19.
ソフトウェア開発は難しい ● 予想外の仕様の追加 ● 限られた時間 ●
技術力のあるエンジニアの不足 ○ コード化されていないインフラ ○ RESTful ではない URL ○ fat controller ○ `includes` や `sort` が書かれている view ● ...etc
20.
SessionsController#auth メソッド行数は 90 行
22.
引用: アジャイルサムライ p253
23.
1つのプルリクが出来るまで 1. コードを読んで理解する 2. 変更方法を考える 3.
変更(コミット)する 4. 動作確認 5. レビュー&マージ
24.
リファクタリングはいつやるの? 1. コードを読んで理解する ○ 理解した内容をコードに反映する ○
スコープを狭くする(未使用なら消す) 2. 変更方法を考える 3. 変更(コミット)する 4. 動作確認 5. レビュー&マージ
25.
理解した内容をコードに反映する ● 説明変数の導入 ● メソッドの抽出 ●
メソッドの移動
26.
スコープを狭くする(未使用なら消す) ● private にしていく ●
git grep -n "method_name" で調べる ○ 未使用メソッドは躊躇なく消す ○ 不安なら "deprecated" をログに出し、後日消す
27.
リファクタリングしていくと... ● 漏れている条件 ● 意味のない処理 ○
絶対に true にならない条件 ○ 絶対に呼ばれないメソッド ● 実は同じ処理のメソッドがある など、気付けるようになります。
28.
まとめ
29.
まとめ ● DB制約を厳しくする ● 読みやすく、消しやすいコードを意識する ●
リファクタリングは常にする 技術的負債は必ず生まれるので、常に返済し続け るのが大事!(少額の技術的負債なら...)
Download