Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Web開発の知見を活かして組み込み開発環境を整備した話_2021秋版
Search
株式会社ビットキー / 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.
Flutter × BLE Centralを自前Pluginで実装する設計パターン - MethodChannel / EventChannelで作る双方向ブリッジの実践 / Building Custom Flutter BLE Central Plugins: Bidirectional Bridging with Method & Event Channels
bitkey
PRO
0
440
Swift&Xcodeのバージョンアップにまつわる怖かった思い出 / Scary Memories of Swift and Xcode Updates
bitkey
PRO
0
220
iOS/Androidの二刀流エンジニアがFlutter & TypeScriptへ越境後の現在地 - Flutterがメインになって見えた景色と現在の醍醐味 / Dual-Platform Mobile Engineer Shifts to Flutter & TypeScript - The View and Real Thrill of Going Flutter-First
bitkey
PRO
0
570
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
530
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
630
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
320
人が担う「価値」とは?これからの「QA」とは / Human Value and the Future of Quality Assurance
bitkey
PRO
0
360
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
510
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
2
1.1k
Other Decks in Technology
See All in Technology
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
11
5.2k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
650
What the customer really needed
kawaguti
PRO
3
220
AI coding 整合正規方法
philipz
0
550
Von-Neumann Machines, Dreams & The Futures of IT
ufried
0
130
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
4
730
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
590
作って終わりじゃないサーバーレス 〜9年運用する大規模EC物流API基盤の設計・運用のリアル〜
zozotech
PRO
0
520
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
610
AI Agent入門〜今更聞けないAgentの話〜
hiromimaganuma
0
110
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
470
Paper Plane
katiecoart
PRO
4
53k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
550
Leo the Paperboy
mayatellez
10
2.3k
Prompt Engineering for Job Search
mfonobong
0
460
How to Talk to Developers About Accessibility
jct
2
550
4 Signs Your Business is Dying
shpigford
187
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
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