V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jianghu52
V2EX  ›  程序员

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

    话说这种话题丢进月经贴里吧, 看得烦了.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   967 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 104ms · UTC 21:18 · PVG 05:18 · LAX 14:18 · JFK 17:18
    ♥ Do have faith in what you're doing.