10 Правил php-майстрів

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

Нам потрібні PHP-майстри, щоб показати найкращі правила висококласного програмування в PHP.

1. Користуйтеся PHP тільки тоді, коли це потрібно - Расмус Лердорф (Rasmus Lerdorf)

10 Правил php-майстрів

Фреймворк YII2. Швидка розробка з сучасним PHP фреймворком

Дізнайся тонкощі сучасної веб-розробки за допомогою фреймворка YII2

І все ж ви не можете скористатися PHP для всього на світі. Лердорф першим відзначив, що PHP насправді просто ще один інструмент в арсеналі розробника, і навіть у PHP є обмеження.

Для роботи користуйтеся правильним інструментом. Я зустрічав компанії, які цілком уповали на PHP, вживаючи його на кожному кроці, хоча він ніколи не був призначений для того, щоб бути мовою загального призначення, відповідним для будь-якої проблеми. Він найбільш прийнятний як зовнішній скриптова мова для Web.

Ви намагаєтесь отримати доступ PHP для чого завгодно непродуктивна, і, без сумніву, це не найкращий спосіб використання вашого часу як веб-девелопера. Не бійтеся застосовувати інші мови, якщо PHP для вашого проекту не підходить.

10 Правил php-майстрів

2. Використовуйте безліч таблиць в PHP і mySQL для масштабованості - Метт Малленвег (Matt Mullenweg)

Немає потреби сумніватися в компетентності Метта Малленвега в PHP. Він (разом зі спільнотою користувачів) розробив найпопулярнішу блогових систему на світлі: WordPress. Після створення WordPress'а Метт і компанія запустили зоряний WordPress.com, безкоштовний блогових сайт, заснований на платфоми WordPress MU для декількох блогів. В даний момент WordPress.com підтримує більше 4 мільйонів блогів, а їх користувачі сьогодні написали понад 140 000 постів.

Ми тестували такий підхід для MU, і виявили, що масштабування стає занадто дорогим, починаючи з деякого моменту. З монолітними структурами ви впираєтеся в стіну, побудовану з можливостей обладнання. В MU користувачі розмежовані і можуть бути легко розділені, наприклад, на WordPress.com користувачі розподіляються по 4096 баз даних, що дозволяє дуже легко і раціонально масштабувати сотні тисяч і навіть мільйони користувачів, забезпечуючи екстремально високий рівень трафіку.

Можливість міграції таблиць дозволяє коду і, в кінцевому підсумку, блогам набагато швидше запускатися і простіше масштабироваться. Поєднавши інтенсивне кешування і елегантне використання баз даних, Метт показав, що надзвичайно популярні сайти на кшталт Facebook та WordPress.com можуть працювати тільки на PHP і обробляти неймовірна кількість трафіку.

10 Правил php-майстрів

3. Ніколи-ніколи не довіряйте своїм користувачам - Дейв Чайлд (Dave Child)

Дейв пропонує мудру пораду з приводу написання безпечного коду в PHP: Не довіряйте своїм користувачам. Вони можуть вас засмутити.

Дейв продовжує давати особливі приклади здійснення безпеки на практиці в частинах один, два і три своїй серії публікацій 'Написання безпечного PHP'. А його остаточний вердикт звучить так:

Зрештою, будьте цілком і повністю параноїком.
Якщо ви припускаєте, що ваш сайт ніколи не піддасться атаці або не зіткнеться з будь-якою іншою проблемою, то коли щось раптом піде не так, у вас виникнуть ґрунтовні труднощі. Якщо, з іншого боку, ви вважаєте, що кожен відвідувач сайту збирається вас дістати, і ви постійно перебуваєте в стані війни, це допоможе підтримувати сайт в безпеці і бути в повній готовності на випадок, якщо справи підуть погано.

10 Правил php-майстрів

4. Приділіть увагу PHP-кешуванню - Бен Больба (Ben Balbo)

Бен Больба писав для Site Point, дуже шанованого сайту-підручника для нашого брата - розробника і дизайнера. Він складається в комісії як Мельбурнській групи користувачів PHP, так і Клубу розробників проектів з відкритим вихідним кодом, так що він дещо знає про мову. Тож не дивно, що спираючись на своє минуле як розробника PHP і інструктора, він рекомендує приділити трохи більше уваги і підготовки PHP-кешуванню.

Якщо у вас завантажений і переважно статичний веб-сайт - такий як блог - яким завідує система управління контентом, кешування, можливо, зажадає невеликих переробок, проте дозволить отримати значне поліпшення продуктивності, з невеликими витратами вашого часу. Організація кешування для більш складного сайту, який формує контент для кожного користувача, такого як портал або електронний магазин, виявиться трохи складніше і потребує часу, але вигода від нього очевидна.

У PHP існує безліч технік кешування і Бен зачіпає в статті кілька найбільших, таких як:

Кешування викликів функцій

Установка заголовків expiry

Кешування закачування файлів в IE (Internet Explorer)

і багато іншого. Через динамічного характеру мов типу PHP кешування є вирішальним фактором продуктивності, забезпечуючи зберігання тих частин сторінки, до яких здійснюється постійний доступ і які часто не змінюються.

10 Правил php-майстрів

5. Прискорюйте розробку PHP за допомогою IDE, шаблонів і фрагментів - Чед Кіффер (Chad Kieffer)

Коли Чед Кіффер чи не зайнятий поліпшенням користувальницьких інтерфейсів і управлінням базами даних, він дає поради експерта в своєму блозі 2 tablespoons. Через своїх широких можливостей і професійного досвіду, Чед часто може бачити загальну картину, яку інші програмісти можуть і не розгледіти, особливо коли справа стосується цілісного підходу, яким користується Чед в розробці вебсайтів. Він фахівець у всіх аспектах процесу розробки, так що будь-яка здатність проникати в суть, якої він ділиться, може виявитися корисною в процесі складання проекту в одне ціле.

Чед вважає, що використання IDE на зразок Eclipse PDT (пакета для розробки на PHP в Eclipse) з сумішшю шаблонів і фрагментів дійсно може прискорити цикл розробки в проекті.

Переповнені графіки, довгі списки необхідних справ і дедлайни ускладнюють розробникам завдання ознайомлення з деякими просунутими можливостями, якими володіють їх інструменти. Нехай вам буде за це соромно, бо деякі особливості, такі як шаблони Eclipse, дійсно можуть скоротити час кодування і зменшити помилки.

Здоровий глузд говорить, що кожен раз, коли можна автоматизувати завдання, можливо побачити проект готовим швидше. Те ж вірно по відношенню до теорії Дена. Витративши час на створення шаблонів, які можна використовувати знову і знову, ви заощадите купу часу, автоматизувавши повторювані частини коду.

(У Чеда є відмінний підручник про початок роботи з Eclipse PDT і переваги IDE в загальному, якщо цікавить.)

10 Правил php-майстрів

10 Правил php-майстрів

Фреймворк YII2. Швидка розробка з сучасним PHP фреймворком

Дізнайся тонкощі сучасної веб-розробки за допомогою фреймворка YII2

6. Поліпшуйте функції фільтрування PHP - Джоуї сочек (Joey Sochacki)

Так як Джоуї сочек, можливо, не таке велике ім'я, як Метт Малленвег (Matt Mullenweg) в співтоваристві PHP, він бувалий веб-розробник і ділиться з нами радами, почерпнутими на цьому шляху, в своєму блозі Devolio.

Джоуї виявив, що хоча при написанні коду PHP повинна проводитися купа фільтрації, мало хто програмісти користуються функціями фільтрації PHP.

Фільтрація може бути заплутаною, але це керівництво здатне дуже допомогти. За допомогою Джоуї ви дізнаєтеся, як встановити фільтри і просівати практично всі, користуючись перевагами можливостей фільтрації надаються PHP.

10 Правил php-майстрів

7. Користуйтеся фреймворком PHP - Джош Шарп (Josh Sharp)

З приводу того, чи використовувати фреймворк PHP типу Zend, CakePHP, Code Igniter, або будь-який інший, сперечалися завжди. У його використанні є свої позитивні і негативні аспекти, і багато розробників мають власну думку про те, йти цим шляхом чи ні.

Джош Шарп - веб-розробник, який заробляє собі на хліб з маслом, створюючи вебсайти для клієнтів. Ось чому ви повинні йому вірити, коли він говорить, що використання фреймворка PHP - відмінний спосіб заощадити час і усунути помилки під час програмування. Чому? Джош вважає, тому, що PHP дуже легко вивчити.

Але легкість використання PHP також веде до краху. Через меншої кількості обмежень в структурі коду, набагато легше написати поганий код. Але для цієї проблеми є рішення: використовуйте фреймворк.

Фреймворки PHP допомагають стандартизувати то, як ви програмуєте, і можуть зберегти велику кількість часу в процесі розробки. Про перевагу використання фреймворка PHP можна прочитати більше в блозі Джоша.

10 Правил php-майстрів

8. Не користуйтеся фреймворком PHP - Расмус Лердорф (Rasmus Lerdorf)

На противагу думці Джоша про те, що потрібно використовувати фреймворк PHP, Расмус Лердорф, сам хрещений батько PHP, вважає, що фреймворки не так вже хороші. Чому? Тому що вони виконують операції набагато повільніше, ніж простий PHP.

10 Правил php-майстрів

9. Використовуйте пакетну обробку даних - Джек Д. Херрингтон (Jack D. Herrington)

Херрингтон рекомендує використовувати пакетну обробку даних і cron (прим. Перекл. - планувальник завдань), для складних завдань, які можуть оброблятися в фоновому режимі. Користувачі мережі не бажають довго чекати завершення завдань через веб-інтерфейс. Робота, яка займає багато часу, більше підходить для виконання у фоновому режимі.

Природно, в ряді випадків трохи легше запустити допоміжний потік для обробки невеликих завдань. Але легко помітити, що при використанні традиційних інструментів - cron, MySQL, стандартний об'єктно-орієнтована PHP і Pear :: DB - пакетні завдання в додатках PHP просто створювати, легко розгортати і нескладно супроводжувати.

Джек вірить в простоту і, замість використання організації потокової обробки на серверах, користується простий комбінацією крона, PHP і MySQL для обробки завдань у фоновому режимі.

Я пробував все і вважаю, що крон має перевагу принципу "Keep It Simple, Stupid" (KISS) ( «Роби все просто, придурок»). Він робить фонову обробку простий. Замість многопоточного додатки обробки завдань, яке виконується постійно і, таким чином, не повинно мати витоків пам'яті, у вас є простий скрипт пакетної обробки даних, який запускає крон. Скрипт визначає, чи є щось, що потрібно зробити, робить це і потім завершує роботу. Не потрібно хвилюватися про витоки пам'яті. Не потрібно хвилюватися про «захлебиванія» (stalling) потоків або можливості попадання в нескінченний цикл.

10 Правил php-майстрів

10. Негайно ввімкніть оповіщення про помилки - Девід Каммінгс (David Cummings)

Девід Каммінгс управляє власною софтової компанією, яка спеціалізується на системах управління контентом і виграла кілька премій. Якщо хто і знає, як раціонально розробити додаток PHP, так це Дейв.

Девід написав статтю на SitePoint про двох хитрощі PHP, які він хотів би знати на самому початку. Одна з них: Негайно ввімкніть оповіщення про помилки. Це заощадить багато часу за тривалий період.

Єдина найважливіша річ, про яку я говорю людям, які використовують PHP, це включити оповіщення про помилки на максимальний рівень. Чому я хотів би це зробити? Як правило, оповіщення помилки встановлено на рівень, який приховує безліч дрібниць, таких як:

Звернення до змінної, недоступною в цьому сегменті коду, або

Використання визначення, яке не було встановлено

Ці чинники могли б не здатися такими вже важливими - до тих пір, поки ви розробляєте структуровані або об'єктно-орієнтовані програми з функціями і класами. Занадто часто написання коду без оповіщення про помилки, включеного на максимальний рівень, буде коштувати вам годин налагодження довгих функцій, які не працюють через те, що змінна написана з орфографічною помилкою або недоступна.

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

10 Правил php-майстрів

Переклад і редакція: Ріг Віктор і Андрій Бернацький. Команда webformyself.

10 Правил php-майстрів

Фреймворк YII2. Швидка розробка з сучасним PHP фреймворком

Дізнайся тонкощі сучасної веб-розробки за допомогою фреймворка YII2

Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі

10 Правил php-майстрів

Схожі статті