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
カミナシのフロントエンド開発の効率化の取り組み
Search
Masaya Nasu
August 25, 2021
Programming
350
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
カミナシのフロントエンド開発の効率化の取り組み
カミナシでフロントエンド開発を効率化するためにやったことを発表しました。
Masaya Nasu
August 25, 2021
More Decks by Masaya Nasu
See All by Masaya Nasu
What's new in Go 1.23
nasum
0
140
新参者だけどバーンアウトしかけているチームを立て直す
nasum
21
12k
DjangoではじめるGraphQLとフロントエンド開発の協業
nasum
1
3.7k
Flutterとfirebaseを使ってモバイルアプリに挑戦してみる
nasum
3
3.1k
grpc-gatewayで作るマイクロサービスの管理画面
nasum
1
7.8k
コストをかけずに機械学習の環境を整える&学習環境(人間の)
nasum
0
1.8k
Elixirの好きなところ
nasum
0
580
ElectronでFirebaseを使ってみた(仮)
nasum
2
3.7k
Vue.jsを導入する際失敗したこと
nasum
1
4.3k
Other Decks in Programming
See All in Programming
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
4.6k
Google Apps Script で Ruby を動かす
kawahara
0
130
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
350
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
120
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
450
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
270
継続モナドとリアクティブプログラミング
yukikurage
3
680
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
540
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
1
110
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
430
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.6k
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
640
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Navigating Weather and Climate Data
rabernat
0
440
How to Think Like a Performance Engineer
csswizardry
28
2.7k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Building Adaptive Systems
keathley
44
3.2k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
480
Transcript
ΧϛφγͷϑϩϯτΤϯυ ։ൃͷޮԽͷऔΓΈ @Startup Issue Gym #2 גࣜձࣾΧϛφγ ಹਢཧ 2021/08/25
None
αʔϏε ݱվળϓϥοτϑΥʔϜ Χϛφγ ʰΧϛφγʱɺݱͷϧʔςΟϯϫʔΫࣄ࡞ۀΛࣗಈԽ ͢ΔݱཧΞϓϦͰ͢ɻ खॻ͖ใͷσʔλ͔ΒूܭɺใࠂͳͲɺ͜Ε·ͰࢴΤΫη ϧͰߦ͍ͬͯͨ࡞ۀΛσδλϧԽ͠ɺ৯ɺখചɺͳͲͷ ͋ΒΏΔݱͷϊϯσεΫϫʔΧʔͷಇ͖ํΛεϚʔτʹͯ͠ ͍·͢ɻ
Χϛφγ·ͩ։ൃͯ͠1ͷΞϓϦέʔγϣϯ • ٸͳ্ཱͪ͛ʹΑΓେਓʹͳΒ͟Δ͓͑ͳ͔ͬͨ Πϝʔδը૾
ݟͯݟ͵ৼΓΛ͖ͯͨ͠՝͕૿͖͑ͯͨ • ͍ͬͨΜແࢹ͢Δ͜ͱʹͨ͠eslintͷܯࠂ • ςετखಈͰ୲อ • Etc…etc… ͍ΘΏΔׂΕ૭
͋Δఔམͪண͍͖ͯͨͷͰԼΛݟ͖͢ • ϑϩϯτΤϯυ։ൃόοΫΤϯυͷ։ൃͰඇޮͳͱ͜ΖΛਖ਼͢ • ςετ͕ͳ͍ͱ͜ΖʹςετΛॻ͘ • ͨ͘͠LintΛҾ͖కΊΔ • Etc..etc
ࠓճϑϩϯτΤϯυ։ൃͰͷվળΛհ • eslintͷϧʔϧͷஈ֊తҾ͖కΊ • React Native DebuggerͰޮతͳ։ൃ࣌ͷdebug • LogrocketΛ࣮ͬͨࡍʹϢʔβʹى͖͍ͯΔͷѲ
eslintͷϧʔϧͷஈ֊తҾ͖కΊ
͘ͳ͍ͬͯͬͨeslintͷϧʔϧ • Χϛφγͷ։ൃ։࢝࣌ʹeslintೖͬͯͳ͔ͬͨ • ։ൃ్தͰ͍Εͨ͜ͱʹΑΓॳΊ͔Βएׯ͍ઃఆ͕ೖΓࠐΉ • ͦͷޙগͣͭ͠ϧʔϧ͕͘ͳ͍ͬͯͬͨ
༨༟͕ग़͖ͯͨͷͰϧʔϧݟ͠Λ։࢝ • ͔͠͠طଘͷϧʔϧͰ͍ͩͿ։ൃ͕ਐΜͰ͍ͨͨΊमਖ਼ࠔ • ୯७ʹϧʔϧΛݟͨ͠ͱ͜Ζ4000݅Ҏ্ͷΤϥʔ • ஈ֊తʹߦ͏ඞཁ͕͋ͬͨ
ஈ֊తʹҾ͖కΊΛߦ͏ͨΊʹߦͬͨ͜ͱ • ৽͍͠ϧʔϧݫ͍͠Ϟϊͱ͢Δ • ϩʔΧϧͰͷ։ൃͰ৽͍͠ϧʔϧΛ͏ • EslintͷϧʔϧΛ্ॻ͖͢ΔػೳΛ༻ • طଘͷCI/CDͰ͍ͬͯΔlintچϧʔϧΛ͏ •
ͦͦCI/CDͰͷlintͬͯඞཁͳΜ͚ͩͬʁΈ͍ͨͳ͋Γ • ͔͠͠Өڹൣғେ͖͍ͷͰ͍ͬͨΜچϧʔϧΛ༻
ϩʔΧϧͰ৽͍͠ϧʔϧΛ༻͢Δ • Eslintͷ-cΦϓγϣϯΛͬͯ৽͍͠ϧʔϧͰطଘϧʔϧΛ্ॻ͖͢Δ چϧʔϧͷྫɿ.eslintrc.json ৽ϧʔϧͷྫɿ.eslintrc-override.json
ΦʔόʔϥΠυͯ͠৽ϧʔϧΛద༻Ͱ͖ͨ no-unused-vars͕errorʹ্ॻ͖͞ΕΔ
huskyΛͬͯpre-commit࣌ʹlintΛ࣮ߦ͢Δ • CI/CDͰچϧʔϧͰlintΛ࣮ߦ͢Δඞཁ͕͋ͬͨ • ৽ϧʔϧ։ൃ࣌ͷϩʔΧϧڥͰߦͬͯཉ͍͠ • HuskyΛͬͯίϛοτલʹlintΛ࣮ߦͯ͠ղܾ͢Δ
package.jsonʹhuskyͷઃఆΛ͍ΕΔ ͜ΕͰίϛοτ࣌ʹlint͞ΕܯࠂͰ͖ΔΑ͏ʹͳͬͨ
ஈ֊తͰ͋Δ͕վળग़དྷΔΑ͏ʹͳͬͨ
React Native DebuggerͰޮతͳ։ ൃ࣌ͷdebug
։ൃ࣌ReactotronΛ͍ͬͯͨ • ࣌ͦΕͰେৎͰͨ͠ • ز͔ͭͷཧ༝Ͱ࣍ͷιϦϡʔγϣϯΛ୳͢ඞཁ͕͋Γ·ͨ͠ • redux-sagaΛ͏࣌middlewareʹίʔυΛՃ͢Δͷ͕໘ • Reactotronͷϝϯς͕͞Εͳ͘ͳ͖ͬͯͨ •
etc…etc
react native debuggerΛ͏͜ͱʹ • ࣍ͷػೳ͕͑Δ • Chrome Devtool • React
Developer Tool • Redux Devtool • React։ൃͰ༻͍ͯͨ͠devtool͕ಉ͡ײ֮Ͱreact nativeͰ͑Δ
React native debugger ChromeDevtool ReduxDevtool ReactDevtool
ChromeDevtool • ݹ͖ྑ͖print debug͕Մೳ • NetworkλϒͳͲChromeDevtoolͰ Ͱ͖Δ͜ͱͰ͖Δ • ྫ͑ϒϨʔΫϙΠϯτΛ͏ͬͯ
debugՄೳ
ReactDevtool • propsstateͷ֬ೝ͕Մೳ • ελΠϧͷඍௐ͕Մೳ • Webͷͭͱ͕ͪͬͯ ElementΛબग़དྷͳ͍ ͜Εͳ͍
Redux Devtool • Actionͷ࣮ߦॱ͕֬ೝՄೳ • StateͷࠩݟΕΔ
ReactNativeͷΑ͍σόοάπʔϧΛಘͨ
LogrocketΛ࣮ͬͨࢪʹϢʔβʹى ͖͍ͯΔͷѲ
ϩʔΧϧͷ։ൃޮ্͕ͬͨ • ͔͓͠͠٬༷ͷڥͰى͖͍ͯΔ͜ͱͷ࠶ݱ͔ͬͨ͠ • Ͳ͏ͬͯΤϥʔ͕ى͖ͨʁͲ͜Ͱૢ࡞Λ໎͏ʁ • productionͷDBΛdumpͯ͠ϩʔΧϧͰ֬ೝ͢Δʁ • ͋·ΓΓ͍ͨͱࢥΘͳ͍ •
ͱ͍͑࠷ऴखஈͱͯ͠Δ͜ͱ͋Δ • ͍߹Θͤͷʹdump͢Δʁ • ͋·Γݱ࣮త͡Όͳ͍
ΕΔͱ͏Ε͍͜͠ͱ • Ϣʔβ͕Ͳ͏ಈ͔ͯ͠Τϥʔʹࢸ͔ͬͨΛΓ͍ͨ • SentryͰҰԠ͔Δ • ͕ɺactionͷ࣮ߦॱ͕͔Δ͚ͩͰͺͬͱ͔Βͳ͍ • Ϣʔβ͕໎ͬͯΔॴ͕Ͳ͔͜ΛΓ͍ͨ •
ࠓCSͷώΞϦϯάͰରԠ͍ͯ͠Δ
Logrocketͷಋೖ • ϢʔβߦಈΛϦΞϧλΠϜʹಈըͰهͰ͖ΔSaaS • ಈ࡞࣌ͷಈըͱωοτϫʔΫͳͲ͕ه͞ΕΔ • Τϥʔൃੜ࣌ʹsentryͱ࿈ܞͰ͖ΔͳͲintegration͕ॆ࣮͍ͯ͠Δ
Logrocketͷը໘ ϦΫΤετΛݟΕΔ ಈըͰߦಈΛ͑Δ ը໘ભҠͷURL͕ݟΕΔ
sentryͱ࿈ܞՄೳ SentryͷՃใʹLogrocketͷURLΛؚΉ͜ͱ͕Մೳ
ϢʔβͷߦಈΛৄࡉʹѲͰ͖ΔΑ͏ʹͳͬͨ • Sentryͱͷ࿈ܞͰΑΓόάͷৄࡉ͕͔ΔΑ͏ʹͳͬͨ • CS͔ΒͷώΞϦϯάʹΑΒͣɺUX͕ѱ͍ͱ͜ΖΛѲͰ͖ΔΑ͏ʹ ͳͬͨ
·ͩ·ͩޮԽͷ༨ͷ͋ΔΧϛφγ • CDͰLint͢Δͷͬͯແବ͡Όͳ͍ʁ • σϓϩΠՄೳͳmainϒϥϯνطʹlint͞ΕͯΔͣ • Logrocket·ͩWebʹ͔͠ద༻ͯ͠ͳ͍ • ΞϓϦͷํʹ͍Ε͍ͨ •
ϦϦʔεͷࣗಈԽ·ͩվળͷ༨͕͋Δ • ͋ͱςετɾɾɾ
৳ͼ͔͠ͳ͍ʂ
We are hiring • ΧϛφγͷϑϩϯτΤϯυ։ൃʹ·ͩ伱͕ଟ͍Ͱ͢ • ͦΜͳ伱Λղܾ͢Δͷ͕͖ͳΤϯδχΞΛٻΊ͍ͯ·͢ • https://herp.careers/v1/kaminashi/DzB95TKgll3h