TDD, DDD a Microservices - zajímá to českého programátora? rubrika: Programování: Jiné
4
meetvashek
položil/-a 7.4.2019
Ahoj všichni. Jsem tu nový a tak jsem zkoušel najít to co mě bere teď ze všeho nejvíc: Test Driven Development (TDD), Domain Driven Design (DDD) a architektura nazývaná "microservices". Nejmladší příspěvky na toto téma jsou rok staré a žádná větší diskuse o tom, co je v oněch zmíněných knihách: DDD od Erica Evanse, Clean Code od Roberta C. Martina? Praktické postřehy? Je o tohle téma tady zájem?
odkaz
8
Tomáš Tintěra
odpověděl/-a 11.4.2019
K TDD se tolik nediskutuje:
- Jak předeslali ostatní, protože diskuse už proběhla a je to v učebnicích a hype je jinde.
- Protože stávající code base většiny starých velkých projektů je obtížně testovatelná.
- Protože pokrýt testy stávající codebase by byl herkulovský úkol.
Aktuální zkušenosti:
U jazyků, které jsou blíže HW je to s TDD trochu jiné:
- Netvořím jen "běžnou" aplikační logiku, která by se dobře testovala.
- Nikdy nemůžu otestovat všechny možnosti. Kód je často skutečně multiplatformní. To že test prochází neznamená, že bude chodit s jiným a na jiném OS. (Naše CI mám 4 kompilátory na 2 OS).
- U mutithreadingu je také těch kombinací kombinačně moc. Správnou funkčnost nelze ověřit jen testy.
- Nejúčinnější prevencí bugú je lépe používat nedávnými lety ověřené vzory a vyhýbat se zastaralým a nebezpečným postupům. Tedy tu správnou podmnožinu jazyka.
- Druhé nejúčinnější mi přijde poctivé code review.
- Řadu testů za vás de facto udělá kvalitní statická analýza. (Ne typová kontrola, ale samostatný nástroj, třeba Cppcheck, v MSVC je také dobrá.)
-
Víme, že nikdy nemůžete otestovat všechny možnosti.
- TDD také význam u klasických GUI aplikací tvořených třeba nad Qt. Protože nejvíce bugů je z nesprávného použití nějakého prvku. Čili je třeba číst, pochopit a znát dokumentaci.
Takže testy tvořím, kde se dá. A šetří mi dost práce. Ale k čistému TDD má moje praxe daleko.
Pro zobrazení všech 8 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře