(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Хороший стиль программирования.

Источник: softtime
Симдянов И.В.

Всякий кто сталкивается c PHP, в скором времени приходит к выводу, что это не совсем удобный язык для изучения. Дело в том, что он достаточно новый и динамично развивающийся, каждая последующая версия буквально перечёркивает предыдущую. В таких условиях имеющаяся документация быстро устаревает, а специалисты предпочитают не писать книг, так как информация размещённая в книге начинает устаревать до выхода книги в свет.

Почему же PHP так популярен и каким образом столько человек разом обучилось PHP? Дело в том, что большинство PHP-программистов не изучало язык с нуля, а изучало его либо уже зная С/С++, либо Perl. Perl является C-подобным языком программирования (как и PHP), а является предшественником PHP, можно сказать что PHP это Web-ориентированный Perl. Поскольку, PHP просто логически следует из Perl и широкое распространение получил именно из-за того, что программистам было легко переходить с Perl на PHP (ну и с С на PHP, тоже).

Замечание

Язык Perl появился в 1986 году по воле системного программиста Лари Уолла. Созданный первоначально как средство обработки текстовых файлов, призванное облегчить жизнь системному администратору UNIX, он превратился в настоящий язык программирования. Традиционные области, в которых Perl применяется особенно часто и успешно, - создание приложений CGI, системное администрирование UNIX, обработка текста.

Кроме того, свой вклад вносит предметная область - программирование для сети Интернет. Для серьёзного понимания которого желательно знание очень многих вещей (HTML, SQL, UNIX, прикладных протоколов - хотя бы HTTP, стилей программирования на С, Perl, Java).
Когда большинство PHP-программистов переходят в мир PHP с багажом другого языка программирования (их стиль уже устоялся), спрос на литературу, в которой бы обсуждались азы программирования не так велик. Новичкам бывает трудно найти информацию об организации кода. Мы надеемся, что эта статья поможет поставить свой собственный стиль, что в конечном итоге может увеличить скорость разработки на 30% и помочь при работе в команде, когда ваш код будет читаться другими программистами, а вам соответственно придётся читать чужой код.

Расстановка фигурных скобок и отступы

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

1) Рациональный стиль

Это один из наиболее распространенных стилей, так как им пользовались Керниген (Kernighan) и Ричи (Ritchie), авторы языка C.

<?php
  if($flag){
    echo "Hello world!";
  }
?>

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

2) Стиль Алмена

Эрик Алемен (Eric Allman) написал утилиты BSD в этом стиле, поэтому этот стиль часто называют "стиль BSD":

<?php
  if($flag)
  {
    echo "Hello world!";
  }
?>

Аргументом в поддержку такого стиля является тот факт, что область видимости блочного оператора ясна и визуально ассоциируется с управляющим оператором.

3) Стиль Whitesmith

Данный стиль предписывает использование следующей расстановки фигурных скобок

<?php
  if($flag)
    {
    echo "Hello world!";
    }
?>

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

4) Стиль GNU

Программисты GNU фонда Free Software Foundation используют следующий стиль расстановки фигурных скобок

<?php
  if($flag)
    {
      echo "Hello world!";
    }
?>

Внутри любых управляющих конструкций операторы следует располагать с отступом на одинаковое число пробелов, например для операторов if-then-else код должен выглядеть следующим образом:

<?php
  $flag = true;
  if($flag)
  {
    echo "Переменная равна true";
    exit();
  }
  else
  {
    echo "Переменная равна false";
    exit();
  }
?>

Число может быть любым, обычно используют 2, 4 или 8 пробелов. Старайтесь придерживаться этого правила, некоторые программисты приходят в бешенство когда это число не кратно 2 :) Наиболее оптимальным является использование 2 пробелов, так как при их большем числе вложенные блоки становятся "растянутыми" и их становится сложно воспринимать.

Пробелы вокруг символов

Бинарные операторы следует обрамлять пробелами:

<?php
  // Неправильно
  $a=$b+$c*$d;
  // Правильно
  $a = $b + $c * $d;
?>

Символ пробела ассоциируется с новым словом, поэтому формула читается не как непонятный набор символов, а как нечто осмысленное.

Комментарии

Расставляйте комментарии по принципу "чем больше, тем лучше" - пройдёт некоторое время и вы забудете, что делал тот или иной программный блок. Вообще принято комментировать код на английском языке или не комментировать вообще, так как в русском дикое количество кодировок, да и вообще так исторически сложилось. Плюйте на это, код вы комментируете в первую очередь для себя, а не для других! А раз уж вы делает это для себя делайте это в удобной для вас кодировке.

PHP собрал в себе практически все комментарии современных языков программирования, наряду с однострочными комментариями в стиле shell-скриптов (#)

<?php
  # Программный модуль index.php
  echo "Hello world!";
?>

и С++ (//)

<?php
  // Программный модуль index.php
  echo "Hello world!";
?>

можно использовать многострочный комментарий в стиле C:

<?php
  /* Это многострочный комментарий в стиле С
     он охватывает несколько строк - не допускается
     вложенных комментариев
  */
  echo "Hello world!";
?>

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

<?php
  ////////////////////////////////////////////////////////////////////////////////////////
  // Гостевая книга
  ///////////////////////////////////////////////////////////////////////////////////////
?>

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

<?php
  // Вывод текстовой строки в окно браузера
  echo "Hello world!"; 
?>

и после точки с запятой

<?php
    echo "Hello world!"; // Вывод текстовой строки в окно браузера
?>

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

<?php
  if($tot)
  {
     while($position = next($tot))
     {
        /* Очень длинный код
           содержащий много 
           вложенных блоков
           ... 
        */
        if($flag)
        {
          echo "Ошибка";
          exit();
        }
     } // Конец while($position = next($tot))
  }
?>

Имена переменных и функций

Существует несколько стилей названия переменных

$var_bell - стиль C: нижний регистр, знак подчёркивания.

$VarBell - стиль Pascal: каждая подстрока в названии начинается с большой буквы.

$varBell - стиль Java: первая строка начинается с маленькой буквы, все последующие с большой.

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

Замечание

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

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

Рассмотрим несколько примеров. Часто временные строки для хранения SQL называют $query (запрос) - это очень удачное название, ассоциирующееся именно с SQL-запросом. Обычно на этом всё и заканчивается. При появлении второго запроса, вторая переменная получает имя $query1 - это порочная практика. Обычно запросы в рамках одного скрипта отличаются своим действием: один SQL-запрос может выполнять обновление (UPDATE), другой выборку (SELECT), поэтому переменные лучше называть с указанием действия оператора: $query_update и $query_select, соответственно.

Часто можно увидеть код

<?php
  $query = "SELECT * FROM catalog";
  $query1 = mysql_query($query);
  while($result = mysql_fetch_array($query1))
  {
     /* Код обработки */
  }
?>

Здесь дескриптор запроса, возвращаемый функцией mysql_query() назван $query1, это здорово запутывает как разработчика, так и читающего текст программы. Дескриптор не несёт физического смысла - это лишь ключ к результату, поэтому его лучше называть сокращённым именем таблицы

<?php
  $query = "SELECT * FROM catalog";
  $cat = mysql_query($query);
  while($catalog = mysql_fetch_array($cat))
  {
     /* Код обработки */
  }
?>

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 22.06.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Symantec Endpoint Encryption, License, 1-24 Devices
ABBYY FineReader 14 Standard Full
Купить WinRAR : 5 : Академическая лицензия 1 лицензия
erwin Data Modeler Standard Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
Quest Software. TOAD Xpert Edition
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
СУБД Oracle "с нуля"
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
eManual - электронные книги и техническая документация
Новые материалы
3D и виртуальная реальность. Все о Macromedia Flash MX.
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100