Comments 72
Стильно, модно, молодежно =)
Пожалуйста, раскройте мысль, почему "за уши"?
Меня больше удивляет появление в списке "одного из самых популярных фреймворков — Meteor", по которому целых… 0 вакансий на рынке труда.
По поводу вакансий думал, что не все так плохо…
Вы сами же и ответили: все зависит от того чем мерить эту "популярность". Я например для себя такой список составил:
Достаточно объективно? Очевидно — нет. Все эти списки публикуются ради публикации, ни грана полезной информации в них, но тем не менее они существуют. Меня вот это больше удивляет.
У меня от него только положительные впечатления, особенно когда из всех фич новомодных фреймворков тебе нужны только двухсторнний байндинг данных и observables/computed поля. Конечно, когда с помощью его пытаются рендерить сложные иерархические формы с таблицами по несколько тысяч записей, то это становиться больно, но не думаю что у ангуляра или реакта ситуация намного лучше.
Когда-то он может и был самым тормозным, но сейчас его неплохо так ускорили.
Из пяти "фреймворков", настоящих только два — Meteor и Ember. Остальные даже не знаю как сюда попали.
Потому что фронтенд это не только формочки, но и данные (и их связи). В Angular 2 уже появился встроенный универсальный способ организации модели данных? (на сколько я помню нет, могу ошибаться. Поправьте если что)
Так Вы про "мое определение фреймворка" и спрашивали =)
В "моем определении", если нет встроенного способа работы с данными (в довесок ко всему остальному) — значит не фреймворк.
Но все же, появился ли универсальный способ организации модели данных в Angular 2?
Что вы подразумеваете под «работать с данными»? Angular предоставляет двусторонний биндинг для любых javascript-объектов, поэтому какой-то отдельный слой работы с данными нет необходимости встраивать в ядро фреймворка. Второй версией еще толком не попользовался, но в первой все потребности работы с данными покрывались чудесным
lo-dash
.Я имею в виду слой бизнес-логики, реализующий предметную область, а также отвечающий за персистентность, например как Model в Backbone — описал модель, накидал туда логики (например валидация) и вызвал model->save().
Если, например, нужно смоделировать связи между объектами и т.д.
Какой у AngularJS стандартный способ решения таких задач?
Какой у AngularJS стандартный способ решения таких задач?
Получил JSON с сервера, просунул его в шаблон, наложил фильтры.
interface
, объявил сервис-репозиторий для работы с ней, накидал туда логики и вызвал $http.put(...)
.Никакого встроенного способа построения моделей а-ля ActiveRecord в ангуляре нет. Наверняка кто-то умный написал стороннюю реализацию (и не одну), но у до сих пор не было в ней потребности.
Фреймворк — это каркас программного приложения, имеющий определенную структуру и оставляющий места для внедрения своего кода, определяющего конкретное поведение приложения. Например такие места как создание конкретных моделей, конкретной логики и определенного отображения в случае MVC структуры фреймворка. Библиотека — это программный код, функции и классы которого могут быть использованы в структуре другого приложения.
Отдельный модуль, но при этом является частью фреймворка:
https://guides.emberjs.com/v2.11.0/models/
http://emberjs.com/api/data/
Например, по моей личной классификации один из самых тормознутых сайтов это Твиттер, один из самых бестолковых (да и тоже не без тормозов) это Фейсбук. Чтобы знать что не нужно использовать, чтобы не уподобляться этим сайтам.
А вот например ВКонтакте и Хабр — очень даже шустрые. Полезно знать какие фреймворки там применяются и применяются ли вообще.
один из самых тормознутых сайтов это Твиттер
Попробуйте новую мобильную версию: https://mobile.twitter.com
По технологиям, там используется React+Redux – весь этот модный сейчас стек:
https://mobile.twitter.com/necolas/status/829128165314306048
Всё, конечно, можно назвать фреймворком, даже так, всё что НАД javascript можно назвать фреймворком. Но Meteor всё-таки — клиент-серверная платформа в первую очередь, не забывайте, что её можно писать на тех же React, Angular, а может и на всех вышеперечисленных.
Подходит — да, а попробуйте присовокупить это к одному из вышеуказанных фреймворков и ничего не получится.
И кстати вот (с meteor.com), хотя это всё равно не добавляет ясности:
Meteor is a complete platform for building web and mobile apps in pure JavaScript.
Сейчас, Meteor больше как платформа, и команда Meteor рекомендует использовать React на фронте, так же как и Apollo, ведь в новой версии Meteor будет предлагаться Apollo в качестве Data
"Недавно JavaScript занят место среди лучших языков для изучения по версии IBM в 2017 году".
Сайт реакта — https://facebook.github.io/react/
Почему плюнули?
TypeScript
Для любого большого долгоживущего проекта это огромный плюс, ибо писать jsdoc, запоминать, вручную проверять типы и/или надеяться что ide это всё поймет — странно. Кроме того, TypeScript этот по сути тот же js, но с сахаром для контроля типов, поэтому если имели дело с js и с любым типизированным языком сложностей с ним вообще никаких. Но кстати можно и без него, на чистом js.
Фреймворки диктуют свои правила там, где мне нужно иное.
Обычно это тоже хорошо, особенно если разработчиков много. Создавать же свои "реализации MVC" и прочего в 2017 году немного странно (неужели кто-то еще не наигрался?)
С webpack можно вообще забыть о них.
Angular2 судя по документации прекрасно дружит с webpack-ом https://angular.io/docs/ts/latest/guide/webpack.html
Особенно если backend написан на другом языке.
Нет тут вообще никаких проблем, более того, по наблюдением за апворком, обычно проекты на angular-е используют разные beck-end-ы (php, java, .net, ноду и т.п.), а тот же react в > 90% идет только с нодой...
TypeScript лёгкий, когда с ним уже чуть-чуть поработал или есть кого спросить, с наскоку же понять, как написать свой *.d.ts для непокрытой сообществом библиотеки мне показалось несколько сложно. Тем не менее я всецело за TypeScript.
Между "своей реализацией MVC" и приколоченной гвоздями не лучшей реализации чего-то там существует разница. Совсем новичку, может и чудесно, когда его за ручку водят по "лучшим практикам", но ничуть не реже получается, что приходится бороться с тем, что тебе дали, вместо того чтобы взять то, что тебе подходит. Не вижу ничего плохого в том, чтобы иметь возможность, в зависимости от задачи и предпочтений команды выбирать между Baobab, MobX, Redux. Мне кажется, это именно то, что входит в понятие свободы.
а тот же react в > 90% идет только с нодой...
Причина совсем не в том, что React хочет NodeJS-бэкенд, а в том, что с React совсем не сложно получить серверный рендеринг, это у всех на слуху, и чего бы не спросить тогда с разработчика сразу и эту фичу?
Ну, а так, действительно, бэкенд никак не ограничивает, можно хоть Angular, хоть React
Очередная подборка из названий, про которые и так все знают
Неправда. Смена мышления на однонаправленный поток данных занимает время. В Ангуляре же все достаточно стандартно для шаблонизатора
Нет, не обязателен. Но без него можно использовать только для каких-то мелких компонентов/приложений
Это был эксперимент (хоть и закончился он относительно успешно), который показал, что как-раз для игр лучше использовать другой инструмент.
По поводу Метеора — сейчас это скорее бекэнд платформа с поддержкой реакта, ангуляра и blaze, который уже подотмирает.Основная фишка метеора сейчас это Apollo — реализация фейсбуковского GraphQL.
Для метеора также есть поддержка Vue.
Обзор 5 самых популярных JavaScript фреймворков и библиотек 2017