Технології
Ми створюємо веб-сайти та додатки з використанням PHP-фреймворків, Java, C#, Python, понад 7 років. Ми знаємо, як виконати проєкт без порушення існуючих бізнес-процесів.
Типовий склад: проєктний менеджер, аналітик, технічний письменник, 2-3 розробники, артдиректор + дизайнер та 1-2 QA-фахівці.
Project Manager— центральна ланка проєкту: все пам'ятає, за все відповідає та залишається з вами під час подальшого розвитку проєкту.
Як завжди, все це підтримується топменеджментом: технічним директором та акаунт-директором.
Бізнес-аналіз:
Визначаємо цілі та завдання бізнес-клієнтів, виявляємо проблемні точки клієнтів. Проводимо серію інтерв'ю, формуємо бачення проєкту та високорівневий план розробки.
Конкурентний аналіз та бенчмаркінг є ключовими частинами дослідження: оцінюємо сильні та слабкі сторони досліджуваної системи та розробляємо рекомендації щодо її стратегії розвитку.
Аналіз користувачів:
Визначаємо цільову аудиторію, виділяємо пріоритетні сегменти. Збираємо вимоги користувачів та аналізуємо їхні проблемні точки за допомогою глибинних інтерв'ю та опитувань.
Аналізуємо системи веб-аналітики та технічний стан сайту на наявність помилок інтерфейсу та функціональності, складаємо перелік рекомендацій.
Проводимо інтерв'ю з робочою групою клієнта, збираємо бріфи та комунікуємо з IT-відділом клієнта.
На основі цієї роботи ми розробляємоТехнічне завдання: документ, який використовуватиметься для розробки веб-сайту. Також створюємо візуалізації — малюємо інтерактивні прототипи майбутнього веб-сайту.
Пишемо окремий документ: програму та методику випробувань. Він використовується для здачі системи. Також створюємо автоматизовані тести (Selenium), а потім використовуємо Allure для візуальних звітів про їх виконання.
Навантажувальне тестування проводиться на сервері Клієнта та інших сервісах.
Після здачі ми підтримуємо проєкт, використовуючи Jenkins для безперервної інтеграції та GIT для контролю версій.
Під час написання технічного завдання ми створюємо структурну схему сайту з залежностями: це дозволяє поетапно програмувати та паралельно ставити завдання розробникам.
Використовуючи систему контролю версій, кілька розробників можуть працювати над проєктом одночасно, а їхні зміни легко відстежуються. Ця ж технологія застосовується і в подальшій підтримці веб-сайту.
Під час здачі проєкту ми використовуємо як автоматизоване, так і ручне тестування для охоплення всіх сценаріїв.
Дотримуючись внутрішніх стандартів, ми підтримуємо високу якість продукту.
Саме тому ми надаємо довічну гарантію на наш код. Крім того, наші проєкти не були зламані та не зазнавали витоків даних за всі 7 років нашої роботи.
Нижче наведено деякі (частково) положення з наших внутрішніх документів.
Завжди надавайте оцінки для завдань
Якщо завдання вже має оцінку від іншого розробника, переоцініть його, якщо ви не згодні з нею
Якщо ви працюєте над завданням з чужою оцінкою, ви погоджуєтеся з нею.
Розробка ведеться суворо в нашому gitlab
Щодня комітьте та пуште результати роботи в репозиторій. Не повинно бути ситуацій, коли ви втрачаєте кілька днів роботи через такі причини, як «зламався комп'ютер», «переїжджав і забув скопіювати» тощо.
Надсилайте мердж-реквести тімліду або старшому фронтенд- розробнику на рев'ю.
Chrome, Firefox, Safari, Edge
Точні версії браузерів, а також додаткові версії, слід запитувати у менеджера перед виконанням завдання, якщо вони не вказані в технічному завданні.
За замовчуванням має бути забезпечена підтримка двох останніх версій браузерів.
Сайт має бути адаптивним
Логотипи мають бути у форматі SVG
На продакшн та тестових середовищах: звичайні зображення повинні мати webp-версії, а їхній розмір має відповідати контейнеру (тег picture)
Усі посилання повинні реагувати на :hover, :active та :focus
При створенні статичних сторінок (наприклад, деталі Новин) більшість статичних елементів повинні бути стилізовані. Приклад: посилання, списки ul/ol, таблиці, заголовки.
При створенні статичних сторінок зображення не повинні бути примусово розтягнуті на всю ширину. Додайте стилі до img: max-width: 100%, display: block, margin: 0 auto, padding: 10px, щоб зображення зберігали свій природний розмір, але не перевищували розмір контейнера статичної сторінки.
Зміна розміру textarea не повинна ламати верстку
Футер повинен «прилипати» до нижньої частини браузера, коли немає контенту або його дуже мало
Пагінація слайдера не повинна ламатися, коли багато слайдів. Вона повинна рухатися або переходити вбік. Уточніть у менеджера та дизайнера, як це має бути для поточного проєкту
Валідація форм повинна працювати
Поле телефону повинно використовувати маску
Кнопка «submit» форми повинна бути заблокована при першому кліку, щоб уникнути множинних відправок. Вона повинна бути розблокована після отримання відповіді від сервера.
Виводити повідомлення про успішну/невдалу відправку форми
Усі елементи інтерфейсу, які оновлюють свої дані без перезавантаження сторінки, повинні мати прелоадер
Усі списки (Заявки, користувачі тощо) повинні мати пагінацію. Якщо це SPA, API має надавати дані з урахуванням пагінації
При створенні живого фільтра (фільтра, що працює без натискання кнопки застосування) використовуйте переривання запиту
Інформація про збірку проєкту та складну функціональність повинна бути описана у файлі README.md проєкту
Створити попап на сайті, якщо в браузері клієнта вимкнені файли cookie. Це можна перевірити за допомогою JS через navigator.cookieEnabled. Повідомлення в попапі має бути таким: «Для коректної роботи сайту необхідно ввімкнути файли cookie в браузері.»
Код повинен бути написаний відповідно до конфігурації ESLint проєкту
Код повинен бути модульним. Назви модулів повинні відображати зміст контенту
Бібліотеки встановлюються через yarn
Для створення слайдерів використовуйте swiper
Якщо проєкт працює з API, адреси доменів повинні бути розміщені в змінних середовища. Файл .env.
Файл .env не повинен бути під git
Створіть файл .env.example зі списком необхідних змінних середовища. Змінні повинні мати опис
Відправка форм повинна працювати через FormData
БЕМ
Код повинен бути модульним. Назви модулів повинні відображати зміст контенту
Налаштування фільтра каталогу товарів повинні відображатися в URL з GET-параметрами
Верстка повинна проходити валідацію W3C
Семантична верстка. Як мінімум, title, description та заголовки h1.
Зображення повинні мати атрибути alt
Назви та значення атрибутів (class="detail-page", id="news-list", тощо) повинні бути в стилі kebab-case
/upload/ /upload /local/vendor/ /local/vendor /web.config /.htaccess /robots.txt /*.xml *.swp *.log *.zip *.tar *.rar *.gzЯкщо вся папка розміщена в .gitignore, але потрібно працювати з певним шаблоном, його можна повернути в git за допомогою: !templates/learning_10_0_0/
"54361-1 import elements to offers iblock"
Де 54361-1 - це номер завдання та номер пункту, розділені дефісом.Верифікація (перевірка) експлуатаційної документації від постачальника, спільноти на наявність інформації щодо підтримки та оновлень, включаючи виправлення вразливостей.
Для ідентифікації користувачів під час доступу кожному користувачеві повинен бути присвоєний унікальний персональний ідентифікатор.
Доступ користувачів повинен бути реалізований через парольну аутентифікацію.
Необхідно забезпечити захист зворотного зв'язку при введенні аутентифікаційної інформації.
Локальна політика паролів повинна відповідати таким вимогам:
політика складності паролів;
збереження історії паролів;
налаштування терміну дії паролів;
можливість змінити пароль при першому вході;
можливість користувачам самостійно змінювати свій пароль
Можливість інтеграції з системою керування ідентифікацією.
Авторизація користувачів для доступу повинна відбуватися лише після завершення процедур ідентифікації та аутентифікації.
Підтримка механізмів багатофакторної аутентифікації.
Керування доступом.
реєстрацію дати та часу спроб входу/виходу користувача з системи;
реєстрацію часу запуску/зупинки компонентів;
реєстрацію змін у привілеях користувачів;
реєстрацію змін конфігурації;
реєстрацію дій адміністратора;
реєстрацію дій користувачів
ми оцінимо витрати та надамо архітектурні рекомендації.