V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jianghu52
V2EX  ›  程序员

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

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

    程序员还用中文字符??????????
    zhujinliang
        5
    zhujinliang  
       2013 年 9 月 25 日   ❤️ 1
    个人很反感依赖缩进,代码逻辑这么重要的事用一个透明的东西来掌控,太没安全感了。

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

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

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

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

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


    楼主缺钱了,嗯。
    raincious
        16
    raincious  
       2013 年 9 月 25 日
    @yuelang85 嗯。。。首先我很少写Python风格的代码嗯。。。其次,我用Tab的嗯。。

    但是呢,据说推荐还是会用空格的。只是有些编辑器会自动将Tab转换成空格嗯。
    lisztli
        17
    lisztli  
       2013 年 9 月 25 日
    @mengzhuo
    @yakczh

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

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

    哈哈哈哈哈哈
    xingzhi
        30
    xingzhi  
       2013 年 9 月 26 日
    可能专注于某种语言,就自然会去习惯或者遵守这个语言的相关规范了。

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

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

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

    话说这种话题丢进月经贴里吧, 看得烦了.
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2866 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 13:53 · PVG 21:53 · LAX 05:53 · JFK 08:53
    ♥ Do have faith in what you're doing.