Всем добрый день!
Сегодня очень объемный и интересный релиз, За три дня более 30 рабочих часов и в коммитах более 10 000 строк кода (а сколько всего было написано-переписано строк - вообще не известно)...
Прежде чем полезть в технические дебри, предлагаю сразу перейти на тестовый магазин в заказы https://shopmodx.ru/office/orders/ и кликнуть вот это:
Я специально провел таким тернистым путем, чтобы показать, может, малоприметную, но очень важную деталь этого проекта - интеграцию документации и примеров непосредственно в демо-магазин. То есть постепенно каждый отдельный ключевой элемент магазина будет вынесен в отдельный компонент и в том месте где он используется будет ссылка на его отдельную демку с исходным кодом. Там вы можете изучить его код, поиграться с передаваемыми параметрами, хранимыми состояниями и т.п., а так же попробовать видоизменить. В идеале, можно даже сделать форк компонента, усовершенствовать его технически и/или визуально и предложить его в основной проект.
Здесь хочу отметить, что демо-магазин - это полностью актуальная версия основной версии проекта, просто с дополнениями поверх, которые отключаются переключателем в шапке страницы. Это как бы отдельный скин, только не являющийся копией основного, а просто расширяющий его (про это я писал в предыдущей статье). Я верю, что подобный подход не только более наглядный, но и более актуальный, сильно сокращающий количество случаев, когда документация не соответствует текущей версии проекта. Что может быть проще, чем найти на сайте интересующий компонент, перейти на страницу его прототипа, проверить какие параметры он умеет принимать, как себя ведет и т.п., а так же прочитать по нему краткий мануал? Да и порог вхождения сильно снижается, ведь даже если до этого вы не программировали на JS/React, на отдельно взятом примере можно поэкспериментировать без установки какого-либо ПО на свой компьютер. А когда появится общее понимание, можно идти дальше.
И еще раз уточню другой важный момент: все, что сейчас делается, это не просто внешний скин магазина. Это именно движок магазина. Это все работает и на стороне браузера, и на стороне сервера. То есть не приходится бэкэнд писать на php, шаблонизацию на MODX/Smarty/Fenom, и потом еще подключать кучу jQuery-плагинов и писать тонны JS-строк кода, чтобы еще и внешняя часть сайта как-то заиграла. В создании этого движка я стремлюсь к тому, чтобы логика почти вся необходимая была реализована из коробки, а все доработки конечного проекта сводились только к работе с JS-компонентами сайта. Поверьте, расширяемость здесь гораздо более гибкая, и я вам в дальнейшем это еще не раз докажу.
А плюс к этому еще и мониторинг каждого проекта в отдельности настраивается за 1 минуту :)
Тут еще одно объявление сделаю: если у вас уже есть какой-то опыт с JS, но пока не хватает опыта в настройке сервера под проект, чтобы поиграться, можете обратиться за настройкой сервера ко мне. Настройка сервера с демо-сайтом - 2500 рублей (первый месяц хостинга включен), затем каждый месяц 1500 за хостинг. Цена такая, потому что оперативки под это надо не мало (на старте одна нода съедает больше полугига). Я посмотрел тарифы на modhost.pro, там на один сайт 1Gb 1200 в месяц стоит (это предпоследняя планка), а последняя планка 2Gb стоит 2400 в месяц. Да, на modhost совсем другой функционал под другие задачи, но я смотрю просто по оперативке. Тут же у вас будет полностью выделенный сервер с возможностью размещения не одного сайта. В общем, предложение с минимальной маржой просто под развитие проекта. Деньги с этого пойдут на разработку новых функций.
Ну а теперь коротко о том, что нового появилось в этом релизе:
2. Добавил API-запросы:
- Список пользователей.
- Пользователь по ID.
- Пользователь по username.
- Обновление пользователя.
- Цепочка Пользователь-Заказы.
- Цепочка Заказы-Пользователи-Заказы (чтобы по заказу получить информацию о клиенте и список всех его заказов).
- еще несколько запросов (смотрите в API).
3. Добавил регистрацию пользователей, страницу пользователя и редактирование профиля (в том числе загрузку аватарки).
4. Страница списка заказов с возможностью сортировки (пока только по ID и дате, но позже будут и другие условия сортировки).
5. Страница заказа.
Повторюсь еще раз, что сердце всего этого - API. Освойте API и уже будет здорово. Далее только оформление своих компонентов меняй. А для этого на https://www.npmjs.com/ более 600 000 пакетов вам в помощь.
Пожалуй, я не полезу сегодня дальше в дебри, их было выше крыши в предыдущих статьях. Если что, задавайте вопросы, буду отвечать. А там видно будет.