【问题标题】:Why is formatting necessary while coding and how to format [closed]为什么在编码时需要格式化以及如何格式化[关闭]
【发布时间】:2012-12-04 10:09:50
【问题描述】:

格式化代码的正确方法是什么?为什么这么有必要?为什么所有程序员都应该遵循相同的格式规则,基本上,规则是什么??

为什么程序员更喜欢写成

<html>
    <head>
        <title>Title</title>
    </head>

    <body>
        <!--body-->
    </body>
</html>

而不是

<html>
<head>
<title>Title</title>
</head>
<body>
<!--body-->
</body>
</html>

有人可以说得更清楚些吗?而且,关于 javascript 和 css 格式有什么特别之处吗?格式化的优缺点是什么?

【问题讨论】:

  • 让代码更清晰
  • 这并不能回答我所有的问题..
  • 它清楚地显示您的代码,如果其他人将在您的项目上工作,以便该人可以轻松理解您的代码:-) 如果以适当的方式进行标记.......
  • @BoltClock 他是对的,你看不到上面 8 行示例的区别,但是具有适当格式和代码结构的巨大代码使调试代码变得容易。
  • 我想每个人对“清晰”的定义都不一样。

标签: php html css formatting


【解决方案1】:

格式化没有正确的方式。

换行和缩进通常只是为了人类可读性(Python等某些语言除外),而且没有一个真正的标准是每个人都同意的。

【讨论】:

    【解决方案2】:

    它是关于能够回顾您的代码并轻松查看哪些部分是包含在其他标记中的代码块。通常你会在一个页面中有很多 div,许多 div 包含在其他 div 中。简单的缩进可以帮助确定哪个与您当前正在查看的开始 div 匹配。

    <div id='start'>
    <div id='insideStart'>
    <div id='insideInsideStart'>
    </div>
    </div>
    </div>
    

    看起来没有那么清晰

    <div id='start'>
       <div id='insideStart'>
          <div id='insideInsideStart'>
          </div>
       </div>
    </div>
    

    【讨论】:

      【解决方案3】:

      这是一个非常适合在诸如

      之类的书籍中阅读的问题
      • 清洁码
      • 务实的程序员

      但要回答你的问题。

      首先:“为什么程序员喜欢写成...” 这仅仅是为了使代码更清晰,并且更符合结构。 作为人类和编码人员,让我更清楚地了解您的结构。

      遵守一套命名约定和结构标准有助于新开发人员更快地进入您的代码,并且更不容易出现拼写错误和常见错误等错误。

      您要问的另一个问题是:“格式化的优点和缺点是什么”

      优势 - 以上所有

      缺点 - 这可能会影响性能,但我认为不会。

      你问的最后一个问题是“为什么所有程序员都应该遵循相同的格式化规则,基本上,规则是什么?”

      只要您遵循团队约定,就应该如何编码没有明确的规则。 这让开发人员更容易在您完成清理烂摊子的肮脏工作或试图弄清楚您在执行现在开始变旧或出现故障的功能时的思维方式。

      但是,如果您愿意,在命名变量和函数等时有一些“常用方法”,这些在here 中有详细解释。 这些是针对您要求的 javascript 的,但其中大部分也可以用于其他语言。

      我希望这能回答你的问题。

      但正如@BoltClock 所说,这就是你应该追求的目标,让你的代码清晰。这是所有程序员的第一要务,或者应该是。

      【讨论】:

        【解决方案4】:

        对我来说最重要的事情(在这个例子中是 HTML,但它也适用于编程)是告诉范围。

        您的 HTML 示例非常简单,但通常嵌套结构要多得多,这会让人很困惑。例如:

        <html>
        <head></head>
        <body>
        <div id="container">
        <div class="shadow">
        <div class="inner">
        <h1>Hello World</h1>
        </div>
        <div id="handle">
        <span id="foo">Bar</span>
        </div>
        </div>
        <div id="morefoo">
        <h3>Hi</h3>
        </div>
        </div>
        </body>
        </html>
        

        如果我告诉你添加另一个 div 到具有类 shadow 的 div,你可能需要做一些 &lt;div&gt; &lt;/div&gt; 计数。但是使用下面格式化的标记,这很容易。

        <html>
            <head></head>
            <body>
                <div id="container">
                    <div class="shadow">
                        <div class="inner">
                            <h1>Hello World</h1>
                        </div>
                        <div id="handle">
                            <span id="foo">Bar</span>
                        </div>
                    </div>
                    <div id="morefoo">
                        <h3>Hi</h3>
                    </div>
                </div>
            </body>
        </html>
        

        【讨论】:

          【解决方案5】:

          写下 HTML 标记或 CSS - 这与编程无关。 无论如何,编写 clearclean HTML 标记的标准是将任何子元素缩进一个tab,因此代码看起来像您的第一个示例。这样代码的结构和可读性就很好了。

          在写下 CSS 代码时,没有标准的 AFAIK,但我看到了三种格式化 CSS 代码的样式:

          1.

          body { ... }
          div#container { ... }
          div#container #left-column { ... }
          

          2.

          body {
              ...
          }
          div#container {
              ...
          }
          div#container #left-column {
              ...
          }
          

          3.

          body {
              ...
          }
          div#container {
              ...
          }
              div#container #left-column {
                  ...
              }
          

          第二个和第三个示例之间的区别在于,在第三个示例中,通过将div#container #left-column 缩进一个标签,您正在炫耀此规则适用于父级div#container 内的元素。第一个示例使 CSS 代码更紧凑,但可读性较差,并且在一行中有很多规则时不是很好的选择(行可能会很长)。

          在此处编写 JS 代码时,格式化规则应与编写 PHP 代码时相同(或至少非常相似)...

          【讨论】:

            【解决方案6】:

            在大多数情况下,格式化是为了程序员的利益,而不是为了计算机。

            就计算机而言,缩进是完全不相关的。这可以在“代码最小化器”的操作中看到,它采用一个程序并删除所有空白以将其压缩并使其成为更小的下载。同样,还有“代码整理”工具,它们的作用正好相反——采用格式错误的程序并设置缩进,使其更具可读性。

            所以缩进代码的真正原因是让它可读。这是为了你的利益。

            您可能认为您的代码没有缩进就完全可读,但我可以向您保证,事实并非如此。如果您认为是这样,请尝试在六个月未阅读某些旧代码后重新使用它。但这不仅仅是为了你自己。如果您需要与其他人共享代码(例如在这样的网站上),其他人会发现您的代码更易于阅读,因此如果他们可以轻松阅读您的代码,他们会更容易为您提供帮助。

             * 注意:所有这一切的例外是少数语言,如 Python,其中缩进是代码的重要组成部分,并告诉程序哪些行是哪个结构的一部分。在这些语言中,缩进是语言的一部分,因此对于程序和程序员来说都是如此。

            【讨论】:

              【解决方案7】:

              你应该明白,对于编译器来说,这样的代码在性能上完全没有区别:

              <html>
                  <head>
                      <title>Title</title>
                  </head>
              
                  <body>
                      <!--body-->
                  </body>
              </html>
              

              还有这个

              <html>
              <head>
              <title>Title</title>
              </head>
              <body>
              <!--body-->
              </body>
              </html>
              

              甚至这个

              <html>    <head><title>Title</    title></head>
              <body><!--body--></body>                                  </html>
              

              它们都将以相同的方式编译和工作,具有完全相同的性能。 然而,代码格式化的主要目的是可读性。像这样将代码分块,让程序员更容易理解,从而让他更清楚地看到程序的逻辑。 对于您和在您之后使用代码的人来说,它更易于维护和理解。
              所有这一切都导致了更高效的开发(因为你在理解代码上浪费的时间更少,因为一切都是有条理的,导致更少的开发错误,更少的错误,从而让你花更多的时间在开发上,使开发更容易和更快)。

              【讨论】:

                【解决方案8】:

                一般的经验法则是使用 4 个空格或一个制表符缩进代码。许多开源项目在其编码标准中遵守 4 个空格规则,仅举几例:

                在您的 HTML 示例中,它的用处不大,因为结束标记明确说明了它们的元素类型,但对于查找嵌套 div 和其他元素的开始/结束标记仍然很有用。

                在其他使用大括号语法的语言中(以及不使用大括号语法的语言,例如 PLSQL),缩进代码非常有帮助。示例:

                for(...)
                {
                if(..)
                {
                while(..)
                {
                
                }
                }
                else
                {
                
                }
                }
                

                与以下相比,上述内容难以阅读:

                for(...)
                {
                    if(..)
                    {
                        while(..)
                        {
                
                        }
                    }
                    else
                    {
                
                    }
                }
                

                通过上面的缩进,可以轻松快速地读取每个块的执行流程和开始/结束大括号。

                【讨论】:

                • 4 个空格并不是一个经验法则。也有缩进 2 或 3 甚至 8 个空格的代码
                • @billyswong 我不同意这一点,4 个空格是几乎所有开源项目在编码标准中所要求的。
                【解决方案9】:

                据我所知,这三个规则支配着代码缩进的思想。

                • 让您阅读清楚
                • 知道代码块的开始和结束
                • 为了让以后会处理您的代码的人更好地保留它

                如何缩进代码? - 我会以此为基础,从括号或函数的开始到结束,或者基于循环、数组的任务......

                【讨论】:

                  【解决方案10】:

                  编码中的一个大问题是代码维护。一位开发人员总是认为他的代码将永远有效,是防弹的,永远不需要任何修改。这显然不是真的。因此,另一个开发人员肯定必须挖掘这段代码,如果原始编码人员没有格式化和记录他的代码,这通常很困难。 格式化关乎可读性和可重用性。

                  您可以遵循通常被接受的准则,例如那里为 javascript 总结的: http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml?showone=Code_formatting#Code_formatting

                  【讨论】:

                    【解决方案11】:

                    每种语言都有不同的编码标准,或多或少流行。

                    为什么要使用编码标准:让您/您的团队/其他人更容易阅读,在项目中给人一种“统一”的感觉。想想如果没有大型项目中的编码标准,你会看到这样的代码:

                    if (condition) return FALSE;
                    else {
                    $x=1;
                    } else $x=3;if (condition2) return true;
                    

                    PHP 编码标准示例:

                    【讨论】:

                      【解决方案12】:

                      确保您的网站正常运行的一个好方法是编写您的 HTML。这将使您能够专注于内容和功能,并在开始使一切变得漂亮之前对其进行测试。

                      更多信息请阅读这两篇文章:-

                      1. The Significance of Proper Markup in Web Design

                      2. What Beautiful HTML Code Looks Like

                      【讨论】:

                      • 打开链接并阅读文章,你就会知道它是题外话还是题外话@billyswong
                      • 你查看文章了吗@billyswong
                      • 链接可能是相关的,但你写的段落不相关。问题不在于正确编写 HTML,而在于 代码格式(不是网页格式)
                      • @billyswong 如果我们在谈论代码,那很明显,所以 html 是网站将从 HTML 标记开始的代码的开头,所以首先我们应该正确标记,而不是我们应该采取进一步的步骤正确做什么你现在说........比利
                      • OP 询问为什么缩进,为什么用空行分隔部分等。如何“正确”标记不是这里的问题。您的回答和您链接的文章没有讨论这个问题,或者讨论得不够
                      猜你喜欢
                      • 1970-01-01
                      • 2022-01-26
                      • 2014-09-24
                      • 2013-05-23
                      • 2010-12-13
                      • 1970-01-01
                      • 1970-01-01
                      • 2023-03-22
                      • 1970-01-01
                      相关资源
                      最近更新 更多