Как правильно оформлять код

Discussion in 'PHP' started by nerezus, 19 Jul 2007.

  1. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    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++), стилей там вагон и маленькая тележка
     
    #1 nerezus, 19 Jul 2007
    Last edited: 24 Jul 2008
    3 people like this.
  2. n3m0

    n3m0 Elder - Старейшина

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

    ner: не будем плодить темы
     
    #2 n3m0, 19 Jul 2007
    Last edited by a moderator: 22 Aug 2007
    2 people like this.
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Пожалуй не соглашусь....
    Код выполниться быстрее при записи
    PHP:
    $greeting 'Hello'.$name.', welcome back!';
    Обсуждалось не 1 раз
     
  4. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Ну давай результаты тестирования. Причем не профайлером, а в боевой среде. Т.е. с нормально настроенным вебсервером, кешированием байт-кода и не искусственным примером.

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

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Сейчас не могу сам ничего тестировать, но уже тестировал не 1 раз...
    Смотрим статью http://php.spb.ru/php/speed.html
    Пробуем сами
     
    2 people like this.
  6. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Окей. Посмотрим статью по ссылке. Что мы видим? Бред. Почему?
    Ну к примеру для начала можно посмотреть на дату и увидеть, что текст написан 7 лет назад и давно потерял актуальность. ПХП с тех пор переписывался 2 раза, к примеру.

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

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

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    нер, давай не будем спорить...
    Скачай примеры http://php.spb.ru/php/speed(2001nov13).exe проверь....
    Все до сих пор актуально
     
  8. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    окей. Только примеры не эти(синтетические), а нормальные. Тогда и посмотрим. Потестируем(через ab к примеру)

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

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    Вообще прирост, пусть небольшой, но должен быть.
    По этой же причине в интерпретируемых языках рекомендуется строки заключать в одинарные кавычки, а не двойные. Парсеру необходимо проверять двойные кавычки на наличие переменных, а это - какое-никакое, но время.
    На мой взгляд этим вообще можно принеберечь...
     
  10. Евгений Минаев

    Евгений Минаев Elder - Старейшина

    Joined:
    12 Nov 2007
    Messages:
    55
    Likes Received:
    169
    Reputations:
    159
    Утилитой ab веб сервер тестируют, а мерять загрузку сервера ради таких тестов бред тк разница будет маленькой.Одинарные ковычки быстрее как в пятой так и в четвертой версии, я тестировал обычным таймером и исполнением тысячи строк типа print 'index : '.$temp; и print 'index : '.$temp; . В первом случае вывод занял 0.0133, во втором 0.0022 секунды . Это мелочи, но Isis прав.​
     
    #10 Евгений Минаев, 20 Feb 2008
    Last edited: 20 Feb 2008
    1 person likes this.
  11. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Но именно это играет первоочередную роль. Поэтому я и предложил тестировать этой утилитой.

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

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    376
    Reputations:
    460
    В четвертой ветке php играла роль " или ', в пятой ветке php это уже не как не влияет, работает одинаково по времени...
     
    1 person likes this.
  13. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    В конце недели комп появится, я сделаю тесты и докажу вам что я прав =)
     
    1 person likes this.
  14. SSB1981

    SSB1981 Elder - Старейшина

    Joined:
    7 Jan 2008
    Messages:
    108
    Likes Received:
    9
    Reputations:
    0
    Я полностью согласен с ISIS.
    Что тут доказывать :mad: Если кому-то надо - тот сам возьмёт и проверит IMHO это спор на пустом месте!
    Хотя я не всегда придерживаюсь этих правил, но если пишу большой проект там естественно нужно учитывать всё! Когда вы пишете код из 10-50 строк это фигня можно пренебречь но представьте код из 1000 строк...
     
  15. Developer

    Developer Elder - Старейшина

    Joined:
    3 May 2006
    Messages:
    152
    Likes Received:
    25
    Reputations:
    10
    Не согласен с тобой. По поводу скорости - разница будет хм, как бы это сказать... Неощутимой, скажем так. Или для тебя играет роль в выигрыше 0.00001 сек во времени выполнения?

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

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

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

    PHP:
    $sql "SELECT `id`, `title` FROM `news` WHERE `id`='$id'"
    Чем:
    PHP:
    $sql 'SELECT `id`, `title` FROM `news` WHERE `id`=\'' $id '\''
    Мой код будет выполняться из за этой строчки на 0.00001 сек дольше, зато при последующей работе с ним все будет происходить гораздо быстрее из за более высокой читабельности.

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

    Developer Elder - Старейшина

    Joined:
    3 May 2006
    Messages:
    152
    Likes Received:
    25
    Reputations:
    10
    +1, нечто подобное тоже где-то читал. Но из за привычки, да и гарантии, что мои символы не обработаюьтся как специальные, использую апострафы. Кавычки только в запросах HTTP (\r\n) и SQL (из за большого кол-ва апострафов в запросе).
     
  17. n-000

    n-000 Elder - Старейшина

    Joined:
    25 Oct 2006
    Messages:
    90
    Likes Received:
    36
    Reputations:
    5
    Пример
    PHP:
    $txt "Значение : $txt";
    $txt "Значение : ".$txt;
    Обычно реализуют первый способ, поскольку он удобнее. Но второй способ на 40% быстрее первого. Да, когда вам необходимо вывести всего одну строку существенного ускорения вы не почуствуете, но если у вас сложный сценарий, который выводит значения нескольких десятков переменных, результат будет заметен даже без спец замеров времени выполнения !
     
    3 people like this.
  18. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Да вы ещё подеритесь!!
    А, вообще-то, какой-то странный первый пост... Не так уж и много стилей для cpp... Да и ко всему сказанномустоит добавить, что после некоторого опыта кодинга удобный стиль вырабатывается АВТОМАТИЧЕСКИ, а новички всё равно "на эту фигню" забьют - не раз проверено... Но мой личный опыт - когда я начал оформлять код красиво (к счастью, у меня это произошло довольно рано:), я внезапно обнаружил, что теперь 95% программ работают правильно с первого компила без дебага=)
     
  19. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    кто вообще сказал что "правильное оформление" должно предполагать собою наиболее быстро работающий код? "правильное оформление" - это наиболее читабельный код.. )
     
  20. n-000

    n-000 Elder - Старейшина

    Joined:
    25 Oct 2006
    Messages:
    90
    Likes Received:
    36
    Reputations:
    5
    Ну в этой ситуации придёться жертвовать , либо читабельностью кода, либо ускорением ...
    оговорюсь, что когда проект маленький , то его и прочитать (понять смысл кода) легко и быстрота выполнения мало зависит от таких мелочей , но если проект масштабный - тут нужно уже думать о сервере и пользователях ...