Development Practices
AI
This page describes recommended practices for integrating AI tools into your daily development workflow. The goal is to increase efficiency without reducing code quality, maintainability, or understanding.
Project Initialization
Start projects in the same way you normally would, without AI:
Choose frameworks, libraries, and project structures based on your team’s standards and experience.
Set up repositories, CI/CD pipelines, and environment configurations as usual.
Reasoning:
AI should support your work, not define your architectural decisions. Establishing a solid foundation manually ensures maintainability and consistency.
Create an AI Instructions File
Introduce a dedicated file in the codebase.
For Copilot, see information here. The .github/copilot-instructions.md
can be generated from VS Code.
This file should define:
Coding style and conventions (naming, formatting, testing practices).
Preferred libraries and frameworks to use or avoid.
Patterns and anti-patterns (e.g., “use dependency injection,” “avoid static utility classes”).
Security and performance requirements.
Review expectations (e.g., “always generate unit tests,” “document all public functions”).
Keep this file under version control so the entire team can maintain and improve it.
Purpose:
AI models (such as GitHub Copilot, Cursor, or Cloud Code assistants) can use this file as guidance when generating code, reducing inconsistency and the need for repetitive corrections.
Writing Prompts for AI
When using AI for coding tasks:
Break work into small, well-defined tasks (e.g., “generate a function that validates email addresses using regex, including unit tests”).
Write prompts clearly and include relevant context (language, framework, coding style).
Iterate on prompts: if AI output is not aligned, adjust the prompt or update the AI instructions file.
Experiment with different AI models when results vary.
Tip: Prompting is a skill, treat it like learning a new tool. Practice and refine.
Using AI for Code Generation
AI is best applied for:
Automating boilerplate code.
Implementing repetitive tasks.
Suggesting test cases.
Refactoring existing code.
Important limitations:
Do not let AI write code you do not understand. Always make sure you can explain what the code does.
Always review AI-generated code yourself and have at least one other developer review it.
Prototyping and Rapid Development
For short-lived projects, experiments, or proofs of concept:
Tools like Lovable, Bolt.new, or v0.dev can rapidly create prototypes, even without prior coding experience.
Use these outputs for inspiration, UI exploration, and early validation.
Note: Prototypes from these tools are not production-ready. For long-term projects, you must ensure maintainability, scalability, and security through standard engineering practices.
Avoiding Pitfalls
When integrating AI into your workflow:
Avoid endless prompt loops. If you find yourself rewriting prompts repeatedly without progress, step back and rethink your approach. Adjust you instructions-file or make sure the task more more defined.
Be mindful of security and performance. AI may generate insecure or inefficient code that requires review.
Remember: Web applications are more than UI. AI can scaffold front-end components quickly, but backend logic, data modeling, and infrastructure need deeper architectural thinking.
AI as a Support Tool, Not a Replacement
AI can:
Speed up repetitive coding.
Suggest improvements.
Act as a second reviewer.
But AI cannot:
Replace your understanding of the system.
Guarantee correctness, security, or long-term maintainability.
Conclusion:
Use your expertise and creativity as the foundation. Let AI accelerate parts of your workflow—but remain the primary architect and decision-maker.