【问题标题】:Is this really some coding convention to align '=' every where?这真的是一些编码约定来对齐“=”每个地方吗?
【发布时间】:2012-11-07 08:14:37
【问题描述】:

在我们公司,我们正在努力遵循编码约定,我的一些前辈告诉我一些编码约定,其中大部分是我知道的,它们很好,但其中之一是相等对齐,整体对齐相等代码看起来有点奇怪。我知道在我们专门在配置值中进行一组赋值时,我们通常会进行相等对齐。喜欢:

$params = array(
                        'dbdriver'  => $dns['scheme'],
                        'hostname'  => (isset($dns['host'])) ? rawurldecode($dns['host']) : '',
                        'username'  => (isset($dns['user'])) ? rawurldecode($dns['user']) : '',
                        'password'  => (isset($dns['pass'])) ? rawurldecode($dns['pass']) : '',
                        'database'  => (isset($dns['path'])) ? rawurldecode(substr($dns['path'], 1)) : ''
                    );

或喜欢:

var $next_link          = '>';
var $prev_link          = '<';
var $last_link          = 'Last ›';
var $uri_segment        = 3;
var $full_tag_open      = '';
var $full_tag_close     = '';
var $first_tag_open     = '';
var $first_tag_close    = ' ';
var $last_tag_open      = ' ';
var $last_tag_close     = '';
var $first_url          = ''; // Alternative URL for the First Page.
var $cur_tag_open       = '&nbsp;<strong>';
var $cur_tag_close      = '</strong>';
var $next_tag_open      = '&nbsp;';
var $next_tag_close     = '&nbsp;';
var $prev_tag_open      = '&nbsp;';
var $prev_tag_close     = '';
var $num_tag_open       = '&nbsp;';
var $num_tag_close      = '';
var $page_query_string  = FALSE;
var $query_string_segment = 'per_page';
var $display_pages      = TRUE;
var $anchor_class       = '';

但是当我们在普通代码中加载库、实例化值、调用方法并在变量中获取响应时,仍然应该有相等对齐吗? 就像有 ec2class 的构造函数:

public function __construct(array $options = array())
{
    $this->api_version = '2012-07-20';
    $this->hostname = self::DEFAULT_URL;
    $this->auth_class = 'AuthV2Query';

    return parent::__construct($options);
}

或这样的地方:

        $this->CI->load->library('awslib');

    $s3          = new AmazonS3();
    $bucket_name = ($is_private) ? 'private_s3_bucket' : 'public_s3_bucket';
    $bucket      = $this->CI->config->item($bucket_name);
    $options     = array(
        'fileUpload' => $file_path,
        'acl'        => AmazonS3::ACL_PUBLIC
    );

    try {
        $response = $s3->create_object($bucket, $file_name, $options);
    } catch (Exception $e) {
        echo "<pre>";
        exit($e);
        echo '</pre>';
    }

所以在最后两个例子中,平等对齐真的很重要吗?有没有这样的标准?因为我认为当它混合了实例化库、加载其他东西、有条件地分配值时,可能是相等对齐并不重要,因为我认为它对我来说更具可读性,请告诉是否有一些标准然后请在许多框架和库等中提供一些参考。每当这些语句中存在混合和赋值时,我从未将相等对齐视为这样的地方。所以请告诉。

【问题讨论】:

  • 我不太明白你想要什么。以这种方式编写仍然可以生成有效的代码,如果它是您的公司希望您遵循的编码约定,那么它是否是许多框架和库中使用的约定并不重要。我自己并没有发现它更具可读性,但我知道有人用相等对齐方式编写他的代码,因为他发现它更具可读性,但我们公司没有强制执行任何一种方式的约定。
  • 我实际上只是想知道 = 符号的这种对齐方式确实对可读性有任何影响,当它用于在 config.文件,但在正常编码中对齐是否有用,其中也使用混合操作,如实例化对象后的赋值等。和条件等?
  • 我认为这取决于人,因为我说我认识这样做的人,因为他们说这对他们来说更具可读性,但我看不到它。所以我像第一个例子一样写我的,但我和第二个例子一样写的人一起工作。您可以通过编码标准强制执行任何一种方式,但我认为对于更易读的内容没有明确的答案。

标签: coding-style standards


【解决方案1】:

我认为以有意义的方式对齐代码很重要,这样您就可以识别模式。 但是,您似乎要花费大量时间重新排列代码,这对可读性的提升是最低限度的。

在这种情况下,如果是我的公司,我会尝试改变惯例,或者至少让它更灵活一点。尤其是因为它是本地的。我找不到任何将相等运算符对齐作为最佳实践的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2019-03-15
    • 2012-02-21
    • 2016-04-09
    相关资源
    最近更新 更多