Не подскажите ребята для каких характеристик проекта какого уровня и какие фреймворки лучше выбрать. Типа, например, если то-то то-то, то достаточно будет jQuery и тд. ?
@kostyl, приложения с двумя кнопками уже удобней делать с Angular Light, а вообще зачем выбирать используйте jQuery и Angular Light вместе (брать преимущества обоих), см. статью: Angular Light для jQuery/JS разработчиков [habrahabr.ru]
Если у вас задача где много зависимостей друг от друга, типа excel - таблица, где одна ячейка зависит от другой, тогда по хорошему нужно взять FRP библиотеку и прикрутить к фреймворку.
Если вам кажется что React (react-подобный) подход проще в разработке, то можете его попробовать, только из-за скорости или серверного рендеринга его брать нет смысла.
А в основном большинство фреймворков конкурируют - "любые задачи можно сделать на любом фреймворке", там уже выбираете по факторам: простота использования, скорость работы, вес файлов, способ отслеживания изменений, инструментарий, популярность и т.п.
@kostyl, У реакта идея хорошая, но с ним тоже не все гладко, тоже куча проблем и сложностей, судя по SO и тостеру.
Если вы используете jQuery, а он почти в каждом серьезном веб проекте, то у вас серверного рендеринга не будет.
Он медленней чем Ангуляр, судя по тестам.
Но больше всего мне интересно, как реакт разработчики работают с дизайнерами? С ангуляром - понятно, дизайнер дал мне пачку html файлов, я вставил "метки" где нужно - все заработало. А с реактом что? мне нужно все дербанить на куски, конвертировать в jsx, впихивать логику/js и т.п. Что потом делать когда дизайнер поправит или доработает дизайн? Наверно реакт разработчик должен быть и верстальщиком в одном лице.
Кстати у реакта уже появилось ~20 конкурентов (vdom реализаций).
мне не очень нравиться постановка вопроса в голосовании
я бы не ставил angular и react рядом с остальными
то есть я бы поставил их в ряд с extjs
a knockout я бы сравнивал с ember
но это сказки
реальный вопрос: кто сильнее кит или слон.
и ответ на него зависит от среды на которой ты кодишь
если ты пишешь бэкенд на php, то наверное все равно или ангуляр, потому что там говнокодить проще
не то, что бы я говорил, что ангуляр гавно, но он весь и полностью построен на рефлексии
и все эти передачи скоупов и прочих контекстов настолько неявны что в них можно потеряться
а если до кучи использовать лайвскрипт то получиться, такая хуйня, от которой @vasa_c будет плакать
.service 'modalService', [
'$modal'
($modal) ->
modalDefaults =
backdrop: true
keyboard: true
modalFade: true
templateUrl: 'templates/modal.html'
modalOptions =
closeButtonText: 'Close'
actionButtonText: 'OK'
headerText: 'Proceed?'
bodyText: 'Perform this action?'
@showModal = (customModalDefaults, customModalOptions) ->
if !customModalDefaults
customModalDefaults = {}
customModalDefaults.backdrop = 'static'
@show customModalDefaults, customModalOptions
@show = (customModalDefaults, customModalOptions) ->
#Create temp objects to work with since we're in a singleton service
tempModalDefaults = {}
tempModalOptions = {}
#Map angular-ui modal custom defaults to modal defaults defined in service
angular.extend tempModalDefaults, modalDefaults, customModalDefaults
#Map modal.html $scope custom properties to defaults defined in service
angular.extend tempModalOptions, modalOptions, customModalOptions
if !tempModalDefaults.controller
tempModalDefaults.controller = ($scope, $modalInstance) ->
$scope.modalOptions = tempModalOptions
$scope.modalOptions.ok = (result) ->
$modalInstance.close 'ok'
return
$scope.modalOptions.close = (result) ->
$modalInstance.close 'cancel'
return
return
$modal.open(tempModalDefaults).result
return
]
плюс дебаг/тесты это отдельный адочек - из-за всей этой рефлексии и депенденси инжекшн, естественно
нужно использовать жасмин с кармой и ангулярной приблудой для моков
опять же против этих тулзей ничего не имею, но все в сумме мне не нравится
и еще один факт в копилку: ангуляровское добро цепляется за готовый html
и надо следить, что бы они друг другу соответствовали
теперь немного про реакт
сам по себе реакт это просто описания жизненного цикла компонентов типа как backbone
фреймворком он становиться после спаивания с react-route (history), bootstrap (react-route-bootstrap, react-bootstrap) flux и прочими либами
и вроде как модульность это хорошо, но, сука, они там со своими модулями заебали - это с этим работает, а с другим нет и в версиях полный бардак.
большое преимущество дает поддержка es6/7 чувствуешь себя на пике горы,
он восторга спасают тормоза бабеля, которым это все собирается
плюс eslint имеет модуль для работы c jsx - тоже удобно для чистоты кода
flow, правда, прикрутить так и не удалось - не хватило терпения
очень удобно ложится на серверную часть на js
можно использовать одни и те же пакеты на клиенте и на сервере
горячая перезагрузка при помощи webpack - вообще сказка
дебаг простой, сорсмап - рулит
тесты можно писать на чем угодно, мои на mocha
там еще говорили про серверный рендеринг, удобно, чо!
но если бы увидел jxs который бросает sql запросы вырвал бы руки
Если вы используете jQuery, а он почти в каждом серьезном веб проекте, то у вас серверного рендеринга не будет.
@Oleg, это кстати неправда
реакт вполне себе жизнеспособен без жуквери в отличии от ангуляра
то есть конечно жуквери делает жизнь намного проще
но react-bootstrap написан без жуквери и не уступает оригиналу по функциональности