Intereting Posts
PHP: замените umlauts ближайшим 7-разрядным эквивалентом ASCII в строке UTF-8 PHP: переменная в имени функции сортирующий массив, основанный на ключевом значении inner-array Ошибка при попытке использовать гибридный поток входа в Google OAuth 2.0 (Google_IO_Exception) с сообщением «Ошибка HTTP: невозможно подключиться:« 0 ») Проверка формы перед отправкой Внезапно возникает ошибка 502 Bad Gateway Как получить новую ширину и высоту после поворота изображения с помощью функции imagerotate ()? Как полностью загружать звук перед воспроизведением? Лучший подход к декодированию сигнатуры шифрования Youtube с использованием PHP или JS Как передать значения массива PHP в другой файл с помощью jQuery Ajax? Значение Unset Array для PHP регулярные выражения – сопоставление всех якорей с необязательными атрибутами Python эквивалент PHP () и extract () Как получить общее количество столбцов, если строки разбиты на страницы? MySQL: как получить разницу между двумя метками времени в секундах

Являются ли одинарные заявления или заявления без привязок плохой практикой?

if (condition) { /* do something */ } else { /* do something */ } if (condition) /* do something */ else /* do something */ 

Мне сказали, что первая инстанция не была хорошей идеей. Я не знаю, действительно ли это в этом случае (или для второго); не сокращает ли количество на тип? Или это потому, что это просто беспорядок?

    Лучшая практика – написать код, который другие могут легко читать и обновлять.

    Ваша первая форма сомнительна, потому что она не соответствует формам, к которым привыкли большинство разработчиков PHP:

     if (condition) { // code } else { // code } // ... or ... if (condition) { // code } else { // code } // ... or ... if (condition) { /* short code */ } else { /* short code */ } // ... or ... condition ? /* short code */ : /* short code */; 

    Обратите внимание, что это касается стандартной практики и не обязательно имеет смысл – это только то, что другие разработчики привыкли видеть.

    Ваша вторая форма, что более важно, не так хороша, потому что это облегчает для другого программиста эту ошибку:

     if (condition) // code A else // code B // code C (added by another programmer) 

    В этом примере другой программист добавил code C , но забыл обернуть весь блок в фигурных скобках. Это вызовет проблемы. Вы можете защитить от этого, просто обернув ваши блоки if и else в фигурные скобки.

    Мои предпочтения, если для согласованности … так:

     if(...) { statement 1; statement 2; } else { statement 1; statement 2; } 

    ничем не отличается от:

     if(...) { statement 1; } else { statement 1; } 

    Поэтому я всегда использую их, потому что он последователен, и он позволяет избежать проблем, забывая добавить их позже.

    Однако другие люди будут смотреть на мой код и думать, что глупо вставлять {и}. У них есть свои причины, у меня есть мои … Мне нравятся мои причины больше, чем мне нравятся 🙂

    Обычно нечитаемый код является плохой практикой. Единственная строка более эффективна при наборе текста и сохраняет номера строк, но возвращается к ней через год или пока вы сканируете ошибки, и это затруднит ее работу.

    На мой взгляд, да, это плохая практика, чтобы иметь однострочные выражения.

    На компьютере все равно (насколько я могу судить), но вы всегда должны писать свой код, как будто он будет поддерживаться серийным убийцей, который знает, где вы живете.

    Удобочитаемый! Легко самоочевидно.

    Проблема, которую я видел, – это разработчики, не признающие {} -less-if, если они добавляют код к одному из условий. Пример:

     //before if(something) statement; //after if(something) statement; addedstatement; 

    Очевидно, что это не будет делать то, что они ожидают.

    Вы когда-нибудь видели такой код на C или C ++?

      /* Warning: bogus C code! */ if (some condition) if (another condition) do_something(fancy); else this_sucks(badluck); 

    Либо отступ неверен, либо программа глючит, потому что «else» всегда применяется к ближайшему «if», если вы не используете фигурные скобки.

    (Давайте просто использовать python. Без скобок, просто чистые чистые пробелы.: P)

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

    • Труднее ошибиться в том, что происходит.

    • Его легче читать.

    • В языках с возможностями макрорасширения (например, C, C ++) отказ включить фигурные скобки приведет к запутывающим логическим ошибкам, когда макрос, содержащий несколько операторов, расширяется внутри неотвязанного if-else .

    Одним из основных преимуществ использования нескольких строк является простота отладки. Если у вас есть оператор if else на одной строке, и отладчик сообщает вам, что строка x взорвалась, сложнее определить, какая часть инструкции не удалась. Несколько строк также облегчают переход вашего кода с помощью отладчика.

    Это две строки длиной, поэтому на самом деле не одна строка.

    Нет ничего плохого в одной строке, if s, когда код упрощает чтение.

    Например, что-то вроде этого:

     if (last_item) print ", and " else print ", " 

    намного лучше, чем

     if (last_iem) { print ", and " } else { print ", " } 

    Это больше стиль кодирования, чем что-либо еще. Тем не менее, мое личное мнение заключается в том, что ваш второй пример потенциально весьма вреден. Достаточно легко случайно «добавить вторую строку в блок» на языках, где фигурные скобки являются единственным способом создания блоков. Но в PHP, где существует альтернативный синтаксис, это еще менее вероятно, чтобы вывести необходимые предупредительные сигналы:

     if ($_GET["asdf"]==1): /* do something */ else: /* do something */ endif; 

    Правило большого пальца: если вы собираетесь поместить свое «сделать что-то» на отдельной строке, используйте фигурные скобки; если вы не собираетесь использовать фигурные скобки, поставьте их на одну строку!

    Я видел так много стороннего кода с глупыми проблемами, что я предпочитаю использовать фигурные скобки все время. Тем не менее, я никогда не чувствовал себя хорошо

     if(){} else (){} 

    Я использую if () {} в той же строке, когда это короткая инструкция, и она одна. Если есть другое, используйте long:

     if(checkSomething) { //dosomething } else { //doanotherthing } 

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

     if (x == 0) x = 2; else print("x is: %d", x); // debugging! x = 4; 

    Большинство людей здесь могут обнаружить ошибку, но вы действительно можете заменить все, что захотите, в качестве «плохого кода», который был вставлен. Более тонкая ошибка возникает, когда у вас есть «старая версия» чего-то прокомментированного, а кто-то ее не комментирует, и вдруг второй оператор выходит за пределы блока.

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

    Вы должны поместить «if» и «do something» на отдельные строки, чтобы сделать ваш код более дружественным к интерактивным отладчикам.

    Если вы поместите оба значения «if» и «do something» в одну строку, вы не сможете установить точку останова только на строке «сделать что-то».