所谓的编程 style 真是个让人纠结的事情

2014-10-23 16:03:39 +08:00
 jox
就拿花括号来说吧,我至少已经折腾了2次关于花括号的style了。

一开始是这样:
if (exp) {

} else {

}

但是时间长了就发现问题了,有的时候这样就显得特别密,挨得太紧了

然后又这样:
if (exp)
{

}
else
{

}

额,时间长了现在又觉得,妈的,这样也不咋滴,有的时候花括号里只有一个语句的时候就显得很蛋疼,不用括号又不行,得保持编程风格的统一不是。

期间还这样过:
if (exp) exp1;

还这样过:
if(exp) exp1;

然后有段时间觉得python那样整挺好,但是时间长了发现也有这样那样的问题。于是虽然纠结,还是决定,妈的,既然怎样都不会满意,就这样吧,不管了。

于是就这样了:
if (exp)
{

}
真是纠结,其实写程序就是人生的写照啊,trade off。上帝保佑我不要哪天突然觉得不满意再次试图改变编程风格。
5883 次点击
所在节点    程序员
47 条回复
LMkillme
2014-10-23 17:53:54 +08:00
函数
- (void) func()
{

}



if (){


}else{

}



for (){

}



while(){

}
jox
2014-10-23 18:03:47 +08:00
@caiych python我就是觉得在试图解决可读性这个问题的时候又带来了新的问题,我觉得设立标准之后利用工具自动化是更好的解决方案,不过通过缩进来提升可读性效果不大,看别人的或者自己6个月前写的代码总是不容易的。嘛,又跑题了。
banbanchs
2014-10-23 18:05:44 +08:00
@jox 默认继续代码块,想跳出按退格就返回上一级缩进,现在我接触的编辑器/IDE都是这么干的,而已感觉上就跟其他括号标记的语言输入个'}'一样嘛
kaizixyz
2014-10-23 18:10:02 +08:00
同一个项目组

同一个IDE
同一个格式化插件
同一个格式化配置
然后设成每次保存文件之后自动格式化~

这样风格不一致也不行啦
然后合并代码就简单多啦~

然后其实我喜欢以下风格多一些

if (exp)
{

}
else
{

}
sanddudu
2014-10-23 18:13:37 +08:00
一开始那个其实叫 K&R 风格,我也一直在用,好处是代码比较紧凑

当然还是根据个人喜好定
jiyinyiyong
2014-10-23 18:37:15 +08:00
@jox 哦, 看错了.
你说的问题, 对我来说, 在多层缩进结束之后, 怎么回到正确的缩进, 确实有点不舒服
可能我没有依靠编辑器自动提供缩进的原因, 我觉得这个很自然应该是程序员做的
不过还好动态语言的代码通常依靠灵活性来缩减了长度, 我觉得问题还在能接受范围内
而且依赖缩进线的话问题也比较容易解决

深层的区别是写代码时, 依赖编辑器调整代码块, 还是程序员自己调整代码块
依赖编辑器就需要引入新的符号方便算法去识别, 这些符号就有可能形成干扰
手动维护代码块就可能出现深层嵌套结束不容易调整..
随我来说有个括号在哪跳来跳去搞不好还编辑错了, 是我不能忍的
xxstop
2014-10-23 18:37:18 +08:00
if () {
// 这种是最好看的style...
}
ffffwh
2014-10-23 18:39:33 +08:00
我一般大括号必加,哪怕只有一行
lincanbin
2014-10-23 18:57:28 +08:00
我现在是这样
```
if (exp)
{
/*
Code1
*/
}else {
/*
Code2
*/
}
```
Neear
2014-10-23 19:33:32 +08:00
这几天觉得horstmann style 不错
if(exp)
{ //this code
//code
}
但是支持此风格的编辑器不好找
Neear
2014-10-23 19:34:20 +08:00
if(exp)
{(3 space) //this code
(4 space)//code
}
librehat
2014-10-23 20:17:46 +08:00
我觉得KDE他们的Style不错,努力把自己的style和他们统一
zts1993
2014-10-23 20:28:12 +08:00
我比较喜欢 IDE自动排版的风格
levn
2014-10-23 20:43:31 +08:00
lisp是最好的语言
Hysteria
2014-10-23 20:52:15 +08:00
@dorentus 握爪,我一直这种风格。
lushl9301
2014-10-23 21:41:25 +08:00
平时自己写严格follow google的c style。

看linux的丧失tab indent到也是可以接受这个设定。。。lol
kemad
2014-10-23 22:04:17 +08:00
其实像Go一样,官方出个fmt工具就没人争了。
precisi0nux
2014-10-23 22:07:58 +08:00
Life is short, use Python.
leyle
2014-10-23 22:46:34 +08:00
int main()
{
int a = 1, b = 2, xxx = 3;
if(exp = jiong)
{
xxx = 4;
}
else
{
zzz;
}

return 0;
}
leyle
2014-10-23 22:47:24 +08:00
@leyle 自动把我的空格缩进给去掉了。我是四个空格缩进。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141021

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX