سؤال

أنا أكتب فصلًا دراسيًا يحتوي على الكثير من الحروف والمحددات وكنت أتساءل عن رأي الناس فيما يلي:

الطريقة العادية هي الترميز كما يلي:

public function setChangeSort($changeSort)
{
    self::$changeSort = $changeSort;
}

public function getChangeSort()
{
    return self::$changeSort;
}

ما رأيك في القيام بما يلي:

public function setChangeSort($changeSort) { self::$changeSort = $changeSort; }
public function getChangeSort() { return self::$changeSort; }

ليس لدي أي مشكلة في القيام بذلك بالطريقة الأصلية، لأن هذه هي الطريقة التي ينبغي أن يتم بها الأمر.يبدو أنها تشغل مساحة كبيرة في وظائف الفصل الخاصة بي والتي تكون واضحة حقًا في ما يفعلونه.

شكرا لك مقدما.

هل كانت مفيدة؟

المحلول

ومن سطر واحد كتل الشرطية على ما يرام لو انهم متسقة، واضحة وبديهية، على الرغم من أنني كنت تشجيع المباعدة بين لهم بعناية حتى انها واضحة على الفور أنهم الوظائف بدلا من بعض سطر واحد من التعليمات البرمجية!

نصائح أخرى

سأختار الاختلاف "من سطر واحد".لكن فقط إذا كان كل ما يفعله هو تحديد القيمة والحصول عليها.إذا أضفت فحصًا بقيمة null أو أي تحقق آخر، أو القيام بأي شيء آخر غير الحصول على أو الإعداد، فسأختار الإصدار الأول والأطول لإبقاء الكود أكثر قابلية للقراءة.

وأنا عادة تهديد طرق من سطر واحد في نفس الطريق وطرق أخرى. أنا لا أمانع شفرة المصدر أن أكون N-خطوط لفترة أطول إذا كان ذلك يعني أنها أكثر قابلية للقراءة وللصيانة.

وأود أن suggesto أيضا إلى الخروج الوثيقة التالية http://framework.zend.com/manual/en/coding-standard. أتش تي أم أل IMHO هو أفضل PHP الترميز مرجعية معيارية متاحة حتى الآن.

وأعتقد حاصل السحرية / اضعي من PHP5 هي مفيدة حقا عند التعامل مع العديد من حاصل / اضعي.

HTTP: // الاب .php.net / دليل / EN / language.oop5.overloading.php # language.oop5.overloading.members

ومثال على ذلك.

<?php
class A {
  private $properties = array();

  public function __set($key, $value) {
    if (is_array($value)) {
      $this->$key = $value;
    } else {
      $this->properties[$key] = $value;
    }
  }

  public function __get($key) {
    if (array_key_exists($key, $this->properties)) {
      return $this->properties[$key];
    }

    return null;
  }
}
?> 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top