Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Как правильно оформлять код (https://forum.antichat.xyz/showthread.php?t=44779)

nerezus 19.07.2007 10:30

Как правильно оформлять код
 
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++), стилей там вагон и маленькая тележка

n3m0 19.07.2007 10:44

Delphi: http://softsl.com/Pagcat-211-Pagenum-1.html
Плз, перенеси мое сообщение в соседнюю ветку "Программирование Делфи С++, АСМ"
ЧУть нетуда напостил

ner: не будем плодить темы

Isis 19.02.2008 11:59

Цитата:

B.4.2.3. Подстановка переменных

Подстановка переменных разрешается с использованием двух нижеприведенных форм:


PHP код:

$greeting "Hello $name, welcome back!";

$greeting "Hello {$name}, welcome back!" 


Пожалуй не соглашусь....
Код выполниться быстрее при записи
PHP код:

$greeting 'Hello'.$name.', welcome back!'

Обсуждалось не 1 раз

nerezus 20.02.2008 08:11

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

А то опровергать документацию каждый дурак горазд ))) Если уверен в своих словах - докажи.

Isis 20.02.2008 13:26

Сейчас не могу сам ничего тестировать, но уже тестировал не 1 раз...
Смотрим статью http://php.spb.ru/php/speed.html
Пробуем сами

nerezus 20.02.2008 17:40

Окей. Посмотрим статью по ссылке. Что мы видим? Бред. Почему?
Ну к примеру для начала можно посмотреть на дату и увидеть, что текст написан 7 лет назад и давно потерял актуальность. ПХП с тех пор переписывался 2 раза, к примеру.

Ну а можно начать читать многочисленные статьи и документацию по оптимизации. Ну там даже книги.
Основной закон оптимизации: оптимизировпать надо там, где надо. А не везде.

Вот на досуге почитайте лучше это, чем всякие заплесневелые тексты: http://rsdn.ru/article/philosophy/Optimization.xml

Isis 20.02.2008 18:04

нер, давай не будем спорить...
Скачай примеры http://php.spb.ru/php/speed(2001nov13).exe проверь....
Все до сих пор актуально

nerezus 20.02.2008 18:23

окей. Только примеры не эти(синтетические), а нормальные. Тогда и посмотрим. Потестируем(через ab к примеру)

Сомневаюсь что на реальном приложении прирост будет больше процента ;)

KSURi 20.02.2008 18:36

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

Евгений Минаев 20.02.2008 18:41

Утилитой ab веб сервер тестируют, а мерять загрузку сервера ради таких тестов бред тк разница будет маленькой.Одинарные ковычки быстрее как в пятой так и в четвертой версии, я тестировал обычным таймером и исполнением тысячи строк типа print 'index : '.$temp; и print 'index : '.$temp; . В первом случае вывод занял 0.0133, во втором 0.0022 секунды . Это мелочи, но Isis прав.

nerezus 20.02.2008 18:51

Цитата:

Утилитой ab веб сервер тестируют, а мерять загрузку сервера ради таких тестов бред тк разница будет маленькой.
Но именно это играет первоочередную роль. Поэтому я и предложил тестировать этой утилитой.

А то, что разница маленькая - я про это и говорю. Тут погрешность больше разницы то будет )

DIAgen 20.02.2008 20:05

В четвертой ветке php играла роль " или ', в пятой ветке php это уже не как не влияет, работает одинаково по времени...

Isis 20.02.2008 21:18

В конце недели комп появится, я сделаю тесты и докажу вам что я прав =)

SSB1981 20.02.2008 22:22

Я полностью согласен с ISIS.
Что тут доказывать :mad: Если кому-то надо - тот сам возьмёт и проверит IMHO это спор на пустом месте!
Хотя я не всегда придерживаюсь этих правил, но если пишу большой проект там естественно нужно учитывать всё! Когда вы пишете код из 10-50 строк это фигня можно пренебречь но представьте код из 1000 строк...

Developer 20.02.2008 22:35

Цитата:

Пожалуй не соглашусь....
Код выполниться быстрее при записи
Не согласен с тобой. По поводу скорости - разница будет хм, как бы это сказать... Неощутимой, скажем так. Или для тебя играет роль в выигрыше 0.00001 сек во времени выполнения?

Злостные оптимизаторы как правило не в пОчОте :)

Если тебе важные такие выигрыши во времеи, то пиши код без пробелов, без комментариев (на их игнорирование ведь интерпретатор тоже время тратит), никогда не используй ООП.

Существует такое понятие, как рациональность. Поэтому, я луше напишу:

PHP код:

$sql "SELECT `id`, `title` FROM `news` WHERE `id`='$id'" 

Чем:
PHP код:

$sql 'SELECT `id`, `title` FROM `news` WHERE `id`=\'' $id '\'' 

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

То же самое с классами. Если вы помешаны на скорости - используйте процедурный метод программирования, но в большие проекты свой нос даже не пытайтесь сувать, рано или поздно он превратиться из библиотеки функций в кучу дерьма.

Developer 20.02.2008 22:38

Цитата:

В четвертой ветке php играла роль " или ', в пятой ветке php это уже не как не влияет, работает одинаково по времени...
+1, нечто подобное тоже где-то читал. Но из за привычки, да и гарантии, что мои символы не обработаюьтся как специальные, использую апострафы. Кавычки только в запросах HTTP (\r\n) и SQL (из за большого кол-ва апострафов в запросе).

n-000 20.02.2008 22:48

Пример
PHP код:

$txt "Значение : $txt";
$txt "Значение : ".$txt

Обычно реализуют первый способ, поскольку он удобнее. Но второй способ на 40% быстрее первого. Да, когда вам необходимо вывести всего одну строку существенного ускорения вы не почуствуете, но если у вас сложный сценарий, который выводит значения нескольких десятков переменных, результат будет заметен даже без спец замеров времени выполнения !

desTiny 20.02.2008 22:50

Да вы ещё подеритесь!!
А, вообще-то, какой-то странный первый пост... Не так уж и много стилей для cpp... Да и ко всему сказанномустоит добавить, что после некоторого опыта кодинга удобный стиль вырабатывается АВТОМАТИЧЕСКИ, а новички всё равно "на эту фигню" забьют - не раз проверено... Но мой личный опыт - когда я начал оформлять код красиво (к счастью, у меня это произошло довольно рано:), я внезапно обнаружил, что теперь 95% программ работают правильно с первого компила без дебага=)

Digimortal 20.02.2008 22:53

кто вообще сказал что "правильное оформление" должно предполагать собою наиболее быстро работающий код? "правильное оформление" - это наиболее читабельный код.. )

n-000 20.02.2008 22:58

Цитата:

Сообщение от Digimortal
кто вообще сказал что "правильное оформление" должно предполагать собою наиболее быстро работающий код? "правильное оформление" - это наиболее читабельный код.. )

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

Digimortal 20.02.2008 23:03

>> но если проект масштабный - тут нужно уже думать о сервере и пользователях ...

я согласен.. но никто ведь и не заставляет вас всегда писать "правильно оформленный код".. это всего лишь рекомендации.. )

n-000 20.02.2008 23:08

Цитата:

Сообщение от Digimortal
я согласен.. но никто ведь и не заставляет вас всегда писать "правильно оформленный код".. это всего лишь рекомендации.. )

Вообще правильно оформляемый код предпологает дальнейшую дороботку другими людьми, поэтому если код пишеться под себя , то думаю всётаки лудше заботиться о скорости ... но иногда просто бывает впадлу =))))
Д а и оформление дело привычки ...

SSB1981 20.02.2008 23:25

Вы можете писать так как вам угодно, но если нужно оформление (в смысле читабельность) то есть специальные программы...

Digimortal 20.02.2008 23:44

ssb1981

например ?

Isis 21.02.2008 02:26

Цитата:

Сообщение от Developer
Не согласен с тобой. По поводу скорости - разница будет хм, как бы это сказать... Неощутимой, скажем так. Или для тебя играет роль в выигрыше 0.00001 сек во времени выполнения?

Злостные оптимизаторы как правило не в пОчОте :)

Если тебе важные такие выигрыши во времеи, то пиши код без пробелов, без комментариев (на их игнорирование ведь интерпретатор тоже время тратит), никогда не используй ООП.

Существует такое понятие, как рациональность. Поэтому, я луше напишу:

PHP код:

$sql "SELECT `id`, `title` FROM `news` WHERE `id`='$id'" 

Чем:
PHP код:

$sql 'SELECT `id`, `title` FROM `news` WHERE `id`=\'' $id '\'' 

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

То же самое с классами. Если вы помешаны на скорости - используйте процедурный метод программирования, но в большие проекты свой нос даже не пытайтесь сувать, рано или поздно он превратиться из библиотеки функций в кучу дерьма.


PHP код:

$sql "SELECT `id`, `title` FROM `news` WHERE `id`='".$id."'" 

мм?

DIAgen 21.02.2008 09:43

Цитата:

Сообщение от Isis
PHP код:

$sql "SELECT `id`, `title` FROM `news` WHERE `id`='".$id."'" 

мм?

Чего ммм?:)
мне больше привычно писать вот так
PHP код:

$sql "SELECT `id`, `title` FROM `news` WHERE `id`='{$id}'" 


ZaCo 21.02.2008 12:04

>>Парсеру необходимо проверять двойные кавычки на наличие переменных, а это -
>>какое-никакое, но время.

мне кажется что половина людей из этой темы не понимает как работает "парсер" пхп: сначала функция zend_compile преобразует пхп-код в байт-код (короче говоря зенд-ассемблер), при этом интепретация пхп-кода в соответствующий набор элементарных инструкций выполняется довольно быстро, и в веб-программировании, как заметил нерезус, это будет ВООБЩЕ не ощутимо.. далее, я больше чем уверен, что код типа:
>>$s='aaa'.$a;
и
>>$s="aaa$a";

вообще интепретируется одинаково. и только после преобразования запускается виртуальная машина исполняющая полученный код.. поэтому все ваши задержки с for'ами !вообще! смысла не несут, если оно и парсится хоть сколько-нибудь медленно, то выполняется все так же.

Isis 21.02.2008 12:06

ZaCo, т.к. в двойные кавычки можно писать переменные, то все вхождения в них синтаксически проверяются и код
>>$s='aaa'.$a;
и
>>$s="aaa$a";
отличается с выигрышем первого!

ZaCo 21.02.2008 12:17

я вроде выше все написал. если не совсем ясно, то добавлю, что если мы имеем дело с относительно большим по объему скриптом (объем такой, что время компиляции по сравнению с тем же кодом, но с заменой '-строк на "-строки будет практически таким же, ну тут не о мегабайтах текста говорится, думается и 500байт честного исходника хватит;)) то разницы не будет, поскольку именно выполняться он будет всегда одинаково. более того, что важнее - скорость компиляции или выполнения? для скрипта <?php ?> наверное все же первое, а для любых других более вменяемых? ну вот и я думаю.

Isis 21.02.2008 12:20

Что эти 500байт...
Если двиг vBulletin, если он на античате?
Теперь представь что будет если везде будет как вы хотите...угу форум не выживет

nerezus 28.02.2008 10:56

Короче объясняю научно и популярно.
Цитата:

сначала функция zend_compile преобразует пхп-код в байт-код
Вот. Теперь делаем выводы:
Следует знать, как работает state machine: читает посимвольно код и меняет состояния.
Поэтому разницы в скорости парсинга что у '1 ' . $ a . ' 2', что у "1 $a 2" не будет никакой.
Точнее будет(совсем ничтожная), но в пользу второго: символов меньше: меньше итераций цикла.

P.S. Сначала бы не писал хрень вроде "Вставляю свои скрипты которые предотвращают любой вид взлома", а потом уже в спор лез.

echobyte 10.03.2008 16:26

2 Digimortal
скорее всего SSB1981 имел в виду автоотступы в редакторах

MartS 11.03.2008 15:34

Цитата:

Сообщение от Isis
нер, давай не будем спорить...
Скачай примеры http://php.spb.ru/php/speed(2001nov13).exe проверь....
Все до сих пор актуально

действительно быстрее... ибо текст, заключенный в двойные кавычки интепритатор парсит на наличие переменных и констант.

Isis 11.03.2008 21:24

Это уже сказали =\

nerezus 11.03.2008 22:40

Для особо умных: прикиньтее, я не дурак, знаю синтаксис. Круто, да?

Но блять с чего же медленнее двойные работать должны?
Читаем поост 31: научно и популярно.

Итак вопрос всем "умникам": на что тратится скорость при двойных кавычках? текст там парсится таким же образом. Только чтобы избежать бреда читаем сначала тут:
http://en.wikipedia.org/wiki/State_Machine

После прочтения этого уже можно отвечать. Внимательно слушаю.

gibson 26.04.2008 16:17

Цитата:

Ваши строки, определённые при помощи ', а не ", будут интерпретироваться чуть быстрее, т.к. PHP ищет переменные внутри "..", но не '...'. Конечно, вы можете использовать это только тогда, когда в вашей строке нет переменных.
http://habrahabr.ru/blog/php/39017.html

astrologer 26.04.2008 16:27

Цитата:

Сообщение от gibson
http://habrahabr.ru/blog/php/39017.html

http://habrahabr.ru/blog/php/39017.html#comment751422 =)
http://habrahabr.ru/blog/php/39115.html


Время: 05:51