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
54
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大切なことは全てLintが教えてくれた
YUMEMI.apk #3で発表した内容です。
Ryota Sakaguchi
March 05, 2021
More Decks by Ryota Sakaguchi
See All by Ryota Sakaguchi
時間を意識する推しツールたち / Time-aware tools
kuluna
1
640
DroidKaigi2020 - Data Bindingのイロハ
kuluna
1
1.5k
チームでつくる RESTful API
kuluna
1
12k
クリぼっちの自分が信じられるのはもはや型のみである
kuluna
1
480
Other Decks in Technology
See All in Technology
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
ブロックチェーン / Blockchain
ks91
PRO
0
110
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.8k
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
580
新アーキテクチャ「TiDB X」解説とDedicated比較 TiDB Cloud Premiumのゲーム運用活用を検証
staffrecruiter
0
120
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
50k
Agentic Defenseとともにセキュリティエンジニアが輝き続けるには / How Security Engineers Can Keep Excelling with Agentic Defense
yuj1osm
0
120
Mastering Ruby Box
tagomoris
3
150
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
1
340
AI フレンドリーなエラー監視を TypeScript で実現する
shinyaigeek
2
260
地元にいないローカルオーガナイザーの立ち回り
uvb_76
1
940
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
220
Featured
See All Featured
Mind Mapping
helmedeiros
PRO
1
240
Chasing Engaging Ingredients in Design
codingconduct
0
210
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
160
Amusing Abliteration
ianozsvald
1
200
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
430
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Design in an AI World
tapps
1
220
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
220
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
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^ ̄