152: Decoupled Communication in Applications
Clean code, naming classes, thriving without managers and decoupling systems communication with event modeling
Thank you for reading Snippets of Text. Snippets from media about tech, programming, parenting, and more. This is a preview of a post available exclusively to paying subscribers. You can get unlimited access to all articles by purchasing a subscription.
Off Topic: Effective Naming for Code Clarity
Readers shouldn't have to translate your names into familiar terms. Avoid using ambiguous terms and choose meaningful names from the problem or solution domain. A good name should be pronounceable and reflect its scope.
Classes and objects should have noun or noun phrase names like Customer, WikiPage, Account, and AddressParser, primarily when representing the domain's core concepts. Choosing good names requires descriptive skills and a shared cultural background. Test code is essential and should be as clear and concise as production code. Use testing APIs as a domain-specific language to ease test writing. To meet deadlines and go fast, keep the code clean at all times. Customers now demand faster delivery and lower costs, which can lead to compromised outcomes. Limiting project scope improves feedback and software quality. It focuses on delivering long-term value at a lower cost and can also be seen as the "elimination" phase.
In XP, Kent Beck expanded the model to include scope. "Better" was chosen as the fixed development point, although the market may disagree. It's unprofessional for programmers to bend to managers' will without understanding the risks. Clean code is simple and direct and expresses requirements using specific guidelines. Clean code should be literate and cut dependencies while providing a straightforward API.
[^]: Clean Code: A Handbook of Agile Software Craftsmanship
Unrelated: Thriving without Managers in Efficient Software Initiatives
Programmers can use traditional opportunistic owners and managers. Idealists, although hardworking, often get caught up in the rituals and myths of the corporate world. Managers thrive in political environments where more than two humans gather. The agile software movement aims to bridge the gap between business and IT, but scaling it becomes complex and inefficient. In a world where we're all opportunists conducting business on our terms, we must focus on being knowledgeable, delivering quality code, and collaborating with the company.
Most companies seek journeyman programmers with 3-5 years of experience to avoid investing in training. Spend time networking, solving everyday problems, and showcasing your skills. Unfortunately, many corporations and developers fail to adapt to new realities, treating programmers as interchangeable commodities. Programming is a tool, not the world-changer itself.
If given the opportunity, intelligent and creative individuals will find effective ways to work. We should make it easier for companies to invest in software initiatives. Managers prioritize their pay, while some contribute nothing to the team's efforts. Let's challenge bad management and play by our own rules. Efficient firms become profit-focused and view everyone's contribution objectively. Software developers are unique, and GitHub's open allocation policy allows freedom in project choices. Seek efficiencies through automation and process improvements before considering code solutions.
Idealist layers are thicker in larger companies, hindering progress. Say no to algorithmic whiteboard interviews and focus on fixing problems. I will only use your time if we're fit, but I can connect you with others. Novelty doesn't guarantee innovation. Build a reputation and network, apply to non-traditional companies, and sell value efficiently. Regain autonomy and dignity as an automation expert rather than a JavaScript geek.
[^]: Developer Hegemony: The Future of Labor
I appreciate your interest in the free preview of Snippets of Text. If you find my content valuable, I would be grateful if you would consider subscribing to the paid version. Your support will allow me to devote more time to crafting new, innovative ideas to share.
Keep reading with a 7-day free trial
Subscribe to Snippets of Text to keep reading this post and get 7 days of free access to the full post archives.