Amazon, к примеру — если речь о фильмах на английском. Переводные ищем где-то еще.
Понятно, что удобно, когда все в одном сервисе. Но такого требования "все в одном месте" в вашем списке не указано :)
что будет происходить с компонентами которые будут и в UserList, и в UserEditor использованы, но не в глобальных зависимостях?
Отличный вопрос. Я его пока для себя так и не закрыл. Пока что все большие общие зависимости выношу в отдельный бандл (подключается всегда). А зависимости поменьше включаются в каждый бандл, где они используются. Мирюсь с небольшим оверхедом по размеру.
Может знаете пример небольшого приложение, где будет разделение на страницы и соответственно сборка тоже по страницам
В США, к примеру, стартап — это компания с возрастом существования до 5 лет и прибылью в миллион долларов (именно прибылью, а не выручкой или оборотом)
А откуда такое определение?
Кстати у стартапов обычно прибыли нет, они в минус работают — отсюда необходимость поднимать очередной раунд инвестиций.
Важный финансовый показатель — cash burn. Говорит, как быстро расходуются деньги в банке, полученные с предыдущих инвестиций.
Транслирует. Нет, конечно, сейчас могут набежать всякие умники и кричать
А могут и не кричать, а попросить внятно объяснить разницу между трансляцией и компиляцией, как вы ее видите. Ибо в моем понимании преобразование JS кода в машинный (ассемблер) — это именно что компиляция.
DOM очень даже имеет отношение, так как .js файлы нужно парсить
Ок, нужно парсить. А DOM (Document Object Model) при чем? Или речь о чем-то вроде AST (Abstract Syntax Tree)?
мой вопрос касался интерпретируемых языков, в частности, JavaScript.
JS — очень даже компилируется. V8 компилирует его в нативный код, Rhino в байт-код JVM, etc.
переходов по DOM-дереву в поисках функции
DOM не имеет никакого отношения компиляции и выполнению кода
Теперь про оптимизации.
Раз был упомянут JS, давайте на примере движка V8. Есть ряд способов помешать V8 оптимизировать функцию (см, допустим, тут — https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#3-managing-arguments). К примеру, нам нужно использовать try/catch при парсинге json. Если такое происходит в большой функции, то она вся не оптимизируется. А если ее разбить на небольшие функции, то бОльшая часть из них будет оптимизирована. Неоптимизированной останется только та, в которой остался наш try/catch
Корректность работы можно проверить, только установив пакет и прикрутив его к своему приложению. То есть это не поможет с начальным выбором.
Зачастую поиск выдаст несколько пакетов, в которых, судя по документации, есть все те (или примерно те) функции, которые нужны. И вот тут-то из них выбираем по количеству скачиваний и частоте коммитов / дате последнего обновления (банально проверяем, что пакет еще поддерживается в принципе).
В скайпе в начале сообщения вводим !! и дальше текст сообщения с новой строки. Сообщение форматируется как будто с тэгом <pre> — моноширинный шрифт, никакой замены скобок на смайлики
Ясно. Вы все же говорите про доход (выручка), а не про прибыль (доход — расход).
Доходы — конечно есть.
Прибыль — обычно нет.
Даже тот же амазон на настоящий момент работает с отрицательной прибылью — все доходы вкладывает в развитие.
Amazon, к примеру — если речь о фильмах на английском. Переводные ищем где-то еще.
Понятно, что удобно, когда все в одном сервисе. Но такого требования "все в одном месте" в вашем списке не указано :)
Отличный вопрос. Я его пока для себя так и не закрыл. Пока что все большие общие зависимости выношу в отдельный бандл (подключается всегда). А зависимости поменьше включаются в каждый бандл, где они используются. Мирюсь с небольшим оверхедом по размеру.
https://github.com/davezuko/react-redux-starter-kit
Здесь шаблон spa с парой преднастроенных страниц. И да, динамическая загрузка бандлов для них.
А откуда такое определение?
Кстати у стартапов обычно прибыли нет, они в минус работают — отсюда необходимость поднимать очередной раунд инвестиций.
Важный финансовый показатель — cash burn. Говорит, как быстро расходуются деньги в банке, полученные с предыдущих инвестиций.
За всеми ветками комментов разве уследишь? С одной бы разобраться.
Код оптимизируется в ран-тайме, используя ран-тайм статистику (в частности, то, как часто вызывается та или иная функция).
Какой-нибудь полиморфный вызов метода в джаве — и инлайна уже не будет.
С другой стороны, V8 тоже отлично умеет инлайнить. Напр., http://www.mattzeunert.com/2015/08/21/toggling-v8-function-inlining-with-node.html
А могут и не кричать, а попросить внятно объяснить разницу между трансляцией и компиляцией, как вы ее видите. Ибо в моем понимании преобразование JS кода в машинный (ассемблер) — это именно что компиляция.
Ок, нужно парсить. А DOM (Document Object Model) при чем? Или речь о чем-то вроде AST (Abstract Syntax Tree)?
https://gist.github.com/amakhrov/e52a9c1430d2103f676c75118aa5eba6
Для простоты обе функции объявлены в одном файле, но для бОльшей изоляции каждый раз запускаю только одну из них (последние две строчки — раскомментарена только одна)
Разница небольшая, но в пользу варианта с разнесением кода по двум отдельным функцию.
Строго говоря, вы не просто заинлайнили функцию. Вы еще и общую логику кода изменили.
было:
стало:
На одно чтение/запись элемента массива меньше — это само по себе оптимизация.
Так что из данного примера неочевидно, что именно вынос кода в отдельную функцию дает ощутимый эффект.
JS — очень даже компилируется. V8 компилирует его в нативный код, Rhino в байт-код JVM, etc.
DOM не имеет никакого отношения компиляции и выполнению кода
Раз был упомянут JS, давайте на примере движка V8. Есть ряд способов помешать V8 оптимизировать функцию (см, допустим, тут — https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#3-managing-arguments). К примеру, нам нужно использовать try/catch при парсинге json. Если такое происходит в большой функции, то она вся не оптимизируется. А если ее разбить на небольшие функции, то бОльшая часть из них будет оптимизирована. Неоптимизированной останется только та, в которой остался наш try/catch
Было бы неплохо увидеть финальный код.
И сравнить с парсером, написанным с использованием како-то другого подхода.
Лично мне код не показался очень простым и понятным. Но возможно, простота познается в сравнении, и на деле другие реализации были бы гораздо сложнее?
Кстати, по-моему, написанный парсер строковых литералов не обработает строку с двойной кавычкой внутри (
"I \"am\" inside"
) :)Наши СЕОшники говорят, что поддиректории лучше для SEO, чем поддомены.
Быстрый гуглинг выдает кучу обсуждений по этому вопросу — видать, тема и правда спорная. Но вроде, превалирующая рекомендация — поддиректории.
Спасибо! Ради этого коммента и стоило открывать статью.
Вполне может быть и основной.
Вот только что зашел на ozon.ru, нажал кнопку "забыл пароль".
И что бы вы думали?
На минуточку, один из крупнейших онлайн-магазинов России.
По-моему, у них на сайте висит не-progressive версия
Открываю https://m.airberlin.com/en/ — не вижу никакого ServiceWorker-а
Ну или это такое A/B тестирование. Новую PWA показывает кому-то еще, а мне — старую версию.
Корректность работы можно проверить, только установив пакет и прикрутив его к своему приложению. То есть это не поможет с начальным выбором.
В скайпе в начале сообщения вводим
!!
и дальше текст сообщения с новой строки. Сообщение форматируется как будто с тэгом<pre>
— моноширинный шрифт, никакой замены скобок на смайликиЯзык и не должен работать с файловой системой сам по себе. Это задача стандартных библиотек.
Сравним C#:
и JS:
/offtop
А вам бы действительно хотелось, чтобы JS в веб-браузере мог работать с вашей файловой системой?