Pull to refresh
47
0
Владлен Грачев @gwer

Пользователь

Send message
Некоторые явления кажутся нам очевидными лишь из-за того, что они повсеместно используются.

Я задал вопрос потому, что встретил сие впервые (осмысленно). Но это действительно плюс для форматированных условий.

С другой стороны, так ли часто это дает какой-либо достаточно весомый выигрыш для того, чтобы ради этого и без того сложное условие загромождать новыми элементами?
Возможно, глупый вопрос, но зачем в таком варианте вообще true и false?
Макконнелл предлагал разбивать условие на переменные или функции. Это хороший подход. Но группируемые подусловия должны быть логично связаны, то есть вводимая функция/переменная является эдаким слоем абстракции. Но вдруг условие требуется очень сложное, и получилось что-то из следующего списка:
  • Условие состоит из большого числа слабо связанных подусловий, которые затруднительно логично и красиво разбить.
  • Мы выделили функции/переменные, но их много, и даже с ними условие воспринимается не очень хорошо.
  • Мы выделили функции/переменные, конечное условие красивое и наглядное, но в функциях/переменных теперь сложные условия.

Или еще какая-то ситуация, когда нужно написать сложное условие. Как поступим?

К слову, в примере Макконнелла на эту тему сложное условие, разбитое на три строки, которое он называет ужасным, на мой взгляд, выглядит лучше и понятнее, нежели то, что он нагородил с функцией и переменными.

А вот у Мартина не помню упоминаний этой темы. Процитируете?
Сей продукт игровой индустрии относится к тем немногим экземплярам, в которые иногда поигрываю. Потому вставлю и свои пять копеек. Прямо по порядку. Сразу скажу, что смысл комментария — указать на ошибки автора. Никому ничего не навязываю и не рекламирую.

Про флеш под Убунтой не соглашусь. Играл из-под Дебиана. Причин проблемы там может быть две: использование не того флеш-плагина или косячно настроенная видеокарта (под AMD особенно последнее часто бывает). Это неумение настроить выбранное окружение. Игра и ее разработчики тут при чем? Под Win, кстати, использование не того флеш-плагина тоже чревато проблемами. Так, на родном плагине хрома часто нажатия клавиш не успевали обрабатываться и попадали в очередь, следствием чего была полная потеря контроля над танком. Производительность под разными ОС сравнимая.

Расходников в качестве ежедневного бонуса дают достаточно, чтобы не было острой необходимости в донате. Еще и по карте всегда раскиданы бесплатные усиления. Врубать гирлянду на спавне глупо и бессмысленно. Да и большинство игр все-таки можно выиграть, не используя расходники вовсе. Вопрос навыков и толковой команды.

Формула величины преимущества страдает необъективностью. Двукратное преимущество — это когда один танк аналогичен двум.

  • Двукратное увеличение урона не дает двукратного преимущества (за исключением дуэльной ситуации). Рассредоточить огонь нельзя, а если врагу хватает одного выстрела, то преимущества нет вовсе. При этом враг сосредоточить огонь может и убивает гораздо проще быстрее, чем два танка.
  • Двукратное усиление брони, в свою очередь, позволяет только продержаться дольше. То есть в совокупности с увеличением урона оно приблизит игрока к двукратному преимуществу. Но только приблизит, так как до двух полноценных танков все равно не дотягивает.
  • Восстановление жизни дает преимущество меньшее, чем броня. Так как его нужно успеть использовать. В некоторых ситуациях восстанавливаться придется при уровне жизни в районе половины. До двукратного преимущества как до Пекина.
  • Ускорение дает преимущество больше тактическое. И смысл у него есть в отдельных режимах, в отдельных ситуациях и на отдельных картах.

Итого, с учетом ящиков на карте и ежедневного бонуса, преимущество не более, чем двукратное.

А что касается командной игры — тут проблема только людей. Игра в команде с иностранцами — это уже совсем другая игра, например.
Согласен, пробелы очень сильно влияют на читаемость. Аналогичная ситуация, например, с приведением типов и с отрицаниями. Приведение в примерах есть, а вот отрицание в выборку интересных условий попало, но до статьи не дошло.

libgcc/libgcc2.c — 1611:
if (! (- ((DWtype) 1 << FSIZE) < u
       && u < ((DWtype) 1 << FSIZE)))
  {
    if ((UDWtype) u & (REP_BIT - 1))
      {
        u &= ~ (REP_BIT - 1);
        u |= REP_BIT;
      }
  }	

Пробелы эти, на мой взгляд, ни к чему. Кстати, это еще один вариант совокупности описанных решений. Многострочное условие вкупе с вложенным условным оператором.
А true и false просто для того, чтобы не оставлять пустые открывающие скобки? Получается же и избыточность, и увеличение сложности. Стоит ли оно того?
12 ...
37

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity