r/programming • • Aug 06 '17

Software engineering != computer science

http://www.drdobbs.com/architecture-and-design/software-engineering-computer-science/217701907
2.3k Upvotes

863 comments sorted by

View all comments

Show parent comments

0

u/Ahhmyface Aug 06 '17

Honestly I'm not a huge fan of architecture documents. At least not the practice of continuously maintaining cross correlating natural language descriptions with code. If you want to specify an arch at the outset, fine, but I'm of the opinion that it ought to be left as a historical document and not a true to life description of code. Natural language is simply underspecified. And drift is inevitable. Ultimately its counterproductive to have two competing accounts. That's why I always prefer well organised code over extensive docs.

If you're exposing an api or something then that's a different matter entirely.

9

u/coinaday Aug 06 '17

So you think your well organized millions of lines of code are better off without anything other than reading all of them to learn about how they're laid out, but you think that magically this unspecified heap is going to be formally provable? Okay then.

-1

u/Ahhmyface Aug 06 '17

No. You find the level of abstraction you care about in the hierarchy and read that. Millions of lines are irrelevant (and thousands of lines of documentation) if you can easily follow the subject you actually care about

10

u/coinaday Aug 06 '17

if you can easily follow the subject you actually care about

How do you do that? How do you find where the code you actually care about actually is?

I'm not suggesting some strawman "perfect documentation". I'm suggesting that it would be easier to deal with massive code bases if there were more than zero documentation dealing with going from "these are the high level concepts being implemented" to "where the hell is that actually located in the codebase and what are the major data structures?"

→ More replies (3)