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
大切なことは全てLintが教えてくれた
Search
Ryota Sakaguchi
March 05, 2021
Technology
0
49
大切なことは全てLintが教えてくれた
YUMEMI.apk #3で発表した内容です。
Ryota Sakaguchi
March 05, 2021
Tweet
Share
More Decks by Ryota Sakaguchi
See All by Ryota Sakaguchi
時間を意識する推しツールたち / Time-aware tools
kuluna
1
610
DroidKaigi2020 - Data Bindingのイロハ
kuluna
1
1.2k
チームでつくる RESTful API
kuluna
1
12k
クリぼっちの自分が信じられるのはもはや型のみである
kuluna
1
470
Other Decks in Technology
See All in Technology
制約理論(ToC)入門
recruitengineers
PRO
3
310
OpenAPIから画面生成に挑戦した話
koinunopochi
0
160
開発と脆弱性と脆弱性診断についての話
su3158
1
1.1k
実践アプリケーション設計 ③ドメイン駆動設計
recruitengineers
PRO
3
200
DeNA での思い出 / Memories at DeNA
orgachem
PRO
3
1.6k
浸透しなさいRFC 5322&7208
hinono
0
120
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
2
20k
Browser
recruitengineers
PRO
4
340
Product Management Conference -AI時代に進化するPdM-
kojima111
0
220
トヨタ生産方式(TPS)入門
recruitengineers
PRO
3
240
サービスロボット最前線:ugoが挑むPhysical AI活用
kmatsuiugo
0
190
TypeScript入門
recruitengineers
PRO
19
6.2k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
329
21k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
780
The World Runs on Bad Software
bkeepers
PRO
70
11k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
The Invisible Side of Design
smashingmag
301
51k
Documentation Writing (for coders)
carmenintech
73
5k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
For a Future-Friendly Web
brad_frost
179
9.9k
Transcript
大切なことは全て Lintが教えてくれた YUMEMI.apk #3
kuluna 株式会社Showcase Gig エンジニア募集中! SETエンジニアやってます Twitter: @kuluna I Love Kirby!
SETエンジニアって? Software Engineer in Test テストをがんばるエンジニア💪
普段やっていること • リグレッションテストの自動化 ◦ メインはこれ! • テスト仕様書の修正 ◦ 時間が経つと実装とテストが乖離することもしばしば... •
コードレビュー ◦ 普段から良いコードを書くのがだいじ!
レビュー 「この関数は使わずにこっち使ったほうがいいです〜」 「指摘あざす!直しました!」 「Thx!ちなみにこの関数って他でも使ってます?」 「あ〜結構使ってます〜全部リネームは厳しいです」 「時間とれたらなおしましょう〜」
レビュー 「この関数は使わずにこっち使ったほうがいいです〜」 「指摘あざます!直しました!」 「Thx!ちなみにこの関数って他でも使ってます?」 「あ〜結構使ってます〜全部リネームは厳しいです」 「時間とれたらなおしましょう〜」 その日が来ることは 二度となかったという...
1. コードレビューだけでは改善が追いつかない 2. 現時点では問題ないから優先度は下がりがち 3. 時間が経つと忘れる 4. 思い出した時にレビューで指摘する 5. 1.に戻る
Lint コード書いてるとたまに黄色のハイライトや取り消し線で教えて くれるやつ
Lint もとはC言語向けのツール 他の言語もこの仕組みを取り入れていった結果、Lintは言語のより良い書 き方を提案してくれるツールとして定着 Android向けにもいくつかLintが提供されている Java Lint Kotlin Lint Android
Studio(Intellij IDEA) Lint Android Lint
Lintをうまく使えば・・・ 開発者に常に修正したほうが良い箇所を教えてくれる (モノによっては) 代替案を提示できる (モノによっては) 自動で修正できる 指摘内容は自分で作れる!!
kuluna/DateUtilsCompat https://github.com/kuluna/DateUtilsCompat DateUtils.formatDateRangeは日本語のみ出力結果が微妙に異なる • 同じ日付の場合 4月29日 13時37分~15時37分 • 日付が異なる場合 4月29日
13:37~4月30日 13:37 • 年が異なる場合 2020年4月29日 13:37~2021年4月29日 13:37 「時分」と「:」の出力を統一するためのライブラリ
kuluna/DateUtilsCompat repositories { jcenter() } dependencies { implementation 'jp.kuluna:dateutilscompat:1.0.0' }
👈
kuluna/DateUtilsCompat オリジナルと比較して引数が1つ増えている Enumでどちらか選ぶ .COLONと.KANJIの2つ
kuluna/DateUtilsCompat このライブラリを使えば出力が統一される しかし、DateUtilsではなくDateUtilsCompatを使う必要がある えっ、これをまたコードレビューで指摘するんですか!
👍😁
Android Custom Lint Custom Lintの実装はここでは解説しきれないので、 DateUtilsCompatのソースを見てください! Lintのコードは40行ぐらいでできた👍 ぽこぽこ作っていくものではないけど、刺さる箇所は絶対あるので お試しに何か作ってみると良いかも
...これってホットな話題なの? Android Lintが自作できるというのは数年前からある _人人人人人人人人人人人人人人人人人人_ > 調べる度にAPI変わってるのでホット <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄