Привіт усім,
Я працюю над застосунком, використовуючи стандартний набір фронтенду: HTML, LESS, JS та трохи Node.js. Моя мета - повністю переписати існуючий застосунк з нуля для покращення його функціональності. Але я знову стикаюсь з первісною проблемою - код стає надто заплутаним, але тут вже нічого не зробиш, бо зі своїм досвідом я навряд чи зможу краще)
У цьому проекті ми не будемо використовувати жодні фреймворки, такі як Angular, React, Vue, Svelte та інші, тут цілком достатньо чистого JS. Знову ж таки, проект розробляється для мого особистого комфорту та зручності, а не для користувачів.
Трохи корисних посилань щоб мати уяву щодо обсягу роботи:
- на жаль, структура імпорту у фігму з XD працює на свій розсуд, тому наразі можу надати лише скрін залежностей. Виконавцю я передам файл XD, або якось подолаю цей невдалий імпорт;
- майже всі елементи, можливо, щось забув, але зараз це не важливо, тому що всі вони мають бути універсальними, а розмір не має значення. Тому потрібно створити універсальні компоненти, якими ми зможемо маніпулювати на зразок конструктора;
- посилання на наміток того, що потрібно вирішити для гарної роботи застосунку в цілому;
- невеличке відео, що все є та працює;
- дуже спрощена версія застосунку для цього ТЗ де дуже багато чого вирізано, тож працює як працює, але яку можна відкрити у браузері та поклацати, знову ж таки, щоб мати якесь уявлення;
- також пояснення до елементів;
- невеликий приклад, чого прагнемо, ось посилання на код щодо двох компонентів, якими ми і орудуватимемо всюди в додатку. Цей код можна ще більше скоротити, наприклад, застосувавши тернарні умовні оператори або переписавши його на ваш смак для поліпшення.
Друзі, будь ласка, якщо вважаєте за інакше, що треба все ж використовувати React, або Angular або щось ще - це добре, але мені не підходить, вважатимемо що чистий JS це є моя примха)
Щодо часу, може здатися, що у фігмі відображено великий проект, але я можу запевнити, що якщо вдало написати компоненти для інпутів та кнопок, то це становитиме 70% виконаного проекту. Налаштувати залежність один від одного - це лише питання часу, і я з радістю буду робите це разом з вами. Приблизний час виконання проекту - десь місяця-півтора)
У загальному контексті, процес переписування обмежиться внесенням лише тих нововведень, які були визначені заздалегідь або є критично важливими для функціональності. Я не планую розширювати обсяг проекту. Зазначу, що у прототипі не реалізовані деякі функції, як-от вспливаючі підказки, користувацькі налаштування або локалізація, тому кінцевий продукт може не завжди точно відображати первісну чернетку. Також вже є непогано закладений фундамент, у якому більшість рішень реалізовано, і відштовхуючись від якого можна швидше завершити проект. Переписано десь 25-30% коду.
Бекенд функціонує справно, і 95% його складових залишаться майже без змін, крім тих пунктів, в яких згаданий node.js. Однак, будуть здійснені деякі модифікації з посиланням на нову архітектуру застосунку.
Загалом мета: зробити набір компонентів (функцій), що перевикористовуються, які в свою чергу покращать читаність та полегшать подальше розширення програми без використання будь-яких фреймворків.