V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jianghu52
V2EX  ›  程序员

强制缩进对于程序员来说是好事还是坏事?

  •  
  •   jianghu52 · 2013-09-25 11:16:55 +08:00 · 5602 次点击
    这是一个创建于 4070 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚看了一个帖子,有人问一个没有了缩进的python文件,怎么能还原代码逻辑。我想了半天,真觉得没办法。
    有人说强制缩进是为了统一代码风格。就我个人来说,我觉得这个倒不是最主要的原因。我认为的强制缩进的最主要的好处是,让人不敢写那么长的函数了。
    因为一旦长了之后,虽然有缩进,你要不停的上下翻页来确定这行代码到底归属于哪一层逻辑。虽然现在不少编辑器提供了缩进线,但是有时候嵌套多了,还是会比较累。另外,这样就潜意识的让你多分解逻辑,做成松耦合的函数。
    强制缩进我觉得最不舒服的地方在于,对于协作团队来说,尤其是有各种编辑器的团队来说,简直就是灾难。我的团队里面我偏爱st,有人喜欢用editplus,还有人用emeditor,美工用notepad++,当然还有人用eclipse。虽然大家都把tab 设置成了4个空格,但是经常有因为输入法的问题,导致默认的4个空格不正常的问题。
    34 条回复    1970-01-01 08:00:00 +08:00
    y0
        1
    y0  
       2013-09-25 11:21:27 +08:00
    因为输入法的问题…… 你说的是全角空格之类的吗?
    davepkxxx
        2
    davepkxxx  
       2013-09-25 11:23:20 +08:00
    不喜欢,但是无所谓,因为我不会用python写大的项目,也不会尝试和其他人一起写。
    jybox
        3
    jybox  
       2013-09-25 11:25:14 +08:00
    和花括号缩进没多大区别,Python 文件 没了缩进就好像 C 文件没了花括号。
    全角空格什么的,IDE 或编辑器是会有提示的吧。
    DaniloSam
        4
    DaniloSam  
       2013-09-25 12:08:42 +08:00
    关输入法什么事?

    程序员还用中文字符??????????
    zhujinliang
        5
    zhujinliang  
       2013-09-25 12:11:06 +08:00   ❤️ 1
    个人很反感依赖缩进,代码逻辑这么重要的事用一个透明的东西来掌控,太没安全感了。

    对于python代码丢失缩进一事,我想说的是:报应
    chloerei
        6
    chloerei  
       2013-09-25 12:18:04 +08:00
    我既用 Ruby 又用 CoffeeScript,强制缩进不是很大的问题。如果团队成员不能都做到对自己代码质量高要求,那么就成问题了。
    yakczh
        7
    yakczh  
       2013-09-25 12:28:43 +08:00
    所以象网站这种需要短平快,快速成型,快速更新的东西不适合用python来搞,不然大部分时间用在调整缩进上,python适合搞一些跑在后台,要求精益求精的这种东西
    funagi
        8
    funagi  
       2013-09-25 12:33:47 +08:00
    > 有人问一个没有了缩进的python文件,怎么能还原代码逻辑。
    这已经不算是一个有效Python代码文件了,因为原本正确的代码内容已经被破坏了,你要明白,缩进是Python语言的一部分,而不只是一种代码风格。

    > 有人说强制缩进是为了统一代码风格。
    同上

    > 但是经常有因为输入法的问题,导致默认的4个空格不正常的问题。
    我本来以为你是指你输入了非期望的数据,既然是非期望的数据那就不能归罪空格。
    但后来想想,是不是指编辑器没有使用等宽字体?
    至于st,我记得处理宽字符显示会出问题。

    P.S.回过头重新看一遍,难道楼主只有第一句话是指Python,下面说的那些还包括其它语言?
    9hills
        9
    9hills  
       2013-09-25 12:40:41 +08:00   ❤️ 1
    >有人问一个没有了缩进的python文件,怎么能还原代码逻辑

    这就好比c里面删除所有大括号还让还原代码逻辑一样
    FrankFang128
        10
    FrankFang128  
       2013-09-25 12:47:04 +08:00
    缩进的空格是四个四个敲出来吗?太麻烦了。我都是Tab=4个空格用的。
    raincious
        11
    raincious  
       2013-09-25 12:51:12 +08:00
    @davepkxxx 替可怜的空格键表示同意……
    lisztli
        12
    lisztli  
       2013-09-25 12:54:05 +08:00
    @yakczh 同意,php是世界上最好的语言。
    mengzhuo
        13
    mengzhuo  
       2013-09-25 13:15:54 +08:00
    @lisztli 本来不支持OOP的,5以后才支持,引入函数根本就不明确,PHP怎么可能称得上最好
    yakczh
        14
    yakczh  
       2013-09-25 13:19:57 +08:00
    @lisztli 严重不同意 这种说法跟天朝是世界上最好的国家一样用来yy的,我的原话是快速开发的网站不适合python来,python适合后台精益求精的一些东西,如果yum,emerge这类工具 根本没提及php
    yuelang85
        15
    yuelang85  
       2013-09-25 13:22:09 +08:00
    @raincious 难道说,你的锁进是敲空格敲出来的????


    楼主缺钱了,嗯。
    raincious
        16
    raincious  
       2013-09-25 13:26:55 +08:00
    @yuelang85 嗯。。。首先我很少写Python风格的代码嗯。。。其次,我用Tab的嗯。。

    但是呢,据说推荐还是会用空格的。只是有些编辑器会自动将Tab转换成空格嗯。
    lisztli
        17
    lisztli  
       2013-09-25 13:42:31 +08:00
    @mengzhuo
    @yakczh

    我主业是用python的。
    Mutoo
        18
    Mutoo  
       2013-09-25 13:50:07 +08:00
    妹子学python的时候,书上代码分页后那行的缩近老是打错
    windylcx
        19
    windylcx  
       2013-09-25 13:59:04 +08:00
    好事,其实统一配置一下不会花多少时间,但统一风格明显来带巨大好处.
    Keyes
        20
    Keyes  
       2013-09-25 14:09:53 +08:00
    @windylcx 非常赞同
    yuelang85
        21
    yuelang85  
       2013-09-25 14:15:00 +08:00
    @raincious 这都是配置出来的
    tntC4stl3
        22
    tntC4stl3  
       2013-09-25 14:42:29 +08:00
    @Mutoo 我觉得这个跟书印刷排版也有关系,尤其是《Python 核心编程》分页处的代码,基本都要自己考虑下。
    min
        23
    min  
       2013-09-25 15:53:49 +08:00   ❤️ 1
    简单地把事物归到好或者坏上面去毫无意义

    这只是很多选择中的一种而已
    levn
        24
    levn  
       2013-09-25 16:33:16 +08:00
    不是copy/paste不方便吗?
    Golevka
        25
    Golevka  
       2013-09-25 20:11:47 +08:00   ❤️ 1
    连词法都没有形式化定义的语言也只能呵呵了. 顺便我们吐槽依赖缩进的语法, 并不表示我们平时写代码时不缩进.
    SoloCompany
        26
    SoloCompany  
       2013-09-25 20:39:15 +08:00
    给代码签入加一个规则,不允许使用字符 0x9,tab不一致的问题就解决了
    至于每个代码签入者怎么解决编辑器的问题,作为码农连这个都解决不了的话可以直接辞职了
    sumanx
        27
    sumanx  
       2013-09-25 20:42:49 +08:00
    和这个一起看,效果不错:http://www.v2ex.com/t/83482
    NemoAlex
        28
    NemoAlex  
       2013-09-25 21:16:18 +08:00 via iPhone
    这个帖子也太搞笑了
    各种亮点
    BOYPT
        29
    BOYPT  
       2013-09-25 23:02:11 +08:00
    "大部分时间用在调整缩进上"

    哈哈哈哈哈哈
    xingzhi
        30
    xingzhi  
       2013-09-26 00:59:28 +08:00
    可能专注于某种语言,就自然会去习惯或者遵守这个语言的相关规范了。

    我主业写 python,因此我会以 PEP8 的规范要求自己。。。

    缩进本身不能简单以好坏来分,但写出可读性高的代码,遵守语言的编码规范,这难道不是一种职业素养?
    vivianalive
        31
    vivianalive  
       2013-09-26 01:30:30 +08:00
    代码可读性实际上就是代码可维护性... 缩进又简单又好用.有什么好抱怨的啊.
    jamiesun
        32
    jamiesun  
       2013-09-26 08:08:58 +08:00
    快速网站开发,怎么快法,php,asp,jsp直接写,这样是快,不过是快而脏,如果用上php+框架,那就没有比python有多优势了。用过bottle,flask就知道python可以更快速开发了。

    用了这么多年,没觉得缩进是问题,反而括号的,每次正儿八经写代码之前都去调整下style。
    jianghu52
        33
    jianghu52  
    OP
       2013-09-26 08:37:09 +08:00
    关于输入法缩进问题,我又有欲望新开一个帖子了。不过先在这里跟大家解释一下。我的机器上所有的默认输入法都是英文的。如果需要输入中文,都是用快捷键切出来的。但是我的不少同事竟然默认的都是中文输入法。我实在不能理解一帮专业的程序猿默认输入法竟然是中文的。所以你明白的,当你打开某个文件,然后写准备在其中插入代码的时候,一个回车下去,表面上缩进是变的跟上面一样了,但是实际上由于语言的不同,缩进在不同的编辑器里面显示的样子是不一样的。因此造成了缩进不统一。
    xiaket
        34
    xiaket  
       2013-09-26 08:46:07 +08:00
    @raincious read pep8 twice, and then again

    话说这种话题丢进月经贴里吧, 看得烦了.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2528 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:30 · PVG 10:30 · LAX 18:30 · JFK 21:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.