Главная  |  RSS 2.0
Деньги  |  Бизнес  |  Культура  |  Здоровье  |  Красота  |  Мода  |  Наука  |  Интернет  |  Недвижимость  |  Туризм  |  Интересное  |  Полезное  |  Рецепты  |  Авто  |  Фильмы  |  Видео  |  Фото
Поиск по сайту:Расширенный поиск по сайту
Регистрация на сайте
Авторизация


Новое на сайте
» «Каратэ-пацан»: Я бы каратистом стал, пусть меня научат?
Во-первых, Джейден Смит – это сын Уилла Смита, который выступает здесь не только в качестве папы, но и продюсера фильма. Во-вторых, «Каратэ-пацан» – это ремейк одноименной (переводимой у нас как ...

» Как бороться с плохим настроением?
Плохое настроение – у кого оно не бывает? Все мы с ним как-то боремся, и в большинстве случаев довольно успешно. Женщинам, наверное, проще жить на этом свете. Мы более мужчин подвержены перепадам ...

» Для чего ребенок показывает язык?
«Мой сын начал показывать язык. Он вроде бы и не дразнит меня. Не показывает его за спиной, всегда делает это в глаза. Беспокоит, что он уже большой пятилетний мальчик, должен понимать, что ...

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

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



Архив новостей



» Каким должен быть код интернет-страниц? Читабельность vs размер. Часть 2. PHP - Технологии и интернет
13-03-2010 | рубрика: Технологии и интернет | просмотров: 1581
В первой части статьи мы говорили про цветочки, т.е. про html код. А теперь давайте про ягодки – php код!

Допустим, вы пишете скрипт на php… и пишете его, не особо заботясь о читабельности. Да, вы пишете его по нескольку часов изо дня в день, наизусть ...
В первой части статьи мы говорили про цветочки, т.е. про html код. А теперь давайте про ягодки – php код!

Допустим, вы пишете скрипт на php… и пишете его, не особо заботясь о читабельности. Да, вы пишете его по нескольку часов изо дня в день, наизусть ...
помните, что означает тот или иной фрагмент, что означает та или иная переменная.
Но вот вы написали скрипт. И всё! А потом захотели его отредактировать. Например, ошибка в коде, которую вы раньше не заметили.
Вы открываете его и видите, например, такое:
if ($a==$b && ($c>=$d || $q!=$p)) {$s=w($a); echo 'Результат: '.x($s);}

Вы что-нибудь понимаете? Можете сказать, что делает этот фрагмент кода? В чём смысл? Конечно, нет! Но это только одна строка кода… а скрипт может занимать и 10, и 20, и 50 строк… и что тогда? Сидеть полдня и вспоминать, что значат переменные $a и $b и искать, где вы описали функции w() и x()?
Хорошо, а теперь взгляните на такой вот кусок кода:
if ($result==$znachenie && ($max>=$min || $otvet!=$error))
{
$OKresult=obrabotka($result); //Обработка результата
echo 'Результат: '.Preobr($OKresult); //Преобразование данных в понятный формат.
}


Согласитесь, в последнем коде даже не разбирающийся в программировании человек уже что-то понимает!
Хотя оптимизаторы сайтов, наверное, на меня сейчас накинутся с гневными ругательствами: мол, не к тому приучаю! Этак и страница будет весить, как слон! В результате и загрузка дольше, и трафик больше будет, да и вообще! Чем меньше размер – тем лучше!
В принципе они правы, ведь первый кусок кода весит 71 байт, а второй 223 байта…

Да, к сожалению, при арифметическом росте читабельности геометрически растёт вес страниц, но что поделаешь. Я специально проверял. Я удалил все лишние пробелы, переходы на новую строку и т.д. на одной их своих страниц. И страница уменьшилась в размере в 6, 7 раз! Это при условии, что я переменным не менял имена на более короткие в один-два символа, а так можно было бы уменьшить размер в 10 или более раз!

Впечатляет? И зачем же такие жертвы, спросите вы? Если вы хоть раз писали длинный скрипт, то вы меня, наверное, поймете. Если же нет, то сейчас объясню.
Представьте, вы пишете скрипт. Пишете именно как в первом варианте – с непонятными именами переменных, максимально сокращая вес страниц, не делая ни одного лишнего пробела, и пишете всё чуть ли не в одну строчку. Да, во время написания вы помните, где и в каком месте у вас что записано, какая переменная что означает. И вот вы написали…

А через пару месяцев вы хотите исправить скрипт… и что вы видите?! Вы уже не вспомните, что означает та или иная переменная, что означает тот или иной кусок кода. Более того, не видно, где начинаются и где заканчиваются циклы, условия и т.д. И поверьте, вам придётся потратить минимум полчаса на то, чтобы разобраться в своём же скрипте! А если скрипт большой и сложный, а вы не профессионал – минимум часа полтора! А изменения вы, может, успеете и за 10 минут внести!

Вам хочется каждый раз тратить столько времени на «вспоминание» того, что, где и когда вы написали, как это всё работает, что это означает и что со всем этим делать? Если да – то пожалуйста, пишите всё, как хочется. А если нет, называйте переменные «по-человечьи»! И не стесняйтесь комментариев, они пока ещё не принесли никому такого катастрофического вреда, чтобы от них избавляться. Поверьте, когда где-то в шестиста строках нечитабельного php кода есть «не явная» ошибка (т.е. когда в целом всё работает, но не всегда так, как нужно), то поиск подобной ошибки превращается в многочасовой ад!
Помните поговорку: «скупой платит дважды»? Как ни удивительно, но для сайтостроения она тоже применима! Поленившись потратить 20-30 минут на то, чтобы сделать код читабельным, вы каждый раз при редактировании будете тратить эти же 20-30 (если не больше) минут только на то, чтобы разобраться в коде.

А сейчас хочу вас немного предостеречь. Я иногда вижу и варианты, подобные этим:
if ( $resultata_rabotu==$znachenie_iz_bufera_obmena && ( $maximal_chislo_polsovatela>=$minimum_chislo_reshenia || $otvet_vychislenia_vurashenia!=$error_vo_vrema_rassgeta ) ) //Проверка условия такого-то в зависимости от того-то и при тех-то обстоятельствах.
{
$good_resultat_rabory = obrabotka_resyltata_vyshiskenia($resultata_rabotu ); //Функция обработки результата, которая сначала делает то-то, а потом вот это и ещё это.
echo 'Результат: '.Preobrazovanie_resultata_v_drygoi_format( $good_resultat_rabory ); //Функция преобразования данных в понятный формат, которая преобразует данные из такого-то формата в такой-то для лучшего понимания результата человеком.
}


Ну всё хорошо, но в меру! Ведь комментарии – это не сочинения-рассуждения, а имена переменных – это имена, а не словосочетания. Не нужно излишеств, старайтесь писать понятно, но не нужно комментировать совершенно очевидные вещи и писать километровые имена переменных. Это слишком!

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

Конечно, все люди разные и кому-то, чтобы понять принцип работы того или иного скрипта, комментарии вообще не нужны – он и так всё понимает, а кому-то без них не обойтись! Всё относительно. Конечно, нет никаких особых критериев того, как писать код. Пишите код так, чтобы вы сами его поняли и разобрались в нём довольно быстро, а не так: «работает, и вес маленький, а то, что ничего не понятно и всё в одну строчку… ну так издержки производства!». Это заранее провальный подход, вы в результате проиграете больше, чем выиграли – ведь скупой платит дважды!



Опрос
Оцените работу сайта

Полезный сайт
Неплохой сайт
Сойдет... но...
Видел и получше
Не понравился


Яндекс.Новости
» Fatal Error
Fatal Error: could not open XML input (http://news.yandex.ru/index.rss)



Главная страница  | Обратная связь
© 2006 - Digest-News.ru, все права защищены. Design by DLETemplates.
© 2006 - 2010 SoftNews Media Group All Rights Reserved, Powered by DataLife Engine.