为什么有这么多代码是这样的? - 页 3 1234 新评论 GreenMoney 2013.08.28 20:35 #21 RaptorUK:但这并不意味着,如果他们在语法或逻辑方面寻求帮助,那么代码就不会"......在语法和逻辑上是正确的;"?是的,你是对的。但在讨论更多(或更少)有效的编码风格/做法的背景下,最重要 的方面是代码在语法和逻辑上是正确的,无论使用何种编码风格。我想另一种说法是,风格必须让位于句法和逻辑正确的代码--主要问题不是代码是否好看,是否容易阅读,而是它在执行编写的任务时在句法和逻辑上是否正确。) 我也同意关于//注释的说法。一个人永远不会有太多的//注释,既可以让原始程序员对代码的各个部分的细节有新的认识,又可以帮助/帮助其他人在完成/实施后对代码的理解。 Simon Gniadkowski 2013.08.28 20:49 #22 Thirteen: 是的,你是对的。 但在讨论更多(或更少)有效的编码风格/做法的背景下,最重要的方面是代码在语法和逻辑上是正确的,无论使用何种编码风格。 我想另一种说法是,风格必须让位于句法和逻辑上正确的代码--主要问题不是代码是否好看,是否容易阅读,而是,它的句法和逻辑上是否正确,以执行它所写的任务。) 啊,好吧,我明白你的意思了 ......漂亮的代码如果不能工作就没有用 ......但也许它更容易修复? GreenMoney 2013.08.28 21:12 #23 RaptorUK: 啊,好吧,我明白你的意思了......漂亮的代码如果不工作就没有用......但也许它更容易修复? 是的。换句话说,编码风格/实践和演示,主要是程序员的选择,是达到目的的手段(目的是语法和逻辑上正确的代码)。 当代码能够被程序员(以及随后没有写代码的其他人)轻松阅读和理解时,检测和纠正句法和/或逻辑错误就容易得多。 Ian Venner 2013.08.29 06:44 #24 我认为大多数编码方式允许编码者想要或需要的可读性,当我的代码完成并工作时,我会关闭它,但如果我需要分享它或讨论它,很容易用几行空格重新打开。我认为编码格式应该支持轻松识别缺失的大括号,以及在有多个分支的复杂if else树时轻松识别if else对。我从未采用过K&R风格,所以我想看看K&R风格的编码者 是如何做的。 ydrol 2013.08.29 07:15 #25 SDC:当我的代码完成并开始工作时,我会关闭它,但如果我需要分享它或讨论它,很容易用几行空格把它重新打开。为什么要把它关闭呢?我真的不明白把代码压扁的意义何在。如果你需要打开它来分享/讨论,这意味着什么? SDC: 我认为一个编码格式应该支持轻松识别缺失的括号,以及在有多个分支的复杂的if else树时轻松识别if else对。我从未采用过K&R风格,所以我想看看K&R风格的编码者是如何做的。对于K&R风格,底部括号与条件匹配一致。我个人使用 1.一致的缩进 2.2.对于单句子,要么 用大括号和缩进,要么在条件后面不加括号,即。 if (flag) { i++; } OR if (flag) i++; 3.使用一个体面的程序员编辑器来匹配大括号。 匹配大括号是没有问题的--大部分Linux内核 都是用这种风格写的,而且它是Java的标准。虽然我可以看到Allman风格的吸引力,因为在K&R风格下,我经常会在条件后插入一个额外的空行,以消除代码的混乱。嗯,我可能会被转换 :) Ian Venner 2013.08.29 15:18 #26 ydrol: 为什么要把它封闭起来?我真的不明白压扁的代码有什么意义。如果你需要打开它来分享/讨论,这意味着什么? 对于K&R风格,底部支架与条件匹配一致。我个人使用 1.一致的缩进 2.2.对于单句子,要么 用大括号和缩进,要么在条件后面不加括号,即。 3.使用一个体面的程序员编辑器来匹配大括号。 匹配大括号是没有问题的--大部分Linux内核都是用这种风格写的,而且它是Java的标准。虽然我可以看到Allman风格的吸引力,因为在K&R风格下,我经常会在条件后插入一个额外的空行,以消除代码的混乱。嗯,我可能会被转换 :) 我只是把它关起来,这样它占用的屏幕空间就少了。我喜欢在屏幕上同时看到尽可能多的内容。我不需要大括号匹配器,我的格式是,如果我把光标放在大括号后面,用箭头键垂直向上运行,当它碰到另一个大括号时,那就是它的配对。 在这段代码中,很容易看到第三个else与第一个if配对,第二个else与第二个if配对,第一个else与第三个if配对,因为每个else后面的括号都垂直地排在其对应的if括号后面。同样,我们也很容易看出哪些if没有else,因为每个if的括号都与else后面的相应封闭括号垂直排列。我并不是说其他人都应该这样格式化代码,只是因为我碰巧喜欢它,但对我来说,它是紧凑和合乎逻辑的。 if(downtrend) {if(High[i] < LineDownBuffer[i+1]) {if(DeMarkerHighBuffer[i] > LineDownBuffer[i+1]) {LineDownBuffer[i] = LineDownBuffer[i+1]; }else {if(DeMarkerHighBuffer[i] < LineDownBuffer[i+1]) {LineDownBuffer[i] = DeMarkerHighBuffer[i]; }}}else {if(High[i] > LineDownBuffer[i+1]) {LineDownBuffer[i] = LineDownBuffer[i+1]; LineUpBuffer[i] = DeMarkerLowBuffer[i]; downtrend = false; uptrend = true; }}}else Ubzen 2013.08.29 16:18 #27 SDC: 我认为大多数的编码风格允许编码者想要或需要的可读性,当我的代码完成并工作时,我会关闭它,但如果我需要分享它或讨论它,很容易用几行空格打开它。我认为编码格式应该支持轻松识别缺失的大括号,以及在有多个分支的复杂if else树时 轻松识别if else对。我从未采用过K&R风格,所以我想看看K&R风格的编码者是如何做的。我不能为每个使用k&r的编码者回答这个问题。老实说,我越看你的格式,我就越喜欢它。如果我采用Allman的风格,我肯定能看到自己使用你的修改版。大括号互相排列,摆脱了开括号和闭括号占用整行的情况。你可以把光标放在if后面的i上,找到丢失的大括号,不用担心制表符/缩进的大小,紧凑模式{在屏幕上看到你的大部分代码}。所以是的,这很酷,只是乍一看,因为我不习惯,它似乎很混乱。这就是问题的核心所在。 在我看来,很多美国编码员都采用[KnR & Allman],而Whitesmiths 风格似乎在欧洲人中很流行。Whitesmith也是Mt4的默认风格。现在,这些风格都没有错,只是当我在帮助别人时,我必须不断提醒自己忽略我的K&R风格,多想想Whitesmith。那就是使用代码格式化器。 为什么有人要写 "复杂的if else树",我不明白。当有人在一个复杂的if_nest中留下所有的留白和格式化,看起来就像他们试图在页面上设计一个蛇形|意大利面条|之字形。第一个if从第1行开始,到第300行结束,其中大约有150或50%的行被大括号挡住了。与其使用 "复杂的if else树",为什么不直接创建一个函数。然后让第1行实际上以if( false ){ return; }结束。 Ian Venner 2013.08.29 16:41 #28 谢谢ubzen,我很高兴有人喜欢我的格式,笑。我经常使用if else,可能是因为当我第一次开始写代码时,有人告诉我if else能使代码更快,所以我养成了这样的习惯。 Simon Gniadkowski 2013.08.29 17:24 #29 SDC: 谢谢ubzen,我很高兴有人喜欢我的格式,笑。我经常使用if else,可能是因为当我第一次开始写代码时,有人告诉我if else能使代码更快,所以我养成了这样的习惯。 这并不是针对你 像这样的时候,如果有一个正式的强制标准,每个人都按照这个标准工作就好了......那么我们都会做同样的事情,我们都会喜欢你的代码。 在你问之前,不,我将坚持我的Whitesmiths风格 ... ...至少我现在知道该怎么称呼它,谢谢ubzen Ubzen 2013.08.29 18:00 #30 不客气,SDC 和RaptorUK。编码是一个比赢利更容易讨论的话题_EA.:) 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
但这并不意味着,如果他们在语法或逻辑方面寻求帮助,那么代码就不会"......在语法和逻辑上是正确的;"?
是的,你是对的。但在讨论更多(或更少)有效的编码风格/做法的背景下,最重要 的方面是代码在语法和逻辑上是正确的,无论使用何种编码风格。我想另一种说法是,风格必须让位于句法和逻辑正确的代码--主要问题不是代码是否好看,是否容易阅读,而是它在执行编写的任务时在句法和逻辑上是否正确。)
我也同意关于//注释的说法。一个人永远不会有太多的//注释,既可以让原始程序员对代码的各个部分的细节有新的认识,又可以帮助/帮助其他人在完成/实施后对代码的理解。
是的,你是对的。 但在讨论更多(或更少)有效的编码风格/做法的背景下,最重要的方面是代码在语法和逻辑上是正确的,无论使用何种编码风格。 我想另一种说法是,风格必须让位于句法和逻辑上正确的代码--主要问题不是代码是否好看,是否容易阅读,而是,它的句法和逻辑上是否正确,以执行它所写的任务。)
啊,好吧,我明白你的意思了......漂亮的代码如果不工作就没有用......但也许它更容易修复?
我认为大多数编码方式允许编码者想要或需要的可读性,当我的代码完成并工作时,我会关闭它,但如果我需要分享它或讨论它,很容易用几行空格重新打开。我认为编码格式应该支持轻松识别缺失的大括号,以及在有多个分支的复杂if else树时轻松识别if else对。我从未采用过K&R风格,所以我想看看K&R风格的编码者 是如何做的。
当我的代码完成并开始工作时,我会关闭它,但如果我需要分享它或讨论它,很容易用几行空格把它重新打开。
为什么要把它关闭呢?我真的不明白把代码压扁的意义何在。如果你需要打开它来分享/讨论,这意味着什么?
我认为一个编码格式应该支持轻松识别缺失的括号,以及在有多个分支的复杂的if else树时轻松识别if else对。我从未采用过K&R风格,所以我想看看K&R风格的编码者是如何做的。
对于K&R风格,底部括号与条件匹配一致。我个人使用
1.一致的缩进
2.2.对于单句子,要么 用大括号和缩进,要么在条件后面不加括号,即。
3.使用一个体面的程序员编辑器来匹配大括号。
匹配大括号是没有问题的--大部分Linux内核 都是用这种风格写的,而且它是Java的标准。虽然我可以看到Allman风格的吸引力,因为在K&R风格下,我经常会在条件后插入一个额外的空行,以消除代码的混乱。嗯,我可能会被转换 :)
为什么要把它封闭起来?我真的不明白压扁的代码有什么意义。如果你需要打开它来分享/讨论,这意味着什么?
对于K&R风格,底部支架与条件匹配一致。我个人使用
1.一致的缩进
2.2.对于单句子,要么 用大括号和缩进,要么在条件后面不加括号,即。
3.使用一个体面的程序员编辑器来匹配大括号。
匹配大括号是没有问题的--大部分Linux内核都是用这种风格写的,而且它是Java的标准。虽然我可以看到Allman风格的吸引力,因为在K&R风格下,我经常会在条件后插入一个额外的空行,以消除代码的混乱。嗯,我可能会被转换 :)
我只是把它关起来,这样它占用的屏幕空间就少了。我喜欢在屏幕上同时看到尽可能多的内容。我不需要大括号匹配器,我的格式是,如果我把光标放在大括号后面,用箭头键垂直向上运行,当它碰到另一个大括号时,那就是它的配对。
在这段代码中,很容易看到第三个else与第一个if配对,第二个else与第二个if配对,第一个else与第三个if配对,因为每个else后面的括号都垂直地排在其对应的if括号后面。同样,我们也很容易看出哪些if没有else,因为每个if的括号都与else后面的相应封闭括号垂直排列。我并不是说其他人都应该这样格式化代码,只是因为我碰巧喜欢它,但对我来说,它是紧凑和合乎逻辑的。
我不能为每个使用k&r的编码者回答这个问题。老实说,我越看你的格式,我就越喜欢它。如果我采用Allman的风格,我肯定能看到自己使用你的修改版。大括号互相排列,摆脱了开括号和闭括号占用整行的情况。你可以把光标放在if后面的i上,找到丢失的大括号,不用担心制表符/缩进的大小,紧凑模式{在屏幕上看到你的大部分代码}。所以是的,这很酷,只是乍一看,因为我不习惯,它似乎很混乱。这就是问题的核心所在。
在我看来,很多美国编码员都采用[KnR & Allman],而Whitesmiths 风格似乎在欧洲人中很流行。Whitesmith也是Mt4的默认风格。现在,这些风格都没有错,只是当我在帮助别人时,我必须不断提醒自己忽略我的K&R风格,多想想Whitesmith。那就是使用代码格式化器。
为什么有人要写 "复杂的if else树",我不明白。当有人在一个复杂的if_nest中留下所有的留白和格式化,看起来就像他们试图在页面上设计一个蛇形|意大利面条|之字形。第一个if从第1行开始,到第300行结束,其中大约有150或50%的行被大括号挡住了。与其使用 "复杂的if else树",为什么不直接创建一个函数。然后让第1行实际上以if( false ){ return; }结束。
谢谢ubzen,我很高兴有人喜欢我的格式,笑。我经常使用if else,可能是因为当我第一次开始写代码时,有人告诉我if else能使代码更快,所以我养成了这样的习惯。
谢谢ubzen,我很高兴有人喜欢我的格式,笑。我经常使用if else,可能是因为当我第一次开始写代码时,有人告诉我if else能使代码更快,所以我养成了这样的习惯。
这并不是针对你
像这样的时候,如果有一个正式的强制标准,每个人都按照这个标准工作就好了......那么我们都会做同样的事情,我们都会喜欢你的代码。 在你问之前,不,我将坚持我的Whitesmiths风格 ... ...至少我现在知道该怎么称呼它,谢谢ubzen