• +27

    Восхищаюсь вашей стойкостью!

    Браузеры на основе Chromium — теперь и в ReactOS
  • 0

    Я бы еще к антипаттернам добавил очевидный литерал массива и не очень очевидный, но распространенный антипаттерн возврата обработчика при каждом рендеринге.


    const onClickMe = (name) => (event) => doSomething(name);
    //...
    <SomeComponent something={['foo', 'bar']} onClick={onClickMe('baz')} />
    React медленный, React быстрый: оптимизация React-приложения на практике
  • +1

    Скорость загрузки, в большей степени, будет зависить от длины цепочки зависимостей, а не только от скорости отдачи файлов HTTP/2. Иначе придется включать прелоад всех модулей, а это требует тулзы подобной бандлеру. В этом не очень много смысла.

    Нативные ECMAScript модули — первый обзор
  • 0
    Есть также огромный аутлет, где можно купить по настоящим скидкам брендовые шмотки.

    Где и как он называется? Из дешевых брендовых аутлетов знаю только TKMaxx, которого нет в Чехии, к сожалению.

    Питерский бездомный — в Праге. Продолжение истории разработчика-самоучки
  • 0

    Обновил описание в репозитории, спасибо.

    Matreshka.js 2 — tl;dr
  • 0

    Это не просто Hello World, это — quick and dirty Hello World. Такой код никогда не должен попасть в продакшн, уж лучше на jQuery намакаронить.


    Я так понимаю, у вас достаточно мало знаний относительно React. Тогда, давайте прекратим эту беседу.

    Matreshka.js 2 — tl;dr
  • +1

    Вы на полном серьезе вырываете из контектста раздела "Trying Out React" эту фразу?

    Matreshka.js 2 — tl;dr
  • 0

    Ну такое. Не только выучить, но и заюзать это всё не так просто. У многих возникает шок от того, что веб разработчик, оказывается. должен знать NodeJS, даже если пишет только под фронт. Это я не говорю об остальном инструментарии. Если вы осилили (изучили и смогли использовать) все необходимые технологии за пару месяцев, примите моё уважение.

    Matreshka.js 2 — tl;dr
  • 0
    Лучше оптимизирует рендеринг?

    Если вы хорошо разбираетесь в React можем подискутировать (так как я и сам в нем неплохо разбираюсь). Если нет, я бы не хотел в этом посте описывать принципы рендеринга в Реакте, есть масса статей на эту тему.


    уже давно неправда и не надо поддерживать этот миф.

    Поговорите с любым начинающим разработчиком, для начала. Немало людей забивают на веб разработку, узнав о том, сколько вего им нужно знать, чтоб написать грамотный Hello World, используя один из мейнстримных фреймворком.

    Matreshka.js 2 — tl;dr
  • 0

    В общем, всё вышесказанное, можно свести к "Я умею что-то на jQuery, но хочу делать лучше" и таких разработчиков немало. Причем, остальное (сборка, пакеты, ECMAScript Stage X) можно учить постепенно, по-прежнему используя Matreshka.js.

    Matreshka.js 2 — tl;dr
  • 0
    Новички скорее всего будут смотреть на React, обучающих видео и статей по нему немало

    Есть такое понятие, как JavaScript усталость. Слишком много всего нужно знать помимо, собственно Реакта: сборка, стор, оптимизация рендеринга (чем, к сожалению, часто пренебрегают).


    Бекендщики с большей вероятностью посмотрят на Angular2, потому что там есть DI, MVC и типизация

    Смотря кто. По моему опыту общения с разработчиками, бек-ендщики (например, PHP-шники), как правило, не уделяют много внимания фронт-енду и обходятся неструктурированным кодом на jQuery. React/Angular/Vue — это то, что их не интересует (это не касается людей, пишуих под NodeJS).

    Matreshka.js 2 — tl;dr
  • –1

    Цитирую с сайта:


    Для кого этот фреймворк?


    • Для новичков в веб программировании, желающих освоить разработку одностраничных приложений
    • Для full-stack разработчиков, для которых front-end разработка стоит на втором месте после back-end
    • Для всех тех, кого не устраивает текущий порядок вещей во Вселенной веб разработки
    Matreshka.js 2 — tl;dr
  • +1

    На ноде уже есть async/await.

    Еще один велосипед для борьбы с callback hell в JavaScript
  • 0

    Я думал, что вы имеете в виду, что можно как-то обойтись без настройки nginx вовсе. А так, не вижу смысла сёрфить статику нодой если есть возможность сёрфить её быстрее.

    node-direct — один NodeJS сервер на несколько сайтов
  • 0

    Сходу даже не пойму, как настроить тулзу для нескольких доменов.

    node-direct — один NodeJS сервер на несколько сайтов
  • +2

    Для поддержки старых браузеров юзают Babel :)


    Да и чего вас это так возмущает? Например, когда почти все использовали Кофескрипт, он мне не нравился и я его просто не использовал.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • 0

    Вы удивитесь, но ES2015 поддерживается всеми современными браузерами. С некоторыми оговорками, конечно же (например, файерфокс не умеет так: for(const x of y) {}, прриходится объявлять переменную с помощью let и юзать eslint-disable-line с конфигом airbnb).

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • 0

    Где вы были раньше? :)

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • 0

    Да, я знаю, что сделаю (по крайней мере, в общих чертах). Спасибо за адекватную критику.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • 0

    Спасибо, подумаю над этим. У Evan You можно многому научиться, он большой молодец.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • 0

    Мне не удалось попасть на главную TodoMVC около двух лет назад, я так и забил на это :)
    Сейчас не вижу профита размещения у них приложения TodoMVC, так как оно потеряется в куче других, а у меня отпадет возможность оперативно менять документацию, код и пр.


    По поводу бенчмарков: это верное замечание. Но, как видите, очень много изменений вошло в эту версию, а код вообще с нуля переписан. Просто еще не было времени сосредоточить свое внимание на конкуренции с другими фреймворками (внутренний бенчмарк показывает приемлемую производительность).


    Слова "самый простой", простите, когда вы говорите это — вы сразу попадаете в категорию болтунов

    Ну это как посмотреть. Это мой стиль изложения материала, записывать меня в разные категории — ваше право. Если у вас есть примеры хорошего, на ваш взгляд, и эффективного (в плане привлечения пользователей) изложения, дайте ссылку на автора. Приставка "во Вселенной" должна, по идее, своей утрированностью смягчать слова "самый простой".

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • +1
    • Не нужно прыгать с места в карьер, используя NPM, Webpack и пр (хотя, можно).
    • Можно объявлять двустороннее связывание с помощью селекторов (селекторы умеют юзать все).
    • Нет многословной теоретизации, есть одно правило: делаешь кусочек приложения (например, форму), объяви для этого класс и размести его в отдельном файле (ученикам будет понятно, зачем нужна модульность).
    • Документация настаивает на использовании ECMAScript 2015, который через год-два будут знать абсолютно все (сейчас многие противятся прогрессу)
    • Реактивность (например, поле формы, зависит от свойства А, свойство А от свойства Б, свойство Б от свойства В, свойство В зависит от другого поля формы: при изменении второго поля по цепочке изменятся свойства и первое поле формы). Читайте о методах bindNode и calc. Плюс к этому, можно навешать обработчик события изменения свойства, для того, чтоб запустить кастомный код (например, отправить запрос на сервер). Читайте о методах on, off, trigger

    Самое главное: это чистый JavaScript. Никакого расширения синтаксиса языка разметки.


    Если это дейтсительно не ирония, вы не первый, кто выбрал Matreshka.js для обучения.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • +3

    Вы писали этот комментарий пять минут, я писал Matreshka.js четыре года. Уж поверьте, за это время я многое обдумал :)

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • –1

    За тем же, зачем вообще используют фреймворки: для разделения логики, уменьшения количества кода и пр. Комментарии действительно ни о чем. Возможно, небольшой туториал частично ответит на ваш вопрос.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • –1
    какой именно модуль вам интересен?

    Ни какой.


    вы меня с кем-то путаете, посмотрел свои комментарии, это первый ваш пост, в котором я есть))

    Значит, магия (на самом деле нет, и я вижу, что вы заново зарегистрировались относительно недавно).

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • –1

    Зашел на ваш Гитхаб и… я тоже задался вопросом "зачем", просматривая проекты, которые вы сделали. Я ни в коем случае ни хочу сказать, что ваши решения плохи, просто не понимаю, почему вы ходите в каждый пост о Matreshka.js и выясняете со мной отношения. Если мне не интересно, что делаете вы, я не буду вас убеждать в чем-то. А я удостаиваюсь такой чести уже не первый раз.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • –1

    Ух, сложно. Это фреймворк для студий, позволяющий экономить деньги на найме специалистов и фреймворк для разработчиков, позволяющий быстро начать что-то делать, не используя сложные современные решения — это основная задача фреймворка. Зайдите на сайт и прочтите подробности, не буду копипастить.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • –1

    Циклы, условные операторы и прочая логика в HTML — антипаттерн из-за, того, что их сложно дебажить. В JS если что-то упустил (опечатался, не определил переменную), узнаешь моментально.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • +1

    Пускай. Веб разработка уже давно пережила это. Если сильно хочется смешать JS и HTML, то JSX — лушее, что можно придумать, так как это не "HTML в который добавили логику", а "JavaScript с дополнительным синтаксисом".

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • 0

    if/else в виде атрибутов — антипаттерн. А так, да, без создания класса, либо экземпляра класса не обойтись.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • +2

    Ну, будем честными, можно вообще на всё забить и использовать React/Redux.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • +1

    Я не работал с библиотекой, о которой вы говорите. Я так порнимаю, что речь идет об автоматическом рендеринге коллекций, верно? Можете пролистать в самый конец этого поста, там типичный пример создания простой коллекции с её рендерингом. Документация к классу Matreshka.Array тут.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • –1

    У нас с Вами всё время возниакют споры, касающиеся двух методов. Сейчас они работают немного по-другому, гляньте переработанное описание bindNode и calc (ниже описание флагов с объяснениями) и исходный код.


    Благодаря тому, что фреймворк переписан с нуля и разбит на сотню модулей (я не считал, но примерно, так), вносить изменения, касающиеся оптимизаций можно намного проще, чем раньше. Я буду рад, если обратите моё внимание на какие-нибудь недочеты.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • –1

    Условных байндингов в шаблонизаторе нету, иначе бы получился "очередной Ангуляр, но лучше". Байндинги должны быть в JavaScript коде (bindNode), за исключением самых простых (parseBinsings).

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • 0

    Да, там много всяких улучшений. Например calc и bindNode юзают debounce по умолчанию. Если обновите тест, буду благодарен.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • 0

    Под конец, в спешке, белиберду написал, сорри. Перефразирую: юзеры так считают, не я.

    Matreshka.js 2 — самый простой фреймворк во Вселенной
  • +3

    Наверно, стоило применить известную практику, которую я использовал в других постах о фреймворке "код для привлечения внимания", которую я, как оказалось, ошибочно считал неэффективной. В следующих постах исправлюсь.

    Matreshka.js 2 — самый простой фреймворк во Вселенной