Привіт усім,
Я працюю над застосунком, яке включає стандартний фронтенд пак html, less, js та трохи node.js. Мета - переписати вже існуючий застосунок з нуля для досягнення його ідеальної роботи. Я вже заклав надійну основу з реалізованими механіками та книгозбірнями, але потрібна доробка та додавання нових функцій. Переважно наш фокус на користувацькому інтерфейсі.
Однак, я знову зіткнувся з тією ж проблемою, яка спочатку стала причиною для запуску цього проекту - код знову перетворюється в кашу. Немає потреби шукати нові рішення, тому що всі вони вже ефективно працюють у прототипі, наведу невеликий та дуже простий приклад: припустимо, потрібно уніфікувати однакові частини коду в одну функцію, по суті, переписування цього коду це одна велика боротьба з дублюванням.
Графік роботи має для мене дуже критичне значення. Виконавець бере на себе комісійні витрати за сейф, в разі успішного завершення проекту, ця різниця буде компенсована мною шляхом початкового збільшення суми проекту на 9%. Виходимо за межі затвердженого терміну виконання - арбітраж, тож треба враховувати, що особисті обставини не повинні впливати на хід виконання проекту, тому варто подумати двічі, перш ніж приймати рішення про співпрацю. Безумовно, я забезпечу повне ознайомлення виконавця з проектом перед його затвердженням, сума остаточна за весь проект, вона вже зазначена у завданні.
Отож, є готовий прототип, який становить основу для продовження роботи. На даний момент 25-30% проекту успішно переписано. Ваша роль - це структурування функцій, об'єктів і алгоритмів розрахунку, що вимагатиме детального рефакторингу та впровадження додаткового необхідного функціоналу.
Виконання проекту займе приблизно місяць, можливо, менше. Для кращого розуміння обсягу роботи надаю посилання на 11 екранів його інтерфейсу. Проект досить немалий, і без доступу до коду складно передати повний обсяг завдань, але нижче приблизні завдання, які необхідно вирішити переписуючи код, посилання на невеличкий наміток.
У загальному контексті, процес переписування обмежиться внесенням тих рішень, які були визначені заздалегідь або є критично важливими для функціональності. Іншими словами, я не збираюся розширювати обсяг проекту. Зазначу, що у прототипі не реалізовані деякі функції, наприклад, вспливаючі підказки, користувацькі налаштування або локалізація, тому кінцевий продукт може не завжди точно відображати первісну чернетку.
Бекенд функціонує справно, і 90% його складових залишаться майже без змін, крім тих пунктів, в яких згаданий node.js. Однак, будуть здійснені деякі модифікації з посиланням на нову архітектуру застосунку.