Dependency-direction

  • Published on
    Layering dalam firmware embedded bukan sekadar pemisahan file, tetapi cara mengendalikan dependency dan kompleksitas sistem. Tanpa struktur yang jelas, callback komunikasi, ISR, dan logic kontrol dapat saling terhubung secara liar sehingga firmware sulit dipelihara. Artikel ini membangun model 3-layer yang digunakan dalam seluruh seri - Application, Service, dan Driver, dengan dukungan modul System. Kita membahas arah dependency, alasan pemisahan domain, serta bagaimana struktur ini diterapkan dalam project flat-folder Arduino ESP32. Tujuannya adalah membentuk mental model arsitektur sebelum masuk ke disiplin freeze pada tahap produksi.
  • Published on
    Artikel ini mengunci struktur arsitektur firmware berbasis class yang layered dan deterministik untuk ESP32 Arduino. Setelah dependency dan memory discipline dikontrol, risiko terbesar berikutnya adalah coupling lintas domain akibat tidak adanya direction rule yang tegas. Artikel ini menetapkan model 3 layer - Driver, Service, dan Application, dengan aturan dependency satu arah (DAG) dan larangan circular include. Prefix file (`drv_`, `svc_`, `app_`, `sys_`) menjadi boundary enforcement pada struktur flat Arduino. Dengan layering eksplisit dan composition root di `IndustrialNode.ino`, firmware memiliki bentuk tetap yang stabil, mudah diaudit, dan tidak berubah meski fitur bertambah.