Просмотр полной версии : Как правильно оформлять код
PHP: http://framework.zend.com/manual/ru/coding-standard.coding-style.html
Java: http://java.sun.com/docs/codeconv/html/CodeConventions.doc.html
Perl: perldoc perlstyle
Python http://www.python.org/dev/peps/pep-0008/
Касательно скобок { и т.д.
Существуют определенные стили.
Сили для проектов с нуля надо выбирать самим.
Проекты, использующие конкретную разработку, должны писаться в стиле этих проектов, который может отличаться от стиля языка(но этого обычно не происходит)
Некоторые языки не имеют официальных стилей(например C или C++), стилей там вагон и маленькая тележка
Delphi: http://softsl.com/Pagcat-211-Pagenum-1.html
Плз, перенеси мое сообщение в соседнюю ветку "Программирование Делфи С++, АСМ"
ЧУть нетуда напостил
ner: не будем плодить темы
B.4.2.3. Подстановка переменных
Подстановка переменных разрешается с использованием двух нижеприведенных форм:
$greeting = "Hello $name, welcome back!";
$greeting = "Hello {$name}, welcome back!"
Пожалуй не соглашусь....
Код выполниться быстрее при записи
$greeting = 'Hello'.$name.', welcome back!';
Обсуждалось не 1 раз
Ну давай результаты тестирования. Причем не профайлером, а в боевой среде. Т.е. с нормально настроенным вебсервером, кешированием байт-кода и не искусственным примером.
А то опровергать документацию каждый дурак горазд ))) Если уверен в своих словах - докажи.
Сейчас не могу сам ничего тестировать, но уже тестировал не 1 раз...
Смотрим статью http://php.spb.ru/php/speed.html
Пробуем сами
Окей. Посмотрим статью по ссылке. Что мы видим? Бред. Почему?
Ну к примеру для начала можно посмотреть на дату и увидеть, что текст написан 7 лет назад и давно потерял актуальность. ПХП с тех пор переписывался 2 раза, к примеру.
Ну а можно начать читать многочисленные статьи и документацию по оптимизации. Ну там даже книги.
Основной закон оптимизации: оптимизировпать надо там, где надо. А не везде.
Вот на досуге почитайте лучше это, чем всякие заплесневелые тексты: http://rsdn.ru/article/philosophy/Optimization.xml
нер, давай не будем спорить...
Скачай примеры http://php.spb.ru/php/speed(2001nov13).exe проверь....
Все до сих пор актуально
окей. Только примеры не эти(синтетические), а нормальные. Тогда и посмотрим. Потестируем(через ab к примеру)
Сомневаюсь что на реальном приложении прирост будет больше процента ;)
Вообще прирост, пусть небольшой, но должен быть.
По этой же причине в интерпретируемых языках рекомендуется строки заключать в одинарные кавычки, а не двойные. Парсеру необходимо проверять двойные кавычки на наличие переменных, а это - какое-никакое, но время.
На мой взгляд этим вообще можно принеберечь...
Евгений Минаев
20.02.2008, 18:41
Утилитой ab веб сервер тестируют, а мерять загрузку сервера ради таких тестов бред тк разница будет маленькой.Одинарные ковычки быстрее как в пятой так и в четвертой версии, я тестировал обычным таймером и исполнением тысячи строк типа print 'index : '.$temp; и print 'index : '.$temp; . В первом случае вывод занял 0.0133, во втором 0.0022 секунды . Это мелочи, но Isis прав.
Утилитой ab веб сервер тестируют, а мерять загрузку сервера ради таких тестов бред тк разница будет маленькой. Но именно это играет первоочередную роль. Поэтому я и предложил тестировать этой утилитой.
А то, что разница маленькая - я про это и говорю. Тут погрешность больше разницы то будет )
В четвертой ветке php играла роль " или ', в пятой ветке php это уже не как не влияет, работает одинаково по времени...
В конце недели комп появится, я сделаю тесты и докажу вам что я прав =)
Я полностью согласен с ISIS.
Что тут доказывать :mad: Если кому-то надо - тот сам возьмёт и проверит IMHO это спор на пустом месте!
Хотя я не всегда придерживаюсь этих правил, но если пишу большой проект там естественно нужно учитывать всё! Когда вы пишете код из 10-50 строк это фигня можно пренебречь но представьте код из 1000 строк...
Developer
20.02.2008, 22:35
Пожалуй не соглашусь....
Код выполниться быстрее при записи
Не согласен с тобой. По поводу скорости - разница будет хм, как бы это сказать... Неощутимой, скажем так. Или для тебя играет роль в выигрыше 0.00001 сек во времени выполнения?
Злостные оптимизаторы как правило не в пОчОте :)
Если тебе важные такие выигрыши во времеи, то пиши код без пробелов, без комментариев (на их игнорирование ведь интерпретатор тоже время тратит), никогда не используй ООП.
Существует такое понятие, как рациональность. Поэтому, я луше напишу:
$sql = "SELECT `id`, `title` FROM `news` WHERE `id`='$id'"
Чем:
$sql = 'SELECT `id`, `title` FROM `news` WHERE `id`=\'' . $id . '\''
Мой код будет выполняться из за этой строчки на 0.00001 сек дольше, зато при последующей работе с ним все будет происходить гораздо быстрее из за более высокой читабельности.
То же самое с классами. Если вы помешаны на скорости - используйте процедурный метод программирования, но в большие проекты свой нос даже не пытайтесь сувать, рано или поздно он превратиться из библиотеки функций в кучу дерьма.
Developer
20.02.2008, 22:38
В четвертой ветке php играла роль " или ', в пятой ветке php это уже не как не влияет, работает одинаково по времени...
+1, нечто подобное тоже где-то читал. Но из за привычки, да и гарантии, что мои символы не обработаюьтся как специальные, использую апострафы. Кавычки только в запросах HTTP (\r\n) и SQL (из за большого кол-ва апострафов в запросе).
Пример
$txt = "Значение : $txt";
$txt = "Значение : ".$txt;
Обычно реализуют первый способ, поскольку он удобнее. Но второй способ на 40% быстрее первого. Да, когда вам необходимо вывести всего одну строку существенного ускорения вы не почуствуете, но если у вас сложный сценарий, который выводит значения нескольких десятков переменных, результат будет заметен даже без спец замеров времени выполнения !
Да вы ещё подеритесь!!
А, вообще-то, какой-то странный первый пост... Не так уж и много стилей для cpp... Да и ко всему сказанномустоит добавить, что после некоторого опыта кодинга удобный стиль вырабатывается АВТОМАТИЧЕСКИ, а новички всё равно "на эту фигню" забьют - не раз проверено... Но мой личный опыт - когда я начал оформлять код красиво (к счастью, у меня это произошло довольно рано:), я внезапно обнаружил, что теперь 95% программ работают правильно с первого компила без дебага=)
Digimortal
20.02.2008, 22:53
кто вообще сказал что "правильное оформление" должно предполагать собою наиболее быстро работающий код? "правильное оформление" - это наиболее читабельный код.. )
кто вообще сказал что "правильное оформление" должно предполагать собою наиболее быстро работающий код? "правильное оформление" - это наиболее читабельный код.. )
Ну в этой ситуации придёться жертвовать , либо читабельностью кода, либо ускорением ...
оговорюсь, что когда проект маленький , то его и прочитать (понять смысл кода) легко и быстрота выполнения мало зависит от таких мелочей , но если проект масштабный - тут нужно уже думать о сервере и пользователях ...
Digimortal
20.02.2008, 23:03
>> но если проект масштабный - тут нужно уже думать о сервере и пользователях ...
я согласен.. но никто ведь и не заставляет вас всегда писать "правильно оформленный код".. это всего лишь рекомендации.. )
я согласен.. но никто ведь и не заставляет вас всегда писать "правильно оформленный код".. это всего лишь рекомендации.. )
Вообще правильно оформляемый код предпологает дальнейшую дороботку другими людьми, поэтому если код пишеться под себя , то думаю всётаки лудше заботиться о скорости ... но иногда просто бывает впадлу =))))
Д а и оформление дело привычки ...
Вы можете писать так как вам угодно, но если нужно оформление (в смысле читабельность) то есть специальные программы...
Digimortal
20.02.2008, 23:44
ssb1981
например ?
Не согласен с тобой. По поводу скорости - разница будет хм, как бы это сказать... Неощутимой, скажем так. Или для тебя играет роль в выигрыше 0.00001 сек во времени выполнения?
Злостные оптимизаторы как правило не в пОчОте :)
Если тебе важные такие выигрыши во времеи, то пиши код без пробелов, без комментариев (на их игнорирование ведь интерпретатор тоже время тратит), никогда не используй ООП.
Существует такое понятие, как рациональность. Поэтому, я луше напишу:
$sql = "SELECT `id`, `title` FROM `news` WHERE `id`='$id'"
Чем:
$sql = 'SELECT `id`, `title` FROM `news` WHERE `id`=\'' . $id . '\''
Мой код будет выполняться из за этой строчки на 0.00001 сек дольше, зато при последующей работе с ним все будет происходить гораздо быстрее из за более высокой читабельности.
То же самое с классами. Если вы помешаны на скорости - используйте процедурный метод программирования, но в большие проекты свой нос даже не пытайтесь сувать, рано или поздно он превратиться из библиотеки функций в кучу дерьма.
$sql = "SELECT `id`, `title` FROM `news` WHERE `id`='".$id."'"
мм?
$sql = "SELECT `id`, `title` FROM `news` WHERE `id`='".$id."'"
мм?
Чего ммм?:)
мне больше привычно писать вот так
$sql = "SELECT `id`, `title` FROM `news` WHERE `id`='{$id}'"
>>Парсеру необходимо проверять двойные кавычки на наличие переменных, а это -
>>какое-никакое, но время.
мне кажется что половина людей из этой темы не понимает как работает "парсер" пхп: сначала функция zend_compile преобразует пхп-код в байт-код (короче говоря зенд-ассемблер), при этом интепретация пхп-кода в соответствующий набор элементарных инструкций выполняется довольно быстро, и в веб-программировании, как заметил нерезус, это будет ВООБЩЕ не ощутимо.. далее, я больше чем уверен, что код типа:
>>$s='aaa'.$a;
и
>>$s="aaa$a";
вообще интепретируется одинаково. и только после преобразования запускается виртуальная машина исполняющая полученный код.. поэтому все ваши задержки с for'ами !вообще! смысла не несут, если оно и парсится хоть сколько-нибудь медленно, то выполняется все так же.
ZaCo, т.к. в двойные кавычки можно писать переменные, то все вхождения в них синтаксически проверяются и код
>>$s='aaa'.$a;
и
>>$s="aaa$a";
отличается с выигрышем первого!
я вроде выше все написал. если не совсем ясно, то добавлю, что если мы имеем дело с относительно большим по объему скриптом (объем такой, что время компиляции по сравнению с тем же кодом, но с заменой '-строк на "-строки будет практически таким же, ну тут не о мегабайтах текста говорится, думается и 500байт честного исходника хватит;)) то разницы не будет, поскольку именно выполняться он будет всегда одинаково. более того, что важнее - скорость компиляции или выполнения? для скрипта <?php ?> наверное все же первое, а для любых других более вменяемых? ну вот и я думаю.
Что эти 500байт...
Если двиг vBulletin, если он на античате?
Теперь представь что будет если везде будет как вы хотите...угу форум не выживет
Короче объясняю научно и популярно.
сначала функция zend_compile преобразует пхп-код в байт-код Вот. Теперь делаем выводы:
Следует знать, как работает state machine: читает посимвольно код и меняет состояния.
Поэтому разницы в скорости парсинга что у '1 ' . $ a . ' 2', что у "1 $a 2" не будет никакой.
Точнее будет(совсем ничтожная), но в пользу второго: символов меньше: меньше итераций цикла.
P.S. Сначала бы не писал хрень вроде "Вставляю свои скрипты которые предотвращают любой вид взлома", а потом уже в спор лез.
echobyte
10.03.2008, 16:26
2 Digimortal
скорее всего SSB1981 имел в виду автоотступы в редакторах
нер, давай не будем спорить...
Скачай примеры http://php.spb.ru/php/speed(2001nov13).exe проверь....
Все до сих пор актуально
действительно быстрее... ибо текст, заключенный в двойные кавычки интепритатор парсит на наличие переменных и констант.
Для особо умных: прикиньтее, я не дурак, знаю синтаксис. Круто, да?
Но блять с чего же медленнее двойные работать должны?
Читаем поост 31: научно и популярно.
Итак вопрос всем "умникам": на что тратится скорость при двойных кавычках? текст там парсится таким же образом. Только чтобы избежать бреда читаем сначала тут:
http://en.wikipedia.org/wiki/State_Machine
После прочтения этого уже можно отвечать. Внимательно слушаю.
Ваши строки, определённые при помощи ', а не ", будут интерпретироваться чуть быстрее, т.к. PHP ищет переменные внутри "..", но не '...'. Конечно, вы можете использовать это только тогда, когда в вашей строке нет переменных.
http://habrahabr.ru/blog/php/39017.html
astrologer
26.04.2008, 16:27
http://habrahabr.ru/blog/php/39017.htmlhttp://habrahabr.ru/blog/php/39017.html#comment751422 =)
http://habrahabr.ru/blog/php/39115.html
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot