Какие инструменты и подход к разработке веб-приложения выбрать?
Недавно разработал простое веб-приложение, хотя даже и это громко сказано. По сути задача была следующая:
Есть база данных с несколькими таблицами, задача была уметь строить быструю и интерактивную веб-табличку на основе таблицы базы данных, со следующими возможностями:
— скрытие/отображение столбцов
— фильтрация и сортировка по любым столбцам (по всем данным таблицы, а не только по отображаемым)
— различное форматирование данных в зависимости от значений
— возможность выбирать определенные строки таблицы с перемещением выбранных вверх списка
Все перечисленное должно выполняться без перезагрузки страниц сайта. Плюс к этому в определенных местах подгрузка данных из других таблиц БД без перезагрузки страниц.
Что же, всю эту работу я проделал и получилось все именно так, как я и хотел:
Инструментарий был выбран следующий:
— AngularJS
— Bootsrap
— PHP
— Обмен данными между клиентом и сервером JSON.
Собственно, задача была решена, но сейчас хочется двигаться дальше, добавить функционал и т.п.
Но, если в первый раз задача была просто сделать как можно быстрее, то сейчас хочется сделать удобное приложение не только для пользования, но и для разработки, тестирования и расширения. Кроме того, я в целом хочу написать новую версию с нуля, так как в текущей уже упираюсь в сложность расширения, так как все писалось практически аврально.
Собственно, прошу подсказать простыми практическими советами, о том, как можно организовать проект, чтобы его было легко разрабатывать, поддерживать и расширять:
— организация файлов проекта (что посоветуйте)
— организация взаимодействия с БД (организация самой БД)
— механизм подключения и использования отдельных модулей (через функции, классы и т.п.)
— другие советы от опытных
Инструментарий, который собираюсь использовать опять-таки:
— БД MySQL
— сервер php
— фронт angularJS, javascript, AJAX (без jquery хотелось бы обойтись)
— css обязательное требование mobile first. Здесь также буду раз совету, первый проект был на bootstrap, однако сейчас смотрю еще на w3.css похоже он проще и я нашел готовый шаблон, который мне подходит.
Также, чтобы было понятно, мой уровень знаний теории — прохождение цикла курсов с W3school + опыт реализации описанного проекта. Изначально в веб пришел из Joomla, опыт большой, но по части фундаментальных знаний, как уже понятно по верхам.
Собственно поэтому и прошу давать простые практические советы, а не отсылать на поучиться, почитать и т.п.
Я бы, на вашем месте отказался от Ангуляра и использовал вместо него jQuery. ИМХО, для тех задач это лишнее.
Насчет взаимодействия с сервером - посмотрите в сторону сокетов, они подходят лучше всего.
И откажитесь от PHP - он хорош для относительно статичных страниц, не для вэб-приложения