Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Web開発の知見を活かして組み込み開発環境を整備した話_2021秋版
株式会社ビットキー / Bitkey Inc.
PRO
November 26, 2021
Technology
0
460
Web開発の知見を活かして組み込み開発環境を整備した話_2021秋版
株式会社ビットキー / Bitkey Inc.
PRO
November 26, 2021
Tweet
Share
More Decks by 株式会社ビットキー / Bitkey Inc.
See All by 株式会社ビットキー / Bitkey Inc.
サクッと作る静的解析ツール_importの依存制御ツールを作る_
bitkey
PRO
0
8
はじめてDiscordBot
bitkey
PRO
0
3
SRE_チーム立ち上げから1年_気づいたら_SRE_っぽくない仕事まで貢献しちゃってる説
bitkey
PRO
0
4.9k
人間の直感に対応させた複雑度<Cognitive Complexity>の計測ツールをgo/astで実装してみた
bitkey
PRO
0
88
ビットキーのプロダクトの根幹スマートアクセスをよりスケールするための破壊と創造
bitkey
PRO
0
33
ロッカーを中心にユーザー体験をConnectしていくために限界まで汎用的に考えたお話
bitkey
PRO
0
23
全てのIDを管理するために~メアド・電話番号を持っていない「こども」をどう取り扱うか~
bitkey
PRO
0
59
ビル全体をスマート化するって何~workhubをさらに進化させたマルチテナント機能について~
bitkey
PRO
0
20
GoConference_人生いろいろモノレポもいろいろ
bitkey
PRO
0
430
Other Decks in Technology
See All in Technology
スクラムのスケールとチームトポロジー / Scaled Scrum and Team Topologies
daiksy
1
450
セキュリティ 開運研修2022 / security 2022
cybozuinsideout
PRO
3
3.9k
機械学習システムのアーキテクチャとデザインパターン
washizaki
1
620
さいきんのRaspberry Pi。 / osc22do-rpi
akkiesoft
6
5.3k
【toranoana.deno#7】Denoからwasmを呼び出す基礎
toranoana
0
130
スタートアップと技術選定と AWS
track3jyo
PRO
2
350
miisan's career talk
mii3king
0
230
現状のFedCMの動作解説と OIDCとの親和性について- OpenID TechNight vol.19
ritou
2
460
紙にまつわる苦しみを機能化してきた カミナシの歴史
kaminashi
0
1.3k
The Fractal Geometry of Software Design
vladikk
1
1.3k
雑な攻撃からELBを守る一工夫 +おまけ / Know-how to protect servers from miscellaneous attacks
hiroga
0
540
サイボウズの アジャイル・クオリティ / Agile Quality at Cybozu
cybozuinsideout
PRO
4
2.4k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.2k
Mobile First: as difficult as doing things right
swwweet
213
7.5k
Facilitating Awesome Meetings
lara
29
4k
Navigating Team Friction
lara
175
11k
Testing 201, or: Great Expectations
jmmastey
21
5.4k
Thoughts on Productivity
jonyablonski
43
2.3k
Support Driven Design
roundedbygravity
86
8.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.3k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
127
8.5k
Designing Experiences People Love
moore
130
22k
KATA
mclloyd
7
8.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
920
Transcript
Web։ൃͷݟΛ׆͔ͯ͠ ΈࠐΈ։ൃڥΛඋͨ͠ 2021ळ൛
Outline 1. ࣗݾհ 2. උ͞Εͨ։ൃڥͱ 3. औΓΈ 4. কདྷͷల 2
2
2015 ࣾձਓͷελʔτ ใܥͷେֶӃΛଔۀɺERPϕϯμʔʹब৬ ࣾΫϥυΛKubernetes/Go/Vue.jsͰߏங ౡ խढ़ Masatoshi Tsushima 2004 ιϑτΣΞ։ൃͱͷग़ձ͍
WebαΠτܞଳΞϓϦΛ࡞ͬͯ༡ΜͰ͍·ͨ͠ 2018ळ Bitkeyʹࢀը ॳbitkey platformͷ։ൃΛ୲ ओʹGoͰαʔόαΠυΛ։ൃ 2019ळ ϑΝʔϜΣΞνʔϜΛ্ཱͪ͛ bitlock LITEͷϑΝʔϜΣΞΛԽ ݱࡏʹଓ͘։ൃελΠϧΛߏங 2020Ն ୈೋੈϩοΫσόΠεͷ։ൃ Λલఏͱͨ͠ϑΝʔϜΣΞ։ൃ 2021य़ϦϦʔε
උ͞Εͨ։ൃڥͱ 4
ϑΝʔϜΣΞԽ։࢝࣌ͷ 5 ։ൃڥΛඋ͢ΔϞνϕʔγϣϯ
։ൃڥΛඋ͢ΔϞνϕʔγϣϯ 6 ͜ͷ IDE ΛͬͯͶʂ ͳΔ΄Ͳ
։ൃڥΛඋ͢ΔϞνϕʔγϣϯ 7 ϝχϡʔͷฤूΛΫϦοΫͯ͠… ݕࡧͬͯ… γϣɺγϣʔτΧοτΩʔͬͯ͋ͬͨΓ͠·͢…ʁ
։ൃڥΛඋ͢ΔϞνϕʔγϣϯ 8 ͋ΔΑʂ ʢϝχϡʔΛΫϦοΫʣ ίʔυܗػೳͱ͔… อଘલʹΕͳ͍Α͏ʹ͠Α…
։ൃڥΛඋ͢ΔϞνϕʔγϣϯ 9 ͪΖΜʂͰ͖·͢ͱʂ ͜ͷγϯϘϧͷࢀরͯ͠Δͱͬͯ͜ݟΕΔʁ ຊʁ͜ΕͰશ෦ʁ
։ൃڥΛඋ͢ΔϞνϕʔγϣϯ 10 ͭ…ͭΒ͍…
ຊʹօ͜ΕͰͬͯΔͷʁ 11 ͔͠͠ΈࠐΈͷެ։ใগͳ͍ Web։ൃͷੈք͔ΒҠͬͨײ
12 ҰମԿ͕͜Μͳʹ͍ۤ͠ͷ͔…
ΈࠐΈʹҠͬͯมΘͬͨ͜ͱ εϥΠυͷλΠτϧ 13 Code Web։ൃɿࣗ༝ͳΤσΟλͱϓϥάΠϯ ΈࠐΈ։ൃɿಛघͳIDE Build Web։ൃɿCLIͷϏϧυπʔϧɺϏϧυεΫϦϓτɺ Live Reload
ΈࠐΈ։ൃɿϝχϡʔͷϘλϯʹϒϥοΫϘοΫεԽ Release Web։ൃɿCIύΠϓϥΠϯͰࣗಈԽ ΈࠐΈ։ൃɿϦϦʔε࡞ۀΛखॱԽ Test Web APIɿॆ࣮ͨ͠൚༻πʔϧ (curl, Postman, Swagger UI…) BLEɿtelnet૬ͷπʔϧ͋Δ͕…ࣗ࡞͢Δʁ
උ͞Εͨ։ൃڥͱ εϥΠυͷλΠτϧ 14 Code ׳ΕͨͷΛ͍͍ͨ Build ঢ়گʹԠ͍ͯͨ͡͠ Release ࣗಈԽ͍ͨ͠ Test
εϚϗΞϓϦͱͷ૬ޓґଘΛղফ͍ͨ͠
Χ݄ޙ… 15
։ൃڥվળͷऔΓΈ 16
IDEґଘ 17 IDEͷઃఆϑΝΠϧΛม • Makefile ◦ CLIϕʔεͰ࠷খͷ։ൃڥΛఆٛ • VS Code
ͷઃఆ ◦ σόοάͳͲɺҠߦલͷIDEͱಉͷػೳΛ࣮ݱ ίϯτϩʔϧՄೳͳϏϧυ ͷ༨͕૿͑Δ ΤσΟλࣗ༝Խ ඪ४ͱͯ͠ͷ VS Code
Մೳʹͳͬͨ Ϟμϯͳ։ൃςΫχοΫΛͲΜͲΜऔΓࠐΉ 18 • ίʔυϑΥʔϚοτΛڧ੍ ◦ ClangFormatΛಋೖ ▪ ΤσΟλͷϓϥάΠϯ ▪
ҕୗઌʹՄೳͳݶΓ͓ئ͍ ▪ CIͰνΣοΫ ◦ ϨϏϡʔָ͕ʹͳΔ ▪ ຊ࣭తͰͳ͍͕ࠩফ͑Δ ▪ ͠ΐʔͳ͍ࢦఠ͕ແ͘ͳΔ • ίʔυࣗಈੜ ◦ BLEΛOpenAPIతͳ༷͔Β ◦ ΫϥΠΞϯτࣗಈੜ • ܯࠂΦϓγϣϯΛݫ͘͠ • υΩϡϝϯτͷੜ ◦ DoxygenΛར༻ ◦ C/C++քͷJavadoc • C++17 ◦ ෦తʹಋೖ ◦ ϕΫτϧɾߦྻͷܭࢉʹར༻ ◦ constexprϥϜμˠؔϙΠϯλ • ϥΠϒϥϦ ◦ Git SubmoduleͰऔΓࠐΉ • ୯ମςετ ◦ ςετ༻ϏϧυΛ࣮ߦ • εχϖοτͷڞ༗ • σόοάϩάͷՃ
ίʔυԽ͞ΕͨBLE API༷ॻ ༷͔ΒίʔυΛੜ 19 C: ϦΫΤετϋϯυϥ Markdown: APIυΩϡϝϯτ TypeScript: ΫϥΠΞϯτCLI
Python Markdown TypeScript C (Handler) σόΠε୯ಠͰςετ ΞϓϦͱૄ݁߹ͳ։ൃεέδϡʔϧ
ϦϦʔεύΠϓϥΠϯΛඋ CI/CD for Embedded Systems 20 • ʮGitͰλάΛଧͭˠߋ৽༻ύοέʔδͷΞοϓϩʔυʯΛࣗಈԽ ◦ ։ൃऀλάΛଧ͚ͭͩ
◦ ࣗಈͰνΣοΫɾϏϧυɾΞοϓϩʔυˠSlackʹ௨ • GitHub Workflows Λར༻ ◦ DockerΛͬͨ࠶ݱੑͷߴ͍Ϗϧυ ◦ ޙ͔ΒݕূͰ͖Δ ίʔυԽ͞ΕͨϦϦʔε ϛεͷՄೳੑΛݮΒ͢
Ͳ͏ͳ͔ͬͨʁ εϥΠυͷλΠτϧ 21 Code ׳ΕͨͷΛ͍͍ͨ →CLIͰߏஙɺࣗͷ͏ΤσΟλͱ࿈ܞ Build ঢ়گʹԠ͍ͯͨ͡͠ →ίʔυԽ͞ΕͨϏϧυʹػೳΛՃ Release
ࣗಈԽ͍ͨ͠ →։ൃڥͷCLIԽͰCI/CDύΠϓϥΠϯߏஙՄೳʹ Test εϚϗΞϓϦͱͷ૬ޓґଘΛղফ͍ͨ͠ →༷͔ΒΫϥΠΞϯτΛࣗಈੜɺσόΠε୯ಠͰςετ
কདྷͷల 22
։ൃڥͷඋʹ͔͚Δࢥ͍ 23 ΠϊϕʔςΟϒʹͳΕΔ͔ ڥ͕େ͖͘ࠨӈ͢Δ
ΑΓ҆શʹɺศརͰɺշదʹ ߴ࣭ͳΛ࠷ͰϦϦʔε͢ΔΈ ୭͕ೳྗΛ͙͢ՌʹͰ͖Δମ੍ 24
25