For further actions, you may consider blocking this person and/or reporting abuse
The Most Contextual AI Development Assistant
Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.
π₯ Ideal for solo developers, teams, and cross-company projects
Read next

Logging System with Proxy and Fetch
Pratik sharma -

New Open-Source AI Model OLMo 2 Matches Leading Language Models While Using Less Computing Power
Mike Young -

[CV2] HSV vs RGB: Understanding and Leveraging HSV for Image Processing
Daniel Jarvis -

What was your win this week?!
Jess Lee -
Top comments (3)
The short answer is practice.
The long answer is you can never be perfect. There will always be times you create technical debt. I struggled with articulating an answer because the question is naturally broad (not your fault). I don't know if a complete answer can be written. BUT, here are two ideas I've found to be important.
A good test is asking yourself how you might implement a new feature. If you need to change how something is cooked and the Billing module requires a change, something is wrong. This gives you a chance to change your design.
I hope that helps start a dialogue. Design is ongoing and never finished. The best we can do is try to keep things as simple as possible.
By the way, I highly recommend reading martinfowler.com. It's a great resource on design. Here's a particularly timely example of how to refactor a bit of code to make it more maintainable: martinfowler.com/articles/refactor...
Thanks Derek. I didn't expect to get a complete and precise answer. I know how vague but at the same time simple a question like that can be. What I wanted to know was how you struggle to make your code maintebable. Your answer helped me. Among your points, interfaces are what my boss want me to master. Your point about them was so valid.
The smaller the thing - the easier it is to maintain it! 1 orange tree? Pretty easy. 10 orange trees? More work... but at least the same type of work.
If interface and functionality can be put into little groups, then it's easy to maintain and update - for anyone on the team.
So, whatever you use to generate DOM: PHP, JavaScript, Django, Vue, Ember - etc., you can keep things really lean with a few decisions on code-style. That's what works for us! Much lager systems will certainly add complexity - but the same idea applies.