• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jianghu52
V2EX  ›  程序员

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

  •  
  •   jianghu52 · Sep 25, 2013 · 6853 views
    This topic created in 4792 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
    y0
    Sep 25, 2013
    1
    因为输入法的问题…… 你说的是全角空格之类的吗?
    davepkxxx
    davepkxxx
    Sep 25, 2013
    2
    不喜欢,但是无所谓,因为我不会用python写大的项目,也不会尝试和其他人一起写。
    jybox
    jybox
    Sep 25, 2013
    3
    和花括号缩进没多大区别,Python 文件 没了缩进就好像 C 文件没了花括号。
    全角空格什么的,IDE 或编辑器是会有提示的吧。
    DaniloSam
    DaniloSam
    Sep 25, 2013
    4
    关输入法什么事?

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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