深入理解OpenStack自动化部署
  • 前言
  • 初识PuppetOpenstack
    • 相关约定
    • 术语表
    • PuppetOpenstack项目简介
  • Puppet开发基础
    • 关于Puppet
    • Puppet核心概念
    • 理解Hiera
    • 准备开发测试环境
  • OpenStack基础服务模块
    • puppet-apache模块
    • puppet-memcached模块
    • puppet-sysctl模块
    • puppet-rsync模块
    • puppet-xinetd模块
    • puppet-rabbitmq模块
    • puppet-firewall模块
    • puppet-mysql模块
    • puppet-vcsrepo模块
    • puppet-mongodb模块
    • puppet-ceph
  • Openstack服务模块
    • OpenStack模块代码结构
    • puppet-keystone模块
    • puppet-nova
    • puppet-neutron
    • puppet-glance
    • puppet-horizon
    • puppet-ceilometer
    • puppet-cinder
    • puppet-tempest
    • puppet-heat
    • puppet-swift
    • puppet-trove
    • puppet-sahara
    • puppet-manila
    • puppet-rally
    • puppet-designate
    • puppet-aodh模块
  • PuppetOpenstack公共库和工具类模块
    • puppet-oslo
    • puppet-vswitch模块
    • puppet-openstacklib
    • puppet-openstack-integration
    • puppet-openstack-specs
    • puppet-openstack-cookiebutter
    • puppet-modulesync-configs
    • puppet-openstack_spec_helper
    • puppet-stdlib
    • puppet-openstack_extras
  • 最佳实践
    • 模块管理
    • Hiera
    • 提交规范
    • 正确使用环境
    • 转发层规范
    • 代码风格
    • Standalone vs C\/S 模式
    • Puppet版本的选择
    • Puppet4的新特性和变化
    • Puppet的能与不能
  • 其他部署工具
    • Fuel
    • Kolla
    • TripleO
    • Packstack
    • OSA
    • DevStack
    • 编写一个定制化部署工具
  • 结语
Powered by GitBook
On this page
  • 熟悉语法和风格
  • 如何标记弃用(Deprecation)
  • 代码一致性
  • 空值的参数
  • 文档

Was this helpful?

  1. 最佳实践

代码风格

每种语言都会有自己特定的风格,每个人也会会有自己的风格,那么在协作的项目中,我们就需要去遵循大家都认可的规范。

熟悉语法和风格

在提交代码到代码审查系统前,请在本地开发环境使用Puppet-lint工具检查一遍。

如何标记弃用(Deprecation)

所有patch必须保持向后兼容(backward compatible)

这意味着:

  • 不能破坏原有接口(参数弃用至少保持一个周期,并要添加warning信息)

  • 不能改变参数的默认值(除非有一个好理由,并在commit消息里解释清楚原因)

代码一致性

目前社区维护了大量的modules,我们需要保持代码的一致性,这体现在使用统一风格的代码和注释,每个独立参数选项保持唯一。例如,在添加新参数前,请查找是否在其他类或者模块中已经实现,如果没有,则保持和其他参数相同风格的方式添加。

空值的参数

当你需要设置一个空的(nil)参数时,使用undef值。不要使用''或者false。

文档

  • 确保所有的参数都添加了正确的文档,lint会检查这些文档是否被添加。

  • 尽可能地保持examples.pp文件更新

  • 必须情况下,为你的代码添加注释(temporary workarounds, TODO等)

Previous转发层规范NextStandalone vs C\/S 模式

Last updated 6 years ago

Was this helpful?