6 абстракций, 1 конструкция - PullRequest
1 голос
/ 03 июля 2011

Что вы предпочитаете и почему:

Типичный

if (this.sun.hidden === true &&
    this.moon.visible === false) {
    print "its daytime"
}

Возможна ненужная абстракция

if (isSunHidden() === true &&
    isMoonVisible() === false) {
    print "its daytime"
}

Удаление синтаксиса

if (isSunHidden() &&
    isMoonVisible()) {
    print "its daytime"
}

Мне нравится этот, так как он очень читабелен, но также требует жестко закодированной "дневной" строки

if (timeOfDay() === "daytime") {
    print "its daytime"
}

Это также легко читать

if (isItDaytime()) {
    print "its daytime"
}

Смешивает печать с проверкой времени, не очень хорошо

printDaytime();

В любом случае, это личное предпочтение в значительной степени, но есть и веские, логичные причины, чтобы отдавать предпочтение одному над другим, и мне интересно услышать эти причины - или, возможно, другие варианты той же конструкции, если она что-то добавляет. 1021 *

Спасибо!

1 Ответ

3 голосов
/ 03 июля 2011

Из ваших вариантов я предпочитаю:

if (isItDaytime()) {
    print "its daytime"
}

Этот тоже не страшен:

if (timeOfDay() === "daytime") {
    print "its daytime"
}

... хотя я бы использовал перечисление или подобную конструкцию вместо литеральной строки, например:

if (timeOfDay() === TimeOfDay.DAY_TIME) {
    print "its daytime"
}
...