Google的Common Lisp编程风格指南

4星 · 超过85%的资源 需积分: 9 18 下载量 117 浏览量 更新于2024-07-26 2 收藏 874KB PDF 举报
"Google Common Lisp Style Guide 是一份由Google发布的关于Common Lisp编程语言的编码风格指南,旨在提供一套标准的编码规范,以提高代码的可读性和可维护性。这份指南由Robert Brown和François-René Rideau共同编撰,并向已故的Dan Weinreb致敬。" 在该文档中,作者引用了Rich Hickey的一句话,"模式意味着我已经用尽了语言",这暗示了Lisp语言的强大灵活性和表达能力。文档分为多个部分,详细阐述了各种编程实践和建议。 1. **Meta-Guide**:这部分定义了指南中使用的"Must", "Should", "May", 和 "Not" 的含义,明确了哪些规则是强制性的,哪些是推荐的,哪些是可以选择的,以及哪些是不应该做的。 2. **Permission and Forgiveness**:讨论了在代码设计时,如何平衡权限和容错性,确保代码在遵循规范的同时,也能适应变化和错误处理。 3. **Conventions**:涵盖了通用的编程约定,如代码组织结构和命名规则。 4. **Old Code**:对于已有的代码,如何在遵循新规范的同时进行迁移和更新。 5. **Future Topics**:对未来可能添加到指南中的主题进行了预告。 6. **General Guidelines**:提供了通用的编程原则,包括代码优先级、架构设计和库的使用。 7. **Architecture**:强调了良好的系统架构对项目的重要性,以及如何设计可扩展和可维护的系统。 8. **Using Libraries**:讨论了如何有效利用和集成外部库,以及如何编写自己的库。 9. **Open-Sourcing Code**:如果代码打算开源,应遵循的最佳实践。 10. **Development Process**:涉及到开发流程,包括版本控制、测试和代码审查。 11. **Formatting**:这部分详细规定了代码的格式化规则,如行宽、缩进、文件头注释、垂直和水平空白的使用。 12. **Spelling**:强调正确拼写和使用一致的语言,以提高代码的清晰度。 13. **Line length**:建议了代码行的最大长度,以保证代码的可读性。 14. **Indentation**:详细规定了缩进的使用,通常在Lisp中,缩进是用来表示代码块的层次结构。 15. **File Header**:文件头的注释应该包含什么内容,以及如何格式化。 16. **Vertical whitespace**:何时使用空行来分隔代码段。 17. **Horizontal whitespace**:如何正确使用空格和制表符。 18. **Documentation**:强调文档的重要性,包括如何书写注释、使用分号等。 19. **Comment semicolons**:指导如何有效地使用注释分号。 20. **Grammar and punctuation**:在注释和文档字符串中,语法和标点符号的正确使用。 21. **Attention Required**:标记出需要开发者特别注意的部分。 22. **Domain-Specific Languages**:讨论了在Lisp中创建领域特定语言(DSL)的最佳实践。 23. **Naming**:命名规范是非常关键的一部分,包括符号指南、如何表达意图而非内容、全局变量和常量的命名、谓词名称的选择,以及如何避免在命名中使用库前缀。 24. **Symbol guidelines**:详细介绍了符号的命名和使用规则。 25. **Denote intent, not content**:提倡通过变量名和函数名来表达其目的,而不是具体实现细节。 26. **Global variables and constants**:对全局变量和常量的管理和命名提供了指导。 27. **Predicate names**:关于谓词(用于测试条件的函数)的命名规范。 28. **Omit library prefixes**:在命名时避免使用库的前缀,以减少命名冲突并提高可读性。 29. **Packages**:讨论了包的管理,包括如何命名和组织包,以及避免包名冲突。 30. **Language usage**:最后,还包含了关于如何有效地使用Lisp语言本身的指导,包括其独特的特性,如宏、动态类型和函数式编程。 "Google Common Lisp Style Guide" 是一个全面的参考文档,不仅涵盖了通用的编程最佳实践,还特别关注了Lisp语言的特性。它为使用Lisp编写高质量、可维护的代码提供了宝贵的指导。