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
Dependency Inversion Principle in Keyboard Firmware
Search
Takayuki Matsubara
July 12, 2019
Programming
0
360
Dependency Inversion Principle in Keyboard Firmware
5 minutes lightning talk slides for m3 tech talk #126
Takayuki Matsubara
July 12, 2019
Tweet
Share
More Decks by Takayuki Matsubara
See All by Takayuki Matsubara
Rails Web Development with AWS Lambda
ma2gedev
0
160
Coding Challenge Advent of Code 2019
ma2gedev
0
100
Developer Experience in GraphQL Schema-first Development
ma2gedev
0
2k
OSSの歩き方 / Walking with OSS
ma2gedev
10
2.4k
GraphQL 開発で必要になったこと / What we needed for GraphQL development
ma2gedev
0
950
キーボードをカスタムしてプログラミング環境を良くした話 / Improved programming environment with customizing keybords
ma2gedev
0
1.1k
Translating "Erlang in Anger" with Erlang & Elixir community members
ma2gedev
0
2.7k
Dive into Elixir v1.6 Code Formatter
ma2gedev
1
140
Make it easy to input `|>`
ma2gedev
2
2.6k
Other Decks in Programming
See All in Programming
Open AI APIを使う前に知っておきたいアカウントTier の話
akki_megane
0
130
Implementing Design Systems in Swift
seyfoyun
2
530
Next.js App Router
quramy
14
2.3k
仕様と実装で学ぶOpenTelemetry
drumato
2
780
FoodGram
iseruuuuu
0
230
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
17
2.3k
ts-morphを使ってコードリプレイスとASTへのハードルを下げる!
nyawach
5
320
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
2
140
Webアプリをできるだけコードを手書きしないで作ってみる
tomokusaba
2
230
Good first issues of TypeProf
mame
2
490
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
0
1k
TypeScriptから始める VR生活
tamagokakeg
2
110
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
34
6.1k
4 Signs Your Business is Dying
shpigford
176
21k
Web development in the modern age
philhawksworth
203
10k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Raft: Consensus for Rubyists
vanstee
133
6.3k
Writing Fast Ruby
sferik
622
60k
Designing for Performance
lara
601
67k
Producing Creativity
orderedlist
PRO
338
39k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Designing with Data
zakiwarfel
96
4.8k
Agile that works and the tools we love
rasmusluckow
325
20k
Transcript
Dipendency Inversion Principle in Keyboard Firmware
self-introduction
@ma2ge | @ma2gedev
ErgoDox EZ
Infinity ErgoDox
Clean ArchitectureɹୡਓʹֶͿιϑτΣΞͷߏͱઃܭ
ΞʔΩςΫνϟͷϧʔϧͲΕಉ͡Ͱ͋Δ ❗ ❗ ❗ ❗
None
It seems to apply any so!ware system
Keyboard firmware?
QMK firmware — github.com/qmk/qmk_firmware
How to support various keymaps
None
None
github.com/qmk/qmk_firmware/tree/master/keyboards
github.com/qmk/qmk_firmware/tree/master/keyboards/ ergodox_ez
github.com/qmk/qmk_firmware/tree/master/keyboards/ ergodox_ez/keymaps
github.com/qmk/qmk_firmware/tree/master/keyboards/ ergodox_ez/keymaps/default
github.com/qmk/qmk_firmware/blob/ 475d2c0c303e9f57d7034fd478ceb724fdd0df44/keyboards/ ergodox_ez/keymaps/default/keymap.c
Summary — Dipendency Inversion Principle in any software system
DIP
Resources — Clean Architecture ୡਓʹֶͿιϑτΣΞͷߏͱઃܭ — qmk/qmk_firmware: Open-source keyboard firmware
for Atmel AVR and Arm USB families https:// github.com/qmk/qmk_firmware — QMK Firmware https://docs.qmk.fm/#/ — Understanding QMK - QMK Firmware https:// docs.qmk.fm/#/understanding_qmk