![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Давайте тут собирать правила хорошего кода.
Например: 1. Не писать код работающий только с register_globals on. Вместо этого использовать $_GET[''] и $_POST[''] 2. Не называть функции непонятными для посторонних именами 3. Делать комментарии в коде, чтобы можно было легко разобраться в нем. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
4. Отступы.
5. Минимум переменных необходимых для решения задачи. 6. У функций return 7. Вывод гипертекста - один раз. |
|||
|
||||
HalkaR |
|
|||
![]() Пуфыстый назгул ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2132 Регистрация: 8.12.2002 Где: В Москве Репутация: нет Всего: 42 |
8. Отделение ввода данных в базу от вывода гиперетекста
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Я бы сказал: " отделение всего кода от вывода ьгипертекста". По сути шаблоны. Что скажешь? |
|||
|
||||
yUAC |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 9.6.2004 Репутация: нет Всего: 3 |
Кстати говоря насчет вывода текста один раз не могу согласиться - это неправильно.
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Почечму? Во-первых отпадает (практически) трабла с заголовками и установкой куков. Во-вторых существенно увеличиваетс производительность скрипта. В третьих это более грамотно с точки зрения проектирования, т.к. в случае чего можно пройтись по всему гипертексту. |
|||
|
||||
IZ@TOP |
|
||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
9. Краткость сестра таланта.
Пример:
10. Оптимизация строковых функций. Пример:
PS Пока все. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
HalkaR |
|
||||
![]() Пуфыстый назгул ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2132 Регистрация: 8.12.2002 Где: В Москве Репутация: нет Всего: 42 |
Полностью отделить код от html очень тяжело, но естественно желательно. Я просто более мягко сформулировал. |
||||
|
|||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Слишком четкое отделение РНР кода от HTML приведет скорее всего к тому что появится еще один интерпретируемый язык, что приведет к большому снижению производительности.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 4 Всего: 53 |
||||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Irokez
это правила составления PEAR. |
|||
|
||||
Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 4 Всего: 53 |
Mal Hack
![]() по-моему стандарты написания пеар пакетов стоит взять за стандарты написания всех пхп скриптов ... |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Irokez
я к тому, как бы что там описывается схема структура файла PEAR |
|||
|
||||
Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 4 Всего: 53 |
Mal Hack
так пеар файл и есть ни что иное как грамотно написанный пхп скрипт, и по ссылке описываются как такой скрипт грамотно написать (в плане синтаксиса) |
|||
|
||||
Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
не факт. Многие считаю его тяжелым ![]()
Я имею ввиду (может и ошибаюсь) имел ввиду что класс должен называться так-то, сожеражть обязательно определенные свойства и методы.. |
||||
|
|||||
Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 4 Всего: 53 |
Mal Hack
да нет там такого:
стандарты написания кода, а не класса, т.е. как правильно код написать |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Звиняй, не прав я был. Раньше этого не замечал.
|
|||
|
||||
Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: 4 Всего: 53 |
![]() |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
можно так же писать все константы прописными буквами - это как общепринятное правило уже стало
![]() |
|||
|
||||
Илья |
|
||||
Unregistered |
Split и Explode две совершенно разные функции. И утверждать что тот кто использует Split - неопытный человек, полный бред. ;) |
||||
|
|||||
Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 3 Всего: 55 |
Илья
чаще всего так... обычно split приименяют необоснованно.. |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Илья, есть куча примеров, хотя бы на данном форуме
![]() ![]() Я сколько не делал всевозможных скриптов, ну нигде я не нашел применения этой функции ![]() -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Ринат |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 31.3.2005 Репутация: нет Всего: нет |
IZ@TOP
explode не приходилось юзать? ![]() |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Ринат, прочти тему с начала, потом разбегись и ... об стену - разбег 100 метров
![]() -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Alone |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: нет Всего: 6 |
Я считаю, отделение логики от гипертекста - совсем не в тему.
Топик создавался для сбора примеров правил хорошего кода. Со своей стороны могу подчеркнуть некоторые моменты, которых я придерживаюсь: таб - пробелами, 4 символа класс - имя класса и его конструктора с большой буквы, верблюжьим стилем ( ExampleClass() ) методы - с маленькой, верблюжьим стилем ( theMethod() ) переменные - в основном с маленькой буквы, через подчеркивание ($the_variable) фигурные скобки - ВЕЗДЕ(!) в одной строке с оператором/функцией/итд... пример
документирование кода - ОБЯЗАТЕЛЬНО! все классы, их методы, переменные... константы - большими буквами дефайны - тоже. в строках, при использовании переменных, обязательно выделяю их вот так
require/include - в скобках. это больше для красоты. require_once("MyClass.php"); А вот чего никак не возьму в привычку, так это пробелы вокруг знака = ![]() Это сообщение отредактировал(а) Alone - 6.10.2005, 10:34 -------------------- |
||||
|
|||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Мне нравятся упрощенные конструкции условий использовать:
Добавлено @ 13:54 А в остальном полностью поддерживаю Alone, ну, за исключением пробелов, я вставляю до и после знака =. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Bikutoru |
|
|||
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: нет Всего: 22 |
Полностью согласен с Alone, делаю почти один в один. Единственное исключение, так это
Исключительно ради наглядности ![]() Ну и в обязательном порядке пробелы вокруг = + - * / & && | || == != > < >= <= -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 1 Всего: 18 |
IZ@TOP
Да мне тоже нравятся упр констр, но не все их понимают. Если для себя - можно, а если для кого-то? Коментировать каждую функцию, что делает, что на входе, что на выходе. Созавать в каждом классе пример использования (закоментированый) + ко всему... Не знаю относится это к правилам хорошего кода, но что правила - точно. не объединять при выводе длинные строки, время выполнения увеличивается Т.е.
забыть про exec и system! -------------------- ГЫ... |
|||
|
||||
o.s.a. |
|
||||
![]() Xo4y B MocKBy ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 16.2.2005 Где: Ташкент Репутация: нет Всего: 15 |
Так некоторые умудряются еще и пробелы вокруг . ставить
-------------------- Не могу стоять, пока другие работают, пойду полежу. |
||||
|
|||||
Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: нет Всего: 6 |
Я не хочу сказать что это излишне, я просто еще сам не привык везде ставить пробелы вокруг = Тоесть правилом хорошего кода я это как раз считаю ![]() А вдополнение ко всему сказанному я бы рекомендовал пользоваться ZDE Умопомрачительная девелоперская среда! Подойдет как профессионалу, так и начинающему. Главное не кипятиться при первых попытках работы с ней. ![]() Да она тяжеловесная, потому как писана на яве, но в этом есть смысл. Но по своему удобству / функциональности она превосходит все остальные продукты, коих можно на пальцах перечислить. Чего только стоит CodeCompletion! При обращении к объекту показывает все его методы и переменные. А phpDocumentor! Если у вас в привычке есть пунктик - документировать все классы/методы/прочие_функции, то создание хтмл варианта документации разработчика состоит из 2-3 кликов. В общем вот такие вот дела ![]() ![]() -------------------- |
|||
|
||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: нет Всего: 69 |
А по мне, так удобнее (и красивее) пользовать Pear стандарты:
Это сообщение отредактировал(а) -=Ustas=- - 19.10.2005, 14:19 -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 1 Всего: 18 |
Есть некоторые люди, которые ещё и дополнительный перенос строки ставят... )))
-------------------- ГЫ... |
|||
|
||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: нет Всего: 69 |
Т.е.? -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
Master |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: нет Всего: 10 |
всем хай
![]()
Изотоп, глядя вот на это хочеться сразу предложить отделять комменты переносами, а то когда правиш код без подсветки тяжко становиться:
Это сообщение отредактировал(а) Master - 24.10.2005, 16:21 -------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
||||
|
|||||
AntonioBanderaz |
|
||||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 1 Всего: 18 |
Добавлено @ 13:53 Если что пример могу скинуть в виде ссылки... -------------------- ГЫ... |
||||
|
|||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: нет Всего: 69 |
AntonioBanderaz, жуть!!!
![]() ![]() -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 1 Всего: 18 |
Да я и сам испуг когда эт увидел...
-------------------- ГЫ... |
|||
|
||||
wsr |
|
|||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
Я лично при кодинге больших "приложений", предпочитаю пользоваться следующим:
По моему это лучший вариант для более удобного парсинга своего же кода в будущем! А то будет в коде куча {{{{{{{ и }}}}}}}} и попробуй разберись что к чему относится, а так все четко и понятно! Это сообщение отредактировал(а) wsr - 23.1.2006, 01:08 --------------------
ICQ : 918-318Сайт : Lock-Team |
|||
|
||||
IBSN |
|
||||
Unregistered |
Позвольте, отделение пробелами - увеличивает читабельность, имхо...
1.
2.
|
||||
|
|||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
wsr, мне кажется что эти конструкции немного устарели. А с фигурными скобками разбираться нет проблем - ставим Zend Studio и радуемся крестикам которые эти скобки группируют (скрывают, открывают).
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 1 Всего: 87 |
Изотоп, умм... вы меня извините, конечно, но зенд стоит 99-1499 баков стоит
![]() А вообще, хорошо оформленный код избавляет от проблемы различения '}'. Свёртывание кода, имхо, вообще не должно влиять на удобочитаемость кода. Да, и, кстати, насколько я помню комодо тоже свёртывает неплохо. |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Kefir, кто чем пользуется. Я привык к зендовскому монстру, стоит да, но я пока "триал" юзаю (хи-хи). Правильно ты сказал - как напишешь, так и прочитаешь.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Janus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 26.9.2005 Репутация: нет Всего: 1 |
Многие редакторы могут сворачивать блоки (кажется, это называется "фолдеринг" или что-то типа этого). Например, Notepad++. Он к тому же идет под GNU GPL.
--------------------
Проект "Репликатор" |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
ЗЕНД тоже с 5 версии сворачивает.
|
|||
|
||||
Janus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 26.9.2005 Репутация: нет Всего: 1 |
Тут говорилось о том, что он платный и я предложил бесплатную альтернативу.
--------------------
Проект "Репликатор" |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Где-то читал, что:
echo "My name is $name!"; Намного быстрее чем echo "My name is".$name."!"; И быстрее чем: echo "My name is {$name}!"; |
|||
|
||||
wsr |
|
|||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
Быстрее но не значит лучше! В дальнейшем, при парсинге кода гораздо легче в большом блоке данных найти echo "My name is".$name."!"; чем echo "My name is $name!"; --------------------
ICQ : 918-318Сайт : Lock-Team |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Самое быстрое и лучше - второй вариант, затем третий, затем первый.
|
|||
|
||||
Ciber SLasH |
|
||||||||||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: нет Всего: 67 |
Я вот юзаю такой синтаксис:
1) если PHP-код идёт блоками с (X)HTML-кодом, то делаю так:
2) если есть какие-то структурированные массивы, то описываю их структуру в комментах:
3) отделяю некие псевдо-блоки кода, которые являются одной частью:
4) комментарии начинаю с большой буквы, если они находятся в новой строке, иначе — с маленькой. Выравниваю комменты, если они находятся в ближайшей видимости:
5) отделяю пробелами символы операций (меньше, больше, присвоить значений и т.д.) 6) отделяю важные блоки так:
7) описываю новые элементы с новой строки при определении массивов, но только если это логично для данных массива:
8) функции описываю так:
9) для отступов юзаю табы в размере 4 знакоместа 10) строки с использованием переменных разбиваю:
11) там, где не нужна обработка escape-последовательностей, юзаю одинарные кавычки для строк, иначе — двойные:
12) пишу код, который не зависит от register_globals, чем [новички (не все); люди которые не беспокоятся о безопасности; ленивые (которым пофигу); возможно ещё есть кто-то, кого я не включил в этот список] зачастую пренебрегают... а жаль 13) пишу в EditPlus, хотя как-нить обязательно прикуплю диск (конечно не лицензионный, денег таких нет, чтобы разбрасываться ими на такое добро) с Zend-ом ЗЫ: кстати описывание комментариев по PEAR стандартам отличается в русской и английской доке: ru: http://pear.php.net/manual/ru/standards.header.php en: http://pear.php.net/manual/en/standards.header.php Мне больше нравится так, как в английской доке ![]() Это сообщение отредактировал(а) Ciber SLasH - 20.1.2006, 09:50 |
||||||||||||||||||
|
|||||||||||||||||||
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: нет Всего: 18 |
Читал, что лучше использовать одинарные кавычки+конканетация переменных.
-------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
Janus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 26.9.2005 Репутация: нет Всего: 1 |
Так и есть. В этом случае не тратится лишнее время на разбор строки.
--------------------
Проект "Репликатор" |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: нет Всего: 43 |
||||
|
||||
Древлянин |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 20.1.2006 Репутация: нет Всего: нет |
||||
|
||||
Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: нет Всего: 67 |
||||
|
||||
wsr |
|
|||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
Помоему сейчас тема с кавычками не особо актуальна, так как рано или поздно, но все равно все перейдут на PHP 5.
А там как известно "все" одинаково. ИМХО. --------------------
ICQ : 918-318Сайт : Lock-Team |
|||
|
||||
idler |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.2.2006 Репутация: нет Всего: 1 |
Правила написания PEAR рулят однозначно!!!
Код получается красивый, понятный, быстрый и самодокументирующийся (PEAR::phpDocumentor) |
|||
|
||||
CyClon |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Мне PEAR не нравятся... Больше нравится такой стиль:
|
||||
|
|||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: нет Всего: 69 |
CyClon, лучше всего привыкать к общим используемым стандартам, нежели писать так как тебе нравится
![]() -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: нет Всего: 67 |
||||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: нет Всего: 67 |
||||
|
||||
Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: нет Всего: 6 |
Если встерчается конструкция из более чем 2х циклических вложений - это уже повод задуматься о декомпозиции... Это сообщение отредактировал(а) Alone - 2.3.2006, 10:37 -------------------- |
|||
|
||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: нет Всего: 69 |
Стандарты в любом случае должны быть! Т.к. вольное программирование - как кому нравится, становится трудным в сопровождении кода другими программистами! Личный пример: полгода назад принял некоторый проект на поддержку, так я того прогораммиста готов завалить при первой же встрече!!!!!!!! Это сообщение отредактировал(а) -=Ustas=- - 2.3.2006, 10:42 -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Меня просто в дрошь кидает, когда вижу такое:
Не красиво до ужаса, вот } else { совсем другое дело ;) |
|||
|
||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: нет Всего: 69 |
Стандарты пиар у руля!!! По-любому!
-------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
S.A.P. |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
для такого случая я использую
а вобще
И что тут такого ужастного?? Все наглядно и понятно. |
||||||
|
|||||||
Ciber SLasH |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: нет Всего: 67 |
Я помню когда сам писал так давно на С. У нас в универе сначала преподавали Pascal и он мне понравился до безумия. Ну и там как раз блоки операторов отделяются так:
и когда после Pascal-я начали учить C, то я старался придерживаться той структуры кода, как в Pascal-е, т.е. писал так:
но потом от такой структуры отказался, т.к. код сильно расплывается из-за лишних переводов строк. И в итоге мне приглянулась такая структура:
|
||||||
|
|||||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Кому что. Мне больше с отступами нравится
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
Мне тоже не нравятся стандарты PEAR.
Сам делаю так: Имена переменных: все буквы маленькие, слова разделяю "_". Имя классов: Каждое слово с заглавной буквы. Без "_". Имя методов, функций - аналогично названию класса. Приватный метод: вначале "_". Название свойств: первое слово с маленькой буквы, остальные слова с большой. Без "_". Все отступы делаю табуляцией. Пример:
|
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
А я так пишу:
По мне, так очень удобно. Особо в стандарты не всматривался, пока пишу как удобно мне. Вроде все, кто смотрел мой код, врубались быстро и не жаловались. |
|||
|
||||
skalex |
|
||||||||
![]() Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: нет Всего: 23 |
Может кто писал уже, не знаю ...
Вот такой код:
я всегда стараюсь записывать так:
Еще пример:
заменяю на
Разумеется, речь идет о одностроковых действиях в блоках if-else. ![]() |
||||||||
|
|||||||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: нет Всего: 73 |
А кто сказал, что PEAR - это эталон? Если нашлось достаточно большое количество противников такого подхода, то что-то неладно с этим стандартом. Я сам сторонник стандартов, но стандарты, которые усложняют коммуникативность должны быть изменены, ИМХО.
Когда приходится рефакторить огромное количества кода, то начинаешь плеваться от такой размазанности, т.к. страдает визуальное восприятие. Ведь код должен не только работать, но и читаться. Я всеми руками за конструкцию:
В коде: смысловые блоки компактны, четко выделены узлы ветвления, при этом отражено направление ветвления визуально (что страдает у PEAR-а). -------------------- Теперь при чем :P |
|||
|
||||
CyClon |
|
||||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Мне все больше нравятся тсандарты PEAR. Так, пересмотрев справочник я нашел там вот такие вещи:
Чем вам не нравится данный подход? Добавлено @ 13:13 Основные выдержки из мануала:
Оформление оператора if:
Оформление оператора switch:
Объявления переменных, выхов функции:
Объявление функций:
|
||||||||||||||||
|
|||||||||||||||||
Ignat |
|
||||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: нет Всего: 73 |
Протестую. Из чисто практических соображений - задолбаешься. Приведу в пример опять рефакторинг - когда приходится лечить прбитый к левому краю код, то количество выставленных табов исчисляется тысячами. Соответственно в пробелах в 4 раза больше. Тем более парсить такой код впоследствии проще.
А это красиво, но малочитабельно. Объявление из 7-8 переменных с именем разной длины приводит к неприятному эффекту, когда видишь, что присваивается, но не видишь чему. Приходится либо ставить курсор, чтобы посмотреть номер строки, либо приложить к монитору линейку =) Вот это излюбленный мной стиль. Но предпочитаю в больших блоках ставить разрыв (пустая строка) после открытия блока и перед закрытием. ИМХО, break вертикально должен совпадать с соответствующим case, т.к. по сути является его закрытием, следовательно визуально не должен "вылетать" из логики. A case и default в свою очередь должны иметь отступ от switch, чтобы не "смазывать" закрывающую скобку. Пример (живой):
Всё вышеизложенное - моё ИМХО. -------------------- Теперь при чем :P |
||||
|
|||||
skalex |
|
|||
![]() Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: нет Всего: 23 |
Вообще в некоторых редакторах есть функции вылечивания такого кода (анализ и автоматическая расстановка отступов). |
|||
|
||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: нет Всего: 73 |
Ну рефакторинг обычно включает в себя не только расстановку отступов.... Так что это просто горькая необходимость. Иногда даже приходится убивать уже выставленные грамотно отступы, при переносе блока.
Ну... мы такой роскошью не пользуемся ![]() ЗЫ А может в нём тоже это есть? -------------------- Теперь при чем :P |
|||
|
||||
skalex |
|
|||
![]() Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: нет Всего: 23 |
Нет. А жаль ... Редактор то достойный. Плохо также, что он вяло развивается ... |
|||
|
||||
CyClon |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Если писать в блокноте - я с тобой согласен. Но если писать в том же Zend Studio или PHP Expert Editor, то там можно задать определенное кол-во пробелов. Нажал TAB - 4 пробела есть.
Тут я с тобой согласен. Да и это не правило написания - это совет.
Ну, мне вообще нравится такой стиль:
Но я все же буду опираться на стандарты ![]()
Нет, как раз-таки break не должен совпадать с case, т.к. это конструкция да и если мы напишем continue? В общем протест ![]() Мой любимый силь:
|
||||||||||||
|
|||||||||||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Люблю нажимать Alt + F8 в Визуале
![]() ![]() ![]() А что деласть с кодом и с отступами если использую EOF?
Перед EOF; же нельзя ставить пробелы. |
|||
|
||||
Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: нет Всего: 6 |
4 пробела отобразятся ОДИНАКОВО в любом редакторе, в то время как tab отображается ВЕЗДЕ ПО РАЗНОМУ. Отсюда и рекомендация не использовать его в разметке кода. Знаю многие конторы, где за каждый найденый таб штрафуют. 0.5$ "Молдняк" излечивается после первой же зарплаты ![]() Добавлено @ 13:23 Кроме того там есть "Auto indent code" который, при отсутствии таб-ов, правильно расставит отступы. Кстати, табы в зенде лечу нажатием ctrl+h (заменить '\t' на '____' 4 пробела ![]() -------------------- |
|||
|
||||
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: нет Всего: 18 |
Какие жаркие споры
![]() Джефф Элджер в своей книге "C++ For Real Programmers" писал
Почему бы эту фразу не применить к этому топику? ![]() Каждый пишет как ему удобно. Важны идеи. -------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: нет Всего: 73 |
У нас в конторе такой подход называют "креатиффом". Есть товарищи, пишут очень идейно, но в коде хрен разберешься... По три-четыре оператора в строчку и все логи HEX-дампом. -------------------- Теперь при чем :P |
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
Очень жаль что обсуждение остановилось на КАЖДОМУ СВОЕ.
Хотелось бы прийти к более конкретному "доку по стилю написания". Даже если простым большинством голосов ![]() |
|||
|
||||
dsCode |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: нет Всего: 26 |
Дочитал до середины, дальше, к сожалению, не осилил =)
Кто бы что не говорил (про "каждому свое") - по-любому должны быть style guid'ы. Конечно, они могут быть локальными в какой-то компании, но есть и общепринятые. Код Zend'a и Pear'a - еще не эталон. Поищите нормальную достоверную, стандартизированную документацию по кодингу на PHP. Потому что существует такое понятие как "профессиональный почерк" и все ИМХИ в нем не прокатят ("я привык так-то и так-то", "так лучше" и т.д.). Локальные привычки еще ничего не значат. Вот в этой теме обсуждались некоторые основные принципы. Они верны, и PHP касаются тоже. P.S.: кстати, насчет сокращений: если условие одиночно, то можно (и даже более профессионально) писать так:
|
|||
|
||||
theworldcreator |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: нет Всего: 13 |
Интересно. Никогда не задумывался над таким применением. Надо будет попробовать. Я последнее время, при большом объеме кода, пишу так:
А если условие слишком большое, писал его не целиком, и так понятно:
P.S. Здесь так активно рекламировали zend, что я даже скачал. Могу скинуть найденный только что keygen. Либо в личку, либо пусть модератор разрешит его здесь выложить(или хотя бы ссылку показать) |
||||||||
|
|||||||||
Vaulter |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
если $b не существует будет WARNING поэтому
смотря по контексту |
||||||
|
|||||||
theworldcreator |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: нет Всего: 13 |
А разве он так не будет проверять переменную только на существование? Добавлено @ 18:21 незнаю можно ли так(скоро проверю), но должно работать:
Это сообщение отредактировал(а) theworldcreator - 25.9.2007, 18:23 |
||||||
|
|||||||
theworldcreator |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: нет Всего: 13 |
Мой способ работает. Ваш
В результате $a==false, а не 3, как задумывалось. empty() работает нормально. Он просто проверяет на наличие переменной И на ее НЕ равность false, что делает функцию очень удачной для данного случая. |
|||
|
||||
dsCode |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: нет Всего: 26 |
Vaulter, да речь не "о существовании" / "не существовании" переменных там каких-то (этот пример - так - до кучи написал, он тут не при чем вообще). Основная речь, я еще раз повторю - стандартизованные правила оформления кода. Мой вам совет, други, - сразу себя лучше приучать к правильному коду и избавляться от неправильных привычек (удобным вам кажется или нет, но если это не правильно - всегда будет выдавать непрофессионала).
|
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
во всяком случае, я всегда стараюсь придерживаться Zend овского стиля написания кода, искать изящные решения ...
к примеру: когда я работал в одной московской конторе (поддерживал ранее созданные сурсы и создавал новые), попадались такие сайты, где .htaccess весил ~1мб, причем совершенно необоснованно, без комментов. соответственно заглядывая в php можно было потерять сознание. теперь стараюсь в любом случае, на сколько бы "наколенной" разработка не была придерживаться стандартов. этоисты в программировании - муветон! |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 2 Всего: 401 |
Имхо, в таких выражениях для наглядности обязательно ставить скобки, чтоб не вспоминать на ходу приоритет операторов и не спотыкаться на различиях ||-or и &&-and... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
FCCStepan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 31.10.2007 Репутация: нет Всего: нет |
Прочитал две страницы, и решил посеять зерно сомнения в ваших, без сомнения, светлых головах
![]() Сколько пишу на пхп, постоянно ловлю себя на мысли, что мозг не работает, тут нет ничего сложного, после 2го сайта все пишется уже подсознательно, вместе с чатами, фильмами и смс. А когда пишешь <вырезано> код, без структуры, с определением функций в функциях, с переопределением глобальных переменных, с кривыми комментариями, которые понятны только мне (на примерах и метафорах из жизни) и все еще это пополняешь названиями функций типа Audi_R8 или zzt213 (кузов новой тойота селика), то в голове приходиться держать массу всяких ассоциаций и сравнений, что делает процесс хотябы более интересным и требовательным к себе, нежели просто , простите, тупо $OB1.="bye;" echo $OB1; unset ($OB1). Нужна ли эта красота и порядочность в и без того простых кодах, когда вы пишете свое для себя под себя, и так чтобы кроме вас это пользовать никто не смог?
Это сообщение отредактировал(а) skyboy - 12.12.2007, 09:23 |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
ну, да. конечно. машина, для управления которой надо будет полгода учиться в ВУЗе - это самая что ни на есть хорошая машина, потому что заставляет думать и вспоминать, каким образом можно переключиться с первой передачи на вторую. как же.
а как же ошибки? легко их отлавливать, если постоянные eval? а если функции в функциях? как быть при добавлении нового функционала через полгода? удобно? просто? без ошибок? нет, товарищ, с такими взглядами жить будет трудно... |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
значит товарищ мало кода пишет, у меня уже через месяц вылетят все ассоциации, так как и мировозрение тоже меняется, а разбираться в километрах уже малознакомого кода - проделывать работу второй раз
|
|||
|
||||
N0dwis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: 1 Всего: 4 |
Не знаю, насколько сложные проекты Вы писали, но мое мнение - не очень сложные и не профессиональные. Да, если пишешь скрипт на 20 строк, то можно обзывать переменные a, b, c и т.п. но если объем кода переваливает даже за 10-20 кб, то (во всяком случае у меня), начинаются проблемы с запоминанием всех имен переменных, функций, классов и т.п. А если они еще и будут названы, как Вы предложили, то проект не будет закончен никогда! Все время уйдет на поиск и попытки написания таких имен. А если еще и пишешь не сам, а в команде - то еще дольше! ![]() Плюс дальше будут БОЛЬШИЕ проблемы с редактированием кода. Вспомнить даже через 2 - 3 дня после написания что именно делает функция с именем zzt213 (особенно если она не очень большая и используется не часто) будет проблематично. Основные усилия при написании программы должны быть направлены не на разгадывание ребусов с именами переменных, а на построение, написание и отладку логики программы. Если название переменной или функции выбрано правильно - редактировать код можно даже не зная абсолютно точно где и как переменная используется, а просто видя перед собой локальный кусок кода (серьезные изменения так лучше все-таки не делать, но для мелких - самое то). А вот как выбирать имена - это уже искусство. |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: -2 Всего: 32 |
мне кажется, что FCCStepan - это то, что называеют "сетевым троллем". Человек пишет не для того, чтобы разобраться самому или посоветовать другим, а чтобы вызвать флейм.
Я не думаю, что он нуждается во всех тех многочисленных советах, которые на него посыпались. Если же подходить к его заявлениям серьёзно, то есть вещи, которые невозможно объяснить - их можно понять только на собственном опыте. К примеру, все эти многочисленные заверения о том, что он сам через два дня забудет. Тем более, что он сам говорит, что "усложняет" код для развлечения. Ну развлекается человек и развлекается. Мало ли какие у кого странности. Смысл чьи-то личные тараканы в теме, посвященной технологии в целом? Впрочем, повторюсь, я всё равно не верю, что все это написано всерьёз, а не с целью развлечься. |
|||
|
||||
N0dwis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: 1 Всего: 4 |
Понял!
FCCStepan пишет просто crackme на php! ![]() |
|||
|
||||
FCCStepan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 31.10.2007 Репутация: нет Всего: нет |
В каждой шутке есть доля шутки
![]() ![]() ![]() Feldmarschall, Про сетевого троля не очень понял сравнение . N0dwis, если совсем асбтрагриоваться, то можно и так сказать. Да, речь не идет о проектах, которые должны развиваться, и т.д и т.п. А если это разовый заказ на биллинговую систему, от, как потом выясняется, не очень чистоплотной компании, то почему бы и не вспомнить детство. Ладно ![]() |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
FCCStepan, это называется обфускация и ею совершенно не нужно заниматься программисту самому.
По теме же, можно спорить бесконечно. Однако важно одно, что бы вы всегда придерживались *одного* стиля. |
|||
|
||||
FractalizeR |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 27.12.2007 Где: Россия/Москва Репутация: 1 Всего: 4 |
Полностью согласен. -------------------- Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя. |
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Код должен иметь возможность к расширению и быть достаточно гибким + http://agilemanifesto.org/
Для шаблона, имхо, твой вариант не менее ужасен, всего 4 переменных да ещё и с заранее заданными именами, где же гибкость?
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Плясать нужно начинать от стандартов кодирования Zend.
Если что-то сильно не нравится - используем свое. Чем более распространенный стиль написания кода вы используете, тем легче его будет читать другим кодерам. Если вы пишите в команде, не важно какие стандарты вы используете, главное чтобы все, кому нужно, без проблем разбирались в вашем коде. ИМХО "красиво" написанный код повышает "КПД" ![]() ЗЫ: Так же есть стандарты PEAR, но лично мне по душе больше Zend. Однако, вопреки стандартам Zend: 1. Не использую завершающий тег "?>" 2. Иногда использую другой стиль объявления массивов 3. Вместо "elseif" использую "else if" (C++ Style) 4. Если возникают вопросы, какую функцию использовать (напр. count или sizeof) - опираюсь на стандарты языка С++. Ссылки по теме (4 разных стандарта кодирования): http://framework.zend.com/manual/en/coding...ding-style.html http://pear.php.net/manual/en/standards.php http://drupal.org/coding-standards http://tony2001.phpclub.net/doc/standard/ Выбор только за вами. Это сообщение отредактировал(а) CyClon - 24.2.2008, 10:55 |
|||
|
||||
dsCode |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: нет Всего: 26 |
CyClon,
по-моему как раз-таки у Зенда написано НЕ использовать завершающий тег, если нет перемешки php и html (я тоже не использую ;)).
ага, а потом придет человек, который все время писал, придерживаясь Зенда (например) - и будет разбираться в вашей, понятной только вам, иероглифической каше =) P.S. вот в этом плане Python мне очень нравится - даже отступы "стандартизованы" - если в следующей строке будет не такое количество отступов, как в изначальной - компилятор выдаст ошибку =) Отличное принудительное обучение людей писать правильно =)) На такой код любо посмотреть ) К тому же некоторые (Sun (Java), Python, др.) выкладывают официальные Programming Style Guide'ы, следовать которым - ну я считаю уважением к языку. Это сообщение отредактировал(а) dsCode - 24.2.2008, 12:21 |
||||
|
|||||
CyClon |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Ну, я конечно не имел ввиду код без отступов, писанный человеками-обсуксаторами ![]() ![]() ![]() ЗЫ: Сейчас перечитывал все 4 стандарта, все разные ![]() Что не понравилось в PEAR сейчас: 1) Использование "elseif" (я использую "else if" 2) Синтаксис оператора switch (здесь я использую Zend-Style) Плюс ко всему, не могу определиться с именованием. Очень все стандарты разные, причем у каждого именования свои плюсы и минусы. В классах использовать сокращения типа HTML в верхнем регистре делает названия классов непотяными (Например: HTMLFormBuilder, HTMLToXML). Использование только первый заглавной буквы - некрасивыми (HtmlFormBuilder, HtmlToXml). Однако, скорее придется использовать второй вариант. Далее с функциями и переменными. В одном из стандартов призывают использовать C-Style имена переменных и функций ($var_name, $life_time, get_file(), set_value()), да бы не путать их с чем-то там ![]() ЗЫ: Пока писал, даже немного определился со "своими стандартами". Пора бы уже твердо это усвоить и писать годами код в одном стиле. Ну, и наконец, вспомнил про include. Тут то же, что и с константами слева, и заверщающим тегом. Наверно буду использовать include_once и require_once и работать на "максимальную защиту от дурака а-ля случайных ошибок". Однако, include/require являются такими же конструкциями (а не функциями) языка, как и return. Тут я опять стал на перепутье - использовать скобки или нет? С-Style:
Или же:
В общем, больная тема, уже надоела ![]() Добавлено @ 13:57 Кстати, иногда встречал такое написание кода:
Кто как смотрит на доп. пробелы по бокам внутри скобок? ![]() ![]() Это сообщение отредактировал(а) CyClon - 24.2.2008, 13:58 |
||||||||
|
|||||||||
bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
совершенно не согласен, у меня внимание разбегается, а код зрительно распадается для меня оптимально иметь пробелы вокруг таких элементов как: = == === + - / но никак не скобок ещё и фигурные скобки
так по-моему оптимально |
||||
|
|||||
Aikus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 29.11.2007 Репутация: нет Всего: 1 |
Уф дочитал. Много интересного узнал. Всё замечательно, т.е. есть замечания:
вы напрасно развили тему как писать
Это как раз то, что можно оставить на откуп программеру или кодеру (в завивимости от квалификации). Гораздо важнее чтобы эту конструкцию не сокращали, т.к. тогда теряется прозрачность кода. Естественно важно как именовать функции, но гораздо важнее создать структуру кода, и не с помощью большого дерева подкрепляемых файлов (include "file.php"), а с помощью создания модулей (в моём понимании функции, классы). А если писать монолитный код, то хоть как ты именуй функции и пиши if then else, с ростом кода потеряется его смысл. Да и если писать такие вот модули, то инклудить можно будет в одном месте (в начале). Также, очень важно проектирование, частично затронуто абзацем выше, т.е. формирование заголовков, внутренних ссылок и т.д в проекте. P.S. со времен java я делаю мануалы во время написания кода, используя самописную утилиту по образу и подобию javah |
|||
|
||||
MeIsGremlin |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 2.12.2005 Где: Киев Репутация: нет Всего: нет |
Одинарные кавычки работают быстрее чем двойные так как не включается интерпретатор замены. Поэтому
Будет работать быстрее чем тоже самое в двойных кавычках. Рекомендую в фунциях, условиях и различных операторах использовать использовать именно одинарные кавычки. например
Максимально отделить программирование от гипертекста. Чтоб функции расчета, баз данных, создания, обработки возвращали лишь код. А вывод гипертекста или определения переменных шаблона было только в однои месте. Так легче отладку делать, читать код и заменять в случае чего вывод. Не надо лазить по инклюдам и другим файлам. Текст ошибок и сообщений, и вообще весь текст более менне статического назначения естественно лучше хранить отдельно в файле. Куда потом может зайти любой человек дорабатывающий проект и изменить "проффессор" на "профессор" без поиска по проекту или лазания по коду. Лучше разрабатывать код с включенными warnings, notices и тд. Так видней недоработки. И код будет правильней. --------------------
mess with the best die like the rest |
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: -2 Всего: 32 |
Хехе, одинарные кавычки - это уже мем.
Ну, и диагноз, разумеется =) В остальном все правильно. Впрочем, если вчитаться - то тоже видно, что понимания нет, а есть зазубренные правила. Какой такой код функции должны возвращать? Какая разница - по инклюдам "лазить" или по шаблонам? Про хранение всех сообщений в отдельном файле мысль правильная, но требует определенного понимания и полного пересмотра архитектуры, разумеется. Это сообщение отредактировал(а) Feldmarschall - 11.6.2008, 20:14 |
|||
|
||||
boogi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 12.2.2008 Репутация: -2 Всего: -4 |
И всё-таки отделение кода от гипертекста это "правило" тесно связано с поставленной задачей.
От себя добавлю (если этого не было) как можно меньше регулярных выражений. sizeof() быстрее и красивее count() как можно проще индексы массивов (числовые лучше всего) |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: -2 Всего: 32 |
хехе, ещё один =)
sizeof(), даже если бы она не была одной и той же функцией, что и count(), все равно не была бы быстрее или медленнее. То же самое и с массивами. да делайте те индексы ,которые удобнее. Если раз в сто лет этот индекс станет узким местом - переделаете. когда ж вы поймете, что ахиллес все-таки перегонит черепаху? |
|||
|
||||
boogi |
|
||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 12.2.2008 Репутация: -2 Всего: -4 |
хоть какая-то нелогическая отпимизация никогда не мешала. представь 10к^2 обращение к массиву
тем более что займет это всё ровным счетом минимум времени...( я про оптимизацию xD ) Добавлено через 10 минут и 15 секунд Если можно отнести к правилу хорошего кода, для серьёзного проекта, то это несомненно: Кэширование повторно используемых данных внутри классов, запросов Это сообщение отредактировал(а) boogi - 12.6.2008, 00:31 |
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: -2 Всего: 32 |
Если эта страна и погибнет, то только из-за таких "мыслителей".
И ведь на полном серьезе обсуждается, каким концом разбивать яйцо. Со времен Свифта ни-че-го не изменилось. Понять действительно важные вещи в состоянии единицы. А остальные будут заниматься оптимизацией длины имен переменных |
|||
|
||||
boogi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 12.2.2008 Репутация: -2 Всего: -4 |
При чем тут это, философ? Посмотри на название топика. И лучше не пытайся прыгнуть выше головы. PS: Я буду только рад если та страна про которую ты говоришь погибнет. |
|||
|
||||
Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: нет Всего: 13 |
Видимо имелось в виду, что функции модели должны возвращать только данные или код результата(не в смысле php код), т.е. не должны возвращать "Выполненно успешно", а лучше "success" или какое-то заранее определённое значение. Сам же я хотел такой вопрос задать, из области не очень повседневной: Принято (обычно/часто вижу такое) приватные методы называть с подчёркиванием в начале и маленькими буквами, тогда как публичные - с использованием больших(в верблюжьей или иной нотации - не важно). В часности, в php4 это часто применялось, чтобы можно было сразу видеть, какие методы предназначены для вызова извне, а какие выполняют утилитарные функции и вызываются другими методами класса. Столкнулся с тем, что как бы не хотелось, но в некотором классе набралось довольно болшое количество публичных методов, причём часть из них, тем не менее, также вызывается в других из низ. При этом эти методы я не могу сделать приватными в силу того, что они иногда мной применяются-таки в остальной части скрипта, хотя и довольно редко. Использует ли кто-то специальные способы разделения методов класса "по частоте использования" путем именования специальным образом? -------------------- |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Не могу представить. Зачем нам 100млн обращений к массиву? ![]() По типу операций и возвращаемым результатам - да. По частоте нет. например getSomethingList - возвращает массив getSomethings - возвращает массив объектов Something updateSomething - обновляет Something Добавлено через 4 минуты и 41 секунду Sannis, Имеется класс для работы с базой, примерно 250 методов работать во всяких блокнотах - сложновато. В Zend Studio - нормально. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: нет Всего: 13 |
Преимущества IDE я уже оценил) Что-ж, спасибо, пока не буду размышлять, не очень-то они и мешают.
-------------------- |
|||
|
||||
Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
Почитал всю тему, очень интересно читать такие дисскусии и обсуждения, а особенно для новичков.
Сам на php пишу относительно не так давно, но стараюсь читать как можно больше инфы касающейся php. Когда начинал прочитал одну очень интересную книжку PHP5 на примерах (М.Кузнецов, И.Симдянов,С.Голышев) откуда впринципе и узнал про стили программирования(о чём даже представления не имел, до того момента) там описано 4 стиля (расставления фигурных скобок)
И для себя наиболее удобным и читабельным посчитал Стиль GNU. Это я к тому что стилей много, думаю эти 4 только малая часть всех существующих, хотя могу и ошибаться, стилей много и каждый кодер выбирает тот который удобен ему. Так же придерживаюсь тона при названии переменных, функций, разделения пробелами +/=/- и т.д., т.к. сам нарывался на скрипты где в названии переменных использовали что то вроде $l_gh а функции назывались $drw_n при этом комментарии в коде отсутствовали вообще. Так же хотелось бы задать опытным кодерам вопрос, может и покажется он глупым, но всё же, предподчительно в какой кодировке писать скрипты? я юзаю utf-8. P.S. ИМХО - Хорошего тона, должны придерживаться все кто кодит, тем самым проявляя уважение к другим кодерам. Это сообщение отредактировал(а) Цербер - 16.6.2008, 10:31 |
|||
|
||||
nerezus |
|
||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
P.S. Кстати непонятно, нахрена замену делали, неужели было влом лишние 2 условия в StateMachine вписать? Хрен этих разработчиков поймешь )
|
||||||||
|
|||||||||
MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 4 Всего: 32 |
0. Логика визуализации и бизнес-логика - абсолютно разные вещи, это стоит держать отдельно друг от друга.
1. Табы или 4 пробела - это не важно, главное, чтоб другим оно не мешало. 2. По правилам кодинга (не программирования) существуют strict-стандарты для java, я стараюсь держаться именно за них. -------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
gta4kv |
|
||||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: нет Всего: 91 |
пример в студию ![]() Мой стиль вот:
Пришел к нему, как к самому удобному, достаточно удобно его читать ![]() Это сообщение отредактировал(а) gta4kv - 22.6.2008, 19:27 |
||||
|
|||||
MuToGeN |
|
||||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 4 Всего: 32 |
Ну, к примеру, отделять ключевые слова от остального пробелами и пользовать { } для любых блоков, даже если они состоят из одной строки, т.е.
Если функция/метод требует большое кол-во параметров, то не писать все в одну строку, т.е. что-то вроде
На этом, естественно, оно не заканчивается. Любой программист может написать что-то, понятное машине, но только хороший программист может написать код, понятный другому программисту. Подобные вещи как раз делают все более читабельным для других. -------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
||||
|
|||||
MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 4 Всего: 32 |
Те, кто копался в исходниках e-commerce и помнит строки размером в несколько килобайт с 8ю - 10ю закрывающимися скобками в конце (выглядит как идиотский смайлик, кстати), меня точно поймут. -------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 4 Всего: 32 |
Проглядел по-внимательнее тему...
Тут есть и другая крайность (греха таить не буду, несколько лет назад сам страдал подобным) - к примеру, алиасы для имен стандартных функций, создаваемые ради того, чтоб меньше топтать клаву пальцами. Cause i dont like typing. Уже давно понял, что по имени функции или переменной должен быть понятен ее логический смысл. Другими словами, о какой оптимизации может идти речь, если к разработке подключится новый человек и будет смотреть на исходники как баран на новые ворота. -------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
Resha |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2008 Репутация: нет Всего: нет |
Правила хорошего кода превратились в попытку навязать свои стандарты окружающим
![]() P.S. Использование бикапитализации для классов, кэмел-кейс для методов и андерскора для переменных - это изврат почище вилок для салата, рыбы, мяса и пасты ![]() Это сообщение отредактировал(а) Resha - 23.10.2008, 11:49 |
|||
|
||||
Resha |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2008 Репутация: нет Всего: нет |
sizeof() не может быть ни быстрее, ни красивее count(). Хотя бы потому, что sizeof - алиас count'а, а не наоборот. Про скорость вообще ничего говорить не буду - это не разные функции, это разные имена одной и той же функции. Про цифровые индексы тоже очень порадовало. Тогда давайте и в классах свойства называть p1, p2, p3 и т.п. Вообще, ассоциативный массив с цифровыми индексами - это революционное решение ![]() |
|||
|
||||
zeusakm |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 30.6.2008 Репутация: нет Всего: нет |
Итак мальчики перестаньте мериться чл***ми продолжим.
Правило №10. В случаях когда массивы незначительные меняем:
на:
А да и еще №8 можно сделать Abstract_Connection_DBS - соответственно MySQL, PostgreSQL и если надо Oracle =) Добавлено через 2 минуты и 4 секунды Ой блин sorry смотрел первую или смотрите первую =)) |
||||
|
|||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
В больших блоках очень удобно использовать не {} а к примеру
Добавлено через 2 минуты и 46 секунд эх. забыл. мы это уже в прошлом году обсуждали |
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
1) Хотелось бы послушать обоснование минусам
2) А вы разберитесь с кодом где
и т.д. |
|||
|
||||
QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: нет Всего: 32 |
И никаких end... не нужно. А если не делать отступов на вложенных блоках, то вообще кошмар получится =) Это сообщение отредактировал(а) QryStaL - 30.10.2008, 13:34 -------------------- I don't need a reason being who I am... |
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
отступы я просто не стал тут ставить, но сам факт, когда в таких блоках по 150 - 200 строк в которых тоже разное попадается - не очень удобно видеть {}
|
|||
|
||||
QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: нет Всего: 32 |
надо разбивать на мелкие функции / методы -------------------- I don't need a reason being who I am... |
|||
|
||||
mxt |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 6.9.2007 Репутация: нет Всего: 1 |
Нет, так не известно точно что происходит: обьявление нового массива или приваение значение массиву. Вот так понятнее
Это сообщение отредактировал(а) mxt - 16.11.2008, 00:07 --------------------
|
||||||||
|
|||||||||
youri |
|
||||||||||||||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
я бы выбрал читабельность один раз - все подготовить, и за один print вывести? не знаю, не понятно зачем такое правило ну я бы выбрал первый вариант, так как он читабельнее, правда регулярные выражения там не нужны или, возможно, это можно было бы одним регэкспом заменить
главное не отказаться от ifов ;-) я бы хотел увидеть пример, когда бы конкатенация стала заметна на общем фоне я думаю им можно найти применение, но если то же можно выполнить средствами пхп, то ими и стоит воспользоваться
![]()
ну я думаю, дело было не в стиле, а как минимум в его отсутствии
здесь профеcсионализм, похоже, заключается в краткости в ущерб читабельности, я за читабельность)
ну от себя добавлю, что не ставлю { в отдельной строке, потому что это почти пустая строка, а пустыми строками я разделяю код на блоки, двумя пустыми строками - методы а вообще, так как человек может запомнить 7+/-2 элемента, я пришел к выводу, что оптимальное количество элементов в строке - 7, строк в блоке - 7, блоков в методе - 7, функций в классе - 7, строк в файле - 200, оптимальный размер файла - 3 КБ ![]() ну и не могу не согласится
Это сообщение отредактировал(а) youri - 1.12.2008, 04:36 |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 0 Всего: 140 |
-------------------- Amazing ![]() |
|||
|
||||
nichnikov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.5.2009 Репутация: -1 Всего: -1 |
Не писать двойные кавычки где можно обойтись одними
|
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Экономия воздуха? -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
||||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 0 Всего: 140 |
-------------------- Amazing ![]() |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
объясните про кавычки? какая разница? где и как использовать?
|
|||
|
||||
Kirsan |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 4.11.2008 Где: г.Волжский, Волго градская обл. Репутация: нет Всего: 1 |
Если строка в себе не содержит переменных, то предпочтительнее использовать одинарные кавычки. Если содержит, то кому как удобнее - конкатенация или же строка в двойных кавычках с переменными внутри. |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
правила хорошего кода - как раз одинарных в двойных переменные видны гораздо хуже (не всякий редактор берёт), а главное это порождает дополнительный пас для ошибок |
|||
|
||||
Kirsan |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 4.11.2008 Где: г.Волжский, Волго градская обл. Репутация: нет Всего: 1 |
Да, я сам предпочитаю склеивать строки. Ещё видел вариант в задании оператору echo нескольких параметров. Такой изврат, ИМХО ![]()
Это сообщение отредактировал(а) Kirsan - 28.5.2009, 18:19 |
||||
|
|||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Kirsan, почемУ? Потому что-то кто то так уже привык писать?
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
"правила хорошего кода" - это не документированный свод инструкций, а просто элементарное уважение к остальным программистам, которое выражается в написание понятного и легко усваиваемого кода Это сообщение отредактировал(а) bars80080 - 28.5.2009, 19:21 |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Я просто думал что есть какая-то техническая обоснованность такого правила. Выходит что это просто нотация?
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
есть, и её тебе расписали. литералы в двойных кавычках проверяются на наличие переменных внутри них в отличие от одинарных кавычек. это естественно увеличивает время обработки этих строк. однако, в общем времени выполнения скриптов эти потери составляют ничтожные доли от тяжеловесных кодовых вывертов, как-то не оптимизированные запросы или большие объёмы гоняемых туда-сюда данных но это в принципе не важно. ведь развёрнутый код, выполненный в правилах хорошего тона грамотно, т.е. с отступами, не захламлёнными строками, большими комментариями весит больше и так же увеличивает время обработки (хотя и незначительно) по сравнению с сжатым кодом ,набранным чцть ли не в одной строке с короткими невнятными названиями переменных и функций. но с каким кодом будет легче работать? и это уже не семечки |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 0 Всего: 140 |
-------------------- Amazing ![]() |
|||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
по сути, согласен с Feldmarschall - http://forum.vingrad.ru/forum/topic-47445/...546336/105.html
(только не про страну и не про единицы) |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
youri, имхо, взгляд на эту проблему очень сильно зависит от того сколько вам приходится ворочать тонн чужого кода.
когда сталкиваешься с таким:
|
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
bars80080, такой бы обфуксатор иметь
![]() |
|||
|
||||
nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
На спичка не сэкономишь, а конкатенация длинной строки твоим способом будет нечитаема.
Zend Framework Documentation, пункт B.4.2.3. Для подстановки переменных используются двойные.
А так конечно можно сказать, что PHP какашка, так как его блокнот не подсвечивает. |
||||||
|
|||||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
я не имел в виду, что нужно писать как прийдется: стиль кодирования - это положительно, только лучшего нету а в этой теме много субъективных моментов и ненужных оптимизаций, имхо p.s. кроме того, тема то ли нечетко задана, то ли очень обширная. Правила хорошего кода касаются только оформления? |
|||
|
||||
bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
а я говорю наоборот
ну и кто они после этого? главный критерий, то что твой код будет быстро и эффективно воспринят другим человеком |
||||
|
|||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
||||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Я как-то больше доверяю себе и создателям PHP, чем Васе Пупкину в твоем лице. Ничего личного, только профессиональное. Понимаешь, ускорение кода на 0%(не забываем про кэширование байткода) с проигрышем читаемости - это плохо. А если твоя IDE - блокнот, а не IDE - то это ТВОИ проблемы. |
|||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
||||
|
||||
bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
а я как-то больше доверяю личным наблюдениям, а не чужому мнению. когда очередной раз здесь скидывают класс по БД с малопонятными конструкциями типа $db->fetch_row(), я спрашиваю себя, нафига вообще было писать такой код, который ни капельки не облегчает процесс написания? но все пользуются, я им не возражаю. но это не значит, что я должен брать тот же класс и юзать его когда начинал, то у меня все скрипты писались на базе Котерова (его подключатель библиотек, его мейловый класс, класс работы с БД и прочее). постепенно я отказался от всего, даже от его dump, потому что находил (либо писал) более удачные, компактные и эффективные вещи. может где-то проигрывали в универсальности, но зато без того абсурда, чем они изобиловали, увеличивая и время работы в разы, и нагружая БД, и не отдавая нужной эффективности не знаю что там из себя представляют IDE, всё что слышу о них порождает идею о пушке и воробьях. смысла в них вообще не вижу, если создание сайта у меня занимает всего 5 минут, путём копирования предыдущей версии. а далее дизайн, контент и размещение блоков. т.е. ничего общего с программированием на пхп.
да, именно так. и использование двойных кавычек - проигрыш в читаемости кода |
||||
|
|||||
nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Потому что уже есть куча стандартных ОО-вариантов.
Расскажи, как с сотнями файлов в блокноте работать ) Очень интересно ;)
|
||||||
|
|||||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
и что мы видим? Правила оформления кода субъективны (большей частью) - кто к чему привык, вы сами это отлично продемонстрировали
![]()
там так и написано, что "двойные кавычки для большинства читабельнее"? Это сообщение отредактировал(а) youri - 31.5.2009, 13:53 |
|||
|
||||
source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
С чего вдруг? Синтаксис PHP близок к синтаксису С++, следовательно всем людям знакомым с С++ будет гораздо легче читать код, в котором строки-литералы обрамлены двойными кавычками, а символы-литералы - одинарными. По той же причине лучше не использовать конструкции, включающие в себя : endif, : endforeach, etc. вместо {}.
Ну так если твоя работа вообще не связана с программированием на пхп, то с какой стати ты навязываешь своё мнение в теме, связанной с программированием на пхп?
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
bars80080 |
|
||||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
нет. объём чистого кодинга на модуль - максимум 100кБ, и то это был жуткий аврал и нафигачивания одной новой компоненты на другую, т.е. архитектуры вообще не было. а так 10-30 кБ
а кто сказал, что я работаю в блокноте? простенький редактор с подсветкой и закладочками сверху. больше пяти за раз открываю только в случае когда ищу что-нибудь зрительное (т.е. когда в поисковик нельзя вогнать) хм, интересно, что это за дикий кодинг в котором приходится работать с сотней файлов одновременно? у меня обычно открыт пхп-скрипт, хтмл-шаблон, js-скрипт, css-лист. в принципе всё
что-то не видно ссылки. есть понятие привычки, а есть понятие удобства, не надо путать, я тоже вначале делал как завещал великий ... (фиг знает, кто там был в начале, но судя по всему суеверие очень живуче). я долго писал двойными кавычками, потом решил перейти на одинарные, вначале было неудобно, но за пару недель полностью перестроился. ошибок в разы уменьшилось. во-первых из-за такой банальности, что меньше чёрточек мельтешит перед глазами, во-вторых, кристально чётко отслеживается где переменная/константа/массив, а где литерал, также неожиданно перестроились строки кода. тут надо пояснить. при постоянных соединениях конкатенацией отдельных частей, естественно получается разбитие строк по точке, в отличие от двойных кавычек, где либо происходит уход строки за край экрана, либо съезд на следующую строку со зрительной разбивкой табовой структуры, либо введением разрыва страницы, который разрывает структуру уже в html-исходнике. короче это надо видеть и ощутить, а не слушать открыв рот других, только потому что это "уважаемые" программисты из серьёзных проектов. |
||||||
|
|||||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
читаем выше, написал почему я отошёл от двойных |
|||
|
||||
source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
ты не смешивай в одну кучу выбор вида кавычек и выбор между конкатенацией и интерполяцией, они не связанны совершенно. Да и длина строк не связана с выбором между конкатенацией и интерполяцией.
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
bars80080 |
|
||||||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
не знаю лично ни одного кодера из C, который бы перешёл на пхп
работа прямым образом связана с пхп, так как новые модули то писать надо. а моя ремарка относится к эффективности IDE
я вообще никаких подобных дикостей не использую. я пишу $db->select($sql); и получаю нужный мне массив данных упорядоченный в нужном порядке, с нужным количеством строк, да ещё и залогированный если нужно
имхо, если человек занимается одновременно разными направлениями, то если он не является гением, то возникает вопрос о качественности его работы в отдельном направлении. именно по этой причине я не стал даже соваться в asp и .net, т.к. хотел всё-таки подняться над уровнем примитивов в пхп а при отдельныз разработках, то перестроится на другой синтаксис не представляет труда. мы же не пишем в пхп := , и при этом не испытываем никакого дискомфорта при переходе на другие системы? |
||||||||
|
|||||||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Я почитал, единственная крайне субъективная причина "меньше чёрточек мельтешит перед глазами", всё остальное вообще с видом кавычек не связано(конкатенацию с двойными кавычками никто не запрещал применять). -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
понятия не имею, что ты понимаешь здесь под интерполяцией. если мы берём отдельные, да ещё большие куски текста без наличия в нём переменных, то вообще не понимаю, зачем их пихать в код. это уже либо контент, либо набор служебных строк, который просто надо вынести в отдельный шаблон
пробовал несколько, ерунда полная. основная причина - слишком умные, да без простейших фич. помнится один понравился, но создатели не добавили всего одну настройку - регулятор подсветки. я везде её настраиваю под себя. слишком умность проявляется в беспардонном наезде относительно дефолтных кодировок, каких-то дурацких анализов файлов, встраивании спойлеров, где их не просили. у меня даже возникла такая мысль, что все сторонники utf8 вынужденно стали переходить под неё из-за таких редакторов, подменяя своё мнение чужим |
||||
|
|||||
source777 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
А мы оказывается про кодеров говорим? Я то думал про нормальных программистов, которые язык выбирают под конкретную задачу, а не переходят с одного на другой.
ну это тот же велосипед, только в профиль. Почитай про ActiveRecord.
Я про это и написал: "синтасисы либо минимально отличались, либо кардинально", если брать пару Delphi - PHP, то различие в синтаксисе кардинальное, а если С++ - PHP, то надо сводить различия к минимуму, т.к. кардинального отличия не получится, как не старайся. -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||||||
|
|||||||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
так бессмысленно её применять с двойными кавычками. мы же здесь не правила использования обсуждаем, а манеру кодинга человеком. зачем бить строку на части без нужды? а если она уже разбита, то у человека автоматом потянется рука нажать enter именно в этом месте это называется удобство, быстрота написания и чтения, а вместе читабельность или правила хорошего кода для машины пофигу как мы пишем, её даже лучше если будет меньше комментариев, пробелов, имена переменных короче... всё это для удобства человеческого глаза. |
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Интерполяция - подстановка значений переменных в строку, вместо их идентификаторов, аля "val = $val" -> "val = 5".
Это не я придумал так называть данный механизм ![]() Добавлено через 1 минуту и 18 секунд с чего это ты взял? -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
bars80080 |
|
||||||||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
а мы оказывается говорим про разные задачи? я думал в теме мы обсуждаем вэб-проекты основанные на пхп. это во-первых, во-вторых, если речь идёт не о крупной IT-компании, то я бы остерёгся обращать в компанию или даже одному человеку, где на дверях написано: сделаем всё. по причинам выше уже описанным насколько я помню, google не занимается написанием контроллеров для станков? ну не знаю, если для тебя $db->select($sql) и $s = $db->select($sql); while($db->fetch_row($s)) { $b = .... } одно и тоже, то не знаю даже что и говорить
вооот, а мне тут советуют озираться на "специалистов" я особо читать не стал. что ты мне хотел показать, кроме того, что там человек пользуется одинарными кавычками?
это уже что-то из: я вижу разницу между #ccccc8 и #ccccca, а я нет Добавлено через 3 минуты и 6 секунд
не знаю, в моём понимании интерполяция - придумывание промежуточных значений на базе уже существующих. тоже не я придумал и что ты хотел сказать? я и не заикался о замене
а зачем лишний раз разрывать строку, если переменная так и просится остаться внутри литерала? |
||||||||||
|
|||||||||||
youri |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
очень важные фразы, и не надо это оправдывать "удобнее чтобы их синтасисы либо минимально отличались, либо кардинально". Ведь если ты на чем-то пишешь, то в результате "перестраиваешься", вне зависимости с какого языка на какой перешел. Или на протяжении всей последующей жизни неправильные кавычки подтормаживают тебя при чтении исходников?
похоже за этим стоит серьезное научное исследование ![]() а рядом причины использовать двойные кавычки
для кого-то связаны |
||||||||
|
|||||||||
source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
веб-проекты можно делать не только на пхп, поэтому надо чётко разделять понятия пхп-кодер и веб-программист, в этих понятиях крайне мало общего.
![]() И то и то велосипед с квадратными колёсами, да ёще и raw-SQL на входе, ужос короче, лучше с подобным кодом дела не иметь.
Добавлено через 5 минут и 50 секунд это их проблемы. Смысл в том, что использование тех или иных кавычек никак не должно входить в "Правила хорошего кода", это личное дело каждого и никакого улучшения читабельности при использовании одинарных кавычек нет, поэтому я против того навязывания одинарных кавычек, которое развернули в этой теме. -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
итого, 3 точки зрения по поводу того, какие правила лучше
<погорячился> Это сообщение отредактировал(а) youri - 8.10.2009, 22:41 |
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
как ты догадался, оно ж секретное!
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
откуда вообще вот это взялось?
http://framework.zend.com/manual/en/coding...ding-style.html http://pear.php.net/manual/en/standards.php http://drupal.org/coding-standards http://tony2001.phpclub.net/doc/standard/ казалось бы придумали для php одни правила - так нет же, свои придумывают пожалуйста, объясните зачем им каждому свои правила? ![]() |
|||
|
||||
nerezus |
|
||||||||||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Естественно открыто ~7 файлов одновременно, остальные учавствуют в автодополнении кода и подсказках.
Хотя ты возможно путаешь C и C++, это абсолютно разные языки.
Добавлено через 9 минут и 3 секунды
|
||||||||||||||||
|
|||||||||||||||||
bars80080 |
|
||||||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
ну у меня не десять голов, чтобы над десятью модулями работать. разбивка на файлы - это прежде всего выделения отдельных смысловых частей. зачем мешать работу с БД и какой-нибудь новостной визард? работаю над одним модулем, его и открыл, когда надо будет над другим - открою его. первый уже будет не нужен, можно закрыть
страх какой. т.е. выполнение одного клика пользователя вызывает движуху по нескольким сотням файлов? уже отписался
забавно, порождает интересные размышления об избыточности изучения этого языка
|
||||||||
|
|||||||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Что то тут я не очень понял? Что за велосипед? Я, например, DbSimple пользуюсь, там тоже на это похоже. А этот активрекорд, как мне показалось - шаг назад. |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Сейчас 2009 год, сервер арендовать на месяц дешевле, чем программисту день работы оплатить. И, кстати, советую почитать что-то про оптимизацию ;)
Update: http://rsdn.ru/article/philosophy/Optimization.xml Это сообщение отредактировал(а) nerezus - 31.5.2009, 17:35 |
||||
|
|||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
мне читать про оптимизацию? ![]() тут кто-то жаловался, что лишний десяток инклудов заметно сказывается на времени работы скриптов а я ещё думаю, почему vz.ru надо сидеть ждать полминуты пока загрузится, почему mail.ru вешает мне браузер. думал количество посетителей много, а проблемы возможно в корне |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
|
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Это сообщение отредактировал(а) source777 - 31.5.2009, 18:25 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
source777, что это за набор паттернов?
Тот класс для работы с БД, что ты показывал до этого как я понял не использует SQL, за место него работает объектная модель? Я думаю, что это неправильно, так как не зря же придумали SQL? Могли бы и сразу делать объектно, без всяких других языков. |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
||||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
И кстати не забывай, что php-файл после компиляции кэшируется при правильной настройке PHP ;) |
|||
|
||||
source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
PoEAA.
Но даже при использовании реляционных СУБД уже давно всем понятно, что SQL никак не вяжется с современным объектно-ориентированным программированием, поэтому все запросы должны быть изолированы в одном месте, а не разбросаны хаотичными вкраплениями по всему коду. Это сообщение отредактировал(а) source777 - 31.5.2009, 19:36 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
source777, а есть ещё альтернативы ActiveRecordBase?
|
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Ну код же надо разделять. А пихать всё в один файл нельзя, т.к. тогда куча лишнего грузиться будет. Байт-код пхп-файлов в памяти кешируется и подключение должно быть более-менее быстрым. Хотя конечно тоже время занимает и пара сотня файлов это перебор, но от подключения нескольких десятков файлов имхо никуда не уйти. |
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Есть, по ссылке выше смотри пункт Data Source Architectural Patterns.
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: нет Всего: 54 |
Хороший код должен быть:
1) Хорошо читаемым 2) Хорошо документированным 3) Хорошо оптимизированным Имхо. требования к написанию меняются от команды к команде... |
|||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
+1 вот зайдет сюда пару таких команд и будут довольно протичоречивые правила (т.е. они уже противоречивые) т.е. надо либо рассматривать эту тему как набор всяких правил, из которых человек выберет, что ему по душе либо искать правила, с которыми будут все согласны (только мало таких будет) Это сообщение отредактировал(а) youri - 31.5.2009, 22:51 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 2 Всего: 315 |
||||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Кстати, рекламируемая тут ActiveRecordBase как раз подразумевает создание большого кол-ва файлов. По файлу на класс объекта.
|
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: нет Всего: 54 |
||||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
|
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
APC
![]() -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: нет Всего: 54 |
||||
|
||||
realPROme |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 20.12.2006 Репутация: нет Всего: нет |
незнаю, насколько это считается правилом хорошего тона...))
константы пишу СТРОЧНЫМИ, как уже говорили, а названия переменных для массивов начинаю с символа подчеркивания, а-ля $_array привычка такая пошла, походу, с $_GET/POST ![]() |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: нет Всего: 54 |
А я просто обзываю переменные и массивы понятно
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |