7种过时的代码风格

开发 前端
如果您已经进行了十多年的编码,那么您可能会拥有一些坚定的首选样式,您会坚定地相信这些样式,并坚持自己的观点来捍卫它们直到最后。下面是我曾经坚定支持过的一些人,但现在我认为我必须放手。

如果您已经进行了十多年的编码,那么您可能会拥有一些坚定的首选样式,您会坚定地相信这些样式,并坚持自己的观点来捍卫它们直到最后。

下面是我曾经坚定支持过的一些人,但现在我认为我必须放手。

[[342260]]

1. 使用m或this表示成员变量

规则:要区分成员变量和局部变量,请使用以下任一方法:

  • 使用匈牙利表示法,即mMemberVariable与localVariable。 其中m代表成员变量。
  • 这个的使用 this.member变量与局部变量。

过时的原因:

原因是当我们阅读代码时,可以很容易地知道它们是成员变量还是局部变量,而无需查看它们的声明。

  1. class MyClass {  
  2.   var mMember = "member"  
  3.   fun doSomething() {  
  4.     val local = "local"  
  5.     println(this.mMember)  
  6.     println(local)   }} 

现在:

如果是现代IDE,则不再需要这种基于文本的区分。 参见下面的相同代码,它将自动为它们涂上不同的颜色。

7种过时的代码风格

> Different coloring of variables

2. 明确声明Public,Protected或Private

规则:一个类中的所有变量和函数都必须明确声明为public,private或protected。 不要采用默认状态。

  • 需要明确说明类型,例如 字符串或整数
  • 需要明确说明它是私有的还是公共的
  1. public class MyClass {  
  2.     public val publicVariable: String = "100"  
  3.     private fun privateFunction() {}  
  4.     public fun publicFunction() {} 

过时的原因:

这是为了避免有人错误地访问这些函数或变量,即,如果未声明函数,则用户可能不知道默认状态(如果是公共状态或私有状态)。

现在:

使用现代IDE,我们无需明确声明默认值,例如 对于公开的Kotlin。 用户不会无意中误认为默认状态,因为自动完成只会显示公共方法。 因此,不太可能有人会混淆默认状态。

7种过时的代码风格

> The private Function won't appear on auto-complete

如果有任何错误用法(例如访问私有功能),它不会仅在编译时出现错误。 立即出现错误并显示一条清晰消息。

3. 总是显式声明变量类型

规则:所有变量均应使用其类型声明,即使从已为其赋值的值很明显即可,例如 需要明确说明类型,例如 字符串或整数

  1. public class MyClass {  
  2.   public val publicVariable: String = "100"  
  3.     private fun privateFunction() {}  
  4.     public fun publicFunction() {} 

过时的原因:

这是为了避免有人错误地访问这些功能或变量,例如 变量分配给错误的类型,并导致编译错误。

现在:

如果使用现代编程语言,则在可推断且明确的情况下,无需显式声明变量的类型。 这称为类型推断。 如今,它可以多种现代语言提供。

如果有任何错误的分配等,它不会仅在编译时出错。 立即出现错误并显示一条清晰消息。

7种过时的代码风格

> 10 + MyClass().publicVairable will error out immediately as Int and String can't be added together

4. 成员变量应始终为私有

规则:所有应为私有的并通过getter和setter访问的成员变量适用于需要在外部设置或获取的成员变量。

  1. public class MyClass{  
  2.   private var member = "member";  
  3.     public fun getMember(): String {  
  4.     return member;  
  5.   }     public fun setMember(value: String) {  
  6.     member = value;   }} 

过时的原因:

如果我们将其公开以进行设置和获取,则在设置或获取它们时需要执行一些操作时,我们需要更改所有访问它的代码。

因此,如果我们限制使用getter和setter,则可以控制它。

  1. class MyClass{  
  2.   private var member = "member";  
  3.     fun getMember(): String {  
  4.     println("Setting member") return member;  
  5.   }     fun setMember(value: String) {  
  6.     println("Setting member with $value") member = value;  
  7.   }} 

现在:

在现代语言(例如Kotlin)中,我们可以在需要时轻松地将变量getter或setter插入变量,而无需明确地具有两个仅用于设置和获取的函数。

因此,我们可以按以下方式进行编码,而无需在类中添加附加的setter和getter函数。

  1. class MyClass { var member = "member"

当我们需要对setter或getter进行操作时,我们可以轻松地添加它们,而无需更改访问成员的代码。

  1. class MyClass {  
  2.   var member = "member"  
  3.     get(): String {  
  4.     println("Setting member")  
  5.     return field  
  6.   }     set(value: String) {  
  7.     println("Setting member with $value")  
  8.     field = value  
  9.   }} 

5. 开始和结束大括号应对齐

规则:所有大括号应在同一列对齐,以便我们可以轻松找到它们,例如:

  1. class MyClass  
  2. {   private var member: String = "member"  
  3.     fun doSomething(state: Boolean)  
  4.   {     val local = "local"  
  5.     println(member)     println(local)                  }} 

过时的原因:

原因是通过垂直查看,我们可以轻松找到它们的对,从而知道函数的作用范围在哪里。

现在:

使用新的IDE,只要代码看起来很整洁,我们就不再需要在同一列上对齐开始和结束大括号。

  1. class MyClass {  
  2.   private var member: String = "member"  
  3.     fun doSomething(state: Boolean) {  
  4.     val local = "local"  
  5.     println(member)     println(local)   }} 

这是因为我们可以轻松折叠或展开它们,如下所示。

7种过时的代码风格

> Easily expand or collapse code scope

要了解有关大括号的更多信息,请查看以下内容。

6. 对所有缩进使用制表符

规则:对所有缩进使用制表符,而不要使用空格

过时的原因:

这减少了所需的键入次数。 例如 下面显示了使用空格时,必须多次键入

7种过时的代码风格

> The old text editor, one need to type every space

现在:

使用IDE,它将为我们自动缩进适当数量的空格。 拥有空格还将确保所有代码在整个用户环境中看起来都一致。

7种过时的代码风格

> The modern IDE, till perform auto-indentation of spaces

7. 使用分号结束代码声明

规则:在结束代码语句时,必须使用分号。

过时的原因:

这是必需的,因为从前的编程语言(包括C和C ++,Java等)使解析器识别它已经结束。 部分原因是因为我们有80列,因此当需要为一条语句编写更多代码时,我们可以为一条语句编写多行代码。

现在:

使用新的现代语言(例如Kotlin),不再需要编写长语句(例如,我们可以将变量命名为较短,缩进的缩进形式)。

即使我们需要编写更长的语句,我们也不再受限于8列(尽管这不是一个好习惯)。 此外,这几天我们的显示器更长longer

[[342261]]

> Photo by Fotis Fotopoulos on Unsplash

因此,如果一种语言不允许使用分号,那就去吧!

要进一步详细说明项目4–7,您可以阅读以下内容。

通过改变对上述7种编码样式的信念,我对代码进行了如下更改:

7种过时的代码风格

世界在不断变化。 过去的要求可能不再适用。 借助技术和工具,我们应该始终重新评估我们曾经拥有的规则,并继续前进。

感觉这么年轻。 看看编码行业是如何变化的!

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2020-09-01 07:38:29

编码开发代码

2024-11-12 12:52:39

Python代码函数

2023-07-25 17:54:42

2020-01-06 10:01:12

JavaScript浏览器HTML

2013-06-06 10:10:59

项目项目代码代码风格

2017-07-10 14:58:23

JavaScript代码风格写作准则

2023-09-06 11:35:11

2017-12-05 15:30:12

2024-04-02 15:04:44

开发人工智能代码

2021-05-06 11:04:55

GooglePython代码

2024-10-08 05:00:00

PEP 8编码Python

2023-09-11 08:00:00

代码审查开发

2009-02-01 14:34:26

PythonUnix管道风格

2009-06-26 10:54:24

JSF技术

2010-09-10 13:40:09

DIV背景

2015-03-10 10:29:26

微软Windows 7Azure云服务

2024-03-05 13:14:35

安全管理CISO

2023-12-01 07:24:40

软件架构

2010-04-01 11:32:33

Oracle repo

2020-06-02 08:54:47

编程语言C语言程序员
点赞
收藏

51CTO技术栈公众号