• Какой фреймворк выбрать для интернет-магазина?

    @maxpetrikov
    Надо начать с javascript(как минимум разобраться с потерей контекста и замыканиями) + библиотека для разбиения на модули, например requirejs. Если к этому разумно подключить фишки jquery, то получится хорошо и пригодно к рефакторингу, в случае каких-либо проблем.

    Вот интересная статья на хабре:
    habrahabr.ru/post/253297

    Angular имеет очень высокий порог входа. React относится только к view + необходимо изучать язык JSX.
    Backbone из коробки простой (но и возможностей немного) + underscore вводит много хороших функций, родных питонисту.
    Ответ написан
    1 комментарий
  • Какие есть хорошие книги по архитектуре приложений?

    @maxpetrikov
    Книги по архитектурам:
    The Architecture of Open Source Applications
    aosabook.org/en/index.html
    Аналога на русском языке не встречал

    Есть два варианта работы backend части:
    1. Работает в жесткой связке в фронтом. При каких-либо действиях в браузере информация передается в backend, который формирует новые отображения для браузера. Почти все современные web-framework из коробки работают в таком режиме.
    2. Back отдает информацию в json/xml виде. REST - запрос информации скопом, т.е. в одном запросе может возвращаться информация о разных частях системы. RESTfull API - работа с конкретным объектом через http запросы (GET - получение, POST - создание, PUT -изменение, DELETE - удаление).

    То что во втором пункте называется API, может быть несколько уровней доступа, например внутреннее API и внешнее(внутреннее - сами используем, внешнее - отдаем сторонним разработчикам).

    Backend мобильного приложения чаще всего работает по 2 варианту.
    Backend сервиса может работать по обоим вариантам, если в проекте сложный frontend, то в последнее время наблюдается смещение в сторону второго вариант работы (SPA - single page application работают через API).

    Ядро приложения - некая часть кода + база данных, которые могут быть перенесены в другой проект с такой-же бизнес логикой. Ядро не должно быть привязано к конкретным фреймворкам, чтобы можно было сменить какие-то конечные части системы(php фреймворк, javascript фреймворк) с минимальными потерями.
    Ответ написан
    2 комментария