Pull to refresh
4
0
Send message

Ясно. Вы все же говорите про доход (выручка), а не про прибыль (доход — расход).
Доходы — конечно есть.
Прибыль — обычно нет.


Даже тот же амазон на настоящий момент работает с отрицательной прибылью — все доходы вкладывает в развитие.

Amazon, к примеру — если речь о фильмах на английском. Переводные ищем где-то еще.
Понятно, что удобно, когда все в одном сервисе. Но такого требования "все в одном месте" в вашем списке не указано :)

что будет происходить с компонентами которые будут и в UserList, и в UserEditor использованы, но не в глобальных зависимостях?

Отличный вопрос. Я его пока для себя так и не закрыл. Пока что все большие общие зависимости выношу в отдельный бандл (подключается всегда). А зависимости поменьше включаются в каждый бандл, где они используются. Мирюсь с небольшим оверхедом по размеру.


Может знаете пример небольшого приложение, где будет разделение на страницы и соответственно сборка тоже по страницам

https://github.com/davezuko/react-redux-starter-kit
Здесь шаблон spa с парой преднастроенных страниц. И да, динамическая загрузка бандлов для них.

В США, к примеру, стартап — это компания с возрастом существования до 5 лет и прибылью в миллион долларов (именно прибылью, а не выручкой или оборотом)

А откуда такое определение?
Кстати у стартапов обычно прибыли нет, они в минус работают — отсюда необходимость поднимать очередной раунд инвестиций.
Важный финансовый показатель — cash burn. Говорит, как быстро расходуются деньги в банке, полученные с предыдущих инвестиций.

Вы хоть читаете комменты или бомбите наугад?

За всеми ветками комментов разве уследишь? С одной бы разобраться.


у браузера есть всего 3 секунды на разбор полотна скриптов

Код оптимизируется в ран-тайме, используя ран-тайм статистику (в частности, то, как часто вызывается та или иная функция).

которые замечательно инлайнятся в нормальных компилируемых языках

Какой-нибудь полиморфный вызов метода в джаве — и инлайна уже не будет.


С другой стороны, V8 тоже отлично умеет инлайнить. Напр., http://www.mattzeunert.com/2015/08/21/toggling-v8-function-inlining-with-node.html

Транслирует. Нет, конечно, сейчас могут набежать всякие умники и кричать

А могут и не кричать, а попросить внятно объяснить разницу между трансляцией и компиляцией, как вы ее видите. Ибо в моем понимании преобразование JS кода в машинный (ассемблер) — это именно что компиляция.


DOM очень даже имеет отношение, так как .js файлы нужно парсить

Ок, нужно парсить. А DOM (Document Object Model) при чем? Или речь о чем-то вроде AST (Abstract Syntax Tree)?


Хорошо, покажите мне цифры.

https://gist.github.com/amakhrov/e52a9c1430d2103f676c75118aa5eba6
Для простоты обе функции объявлены в одном файле, но для бОльшей изоляции каждый раз запускаю только одну из них (последние две строчки — раскомментарена только одна)


-> node -v
v6.3.1

-> node perf.js
"mainSeparate()" duration: 9922ms

-> node perf.js
"mainInline()" duration: 10148ms

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

Строго говоря, вы не просто заинлайнили функцию. Вы еще и общую логику кода изменили.
было:


te[0] = a;
t[0] = t[0] * detInv; // посредством вызова метода

стало:


te[0] = a * detInv;

На одно чтение/запись элемента массива меньше — это само по себе оптимизация.


Так что из данного примера неочевидно, что именно вынос кода в отдельную функцию дает ощутимый эффект.

мой вопрос касался интерпретируемых языков, в частности, 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

Было бы неплохо увидеть финальный код.
И сравнить с парсером, написанным с использованием како-то другого подхода.


Лично мне код не показался очень простым и понятным. Но возможно, простота познается в сравнении, и на деле другие реализации были бы гораздо сложнее?


Кстати, по-моему, написанный парсер строковых литералов не обработает строку с двойной кавычкой внутри ("I \"am\" inside") :)

Наши СЕОшники говорят, что поддиректории лучше для SEO, чем поддомены.


Быстрый гуглинг выдает кучу обсуждений по этому вопросу — видать, тема и правда спорная. Но вроде, превалирующая рекомендация — поддиректории.

Спасибо! Ради этого коммента и стоило открывать статью.

не основная база пользователей рамблера, а какая-то условно «соседняя»

Вполне может быть и основной.
Вот только что зашел на ozon.ru, нажал кнопку "забыл пароль".
И что бы вы думали?


Здравствуйте, Алексей
Рады видеть Вас на Ozon.ru
Ваш логин: my-email@mail.ru
Ваш пароль: мой-реальный-пароль

На минуточку, один из крупнейших онлайн-магазинов России.

По-моему, у них на сайте висит не-progressive версия
Открываю https://m.airberlin.com/en/ — не вижу никакого ServiceWorker-а


Ну или это такое A/B тестирование. Новую PWA показывает кому-то еще, а мне — старую версию.

  • Корректность работы можно проверить, только установив пакет и прикрутив его к своему приложению. То есть это не поможет с начальным выбором.


  • Зачастую поиск выдаст несколько пакетов, в которых, судя по документации, есть все те (или примерно те) функции, которые нужны. И вот тут-то из них выбираем по количеству скачиваний и частоте коммитов / дате последнего обновления (банально проверяем, что пакет еще поддерживается в принципе).

В скайпе в начале сообщения вводим !! и дальше текст сообщения с новой строки. Сообщение форматируется как будто с тэгом <pre> — моноширинный шрифт, никакой замены скобок на смайлики

В скайпе в начале сообщения вводим!!! и дальше текст сообщения с новой строки.
Уже поддерживает — https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/
Ребята из Uber пытаются (небезуспешно) решить ту же проблему — https://github.com/uber/react-vis
он не работает с файловой системой, в самом языке нет такой функциональности

Язык и не должен работать с файловой системой сам по себе. Это задача стандартных библиотек.
Сравним C#:
string text = System.IO.File.ReadAllText(@"path/to/file");

и JS:
let text = require('fs').readFileSync('path/to/file');


/offtop
А вам бы действительно хотелось, чтобы JS в веб-браузере мог работать с вашей файловой системой?

Information

Rating
Does not participate
Registered
Activity