Комментарии 133
Вообще мне ближе второй вариант, но код из примера я бы написал так:
т.е. если результат условия невелик, я пишу его в одну строчку
<?php
if ( $flag ) { echo «Hello world!»; }
?>
т.е. если результат условия невелик, я пишу его в одну строчку
В данном случае лучше вообще без скобок. А вообще третий, IMHO, читается лучше, когда вложенных условий много, а редактор не Zend Studio.
когда вложенных условий много — код плохой.
Вариант без скобок может порождать ошибки, например захочешь вставить еще один оператор и забедушь поставить фигурные скобки. Поэтому я всегда пишу скобки, даже если там один оператор.
Если писать в одну строчку, то зачем там скобки? Или Вы этот второй оператор вставите на той-же строке? Фигурные скобки с момента своего появления были предазначены для ограничения блоков кода, а один оператор блоком не является. Хотя мышление у всех разное, возможно кому-то действительно трудно без них обходиться и тогда для совместимости стоит поставить.
А как на это в данном случае влияет Zend Studio? :) Там можно настроить форматирование и под такой стиль.
ну тогда уж
<?php
if ($flag)echo «Hello world!»;
?>
Может тогда уж
<?=($flag? «Hellow world!»:)?>
Тут все таки про скобки разговор…
<?=($flag? «Hellow world!»:)?>
Тут все таки про скобки разговор…
В php 6 этого не будет
это парсер так обработал, ниже я написал правильный вариант
тогда наверное всё-таки вот так: <?=($flag? «Hellow world!»:«»)?>
Тогда уж
$flag? print('hello world!'): null;
p.s. в php 5.3+
станет возможна конструкция ?:, чего и жду с нетерпением )
$flag? print('hello world!'): null;
p.s. в php 5.3+
станет возможна конструкция ?:, чего и жду с нетерпением )
Конкретно со скобками: если в блоке 1 строчка, то стиль #1, если много, то как у вас :) Так компактнее, а без скобок на 1 строчку, имхо, несколько менее читабельно.
Вообще мне ближе второй вариант, но код из примера я бы написал так:
<? php
if ( $flag ) { echo «Hello world!»; }
?>
т.е. если результат условия невелик, я пишу его в одну строчку
<? php
if ( $flag ) { echo «Hello world!»; }
?>
т.е. если результат условия невелик, я пишу его в одну строчку
Я пользуюсь рацио (KR), т.к. он очень компактен. В огромных приложениях на Java это вообще спасает, а в PHP у меня — просто привычка.
<? php
if($flag)
{
echo «Hello, World!»;
}
?>
так пишу я, независимо от длины условия!
if($flag)
{
echo «Hello, World!»;
}
?>
так пишу я, независимо от длины условия!
Существует много рекомендаций к написанию кода. В разных проектах могут быть разные варианты использованию расстановок скобок, табуляций и пр. Если очень хотеть, можно писать любым стилем. Вообще, когда правишь код чего-либо, лучше придерживаться стиля этого кода в независимости от личных предпочтений.
Мне больше нравится рациональный стиль, с обязательным написанием фигурных скобок.
Мне больше нравится рациональный стиль, с обязательным написанием фигурных скобок.
при чем тут ява?
да ладно, пусть хабрачеловек тоже свой вариант выскажет ;)
Это свод правил(рекомендаций) оформления java кода.
Ну я к тому, что создатель технологии обычно предоставляет гайдлайны. У самого PHP, как мне помнится их нет, зато есть например framework.zend.com/manual/en/coding-standard.html — если бы я писал на PHP, я бы пользовался ими. Хотя не знаю, как там у других фреймворков.
Вот! Человеческий подход!
Мне больше по душе указанный выше ZF Coding Standard (то есть, #1 из топика), но и PEAR'овский тоже не плох.
И еще раз соглашусь с однохабрянами выше — на фигурных скобках экономить грЕшно.
PS: в Zend Studio / Eclipse PDT шикарный форматер кода (Shift-Ctrl-F). Шикарность — в его гибчайшей и обширнейшей настройке.
Мне больше по душе указанный выше ZF Coding Standard (то есть, #1 из топика), но и PEAR'овский тоже не плох.
И еще раз соглашусь с однохабрянами выше — на фигурных скобках экономить грЕшно.
PS: в Zend Studio / Eclipse PDT шикарный форматер кода (Shift-Ctrl-F). Шикарность — в его гибчайшей и обширнейшей настройке.
Стиль не такой:
а такой, с табуляцией:
<? php
if($flag)
{
echo «Hello world!»;
}
?>* This source code was highlighted with Source Code Highlighter.
а такой, с табуляцией:
<? php
if($flag)
{
echo «Hello world!»;
}
?>* This source code was highlighted with Source Code Highlighter.
Пишу вторым стилем (BSD) — причем обычно около первой открывающей скобки пишу кратенький коммент (если это ф-я, или куча вложенных if`ов)
я стараюсь использовать такой прием (для вложенных условий, например):
if($flag)
{
echo «Hello world!»;
if($flag2)
{
echo «Hello, world2!»;
}
} // end off if($flag)
ну Вы поняли суть думаю…
понял ) в моем случае выглядит так
if($lala)
{ //толи девочка
echo(«девочка»);
if($lala2)
{ //а толи варенье
echo(«варенье»);
}
}
тоесть блоки табулятся вместе с if`ами. Если блок большой, отступается еще и пустыми строками перед if и после закрывающей скобки
if($lala)
{ //толи девочка
echo(«девочка»);
if($lala2)
{ //а толи варенье
echo(«варенье»);
}
}
тоесть блоки табулятся вместе с if`ами. Если блок большой, отступается еще и пустыми строками перед if и после закрывающей скобки
А мне очень нравиться notepad++ при выделении одной скобки можно сразу перепрыгнуть на открывающую/закрывающую через ctr+b очень удобно :) Сам пишу первым стилем.
да кстати… а еще очень удобна просто подсветка скобок, например если курсор около открывающей скобки, то редактор подсвечивает закрывающую. Плюс возможность этот блок свернуть, чтобы глаза не мазолил. (сам пользую quanta+, но в последнее время TextWrangler — в нем этого очень не достает)
да кстати… а еще очень удобна просто подсветка скобок, например если курсор около открывающей скобки, то редактор подсвечивает закрывающую. Плюс возможность этот блок свернуть, чтобы глаза не мазолил. (сам пользую quanta+, но в последнее время TextWrangler — в нем этого очень не достает)
да кстати… а еще очень удобна просто подсветка скобок, например если курсор около открывающей скобки, то редактор подсвечивает закрывающую. Плюс возможность этот блок свернуть, чтобы глаза не мазолил. (сам пользую quanta+, но в последнее время TextWrangler — в нем этого очень не достает)
да кстати… а еще очень удобна просто подсветка скобок, например если курсор около открывающей скобки, то редактор подсвечивает закрывающую. Плюс возможность этот блок свернуть, чтобы глаза не мазолил. (сам пользую quanta+, но в последнее время TextWrangler — в нем этого очень не достает)
Я пишу в стиле:
Операторы — слитно с условием, фигурные скобки отделены пробелом, и сейчас стараюсь все операторы выносить на новую строку, гораздо удобнее в плане когда нужно что-то добавить, например print_r() какой-нибудь или var_dump(), при отладке и т.п., раньше когда писал слитно — приходилось переформатировать код на несколько строк, добавлять необходимую отладку, а потом когда отладка не нужна — убирать ее и запихивать код обратно в одну строку… в общем лучше уж сразу :)
Операторы — слитно с условием, фигурные скобки отделены пробелом, и сейчас стараюсь все операторы выносить на новую строку, гораздо удобнее в плане когда нужно что-то добавить, например print_r() какой-нибудь или var_dump(), при отладке и т.п., раньше когда писал слитно — приходилось переформатировать код на несколько строк, добавлять необходимую отладку, а потом когда отладка не нужна — убирать ее и запихивать код обратно в одну строку… в общем лучше уж сразу :)
Использую рациональный стиль. Как раз потому, что он является рациональным.
У многих есть мнение, что он менее понятен, чем, например, стиль Альмена. Но это вопрос привычки. У приверженцев таких проблем нет. Другой вопрос в том, что ваш код также должны легко читать и другие. Но эти другие прежде всего те, кто с вами работает и у вас должен быть единый стиль. Поэтому и в этом случае проблем не должно быть. Другое дело, если коллектив решил использовать что-то другое, тогда ничего не остается как придерживаться пути большинства, если, конечно, не удалось переубедить.
У многих есть мнение, что он менее понятен, чем, например, стиль Альмена. Но это вопрос привычки. У приверженцев таких проблем нет. Другой вопрос в том, что ваш код также должны легко читать и другие. Но эти другие прежде всего те, кто с вами работает и у вас должен быть единый стиль. Поэтому и в этом случае проблем не должно быть. Другое дело, если коллектив решил использовать что-то другое, тогда ничего не остается как придерживаться пути большинства, если, конечно, не удалось переубедить.
Договоренность об оформлении кода, если мне не изменяет память, называется техническими директивами, которые собственно ради того что вы написали и используются, чтобы любой из команды разработчиков соот-щего проекта мог не ломая глаза прочитать то, что написали его коллеги.
Я тоже использую рациональный, перешел на него благодаря Coding Conventions в Яве.
Жаль, что таких же правил нет и в других языках, сильно облегчает жизнь программистам.
Жаль, что таких же правил нет и в других языках, сильно облегчает жизнь программистам.
<? php
if ($flag) {
echo «Hello world!»;
}
?>
Я придерживаюсь первого варианта, хотя, это уже дело привычки каждого. Главное чтобы код был читабельным, и не только для себя.
if ($flag) {
echo «Hello world!»;
}
?>
Я придерживаюсь первого варианта, хотя, это уже дело привычки каждого. Главное чтобы код был читабельным, и не только для себя.
Всегда пишу а-ля Керниган-Ритчи. Для меня весьма наглядно. и jEdit в этом помогает.
Солидарен с автором топика. И хотя логически верхняя скобка, занимающая строку информативно избыточна при табуляции, однако ее отсутствие меня дезориентирует. Правда, css я всегда я пишу в рациональном стиле (еще бы).
<? php
if($flag)
{
echo «Hello, World!»;
}
?>
писал как и автор, только еще всегда ентеры перед началом и перед концом…
а счас пишу так:
///
/// This Class Makes Mega Function
///
public class SuperFlag
{
//Writing Hello To World Stream
private void MakeHello()
{
if ($flag)
{
Response.Write («Hello, World!»);
}
}
}
на C# перешел года 2 назад…
<? php
if ($condition) {
// @todo write something
}
Закрывающий ?> не ставлю, если конечно не шаблон native php, а если он, то еще и альтернативный синтаксис:
<&php if ($condition): ?>
<sometag arg=«value»> something </sometag>
<? php endif; ?>
if ($condition) {
// @todo write something
}
Закрывающий ?> не ставлю, если конечно не шаблон native php, а если он, то еще и альтернативный синтаксис:
<&php if ($condition): ?>
<sometag arg=«value»> something </sometag>
<? php endif; ?>
Рекомендую проголосовать, чтобы собрать статистику.
<?php if ( $flag ) { echo "Hello world!"; } ?>
с пробелами в скобках читать по-удобнее, мне кажется.
Пишу в стиле GNU. Для меня он более читаем, так как чётко выделят блоки, операторы разветвления и циклы. Использую gPHPedit. А вообще ИМХО это дело привычки. Человек пишет в том стиле с которого начинал.
($flag? echo «Hello World»:«»)
Использую (1) рациональный стиль. Плюс добавляю пробелы для читабельности:
<? php if ($flag) { echo «Hello world!»; } ?>
Год назад читал многочисленные статьи по code convention, каких знаний тогда получил пока хватет. Допустим, для описания классов я использую стиль который использует автор. А для вложений использую пункт №1. А вообще-то после if ставится пробел, а для вызова функции пробел не ставится.
Zend Framework рекомендует собственный стандарт оформления кода (который, кстати, во многом похож на стардарт PEAR). Думаю, что стоит поддерживаться именно вариант ZF (по отношению к условным операторам там применяется рациональный стиль)
Я лично предпочитаю такой вариант, без табов:
<?php if ($flag) { echo "Hello world!"; } ?>
использую стиль GNU: четко видно условие, где оно начинается-заканчивается и содержимое цикла.
Пользуюсь notepad++, с каждой версией он все лучше и лучше.
Пользуюсь notepad++, с каждой версией он все лучше и лучше.
я делаю вот так:
НЛО прилетело и опубликовало эту надпись здесь
Безумно понравился вам комментарий :)
Я, видать, дебил… Когда много переменных, пишу именно так.
Лично мне очень помогает ориентироваться
Лично мне очень помогает ориентироваться
И при добавлении новой переменной, сидишь и еще 10 минут выравниваешь все остальное. Ориентироватся очень помогает грамотное написание кода, которое уже по дефолту выглядит красиво и понятно.
Ориентироваться помогать должны внятные имена, а не список из $x, $yyy, $zzzz (эти имена я привел для примера, я не утверждаю что вы пишете именно так).
С другой стороны, представьте, что в вашем списке из 20 переменных $x приходится переименовать в
$comments_count = 5;
$yyy = 6;
$zzzz = 7;
после чего длинный ряд столбиков «=» придется опять выравнивать по длине $comments_count «чтобы было красиво». В итоге на подобную фигню жутко тратится рабочее время, причем не только у вас, а еще у тех кто будет поддерживать ваш код.
С другой стороны, представьте, что в вашем списке из 20 переменных $x приходится переименовать в
$comments_count = 5;
$yyy = 6;
$zzzz = 7;
после чего длинный ряд столбиков «=» придется опять выравнивать по длине $comments_count «чтобы было красиво». В итоге на подобную фигню жутко тратится рабочее время, причем не только у вас, а еще у тех кто будет поддерживать ваш код.
Согласен с вами практически по всем пунктам, кроме одного — у Макконнелла стиль K&R не занял 1-е место, а поделил его со стилем №5 (не знаю как он называется, в общем, это тот, который использует топикстартер), т.к. они оба одинаково хорошо визуально отображают логическую структуру кода.
Мне, к примеру, больше нравится K&R, т.к. он более компактен.
P.S. А на счет «все было ровненько» — было дело :), слава богу, этот период уже прошел.
Мне, к примеру, больше нравится K&R, т.к. он более компактен.
P.S. А на счет «все было ровненько» — было дело :), слава богу, этот период уже прошел.
K&R №1
До изучения питона писал php код довольно грязно, но после питона принял для себя правило — каждый новый логический вложенный уровень должен быть отличен от предыдущего на одну табуляцию (3-4 пробела обычно). Фигурные кобки всегда на следующей строке по табуляции равны условию. Это тогда какой стиль?
tony2001.phpclub.net/doc/standard/ с небольшими собственными отступлениями, в основном касаяется расстановки фигурных скобок, я их ставлю на одной строке с условием, операторами циклов и.т.д. Большие условия не пишу, а если и нужно — размещаю в несколько строк
НЛО прилетело и опубликовало эту надпись здесь
с приходом в компанию, было требования писать по ZendCodingStandarts поэтому пишу
1) Рациональный стиль
**********
*****
*****
*****
**
1) Рациональный стиль
**********
*****
*****
*****
**
Конечно же Рациональный. Но хотелось бы заметить, что помимо расстановки есть еще стиль именования переменных, классов обьектов, использование управляющих конструкций итд итп.
Ну и конечно же не всегда есть возможность поддерживать один и тотже стиль кодирования. Как например, залезешь через телефон телнетом и попробуй покуролесить там стилем, когда надо быстро поправить.
Ну и конечно же не всегда есть возможность поддерживать один и тотже стиль кодирования. Как например, залезешь через телефон телнетом и попробуй покуролесить там стилем, когда надо быстро поправить.
стиль, который я использую
<? php
if($flag)
{
echo «Hello, World!»;
}
?>
<? php
if($flag)
{
echo «Hello, World!»;
}
?>
а если условий несколько, то наверное получается что-то вроде:
if($condition)
{
// @todo write comecode
if($anotherCondition) {
// @todo write comecode
}
else {
// @todo write comecode
}
}
Это же читать невозможно!
if($condition)
{
// @todo write comecode
if($anotherCondition) {
// @todo write comecode
}
else {
// @todo write comecode
}
}
Это же читать невозможно!
Если речь идет о PHP, то есть рекомендованные стандарты кодирования от PEAR. Думаю, нужно понимать, чтобы код был читабельным для всех нужно работать по стандартам. А они уже есть.
НЛО прилетело и опубликовало эту надпись здесь
<?php echo isset($flag) ? "Hello World" : "" ?>
K&R стиль мне ближе всего, поэтому ни мог не заметить «ошибочки», пробелов не хватает. Вот так правильней:
<? php
if ($flag) {
echo «Hello world!»;
}
?>
<? php
if ($flag) {
echo «Hello world!»;
}
?>
Несколько усложню вопрос, добавив блок else
В таком случае появляются дополнительные варианты расстановки фигурных скобок:
<? php
// так на строку короче:
if($flag) {
echo «Hello world!»;
} else {
echo «Hello world!»;
}
// или же так:
if($flag) {
echo «Hello world!»;
}
else {
echo «Hello world!»;
}
?>
лично мне предпочтительней второй вариант (блоки виднее) :).
В таком случае появляются дополнительные варианты расстановки фигурных скобок:
<? php
// так на строку короче:
if($flag) {
echo «Hello world!»;
} else {
echo «Hello world!»;
}
// или же так:
if($flag) {
echo «Hello world!»;
}
else {
echo «Hello world!»;
}
?>
лично мне предпочтительней второй вариант (блоки виднее) :).
НЛО прилетело и опубликовало эту надпись здесь
<?php
if ($flag){
echo(«Hello world!»);
}
?>
В одну строчку никогда ничего не сворачиваю.
4
НЛО прилетело и опубликовало эту надпись здесь
Например, в той же Zend Studio если нажать CTRL+ALT+F будет либо первый вариант, либо последний, который описал автор топика.
Все зависит от мест расстановки начальных {
Все зависит от мест расстановки начальных {
Я пишу в K&R с комментариями:
<? if($flag){ echo "Hello"; }//if($flag) ?>
<?php /* Когда всего одна строчка после условия */ if($flag) print "Hello"; /* Если же их несколько, то я пишу вот так. Пустая строка действительно повышает читабельность, по крайней мере для меня. */ if($flag) { print "Hello"; exit; } ?>
хех, имхо тут все зависит от того на чем человек пишет кроме пхп. Я например писал сначала на C/C++ под никсами, и использовал не ГНУ-стиль (по мне излишне громоздок), а максимально близкий ему стиль Алмана. Позже перейдя на пхп, использовал его же. Сейчас же пишу еще и на Яве (где нативным (как для языка, так и внутри наших проектов) является рациональный стиль), так что можно сказать сейчас я выбираю стиль для всего кроме Явы. Хотя ближе все равно стиль Аллмана, так как он гораздо читаемее на распечатках кода.
Я пользуюсь рациональным стилем, с одним лишь отличием — пробел между условием и скобкой:
if($flag) {
echo «Hello world!»;
}
if($flag) {
echo «Hello world!»;
}
для if — первый вариант, для функций и классов второй
первый вариант
IDE настоятельно приучает меня к GNU-стилю.
Стараюсь писать как в выше приведённых ZendFramework'овских правилах, т.е.: скобки фигурные всегда должны быть, длинные строки оформляются так:
$str=«lllllllllllllllllllllllllllllasadsdsfdfgdffhfgh»
.«fffffffffffffffffffffffffffffffffffffffff»;
И ещё один иентересный момента: нет табуляции — да 4 пробелам.
$str=«lllllllllllllllllllllllllllllasadsdsfdfgdffhfgh»
.«fffffffffffffffffffffffffffffffffffffffff»;
И ещё один иентересный момента: нет табуляции — да 4 пробелам.
От Алгола пошел вариант написания скобок begin-end одна под другой с равномерной табуляцией содержимого блоков. К сожалению, разраработчики Cи традицию нарушили.
<?php
class MyExampleClass
{
/**
* @param integer $appleCount
* @return boolean
*/
public function isSatisfied( $appleCount = 0 ) {
if ( (int) $appleCount > 4 ) {
return true;
}
return false;
}
}
Вот какие-то такие мои карандаши.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Ваш стиль программирования