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

The answer to your question is essentially the entire field of software architecture and to some degree even software engineering itself.

Thus there aren't many simple always-applicable tips. Every tip requires experience to know when you apply it. Any tip that doesn't require that experience ends up not accomplishing much.

Keeping things simple is good. But sometimes you do need some abstractions, scaffolding, and structure that sacrifices simplicity but enables the code to grow.

Tests are good. But sometimes code can be so heavily tested that changing the tests themselves is a large maintainence burden when the requirements change.

Abstraction and encapsulation are good. But both add complexity and raise the amount of code someone has to load into their head to understand what's actually happening.

Documentation is good. But writing good docs itself an artform, and docs that aren't maintained well can cause more harm than good.

The best advice I can give is to not seek out "tips". Just work with the best engineers you can find, write code, reflect on it, and trust that your experience and intuition will grow over time. There is no shortcut to mastery.



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

Search: