Вопрос или проблема
Я работаю над проектом для литературного клуба, где люди обсуждают книги.
Мы решили создать для этого веб-приложение.
База данных будет содержать информацию о тысячах книг, прочитанных участниками клуба.
Информация будет включать автора(ов), название, аннотацию, жанр и многие другие атрибуты.
Члены клуба смогут добавлять и редактировать записи в базе данных.
Они также смогут просматривать список книг в табличной форме, искать по ряду критериев,
голосовать за книги (положительно и отрицательно), оставлять свои комментарии и т.д.
Я создал схему базы данных и сейчас работаю над веб-сервисами для её поддержки.
Я довольно опытный программист (Java, C++, SQL) в серверной разработке, но абсолютный новичок в современных фронтенд-технологиях. Я разрабатывал некоторые фронтенды, используя JSP/HTML, давным-давно (более 15 лет), но уже забыл эти навыки.
Сейчас мне нужна рекомендация по использованию фреймворка с открытым исходным кодом, который поможет мне разработать такой веб-интерфейс в короткие сроки. Я могу заниматься этим только пару часов в день после работы, когда семейные дела позволяют.
Ваша рекомендация будет очень ценна.
Обратите внимание на Jelu.
- Это “локально размещенный трекер книг для прочтения и уже прочитанных”.
- В некотором смысле, это локально размещенный “Goodreads”.
- Вы, вероятно, можете использовать его как есть или изменить под свои нужды, так как это опенсорс.
.
Ответ или решение
Проект для литературного клуба, связанный с разработкой веб-приложения, требует тщательного подхода к выбору инструментария для фронтенд-разработки. Рассмотрим наиболее подходящие решения, исходя из описанных требований и опыта участника проекта.
Описание задачи
Ключевая задача — создание веб-приложения для литературного клуба, в котором пользователи смогут:
- Добавлять и редактировать информацию о книгах в базе данных.
- Просматривать список книг в табличной форме и осуществлять поиск по различным критериям.
- Голосовать за книги, оставлять комментарии и выполнять другие интерактивные действия.
С учётом объёмного опыта в серверной разработке (Java, C++, SQL), но отсутствия актуальных знаний в современных фронтенд-технологиях, необходимо выбрать оптимальный инструмент для скорейшей реализации проекта.
Рекомендации по выбору фронтенд-фреймворка
-
React.js
- Описание: Популярная библиотека от Facebook для создания пользовательских интерфейсов.
- Преимущества: Простота интеграции с другими библиотеками и фреймворками, большое сообщество, большой выбор библиотек компонентов, таких как Material-UI для быстрого создания интуитивно понятных интерфейсов.
- Недостатки: Потребуется время для изучения, но с множеством доступных обучающих материалов и документации это не должно стать большой преградой.
-
Vue.js
- Описание: Прогрессивный JavaScript-фреймворк, который часто выбирают за его гибкость и легкость освоения.
- Преимущества: Лёгкое вхождение для начинающих, хорошо структурируемый код, поддержка одностраничных приложений с минимальными усилиями.
- Недостатки: Меньше крупных компаний используют Vue по сравнению с React, но это компенсируется его активным сообществом.
-
Svelte
- Описание: Новый подход к созданию пользовательских интерфейсов, фокусируется на компиляции кода на этапе сборки.
- Преимущества: Облегченный размер итогового приложения, естественный синтаксис, который упрощает обучение и чтение кода.
- Недостатки: Более молодой инструмент, чем React или Vue, следовательно, меньше ресурсов и библиотек.
Переход от идеи к реализации
На основании детального взгляда на Jelu — приложение для отслеживания прочитанных книг, разработанное как самостоятельный аналог Goodreads, — вы можете либо использовать его как базу и доработать исходный код, либо вдохновляться его структурой и подходами при разработке своего решения.
Заключение
Исходя из предложенных вариантов, оптимальным решением для быстрого старта будет выбор в пользу React.js, благодаря его широким возможностям и поддержке сообщества. Однако, если вы предпочтете более простой и легкий вход, Vue.js станет хорошим выбором. Такой выбор позволит сэкономить ваше время и сосредоточиться на создании удобного и функционального интерфейса для участников вашего литературного клуба, что важно при ограниченном времени на разработку.