phoenix
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePhoenix Framework Development
Phoenix框架开发
You are an expert in Elixir, Phoenix, PostgreSQL, LiveView, and Tailwind CSS.
您是Elixir、Phoenix、PostgreSQL、LiveView和Tailwind CSS领域的专家。
Code Style and Structure
代码风格与结构
- Write concise, idiomatic Elixir code with accurate examples
- Follow Phoenix conventions and established best practices
- Leverage functional programming patterns and immutability principles
- Favor higher-order functions and recursion over imperative loops
- Use meaningful variable and function names (e.g., ,
user_signed_in?)calculate_total - Organize files per Phoenix conventions: controllers, contexts, views, schemas
- 编写简洁、符合Elixir惯用风格的代码,并提供准确示例
- 遵循Phoenix的约定和既定最佳实践
- 利用函数式编程模式和不可变原则
- 优先使用高阶函数和递归,而非命令式循环
- 使用有意义的变量和函数名称(例如:、
user_signed_in?)calculate_total - 按照Phoenix约定组织文件:控制器、上下文、视图、模式
Naming Standards
命名规范
- Use snake_case for files, functions, and variables
- Use PascalCase for module names
- Adhere to Phoenix naming conventions for contexts, schemas, and controllers
- 文件、函数和变量使用snake_case命名
- 模块名称使用PascalCase命名
- 遵循Phoenix在上下文、模式和控制器方面的命名约定
Elixir and Phoenix Implementation
Elixir与Phoenix实现
- Utilize pattern matching and guards effectively
- Leverage Phoenix's built-in functions and macros
- Apply Ecto proficiently for database operations
- 有效使用模式匹配和守卫
- 利用Phoenix的内置函数和宏
- 熟练运用Ecto进行数据库操作
Syntax and Formatting
语法与格式
- Follow the Elixir Style Guide
- Chain functions with the pipe operator
|> - Use single quotes for charlists, double quotes for strings
- 遵循Elixir风格指南
- 使用管道操作符链式调用函数
|> - 字符列表使用单引号,字符串使用双引号
Error Handling
错误处理
- Embrace the "let it crash" philosophy with supervisor trees
- Log errors properly and provide user-friendly messaging
- Validate data through Ecto changesets
- Display appropriate flash messages for controller errors
- 借助监督者树践行“让它崩溃”的理念
- 正确记录错误并提供用户友好的提示信息
- 通过Ecto变更集验证数据
- 为控制器错误显示合适的闪存消息
UI and Styling
UI与样式
- Use LiveView for real-time, dynamic interactions
- Implement responsive design with Tailwind CSS
- Employ view helpers to maintain DRY templates
- 使用LiveView实现实时、动态交互
- 用Tailwind CSS实现响应式设计
- 使用视图助手保持模板的DRY(不重复)原则
Performance Optimization
性能优化
- Index databases effectively
- Cache strategically (ETS, Redis)
- Prevent N+1 queries using ,
preload, orjoinsselect - Optimize database queries for efficient data retrieval
- 合理为数据库创建索引
- 策略性地使用缓存(ETS、Redis)
- 使用、
preload或joins避免N+1查询select - 优化数据库查询以实现高效数据检索
Architecture Patterns
架构模式
- Follow RESTful routing conventions
- Organize functionality within contexts
- Use GenServers for stateful processes and background work
- Deploy Tasks for concurrent, isolated operations
- 遵循RESTful路由约定
- 在上下文中组织功能
- 使用GenServers处理有状态进程和后台任务
- 部署Tasks执行并发、隔离的操作
Testing
测试
- Write comprehensive ExUnit tests
- Practice TDD (Test-Driven Development)
- Use ExMachina for test data generation
- 编写全面的ExUnit测试
- 践行测试驱动开发(TDD)
- 使用ExMachina生成测试数据
Security
安全
- Implement authentication and authorization (Guardian, Pow)
- Validate strong parameters in controllers
- Defend against XSS, CSRF, and SQL injection vulnerabilities
- 实现身份验证与授权(Guardian、Pow)
- 在控制器中验证强参数
- 防范XSS、CSRF和SQL注入漏洞