(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
ABBYY Lingvo x6 Европейская Домашняя версия, электронный ключ
EMS SQL Management Studio for InterBase/Firebird (Business) + 1 Year Maintenance
Microsoft Windows Professional 10, Электронный ключ
ABViewer Professional пользовательская
Oracle Database Personal Edition Named User Plus License
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
СУБД Oracle "с нуля"
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Новые материалы
Работа в Windows и новости компании Microsoft
Компьютерная библиотека: книги, статьи, полезные ссылки
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100