AGAVA partners programs http://agava.ru/partners/            

Название функции

             
Веб-курсы


Что это?

Оглавление

Основы
Основы основ

Практика
Гостевая книга
Простой сайт
Структура сайта (MVC)
Ядро (Light)
Ядро
Гостевая на SQL
Статические страницы
Модуль новостей
Система регистрации

Теория
Дебаггинг
Регулярные выражения
Введение в ООП
Паттерны проектирования

Репозитарий
BB-code
Почтовый класс
Пагинатор
Всякие полезности

Download
Полезные утилиты

Разное
Видеокурсы
Последние изменения
Вопросы и замечания сюда



Реклама

Диеты для похудения
Фреймворк Kohana. Обучение. Мануал на русском.







Стиль кодирования

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

1. Не лепить код к левому краю. Делать отступ пробелами (не табулятором). Табуляция в разных редакторах отображается по-разному, и код может расползтись.
Не так:

1
2
3
4
5
6
7
8


if($var == 0

echo 
'Ноль'



а так:
1
2
3
4
5
6
7
8


    
if($var == 0
    { 
        echo 
'Ноль'
    } 


2. Использовать только длинные теги. И хотя искушение воспользоваться "шортегами" велико, это может привести к проблемам. Лучше сразу привыкнуть к хорошему.
Не так:
1
2
3
4
5
6
7
8
<?
 

?>
 

<?=$page ?> 


а так:
1
2
3
4
5
6
7
8
<?php
 

?>
 

<?php echo $page ?> 


3. Открывающую фигурную скобку ставить не после выражения, а под ним. Закрывающую строго под открывающей.
Вот этот и два следующих пункта - основная причина разногласий между приверженцами разных стилей. Многие предпочитают скобку открывать на той же строке, с выражением. Нам кажется более рациональным и визуально понятным такой способ, когда открывающая скобка находится под выражением. Можно, прокручивая колесико мышки, определить начало и конец блока
Не так:
1
2
3
4
5
6
7
8
9

 
    
if(isset($_GET['page'])){echo $_GET['page'];} 

    if(isset(
$_GET['page'])) { 
        echo 
$_GET['page']; 
    } 

а так:
1
2
3
4
5
6
7
8

 
    
if(isset($_GET['page'])) 
    { 
        echo 
$_GET['page']; 
    } 

а так же избегать лишних фигурных скобок.
Писать не так:
1
2
3
4
5
6
7
8

 
    
if(isset($_GET['page'])) 
    { 
        echo 
$_GET['page']; 
    } 


а так:
1
2
3
4
5
6

 
    
if(isset($_GET['page'])) 
        echo 
$_GET['page'];


4. Вложенные выражения сдвигать вправо. Блоки отделять пустой строкой.
Не так:
1
2
3
4
5
6
7
8
9
10

 
    
if(isset($_GET['page1'])) 
    { 
    echo 
$_GET['page1']; 
    if(isset(
$_GET['page2'])) 
    echo 
$_GET['page2']; 
    }


а так:
1
2
3
4
5
6
7
8
9
10
11

 
    
if(isset($_GET['page1'])) 
    { 
        echo 
$_GET['page1']; 

        if(isset(
$_GET['page2'])) 
            echo 
$_GET['page2']; 
    } 


5. Не писать переменные в двойных кавычках и фигурных скобках, а использовать конкатенацию. По возможности, использовать апострофы, а не двойные кавычки
Не так:
1
2
3
4
5

    
echo "<a href='$page' >Ссылка</a>"; 
    
echo "<a href='{$page}' >Ссылка</a>"


а так:
1
2
3
4
5

 
    
echo '<a href="'$page .'" >Ссылка</a>';  


6. Операторы отделять пробелами.
Не так:
1
2
3
4
5
6

 
    
if($var==NULL);
        echo 
$page1,$page2;  

а так
1
2
3
4
5
6

 
    
if($var == NULL);
        echo 
$page1$page2

7. Не писать длинных строк. Длина строки должна быть в пределах 80-ти символов считая пробелы.
Если это невозможно, использовать конкатенацию.
не так:
1
2
3

4
5
<?php
 
    
echo '<table border=0 ><tr><td valign="top" style="font-size:12px; background-color:#000066; padding-left:3px; padding-right:3
px; text-align:right;">'


а так:
1
2
3
4
5
6
7
8
<?php
 
    
echo '<table border=0 >'
       
'<tr><td valign="top" '
       
'style="font-size:12px; background-color:#000066;' 
       
'padding-left:3px; padding-right:3px; text-align:right;">';


8. Переменные писать в нижнем регистре, а константы в верхнем. Составные переменные и константы писать через нижнее подчеркивание. Название функций в "верблюжьем" стиле. То есть, начинать с маленькой буквы, второе слово - с большой. Это для того, чтобы не путать свои (пользовательские) функции со встроенными.
не так:
1
2
3
4
5
6
7
8

 
    
echo $PageName;  
    echo 
page

    function 
get_page() 


а так:
1
2
3
4
5
6
7
8

 
    
echo $page_name;  
    echo 
PAGE

    function 
getPage() 



9. По возможности, использовать "говорящие" переменные. То есть, они должны отражать суть, а не быть просто набором символов.
Не так:
1
2
3
4
5

 
    $r1 
$s2 $s34 - $t5

А так:

1
2
3
4
5

 
    $result 
$sum_rows $summ_columns $test;


10. Обязательно комментируем каждую функцию. Как минимум. Комментарии лучше делать по такому стандарту:

1
2
3
4
5
6
7
8

 
/** 
* Establishes page number. 
* @var int 
*/

Вот основные десять заповедей. Нарушать их грешно и некрасиво.

Сравните сами, насколько легче и приятнее читать застилизованный код от каши, которую часто можно наблюдать у начинающих программистов. Такой
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

 
function rand_str($N=10){  
$a1=ange("0","9"); 
$a2=range("a","z"); 
$a=array_merge($a1,$a2); 
$a=array_merge($a,$a); 
$a=array_merge($a,$a2); 
$a[]="a"
$k=""
$rand=microtime(1); 
for(
$i=0;$i<$N;$i++) {  
shuffle($a); 
$k.=$a[(round(($r*1000-floor($r*1000)),2)*100)]; 
$r=microtime(1); 

return 
$k
}

и вот такой:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

 
/** 
* Function of generation of a casual string
* Функция генерации случайной строки 
* @param int $num
* @return string
*/      
    
function randStr($num 10)
    {
        
$arr_int range('0''9');
        
$arr_chr range('a''z');

        
$arr array_merge($arr_int$arr_chr);
        
$arr array_merge($arr$arr_chr);
        
$arr array_merge($arr$arr);

        
$key   '';
        
$arr[] = 'a';
        
$rand  microtime(true);
        
        for(
$i 0$i $num$i++) 
        {
            
shuffle($arr);
            
$key .= $arr[(round(($rand 1000 floor($rand 1000)), 2) * 100)];
            
$rand microtime(true);
        }
        return 
$key;
    }


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

Рейтинг@Mail.ru Рейтинг@Mail.ru Яндекс цитирования
irbis-team © 2009