A series of practical advice on how to use AI to code
> TL;DR: Master the balance between AI speed and code with professional craftsmanship.
In this series, you will learn practical state-of-the-art advices to use AI to code.
https://coderlegion.c...
Discouraged by Object-Oriented Programming, Many mixed languages support it. And developers abuse them.
> TL;DR: Global functions bring a lot of coupling. Don't use them.
Problems
Tight Coupling
Poor Readability
Maintainability
Testability
H...
Learn guided by the domain
> TL;DR: Use AI to understand requirements and build a shared mental model while you write the code.
Common Mistake ❌
You jump directly to code generation with a vague, wishful prompt.
The AI appears to understand your ...
Small changes yield unexpected problems.
> TL;DR: If small changes have big impact, you need to decouple your system.
Problems
High Couplinghttps://coderlegion.com/6634/coupling-the-one-and-only-software-design-problem
Low maintainability
Side...
Avoid the Agentic Trojan Horse
> TL;DR: Treat AI agent skills like dangerous executable code and read the instructions carefully.
Common Mistake ❌
You install community skillshttps://coderlegion.com/10515/ai-coding-tip-004-use-modular-skills for y...
You own the code, not the AI
> TL;DR: If you can't explain all your code, don't commit it.
Common Mistake ❌
You prompt and paste AI-generated code directly into your project without thinking twice.
You trust the AI without verification and create...
Give your collections a purpose and a connection to the real world
> TL;DR: Wrap primitive collections into dedicated objects to ensure type safety and encapsulate business logic.
Problems Addressed
Type safety violations
Logic duplicationhttps:...
Keep your prompts clean and focused, and stop the context rot
> TL;DR: Clear your chat history to keep your AI assistant sharp.
Common Mistake ❌
You keep a single chat window open for hours.
You switch from debugging a React component to writing...
The code smells badly. Let's see how to change the aromas.
> TL;DR: A Compilation of bad smells in code.
In this series, we will see several symptoms and situations that make us doubt the quality of our development. We will present possible solutio...
Assertions, Preconditions, Postconditions and invariants are our allies to avoid invalid objects. Avoiding them leads to hard-to-find errors.
> TL;DR: If you turn off your assertions just in production your phone will ring at late hours.
Problems ...
Stop bloating your context window.
> TL;DR: Create small, specialized files with specific rules to keep your AI focused, accurate and preventing hallucinations.
Common Mistake ❌
You know the drill - you paste your entire project documentation or e...
An object that knows too much or does too much.
> TL;DR: Don't take too many responsibilities in a single class.
Problems
Low cohesion
High couplinghttps://coderlegion.com/6634/coupling-the-one-and-only-software-design-problem
Single Responsib...
Think first, code later
> TL;DR: Set your AI code assistant to read-only state before it touches your files.
Common Mistake ❌
You paste your failing call stack to your AI assistant without further instructions.
The copilot immediately begins modi...
Speak the model’s native tongue.
> TL;DR: When you prompt in English, you align with how AI learned code and spend fewer tokens.
Disclaimer: You might have noticed English is not my native language. This article targets people whose native language...
Non-Parameterized constructors are a code smell of an invalid object that will dangerously mutate. Incomplete objects cause lots of issues.
> TL;DR: Pass the essence to all your objects so they will not need to mutate.
Problems
Mutability
Incom...
A safety-first workflow for AI-assisted coding
> TL;DR: Commit your code before asking an AI Assistant to change it.
Common Mistake ❌
Developers ask AI assistant to "refactor this function" or "add error handling" while they have uncommitted chang...
Programmers use Null as different flags. It can hint at an absence, an undefined value, en error etc. Multiple semantics lead to coupling and defects.
> TL;DR: Null is schizophrenic and does not exist in real-world. Its creator regretted and program...
Using Boolean variables as flags introduces accidental implementation complexity and pollutes the code with Ifs.
> TL;DR: Avoid Boolean variables, they lead to conditional logic and force you to write Ifs. Create polymorphic states instead.
Problem...
You polish code that nobody touches while the real hotspots burn
> TL;DR: Don't waste time refactoring code that never changes; focus on frequently modified problem areas.
Problems
Wasted effort
Wrong priorities
Missed real issues
Team product...
Objects or Functions need too many arguments to work.
> TL;DR: Don't pass more than three arguments to your functions.
Problems
Low maintainability
Low Reuse
Coupling
Solutions
1. Find cohesive relations among arguments
2. Create a "con...