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
Web開発の知見を活かして組み込み開発環境を整備した話_2021秋版
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
株式会社ビットキー / Bitkey Inc.
PRO
October 08, 2021
Technology
960
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Web開発の知見を活かして組み込み開発環境を整備した話_2021秋版
株式会社ビットキー / Bitkey Inc.
PRO
October 08, 2021
More Decks by 株式会社ビットキー / Bitkey Inc.
See All by 株式会社ビットキー / Bitkey Inc.
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
430
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
260
人が担う「価値」とは?これからの「QA」とは / Human Value and the Future of Quality Assurance
bitkey
PRO
0
250
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
440
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
2
890
Flutter初心者が生成AIで大規模アプリ開発をキャッチアップした工夫 〜元ネイティブエンジニアが実践した、技術転換の高速道路〜 / Flutter with LLM: A Former Native Engineer's Fast Track to Large-Scale Apps
bitkey
PRO
0
310
〜備えあれば憂いなし〜とりあえず障害訓練やろ? デジタル/フィジカル横断プロダクトを24365で維持するための戦略 / Better Safe Than Sorry: Incident Drills for 24/365 Digital-Physical Products
bitkey
PRO
0
170
雑談は、センサーだった
bitkey
PRO
2
550
AIが書いたコードを信じられない問題 〜レビュー負荷を下げるために変えたこと〜 / The AI Code Trust Gap: Reducing the Review Burden
bitkey
PRO
8
1.6k
Other Decks in Technology
See All in Technology
CIで使うClaude
iwatatomoya
0
170
ローカルLLMとLINE Botの組み合わせ その3 / LINE DC Generative AI Meetup #8
you
PRO
0
120
そのタスクオンスケですか?
poropinai1966
0
140
FinOps X 2026 Recap from Engineer Side #JapanFinOps
chacco38
0
270
クラウド上のデータ復旧で見落としがちな制約: 医療系 SaaS の BCP 設計から得た教訓
kakehashi
PRO
0
2.5k
初めてのDatabricks勉強会
taka_aki
2
240
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
170
実装だけじゃない! CCA-F取得エンジニアが教えるClaude Code開発プロセス活用術
diggymo
2
440
AIで政治は変わるのか? — 中高生と考えたAI時代の民主主義(東海高校サタデープログラム)
eitarosuda
0
400
キャリアの中で本を作る / Making a Book During Your Career
ak1210
0
120
地域 SRE コミュニティ最前線 / SRE NEXT 2026 Discussion Night Track C
muziyoshiz
0
160
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
220
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Leo the Paperboy
mayatellez
8
1.9k
The agentic SEO stack - context over prompts
schlessera
0
840
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
Mobile First: as difficult as doing things right
swwweet
225
10k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
870
AI: The stuff that nobody shows you
jnunemaker
PRO
8
770
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
Google's AI Overviews - The New Search
badams
0
1.1k
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