Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Правила хорошего кода 
:(
    Опции темы
Wowa
Дата 2.4.2005, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Давайте тут собирать правила хорошего кода.

Например:
1. Не писать код работающий только с register_globals on. Вместо этого использовать $_GET[''] и $_POST['']
2. Не называть функции непонятными для посторонних именами
3. Делать комментарии в коде, чтобы можно было легко разобраться в нем.
PM WWW   Вверх
Mal Hack
Дата 2.4.2005, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



4. Отступы.
5. Минимум переменных необходимых для решения задачи.
6. У функций return
7. Вывод гипертекста - один раз.
PM ICQ   Вверх
HalkaR
Дата 2.4.2005, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



8. Отделение ввода данных в базу от вывода гиперетекста
PM MAIL   Вверх
Mal Hack
Дата 2.4.2005, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(HalkaR @ 3.4.2005, 00:02)
8. Отделение ввода данных в базу от вывода гиперетекста

Я бы сказал: " отделение всего кода от вывода ьгипертекста". По сути шаблоны. Что скажешь?
PM ICQ   Вверх
yUAC
Дата 3.4.2005, 02:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 9.6.2004

Репутация: нет
Всего: 3



Кстати говоря насчет вывода текста один раз не могу согласиться - это неправильно.
PM MAIL   Вверх
Mal Hack
Дата 3.4.2005, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(yUAC @ 3.4.2005, 03:14)
Кстати говоря насчет вывода текста один раз не могу согласиться - это неправильно.

Почечму?
Во-первых отпадает (практически) трабла с заголовками и установкой куков.
Во-вторых существенно увеличиваетс производительность скрипта.
В третьих это более грамотно с точки зрения проектирования, т.к. в случае чего можно пройтись по всему гипертексту.
PM ICQ   Вверх
IZ@TOP
Дата 3.4.2005, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



9. Краткость сестра таланта.
Пример:
Код

<?php
// Есть у нас такой кусок кода:
if($a == 1) {
   $b = $a;
} else {
   $b = 2;
}
// Можно сократить до:
$b = ($a == 1) ? $a : 2;
?>


10. Оптимизация строковых функций.
Пример:
Код

<?php
// Замена переменных в шаблоне
$text = ereg_replace("<!--a-->", $a, $text);
$text = ereg_replace("<!--b-->", $b, $text);
$text = ereg_replace("<!--c-->", $c, $text);
$text = ereg_replace("<!--d-->", $d, $text);
// Это по меньшей мере ужасно, но встречается очень часто. 
// Оптимизируем и получаем одну строку:
$text = str_replace(array('<!--a-->', '<!--b-->', '<!--c-->', '<!--d-->'), array($a, $b, $c, $d), $text);

// Разбивка текста всегда осуществляем с помощью explode,
// а не split'a как это очень часто делают некоторые неопытные люди. Т.е. такой код:
$arr = split("|", $line);
// Заменяем на 
$arr = explode("|", $line);
// Разумеется если вам необходимо разбить строку при помощи регулярных выражений,
// лучше всего сначала подумать: а может быть есть другой выход из ситуации?
?>


PS Пока все.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
HalkaR
Дата 4.4.2005, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Цитата(Mal @ 2.4.2005, 23:12)
Цитата(HalkaR @ 3.4.2005, 00:02)
8. Отделение ввода данных в базу от вывода гиперетекста

Я бы сказал: " отделение всего кода от вывода ьгипертекста". По сути шаблоны. Что скажешь?

Полностью отделить код от html очень тяжело, но естественно желательно. Я просто более мягко сформулировал.
PM MAIL   Вверх
IZ@TOP
Дата 4.4.2005, 16:12 (ссылка) |   (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Слишком четкое отделение РНР кода от HTML приведет скорее всего к тому что появится еще один интерпретируемый язык, что приведет к большому снижению производительности.



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Irokez
Дата 7.4.2005, 18:03 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 4
Всего: 53



PM   Вверх
Mal Hack
Дата 7.4.2005, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Irokez
это правила составления PEAR.
PM ICQ   Вверх
Irokez
Дата 7.4.2005, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 4
Всего: 53



Mal Hack smile ну да я знаю ... а он на чем пишется? на пхп ...
по-моему стандарты написания пеар пакетов стоит взять за стандарты написания всех пхп скриптов ...
PM   Вверх
Mal Hack
Дата 7.4.2005, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Irokez
я к тому, как бы что там описывается схема структура файла PEAR
PM ICQ   Вверх
Irokez
Дата 7.4.2005, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 4
Всего: 53



Mal Hack
так пеар файл и есть ни что иное как грамотно написанный пхп скрипт,
и по ссылке описываются как такой скрипт грамотно написать (в плане синтаксиса)
PM   Вверх
Mal Hack
Дата 7.4.2005, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(Irokez @ 7.4.2005, 21:20)
так пеар файл и есть ни что иное как грамотно написанный пхп скрипт,

не факт. Многие считаю его тяжелым smile

Цитата(Irokez @ 7.4.2005, 21:20)
и по ссылке описываются как такой скрипт грамотно написать (в плане синтаксиса)

Я имею ввиду (может и ошибаюсь) имел ввиду что класс должен называться так-то, сожеражть обязательно определенные свойства и методы..
PM ICQ   Вверх
Irokez
Дата 7.4.2005, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 4
Всего: 53



Mal Hack
да нет там такого:
Цитата
Chapter 4. Coding Standards

стандарты написания кода, а не класса, т.е. как правильно код написать
PM   Вверх
Mal Hack
Дата 7.4.2005, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Звиняй, не прав я был. Раньше этого не замечал.
PM ICQ   Вверх
Irokez
Дата 8.4.2005, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 4
Всего: 53



smile звиняю
PM   Вверх
Рыжий
Дата 30.4.2005, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: нет
Всего: 20



можно так же писать все константы прописными буквами - это как общепринятное правило уже стало smile
PM MAIL ICQ   Вверх
Илья
Дата 9.6.2005, 10:09 (ссылка)    |    (голосов: 1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(IZ @ 3.4.2005, 10:58)
10. Оптимизация строковых функций.
Пример:
Код

<?php
// Разбивка текста всегда осуществляем с помощью explode,
// а не split'a как это очень часто делают некоторые неопытные люди. Т.е. такой код:
$arr = split("|", $line);
// Заменяем на 
$arr = explode("|", $line);
?>

Split и Explode две совершенно разные функции. И утверждать что тот кто использует Split - неопытный человек, полный бред. ;)
  Вверх
Opik
Дата 9.6.2005, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 3
Всего: 55



Илья
чаще всего так... обычно split приименяют необоснованно..
PM MAIL Skype   Вверх
IZ@TOP
Дата 9.6.2005, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Илья, есть куча примеров, хотя бы на данном форуме smile А еще знаю человека который преподает в неком учебном учреждении, на платной основе, РНР, что такое explode он незнает smile

Я сколько не делал всевозможных скриптов, ну нигде я не нашел применения этой функции smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Ринат
Дата 3.10.2005, 05:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 31.3.2005

Репутация: нет
Всего: нет



IZ@TOP
explode не приходилось юзать? smile
PM MAIL   Вверх
IZ@TOP
Дата 4.10.2005, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Ринат, прочти тему с начала, потом разбегись и ... об стену - разбег 100 метров smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Alone
Дата 6.10.2005, 10:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



Я считаю, отделение логики от гипертекста - совсем не в тему.
Топик создавался для сбора примеров правил хорошего кода.

Со своей стороны могу подчеркнуть некоторые моменты, которых я придерживаюсь:

таб - пробелами, 4 символа
класс - имя класса и его конструктора с большой буквы, верблюжьим стилем ( ExampleClass() )
методы - с маленькой, верблюжьим стилем ( theMethod() )
переменные - в основном с маленькой буквы, через подчеркивание ($the_variable)
фигурные скобки - ВЕЗДЕ(!) в одной строке с оператором/функцией/итд... пример
Код

function a(){
    if($z){
        $a=1;
    } else {
        $a=0;
   }
}

документирование кода - ОБЯЗАТЕЛЬНО! все классы, их методы, переменные...
константы - большими буквами
дефайны - тоже.
в строках, при использовании переменных, обязательно выделяю их вот так
Код

$str="Hello ".$name."! I see you!";


require/include - в скобках. это больше для красоты. require_once("MyClass.php");

А вот чего никак не возьму в привычку, так это пробелы вокруг знака =
smile

Это сообщение отредактировал(а) Alone - 6.10.2005, 10:34


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
IZ@TOP
Дата 10.10.2005, 13:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Мне нравятся упрощенные конструкции условий использовать:

Код

$a = (is_numeric($b)) ? $b : 0;

Добавлено @ 13:54
А в остальном полностью поддерживаю Alone, ну, за исключением пробелов, я вставляю до и после знака =.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Bikutoru
Дата 10.10.2005, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: нет
Всего: 22



Полностью согласен с Alone, делаю почти один в один. Единственное исключение, так это
Код

function a()
{
    if($z)
    {
        $a=1;
    } 
    else //Любая { или } на отдельной строке
    {
        $a=0;
    }
}

Исключительно ради наглядности smile
Ну и в обязательном порядке пробелы вокруг = + - * / & && | || == != > < >= <=


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
AntonioBanderaz
Дата 13.10.2005, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



IZ@TOP
Да мне тоже нравятся упр констр, но не все их понимают.
Если для себя - можно, а если для кого-то?

Коментировать каждую функцию, что делает, что на входе, что на выходе.
Созавать в каждом классе пример использования (закоментированый)

+ ко всему... Не знаю относится это к правилам хорошего кода, но что правила - точно.
не объединять при выводе длинные строки, время выполнения увеличивается
Т.е.
Код

echo $str1.'fghgfh'.$str2;
//аналогично
print("$str1 sdgfsdgdsg $str2");

//заменяем на
echo $str1;
echo 'fghgfh';
echo $str2;

print("$str1 sdgfsdgdsg ");
print($str2);



забыть про exec и system!


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
o.s.a.
Дата 16.10.2005, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: нет
Всего: 15



Цитата(Bikutoru @ 10.10.2005, 16:57)
Ну и в обязательном порядке пробелы вокруг = + - * / & && | || == != > < >= <=

Так некоторые умудряются еще и пробелы вокруг . ставить
Код

$str = "str" . $a . "str";
$str = "str".$a."str"; // я придерживаюсь такого стиля




--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Alone
Дата 19.10.2005, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



Цитата(IZ @ 10.10.2005, 13:49)
А в остальном полностью поддерживаю Alone, ну, за исключением пробелов, я вставляю до и после знака =.

Я не хочу сказать что это излишне, я просто еще сам не привык везде ставить пробелы вокруг =
Тоесть правилом хорошего кода я это как раз считаю smile

А вдополнение ко всему сказанному я бы рекомендовал пользоваться ZDE
Умопомрачительная девелоперская среда! Подойдет как профессионалу, так и начинающему.
Главное не кипятиться при первых попытках работы с ней.smile
Да она тяжеловесная, потому как писана на яве, но в этом есть смысл. Но по своему удобству / функциональности она превосходит все остальные продукты, коих можно на пальцах перечислить.
Чего только стоит CodeCompletion! При обращении к объекту показывает все его методы и переменные.
А phpDocumentor! Если у вас в привычке есть пунктик - документировать все классы/методы/прочие_функции, то создание хтмл варианта документации разработчика состоит из 2-3 кликов.
В общем вот такие вот дела smile Если бы еще зенд покашлял немного денег мне за рекламу его продукта - я был бы счастлив smile


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 19.10.2005, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



А по мне, так удобнее (и красивее) пользовать Pear стандарты:
Код

function NameFunction()
{ // у функций скобы такие
    if ($z) { // а у конструкторов такие
        $a = 1;
    } else {
        $a = 0;
    }
}

switch ($var) {
    case ("bla"):
        $m = 0;
        break;
    case ("alb"):
        $m = 1;
        break;
}

// Классы аналогично функциям
class NameClass
{
    function NameFunction()
    { // у методов скобы такие
        if ($z) { // а у конструкторов такие
            $a = 1;
        } else {
            $a = 0;
        }
    }
}


Это сообщение отредактировал(а) -=Ustas=- - 19.10.2005, 14:19


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
AntonioBanderaz
Дата 24.10.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Есть некоторые люди, которые ещё и дополнительный перенос строки ставят... )))


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
-=Ustas=-
Дата 24.10.2005, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Цитата(AntonioBanderaz @ 24.10.2005, 13:36)
Есть некоторые люди, которые ещё и дополнительный перенос строки ставят... )))

Т.е.?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Master
Дата 24.10.2005, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: нет
Всего: 10



всем хай smile

Цитата
<?php
// Замена переменных в шаблоне
$text = ereg_replace("<!--a-->", $a, $text);
$text = ereg_replace("<!--b-->", $b, $text);
$text = ereg_replace("<!--c-->", $c, $text);
$text = ereg_replace("<!--d-->", $d, $text);
// Это по меньшей мере ужасно, но встречается очень часто.
// Оптимизируем и получаем одну строку:
$text = str_replace(array('<!--a-->', '<!--b-->', '<!--c-->', '<!--d-->'), array($a, $b, $c, $d), $text);

// Разбивка текста всегда осуществляем с помощью explode,
// а не split'a как это очень часто делают некоторые неопытные люди. Т.е. такой код:
$arr = split("|", $line);
// Заменяем на
$arr = explode("|", $line);
// Разумеется если вам необходимо разбить строку при помощи регулярных выражений,
// лучше всего сначала подумать: а может быть есть другой выход из ситуации?
?>


Изотоп, глядя вот на это хочеться сразу предложить отделять комменты переносами, а то когда правиш код без подсветки тяжко становиться:

Код

<?php

// Замена переменных в шаблоне
$text = ereg_replace("<!--a-->", $a, $text);
$text = ereg_replace("<!--b-->", $b, $text);
$text = ereg_replace("<!--c-->", $c, $text);
$text = ereg_replace("<!--d-->", $d, $text);
// Это по меньшей мере ужасно, но встречается очень часто. 

// Оптимизируем и получаем одну строку:
$text = str_replace(array('<!--a-->', '<!--b-->', '<!--c-->', '<!--d-->'), array($a, $b, $c, $d), $text);

// Разбивка текста всегда осуществляем с помощью explode,
// а не split'a как это очень часто делают некоторые неопытные люди. Т.е. такой код:
$arr = split("|", $line);

// Заменяем на 
$arr = explode("|", $line);

// Разумеется если вам необходимо разбить строку при помощи регулярных выражений,
// лучше всего сначала подумать: а может быть есть другой выход из ситуации?

?>


Это сообщение отредактировал(а) Master - 24.10.2005, 16:21


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
AntonioBanderaz
Дата 25.10.2005, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Цитата
Т.е.?

Код

class tralaLA {

     var $tra;

     var $rara;

     function tralaLA() {
         
         //некоторые действия

         // Тоже действие

         //Etc...

     }
}

Добавлено @ 13:53
Если что пример могу скинуть в виде ссылки...


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
-=Ustas=-
Дата 25.10.2005, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



AntonioBanderaz, жуть!!! smile Хоть и отступы есть, а читабельность нулевая! smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
AntonioBanderaz
Дата 28.10.2005, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Да я и сам испуг когда эт увидел...


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
wsr
Дата 14.1.2006, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Я лично при кодинге больших "приложений", предпочитаю пользоваться следующим:
Код

while ( ) :
         # вместо стандартной конструкции while () {} 
endwhile;

if ( ) :
         # вместо стандартной конструкции if () {} 
endif;

for ( ) :
         # вместо стандартной конструкции for () {} 
endfor;

switch ( ) :
         # вместо стандартной конструкции switch () {} 
endswitch;
         # вместо стандартной конструкции foreach () {} 
foreach ( ) :

endforeach;

По моему это лучший вариант для более удобного парсинга своего же кода в будущем!
А то будет в коде куча {{{{{{{ и }}}}}}}} и попробуй разберись что к чему относится, а так все четко и понятно!

Это сообщение отредактировал(а) wsr - 23.1.2006, 01:08
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
IBSN
Дата 15.1.2006, 01:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Позвольте, отделение пробелами - увеличивает читабельность, имхо...
1.
Код

if($a == "test") {
      echo "Test is: " . $a . "!";
}


2.
Код

$at = Array();
$ar = Array( Array() );
echo $ar[ $at[0] ][0];

  Вверх
IZ@TOP
Дата 16.1.2006, 02:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



wsr, мне кажется что эти конструкции немного устарели. А с фигурными скобками разбираться нет проблем - ставим Zend Studio и радуемся крестикам которые эти скобки группируют (скрывают, открывают).


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Kefir
Дата 16.1.2006, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 1
Всего: 87



Изотоп, умм... вы меня извините, конечно, но зенд стоит 99-1499 баков стоит smile Но это так, к слову...
А вообще, хорошо оформленный код избавляет от проблемы различения '}'.
Свёртывание кода, имхо, вообще не должно влиять на удобочитаемость кода.
Да, и, кстати, насколько я помню комодо тоже свёртывает неплохо.
PM MAIL WWW Skype   Вверх
IZ@TOP
Дата 16.1.2006, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Kefir, кто чем пользуется. Я привык к зендовскому монстру, стоит да, но я пока "триал" юзаю (хи-хи). Правильно ты сказал - как напишешь, так и прочитаешь.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Janus
Дата 16.1.2006, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 26.9.2005

Репутация: нет
Всего: 1



Многие редакторы могут сворачивать блоки (кажется, это называется "фолдеринг" или что-то типа этого). Например, Notepad++. Он к тому же идет под GNU GPL.
--------------------
Проект "Репликатор" 
PM MAIL   Вверх
Mal Hack
Дата 16.1.2006, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



ЗЕНД тоже с 5 версии сворачивает.
PM ICQ   Вверх
Janus
Дата 17.1.2006, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 26.9.2005

Репутация: нет
Всего: 1



Тут говорилось о том, что он платный и я предложил бесплатную альтернативу.
--------------------
Проект "Репликатор" 
PM MAIL   Вверх
CyClon
Дата 19.1.2006, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Где-то читал, что:
echo "My name is $name!";
Намного быстрее чем
echo "My name is".$name."!";
И быстрее чем:
echo "My name is {$name}!";


--------------------
user posted image
PM   Вверх
wsr
Дата 19.1.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Цитата(CyClon @ 19.1.2006, 21:33 Найти цитируемый пост)

Где-то читал, что:
echo "My name is $name!";
Намного быстрее чем
echo "My name is".$name."!";
И быстрее чем:
echo "My name is {$name}!";


Быстрее но не значит лучше!
В дальнейшем, при парсинге кода гораздо легче в большом блоке данных найти echo "My name is".$name."!"; чем echo "My name is $name!";
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 19.1.2006, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Самое быстрое и лучше - второй вариант, затем третий, затем первый.
PM ICQ   Вверх
Ciber SLasH
Дата 20.1.2006, 09:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Я вот юзаю такой синтаксис:
1) если PHP-код идёт блоками с (X)HTML-кодом, то делаю так:
Код

<?
//-- BEGIN: php ----------------------------------------------------------------
$action = $_GET['action'];        // действие: index.php?action=buy — купить товар. И т.д. и т.п.
$act = explode(':', $action);    // действие: index.php?action=log:clear — очистить лог. И т.д. и т.п.
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// Ниже как бы основной код, который выполняется всегда
$_title = 'Shop :: Main';
//-- END: php ------------------------------------------------------------------
?>
    <tr>
    <td id='navbar' style='display: none'>&nbsp;</td><!-- Для отображения — удалить атрибут "style" -->
    <td id='content'>
        <table id='priceList' align="center">
        <caption>Список товаров</caption>
        <thead>
            <tr><td colspan="2">Группа</td><td>Альбом</td><td>Год</td><td>Цена</td><td>ID</td></tr>
        </thead>
        <tbody>
<?
//-- BEGIN: php ----------------------------------------------------------------
// Другой PHP-блок
//-- END: php ------------------------------------------------------------------
?>

2) если есть какие-то структурированные массивы, то описываю их структуру в комментах:
Код

/* Пример массива:
    $order = array(
        // Смысл элементов: "Группа", "Альбом", "Год", "Цена", "ID"
        0 => array("Гражданская Оборона", "Вершки и корешки", "1989", "0.01 WMZ", "0"),
        1 => array("Гражданская Оборона", "Русское поле экспериментов", "1989", "0.01 WMZ", "1"),
        ...
    );
*/

3) отделяю некие псевдо-блоки кода, которые являются одной частью:
Код

$mrh_login = '';
$mrh_pass1 = '';

$inv_id = md5(uniqid(time()));    // номер счёта

4) комментарии начинаю с большой буквы, если они находятся в новой строке, иначе — с маленькой. Выравниваю комменты, если они находятся в ближайшей видимости:
Код

// Описание товара
$inv_desc = (count($order) == 1) ? $order[0][0] : 'Аудио-файлы (тестовый режим)';
$out_summ = 0;                    // сумма товара (инициализация)
$shp_id = '';                    // ID-товаров, строка вида: "ID0:ID1:ID2..."

5) отделяю пробелами символы операций (меньше, больше, присвоить значений и т.д.)
6) отделяю важные блоки так:
Код

//--[ Записываем инфу о заказе в файл ]-------------------------------------
$fp = fopen('./data/checks/'.$inv_id, 'wt');
flock($fp, LOCK_EX);
fwrite($fp, implode('|', $order_info));
flock($fp, LOCK_UN);
fclose($fp);
//-- END -------------------------------------------------------------------

// Иногда так, если не слишком много символов в заголовке
//--[ Отсылка письма ]----------------------------------------------------------
$e_mail = new Mail;
$e_mail->from = '';
$e_mail->to = $order_info[2];    // кому будем слать мессагу
$e_mail->subject = 'Shop :: Заказанные товары';
$e_mail->body = $e_content;    
for ($i = 0; $i < count($attach); $i++) {    // присоединяем файлы
    $e_mail->add_attachment('./data/'.$attach[$i]);
}
$e_mail->send();
//-- END: отсылка письма -------------------------------------------------------

7) описываю новые элементы с новой строки при определении массивов, но только если это логично для данных массива:
Код

$headers = array(
    'User-Agent: '.$_SERVER['HTTP_USER_AGENT'],
    'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1',
    'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
    'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0',
    'Referer: http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'],    // полный URL этой страницы
    'Content-Type: application/x-www-form-urlencoded',
    'Content-Length: '.strlen($post_data),
    'Connection: keep-alive'
);

8) функции описываю так:
Код

function funcName($a, $b) {
$c = 'zzz';
    if ($c == 'a') {
        $d = 'yyy';
        return true;
    }
return false;
}

9) для отступов юзаю табы в размере 4 знакоместа
10) строки с использованием переменных разбиваю:
Код

echo 'zzz'.$a.'yyyyy';

11) там, где не нужна обработка escape-последовательностей, юзаю одинарные кавычки для строк, иначе — двойные:
Код

echo 'zzz'.$a.'yyyyy';
echo "zzzzzz:\t".$a;

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
Мне больше нравится так, как в английской доке smile

Это сообщение отредактировал(а) Ciber SLasH - 20.1.2006, 09:50
PM   Вверх
AztEK
Дата 20.1.2006, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: нет
Всего: 18



Читал, что лучше использовать одинарные кавычки+конканетация переменных.


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Janus
Дата 20.1.2006, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 26.9.2005

Репутация: нет
Всего: 1



Так и есть. В этом случае не тратится лишнее время на разбор строки.
--------------------
Проект "Репликатор" 
PM MAIL   Вверх
DENNN
Дата 20.1.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: нет
Всего: 43



Цитата(AztEK @ 20.1.2006, 12:55 Найти цитируемый пост)

Читал, что лучше использовать одинарные кавычки+конканетация переменных.

Видимо из тех соображений, что парсер не тратит время, выискивая переменные в двойных кавычках.

Это сообщение отредактировал(а) DENNN - 20.1.2006, 13:07
PM ICQ   Вверх
Древлянин
Дата 22.1.2006, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 20.1.2006

Репутация: нет
Всего: нет



Цитата(Janus @ 20.1.2006, 13:00 Найти цитируемый пост)

Так и есть. В этом случае не тратится лишнее время на разбор строки.

Да, так было до 5-ой версии PHP, в 5-ой теперь обрабатывается одинаково быстро.
PM MAIL   Вверх
Ciber SLasH
Дата 22.1.2006, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(Древлянин @ 22.1.2006, 01:37 Найти цитируемый пост)

так было до 5-ой версии PHP

5-я версия, это конечно хорошо, но к великому сожалению большинство хостингов сидят на 4-ёрке. smile
PM   Вверх
wsr
Дата 23.1.2006, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Помоему сейчас тема с кавычками не особо актуальна, так как рано или поздно, но все равно все перейдут на PHP 5.
А там как известно "все" одинаково. ИМХО.
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
idler
Дата 28.2.2006, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 27.2.2006

Репутация: нет
Всего: 1



Правила написания PEAR рулят однозначно!!!
Код получается красивый, понятный, быстрый и самодокументирующийся (PEAR::phpDocumentor)
PM MAIL   Вверх
CyClon
Дата 1.3.2006, 21:05 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Мне PEAR не нравятся... Больше нравится такой стиль:

Код
if (eregi("mail.ru", $_POST['mail'])) {
    echo "Sorry...";
} else {
    header("Location: reg.php");
}


Код
function bb2html ($text) {
    str_replace("[b]", "<b>");
    str_replace("[/b]", "</b>");
}



--------------------
user posted image
PM   Вверх
-=Ustas=-
Дата 1.3.2006, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



CyClon, лучше всего привыкать к общим используемым стандартам, нежели писать так как тебе нравится smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Ciber SLasH
Дата 1.3.2006, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(-=Ustas=- @ 1.3.2006, 21:10 Найти цитируемый пост)
лучше всего привыкать к общим используемым стандартам, нежели писать так как тебе нравится smile

Не совсем согласен. У каждого прогера свой стиль программирования. Люди все разные... клоны пока не получили широкого распространения smile
PM   Вверх
Wowa
Дата 1.3.2006, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290




Цитата(CyClon @ 1.3.2006, 19:05 Найти цитируемый пост)

if (eregi("mail.ru", $_POST['mail'])) {
    echo "Sorry...";
} else {
    header("Location: reg.php");
}


Я тоже в таком стиле люблю писать. Занимает мало места и для меня - очень наглядно smile
PM WWW   Вверх
Ciber SLasH
Дата 1.3.2006, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(Wowa @ 1.3.2006, 23:48 Найти цитируемый пост)
Я тоже в таком стиле люблю писать. Занимает мало места и для меня - очень наглядно smile

Аналогично smile
PM   Вверх
Alone
Дата 2.3.2006, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



Цитата(wsr @ 14.1.2006, 00:17)

По моему это лучший вариант для более удобного парсинга своего же кода в будущем!
А то будет в коде куча {{{{{{{ и }}}}}}}} и попробуй разберись что к чему относится, а так все четко и понятно!


Если встерчается конструкция из более чем 2х циклических вложений - это уже повод задуматься о декомпозиции...

Это сообщение отредактировал(а) Alone - 2.3.2006, 10:37


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 2.3.2006, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Цитата(Ciber SLasH @ 1.3.2006, 23:23 Найти цитируемый пост)
Не совсем согласен. У каждого прогера свой стиль программирования.

Стандарты в любом случае должны быть! Т.к. вольное программирование - как кому нравится, становится трудным в сопровождении кода другими программистами! Личный пример: полгода назад принял некоторый проект на поддержку, так я того прогораммиста готов завалить при первой же встрече!!!!!!!!

Это сообщение отредактировал(а) -=Ustas=- - 2.3.2006, 10:42


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
CyClon
Дата 3.3.2006, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Меня просто в дрошь кидает, когда вижу такое:

Код
}
else
{


Не красиво до ужаса, вот } else { совсем другое дело ;)


--------------------
user posted image
PM   Вверх
-=Ustas=-
Дата 3.3.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Стандарты пиар у руля!!! По-любому!


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
S.A.P.
Дата 3.3.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Код

if (eregi("mail.ru", $_POST['mail'])) {
    echo "Sorry...";
} else {
    header("Location: reg.php");
}


для такого случая я использую
Код

if (eregi("mail.ru", $_POST['mail'])) 
    echo "Sorry...";
else
    header("Location: reg.php");


а вобще
Код

if (eregi("mail.ru", $_POST['mail'])) 
{
    echo "Sorry...";
    // blablabla

else 
{
    header("Location: reg.php");
    // blablabla
}


И что тут такого ужастного?? Все наглядно и понятно.
PM MAIL   Вверх
Ciber SLasH
Дата 3.3.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(CyClon @ 3.3.2006, 14:26 Найти цитируемый пост)
Меня просто в дрошь кидает, когда вижу такое:

Я помню когда сам писал так давно на С. У нас в универе сначала преподавали Pascal и он мне понравился до безумия. Ну и там как раз блоки операторов отделяются так:
Код

if ()
begin
  {действия}
end;

и когда после Pascal-я начали учить C, то я старался придерживаться той структуры кода, как в Pascal-е, т.е. писал так:
Код

if ()
{
  // действия
}

но потом от такой структуры отказался, т.к. код сильно расплывается из-за лишних переводов строк. И в итоге мне приглянулась такая структура:
Код

if () {
  // действия
} else {
  // действия
}

PM   Вверх
IZ@TOP
Дата 9.3.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Кому что. Мне больше с отступами нравится

Код

if( condition ) {

    // По сноске до тела конструкции и после
    callfunction();

} else {

    // По аналогии
    $class->callmethod();

}



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
RomanK
Дата 30.3.2006, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 25.6.2005
Где: Россия, Выборг

Репутация: нет
Всего: 2



Мне тоже не нравятся стандарты PEAR.

Сам делаю так:
Имена переменных: все буквы маленькие, слова разделяю "_".
Имя классов: Каждое слово с заглавной буквы. Без "_".
Имя методов, функций - аналогично названию класса. Приватный метод: вначале "_".
Название свойств: первое слово с маленькой буквы, остальные слова с большой. Без "_".
Все отступы делаю табуляцией.

Пример:
Код

<?php
class ClassName
{
    private $firstVar    =null; // Comments.
    private $secondVar   =0;
    
    function TestMethod($var=false)
    {
        if($var) $this->firstVar='string';
        else
        {
            if(is_null($this->secondVar)) $this->secondVar=1;
            else                          $this->secondVar=10;
        }
    }
}
function TestFunction($var=true)
{
    static $a=0;

    if($var) return false;
    else
    {
        if(is_null($a))
        {
            $a=1;
            return false;
        }
        else
        {
            $a=2;
            return true;
        }
    }
}
?>

PM MAIL WWW ICQ   Вверх
Serkys
Дата 30.3.2006, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



А я так пишу:
Код

if () {    
  // действия    
}
else {    
  // действия    
};

По мне, так очень удобно. Особо в стандарты не всматривался, пока пишу как удобно мне. Вроде все, кто смотрел мой код, врубались быстро и не жаловались.
PM MAIL   Вверх
skalex
Дата 6.4.2006, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: нет
Всего: 23



Может кто писал уже, не знаю ...

Вот такой код:
Код
if ($foo == 'bar') {
   echo "Yes";
} else {
   echo "No";
}

я всегда стараюсь записывать так:
Код
echo ($foo == 'bar') ? 'Yes' : 'No';


Еще пример:
Код
if ($foo == 'bar') {
   $s1 = "Yes";
} else {
   $s1 = "No";
}
$s2 = 'Response: '.$foo.'!';

заменяю на
Код
$s2 = 'Response: '.(($foo == 'bar') ? 'Yes' : 'No').'!';


Разумеется, речь идет о одностроковых действиях в блоках if-else. smile
PM   Вверх
Ignat
Дата 6.4.2006, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: нет
Всего: 73



А кто сказал, что PEAR - это эталон? Если нашлось достаточно большое количество противников такого подхода, то что-то неладно с этим стандартом. Я сам сторонник стандартов, но стандарты, которые усложняют коммуникативность должны быть изменены, ИМХО.
Когда приходится рефакторить огромное количества кода, то начинаешь плеваться от такой размазанности, т.к. страдает визуальное восприятие. Ведь код должен не только работать, но и читаться.

Я всеми руками за конструкцию:

Код

if ($foo == 'bar') {

   $s1 = "Yes";
   $s2 = "Yes";
   $s3 = "Yes";

}elseif ($foo == 'barbar'){

   $s1 = "No";
   $s2 = "Yes";

}else{

   $s1 = "No";

}


В коде: смысловые блоки компактны, четко выделены узлы ветвления, при этом отражено направление ветвления визуально (что страдает у PEAR-а).


--------------------
Теперь при чем :P
PM   Вверх
CyClon
Дата 6.4.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Мне все больше нравятся тсандарты PEAR. Так, пересмотрев справочник я нашел там вот такие вещи:

Код
<?php

function myfunc()
{
    if ($variable == 1) {
        return true;
    } else {
        return false;
    }
}

?>


Чем вам не нравится данный подход?
Добавлено @ 13:13
Основные выдержки из мануала:

Цитата
Используйте для отступа 4 пробела, а не табуляцию.


Оформление оператора if:

Код
if ((condition1) || (condition2)) {
    action1;
} elseif ((condition3) && (condition4)) {
    action2;
} else {
    defaultaction;
}


Оформление оператора switch:

Код
switch (condition) {
case 1:
    action1;
    break;

case 2:
    action2;
    break;

default:
    defaultaction;
    break;

}


Объявления переменных, выхов функции:

Код
$var = foo($bar, $baz, $quux);

Код
$short         = foo($bar);
$long_variable = foo($baz);


Объявление функций:

Код
function connect(&$dsn, $persistent = false)
{
    if (is_array($dsn)) {
        $dsninfo = &$dsn;
    } else {
        $dsninfo = DB::parseDSN($dsn);
    }

    if (!$dsninfo || !$dsninfo['phptype']) {
        return $this->raiseError();
    }

    return true;
}


Цитата
Подходят комментарии в стилях C (/* */) и C++ (//). Использование комментариев в стиле Perl/shell (#) не рекомендуется.



--------------------
user posted image
PM   Вверх
Ignat
Дата 6.4.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: нет
Всего: 73



Цитата(CyClon @ 6.4.2006, 14:06 Найти цитируемый пост)
Используйте для отступа 4 пробела, а не табуляцию.

Протестую. Из чисто практических соображений - задолбаешься.

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

Код

$short              = foo($bar);
$long_variable = foo($baz);


А это красиво, но малочитабельно. Объявление из 7-8 переменных с именем разной длины приводит к неприятному эффекту, когда видишь, что присваивается, но не видишь чему. Приходится либо ставить курсор, чтобы посмотреть номер строки, либо приложить к монитору линейку =)



Цитата(CyClon @ 6.4.2006, 14:06 Найти цитируемый пост)
Оформление оператора if:

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



Цитата(CyClon @ 6.4.2006, 14:06 Найти цитируемый пост)
Оформление оператора switch:

ИМХО, break вертикально должен совпадать с соответствующим case, т.к. по сути является его закрытием, следовательно визуально не должен "вылетать" из логики. A case и default в свою очередь должны иметь отступ от switch, чтобы не "смазывать" закрывающую скобку.
Пример (живой):
Код

    function action($act){
    
        switch ($act){
        
            case 'edit':
                $this->edit();
            break;

            case 'delete':
                $this->delete();
            break;

            case 'save':
                $this->save();
            break;

            default:
                $this->default_action();
        
        }
    }



Всё вышеизложенное - моё ИМХО.


--------------------
Теперь при чем :P
PM   Вверх
skalex
Дата 6.4.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: нет
Всего: 23



Цитата
Приведу в пример опять рефакторинг - когда приходится лечить прбитый к левому краю код, то количество выставленных табов исчисляется тысячами. Соответственно в пробелах в 4 раза больше. Тем более парсить такой код впоследствии проще.


Вообще в некоторых редакторах есть функции вылечивания такого кода (анализ и автоматическая расстановка отступов).
PM   Вверх
Ignat
Дата 6.4.2006, 14:42 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: нет
Всего: 73



Ну рефакторинг обычно включает в себя не только расстановку отступов.... Так что это просто горькая необходимость. Иногда даже приходится убивать уже выставленные грамотно отступы, при переносе блока.

Цитата(skalex @ 6.4.2006, 15:37 Найти цитируемый пост)
Вообще в некоторых редакторах есть функции вылечивания такого кода

Ну... мы такой роскошью не пользуемся smile EditPlus forever.

ЗЫ А может в нём тоже это есть?




--------------------
Теперь при чем :P
PM   Вверх
skalex
Дата 6.4.2006, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: нет
Всего: 23



Цитата
ЗЫ А может в нём тоже это есть?


Нет. А жаль ... Редактор то достойный. Плохо также, что он вяло развивается ...
PM   Вверх
CyClon
Дата 6.4.2006, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Цитата
Протестую. Из чисто практических соображений - задолбаешься.


Если писать в блокноте - я с тобой согласен. Но если писать в том же Zend Studio или PHP Expert Editor, то там можно задать определенное кол-во пробелов. Нажал TAB - 4 пробела есть.

Цитата
А это красиво, но малочитабельно.


Тут я с тобой согласен. Да и это не правило написания - это совет.

Цитата
Вот это излюбленный мной стиль. Но предпочитаю в больших блоках ставить разрыв (пустая строка) после открытия блока и перед закрытием.


Ну, мне вообще нравится такой стиль:

Код
if ($variable)
{
    echo "123";
} else {
    echo "321";
}


Но я все же буду опираться на стандарты smile))

Цитата
ИМХО, break вертикально должен совпадать с соответствующим case, т.к. по сути является его закрытием, следовательно визуально не должен "вылетать" из логики.


Нет, как раз-таки break не должен совпадать с case, т.к. это конструкция да и если мы напишем continue? В общем протест smile

Мой любимый силь:

Код
switch ($_POST['number'])
{
    case 1:
        echo "1";
        break;
    case 2:
        echo "2";
        break;
    case 3:
        echo "3";
        break;
    default:
        echo "Default";
        break;
}



--------------------
user posted image
PM   Вверх
Elfet
Дата 9.4.2006, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Люблю нажимать Alt + F8 в Визуале smile И не мучаюсь! smile smile

А что деласть с кодом и с отступами если использую EOF?

Код

function get()
{
return <<<EOF
<a href="#">ToTop</a><br />
EOF;
}


Перед EOF; же нельзя ставить пробелы.


--------------------
PM MAIL WWW Skype   Вверх
Alone
Дата 4.7.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: нет
Всего: 6



Цитата(Ignat @ 6.4.2006,  14:33)
Цитата(CyClon @  6.4.2006,  14:06 Найти цитируемый пост)
Используйте для отступа 4 пробела, а не табуляцию.

Протестую. Из чисто практических соображений - задолбаешься.

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

4 пробела отобразятся ОДИНАКОВО в любом редакторе, в то время как tab отображается ВЕЗДЕ ПО РАЗНОМУ. Отсюда и рекомендация не использовать его в разметке кода. 
Знаю многие конторы, где за каждый найденый таб штрафуют. 0.5$
"Молдняк" излечивается после первой же зарплаты smile

Добавлено @ 13:23 
Цитата(CyClon @  6.4.2006,  18:08 Найти цитируемый пост)
Если писать в блокноте - я с тобой согласен. Но если писать в том же Zend Studio или PHP Expert Editor, то там можно задать определенное кол-во пробелов. Нажал TAB - 4 пробела есть.

Кроме того там есть "Auto indent code" который, при отсутствии таб-ов,  правильно расставит отступы.
Кстати, табы в зенде лечу нажатием ctrl+h (заменить '\t' на '____' 4 пробела smile ) 


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
AztEK
Дата 4.7.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: нет
Всего: 18



Какие жаркие споры smile

Джефф Элджер в своей книге "C++ For Real Programmers" писал
Цитата
Эта книга посвящена языковым идиомам, а не расположению фигурных скобок или регистру символов.


Почему бы эту фразу не применить к этому топику? smile
Каждый пишет как ему удобно. Важны идеи. 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Ignat
Дата 5.7.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: нет
Всего: 73



Цитата(AztEK @  4.7.2006,  21:21 Найти цитируемый пост)
Каждый пишет как ему удобно. Важны идеи.  

У нас в конторе такой подход называют "креатиффом". Есть товарищи, пишут очень идейно, но в коде хрен разберешься... По три-четыре оператора в строчку и все логи HEX-дампом. 


--------------------
Теперь при чем :P
PM   Вверх
awers
Дата 25.9.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



Очень жаль что обсуждение остановилось на КАЖДОМУ СВОЕ.
Хотелось бы прийти к более конкретному "доку по стилю написания".
Даже если простым большинством голосов  smile 
PM MAIL WWW ICQ Skype   Вверх
dsCode
Дата 25.9.2007, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: нет
Всего: 26



Дочитал до середины, дальше, к сожалению, не осилил =)

Кто бы что не говорил (про "каждому свое") - по-любому должны быть style guid'ы. Конечно, они могут быть локальными в какой-то компании, но есть и общепринятые. Код Zend'a и Pear'a - еще не эталон. Поищите нормальную достоверную, стандартизированную документацию по кодингу на PHP. Потому что существует такое понятие как "профессиональный почерк" и все ИМХИ в нем не прокатят ("я привык так-то и так-то", "так лучше" и т.д.). Локальные привычки еще ничего не значат. Вот в этой теме обсуждались некоторые основные принципы. Они верны, и PHP касаются тоже.

P.S.: кстати, насчет сокращений: если условие одиночно, то можно (и даже более профессионально) писать так:

Код

$a === 3 && ($obj->doSomething());

// если с if-ом писать - то скобки - обязательны!

if ($a === 3) {
  $obj->doSomething();
}

// но первый вариант предпочтительней, хотя второй - наглядней

// так же можно писать 

$a = $b || 3; // $a будет $b, иначе 3

// вместо

if ($b) {
  $a = $b;
} else {
  $a = 3;
}

// или 

$a = $b ? $b : 3;

// опять же - первый вариант предпочтительней



--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
theworldcreator
Дата 25.9.2007, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: нет
Всего: 13



Цитата(wsr @ 14.1.2006,  00:17)
Я лично при кодинге больших "приложений", предпочитаю пользоваться следующим:
Код

while ( ) :
         # вместо стандартной конструкции while () {} 
endwhile;

if ( ) :
         # вместо стандартной конструкции if () {} 
endif;

for ( ) :
         # вместо стандартной конструкции for () {} 
endfor;

switch ( ) :
         # вместо стандартной конструкции switch () {} 
endswitch;
         # вместо стандартной конструкции foreach () {} 
foreach ( ) :

endforeach;

По моему это лучший вариант для более удобного парсинга своего же кода в будущем!
А то будет в коде куча {{{{{{{ и }}}}}}}} и попробуй разберись что к чему относится, а так все четко и понятно!

Интересно. Никогда не задумывался над таким применением. Надо будет попробовать. Я последнее время, при большом объеме кода, пишу так:
Код

if(a){

//код

}//if(a)

А если условие слишком большое, писал его не целиком, и так понятно:
Код

if(!empty($_POST['search_string']) and ((!empty($_POST['table']) and !empty($_POST['types'])) or !empty($_SESSION['search_values']))){

//код

}//if(!empty($_POST['search_string']) and ((!empty($_PO

P.S.
Здесь так активно рекламировали zend, что я даже скачал. Могу скинуть найденный только что keygen. Либо в личку, либо пусть модератор разрешит его здесь выложить(или хотя бы ссылку показать)
PM MAIL WWW ICQ   Вверх
Vaulter
Дата 25.9.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



Цитата(dsCode @ 25.9.2007,  17:32)
Код

// так же можно писать 

$a = $b || 3; // $a будет $b, иначе 3

// вместо

if ($b) {
  $a = $b;
} else {
  $a = 3;
}

// или 

$a = $b ? $b : 3;

// опять же - первый вариант предпочтительней

если $b не существует будет WARNING
поэтому 
Код

$a = ( !empty($b) )? $b : 3;
//ИЛИ
$a = ( isset($b) )? $b: 3;

смотря по контексту



--------------------
PM MAIL WWW ICQ   Вверх
theworldcreator
Дата 25.9.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: нет
Всего: 13



Цитата(Vaulter @ 25.9.2007,  18:08)
если $b не существует будет WARNING
поэтому 
Код

$a = ( !empty($b) )? $b : 3;
//ИЛИ
$a = ( isset($b) )? $b: 3;

смотря по контексту

А разве он так не будет проверять переменную только на существование?

Добавлено @ 18:21
незнаю можно ли так(скоро проверю), но должно работать:
Код

$a =  isset($b) ? ($b ? $b : 3):false;


Это сообщение отредактировал(а) theworldcreator - 25.9.2007, 18:23
PM MAIL WWW ICQ   Вверх
theworldcreator
Дата 25.9.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: нет
Всего: 13



Мой способ работает. Ваш
Код

$b=false;
$a = ( isset($b) )? $b: 3;

В результате $a==false, а не 3, как задумывалось. empty() работает нормально. Он просто проверяет на наличие переменной И на ее НЕ равность false, что делает функцию очень удачной для данного случая.
PM MAIL WWW ICQ   Вверх
dsCode
Дата 25.9.2007, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: нет
Всего: 26



Vaulter, да речь не "о существовании" / "не существовании" переменных там каких-то (этот пример - так - до кучи написал, он тут не при чем вообще). Основная речь, я еще раз повторю - стандартизованные правила оформления кода. Мой вам совет, други, - сразу себя лучше приучать к правильному коду и избавляться от неправильных привычек (удобным вам кажется или нет, но если это не правильно - всегда будет выдавать непрофессионала).


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
awers
  Дата 26.9.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



во всяком случае, я всегда стараюсь придерживаться Zend овского стиля написания кода, искать изящные решения ...
к примеру: когда я работал в одной московской конторе (поддерживал ранее созданные сурсы и создавал новые), попадались такие сайты, где .htaccess весил ~1мб, причем совершенно необоснованно, без комментов. соответственно заглядывая в php можно было потерять сознание. теперь стараюсь в любом случае, на сколько бы "наколенной" разработка не была придерживаться стандартов. этоисты в программировании - муветон!
PM MAIL WWW ICQ Skype   Вверх
SelenIT
Дата 27.9.2007, 02:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 2
Всего: 401



Цитата(dsCode @  25.9.2007,  16:32 Найти цитируемый пост)
$a = $b || 3; // $a будет $b, иначе 3

Имхо, в таких выражениях для наглядности обязательно ставить скобки, чтоб не вспоминать на ходу приоритет операторов и не спотыкаться на различиях ||-or и &&-and...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
FCCStepan
Дата 12.12.2007, 07:47 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 31.10.2007

Репутация: нет
Всего: нет



Прочитал две страницы, и решил посеять зерно сомнения в ваших, без сомнения, светлых головахsmile  Для пишется понятный красивый и правильный код ? - вернее сказать для кого ? Если вы пишите код для преподавателя по программированию, то, конечно мы все ставим отступы, разделяем и все остальное. А кто ни будь задавался написать правильно работающий, оптимально  работающий но ужасно не читаемый код ?  Для чего ? для того чтобы ваши последователи потратили на то чтобы в нем разобраться столько же времени, сколько потратили бы на написание своего с нуля. 
Сколько пишу на пхп, постоянно ловлю себя на мысли, что мозг не работает, тут нет ничего сложного, после 2го сайта все пишется уже подсознательно, вместе с чатами, фильмами и смс. А когда пишешь <вырезано> код, без структуры, с определением функций в функциях, с переопределением глобальных переменных, с кривыми комментариями, которые понятны только мне  (на примерах и метафорах из жизни) и все еще это пополняешь названиями функций типа Audi_R8 или zzt213 (кузов новой тойота селика),  то в голове приходиться держать массу всяких ассоциаций и сравнений, что делает процесс хотябы более интересным и требовательным к себе, нежели просто , простите, тупо 
$OB1.="bye;" echo $OB1; unset ($OB1).

Нужна ли эта красота и порядочность в и без того простых кодах, когда вы пишете свое для себя под себя, и так чтобы кроме вас это пользовать никто не смог?

M
skyboy
мата не надо. даже с одной замаскированной буквой


Это сообщение отредактировал(а) skyboy - 12.12.2007, 09:23
PM MAIL   Вверх
skyboy
Дата 12.12.2007, 09:33 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



ну, да. конечно. машина, для управления которой надо будет полгода учиться в ВУЗе - это самая что ни на есть хорошая машина, потому что заставляет думать и вспоминать, каким образом можно переключиться с первой передачи на вторую. как же.
а как же ошибки? легко их отлавливать, если постоянные eval? а если функции в функциях?
как быть при добавлении нового функционала через полгода? удобно? просто? без ошибок?
нет, товарищ, с такими взглядами жить будет трудно...
PM MAIL   Вверх
bars80080
Дата 12.12.2007, 10:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



значит товарищ мало кода пишет, у меня уже через месяц вылетят все ассоциации, так как и мировозрение тоже меняется, а разбираться в километрах уже малознакомого кода - проделывать работу второй раз
PM MAIL WWW   Вверх
N0dwis
Дата 12.12.2007, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 18.9.2007
Где: Луганск

Репутация: 1
Всего: 4



Цитата(FCCStepan @  12.12.2007,  07:47 Найти цитируемый пост)
о в голове приходиться держать массу всяких ассоциаций и сравнений

Не знаю, насколько сложные проекты Вы писали, но мое мнение - не очень сложные и не профессиональные.
Да, если пишешь скрипт на 20 строк, то можно обзывать переменные a, b, c и т.п. но если объем кода переваливает даже за 10-20 кб, то (во всяком случае у меня), начинаются проблемы с запоминанием всех имен переменных, функций, классов и т.п. А если они еще и будут названы, как Вы предложили, то проект не будет закончен никогда! Все время уйдет на поиск и попытки написания таких имен. А если еще и пишешь не сам, а в команде - то еще дольше!  smile
Плюс дальше будут БОЛЬШИЕ проблемы с редактированием кода. Вспомнить даже через 2 - 3 дня после написания что именно делает функция с именем zzt213 (особенно если она не очень большая и используется не часто) будет проблематично.
Основные усилия при написании программы должны быть направлены не на разгадывание ребусов с именами переменных, а на построение, написание и отладку логики программы. Если название переменной или функции выбрано правильно - редактировать код можно даже не зная абсолютно точно где и как переменная используется, а просто видя перед собой локальный кусок кода (серьезные изменения так лучше все-таки не делать, но для мелких - самое то).
А  вот как выбирать имена - это уже искусство.
PM MAIL   Вверх
Feldmarschall
Дата 12.12.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: -2
Всего: 32



мне кажется, что FCCStepan - это то, что называеют "сетевым троллем". Человек пишет не для того, чтобы разобраться самому или посоветовать другим, а чтобы вызвать флейм.
Я не думаю, что он нуждается во всех тех многочисленных советах, которые на него посыпались. 

Если же подходить к его заявлениям серьёзно, то есть вещи, которые невозможно объяснить - их можно понять только на собственном опыте. К примеру, все эти многочисленные заверения о том, что он сам через два дня забудет. 
Тем более, что он сам говорит, что "усложняет" код для развлечения. Ну развлекается человек и развлекается. Мало ли какие у кого странности. Смысл чьи-то личные тараканы в теме, посвященной технологии в целом?

Впрочем, повторюсь, я всё равно не верю, что все это написано всерьёз, а не с целью развлечься.
PM   Вверх
N0dwis
Дата 12.12.2007, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 18.9.2007
Где: Луганск

Репутация: 1
Всего: 4



Понял!
FCCStepan пишет просто crackme на php!
 smile
PM MAIL   Вверх
FCCStepan
Дата 12.12.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 31.10.2007

Репутация: нет
Всего: нет



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


Feldmarschall, Про сетевого троля не очень понял сравнение .

N0dwis,  если совсем асбтрагриоваться, то можно и так сказать. 


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

Ладно smile продолжайте сабж )
PM MAIL   Вверх
sTa1kEr
Дата 11.1.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 11
Всего: 146



FCCStepan, это называется обфускация и ею совершенно не нужно заниматься программисту самому.

По теме же, можно спорить бесконечно. Однако важно одно, что бы вы всегда придерживались *одного* стиля.
PM MAIL   Вверх
FractalizeR
Дата 11.1.2008, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 27.12.2007
Где: Россия/Москва

Репутация: 1
Всего: 4



Цитата(Feldmarschall @ 12.12.2007,  10:47)
мне кажется, что FCCStepan - это то, что называеют "сетевым троллем". Человек пишет не для того, чтобы разобраться самому или посоветовать другим, а чтобы вызвать флейм.
Я не думаю, что он нуждается во всех тех многочисленных советах, которые на него посыпались. 

Если же подходить к его заявлениям серьёзно, то есть вещи, которые невозможно объяснить - их можно понять только на собственном опыте. К примеру, все эти многочисленные заверения о том, что он сам через два дня забудет. 
Тем более, что он сам говорит, что "усложняет" код для развлечения. Ну развлекается человек и развлекается. Мало ли какие у кого странности. Смысл чьи-то личные тараканы в теме, посвященной технологии в целом?

Впрочем, повторюсь, я всё равно не верю, что все это написано всерьёз, а не с целью развлечься.

Полностью согласен.


--------------------
Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя.
PM MAIL   Вверх
source777
Дата 29.1.2008, 00:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Код должен иметь возможность к расширению и быть достаточно гибким + http://agilemanifesto.org/

Цитата(IZ@TOP @  3.4.2005,  10:58 Найти цитируемый пост)
// Замена переменных в шаблоне
$text = ereg_replace("<!--a-->", $a, $text);
$text = ereg_replace("<!--b-->", $b, $text);
$text = ereg_replace("<!--c-->", $c, $text);
$text = ereg_replace("<!--d-->", $d, $text);// Это по меньшей мере ужасно, но встречается очень часто. // Оптимизируем и получаем одну строку:
$text = str_replace(array('<!--a-->', '<!--b-->', '<!--c-->', '<!--d-->'), array($a, $b, $c, $d), $text);

Для шаблона, имхо, твой вариант не менее ужасен, всего 4 переменных да ещё и с заранее заданными именами, где же гибкость?
Код

 // заменяем все предопределённые переменные их значениями,  а не определённые пустыми значениями
$text = preg_replace("/<!--(\w[\w\d_]*)-->/", "$$1", $text); 
eval('@print "'.$text.'";');                                                        



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
CyClon
Дата 24.2.2008, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Плясать нужно начинать от стандартов кодирования Zend.

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

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

ИМХО "красиво" написанный код повышает "КПД" smile программиста и уменьшает в будущем время отладки.

ЗЫ: Так же есть стандарты 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


--------------------
user posted image
PM   Вверх
dsCode
Дата 24.2.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: нет
Всего: 26



CyClon
Цитата(CyClon @  24.2.2008,  10:50 Найти цитируемый пост)
Однако, вопреки стандартам Zend:
1. Не использую завершающий тег "?>"

по-моему как раз-таки у Зенда написано НЕ использовать завершающий тег, если нет перемешки php и html (я тоже не использую ;)).

Цитата(CyClon @  24.2.2008,  10:50 Найти цитируемый пост)
Если вы пишите в команде, не важно какие стандарты вы используете, главное чтобы все, кому нужно, без проблем разбирались в вашем коде.

ага, а потом придет человек, который все время писал, придерживаясь Зенда (например) - и будет разбираться в вашей, понятной только вам, иероглифической каше =)

P.S. вот в этом плане Python мне очень нравится - даже отступы "стандартизованы" - если в следующей строке будет не такое количество отступов, как в изначальной - компилятор выдаст ошибку =) Отличное принудительное обучение людей писать правильно =)) На такой код любо посмотреть ) К тому же некоторые (Sun (Java), Python, др.) выкладывают официальные Programming Style Guide'ы, следовать которым - ну я считаю уважением к языку.

Это сообщение отредактировал(а) dsCode - 24.2.2008, 12:21


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
CyClon
Дата 24.2.2008, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Цитата
ага, а потом придет человек, который все время писал, придерживаясь Зенда (например) - и будет разбираться в вашей, понятной только вам, иероглифической каше =)

Ну, я конечно не имел ввиду код без отступов, писанный человеками-обсуксаторами smile Просто в некоторых моментах можно навалять на стандарты и писать как нравится. Например, если не нравится именование функций следуя верблюжей нотации (getFile), можно писать в C-Style а-ля get_file. Все зависит еще от подготовки кодера. Например, многие пишут при сравнении слева констанку, а справа переменную, чтобы "случайно не написать = вместо ==". Лично я таких ошибок на своей памяти за 2 года помню максимум штуки 3 smile А писать константу слева - как-то непривычно и некрасиво. Хотя тут уже нужно определяться, или использовать всевозможные защиты от дурака (отказ от использования завершающего тега, чтобы не допустить случайных пробелов в конце кода; постановка константы в левой части выражения для условных операторов) или же писать так, как приятней smile

ЗЫ: Сейчас перечитывал все 4 стандарта, все разные smile Но PEAR помоему изменился неслоабо (особенно в плане использования фигурных скобок).

Что не понравилось в PEAR сейчас:
1) Использование "elseif" (я использую "else if"
2) Синтаксис оператора switch (здесь я использую Zend-Style)

Плюс ко всему, не могу определиться с именованием. Очень все стандарты разные, причем у каждого именования свои плюсы и минусы.
В классах использовать сокращения типа HTML в верхнем регистре делает названия классов непотяными (Например: HTMLFormBuilder, HTMLToXML). Использование только первый заглавной буквы - некрасивыми (HtmlFormBuilder, HtmlToXml). Однако, скорее придется использовать второй вариант.

Далее с функциями и переменными. В одном из стандартов призывают использовать C-Style имена переменных и функций ($var_name, $life_time, get_file(), set_value()), да бы не путать их с чем-то там smile Однако форма записи мне ужасно ненравиться, намного красивее - $varName, $lifeTime, getFile, setValue). Хотя... Я сейчас все больше стараюсь использовать ООП, работать с классами, поэтому обычных функций приходиться объявлять все меньше и меньше. В классах же использование верблюжей нотации в методах как раз приветствуется.

ЗЫ: Пока писал, даже немного определился со "своими стандартами". Пора бы уже твердо это усвоить и писать годами код в одном стиле.

Ну, и наконец, вспомнил про include. Тут то же, что и с константами слева, и заверщающим тегом. Наверно буду использовать include_once и require_once и работать на "максимальную защиту от дурака а-ля случайных ошибок". Однако, include/require являются такими же конструкциями (а не функциями) языка, как и return. Тут я опять стал на перепутье - использовать скобки или нет?

С-Style:
Код
require_once 'kernel/kernel.php';

Или же:
Код
require_once('kernel/kernel.php);


В общем, больная тема, уже надоела smile Четких стандартов нет, поэтому приходится все-таки использовать свои.

Добавлено @ 13:57
Кстати, иногда встречал такое написание кода:

Код
if ( $var == $value ) {
    echo 'Test';
}


Кто как смотрит на доп. пробелы по бокам внутри скобок? smile Одновременно смотрится понятнее, но и уродливее smile

Это сообщение отредактировал(а) CyClon - 24.2.2008, 13:58


--------------------
user posted image
PM   Вверх
bars80080
Дата 26.2.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата

Кто как смотрит на доп. пробелы по бокам внутри скобок


совершенно не согласен, у меня внимание разбегается, а код зрительно распадается
для меня оптимально иметь пробелы вокруг таких элементов как: = == === + - /
но никак не скобок

ещё и фигурные скобки
Код

function select_from_db($q) {
    $r = mysql_query($q);
    $n = 0;
    if(!empty($r)) $n = mysql_num_rows($r);
    for($i = 0; $i < $n; $i++) {
        $s[$i] = mysql_fetch_array($r, MYSQL_ASSOC); }
    if(!empty($s)) return $s;
    else return ''; }

так по-моему оптимально
PM MAIL WWW   Вверх
Aikus
Дата 26.2.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 29.11.2007

Репутация: нет
Всего: 1



Уф дочитал. Много интересного узнал. Всё замечательно, т.е. есть замечания:
 вы напрасно развили тему как писать 
Код

//так
if ($a == $b) {
//действия
}
else {
//действия
}

//или так
if ($a == $b) {
//действия
} else {
//действия
}

Это как раз то, что можно оставить на откуп программеру или кодеру (в завивимости от квалификации).
Гораздо важнее чтобы эту конструкцию не сокращали, т.к. тогда теряется прозрачность кода.
Естественно важно как именовать функции, но гораздо важнее создать структуру кода, и не с помощью большого дерева подкрепляемых файлов (include "file.php"),  а с помощью создания модулей (в моём понимании функции, классы). А если писать монолитный код, то хоть как ты именуй функции и пиши if then else, с ростом кода потеряется его смысл. Да и если писать такие вот модули, то инклудить можно будет в одном месте (в начале).
Также, очень важно проектирование, частично затронуто абзацем выше, т.е. формирование заголовков, внутренних ссылок и т.д в проекте.
P.S. со времен java  я делаю мануалы во время написания кода, используя самописную утилиту по образу и подобию javah
PM MAIL   Вверх
MeIsGremlin
  Дата 11.6.2008, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Одинарные кавычки работают быстрее чем двойные так как не включается интерпретатор замены. Поэтому 
Код

echo 'my var '.$var.' another text';

Будет работать быстрее чем тоже самое в двойных кавычках.
Рекомендую в фунциях, условиях и различных операторах использовать использовать именно одинарные кавычки.
например
Код

if ( strcmp($var,'text') == 0 )


Максимально отделить программирование от гипертекста. Чтоб функции расчета, баз данных, создания, обработки возвращали лишь код. А вывод гипертекста или определения переменных шаблона было только в однои месте. Так легче отладку делать, читать код и заменять в случае чего вывод. Не надо лазить по инклюдам и другим файлам. 

Текст ошибок и сообщений, и вообще весь текст более менне статического назначения естественно лучше хранить отдельно в файле. Куда потом может зайти любой человек дорабатывающий проект и изменить "проффессор" на "профессор" без поиска по проекту или лазания по коду.

Лучше разрабатывать код с включенными warnings, notices  и тд. Так видней недоработки. И код будет правильней.
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
Feldmarschall
Дата 11.6.2008, 20:06 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: -2
Всего: 32



Хехе, одинарные кавычки - это уже мем.
Ну, и диагноз, разумеется =)

В остальном все правильно. Впрочем, если вчитаться - то тоже видно, что понимания нет, а есть зазубренные правила.
Какой такой код функции должны возвращать? Какая разница - по инклюдам "лазить" или по шаблонам?

Про хранение всех сообщений в отдельном файле мысль правильная, но требует определенного понимания и полного пересмотра архитектуры, разумеется.


Это сообщение отредактировал(а) Feldmarschall - 11.6.2008, 20:14
PM   Вверх
boogi
Дата 12.6.2008, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 12.2.2008

Репутация: -2
Всего: -4



И всё-таки отделение кода от гипертекста это "правило" тесно связано с поставленной задачей. 

От себя добавлю (если этого не было) как можно меньше регулярных выражений.
sizeof() быстрее и красивее count()
как можно проще индексы массивов (числовые лучше всего)

PM MAIL   Вверх
Feldmarschall
Дата 12.6.2008, 00:18 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: -2
Всего: 32



хехе, ещё один =)
sizeof(), даже если бы она не была одной и той же функцией, что и  count(), все равно не была бы быстрее или медленнее. 
То же самое и с массивами. да делайте те индексы ,которые удобнее. Если раз в сто лет этот индекс станет узким местом - переделаете. 
когда ж вы поймете, что ахиллес все-таки перегонит черепаху?

PM   Вверх
boogi
Дата 12.6.2008, 00:24 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 12.2.2008

Репутация: -2
Всего: -4



Цитата(Feldmarschall @ 12.6.2008,  00:18)
хехе, ещё один =)
sizeof(), даже если бы она не была одной и той же функцией, что и  count(), все равно не была бы быстрее или медленнее. 
То же самое и с массивами. да делайте те индексы ,которые удобнее. Если раз в сто лет этот индекс станет узким местом - переделаете. 
когда ж вы поймете, что ахиллес все-таки перегонит черепаху?

хоть какая-то нелогическая отпимизация никогда не мешала.
представь 10к^2 обращение к массиву 

Код

$a['i_love_this_too_long_indexes_cause_i_like_to_type_mua_ha_ha'] = 'lol';
$a['oh_m_g_this_is_another_f_u_c_k_i_n_g_index'] = 'zzz';


тем более что займет это всё ровным счетом минимум времени...( я про оптимизацию xD )

Добавлено через 10 минут и 15 секунд
Если можно отнести к правилу хорошего кода, для серьёзного проекта, то это несомненно:
Кэширование повторно используемых данных внутри классов, запросов

Это сообщение отредактировал(а) boogi - 12.6.2008, 00:31
PM MAIL   Вверх
Feldmarschall
Дата 12.6.2008, 00:37 (ссылка) |    (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: -2
Всего: 32



Если эта страна и погибнет, то только из-за таких "мыслителей". 
И ведь на полном серьезе обсуждается, каким концом разбивать яйцо. Со времен Свифта ни-че-го не изменилось. Понять действительно важные вещи в состоянии единицы. А остальные будут заниматься оптимизацией длины имен переменных
PM   Вверх
boogi
Дата 12.6.2008, 00:40 (ссылка)    | (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 12.2.2008

Репутация: -2
Всего: -4



Цитата(Feldmarschall @ 12.6.2008,  00:37)
Если эта страна и погибнет, то только из-за таких "мыслителей". 
И ведь на полном серьезе обсуждается, каким концом разбивать яйцо. Со времен Свифта ни-че-го не изменилось. Понять действительно важные вещи в состоянии единицы. А остальные будут заниматься оптимизацией длины имен переменных

При чем тут это, философ? Посмотри на название топика. И лучше не пытайся прыгнуть выше головы.

PS: Я буду только рад если та страна про которую ты говоришь погибнет.
PM MAIL   Вверх
Sannis
Дата 12.6.2008, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: нет
Всего: 13



Цитата(Feldmarschall @  11.6.2008,  20:06 Найти цитируемый пост)
Какой такой код функции должны возвращать?

Видимо имелось в виду, что функции модели должны возвращать только данные или код результата(не в смысле php код), т.е. не должны возвращать "Выполненно успешно", а лучше "success" или какое-то заранее определённое значение.

Сам же я хотел такой вопрос задать, из области не очень повседневной:
Принято (обычно/часто вижу такое) приватные методы называть с подчёркиванием в начале и маленькими буквами, тогда как публичные - с использованием больших(в верблюжьей или иной нотации - не важно). В часности, в php4 это часто применялось, чтобы можно было сразу видеть, какие методы предназначены для вызова извне, а какие выполняют утилитарные функции и вызываются другими методами класса. Столкнулся с тем, что как бы не хотелось, но в некотором классе набралось довольно болшое количество публичных методов, причём часть из них, тем не менее, также вызывается в других из низ. При этом эти методы я не могу сделать приватными в силу того, что они иногда мной применяются-таки в остальной части скрипта, хотя и довольно редко. Использует ли кто-то специальные способы разделения методов класса "по частоте использования" путем именования специальным образом?


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
Fortop
Дата 12.6.2008, 02:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 1
Всего: 42



Цитата(boogi @  12.6.2008,  00:24 Найти цитируемый пост)
представь 10к^2 обращение к массиву 

Не могу представить. Зачем нам 100млн обращений к массиву? smile

Цитата(Sannis @  12.6.2008,  00:52 Найти цитируемый пост)
"по частоте использования"

По типу операций и возвращаемым результатам - да. По частоте нет.

например

getSomethingList - возвращает массив
getSomethings - возвращает массив объектов Something
updateSomething - обновляет Something

Добавлено через 4 минуты и 41 секунду
Sannis
Цитата(Sannis @  12.6.2008,  00:52 Найти цитируемый пост)
довольно болшое количество публичных методов

Имеется класс для работы с базой, примерно 250 методов работать во всяких блокнотах - сложновато. В Zend Studio - нормально.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Sannis
Дата 12.6.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: нет
Всего: 13



Преимущества IDE я уже оценил) Что-ж, спасибо, пока не буду размышлять, не очень-то они и мешают.


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
Цербер
Дата 16.6.2008, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



Почитал всю тему, очень интересно читать такие дисскусии и обсуждения, а особенно для новичков.
Сам на php пишу относительно не так давно, но стараюсь читать как можно больше инфы касающейся php.
Когда начинал прочитал одну очень интересную книжку PHP5 на примерах (М.Кузнецов, И.Симдянов,С.Голышев) откуда впринципе и узнал про стили программирования(о чём даже представления не имел, до того момента)
там описано 4 стиля (расставления фигурных скобок)
Код

1.Рациональный стиль -  if($flag){ echo "Hello, World!"; }
2.Стиль Алмена или стиль BSD - 
  if($flag)
  {
    echo "Hello, World!";
  }
3.Стиль Whitesmith

if($flag)
  {
  echo "Hello, World!";
  }
4.Стиль GNU.
$flag = true;
if ($flag)
{
  echo "Переменная равна true";
  exit();
}

И для себя наиболее удобным и читабельным посчитал Стиль GNU.
Это я к тому что стилей много, думаю эти 4 только малая часть всех существующих, хотя могу и ошибаться, стилей много и каждый кодер выбирает тот который удобен ему.
Так же придерживаюсь тона при названии переменных, функций, разделения пробелами +/=/- и т.д., т.к. сам нарывался на скрипты где в названии переменных использовали что то вроде $l_gh а функции назывались $drw_n при этом комментарии в коде отсутствовали вообще.
Так же хотелось бы задать опытным кодерам вопрос, может и покажется он глупым, но всё же, предподчительно в какой кодировке писать скрипты? я юзаю utf-8.
P.S.
ИМХО - Хорошего тона, должны придерживаться все кто кодит, тем самым проявляя уважение к другим кодерам.  


Это сообщение отредактировал(а) Цербер - 16.6.2008, 10:31
PM MAIL ICQ   Вверх
nerezus
Дата 22.6.2008, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

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

P.S. Кстати непонятно, нахрена замену делали, неужели было влом лишние 2 условия в StateMachine вписать? Хрен этих разработчиков поймешь )

Цитата

ам описано 4 стиля (расставления фигурных скобок)
 Предпочитаю Java-style.

Код

if (condition) {
    someCode();
}


Цитата

Так же хотелось бы задать опытным кодерам вопрос, может и покажется он глупым, но всё же, предподчительно в какой кодировке писать скрипты? я юзаю utf-8.
 В однобайтовой. i18n не планируется у меня. Для i18n же utf-8 бы юзал.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
MuToGeN
Дата 22.6.2008, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 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!
PM MAIL ICQ   Вверх
gta4kv
Дата 22.6.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Цитата

2. По правилам кодинга (не программирования) существуют strict-стандарты для java, я стараюсь держаться именно за них. 

пример в студию smile

Мой стиль вот:
Код

<?php
/**
+--------------------------------------------------------------------------
|   TestScript
|   ========================================
|   by gta4kv
|   (c) 2008 BojanScripts
|   ========================================
|   Email: [email protected]
+---------------------------------------------------------------------------
|   TestScript in not free software
+---------------------------------------------------------------------------
|   > $Date: 22-06-2008 20:24 +0400 (22 June 2008) $
|   > $Revision: 1 $
|   > $Author: gta4kv $
+---------------------------------------------------------------------------
|
|   > Date started: 22 June 2008
|   > File: class.test.php
|
+--------------------------------------------------------------------------
*/


/**
*
*  test1 class
*  general system class
*
*/
class test1 
{
        public $test;
        public $soLongTest;
        
        /**
        * doAny ()
        * this function do anything
        * @var string $var1
        * @var string $var2
        */
        public function doAny( $var, $var2 ) 
        {
                $this->test       = $var1;
                $this->soLongTest = $var2;
                return sprintf( "The hell %f added by %f", $this->test
                                                           $this->soLongTest
                                        );
                      
        }
}

$myclass = new test1(  );
print $myclass->doAny( 'post', 'gta4kv' );
?>

Пришел к нему,  как к самому удобному,  достаточно удобно его читать smile

Это сообщение отредактировал(а) gta4kv - 22.6.2008, 19:27
PM MAIL   Вверх
MuToGeN
Дата 23.6.2008, 07:29 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 4
Всего: 32



Цитата(gta4kv @  22.6.2008,  19:18 Найти цитируемый пост)
пример в студию

Ну, к примеру, отделять ключевые слова от остального пробелами и пользовать { } для любых блоков, даже если они состоят из одной строки, т.е.
Код

while (clauses) {
    if (other_clauses) {
        // тут какой-то еще код
    }
}

вместо

while(...) if (...)
        ......

Если функция/метод требует большое кол-во параметров, то не писать все в одну строку, т.е. что-то вроде
Код

some_function(
    $param0,
    $param1,
    ......,
    $paramN
);

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


--------------------
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!
PM MAIL ICQ   Вверх
MuToGeN
Дата 23.6.2008, 07:54 (ссылка) |   (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 4
Всего: 32



Цитата(MuToGeN @  23.6.2008,  07:29 Найти цитируемый пост)
Подобные вещи как раз делают все более читабельным для других.

Те, кто копался в исходниках 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!
PM MAIL ICQ   Вверх
MuToGeN
Дата 26.6.2008, 09:31 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 4
Всего: 32



Проглядел по-внимательнее тему...
Цитата(boogi @  12.6.2008,  00:24 Найти цитируемый пост)
$a['i_love_this_too_long_indexes_cause_i_like_to_type_mua_ha_ha'] = 'lol';
$a['oh_m_g_this_is_another_f_u_c_k_i_n_g_index'] = 'zzz';

Тут есть и другая крайность (греха таить не буду, несколько лет назад сам страдал подобным) - к примеру, алиасы для имен стандартных функций, создаваемые ради того, чтоб меньше топтать клаву пальцами. 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!
PM MAIL ICQ   Вверх
Resha
Дата 23.10.2008, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



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

Это сообщение отредактировал(а) Resha - 23.10.2008, 11:49
PM MAIL   Вверх
Resha
Дата 23.10.2008, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



Цитата(boogi @ 12.6.2008,  00:11)
От себя добавлю (если этого не было) как можно меньше регулярных выражений.
sizeof() быстрее и красивее count()
как можно проще индексы массивов (числовые лучше всего)

sizeof() не может быть ни быстрее, ни красивее count(). Хотя бы потому, что sizeof - алиас count'а, а не наоборот. Про скорость вообще ничего говорить не буду - это не разные функции, это разные имена одной и той же функции.

Про цифровые индексы тоже очень порадовало. Тогда давайте и в классах свойства называть p1, p2, p3 и т.п. Вообще, ассоциативный массив с цифровыми индексами - это революционное решение smile
PM MAIL   Вверх
zeusakm
Дата 26.10.2008, 00:14 (ссылка)    | (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 30.6.2008

Репутация: нет
Всего: нет



Итак мальчики перестаньте мериться чл***ми продолжим.
Правило №10.
В случаях когда массивы незначительные меняем:
Код

$arr = array("NY" => "New York", "LA" => "Los Angeles");
 
на:
Код

$arr["NY"] = "New York";
$arr["LA"] = "Los Angeles";
 

А да и еще №8 можно сделать Abstract_Connection_DBS - соответственно MySQL, PostgreSQL и если надо Oracle =)

Добавлено через 2 минуты и 4 секунды
Ой блин sorry смотрел первую или смотрите первую =))
PM MAIL   Вверх
awers
Дата 26.10.2008, 02:54 (ссылка)  | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



В больших блоках очень удобно использовать не {} а к примеру
Код


switch ():
endswitch;

foreach ()
endforeach;

while ()
endwhile;

if ()
endif;

for ()
endfor;


Добавлено через 2 минуты и 46 секунд
эх. забыл. мы это уже в прошлом году обсуждали
PM MAIL WWW ICQ Skype   Вверх
awers
Дата 26.10.2008, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



1) Хотелось бы послушать обоснование минусам
2) А вы разберитесь с кодом где
Код

foreach(..){
if(..){
if(..){
while(..){
{
{
}
}
}
}
}
}

и т.д.
PM MAIL WWW ICQ Skype   Вверх
QryStaL
Дата 30.10.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: нет
Всего: 32



Код

foreach (...)
{
    if (...)
    {
        if (...)
        {
            while (...)
            {
            }
        }
    }
}


И никаких end... не нужно.
А если не делать отступов на вложенных блоках, то вообще кошмар получится =)

Это сообщение отредактировал(а) QryStaL - 30.10.2008, 13:34


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
awers
Дата 30.10.2008, 14:08 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



отступы я просто не стал тут ставить, но сам факт, когда в таких блоках по 150 - 200 строк в которых тоже разное попадается - не очень удобно видеть {}
PM MAIL WWW ICQ Skype   Вверх
QryStaL
Дата 30.10.2008, 15:17 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: нет
Всего: 32



Цитата(awers @  30.10.2008,  14:08 Найти цитируемый пост)
в таких блоках по 150 - 200 строк

надо разбивать на мелкие функции / методы


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
mxt
Дата 16.11.2008, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 6.9.2007

Репутация: нет
Всего: 1



Цитата(zeusakm @ 26.10.2008,  00:14)
Правило №10.
В случаях когда массивы незначительные меняем:
Код

$arr = array("NY" => "New York", "LA" => "Los Angeles");
 
на:
Код

$arr["NY"] = "New York";
$arr["LA"] = "Los Angeles";
 

Нет, так не известно точно что происходит:  обьявление нового массива или приваение значение  массиву.
Вот так понятнее
Код

$arr = array("NY" => "New York",
                     "LA" => "Los Angeles");




Это сообщение отредактировал(а) mxt - 16.11.2008, 00:07
--------------------
PM MAIL   Вверх
youri
Дата 1.12.2008, 04:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Цитата(Mal Hack @  2.4.2005,  15:43 Найти цитируемый пост)
5. Минимум переменных необходимых для решения задачи.

я бы выбрал читабельность

Цитата(Mal Hack @  2.4.2005,  15:43 Найти цитируемый пост)
7. Вывод гипертекста - один раз.

один раз - все подготовить, и за один print вывести? не знаю, не понятно зачем такое правило

Цитата(IZ@TOP @  3.4.2005,  10:58 Найти цитируемый пост)

// Замена переменных в шаблоне
$text = ereg_replace("<!--a-->", $a, $text);
$text = ereg_replace("<!--b-->", $b, $text);
$text = ereg_replace("<!--c-->", $c, $text);
$text = ereg_replace("<!--d-->", $d, $text);
// Это по меньшей мере ужасно, но встречается очень часто.
// Оптимизируем и получаем одну строку:
$text = str_replace(array('<!--a-->', '<!--b-->', '<!--c-->', '<!--d-->'), array($a, $b, $c, $d), $text);

ну я бы выбрал первый вариант, так как он читабельнее, правда регулярные выражения там не нужны или, возможно, это можно было бы одним регэкспом заменить

Цитата(IZ@TOP @  10.10.2005,  13:49 Найти цитируемый пост)
Мне нравятся упрощенные конструкции условий использовать
Код

$a = (is_numeric($b)) ? $b : 0;


главное не отказаться от ifов ;-)

Цитата(AntonioBanderaz @  13.10.2005,  23:06 Найти цитируемый пост)
+ ко всему... Не знаю относится это к правилам хорошего кода, но что правила - точно.не объединять при выводе длинные строки, время выполнения увеличивается Т.е.
Код

echo $str1.'fghgfh'.$str2;
//аналогично
print("$str1 sdgfsdgdsg $str2");
//заменяем на
echo $str1;
echo 'fghgfh';
echo $str2;
print("$str1 sdgfsdgdsg ");
print($str2);


я бы хотел увидеть пример, когда бы конкатенация стала заметна на общем фоне

Цитата(AntonioBanderaz @  13.10.2005,  23:06 Найти цитируемый пост)
забыть про exec и system!

я думаю им можно найти применение, но если то же можно выполнить средствами пхп, то ими и стоит воспользоваться

Цитата(wsr @  19.1.2006,  22:19 Найти цитируемый пост)

Цитата(CyClon @  19.1.2006,  21:33 Найти цитируемый пост)

Где-то читал, что
Код
echo "My name is $name!";

Намного быстрее чем
Код
echo "My name is".$name."!";

И быстрее чем
Код
echo "My name is {$name}!";


Быстрее но не значит лучше!В дальнейшем, при парсинге кода гораздо легче в большом блоке данных найти echo "My name is".$name."!"; чем echo "My name is $name!";

smile 

Цитата(-=Ustas=- @  2.3.2006,  10:40 Найти цитируемый пост)
Цитата(Ciber SLasH @  1.3.2006,  23:23 )Не совсем согласен. У каждого прогера свой стиль программирования. Стандарты в любом случае должны быть! Т.к. вольное программирование - как кому нравится, становится трудным в сопровождении кода другими программистами! Личный пример: полгода назад принял некоторый проект на поддержку, так я того прогораммиста готов завалить при первой же встрече!!!!!!!!

ну я думаю, дело было не в стиле, а как минимум в его отсутствии

Цитата(dsCode @  25.9.2007,  16:32 Найти цитируемый пост)

P.S.: кстати, насчет сокращений: если условие одиночно, то можно (и даже более профессионально) писать так:
Код

$a === 3 && ($obj->doSomething());
// если с if-ом писать - то скобки - обязательны!
if ($a === 3) {
$obj->doSomething();
}
// но первый вариант предпочтительней, хотя второй - наглядней


здесь профеcсионализм, похоже, заключается в краткости в ущерб читабельности, я за читабельность)

Цитата(boogi @  12.6.2008,  00:24 Найти цитируемый пост)

Если можно отнести к правилу хорошего кода, для серьёзного проекта, то это несомненно:
Кэширование повторно используемых данных внутри классов, запросов

Цитата

Rob Pike offers the following "rules" in Notes on Programming in C as programming maxims,[1] though they can be easily viewed as points of a Unix philosophy:[citation needed]
Rule 1: You cannot tell where a program is going to spend its time. Bottlenecks occur in surprising places, so do not try to second guess and put in a speed hack until you've proven that's where the bottleneck is.
Rule 2: Measure. Do not tune for speed until you have measured, and even then don't unless one part of the code overwhelms the rest.
Rule 3: Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.)
Rule 4: Fancy algorithms are buggier than simple ones, and they are much harder to implement. Use simple algorithms as well as simple data structures.
Rule 5: Data dominates. If you have chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
Rule 6: There is no Rule 6.


ну от себя добавлю, что не ставлю { в отдельной строке, потому что это почти пустая строка, а пустыми строками я разделяю код на блоки, двумя пустыми строками - методы
а вообще, так как человек может запомнить 7+/-2 элемента, я пришел к выводу, что оптимальное количество элементов в строке - 7, строк в блоке - 7, блоков в методе - 7, функций в классе - 7, строк в файле - 200, оптимальный размер файла - 3 КБ  smile шучу, конечно, но в каждой шутке - доля шутки (график)

ну и не могу не согласится
Цитата(sTa1kEr @  11.1.2008,  13:52 Найти цитируемый пост)
По теме же, можно спорить бесконечно. Однако важно одно, что бы вы всегда придерживались *одного* стиля.


Это сообщение отредактировал(а) youri - 1.12.2008, 04:36
PM   Вверх
MoLeX
Дата 6.5.2009, 06:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 0
Всего: 140




 ! 
MoLeX
Модератор: тему подчистил



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
nichnikov
  Дата 14.5.2009, 10:19 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.5.2009

Репутация: -1
Всего: -1



Не писать двойные кавычки где можно обойтись одними  
PM MAIL WWW ICQ   Вверх
IZ@TOP
Дата 28.5.2009, 12:53 (ссылка) |   (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата(nichnikov @  14.5.2009,  11:19 Найти цитируемый пост)
Не писать двойные кавычки где можно обойтись одними   

Экономия воздуха?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
bars80080
Дата 28.5.2009, 13:52 (ссылка)  | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(IZ@TOP @  28.5.2009,  12:53 Найти цитируемый пост)
Экономия воздуха? 

правила хорошего кода
PM MAIL WWW   Вверх
MoLeX
Дата 28.5.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 0
Всего: 140



Цитата(bars80080 @  28.5.2009,  13:52 Найти цитируемый пост)
правила хорошего кода 

 smile 

сам начинаю так себя приучать)


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Elfet
Дата 28.5.2009, 15:18 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



объясните про кавычки? какая разница? где и как использовать? 


--------------------
PM MAIL WWW Skype   Вверх
Kirsan
Дата 28.5.2009, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 4.11.2008
Где: г.Волжский, Волго градская обл.

Репутация: нет
Всего: 1



Цитата(Elfet @ 28.5.2009,  16:18)
объясните про кавычки? какая разница? где и как использовать?

Если строка в себе не содержит переменных, то предпочтительнее использовать одинарные кавычки.
Если содержит, то кому как удобнее - конкатенация или же строка в двойных кавычках с переменными внутри.
PM ICQ   Вверх
bars80080
Дата 28.5.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(Kirsan @  28.5.2009,  16:08 Найти цитируемый пост)
Если содержит, то кому как удобнее - конкатенация или же строка в двойных кавычках с переменными внутри. 

правила хорошего кода - как раз одинарных
в двойных переменные видны гораздо хуже (не всякий редактор берёт), а главное это порождает дополнительный пас для ошибок
PM MAIL WWW   Вверх
Kirsan
Дата 28.5.2009, 18:18 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 4.11.2008
Где: г.Волжский, Волго градская обл.

Репутация: нет
Всего: 1



Цитата(bars80080 @ 28.5.2009,  18:49)

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

Да, я сам предпочитаю склеивать строки. Ещё видел вариант в задании оператору echo нескольких параметров. Такой изврат, ИМХО smile
Код

echo 'value = ', $var;


Это сообщение отредактировал(а) Kirsan - 28.5.2009, 18:19
PM ICQ   Вверх
Elfet
Дата 28.5.2009, 19:18 (ссылка)  | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Kirsan, почемУ? Потому что-то кто то так уже привык писать? 


--------------------
PM MAIL WWW Skype   Вверх
bars80080
Дата 28.5.2009, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(Elfet @  28.5.2009,  19:18 Найти цитируемый пост)
Kirsan, почемУ? Потому что-то кто то так уже привык писать?  

"правила хорошего кода" - это не документированный свод инструкций, а просто элементарное уважение к остальным программистам, которое выражается в написание понятного и легко усваиваемого кода

Это сообщение отредактировал(а) bars80080 - 28.5.2009, 19:21
PM MAIL WWW   Вверх
Elfet
Дата 28.5.2009, 19:32 (ссылка)  | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Я просто думал что есть какая-то техническая обоснованность такого правила. Выходит что это просто нотация? 


--------------------
PM MAIL WWW Skype   Вверх
bars80080
Дата 28.5.2009, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(Elfet @  28.5.2009,  19:32 Найти цитируемый пост)
есть какая-то техническая обоснованность такого правила

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

но это в принципе не важно. ведь развёрнутый код, выполненный в правилах хорошего тона грамотно, т.е. с отступами, не захламлёнными строками, большими комментариями весит больше и так же увеличивает время обработки (хотя и незначительно) по сравнению с сжатым кодом ,набранным чцть ли не в одной строке с короткими невнятными названиями переменных и функций. 
но с каким кодом будет легче работать? и это уже не семечки
PM MAIL WWW   Вверх
MoLeX
Дата 29.5.2009, 05:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 0
Всего: 140



Цитата(Kirsan @  28.5.2009,  18:18 Найти цитируемый пост)
echo 'value = ', $var;

предпочитаю тчк 
Код

echo 'value = ' . $var;



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
youri
Дата 30.5.2009, 03:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



по сути, согласен с Feldmarschall - http://forum.vingrad.ru/forum/topic-47445/...546336/105.html
(только не про страну и не про единицы)
PM   Вверх
bars80080
Дата 30.5.2009, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



youri, имхо, взгляд на эту проблему очень сильно зависит от того сколько вам приходится ворочать тонн чужого кода.

когда сталкиваешься с таким:

Код

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="javascript">
function ChangeMenu(){
var select_name = document.pages.id_subsecF.value;
<?php
$sql = "select subsection.id from subsection left join types on types.id = subsection.id_type order by subsection.oder";
$db->query($sql);
$i = 0;
while($db->next_record()){
    $id_sub_ = $db->r('id');
    $sql = "select oder from pages where id_subsec='" . $id_sub_ . "' order by oder desc";
    $db1->query($sql);
    if($db1->next_record()){
        $order_page = $db1->r('oder') + 1;
        if($i == 0){
            $order_sub0 = $db1->r('oder') + 1;
            $i = 1;
        }
    }
    else{
        $order_page = 0;
        if($i == 0){
            $order_sub0 = 0;
            $i = 1;
        }
    }
    echo 'if(select_name == ' . $id_sub_ . '){' . "\n";
    echo 'var order=' . $order_page . ';' . "\n";
    echo 'document.pages.oderF.value = order;' . "\n";
    echo '}' . "\n";
}
            
?>
}
</script>
<?php
$url="main.php?type=$type";
if(isset($next)) $url.="&next=$next";
//-----------------------------------
//---------- Добавление разделов---------
$t_act="ins";
if(isset($act)&&$act=="edit"){
    $t_act="upd";
}
echo "<table border=0 cellpadding=3 cellspacing=0>".
"<form method=post name=pages action=$url&act=$t_act>\n";
//echo formDropDown("Подраздел","id_subsecF","0","select subsection.id, types.name as name from subsection left join types on types.id = subsection.id_type",0,"","","","id","name");
echo "<tr><td>Подраздел:</td><td><SELECT NAME=\"id_subsecF\" onChange=\"ChangeMenu()\">\n";
$sql = 'select section.id, types.name as name from section left join types on types.id = section.id_type order by section.oder';
$db->query($sql);
while($db->next_record()) {
    $sql = 'select subsection.id, types.name as name from subsection left join types on types.id = subsection.id_type where subsection.id_section='.$db->r('id').'';
    $db1->query($sql);
    while($db1->next_record()) {
        echo "<option value=\"".$db1->r('id')."\"";
        if (isset($id_subsecF) && $id_subsecF == $db1->r('id')) echo " selected";
        echo ">".$db->re("name") . "->" . $db1->re("name")."</option>\n";
    }
}
echo "</SELECT></td></tr>\n";
    
echo formText("text", "Название", "nameF", "", "size=40");
echo formText("text", "Файл", "file_nameF", "untitled.php", "size=40");
echo formText("text", "Порядок", "oderF", isset($order_sub0)?$order_sub0:'', "size=10");
if(isset($act) && $act == "edit")
    echo formText("hidden", "", "idF", isset($idF)?$idF:"", "");
echo formText("send", "", "", "", "");
echo "</form></table><br>\n";
//---------- Конец Добавления разделов ---

//---------- Просмотр разделов на сайте ----------
if(isset($message))
    echo "<font color=red>$message</font><br><br>";
$sql = "select pages.*, types.name as name, types.file_name as file_name from pages left join types on types.id = pages.id_type order by pages.id_subsec, pages.oder";
$sql_ = Navigate(50,isset($next)?$next:0,$url,$sql);
if(strlen($nav)>0) echo "$nav<br><br>\n";
$db->query($sql_);
echo "<table border=0 cellpadding=3 cellspacing=1 width=100% >\n";
echo "<tr><td class=\"zag\">Действие</td><td class=\"zag\">Раздел->Подраздел</td><td class=\"zag\">Название</td><td class=\"zag\">Имя файла</td></tr>";
$i = 2;
while($db->next_record()){
    if($i == 1){
        $i = 2;
    }
    else{
        $i = 1;
    }

    echo "<tr><td class=\"body".$i."\">";
    $idF = $db->r("id");
    echo $db->r("oder");
    if($Site_user_rights>2)
        echo " - <a href=\"$url&act=edit&idF=$idF\">Изменить</a>\n";
    if($Site_user_rights>3)
        echo " - <a href=\"$url&act=del&idF=$idF\">Удалить</a>\n";
    echo "</td><td class=\"body".$i."\">";
    $id_section = $db1->getfield("select id_section from subsection where id=".$db->r("id_subsec")."","id_section");
    echo $db1->getfield("select types.name as name from section left join types on types.id = section.id_type where section.id=".$id_section."","name") . "->";
    echo $db1->getfield("select types.name as name from subsection left join types on types.id = subsection.id_type where subsection.id=".$db->r("id_subsec")."","name");
    echo "</td><td class=\"body".$i."\">";
    echo $db->re("name");
    echo "</td><td class=\"body".$i."\">";
    echo $db->re("file_name");
    echo "</td></tr>\n";
}
echo "</table>\n";
if(strlen($nav)>0) echo "<br>$nav\n";
?>
<br>
(а это всего лишь одна из десяти подключаемых частей при строительстве страницы), волей-неволей станешь поборником чистого и аккуратного кода
PM MAIL WWW   Вверх
Elfet
Дата 30.5.2009, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



bars80080, такой бы обфуксатор иметь smile))


--------------------
PM MAIL WWW Skype   Вверх
nerezus
Дата 30.5.2009, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

Не писать двойные кавычки где можно обойтись одними  
 Ты ошибся темой, это правила хорошего кода, а не примеры плохого.

На спичка не сэкономишь, а конкатенация длинной строки твоим способом будет нечитаема.

Цитата

правила хорошего кода - как раз одинарных
 Да ну?
Zend Framework Documentation, пункт B.4.2.3.
Для подстановки переменных используются двойные.

Цитата

в двойных переменные видны гораздо хуже (не всякий редактор берёт)
 Пользуйся "невсяким". Или вообще IDE.
А так конечно можно сказать, что PHP какашка, так как его блокнот не подсвечивает.



--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
youri
Дата 31.5.2009, 04:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Цитата(bars80080 @  30.5.2009,  11:38 Найти цитируемый пост)
взгляд на эту проблему очень сильно зависит от того сколько вам приходится ворочать тонн чужого кода

я не имел в виду, что нужно писать как прийдется: стиль кодирования - это положительно, только лучшего нету

а в этой теме много субъективных моментов и ненужных оптимизаций, имхо

p.s. кроме того, тема то ли нечетко задана, то ли очень обширная. Правила хорошего кода касаются только оформления?
PM   Вверх
bars80080
Дата 31.5.2009, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(nerezus @  30.5.2009,  14:05 Найти цитируемый пост)
На спичка не сэкономишь, а конкатенация длинной строки твоим способом будет нечитаема.

а я говорю наоборот

Цитата(nerezus @  30.5.2009,  14:05 Найти цитируемый пост)
Да ну?
Zend Framework Documentation, пункт B.4.2.3.
Для подстановки переменных используются двойные.

ну и кто они после этого?


Цитата(youri @  31.5.2009,  04:06 Найти цитируемый пост)
Правила хорошего кода касаются только оформления? 

главный критерий, то что твой код будет быстро и эффективно воспринят другим человеком
PM MAIL WWW   Вверх
youri
Дата 31.5.2009, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Цитата(bars80080 @  31.5.2009,  09:21 Найти цитируемый пост)
а я говорю наоборот

и кто прав? (а спорим не подеретесь  smile )
PM   Вверх
nerezus
Дата 31.5.2009, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

ну и кто они после этого?
 Здравомыслящие люди, а что?

Я как-то больше доверяю себе и создателям PHP, чем Васе Пупкину в твоем лице. Ничего личного, только профессиональное.

Понимаешь, ускорение кода на 0%(не забываем про кэширование байткода) с проигрышем читаемости - это плохо.
А если твоя IDE - блокнот, а не IDE - то это ТВОИ проблемы.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
youri
Дата 31.5.2009, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Цитата(nerezus @  31.5.2009,  11:42 Найти цитируемый пост)
Понимаешь, ускорение кода на 0%(не забываем про кэширование байткода) с проигрышем читаемости - это плохо.

а откуда информация про читаемость (что читабельнее)?
PM   Вверх
bars80080
Дата 31.5.2009, 13:34 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(nerezus @  31.5.2009,  11:42 Найти цитируемый пост)
Я как-то больше доверяю себе и создателям PHP, чем Васе Пупкину в твоем лице.

а я как-то больше доверяю личным наблюдениям, а не чужому мнению.
когда очередной раз здесь скидывают класс по БД с малопонятными конструкциями типа $db->fetch_row(), я спрашиваю себя, нафига вообще было писать такой код, который ни капельки не облегчает процесс написания? но все пользуются, я им не возражаю. но это не значит, что я должен брать тот же класс и юзать его
когда начинал, то у меня все скрипты писались на базе Котерова (его подключатель библиотек, его мейловый класс, класс работы с БД и прочее). постепенно я отказался от всего, даже от его dump, потому что находил (либо писал) более удачные, компактные и эффективные вещи.
может где-то проигрывали в универсальности, но зато без того абсурда, чем они изобиловали, увеличивая и время работы в разы, и нагружая БД, и не отдавая нужной эффективности

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


Цитата(nerezus @  31.5.2009,  11:42 Найти цитируемый пост)
Понимаешь, ускорение кода на 0%(не забываем про кэширование байткода) с проигрышем читаемости - это плохо.

да, именно так. и использование двойных кавычек - проигрыш в читаемости кода
PM MAIL WWW   Вверх
nerezus
Дата 31.5.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

но все пользуются
 Скажем, только новички. Либо уже давно написано и отлажено, а пользуются по привычке.
Потому что уже есть куча стандартных ОО-вариантов.

Цитата

смысла в них вообще не вижу, если создание сайта у меня занимает всего 5 минут, путём копирования предыдущей версии. а далее дизайн, контент и размещение блоков. т.е. ничего общего с программированием на пхп.
 Никогда не приходилось писать 400кб кода на новый проект дописывать(естественно кроме них еще куча своих и чужихнаработок)?
Расскажи, как с сотнями файлов в блокноте работать ) Очень интересно ;)

Цитата

и использование двойных кавычек - проигрыш в читаемости кода
 Для тебя. Для всех остальных - иначе. Ссылка выше - подтверждение этого мнения.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
youri
Дата 31.5.2009, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



и что мы видим? Правила оформления кода субъективны (большей частью) - кто к чему привык, вы сами это отлично продемонстрировали  smile

Цитата
Для тебя. Для всех остальных - иначе. Ссылка выше - подтверждение этого мнения 

там так и написано, что "двойные кавычки для большинства читабельнее"?

Это сообщение отредактировал(а) youri - 31.5.2009, 13:53
PM   Вверх
source777
Дата 31.5.2009, 14:04 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(bars80080 @  31.5.2009,  13:34 Найти цитируемый пост)
и использование двойных кавычек - проигрыш в читаемости кода 

С чего вдруг? Синтаксис PHP близок к синтаксису С++, следовательно всем людям знакомым с С++ будет гораздо легче читать код, в котором строки-литералы обрамлены двойными кавычками, а символы-литералы - одинарными. По той же причине лучше не использовать конструкции, включающие в себя : endif, : endforeach, etc. вместо {}.


Цитата(bars80080 @  31.5.2009,  13:34 Найти цитируемый пост)
не знаю что там из себя представляют IDE, всё что слышу о них порождает идею о пушке и воробьях. смысла в них вообще не вижу, если создание сайта у меня занимает всего 5 минут, путём копирования предыдущей версии. а далее дизайн, контент и размещение блоков. т.е. ничего общего с программированием на пхп.

Ну так если твоя работа вообще не связана с программированием на пхп, то с какой стати ты навязываешь своё мнение в теме, связанной с программированием на пхп? 

Цитата(bars80080 @  31.5.2009,  13:34 Найти цитируемый пост)
когда очередной раз здесь скидывают класс по БД с малопонятными конструкциями типа $db->fetch_row(), я спрашиваю себя, нафига вообще было писать такой код, который ни капельки не облегчает процесс написания? но все пользуются, я им не возражаю. но это не значит, что я должен брать тот же класс и юзать его
Ну тут 2 варианта, если ты вместо $db->fetch_row() используешь mysql_fetch_row(), то лучше бы тебе взять их класс и юзать его. А если ты вместо $db->fetch_row() используешь паттерн ActiveRecord, то смело возражай строителям велосипедов!





--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
bars80080
Дата 31.5.2009, 14:07 (ссылка)  | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(nerezus @  31.5.2009,  13:42 Найти цитируемый пост)
Никогда не приходилось писать 400кб кода на новый проект дописывать(естественно кроме них еще куча своих и чужихнаработок)?

нет. объём чистого кодинга на модуль - максимум 100кБ, и то это был жуткий аврал и нафигачивания одной новой компоненты на другую, т.е. архитектуры вообще не было. а так 10-30 кБ


Цитата(nerezus @  31.5.2009,  13:42 Найти цитируемый пост)
Расскажи, как с сотнями файлов в блокноте работать ) Очень интересно ;)

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

хм, интересно, что это за дикий кодинг в котором приходится работать с сотней файлов одновременно? у меня обычно открыт пхп-скрипт, хтмл-шаблон, js-скрипт, css-лист. в принципе всё


Цитата(nerezus @  31.5.2009,  13:42 Найти цитируемый пост)
Для тебя. Для всех остальных - иначе. Ссылка выше - подтверждение этого мнения. 

что-то не видно ссылки. есть понятие привычки, а есть понятие удобства, не надо путать, я тоже вначале делал как завещал великий ... (фиг знает, кто там был в начале, но судя по всему суеверие очень живуче). я долго писал двойными кавычками, потом решил перейти на одинарные, вначале было неудобно, но за пару недель полностью перестроился. ошибок в разы уменьшилось. во-первых из-за такой банальности, что меньше чёрточек мельтешит перед глазами, во-вторых, кристально чётко отслеживается где переменная/константа/массив, а где литерал, также неожиданно перестроились строки кода. тут надо пояснить. при постоянных соединениях конкатенацией отдельных частей, естественно получается разбитие строк по точке, в отличие от двойных кавычек, где либо происходит уход строки за край экрана, либо съезд на следующую строку со зрительной разбивкой табовой структуры, либо введением разрыва страницы, который разрывает структуру уже в html-исходнике. короче это надо видеть и ощутить, а не слушать открыв рот других, только потому что это "уважаемые" программисты  из серьёзных проектов.
PM MAIL WWW   Вверх
source777
Дата 31.5.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(youri @  31.5.2009,  13:50 Найти цитируемый пост)
там так и написано, что "двойные кавычки для большинства читабельнее"?
это исторически сложилось благодаря С++. Т.к. любой программист знает много языков, то ему удобнее чтобы их синтасисы либо минимально отличались, либо кардинально. Иначе возникает резкое снижение читабельности из-за интерференции различных синтаксисов.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
bars80080
Дата 31.5.2009, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(youri @  31.5.2009,  13:50 Найти цитируемый пост)
и что мы видим? Правила оформления кода субъективны (большей частью) - кто к чему привык, вы сами это отлично продемонстрировали  smile

Цитата
Для тебя. Для всех остальных - иначе. Ссылка выше - подтверждение этого мнения 

там так и написано, что "двойные кавычки для большинства читабельнее"?

читаем выше, написал почему я отошёл от двойных
PM MAIL WWW   Вверх
source777
Дата 31.5.2009, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(bars80080 @  31.5.2009,  14:07 Найти цитируемый пост)
неожиданно перестроились строки кода. тут надо пояснить. при постоянных соединениях конкатенацией отдельных частей, естественно получается разбитие строк по точке, в отличие от двойных кавычек, где либо происходит уход строки за край экрана, либо съезд на следующую строку со зрительной разбивкой табовой структуры, либо введением разрыва страницы, который разрывает структуру уже в html-исходнике.

ты не смешивай в одну кучу выбор вида кавычек и выбор между конкатенацией и интерполяцией, они не связанны совершенно. Да и длина строк не связана с выбором между конкатенацией и интерполяцией.


Цитата(bars80080 @  31.5.2009,  14:07 Найти цитируемый пост)
кристально чётко отслеживается где переменная/константа/массив, а где литерал
Т.е. твой редактор не подсвечивал строки с двойными кавычками и интерполированные в них переменные? Смени редактор, он жестоко тебя ограничивает!


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
bars80080
Дата 31.5.2009, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(source777 @  31.5.2009,  14:04 Найти цитируемый пост)
С чего вдруг? Синтаксис PHP близок к синтаксису С++, следовательно всем людям знакомым с С++ будет гораздо легче читать код, в котором строки-литералы обрамлены двойными кавычками, а символы-литералы - одинарными. По той же причине лучше не использовать конструкции, включающие в себя : endif, : endforeach, etc. вместо {}.

не знаю лично ни одного кодера из C, который бы перешёл на пхп


Цитата(source777 @  31.5.2009,  14:04 Найти цитируемый пост)
Ну так если твоя работа вообще не связана с программированием на пхп, то с какой стати ты навязываешь своё мнение в теме, связанной с программированием на пхп? 

работа прямым образом связана с пхп, так как новые модули то писать надо. а моя ремарка относится к эффективности IDE


Цитата(source777 @  31.5.2009,  14:04 Найти цитируемый пост)
Ну тут 2 варианта, если ты вместо $db->fetch_row() используешь mysql_fetch_row(), то лучше бы тебе взять их класс и юзать его. А если ты вместо $db->fetch_row() используешь паттерн ActiveRecord, то смело возражай строителям велосипедов!

я вообще никаких подобных дикостей не использую. я пишу $db->select($sql); и получаю нужный мне массив данных упорядоченный в нужном порядке, с нужным количеством строк, да ещё и залогированный если нужно
Цитата(source777 @  31.5.2009,  14:07 Найти цитируемый пост)
это исторически сложилось благодаря С++. Т.к. любой программист знает много языков, то ему удобнее чтобы их синтасисы либо минимально отличались, либо кардинально. Иначе возникает резкое снижение читабельности из-за интерференции различных синтаксисов.

имхо, если человек занимается одновременно разными направлениями, то если он не является гением, то возникает вопрос о качественности его работы в отдельном направлении. именно по этой причине я не стал даже соваться в asp и .net, т.к. хотел всё-таки подняться над уровнем примитивов в пхп

а при отдельныз разработках, то перестроится на другой синтаксис не представляет труда. мы же не пишем в пхп := , и при этом не испытываем никакого дискомфорта при переходе на другие системы?
PM MAIL WWW   Вверх
source777
Дата 31.5.2009, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(bars80080 @  31.5.2009,  14:08 Найти цитируемый пост)
читаем выше, написал почему я отошёл от двойных 

Я почитал, единственная крайне субъективная причина "меньше чёрточек мельтешит перед глазами", всё остальное вообще с видом кавычек не связано(конкатенацию с двойными кавычками никто не запрещал применять).


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
bars80080
Дата 31.5.2009, 14:23 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(source777 @  31.5.2009,  14:13 Найти цитируемый пост)
ты не смешивай в одну кучу выбор вида кавычек и выбор между конкатенацией и интерполяцией, они не связанны совершенно. Да и длина строк не связана с выбором между конкатенацией и интерполяцией.

понятия не имею, что ты понимаешь здесь под интерполяцией.

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


Цитата(source777 @  31.5.2009,  14:13 Найти цитируемый пост)
Т.е. твой редактор не подсвечивал строки с двойными кавычками и интерполированные в них переменные? Смени редактор, он жестоко тебя ограничивает! 

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


PM MAIL WWW   Вверх
source777
Дата 31.5.2009, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(bars80080 @  31.5.2009,  14:15 Найти цитируемый пост)
не знаю лично ни одного кодера из C, который бы перешёл на пхп

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


Цитата(bars80080 @  31.5.2009,  14:15 Найти цитируемый пост)
я пишу $db->select($sql); и получаю нужный мне массив данных упорядоченный в нужном порядке, с нужным количеством строк, да ещё и залогированный если нужно

ну это тот же велосипед, только в профиль. Почитай про ActiveRecord.


Цитата(bars80080 @  31.5.2009,  14:15 Найти цитируемый пост)
имхо, если человек занимается одновременно разными направлениями, то если он не является гением
Да, нет я знаю много программистов, и не один из них не ограничивает себя одним языком.


Цитата(bars80080 @  31.5.2009,  14:15 Найти цитируемый пост)
то возникает вопрос о качественности его работы в отдельном направлении. именно по этой причине я не стал даже соваться в asp и .net, т.к. хотел всё-таки подняться над уровнем примитивов в пхп
Чем шире кругозор, тем выше уровень. На одном пхп на высокого уровня не достигнешь, скорее наоборот, слишком низкая входная планка не лучшим образом отражается на php-сообществе, даже крупные открытые проекты(типа CMS, форумов) порой выпускают такой быдлокод, что тошно в него даже заглядывать. Так что причина у тебя в корне неправильная. 


Цитата(bars80080 @  31.5.2009,  14:15 Найти цитируемый пост)
а при отдельныз разработках, то перестроится на другой синтаксис не представляет труда. мы же не пишем в пхп := , и при этом не испытываем никакого дискомфорта при переходе на другие системы? 

Я про это и написал: "синтасисы либо минимально отличались, либо кардинально", если брать пару Delphi - PHP, то различие в синтаксисе кардинальное,  а если С++ - PHP, то надо сводить различия к минимуму, т.к. кардинального отличия не получится, как не старайся.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
bars80080
Дата 31.5.2009, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(source777 @  31.5.2009,  14:16 Найти цитируемый пост)
всё остальное вообще с видом кавычек не связано(конкатенацию с двойными кавычками никто не запрещал применять). 

так бессмысленно её применять с двойными кавычками. мы же здесь не правила использования обсуждаем, а манеру кодинга человеком. зачем бить строку на части без нужды? а если она уже разбита, то у человека автоматом потянется рука нажать enter именно в этом месте

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

для машины пофигу как мы пишем, её даже лучше если будет меньше комментариев, пробелов, имена переменных короче...
всё это для удобства человеческого глаза.
PM MAIL WWW   Вверх
source777
Дата 31.5.2009, 14:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(bars80080 @  31.5.2009,  14:23 Найти цитируемый пост)
понятия не имею, что ты понимаешь здесь под интерполяцией.
Интерполяция - подстановка значений переменных в строку, вместо их идентификаторов, аля "val = $val" -> "val = 5". 
Это не я придумал так называть данный механизм smile

Добавлено через 1 минуту и 18 секунд
Цитата(bars80080 @  31.5.2009,  14:29 Найти цитируемый пост)
так бессмысленно её применять с двойными кавычками.
с чего это ты взял?



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
bars80080
Дата 31.5.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(source777 @  31.5.2009,  14:28 Найти цитируемый пост)
А мы оказывается про кодеров говорим? Я то думал про нормальных программистов, которые язык выбирают под конкретную задачу, а не переходят с одного на другой.

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


Цитата(source777 @  31.5.2009,  14:28 Найти цитируемый пост)
ну это тот же велосипед, только в профиль. 

ну не знаю, если для тебя 

$db->select($sql)

и 
$s = $db->select($sql);
while($db->fetch_row($s)) {
   $b = ....
}
одно и тоже, то не знаю даже что и говорить


Цитата(source777 @  31.5.2009,  14:28 Найти цитируемый пост)
Чем шире кругозор, тем выше уровень. На одном пхп на высокого уровня не достигнешь, скорее наоборот, слишком низкая входная планка не лучшим образом отражается на php-сообществе, даже крупные открытые проекты(типа CMS, форумов) порой выпускают такой быдлокод, что тошно в него даже заглядывать.

вооот, а мне тут советуют озираться на "специалистов"


Цитата(source777 @  31.5.2009,  14:28 Найти цитируемый пост)
Почитай про ActiveRecord.

я особо читать не стал. что ты мне хотел показать, кроме того, что там человек пользуется одинарными кавычками?


Цитата(source777 @  31.5.2009,  14:28 Найти цитируемый пост)
Я про это и написал: "синтасисы либо минимально отличались, либо кардинально", если брать пару Delphi - PHP, то различие в синтаксисе кардинальное,  а если С++ - PHP, то надо сводить различия к минимуму, т.к. кардинального отличия не получится, как не старайся. 

это уже что-то из: я вижу разницу между #ccccc8 и #ccccca, а я нет

Добавлено через 3 минуты и 6 секунд
Цитата(source777 @  31.5.2009,  14:33 Найти цитируемый пост)
Интерполяция - подстановка значений переменных в строку, вместо их идентификаторов, аля "val = $val" -> "val = 5". 
Это не я придумал так называть данный механизм

не знаю, в моём понимании интерполяция - придумывание промежуточных значений на базе уже существующих. тоже не я придумал

и что ты хотел сказать? я и не заикался о замене
Цитата(source777 @  31.5.2009,  14:33 Найти цитируемый пост)
так бессмысленно её применять с двойными кавычками.
с чего это ты взял?

а зачем лишний раз разрывать строку, если переменная так и просится остаться внутри литерала?
PM MAIL WWW   Вверх
youri
Дата 31.5.2009, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Цитата
но за пару недель полностью перестроился

Цитата(bars80080 @  31.5.2009,  14:15 Найти цитируемый пост)
а при отдельныз разработках, то перестроится на другой синтаксис не представляет труда. мы же не пишем в пхп := , и при этом не испытываем никакого дискомфорта при переходе на другие системы?

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

Цитата(source777 @  31.5.2009,  14:07 Найти цитируемый пост)
это исторически сложилось благодаря С++. Т.к. любой программист знает много языков, то ему удобнее чтобы их синтасисы либо минимально отличались, либо кардинально. Иначе возникает резкое снижение читабельности из-за интерференции различных синтаксисов

похоже за этим стоит серьезное научное исследование smile

Цитата(bars80080 @  31.5.2009,  14:08 Найти цитируемый пост)
читаем выше, написал почему я отошёл от двойных

а рядом причины использовать двойные кавычки

Цитата(source777 @  31.5.2009,  14:13 Найти цитируемый пост)
ты не смешивай в одну кучу выбор вида кавычек и выбор между конкатенацией и интерполяцией, они не связанны совершенно

для кого-то связаны

PM   Вверх
source777
Дата 31.5.2009, 14:49 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(bars80080 @  31.5.2009,  14:37 Найти цитируемый пост)
я думал в теме мы обсуждаем вэб-проекты основанные на пхп.
веб-проекты можно делать не только на пхп, поэтому надо чётко разделять понятия пхп-кодер и веб-программист, в этих понятиях крайне мало общего.


Цитата(bars80080 @  31.5.2009,  14:37 Найти цитируемый пост)
ну не знаю, если для тебя 

$db->select($sql) 

и 
$s = $db->select($sql);
while($db->fetch_row($s)) {
   $b = ....
}
одно и тоже, то не знаю даже что и говорить
В первом варианте обработка выборки прямо внутри select? шикарно  smile 
И то и то велосипед с квадратными колёсами, да ёще и raw-SQL на входе, ужос короче, лучше с подобным кодом дела не иметь. 

Цитата(bars80080 @  31.5.2009,  14:37 Найти цитируемый пост)
я особо читать не стал. что ты мне хотел показать, кроме того, что там человек пользуется одинарными кавычками?
Причём там кавычки? Тут выясняется, что ты велосипедами для общения с БД пользуешься, кавычки по сравнению с таким косяком вообще уже роли не играют.

Добавлено через 5 минут и 50 секунд
Цитата(youri @  31.5.2009,  14:44 Найти цитируемый пост)
для кого-то связаны
это их проблемы. Смысл в том, что использование тех или иных кавычек никак не должно входить в "Правила хорошего кода", это личное дело каждого и никакого улучшения читабельности при использовании одинарных кавычек нет, поэтому я против того навязывания одинарных кавычек, которое развернули в этой теме.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
youri
Дата 31.5.2009, 14:56 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



итого, 3 точки зрения по поводу того, какие правила лучше
<погорячился>

Это сообщение отредактировал(а) youri - 8.10.2009, 22:41
PM   Вверх
source777
Дата 31.5.2009, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(youri @  31.5.2009,  14:44 Найти цитируемый пост)
похоже за этим стоит серьезное научное исследование smile
как ты догадался, оно ж секретное!


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
youri
Дата 31.5.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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 одни правила - так нет же, свои придумывают
пожалуйста, объясните зачем им каждому свои правила?  smile 
PM   Вверх
nerezus
Дата 31.5.2009, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

там так и написано, что "двойные кавычки для большинства читабельнее"?
 http://framework.zend.com/manual/ru/coding...le-substitution

Цитата

нет. объём чистого кодинга на модуль - максимум 100кБ, и то это был жуткий аврал и нафигачивания одной новой компоненты на другую, т.е. архитектуры вообще не было. а так 10-30 кБ
 Я не про модуль, а про проект.

Цитата

хм, интересно, что это за дикий кодинг в котором приходится работать с сотней файлов одновременно?
 ~20 файлов моделей, ~150 файлов шаблонов, ~30 модулей, ~50 файлов ядра и common, 2k+ файлов чужих библиотек, в которые тоже иногданадо залезть.
Естественно открыто ~7 файлов одновременно, остальные учавствуют в автодополнении кода и подсказках. 

Цитата

во-первых из-за такой банальности, что меньше чёрточек мельтешит перед глазами, во-вторых, кристально чётко отслеживается где переменная/константа/массив, а где литерал, также неожиданно перестроились строки кода.
 Черточки не изменятся. В двойных тоже все норм. В IDE.

Цитата

 короче это надо видеть и ощутить, а не слушать открыв рот других, только потому что это "уважаемые" программисты  из серьёзных проектов.
 Я пришел к тому же стилю, как и они. Так было удобнее. Я разделяю мннение большинства.

Цитата

не знаю лично ни одного кодера из C, который бы перешёл на пхп
 Я знаю лишь одного программиста на C, который не перешел на другой ЯП.
Хотя ты возможно путаешь C и C++, это абсолютно разные языки.

Цитата

Смени редактор, он жестоко тебя ограничивает!
 +1. Бруно сожгли только за то, что он говорил людям, чтобы они не придумывали себе ограничений.

Добавлено через 9 минут и 3 секунды
Цитата

казалось бы придумали для php одни правила - так нет же, свои придумывают
пожалуйста, объясните зачем им каждому свои правила?
 Я пишу в .NET по Java style(слегка модифицированный K&R style) т.к. занимаемый код без потерь в читаемости занимает в 2 раза меньше места и за ним проще следить.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 31.5.2009, 15:42 (ссылка) |  (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(nerezus @  31.5.2009,  15:02 Найти цитируемый пост)
Я не про модуль, а про проект.

ну у меня не десять голов, чтобы над десятью модулями работать. разбивка на файлы - это прежде всего выделения отдельных смысловых частей. зачем мешать работу с БД и какой-нибудь новостной визард? работаю над одним модулем, его и открыл, когда надо будет над другим - открою его. первый уже будет не нужен, можно закрыть


Цитата(nerezus @  31.5.2009,  15:02 Найти цитируемый пост)
~20 файлов моделей, ~150 файлов шаблонов, ~30 модулей, ~50 файлов ядра и common, 2k+ файлов чужих библиотек, в которые тоже иногданадо залезть.
Естественно открыто ~7 файлов одновременно, остальные учавствуют в автодополнении кода и подсказках. 

страх какой. т.е. выполнение одного клика пользователя вызывает движуху по нескольким сотням файлов?


Цитата(nerezus @  31.5.2009,  15:02 Найти цитируемый пост)
Черточки не изменятся. В двойных тоже все норм. В IDE.

уже отписался
Цитата(nerezus @  31.5.2009,  15:02 Найти цитируемый пост)
 Я пришел к тому же стилю, как и они. Так было удобнее. Я разделяю мннение большинства.
уже отписался
Цитата(nerezus @  31.5.2009,  15:02 Найти цитируемый пост)
Я знаю лишь одного программиста на C, который не перешел на другой ЯП.

забавно, порождает интересные размышления об избыточности изучения этого языка
Цитата(nerezus @  31.5.2009,  15:02 Найти цитируемый пост)
 +1. Бруно сожгли только за то, что он говорил людям, чтобы они не придумывали себе ограничений.
уже отписался

PM MAIL WWW   Вверх
Elfet
Дата 31.5.2009, 17:30 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(source777 @  31.5.2009,  15:49 Найти цитируемый пост)
Цитата(bars80080 @  31.5.2009,  14:37 Найти цитируемый пост)
ну не знаю, если для тебя 

$db->select($sql) 

и 
$s = $db->select($sql);
while($db->fetch_row($s)) {
   $b = ....
}
одно и тоже, то не знаю даже что и говорить
В первом варианте обработка выборки прямо внутри select? шикарно  smile 
И то и то велосипед с квадратными колёсами, да ёще и raw-SQL на входе, ужос короче, лучше с подобным кодом дела не иметь. 

Цитата(bars80080 @  31.5.2009,  14:37 Найти цитируемый пост)
я особо читать не стал. что ты мне хотел показать, кроме того, что там человек пользуется одинарными кавычками?
Причём там кавычки? Тут выясняется, что ты велосипедами для общения с БД пользуешься, кавычки по сравнению с таким косяком вообще уже роли не играют.

Что то тут я не очень понял? Что за велосипед? Я, например, DbSimple пользуюсь, там тоже на это похоже. А этот активрекорд, как мне показалось - шаг назад. 


--------------------
PM MAIL WWW Skype   Вверх
nerezus
Дата 31.5.2009, 17:34 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

страх какой. т.е. выполнение одного клика пользователя вызывает движуху по нескольким сотням файлов?
Да, а что?
Сейчас 2009 год, сервер арендовать на месяц дешевле, чем программисту день работы оплатить.
И, кстати, советую почитать что-то про оптимизацию ;)

Цитата

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

Update: http://rsdn.ru/article/philosophy/Optimization.xml

Это сообщение отредактировал(а) nerezus - 31.5.2009, 17:35


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 31.5.2009, 17:48 (ссылка) |  (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(nerezus @  31.5.2009,  17:34 Найти цитируемый пост)
Да, а что?
Сейчас 2009 год, сервер арендовать на месяц дешевле, чем программисту день работы оплатить.
И, кстати, советую почитать что-то про оптимизацию ;)

мне читать про оптимизацию? smile  ты советуешь мне читать про оптимизацию?

тут кто-то жаловался, что лишний десяток инклудов заметно сказывается на времени работы скриптов

а я ещё думаю, почему vz.ru надо сидеть ждать полминуты пока загрузится, почему mail.ru вешает мне браузер. думал количество посетителей много, а проблемы возможно в корне
PM MAIL WWW   Вверх
nerezus
Дата 31.5.2009, 17:55 (ссылка)  | (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

мне читать про оптимизацию?   ты советуешь мне читать про оптимизацию?

тут кто-то жаловался, что лишний десяток инклудов заметно сказывается на времени работы скриптов

а я ещё думаю, почему vz.ru надо сидеть ждать полминуты пока загрузится, почему mail.ru вешает мне браузер. думал количество посетителей много, а проблемы возможно в корне
 Судя по всему тебе всенепременно стоит прочитать эту статью. Там на эти твои вопросы ответили.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
source777
Дата 31.5.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(Elfet @  31.5.2009,  17:30 Найти цитируемый пост)
Что то тут я не очень понял? Что за велосипед? Я, например, DbSimple пользуюсь, там тоже на это похоже. А этот активрекорд, как мне показалось - шаг назад.  
Посмотрел на DbSimple, тоже старый велосипедный подход используется, тот же raw-SQL, не советую пользоваться подобными поделками. Лучше обрати внимание на лучшие решения.


Это сообщение отредактировал(а) source777 - 31.5.2009, 18:25


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Elfet
Дата 31.5.2009, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



source777, что это за набор паттернов? 

Тот класс для работы с БД, что ты показывал до этого как я понял не использует SQL, за место него работает объектная модель? Я думаю, что это неправильно, так как не зря же придумали SQL? Могли бы и сразу делать объектно, без всяких других языков.


--------------------
PM MAIL WWW Skype   Вверх
bars80080
Дата 31.5.2009, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(nerezus @  31.5.2009,  17:55 Найти цитируемый пост)
Судя по всему тебе всенепременно стоит прочитать эту статью. Там на эти твои вопросы ответили. 

да что за статья-то?

и ты хочешь сказать, что десять файлов подключать лучше, чем один того же объёма?
PM MAIL WWW   Вверх
nerezus
Дата 31.5.2009, 19:25 (ссылка)  | (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

и ты хочешь сказать, что десять файлов подключать лучше, чем один того же объёма?
 Я хочу сказать, что разницы нет.
И кстати не забывай, что php-файл после компиляции кэшируется при правильной настройке PHP ;)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
source777
Дата 31.5.2009, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(Elfet @  31.5.2009,  19:02 Найти цитируемый пост)
source777, что это за набор паттернов? 
PoEAA.

Цитата(Elfet @  31.5.2009,  19:02 Найти цитируемый пост)
Тот класс для работы с БД, что ты показывал до этого как я понял не использует SQL, за место него работает объектная модель? Я думаю, что это неправильно
Проще говоря, ты не используешь ООП, а ставишь БД во главу угла. Если ты пишешь только сайты-визитки, то пожалуйста, а в крупных веб-приложениях такой подход просто недопустим. Кстати SQL этот подход использует, только он его изолирует в одном месте - ActiveRecordBase и его потомки.


Цитата(Elfet @  31.5.2009,  19:02 Найти цитируемый пост)
Я думаю, что это неправильно, так как не зря же придумали SQL? Могли бы и сразу делать объектно, без всяких других языков. 
Тут ты не прав, SQL зародился очень давно(ещё в 70-х годах), в то время его не могли сделать объектно, а сейчас мгновенный отказ от реляционных СУБД уже просто невозможен, но идёт плавный переход от них в сторону объектно-реляционных и объектно-ориентированных СУБД. И самое забавное, что сами создатели реляционной модели данных утверждают, что SQL не является истинно реляционным языком(и забросив его принялись за Tutorial D). 
Но даже при использовании реляционных СУБД уже давно всем понятно, что SQL никак не вяжется с современным объектно-ориентированным программированием, поэтому все запросы должны быть изолированы в одном месте, а не разбросаны хаотичными вкраплениями по всему коду.

Это сообщение отредактировал(а) source777 - 31.5.2009, 19:36


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Elfet
Дата 31.5.2009, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



source777, а есть ещё альтернативы ActiveRecordBase? 


--------------------
PM MAIL WWW Skype   Вверх
Wowa
Дата 31.5.2009, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(bars80080 @  31.5.2009,  14:42 Найти цитируемый пост)
страх какой. т.е. выполнение одного клика пользователя вызывает движуху по нескольким сотням файлов?

Ну код же надо разделять. А пихать всё в один файл нельзя, т.к. тогда куча лишнего грузиться будет. Байт-код пхп-файлов в памяти кешируется и подключение должно быть более-менее быстрым. Хотя конечно тоже время занимает и пара сотня файлов это перебор, но от подключения нескольких десятков файлов имхо никуда не уйти.
PM WWW   Вверх
source777
Дата 31.5.2009, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(Elfet @  31.5.2009,  20:42 Найти цитируемый пост)
source777, а есть ещё альтернативы ActiveRecordBase?  
Есть, по ссылке выше смотри пункт Data Source Architectural Patterns.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
SneG0K
Дата 31.5.2009, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Хороший код должен быть:
1) Хорошо читаемым
2) Хорошо документированным
3) Хорошо оптимизированным

Имхо. требования к написанию меняются от команды к команде... 
PM WWW Skype   Вверх
youri
Дата 31.5.2009, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Цитата(SneG0K @  31.5.2009,  22:24 Найти цитируемый пост)
Имхо. требования к написанию меняются от команды к команде... 

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

Это сообщение отредактировал(а) youri - 31.5.2009, 22:51
PM   Вверх
bars80080
Дата 31.5.2009, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(Wowa @  31.5.2009,  21:30 Найти цитируемый пост)
Ну код же надо разделять. А пихать всё в один файл нельзя

так я ж про то и говорю, сто файлов подключаются одновременно. это же с ума сойти
PM MAIL WWW   Вверх
Wowa
Дата 31.5.2009, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Кстати, рекламируемая тут ActiveRecordBase как раз подразумевает создание большого кол-ва файлов. По файлу на класс объекта.
PM WWW   Вверх
SneG0K
Дата 31.5.2009, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Цитата(bars80080 @  31.5.2009,  22:26 Найти цитируемый пост)
так я ж про то и говорю, сто файлов подключаются одновременно. это же с ума сойти

Это не с ума сойти, а хороший API интерфейс, наверноеsmile... В данном случае кеширование спасет мир. Например, установи pear'овскую ACP. Иногда скорость выполнения повышалась до 83%
PM WWW Skype   Вверх
nerezus
Дата 31.5.2009, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

это же с ума сойти
 Это просто большой проект.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
source777
Дата 1.6.2009, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(SneG0K @  31.5.2009,  23:29 Найти цитируемый пост)
Например, установи pear'овскую ACP
APC  smile или eAccelerator, это вполне естественные меры для компенсации ущербной модели распространённой для PHP, когда весь код интерпретируется заново при каждом запросе.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
SneG0K
Дата 1.6.2009, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Цитата(source777 @  1.6.2009,  10:16 Найти цитируемый пост)
когда весь код интерпретируется заново при каждом запросе.

А это уже вина администраторов.
PM WWW Skype   Вверх
realPROme
Дата 2.6.2009, 14:43 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 20.12.2006

Репутация: нет
Всего: нет



незнаю, насколько это считается правилом хорошего тона...))
константы пишу СТРОЧНЫМИ, как уже говорили, а названия переменных для массивов начинаю с символа подчеркивания, а-ля $_array
привычка такая пошла, походу, с $_GET/POST smile 
PM MAIL   Вверх
SneG0K
Дата 2.6.2009, 15:04 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



А я просто обзываю переменные и массивы понятно
PM WWW Skype   Вверх
Страницы: (15) [Все] 1 2 3 ... Последняя »
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.5805 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.