[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Правильное написание кода.
Joker
Вот поспорил я с один человеком. Как писать правильнее код, чтоб было читабельнее, скажи кто прав, я или мой аппанент. Моя вариант нижний его верхний.

user posted image



Спустя 16 минут, 2 секунды (8.04.2009 - 22:54) agrus написал(а):
Ну, во-первых не "аппанент", а "оппонент" biggrin.gif
А во-вторых, второй код прочитать и правда легче, но думаю не во всех случаях такое оформление себя оправдывает rolleyes.gif

Спустя 2 минуты, 31 секунда (8.04.2009 - 22:57) Joker написал(а):
По русскому 3 признаю) huh.gif

Спустя 20 минут, 38 секунд (8.04.2009 - 23:17) kirik написал(а):
Цитата (Joker @ 8.04.2009 - 14:38)
Как писать правильнее код

Тут стандартов нету (где-то на форуме уже была подобная тема). Каждый человек пишет так, как привык, так, как ему удобнее. По логике ни один из вышеприведенных вариантов не верен, но первый (верхний) вариант читается легче.

Я бы, например, написал так:
PHP
if(isset($_GET['page1']))
{
    echo 
$_GET['page1'];

    if(isset(
$_GET['page2']))
        echo 
$_GET['page2'];

    echo 
$_GET['page1'];

    if(isset(
$_GET['page2']))
        echo 
$_GET['page2'];
}

тут как и в html:
PHP
<div>
    <
table>
        <
tr>
            <
td>Info</td>
        </
tr>    
    </
table>
</
div>


у меня есть знакомый, который вообще вот так пишет:
PHP
function processing_time($START false)
    {
        
$an "5";
        if(!
$START)
            {
                return 
time() + microtime();
            }
        
$END time() + microtime();
        return 
round($END $START$an);
    }


так что не заморачивайтесь smile.gif

Спустя 16 минут, 30 секунд (8.04.2009 - 23:34) FatCat написал(а):
ИМХО, смысл оформления отсутпами в том, чтобы можно было установить курсор мыши на открывающую блок скобку, и прокруткой колеса мыши легко найти закрывающую блок скобку.
Иначе при множестве вложенных условий в коде легко заблудиться.

Спустя 1 минута, 5 секунд (8.04.2009 - 23:35) Joker написал(а):
Тобишь мой нижний вариант лучше?)

Спустя 12 минут, 18 секунд (8.04.2009 - 23:47) Viking написал(а):
первый читабельнее, т.к. есть хоть какое-то визуальное разделение логических единиц, хоть и неправильное
имхо полезно сразу привыкать делать правильные отступы, в Python они даже являются частью синтаксиса и заменяют скобки, что имхо очень удобно

Спустя 16 минут, 4 секунды (9.04.2009 - 00:03) twin написал(а):
Стиль кода - дело индивидуальное, но если пишешь код не только для себя, нужно позаботиться о читабельности. Читабельность кода это не то, что читабельность текста. Тут рулит не визуальное восприятие, а чистый рационализм. Во втором примере как раз визуализация кода, то есть там попытка сделать его красивым. Но от этого он не читается легче. С точки зрения рациональности код должен быть поделен на блоки и они должны быть визуально отделены друг от друга. FatCat уже заметил, что сдвиг нужен для определения начала и конца. Но так же важно определить, какие именно функции работают в этом блоке, а какие во вложенном. по этому желательно их так же обозначать табулятором. Вот пример kirik'a более изящный, но на мой субъективный взгляд тоже не дотянутый. Потому что
визуально сливаются выражения и функции
Однако если сдвигать и выражения вот так:
PHP
<?
if(isset(
$_GET['page1']))
{
    echo $_GET['page1'];

        if(isset($_GET['page2']))
        echo $_GET['page2'];

    echo $_GET['page1'];

        if(isset($_GET['page2']))
        echo $_GET['page2'];
}
то лучше не становится, и слишком большой сдвиг, на пятом вложенном блоке выражение убежит за страничку. По этому с точки зрения рациональности верхний код имхо все же привлекательней. Разве что нужно выделить переносом строки:

PHP
<?
if(isset(
$_GET['page1']))
{
echo $_GET['page1'];

    if(isset($_GET['page2']))
    echo $_GET['page2'];

echo $_GET['page1'];

    if(isset($_GET['page2']))
    echo $_GET['page2'];
}

Спустя 30 минут, 45 секунд (9.04.2009 - 00:34) kirik написал(а):
А еще лучше не жалеть скобочки, и написать так:

PHP
if(isset($_GET['page1']))
{
    echo $_GET['page1'];

    if(isset($_GET['page2']))
    {
        echo $_GET['page2'];
    }

    echo $_GET['page1'];

    if(isset($_GET['page2']))
    {
        echo $_GET['page2'];
    }
}

и глазу приятно, и нет ощущения скученности smile.gif

А если таки жалко скобочек, то и индокод сойдет smile.gif
PHP
echo isset($_GET['page1']) ? $_GET['page1'].(isset($_GET['page2']) ? $_GET['page2'] : null).$_GET['page1'].(isset($_GET['page2']) ? $_GET['page2'] : null) : null;

Спустя 7 минут, 25 секунд (9.04.2009 - 00:41) Joker написал(а):
+ )

Спустя 11 минут, 32 секунды (9.04.2009 - 00:53) twin написал(а):
Лишние скобки не есть хорошо по тому что тогда на экран входит меньшее полезной инфы и приходится скролить. И что бы посмотреть что ниже, что выше, приходится код запоминать, а не сравнивать визуально.

Спустя 8 минут, 41 секунда (9.04.2009 - 01:02) FatCat написал(а):
Цитата (twin @ 9.04.2009 - 00:53)
И что бы посмотреть что ниже, что выше, приходится код запоминать, а не сравнивать визуально.

Смотря какой редактор, а то можно и свернуть промежуточные строки:

Спустя 13 минут (9.04.2009 - 01:15) twin написал(а):
Да свернуть даже в дримвевере можно, только это никак не улучшает ситуацию. Свернутый код все равно не видно. А плюс еще лишняя возня... Причем два раза - один раз скобки открывать-закрывать, а второй раз сворачивать потом лишнее.

PS Подскажи, в чем такой веселый скрин можно сделать?

Спустя 4 минуты, 49 секунд (9.04.2009 - 01:19) kirik написал(а):
Цитата (twin @ 8.04.2009 - 17:15)
PS Подскажи, в чем такой веселый скрин можно сделать?

++

Спустя 36 минут, 13 секунд (9.04.2009 - 01:56) Joker написал(а):
в Camtasia Studio 6 вроде можно, вернее можно это факт но чтоб расширение гифа было) эт незнаю)

Спустя 7 часов, 13 минут, 49 секунд (9.04.2009 - 09:09) sergeiss написал(а):
Насчет отступов...

При большой вложенности всяких условий, циклов и другой фигни я пользуюсь одной полезной возможностью ПХП, под названием "альтернативный синтаксис".
Например, вот так (пример абстрактный):
PHP
if( $expr1 ): // EXPRESSION1 - такого типа комментарий нужен для того, чтобы найти далее конец этого блока
  
... // делаем тут что-то
  
if( $expr2 ): // EXPR_2
    
foreach( $arr as $v ): // LOOP_1
      
...
      foreach( 
$arr2 as $v2 ): // LOOP_2
      
...
      endforeach: 
// LOOP_2
      
...
      if( 
$expr3 ): // MAIN IF
      
....
      endif; 
// MAIN IF
      
...
    endforeach: 
// LOOP_1
    
...
  endif; 
// EXPR_2
  
...
endif; 
// EXPRESSIONS1

В этом примере многоточия - любой код. Использование совместно с отступами позволяет создать четкую структуру, в которой очень легко ориентироваться. Потому что тут 2 критерия: отступы и четкие указания на конец и начало блока.

Можно и скобками обозначить блок, но для больших блоков мне удобнее так.

Рекомендую примерно так делать smile.gif

Спустя 2 дня, 2 часа, 58 минут, 22 секунды (11.04.2009 - 12:08) demkin написал(а):
вот стандарт оформления кода от pear , считаю его лучшим
http://pear.php.net/manual/en/standards.php
думаю нужно придерживаться распространённых стандартов
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.