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
新卒AndroidエンジニアがOJTで学んだこと
Search
atomic
July 24, 2024
Programming
0
160
新卒AndroidエンジニアがOJTで学んだこと
2024/07/25(木) pixiv App Nightで発表した「新卒AndroidエンジニアがOJTで学んだこと」の資料です
atomic
July 24, 2024
Tweet
Share
More Decks by atomic
See All by atomic
pixivコミックでのXcode16対応
atomic928
0
150
Other Decks in Programming
See All in Programming
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
120
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
610
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
140
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
Grafana:建立系統全知視角的捷徑
blueswen
0
330
CSC307 Lecture 05
javiergs
PRO
0
500
CSC307 Lecture 06
javiergs
PRO
0
690
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
83
The Cult of Friendly URLs
andyhume
79
6.8k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
RailsConf 2023
tenderlove
30
1.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
120
The Invisible Side of Design
smashingmag
302
51k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
190
Documentation Writing (for coders)
carmenintech
77
5.3k
Transcript
atomic ৽ଔAndroidΤϯδχΞ͕OJTͰֶΜͩ͜ͱ
ࣗݾհ
atomic • 2024৽ଔೖࣾ • ॴଐ • OJTɿpixivΞϓϦ Android • ݱࡏɿpixivίϛοΫΞϓϦ
iOS • झຯɿϙʔΧʔɺϦΞϧग़ήʔϜ
ΞδΣϯμ
ΞδΣϯμ • ϐΫγϒͷ৽ଔݚम • OJTͰऔΓΜͩλεΫ • ݟસͬͯΒͬͨλεΫ • ઓͤͯ͞ΒͬͨλεΫ •
OJTશମΛ௨ͯ͠ಘֶͨͼ
ϐΫγϒͰ৽ଔೖࣾ͢Δͱʁ
ೖࣾޙͷϑϩʔ ৽ଔݚम 4݄ 5݄ 6݄ 7݄ OJT ຊଐ 4/1 ~
4/15 ~ 7/1 ~
ಛ • ৽ଔݚमʢOFF-JTʣ • ओʹϓϩμΫτ৬छʹֶ͍ͭͯͿ • 2िؒͰ70ߨ࠲ͷϘϦϡʔϜ • OJT •
࣮ࡍͷνʔϜʹଐ͞ΕɺۀܦݧΛੵΉ • ৽ଔ1ਓ1ਓʹϝϯλʔ͕ͭ͘ • OJTʹదͨ͠λεΫΛݟસͬͯΒͬͯΒ͏ • Γ͍ͨ͜ͱʹઓͤͯ͞Βͬͨ
OJTதʹऔΓΜͩ͜ͱ
ओʹऔΓΜͩλεΫ • ݟસͬͯΒͬͨλεΫ • Ϟδϡʔϧׂ • MVVMԽ • ઓͤͯ͞ΒͬͨλεΫ •
CIվળ w νʔϜͰϚχϡΞϧԽ͞Ε͍ͯΔ w ܦݧ͕ͳͯ͘ணख͍͢͠ w ͲͷνʔϜऔΓΜͰ͍Δ w ຊଐͰͲͷνʔϜʹߦͬͯ׆͖Δ
Ϟδϡʔϧׂ
Ϟδϡʔϧׂ • pixivΞϓϦͷϞδϡʔϧߏ • app, feature, data, domain, coreͰߏ
ϞδϡʔϧׂͷਐΊํ • pixivΞϓϦͰϚχϡΞϧԽ͕ਐΜͰ͍Δ • domain, data, featureͷॱ൪Ͱߦ͏ • ॥ࢀর͕ى͖ͳ͍ॱ൪ •
࣮ʹखΛՃ͑ͳ͍ • ϑΝΠϧҠಈ͚ͩͰ͕ࠩଟ͍ • ࣮ʹखΛՃ͑ΔͳΒMRΛ͚Δ
ֶͼ • ϑΝΠϧҠಈͷΈͰMRΛ͚Δ • ͻͱͭͷϞδϡʔϧׂ͚ͩͰɺϑΝΠϧ͕ଟ͍ • ͕ࠩଟͦ͏ͳ߹ɺResourceϑΝΠϧͷҠಈ͚ͩͰMRΛ࡞Δ
MVVMԽ
• എܠ • ಛఆͷΞʔΩςΫνϟΛ࣠ʹ࣮ͨ͠ʹͳ͍ͬͯͳ͍ • Ұ෦FluxΛ͍ͬͯΔ͕ɺActionͱEventͰಉ͡ͷΛఆ͍ٛͯ͠Δ • pixivΞϓϦͰMVVMʹԊͬͨ։ൃΛ͍ͯ͠Δ MVVMԽ
MVVMͷΓ͔ͨ • pixivΞϓϦͰϚχϡΞϧԽ͕ਐΜͰ͍Δ • UiStateʹViewͰ༻͢Δ͚ͩ࣋ͨͤΔ ✅ ❌ JDPO ໊લ JDPO
໊લ JDPO ໊લ
ֶͼ • ը໘ͷߏཁૉ͝ͱʹҠߦ͍ͯ͘͠ • ࠷ݶಈ࡞ʹ͕ͳ͘ɺίετ͕ܰ͘Өڹ͕গͳ͍ͷΛબͿ • ComposeԽ͢ΔλΠϛϯάͰมߋͨ͠ํ͕͍͍ͷ͋Δ • RecyclerViewपΓͷσʔλͳͲ ❌
✅
CIվળ
എܠ • CIվળʹΞαΠϯ͞Εͨഎܠ • ࣗಈԽ͕͖͔ͩΒɺCIؔ࿈ͷλεΫ͋ΕΓ͍ͨ • ͍͍Αʂ
pixivΞϓϦͷCI • Bitrise • GitLabͷMRΛτϦΨʔͱͯ͠ىಈ • LintνΣοΫɾϢχοτςετΛߦ͏ • DangerΛͬͯMRʹίϝϯτ͢Δ
՝ • طఆͷDocker imageͰϏϧυ͢ΔͱɺDangerͰΤϥʔ͕ൃੜ͢Δ • طఆ͡Όͳ͍ʢpre cashed͞Εͯͳ͍ʣimageΛ༻͢ΔͱɺϏϧυͷ ͨͼʹimageΛpull͢Δ͕࣌ؒൃੜ͢Δ
ௐࠪํ๏ • ϩʔΧϧͰBitriseϏϧυΛ࣮ߦ͠ɺݪҼΛௐࠪ͢Δ • CI͕ࢭ·ΔͱνʔϜશମͷ։ൃ͕ࢭ·ΔͷͰɺϩʔΧϧͰௐࠪ • ༻πʔϧ • Bitrise CLI
• Docker Desktop
ϩʔΧϧͰ࣮ߦ͢Δͱ͖ͷ٧·ΓϙΠϯτ • —env CI = falseΛઃఆ͢Δ • Git CloneͳͲϩʔΧϧͰඞཁͳ͍ͷεΩοϓ͢Δඞཁ͕͋Δ •
-env CI=falseΛઃఆ͢ΔͱɺDangerεΩοϓ͞ΕΔ • ղܾࡦ • CI=falseʹ͠ɺDangerCIʹؔͳ࣮͘ߦ͞ΕΔΑ͏ʹ͢Δ • Danger ʹඞཁͳมΛՃ͢Δ
͍͟ຊ • طఆͷDocker imageͰϏϧυ͢ΔͱɺDangerͰΤϥʔ͕ൃੜ͢Δ
ղܾҊ • Rubyؔ࿈ͷΤϥʔͷΑ͏ͳͷͰɺͱΓ͋͑ͣRuby, bundlerΛΞοϓ σʔτͯ͠ΈΔ
ղܾʂʂ🎉 • RubyΛ3.2.3→3.3ʹ͢Δͱ௨ͬͨ 🎉 • ϫʔΫϑϩʔͷ࠷ॳͷεςοϓͰRubyόʔδϣϯΛࢦఆ
ຊ൪ͷBitriseͰRubyόʔδϣϯΛ্͛Δ • ํ๏̍ɿϫʔΫϑϩʔͷ࠷ॳͷεςοϓͰRubyόʔδϣϯΛࢦఆ • ํ๏̎ɿStackΛUbuntu22ʹΞοϓσʔτ • σϑΥϧτͷRubyόʔδϣϯ্͕͕Δ https://stacks.bitrise.io/stack_reports/linux-docker-android-20.04/ https://stacks.bitrise.io/stack_reports/linux-docker-android-22.04/ Ubuntu20
Ubuntu22
ຊ൪ͷBitriseͰRubyόʔδϣϯΛ্͛Δ • ํ๏̍ɿϫʔΫϑϩʔͷ࠷ॳͷεςοϓͰRubyόʔδϣϯΛࢦఆ • ϝϦοτɿ؆୯Ͱ࣮֬ʹόά͕मਖ਼͞ΕΔɻ • ݒ೦ɿಉ༷ͷ͕ൃੜͨ͠߹ɺखಈͰόʔδϣϯΛมߋ͢Δඞ ཁ͕͋Δ
ຊ൪ͷBitriseͰRubyόʔδϣϯΛ্͛Δ • ํ๏̎ɿStackΛUbuntu22ʹΞοϓσʔτ • ϝϦοτ • σϑΥϧτͷόʔδϣϯ্͕͕Δ • ͱͷStack͕ඇਪʹͳΔͷͰɺૣΊʹରԠͰ͖Δ •
ݒ೦ɿRubyҎ֎ʹมߋ͞ΕΔͷͰɺผͷ͕ൃੜ͠͏Δ https://stacks.bitrise.io/stack_reports/linux-docker-android-20.04/
ຊ൪ͷBitriseͰRubyόʔδϣϯΛ্͛Δ • StackΛUbuntu 22ʹΞοϓσʔτ • ͍ͣΕUbuntu22ʹ͢Δඞཁ͕͋Δ • ͕ൃੜ͢ΔͳΒɺํ๏̍ͰఆରԠ͢ΕΑ͍
ຊ൪Ͱղܾʂʂ🎉 • ແࣄΤϥʔΛղܾ͠ɺCI࣌ؒΛॖޭʂʂ🎉 After Before
CIվળ·ͱΊ • ϩʔΧϧͰ࣮ߦ͢Δ࣌CI=falseʹ͢Δ • StackͷόʔδϣϯΛ֬ೝ͢Δ • ݹ͍όʔδϣϯͰಈ࡞͢ΔͷͰɺ์ஔ͍ͯ͠Δ͜ͱଟ͍ • ͨ·ʹݟͯ͠ΈΔͱྑ͍͔
શମΛ௨ͯ͠ͷֶͼ
OJTΛ௨ͯ͠ͷֶͼ • ϨϏϡʔΛ͍͢͠Α͏ʹMRΛग़͢ • ̍MR̍ίϯςΩετ • MRͷdescriptionʹഎܠΛॻ͘ • ʮ̋̋Λͨ͠ʯ͚ͩͰͳ͘ɺʮͳͥʯΛॻ͘ •
Γ͍ͨ͜ͱΛఏҊ͢Δͱ͖ɺʮͨͩΓ͍ͨʯͰμϝ • ਓ݄ݶΒΕ͍ͯΔ • ۩ମతʹͲ͏͍ͬͨ՝͕͋ͬͯɺԿΛղܾ͍ͨ͠ͷ͔Λ໌֬ʹ͢Δ