29 декабря 2016 в 14:38

Разработка → Выбор инструментов и подхода к разработке веб-приложения

Привет, Хабр. Ранее на сайте оставался в рядах наблюдателей, но вот настал момент и самому проявить активность — кстати как оказалось, сделать это не так-то просто и сначала нужно пройти тест на русский язык и на безоговорочную капитуляцию перед хабром, ну да ладно.

Итак, суть дела:

Недавно разработал простое веб-приложение, хотя даже и это громко сказано. По сути задача была следующая:

Есть база данных с несколькими таблицами, задача была уметь строить быструю и интерактивную веб-табличку на основе таблицы базы данных, со следующими возможностями:

— скрытие/отображение столбцов
— фильтрация и сортировка по любым столбцам (по всем данным таблицы, а не только по отображаемым)
— различное форматирование данных в зависимости от значений
— возможность выбирать определенные строки таблицы с перемещением выбранных вверх списка

Все перечисленное должно выполняться без перезагрузки страниц сайта. Плюс к этому в определенных местах подгрузка данных из других таблиц БД без перезагрузки страниц.

Что же, всю эту работу я проделал и получилось все именно так, как я и хотел:

Инструментарий был выбран следующий:

— AngularJS
— Bootsrap
— PHP
— Обмен данными между клиентом и сервером JSON.

Собственно, задача была решена, но сейчас хочется двигаться дальше, добавить функционал и т.п.

Но, если в первый раз задача была просто сделать как можно быстрее, то сейчас хочется сделать удобное приложение не только для пользования, но и для разработки, тестирования и расширения. Кроме того, я в целом хочу написать новую версию с нуля, так как в текущей уже упираюсь в сложность расширения, так как все писалось практически аврально.

Собственно, прошу подсказать простыми практическими советами, о том, как можно организовать проект, чтобы его было легко разрабатывать, поддерживать и расширять:

— организация файлов проекта (что посоветуйте)
— организация взаимодействия с БД (организация самой БД)
— механизм подключения и использования отдельных модулей (через функции, классы и т.п.)
— другие советы от опытных

Инструментарий, который собираюсь использовать опять-таки:

— БД MySQL
— сервер php
— фронт angularJS, javascript, AJAX (без jquery хотелось бы обойтись)
— css обязательное требование mobile first. Здесь также буду раз совету, первый проект был на bootstrap, однако сейчас смотрю еще на w3.css похоже он проще и я нашел готовый шаблон, который мне подходит.

Также, чтобы было понятно, мой уровень знаний теории — прохождение цикла курсов с W3school + опыт реализации описанного проекта. Изначально в веб пришел из Joomla, опыт большой, но по части фундаментальных знаний, как уже понятно по верхам.

Собственно поэтому и прошу давать простые практические советы, а не отсылать на поучиться, почитать и т.п.

Спасибо.