Гнучкість для вас - це гнучкість для них, як правило. Усі ці найкращі практики, яких ви дотримуєтесь, - це виграші з обох сторін програми.
Одним з найважливіших та часто пропущених моментів є написання надійного інтерфейсу користувача. Занадто багато компонентів користувальницького інтерфейсу надмірно прив’язані до одного контексту або надто вимогливого набору HTML, і CSS налаштовано на збій.
Наприклад, якщо у вас є спадне місце, то набагато менше роботи JS прив’язати компонент, що випадає з абсолютним розміщенням у відносно встановленому (не потрібні координати) клацнутому контейнері, ніж витягнути молоток JQuery і отримати координати, щоб його навести поверх елемента і просто приклейте його на місце. Також набагато менше шансів зламатись у випадках, коли сторінка зміщується або якась нова функція браузера скидає інформацію про позиціонування. Чим більше ви покладаєтесь на навички HTML / CSS, щоб уникнути роботи JS, тим більш надійним буде ваш інтерфейс.
Як правило, я намагаюся переконатися, що єдине, в чому потрібні мої компоненти інтерфейсу, - це тег HTML для проживання з відповідним ідентифікатором чи класом. Чим більше ви можете зробити з цим контейнером, без того, щоб інтерфейс інтерфейсу всередині був розбитий або з контейнером фактично розміщувався, як розширення / скорочення, щоб відповідати зміні розмірів контейнера, тим більше це можна легко реалізувати в будь-якій частині програми, не потребуючи клієнта. експерт. Все, що їм потрібно зробити - це наклеїти на нього клас.
Віддайте перевагу делегуванню подій на контейнерах інтерфейсу, щоб призначити слухачам безпосередньо вузли кінцевих точок, як кнопки. Цей компонент інтерфейсу може працювати зі статичним HTML зараз, але ви ніколи не знаєте, коли хтось захоче мати змогу зірвати та переписати HTML всередині черезHTML чи щось подібне. Якщо контейнер недоторканий і всі події делеговані (див. Метод jquery 'on'), вам не доведеться про це турбуватися, і вони ніколи не дізнаються важкий спосіб, що заміна HTML ламає слухачів.
В інтересах збереження делегації як опції не використовуйте stopPropagate ніде, окрім вузлів кінцевої точки, і не надсилайте ненависні листи розробникам ідіотських фреймворків, які розсипають її всюди.
Що стосується макета, то зберігайте HTML мінімально, семантично та уникайте обгортки для ділів. Чим менше HTML, тим простішими проблемами компонування є діагностика новобранців.
Використовуйте назви класів, що роз'яснюються, для утиліти CSS. Клас "рядок", ймовірно, буде більш зрозумілим для нобіїв CSS, ніж "clearfix".
Завжди надайте унікальні секційні елементи, унікальні ідентифікатори. Це набагато простіше визначити, де відбувається матеріал, специфічний для певного розділу, легше переосмислити речі, а також може бути розбірливість та виграш у JS.
Очевидно, що погана новина стає надмірною за допомогою класової схеми, але чим більше "back-dev" може встановити просто додавання правильних класів до речей, тим простіше буде робити зміни на існуючій сторінці.
І звичайно, на початку проекту змушуйте їх погодитися хоча б з цим одним: задній і передній кінці з'єднуються лише через HTML та JSON. Не дозволяйте їм використовувати те, що "пише JavaScript для вас!" Це кривавий безлад і кошмар на підтримку.
Як і у всьому, що стосується розвитку, віддайте перевагу DRY та мінімалізму.