Automation-friendly Software Systems and How to Build Them

TL;DR

  • Apis - control programatic. Cat mai putina interdependenta intre pasi
  • CLI

Mie graphql mi se pare cea mai buna solutie posibila la momentul actual ca sa fii extrem de user friendly pentru automatizare cu un API. Google de exemplu utilizeaza un client de REST interactiv cu autocomplete in documentatia API-ului lor de Google Sheets, Google Docs… dar e oribil fiindca trebuie sa dai copy paste din browser in editor ca sa poti cauta in JSON sau sa faci ceva cu el.

La UI cea mai mare problema la automatizare e sa ai elemente desenate cu canvas/webgl sau view-uri in iframe-uri/shadow dom. Dupa daca nu ai loadere la ceva ce nu se incarca instant sau se incarca de mai multe ori e greu de gandit flow-ul de asteptare sau trebuie sa pui wait implicit. Daca trebuie sa testezi/automatizezi ceva desenat cu canvas trebuie ori sa faci hook-uri in renderer/servicii pe un API ori trebuie sa te bazezi doar pe comparare de imagini, coordonate, OCR si AI.

Pentru devops sunt o multime de tool-uri, e mai bine sa folosesti ceva standard decat sa vii cu ideea ta daca nu-i ceva revolutionar. Un cli e foarte usor de implementat in go, python, java sau node.

Desigur daca ai type-uri/generice e util sa exporti interfetele pentru mai multe limbaje. (C#/java/go -> TypeScript si invers)