Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I feel like if I were to take program design as being the Wikipedia definition: "...the process by which an agent creates a specification of a software artifact, intended to accomplish goals, using a set of primitive components and subject to constraints.[1]", then I can't see your article saying much about that. Instead, the article points to good things about code created using TDD methodologies. Those code-qualities (coupling, etc) may indeed happen with TDD and may be desirable but that seems distinct from the issue of how-to-design or how TDD is design (one assumes the tests are the artifacts but the point is that details need filling-in).

As far I've seen, the "designing by writing tests" approach, mostly succeeds in the web-apps field where one has an implicit/assumed CRUD/MVC structure, writes tests for behavior and filling in functions based on this assumed structure.

I haven't seen anything about how one proceeds with TDD if one has the more complex task of implementing an algorithm, a language or something with highly structured requirement. I'd be interested in how one would do that.

[1] https://en.wikipedia.org/wiki/Software_design



I don't think this wiki page is intended to show specific examples. But here's one I really like that isn't a typical MVC web app: https://www.youtube.com/watch?v=XHnuMjah6ps

The process he's using there falls in line with the higher-level experiences described on the wiki.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: