Користувальницькькі налаштування

Налаштування сайту


codingguidelines

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
codingguidelines [2023/08/01 11:39]
nightfly [Документування змін]
codingguidelines [2024/11/23 14:23] (поточний)
nightfly
Рядок 61: Рядок 61:
 ==== PHP-теги ==== ==== PHP-теги ====
  
-PHP-код обов'язково слід розміщувати в повній версії (<?php ?>) тегів або в скороченій (скорочений запис echo) версію (<?= ?>) тегів і неприпустимо поміщати в жодні інші різновиди тегів типу (типу <%).+PHP-код обов'язково слід розміщувати в повній версії (<?php ?>) тегів або в скороченій (скорочений запис echo) версію (<?= ?>) тегів і неприпустимо поміщати в жодні інші різновиди тегів типу (типу <%). Закриваючий тег (?>) можна пропускати.
  
  
Рядок 88: Рядок 88:
 Щодо скорочених AND (&&) OR (||) все залишається на вашій совісті, але загалом економія одного байта у випадку AND та економія нуля байт у випадку OR може не коштувати погіршення читабельності та самоочевидності вашого коду.  Щодо скорочених AND (&&) OR (||) все залишається на вашій совісті, але загалом економія одного байта у випадку AND та економія нуля байт у випадку OR може не коштувати погіршення читабельності та самоочевидності вашого коду. 
  
-На тему табів, відступів та іншого - більшість розробників використовує IDE NetBeans і рефлекторно натискає **Alt+Shift+F** для автоматичного форматування коду.+На тему табів, відступів та іншого - більшість розробників використовує IDE NetBeans та Visual Studio Code і рефлекторно натискає **Alt+Shift+F** для автоматичного форматування коду.
  
 ==== Іменування змінних та констант ==== ==== Іменування змінних та констант ====
Рядок 124: Рядок 124:
 </code> </code>
  
-Винятком для односкладового і простого іменування змінних є загальноприйняті і містечково прийняті імена змінних для типових операцій, які використовуються у нас здебільшого під час перебору масивів. Прикладами таких допустимих змінних можуть бути:+Винятком для однобуквового і простого іменування змінних є загальноприйняті та місцево прийняті імена змінних для типових операцій, які використовуються у нас здебільшого під час перебору масивів. Прикладами таких допустимих змінних можуть бути:
  
 <code php> <code php>
Рядок 145: Рядок 145:
 } }
 </code> </code>
 +
 +А ось взагалі дуже [[https://www.youtube.com/watch?v=-J3wNP6u5YU|чудове та пізнавальне відео]] про те як іменувати штуки в коді.
  
 ==== Іменування класів та об'єктів ==== ==== Іменування класів та об'єктів ====
Рядок 258: Рядок 260:
 **Щодо збереження легасі на рівні передбачуваності поведінки системи**: якщо ви робите функціонал, який змінює поведінку системи за замовчуванням, пам'ятайте, що робите ви його передусім не для себе, а для купи мереж, які сподіваються, що після оновлення поведінка їхньої системи буде передбачуваною та звичною, а дівчатка-касирки не почнуть писати заяви про звільнення паралельно з системними адміністраторами, які викидаються з вікон. Якщо для реалізації запланованого вами функціоналу потрібно змінити поведінку системи, цей функціонал потрібно вимкнути за допомогою файлів конфігурації та відключити за замовчуванням. Погодьтеся, ви не будете радіти тому, що після оновлення під час спроби потрапити до профілю користувача, ви замість нього побачите фотку цицьок, нехай навіть дуже гарних. Кожного разу, коли вам хочеться зробити "для всіх" щось, що здається вам дуже крутим, подивіться для [[http://stats.ubilling.net.ua/graph/|скількох]] мереж ви хочете зробити життя "веселішим" і адекватно оцініть шанси на потрапляння цього в мейнстрім. **Щодо збереження легасі на рівні передбачуваності поведінки системи**: якщо ви робите функціонал, який змінює поведінку системи за замовчуванням, пам'ятайте, що робите ви його передусім не для себе, а для купи мереж, які сподіваються, що після оновлення поведінка їхньої системи буде передбачуваною та звичною, а дівчатка-касирки не почнуть писати заяви про звільнення паралельно з системними адміністраторами, які викидаються з вікон. Якщо для реалізації запланованого вами функціоналу потрібно змінити поведінку системи, цей функціонал потрібно вимкнути за допомогою файлів конфігурації та відключити за замовчуванням. Погодьтеся, ви не будете радіти тому, що після оновлення під час спроби потрапити до профілю користувача, ви замість нього побачите фотку цицьок, нехай навіть дуже гарних. Кожного разу, коли вам хочеться зробити "для всіх" щось, що здається вам дуже крутим, подивіться для [[http://stats.ubilling.net.ua/graph/|скількох]] мереж ви хочете зробити життя "веселішим" і адекватно оцініть шанси на потрапляння цього в мейнстрім.
  
-**З приводу збереження легасі на рівні коду**: на даний момент, ми змушені підтримувати працездатність Ubilling від PHP 5.3 до PHP 7.4 та PHP 8.2 (так, це можливо і зовсім не складно), через велику кількість старих установок, які міняти та перевстановлювати на проді, ніхто не буде, так як вони успішно працюють роками. Тому утримайтеся як від використання нового синтаксису масивів із квадратними брекетами у вигляді +**З приводу збереження легасі на рівні коду**: на даний момент, ми змушені підтримувати працездатність Ubilling від PHP 5.3 до PHP 7.4 та PHP 8.2 з PHP 8.3 (так, це можливо і зовсім не складно), через велику кількість старих установок, які міняти та перевстановлювати на проді, ніхто не буде, так як вони успішно працюють роками. Тому утримайтеся як від використання нового синтаксису масивів із квадратними брекетами у вигляді 
  
 <code php> <code php>
Рядок 472: Рядок 474:
   - Робить неочевидні сторонній людині штуки   - Робить неочевидні сторонній людині штуки
  
-Не обов'язково писати покроковий мануал з картинками для домогосподарок. Ми сподіваємося, що нашим продуктом користуватимуться мінімально профпридатні системні адміністратори провайдерів (ну хоча б у майбутньому). Тому документацію ви пишете насамперед для себе - це дасть змогу в майбутньому вам без проблем самим же використовувати написаний вами функціонал, а також позбавить головного болю з підтримкою інших користувачів, які хочуть його використовувати, та заощадить ваш же час. Тикнути посиланням у документацію - завжди швидше і простіше.+Не обов'язково писати покроковий мануал з картинками для домогосподарок. Ми сподіваємося, що нашим продуктом користуватимуться мінімально профпридатні системні адміністратори провайдерів (ну хоча б у майбутньому). Тому документацію ви пишете насамперед для себе - це дасть змогу в майбутньому вам без проблем самим же використовувати написаний вами функціонал, а також позбавить головного болю з підтримкою інших користувачів, які хочуть його використовувати, та заощадить ваш же час. Тикнути посиланням у документацію - завжди швидше і простіше ніж щоразу на пальцях пояснювати кожному "що" і "як?".
  
 ==== Великодки, відсилки та інший фансервіс ==== ==== Великодки, відсилки та інший фансервіс ====
Рядок 484: Рядок 486:
 ==== Контрибуція в Ubilling ==== ==== Контрибуція в Ubilling ====
  
-Будь ласка, якщо ви хочете зробити свій внесок у розвиток проекту, робіть нормальні пуллреквести. Ніхто не хоче і не буде витрачати свій особистий час на построкове і побайтовое вивчення (ми це називаємо "очний diff") вашої писанини, надісланої на пошту, месенджери або розкиданої по форумах і пейстбінах.+Будь ласка, якщо ви хочете зробити свій внесок у розвиток проекту, робіть нормальні пуллреквести. Ніхто не хоче і не буде витрачати свій особистий час на порядкове і побайтовое вивчення (ми це називаємо "очний diff") вашої писанини, надісланої на пошту, месенджери або розкиданої по форумах і пейстбінах.
  
 ==== Оформлення Пуллреквестів ==== ==== Оформлення Пуллреквестів ====
Рядок 511: Рядок 513:
 {{ :faq-pr-create-pr.png?500 |}} {{ :faq-pr-create-pr.png?500 |}}
  
-Після створення пулреквесту - [[https://github.com/nightflyza/Ubilling|Github]] визначить, чи є конфлікт з офіційним кодом чи ні. Якщо конфлікту немає, то просто чекаємо поки його зморжать. Якщо конфлікт є - закриваємо пулреквест і робимо всі зміни по новій, тільки так, щоб не вийшли знову конфлікти.  +Після створення пулреквесту - [[https://github.com/nightflyza/Ubilling|Github]] визначить, чи є конфлікт з офіційним кодом чи ні. Якщо конфлікту немає, то просто чекаємо поки його змерджать. Якщо конфлікт є - закриваємо пулреквест і робимо всі зміни по новій, тільки так, щоб не вийшли знову конфлікти.  
-Чекаємо, поки мейнтейнер усе смердить. +Чекаємо, поки мейнтейнер усе змерджить. 
 Головне, щоб ваші коміти не перетиналися з його змінами, інакше тоді доведеться все заново робити. Головне, щоб ваші коміти не перетиналися з його змінами, інакше тоді доведеться все заново робити.
  
-Далі повертаємося в гілку master офіційного проєкту й оновлюємо вже змерзлий код:+Далі повертаємося в гілку master офіційного проєкту й оновлюємо вже змерджений код:
 <code bash> <code bash>
 git checkout master git checkout master
codingguidelines.1690879186.txt.gz · Востаннє змінено: 2023/08/01 11:39 повз nightfly