Zpět na domů

Citáty vývojářů: kód, MCU, schématika

Sbírka citátů z praxe embedded-vývoje pokrývá kódování, schématiku, firmware MCU a management. Aforismy zdůrazňují důležitost testování, CLI-ladění a kontinuity. Užitečné pro middle/senior specialisty.

Moudré citáty embedded-vývojářů o kódu a železe
Advertisement 728x90

# Aforysmy vývojářů: moudrost z porád a code review

Za roky v embedded vývoji se hromadí sada frází, které se stávají aforysmami. Odrazují realitu kódování mikrokontrolérů, návrhu schémat a managementu projektů. Výběr z 12 let praxe: od principů kódu po periferii MCU.

Aforysmy o kódu a architektuře

Programátoři se dělí na ty, kteří píšou kód od nuly, a ty, kteří portují open-source. Univerzálnost počítače jako výpočetního zařízení je základní definice, i když ne všichni fyzici s tím souhlasí.

Klíčové principy:

Google AdInline article slot
  • Na všechno je config: nejlepší kód je konfigurace.
  • Kód odděleně, configy odděleně.
  • Dobrý kód se formuje léty, jako krystal.
  • Princip nejmenšího překvapení při psaní.
  • Nejlepší algoritmus je tabulka (konečný automat se redukuje na graf a tabulku).

„Programování je maratón, ne sprint.“ (Robert Martin)

Jednotnost kódu je důležitější než krása: „Kód se píše jednotně – ošuntěle“. Pole jsou základem všeho. Každý setter potřebuje getter: xxx_write() vyžaduje xxx_read(). Název funkce je její komentář. Méně textových komentářů – čistší git diff.

V C: pokud funkce nevejde na obrazovku, pravděpodobně nefunguje. Jakoukoli úlohu vyřešíte jedním řádkem – voláním funkce. Nejlepší komentář je název souboru.

Google AdInline article slot

Testování a CI/CD

Repozitář bez CI je bezcenný papír. Systém buildů musí být jednotný bez ohledu na editory. Kód bez unit testů je totéž.

„Program, který nebyl otestován, není funkční.“ (Bjarne Stroustrup) „TDD – volba profesionálů.“ (Robert Martin)

Znalosti se předávají písemně pro kontinuitu. Přenositelná kódová báze je základem budoucích vývojů. Všechny protokoly jsou memcpy mezi zařízeními.

Google AdInline article slot

Návrh schémat a hardware

Schématici vtipkují: buď jako procesor – odmítej přílišné napětí. Elektrotechnika je věda o absenci kontaktů. Vývoj začíná debugovacími nástroji.

Všechny senzory měří teplotu, ale každý jinak. Nad 100 MHz je signál analogový. Vše v elektronice je ADC nebo DAC: kodeky, transceivery, GPIO jako jednobitový DAC.

Výběr rozhraní: SPI je lepší než I2C. Ruští traťáři navrhují desky pod evropský kód, Evropané píšou pro čínské desky. Nejlepší díl je žádný díl.

Mikrokontroléry a firmware

Hardware je primární, software sekundární. Čím jednodušší schéma, tím složitější firmware, a naopak. Firmware bez zařízení je socha podle fotky.

Periferie se přizpůsobuje taktování jádra. Firmware začíná bootloaderem. Sedm neštěstí – jeden reset. Nejlepší funkce je aktualizace firmware.

Univerzální protokol se násobí: z 12 se stalo 13. Assembler je kroupy pinzetou. NVRAM vylepší cokoli. UART-CLI je nezbytná: bez ní plug and pray.

UART logy jsou černá skříňka firmware. MCU je stupka pro čísla, x86 je mixér. CLI rozšiřuje fantazii, GUI omezuje. Konečný automat je zlatý kladivo pro MCU.

Plnohodnotný MCU vyžaduje: UpTime timer, heartbeat-LED, UART-CLI, NVRAM, unit testy. Jinak je to zbytečný řetězec. Firmware se nenapíše sám.

Modularita – sestavení pro více platforem najednou.

Management a projekty

Neděláme to proto, že je to jednoduché, ale proto, že jsme si mysleli, že je to jednoduché. Polovina toho, co se učí, je nesmysl, úkol je zjistit která (Zákon Larrabiho).

Vývoj podle požadavků: nezlepšovat navíc. Dohadovat se je práce. Nic neudělat na požádání – splněný úkol.

„Negativní výsledek je také výsledek.“ (Niels Bohr)

Špatné řešení s dobrým reportem se odmítne časem, dobré se špatným hned (zákon Akina). Řídit znamená nebránit.

Bilance kvality je kladná. Netřeba jako psu benzobak. Lepší vada teď než na trhu. Brainstorming je posměšky nad nápady.

Dělat ne to, co žádají, ale co potřebují. Dokonalé je nepřítelem dobrého. Špatné se udělá samo. Rychle a špatně si zapamatují jako špatné; pomalu a dobře jako dobré (Koroljov).

Co je důležité

  • Kód musí být přenositelný a testovatelný: TDD, unit testy, jednotná CI.
  • V embedded: UART-CLI, logy, konečné automaty – základ debugování.
  • Hardware-first přístup: jednoduchost schémat zjednodušuje software.
  • Projekty podle požadavků, dokumentace písemně.
  • Kontinuita: znalosti a čistý repozitář.

— Editorial Team

Advertisement 728x90

Číst dál