Интересная статья, сам с недавних пор начал задумываться о том, что лучше — комплексное решение или набор маленьких модулей?
Вообще склоняюсь к тому, что набор маленьких модулей куда гибче. Рассмотрим тот же react — маленькая по функциональности библиотека, которая предоставляет лишь view слой вашего приложения. И ему по сути все равно как именно вы получаете, храните или обрабатываете данные. То есть мы вправе выбирать сами как мы будем управлять данными, главное в нужны момент отдать их реакту для отрисовки.
Но, есть и обратная сторона, вам нужно решать все остальные вопросы самостоятельно, как делать роутинг? как отправлять ajax запросы и прочее…
По этому мне кажется, что комплексные решения(как например angular) подходят для менее опытных разработчиков, для тех кому не хватит опыта выстроить свое окружение.
Теперь зайдем с другой стороны — поддержка кода!
В случае выбора комплексного решения, вам придется сделать выбор один раз Ember/Angular/Backbone? То есть если на проект приглашают нового человека, то ему говорят прямо — мы используем вот ЭТО! И он уже примерно знает с чем столкнется.
Если же мы выбрали путь отдельных маленьких библиотек, то, мне кажется, объяснить человеку с чем ему придется столкнутся куда сложнее, да и въезжать проект наверное тоже.
Хотя я думаю, что мир все таки пойдет именно таким путем(маленьких библиотек), и со временем будут выбраны лучшие практики и библиотеки, а значит стек технологий все таки будет более-менее стандартизирован.
Спасибо за обзор!
Очень понравились доклады Андрея Листочкина: «Ember = Angular = React» и Дмитрия Ломова: «Javascript со скоростью света».
Англоязычные к сожалению не осилю, но в статье написано, что был синхронный перевод, его как то можно посмотреть?
function test() {
myVar = 'Hello, World';
console.log(myVar);
}
Стоит заметить, что чтобы избегать таких ошибок, можно просто включить строгий режим используя «use strict», и уже сам браузер выдаст ошибку "'myVar' is not defined."
В статье все описано. Но попробую объяснить еще раз
Как работает phonegap? Если совсем по простому, то он по сути генерит приложение браузер, но который открывает конкретную html страницу. То есть вы по прежнему работаете с html. Минусы этого подхода хорошо описаны в этом самом посте
В отличие от того же PhoneGap, который при возникновении нативного события блокирует поток и передает управление на JS-код, ожидая его инструкций (собственно, лаги вы можете наблюдать именно из-за этого)
Если же использовать React Native, то в итоге вы получаете не html страницу, а интерфейс который работает на основе компонентов операционной системы.
нет, я хотел сказать, именно, state. props это список параметров пришедших в компонент из вне(от родителя), а state набор параметров описывающий именно внутренее состояние компоненета
state все таки относится именно к компоненту, и именно state однозначно определяет как будет отрисован компонент.
За пределы мы выносим не state, а данные, и в нужный момент просто копируем эти данные(из store) в state
Вообще склоняюсь к тому, что набор маленьких модулей куда гибче. Рассмотрим тот же react — маленькая по функциональности библиотека, которая предоставляет лишь view слой вашего приложения. И ему по сути все равно как именно вы получаете, храните или обрабатываете данные. То есть мы вправе выбирать сами как мы будем управлять данными, главное в нужны момент отдать их реакту для отрисовки.
Но, есть и обратная сторона, вам нужно решать все остальные вопросы самостоятельно, как делать роутинг? как отправлять ajax запросы и прочее…
По этому мне кажется, что комплексные решения(как например angular) подходят для менее опытных разработчиков, для тех кому не хватит опыта выстроить свое окружение.
Теперь зайдем с другой стороны — поддержка кода!
В случае выбора комплексного решения, вам придется сделать выбор один раз Ember/Angular/Backbone? То есть если на проект приглашают нового человека, то ему говорят прямо — мы используем вот ЭТО! И он уже примерно знает с чем столкнется.
Если же мы выбрали путь отдельных маленьких библиотек, то, мне кажется, объяснить человеку с чем ему придется столкнутся куда сложнее, да и въезжать проект наверное тоже.
Хотя я думаю, что мир все таки пойдет именно таким путем(маленьких библиотек), и со временем будут выбраны лучшие практики и библиотеки, а значит стек технологий все таки будет более-менее стандартизирован.
Но это все чистое ИМХО =)
Очень понравились доклады Андрея Листочкина: «Ember = Angular = React» и Дмитрия Ломова: «Javascript со скоростью света».
Англоязычные к сожалению не осилю, но в статье написано, что был синхронный перевод, его как то можно посмотреть?
Стоит заметить, что чтобы избегать таких ошибок, можно просто включить строгий режим используя «use strict», и уже сам браузер выдаст ошибку "'myVar' is not defined."
Преимущество ES6, в то что, рано или поздно все браузеры будут его поддерживать, CoffeScript — нет.
А вообще я думаю, что как только ES6 немного освоится в нашем мире, трансляторы CoffeScript перепишут, так чтобы он выдавал ES6 на выходе, а не ES5.
Как работает phonegap? Если совсем по простому, то он по сути генерит приложение браузер, но который открывает конкретную html страницу. То есть вы по прежнему работаете с html. Минусы этого подхода хорошо описаны в этом самом посте
Если же использовать React Native, то в итоге вы получаете не html страницу, а интерфейс который работает на основе компонентов операционной системы.
За пределы мы выносим не state, а данные, и в нужный момент просто копируем эти данные(из store) в state
Выигрыш в скорости за счет того, что и новую версию виртуального DOM он сравнивает не реальным, а с предыдущей версией виртуального.
www.progville.com/javascript/react-native-apps-react-js/