手把手教你规范自己的代码

开发 开发工具
clang_format 支持多种代码风格:Google, Chromium, LLVM, Mozilla, WebKit,也支持自定义风格(通过编写.clang-format文件),很方便的统一代码格式。

[[425853]]

每个人都有自己的编码风格,但如果要和别人协同开发软件,最好是采用一样的风格,可是强行要求他人更改编码风格可能会比较难,那么有没有更好的解决方式呢?

当然有,在软件的世界中,有需求就会有解决方案,毕竟大神那么多。

格式化 C、C++ 代码有一个好用的工具:clang_format。

clang_format 支持多种代码风格:Google, Chromium, LLVM, Mozilla, WebKit,也支持自定义风格(通过编写.clang-format文件),很方便的统一代码格式。

Linux下安装Clang-format : 

  1. sudo apt-get install clang-format 

具体的使用大家可以百度,很简单,肯定比我讲的全。

另外,推荐使用 VSCode 的 C/C++ 插件,自带了 Clang-Format 格式化工具,不仅拥有上述 5 种排版格式,还定义了自己的 Visual Studio 排版格式,且此格式是默认的排版格式(Ubuntu下格式化快捷键:Ctrl+Shift+I,Windows下格式化快捷键:Shift+Alt+F)。

格式化前: 

安装了C/C++ 插件后,鼠标右键,选择格式化文档。

格式化后: 

C、C++ 代码可以使用 clang_format 格式化,java 代码呢?不用担心,Android Studio 有内置的格式化代码的工具,不需要自己安装插件和工具。

选中文件,右键,选择Reformat Code,即可将我们的 java 代码格式化成谷歌的代码风格。 

通过以上的方式,我们完成了代码风格的格式化,包括大括号小括号位置、换行设置等。那下一步,就是规范我们的命名。

C、C++ 和 java 的命名方式有很大的不同,C语言:

Linux 编码风格总结

Android 有自己的命名风格,包括局部变量、静态变量、类名、包名、接口、try - catch 闭包规定等,都有很大的不同。

在Linux 中喜欢用下划线分割,在 Android 中需要遵循驼峰原则,具体的Android 中 java 编码命名规定,参考如下链接:

https://www.jianshu.com/p/0a984f999592

Android 命名规范举例:

非常量字段名以 LowerCamelCase 风格的基础上改造为如下风格:

基本结构为 scopeVariableNameType。 

  1. scope:范围 
  2. 非公有,非静态字段命名以m开头。 
  3. 静态字段命名以s开头。 
  4. 公有非静态字段命名以p开头。 
  5. 公有静态字段(全局变量)命名以g开头。 
  6. public static final 字段(常量) 全部大写,并用下划线连起来。 

 

  1. public class MyClass {   
  2.       public static final int SOME_CONSTANT = 42;   
  3.       public int pField;   
  4.       private static MyClass sSingleton;   
  5.       int mPackagePrivate;   
  6.       private int mPrivate;   
  7.       protected int mProtected;  
  8.       public static int gField;  

希望我们实现功能的同时,能够拥有一个好的编码风格,这样别人看我们的代码会感觉很舒服,像欣赏一个艺术品。

本文转载自微信公众号「嵌入式Linux系统开发」

 

责任编辑:姜华 来源: 嵌入式Linux系统开发
相关推荐

2022-01-04 08:52:14

博客网站Linux 系统开源

2017-09-05 13:01:11

CocoaPods开源库GitHub

2024-03-18 18:07:38

VSCode插件文件

2011-05-03 15:59:00

黑盒打印机

2011-01-10 14:41:26

2021-07-14 09:00:00

JavaFX开发应用

2024-01-26 08:16:48

Exporter开源cprobe

2011-02-22 13:46:27

微软SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2021-12-28 08:38:26

Linux 中断唤醒系统Linux 系统

2022-01-08 20:04:20

拦截系统调用

2022-03-14 14:47:21

HarmonyOS操作系统鸿蒙

2023-04-26 12:46:43

DockerSpringKubernetes

2022-07-27 08:16:22

搜索引擎Lucene

2022-12-07 08:42:35

2021-11-24 16:02:57

鸿蒙HarmonyOS应用

2020-08-12 09:07:53

Python开发爬虫

2022-01-09 20:26:14

Flink源代码编译

2009-06-15 16:58:57

Java安装Linux

2018-03-23 20:45:23

机器学习NLP文本数据
点赞
收藏

51CTO技术栈公众号