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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
株式会社ビットキー / 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.
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
200
Flutter × BLE Centralを自前Pluginで実装する設計パターン - MethodChannel / EventChannelで作る双方向ブリッジの実践 / Building Custom Flutter BLE Central Plugins: Bidirectional Bridging with Method & Event Channels
bitkey
PRO
0
470
Swift&Xcodeのバージョンアップにまつわる怖かった思い出 / Scary Memories of Swift and Xcode Updates
bitkey
PRO
0
240
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
660
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
590
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
660
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
400
人が担う「価値」とは?これからの「QA」とは / Human Value and the Future of Quality Assurance
bitkey
PRO
0
370
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
580
Other Decks in Technology
See All in Technology
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
290
Running Kotlin + Quarkus with Lambda
nealle
1
4k
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
4
610
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
210
Getting Started with Google Antigravity
glaforge
0
320
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
2
300
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
340
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
830
Metadata - Section 1: HTML Basics
mohab1
0
120
ウォンテッドリーの最近のプロダクトと技術の紹介
stomk
0
130
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
180
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
The SEO identity crisis: Don't let AI make you average
varn
0
590
The Limits of Empathy - UXLibs8
cassininazir
2
720
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.4k
Building an army of robots
kneath
307
47k
We Are The Robots
honzajavorek
0
400
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
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