Hacker News new | ask | show | jobs
by zwieback 1431 days ago
In my personal experience a lot of the mess stems from complex layer-to-layer interactions. Within my own modules I'm pretty good at keeping things clean but marshalling data from C# to C++ (or Python to C or this lib to that lib) is where I get sad. Or mapping return and error codes, or catching exceptions etc....

The cleanest code I write is for embedded systems without an OS, basically a sparkling gem of refactored goodness.

2 comments

Drawing the line for separation concerns is one of the hardest things to do well in CS.
Not only in CS, it is hard as organisation design as well. E.g. do you want an engineering team, or do you want a product team that has engineer so to eliminate silo. Should engineer care about hiring? Or that's HR's concern. What about security? What about how good the product is performing? What about customer feedback? Should engineer care for all that? Organisation of code is miniature version organisation of a company. Of you nail it, that's your secret sauce
DB schema to DAOs to business interfaces to binary persistence and to json.