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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Правила хорошего кода 
:(
    Опции темы
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   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1016 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.