» » Яким повинен бути код інтернет-сторінок? Читабельність vs розмір. Частина 2. PHP

Яким повинен бути код інтернет-сторінок? Читабельність vs розмір. Частина 2. PHP

Фото - Яким повинен бути код інтернет-сторінок? Читабельність vs розмір. Частина 2. PHP

В першій частині статті ми говорили про квіточки, тобто про html код. А тепер давайте про ягідки - php код!

Припустимо, ви пишете скрипт на php ... і пишете його, не особливо дбаючи про читабельність. Так, ви пишете його по кілька годин з дня на день, напам'ять пам'ятаєте, що означає той чи інший фрагмент, що означає та чи інша змінна.

Але от ви написали скрипт. І все! А потім захотіли його відредагувати. Наприклад, помилка в коді, яку ви раніше не помітили.

Ви відкриваєте його і бачите, наприклад, таке:

if ($ a == $ b ($ Cgt; = $ d || $ q! = $ P)) {$ s = w ($ a) - echo 'Результат:' .x ($ s) -}

Ви що-небудь розумієте? Можете сказати, що робить цей фрагмент коду? У чому сенс? Звичайно, ні! Але це тільки один рядок коду ... а скрипт може займати і 10, і 20, і 50 рядків ... і що тоді? Сидіти півдня і згадувати, що означають змінні $ a і $ b і шукати, де ви описали функції w () і x ()?

Добре, а тепер погляньте на такий ось шматок коду:

if ($ result == $ znachenie ($ Maxgt; = $ 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_polsovatelagt; = $ 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) - // Функція перетворення даних в зрозумілий формат, що перетворить дані з такого-то формату в такий-то для кращого розуміння результату людиною.

}

Ну все добре, але в міру! Адже коментарі - це не твору-міркування, а імена змінних - це імена, а не словосполучення. Не потрібно надмірностей, намагайтеся писати зрозуміло, але не потрібно коментувати абсолютно очевидні речі і писати кілометрові імена змінних. Це занадто!

Отже, підіб'ємо підсумок. Ні в якому разі не потрібно гнатися за мінімальною вагою сторінки, борючись за кожен байт на шкоду читабельності коду. Внутрішній код повинен бути таким, щоб у ньому при бажанні можна було легко і швидко розібратися! Але й не варто писати і розписувати кожну дрібницю.

Звичайно, всі люди різні і комусь, щоб зрозуміти принцип роботи того чи іншого скрипта, коментарі взагалі не потрібні - він і так все розуміє, а комусь без них не обійтися! Все відносно. Звичайно, немає ніяких особливих критеріїв того, як писати код. Пишіть код так, щоб ви самі його зрозуміли і розібралися в ньому досить швидко, а не так: «працює, і вага маленький, а те, що нічого не зрозуміло і все в одну строчку ... ну так витрати виробництва!». Це заздалегідь провальний підхід, ви в результаті програєте більше, ніж виграли - адже скупий платить двічі!