Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Правила хорошего кода 
:(
    Опции темы
Ignat
Дата 6.4.2006, 14:42 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: нет
Всего: 73



Ну рефакторинг обычно включает в себя не только расстановку отступов.... Так что это просто горькая необходимость. Иногда даже приходится убивать уже выставленные грамотно отступы, при переносе блока.

Цитата(skalex @ 6.4.2006, 15:37 Найти цитируемый пост)
Вообще в некоторых редакторах есть функции вылечивания такого кода

Ну... мы такой роскошью не пользуемся smile EditPlus forever.

ЗЫ А может в нём тоже это есть?




--------------------
Теперь при чем :P
PM   Вверх
skalex
Дата 6.4.2006, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: нет
Всего: 23



Цитата
ЗЫ А может в нём тоже это есть?


Нет. А жаль ... Редактор то достойный. Плохо также, что он вяло развивается ...
PM   Вверх
CyClon
Дата 6.4.2006, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Цитата
Протестую. Из чисто практических соображений - задолбаешься.


Если писать в блокноте - я с тобой согласен. Но если писать в том же Zend Studio или PHP Expert Editor, то там можно задать определенное кол-во пробелов. Нажал TAB - 4 пробела есть.

Цитата
А это красиво, но малочитабельно.


Тут я с тобой согласен. Да и это не правило написания - это совет.

Цитата
Вот это излюбленный мной стиль. Но предпочитаю в больших блоках ставить разрыв (пустая строка) после открытия блока и перед закрытием.


Ну, мне вообще нравится такой стиль:

Код
if ($variable)
{
    echo "123";
} else {
    echo "321";
}


Но я все же буду опираться на стандарты smile))

Цитата
ИМХО, break вертикально должен совпадать с соответствующим case, т.к. по сути является его закрытием, следовательно визуально не должен "вылетать" из логики.


Нет, как раз-таки break не должен совпадать с case, т.к. это конструкция да и если мы напишем continue? В общем протест smile

Мой любимый силь:

Код
switch ($_POST['number'])
{
    case 1:
        echo "1";
        break;
    case 2:
        echo "2";
        break;
    case 3:
        echo "3";
        break;
    default:
        echo "Default";
        break;
}



--------------------
user posted image
PM   Вверх
Elfet
Дата 9.4.2006, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Люблю нажимать Alt + F8 в Визуале smile И не мучаюсь! smile smile

А что деласть с кодом и с отступами если использую EOF?

Код

function get()
{
return <<<EOF
<a href="#">ToTop</a><br />
EOF;
}


Перед EOF; же нельзя ставить пробелы.


--------------------
PM MAIL WWW Skype   Вверх
Alone
Дата 4.7.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



Цитата(Ignat @ 6.4.2006,  14:33)
Цитата(CyClon @  6.4.2006,  14:06 Найти цитируемый пост)
Используйте для отступа 4 пробела, а не табуляцию.

Протестую. Из чисто практических соображений - задолбаешься.

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

4 пробела отобразятся ОДИНАКОВО в любом редакторе, в то время как tab отображается ВЕЗДЕ ПО РАЗНОМУ. Отсюда и рекомендация не использовать его в разметке кода. 
Знаю многие конторы, где за каждый найденый таб штрафуют. 0.5$
"Молдняк" излечивается после первой же зарплаты smile

Добавлено @ 13:23 
Цитата(CyClon @  6.4.2006,  18:08 Найти цитируемый пост)
Если писать в блокноте - я с тобой согласен. Но если писать в том же Zend Studio или PHP Expert Editor, то там можно задать определенное кол-во пробелов. Нажал TAB - 4 пробела есть.

Кроме того там есть "Auto indent code" который, при отсутствии таб-ов,  правильно расставит отступы.
Кстати, табы в зенде лечу нажатием ctrl+h (заменить '\t' на '____' 4 пробела smile ) 


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
AztEK
Дата 4.7.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: нет
Всего: 18



Какие жаркие споры smile

Джефф Элджер в своей книге "C++ For Real Programmers" писал
Цитата
Эта книга посвящена языковым идиомам, а не расположению фигурных скобок или регистру символов.


Почему бы эту фразу не применить к этому топику? smile
Каждый пишет как ему удобно. Важны идеи. 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Ignat
Дата 5.7.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: нет
Всего: 73



Цитата(AztEK @  4.7.2006,  21:21 Найти цитируемый пост)
Каждый пишет как ему удобно. Важны идеи.  

У нас в конторе такой подход называют "креатиффом". Есть товарищи, пишут очень идейно, но в коде хрен разберешься... По три-четыре оператора в строчку и все логи HEX-дампом. 


--------------------
Теперь при чем :P
PM   Вверх
awers
Дата 25.9.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



Очень жаль что обсуждение остановилось на КАЖДОМУ СВОЕ.
Хотелось бы прийти к более конкретному "доку по стилю написания".
Даже если простым большинством голосов  smile 
PM MAIL WWW ICQ Skype   Вверх
dsCode
Дата 25.9.2007, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: нет
Всего: 26



Дочитал до середины, дальше, к сожалению, не осилил =)

Кто бы что не говорил (про "каждому свое") - по-любому должны быть style guid'ы. Конечно, они могут быть локальными в какой-то компании, но есть и общепринятые. Код Zend'a и Pear'a - еще не эталон. Поищите нормальную достоверную, стандартизированную документацию по кодингу на PHP. Потому что существует такое понятие как "профессиональный почерк" и все ИМХИ в нем не прокатят ("я привык так-то и так-то", "так лучше" и т.д.). Локальные привычки еще ничего не значат. Вот в этой теме обсуждались некоторые основные принципы. Они верны, и PHP касаются тоже.

P.S.: кстати, насчет сокращений: если условие одиночно, то можно (и даже более профессионально) писать так:

Код

$a === 3 && ($obj->doSomething());

// если с if-ом писать - то скобки - обязательны!

if ($a === 3) {
  $obj->doSomething();
}

// но первый вариант предпочтительней, хотя второй - наглядней

// так же можно писать 

$a = $b || 3; // $a будет $b, иначе 3

// вместо

if ($b) {
  $a = $b;
} else {
  $a = 3;
}

// или 

$a = $b ? $b : 3;

// опять же - первый вариант предпочтительней



--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
theworldcreator
Дата 25.9.2007, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: нет
Всего: 13



Цитата(wsr @ 14.1.2006,  00:17)
Я лично при кодинге больших "приложений", предпочитаю пользоваться следующим:
Код

while ( ) :
         # вместо стандартной конструкции while () {} 
endwhile;

if ( ) :
         # вместо стандартной конструкции if () {} 
endif;

for ( ) :
         # вместо стандартной конструкции for () {} 
endfor;

switch ( ) :
         # вместо стандартной конструкции switch () {} 
endswitch;
         # вместо стандартной конструкции foreach () {} 
foreach ( ) :

endforeach;

По моему это лучший вариант для более удобного парсинга своего же кода в будущем!
А то будет в коде куча {{{{{{{ и }}}}}}}} и попробуй разберись что к чему относится, а так все четко и понятно!

Интересно. Никогда не задумывался над таким применением. Надо будет попробовать. Я последнее время, при большом объеме кода, пишу так:
Код

if(a){

//код

}//if(a)

А если условие слишком большое, писал его не целиком, и так понятно:
Код

if(!empty($_POST['search_string']) and ((!empty($_POST['table']) and !empty($_POST['types'])) or !empty($_SESSION['search_values']))){

//код

}//if(!empty($_POST['search_string']) and ((!empty($_PO

P.S.
Здесь так активно рекламировали zend, что я даже скачал. Могу скинуть найденный только что keygen. Либо в личку, либо пусть модератор разрешит его здесь выложить(или хотя бы ссылку показать)
PM MAIL WWW ICQ   Вверх
Vaulter
Дата 25.9.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



Цитата(dsCode @ 25.9.2007,  17:32)
Код

// так же можно писать 

$a = $b || 3; // $a будет $b, иначе 3

// вместо

if ($b) {
  $a = $b;
} else {
  $a = 3;
}

// или 

$a = $b ? $b : 3;

// опять же - первый вариант предпочтительней

если $b не существует будет WARNING
поэтому 
Код

$a = ( !empty($b) )? $b : 3;
//ИЛИ
$a = ( isset($b) )? $b: 3;

смотря по контексту



--------------------
PM MAIL WWW ICQ   Вверх
theworldcreator
Дата 25.9.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: нет
Всего: 13



Цитата(Vaulter @ 25.9.2007,  18:08)
если $b не существует будет WARNING
поэтому 
Код

$a = ( !empty($b) )? $b : 3;
//ИЛИ
$a = ( isset($b) )? $b: 3;

смотря по контексту

А разве он так не будет проверять переменную только на существование?

Добавлено @ 18:21
незнаю можно ли так(скоро проверю), но должно работать:
Код

$a =  isset($b) ? ($b ? $b : 3):false;


Это сообщение отредактировал(а) theworldcreator - 25.9.2007, 18:23
PM MAIL WWW ICQ   Вверх
theworldcreator
Дата 25.9.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: нет
Всего: 13



Мой способ работает. Ваш
Код

$b=false;
$a = ( isset($b) )? $b: 3;

В результате $a==false, а не 3, как задумывалось. empty() работает нормально. Он просто проверяет на наличие переменной И на ее НЕ равность false, что делает функцию очень удачной для данного случая.
PM MAIL WWW ICQ   Вверх
dsCode
Дата 25.9.2007, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: нет
Всего: 26



Vaulter, да речь не "о существовании" / "не существовании" переменных там каких-то (этот пример - так - до кучи написал, он тут не при чем вообще). Основная речь, я еще раз повторю - стандартизованные правила оформления кода. Мой вам совет, други, - сразу себя лучше приучать к правильному коду и избавляться от неправильных привычек (удобным вам кажется или нет, но если это не правильно - всегда будет выдавать непрофессионала).


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
awers
  Дата 26.9.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



во всяком случае, я всегда стараюсь придерживаться Zend овского стиля написания кода, искать изящные решения ...
к примеру: когда я работал в одной московской конторе (поддерживал ранее созданные сурсы и создавал новые), попадались такие сайты, где .htaccess весил ~1мб, причем совершенно необоснованно, без комментов. соответственно заглядывая в php можно было потерять сознание. теперь стараюсь в любом случае, на сколько бы "наколенной" разработка не была придерживаться стандартов. этоисты в программировании - муветон!
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1185 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.