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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryota Sakaguchi
March 05, 2021
Technology
0
50
大切なことは全て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
630
DroidKaigi2020 - Data Bindingのイロハ
kuluna
1
1.4k
チームでつくる RESTful API
kuluna
1
12k
クリぼっちの自分が信じられるのはもはや型のみである
kuluna
1
480
Other Decks in Technology
See All in Technology
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.4k
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
230
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
400
猫でもわかるKiro CLI(セキュリティ編)
kentapapa
0
110
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
410
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
210
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
510
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
130
Greatest Disaster Hits in Web Performance
guaca
0
290
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
100
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
210
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
エンジニアに許された特別な時間の終わり
watany
106
230k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Designing for Timeless Needs
cassininazir
0
130
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Optimizing for Happiness
mojombo
379
71k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
950
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^ ̄