Pull to refresh
55
0
Алексей Куреев @xamd

Sr. Software Engineer @ Twilio

Send message
Согласен с blackPeanut. DOM подразумевает работу с документами (Document Object Model, все-таки), которых просто не существует в мобильной разработке. Вы не представляете документы, используя объектную модель, Вы используете древовидную структуру для представления компонентов экарн(а|ов).

Более того, VDOM, как таковой, является структурой для представления DOM в памяти и не подразумевает никаких «встроеных» алгоритмов (однако, почти все известные VDOM имплементации поставляются вместе с набором алгоритмов типа обхода дерева, вычисления разницы деревьев и пр).

Прошу не считать это «подкопом» к терминологии, скорее небольшой семантической поправкой статье.
Да, если не требуется какой-то кастомной логики под отдельно взятую платформу.
Честно говоря, не знал про автоматическую обёртку в Promise. В таком случае Вы правы и пример действительно можно упростить.
Основываясь на докладе с JSConf EU в этом году (вот этот доклад, если не ошибаюсь), при правильном написании, JS отстаёт по производительности от C на ~16%.

Но как уже кто-то заметил выше, в веб приложениях не так сильно важна скорость, а писать программы, от которых требуется высокая производительность, можно и на другом языке, раз уж на то пошло.

Вопрос к автору: почему движки в сравнении 12-13 годов? Как-то странно смотреть на сравнение Chrome 26, когда у тебя стоит Chrome 48...
Уже очень многое написано сторонними разработчиками. Можете поискать интересующие Вас модули на react.parts/native
Если Вы уберете Promises, не получится использовать цепочки вызовов, как указано в примере. Но в целом да, можно и так.
А вот я после прочтения немного взгрустнул: сейчас у меня как раз «то время»: пицца и бессонные ночи за Open Source проектами и чтением документации. Не хочется верить, что через 30 лет я больше не смогу так делать.

Но ещё более страшно будет прочитать этот комментарий через 30 лет.
Автор, ты живой? Пингани нам
Ну, всем своё :) Только вроде 3 же файла? Ещё один с описанием <Animals>?
Такое ощущение, что Вы перевели Getting Started к библиотеке rpc.

Вообще, вот то же самое в 18 строчках на JS (или 14 не считая пустые). Я не могу говорить за всех, но имхо, этот код понятнее и проще.

const app = require('express')();
const bodyParser = require('body-parser');
app.use(bodyParser.json());

var animals = [];

const findAnimalById = (id) => animals.filter(a => a.id === Number(id))[0];
const removeAnimal = (id) => animals = animals.filter(a => a.id !== Number(id));

const makeAnimal = (params) =>
  animals.push(Object.assign({ id: animals.length + 1 }, params)) &&
  animals[animals.length - 1];

app.get('/list', (req, res) => res.json(animals));
app.get('/', (req, res) => res.json(findAnimalById(req.query.id)));
app.post('/', (req, res) => res.json(makeAnimal(req.body)));
app.delete('/', (req, res) => res.json(removeAnimal(req.query.id)))
app.listen(3000);
Ну что, народ, кто выполнил цели в 2015 благодаря этой статье? :)
Позабавило ОКНОДАЙ и ИНАЧЕ ВСЁ :)
О, мы использовали handlebars в 2011. Но, честно говоря, я думаю что целевая аудитория этой статьи крайне ограничена людьми, которым приходится поддерживать legacy- код на backbone или чем-то подобном. Все современные решения (а-ля angular, react) предоставляют свои инструменты для шаблонизации HTML.

Тем не менее, материал качественный и красиво оформленный. А это, нынче, редкость.
Так, ну React использует Facebook, Airbnb, Khan Academy, Filpboard как минимум (это первое, что приходит на ум). Вообще, есть целый тред на эту тему. Могу то же самое найти для Webpack, но я полагаю Вы тоже умеете пользоваться поиском.
Что касается Babel, ES6 и т. п. то действительно считаю баловством использование в продакшене языков не поддерживаемых основными браузерами. Изучать новые технологии нужно, но бежать впереди поезда не слишком эффективно.

Последняя утвержденная спецификация языка для Вас — «бежать впереди поезда»?

Я не хочу никого обидеть, но затем создавать приложения на стеке умирающих технологий? Когда выйдет Angular 2, про первый будут помнить разве что те, у кого всё приложение в данный момент завязано на него, а что касается requirejs, то несмотря на свою дикую популярность 4 года назад, на нынешний день имеет на 100 000 скачиваний в месяц меньше, чем webpack и, на секундочку, на ~2 233 089 скачиваний меньше, чем browserify.

Вы так интересно рассуждаете о технологиях — «сегодня популярны, а завтра — забыли», но ведь уже «сегодня» про requirejs забыли, а про angular 1.x забудут, считай что «завтра».
Дочитав дискуссию до середины, удивился, насколько yosemity стрессоустойчив :) Но что ж, раз уж такая пьянка, давайте пофлеймим: Представьте, что появляется лекарство от рака. Его можно использовать сразу, что будет означать, что ваши дети больше не будут восприимчивы известным штаммам фируса. Или же можно обновлять каждый месяц, добавляя иммунитет к новым штаммам. Я выберу второе. И да, химический состав везде разный, но нацелен на борьбу с одними и теми же клетками, каждый выбирает своё.

А теперь про вторую часть: если не будет конкуренции — не будет качества. Останется один единственный антивирус — начнётся деградация качества, мол «аналогов-то нет, никто от нас не откажется». А вообще, какая вам разница, сколько компаний это производит? Или вы хотите получить серебрянную пулю за бесплатно?
Отличная статья, кстати говоря.
Основная идея, «пропитывающая» реакт — композиция элементов. Т.е. «шаблон вывода» в Вашем понимании составляется из маленьких dumb components, которые при аггрегации образуют то, что Вам нужно.

Разумеется, где-то вверху будет находится smart component, который будет оркестрировать весь процесс: забирать данные из какого-нибудь хранилища (будь то что-то самописное, redux store или что либо ещё) и передавать эти данные в ваши dumb components и, возможно, содержать логику а-ля «если количество записей больше нуля, показывать dumb component со списком записей, в противном случае показывать заглушку с сообщением об отсутствии записей». По факту весь реакт — это один большой шаблон, если так посмотреть :)
1
23 ...

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Date of birth
Registered
Activity