2019独角兽企业重金招聘Python工程师标准>>>

1、简介

基本上,Nginx所采用的是一种类似BSD的C代码风格,很规范、也很清晰。建议我们的Nginx模块开发也采用Nginx的编码风格。

2、命名方式

除宏定义外,字母均为小写,单词间用下划线(_)间隔。

3、对齐方式

代码方式是K&R的对齐方式,需要注意以下几点:

(1)用空格而不是tab对齐,空格数目为4个 ;

if (ngx_process == NGX_PROCESS_SINGLE) {

ngx_single_process_cycle(cycle);

} else {

ngx_master_process_cycle(cycle);

}

(2)在块和函数之间空两行;

(3)变量声明时上下对齐 ;

(4)函数声明全部写在一行;

static ngx_int_t ngx_http_tfs_status_message(ngx_buf_t *b, ngx_str_t *action, ngx_log_t *log);

(5)函数定义采用以下方式,即将返回值和函数名分为2行来写;

static ngx_chain_t *
ngx_tfs_message_ds_create_write_packet(ngx_http_tfs_t *t)
也就是将返回值和函数名分为两行来写。

(6)函数和函数之间必须两个换行隔开。

static ngx_chain_t * ngx_tfs_ms_create_read_packet(ngx_http_tfs_t *t) { }

static ngx_chain_t * ngx_tfs_ms_create_write_packet(ngx_http_tfs_t *t)

(7)for循环的格式:变量和分号之间要有空格,其次大括号要和for在一行。if的格式和for类似。 所有的if都必须有括号,不能省略大括号。

for (i = 0; i < ds->count; i++) {

..............

}

4、注释方式

C风格的注释,如: /* comment */

5、版权信息

在文件开头,签名空一行,后面空两行,如

/*
 * Copyright (C) Igor Sysoev
 */

转载于:https://my.oschina.net/floristgao/blog/372263

Nginx模块开发—Nginx代码规范相关推荐

  1. Nginx模块开发入门

    前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...

  2. Nginx 模块开发

    Nginx 模块概述 Nginx 模块有三种角色: 处理请求并产生输出的 Handler 模块: 处理由 Handler 产生的输出的 Filter(滤波器)模块: 当出现多个后台服务器时,Load- ...

  3. Nginx 模块开发高级篇

    Nginx 模块开发高级篇 变量 综述 在Nginx中同一个请求需要在模块之间数据的传递或者说在配置文件里面使用模块动态的数据一般来说都是使用变量,比如在HTTP模块中导出了host/remote_a ...

  4. 16w行的nginx源码,如何分拆模块阅读,手把手教你造轮子丨Nginx模块开发丨C/C++丨Linux服务器开发丨后端开发

    16w行的nginx源码,如何分拆模块阅读,让你明白轮子如何造  1. 多进程模型下的惊群处理 2. 内存池的代码封装 3. slab共享内存分配 视频讲解如下,点击观看: 16w行的nginx源码, ...

  5. Nginx模块开发:模块结构的源码阅读以及过滤器(Filter)模块的实现

    Nginx模块开发:模块结构的源码阅读以及过滤器(Filter)模块的实现 一.Nignx中的模块是什么? 二.模块的基本结构 `ngx_module_s` `ngx_command_s` `ngx_ ...

  6. 【Linux网络编程】Nginx -- 模块开发(upstream / subrequest)

    [Linux网络编程]Nginx -- 模块开发(upstream / subrequest) [1]upstream VS subrequest 简介 upstream 为访问上游服务器,它把Ngi ...

  7. 推荐我的新书《深入理解Nginx:模块开发与架构解析》

    http://www.china-pub.com/STATIC/zt_mb/zt_huodong_2013_3.asp?filename=2013_jsj_nginx_20130401 目录 < ...

  8. Nginx模块开发系列1--预备知识

    摘要:在进行Nginx模块开发之前,需要先了解一下Nginx的模块工作原理以及需要用到的结构体. 文章目录 1.Nginx模块工作原理 2.ngx_module_t 结构体 3.ngx_command ...

  9. Nginx源码从模块开发入手,3个项目弄透nginx模块开发丨Linux服务器开发丨C++后端开发丨中间件开发丨分布式丨web服务器

    Nginx源码从模块开发入手,3个项目弄透nginx模块开发 1. Nginx http请求的11个处理流程 2. Upstream, Filter,Handler模块分析 3. nginx如何拒绝无 ...

最新文章

  1. IDEA的这几个调试的骚操作,用了都说爽!
  2. VB.NET 快速向Excel写入大量数据
  3. php查看文件属性,文件目录属性及权限
  4. 项目、SVN clean的一些事
  5. commons-lang3:ArrayUtils
  6. java 启动参数 配置,java程序启动参数设置
  7. RabbitMQ脑裂
  8. oracle基本笔记整理及案例分析1
  9. delphi中的函数传参如何传枚举参数_我是这样使用SpringBoot(API传参)
  10. mysql optimizer mrr_MySQL优化器功能开关optimizer_switch
  11. 依存可视化︱Dependency Viewer——南京大学自然语言处理研究组
  12. TitleWindow的CloseButtionSkin问题
  13. STM32全球唯一ID读取方法
  14. 【SLAM学习笔记】8-ORB_SLAM3关键源码分析⑥ Optimizer(三)全局优化
  15. 【20G】三菱PLC全套资料(手册+视频教程+编程软件+仿真软件)
  16. 广州市印发《关于促进大数据发展的实施意见》
  17. Tita绩效宝:2021年的绩效考核(下)- 绩效考核周期设置
  18. ISO26262-道路车辆功能安全
  19. Godaddy出售域名收益/收款提现探究——待续
  20. android 8.1 9.0 10.0 Launcher3禁止拖拽app图标到第一屏

热门文章

  1. Decorator(装饰器)
  2. 7-3 输出最大公约数 (10 分)
  3. R7-2 统计字符[2] (10 分)
  4. 凯撒密码加密算法 (8 分)
  5. 上位机获取单片机发来的数据并进行检验(完整版,附完整源码)
  6. java轮训算法_负载均衡轮询算法实现疑问
  7. some any oracle,Oracle之 any、some、all 解析
  8. 如何找出孔洞位置进行填充_电伴热带破损位置如何快速找出
  9. idea存在包但是运行项目一直报java.lang.NoClassDefFoundError的问题
  10. 吴裕雄--天生自然 高等数学学习:平面及其方程