А вы знали что
Да, их придется импортитровать каждый раз из какого-то глобального файла констант. И это очень хорошо, так за ними проще следить.
process.exit() возвращает never и этим может гарантировать наличие ваших энвов? 😉Да, их придется импортитровать каждый раз из какого-то глобального файла констант. И это очень хорошо, так за ними проще следить.
👍20🔥5
https://learnxinyminutes.com/
Огромная подборка очень быстрых туториалов по разным технологиям и языкам программирования на разных языках (человеческих).
Огромная подборка очень быстрых туториалов по разным технологиям и языкам программирования на разных языках (человеческих).
❤🔥18👍3🔥2
https://www.loom.com/share/878294970d8e48919c819f35d0cd0da4
https://www.val.town/
Новая платформа для простого и быстрого прототипирования - закинули код в инпут и получили бесплатную лямбду в облаке. Есть возможность ссылаться на другие лямбды, секреты (приватные энвы), запуск по расписанию!
R.I.P. runkit.com
https://www.val.town/
Новая платформа для простого и быстрого прототипирования - закинули код в инпут и получили бесплатную лямбду в облаке. Есть возможность ссылаться на другие лямбды, секреты (приватные энвы), запуск по расписанию!
R.I.P. runkit.com
Loom
Val Town Demo (Sept 9, 2022)
🔥6❤2👍2
Forwarded from melikhov.dev
https://t.me/artalog/624
Фан-факт про JS, который вы, возможно не знали. В спеке JS не Integer, но есть абстрактная операция ToIntegerOrInfinity которая используется для приведения Number к целому числу. И работает она так, что просто отрезает всё, что находится за запятой — It converts argument to an integer representing its Number value with fractional part truncated, or to +∞ or -∞ when that Number value is infinite
Убедитесь сами, вот вам спецификация.
Фан-факт про JS, который вы, возможно не знали. В спеке JS не Integer, но есть абстрактная операция ToIntegerOrInfinity которая используется для приведения Number к целому числу. И работает она так, что просто отрезает всё, что находится за запятой — It converts argument to an integer representing its Number value with fractional part truncated, or to +∞ or -∞ when that Number value is infinite
Убедитесь сами, вот вам спецификация.
Telegram
artalog
А вот что бы вам совсем весело было.
👍4😁4👎1
artalog
JavaScript empty mark Есть такой интересный proposal-partial-application, который предлагает сахар для частичного биндинга аргументов функции. Мне нравится идея этого предложения, я сталкиваюсь с задачами где это могло бы быть полезно, но мне очень не нравится…
JavaScript skip symbol
Обновил пропосал, добавил еще кейсов (про ссылочную прозрачность). Напомню смысл: возможность биндить аргументы любого порядка. Звучит как ерунда, но этим можно улучшить перф наивного кода, сделать его предсказуемее и, возможно, добавить ленивости методам массива.
Обновил пропосал, добавил еще кейсов (про ссылочную прозрачность). Напомню смысл: возможность биндить аргументы любого порядка. Звучит как ерунда, но этим можно улучшить перф наивного кода, сделать его предсказуемее и, возможно, добавить ленивости методам массива.
GitHub
Skip mark · Issue #53 · tc39/proposal-partial-application
Hi! This proposal describes an interesting pattern with a few features and few of them is missed in the readme. Reference transparency // NO setTimeout(() => resolve(value), ms); // YES setTimeo...
👍3🔥1
👍3
Пишу статью про Act и на выходных сделал исходники НАМНОГО более читаемыми, мб кому интересно будет: https://github.com/artalar/act/blob/reference-implementation/src/index.ts
GitHub
act/src/index.ts at reference-implementation · artalar/act
Act is the most efficient reactive state library in both: speed, size, correctness. - artalar/act
👍7🔥4
Передавая в
resolve промис мы теряем лишний тик из-за того что then вызывается не синхронно, а в следующем тике: This process must take place as a Job to ensure that the evaluation of the then method occurs after evaluation of any surrounding code has completed. [https://262.ecma-international.org/6.0/#sec-promiseresolvethenablejob]🤔9👍7
Кто такой лид.
Хочется напомнить про этот пост, после прослушивания последних Веб-стандартов, в котором обсуждали “Великий раздел” - сложность градации разработчиков по навыкам и инженерным скилам . Бизнесу, конечно, тяжело понять что такое веб-разработчик и нанять такого человека, который действительно подойдет именно для их скоупа задач. По настоящему универсальных инженеров очень мало.
А смысл же простой: специальность (должность) - набор ролей, роль - набор обязаностей. Обязанности бывают технические и менеджерские. Понятно что всю комбинаторику тройкой названий не перекрыть. Если мы не можем договориться о том какие обязанности вмещает в себя специальность, давайте оперировать более низкоуровневыми понятиями: набором ролей, думаю тут было бы проще договориться. На крайний случай, написать в описании вакансии цель, а не средство: "Разработчик интернет магазина", "Разработчик сайта админки на поддержку". Как на фрилансе :) там критичнее найти максимально подходящего исполнителя, посмотрите какие практики там применяют.
Хочется напомнить про этот пост, после прослушивания последних Веб-стандартов, в котором обсуждали “Великий раздел” - сложность градации разработчиков по навыкам и инженерным скилам . Бизнесу, конечно, тяжело понять что такое веб-разработчик и нанять такого человека, который действительно подойдет именно для их скоупа задач. По настоящему универсальных инженеров очень мало.
А смысл же простой: специальность (должность) - набор ролей, роль - набор обязаностей. Обязанности бывают технические и менеджерские. Понятно что всю комбинаторику тройкой названий не перекрыть. Если мы не можем договориться о том какие обязанности вмещает в себя специальность, давайте оперировать более низкоуровневыми понятиями: набором ролей, думаю тут было бы проще договориться. На крайний случай, написать в описании вакансии цель, а не средство: "Разработчик интернет магазина", "Разработчик сайта админки на поддержку". Как на фрилансе :) там критичнее найти максимально подходящего исполнителя, посмотрите какие практики там применяют.
Telegram
artalog
Лид
Лид - роль.
Роль - набор обязанностей.
В разные этапы роста компании качество к разработке разное и разные приоритеты у разных обязанностей. Чем больше приоритет у каждой обязаности, тем больше на нее нужно ресурсов и тем меньше обязанностей может обслуживать…
Лид - роль.
Роль - набор обязанностей.
В разные этапы роста компании качество к разработке разное и разные приоритеты у разных обязанностей. Чем больше приоритет у каждой обязаности, тем больше на нее нужно ресурсов и тем меньше обязанностей может обслуживать…
👍6
artalog
Пишу статью про Act и на выходных сделал исходники НАМНОГО более читаемыми, мб кому интересно будет: https://github.com/artalar/act/blob/reference-implementation/src/index.ts
Не могу зарелизить новый акт, v8 что-то жутко деоптимайзит.
Медиана 1000 итераций в бенче:
node16: 0.01137ms (подозрительно медленно)
node18: 0.00765ms (подозрительно медленно)
bun0.5: 0.00079ms (как надо)
Профилировать пробовал, практически пустые функции отрабатывают раз в 20 дольше нужного.
Сегодня постараюсь запистаь видео как я это профилирую.
Медиана 1000 итераций в бенче:
node16: 0.01137ms (подозрительно медленно)
node18: 0.00765ms (подозрительно медленно)
bun0.5: 0.00079ms (как надо)
Профилировать пробовал, практически пустые функции отрабатывают раз в 20 дольше нужного.
Сегодня постараюсь запистаь видео как я это профилирую.
GitHub
GitHub - artalar/reactive-computed-bench
Contribute to artalar/reactive-computed-bench development by creating an account on GitHub.
👍17🤡9
У меня есть очень много утверждений и мыслей по архитектуре, но т.к. они у меня не формализованы, в этом канале они практически не звучали.
Хотя общий смысл простой. Архитектура - набор технических решений (тулинг - либы, паттерны, конвенции) оптимально подобранный под задачи бизнеса. Структура проекта (правила разбивки модулей) - малая часть общего вопроса.
И вот вам тейк, который я сам еще не проверял, но раздумываю над ним уже какое-то время: код нужно делить удобно для тестов.
Я давно убежден - если код удобен для тестов, это хорошо спроектированный код. Соответственно, как структурировать код и организовывать интерфейсы правильно? Подстраиваться под тесты! Хороший тест проверяет то что нужно и не проверяет что не нужно, он не лезет в детали реализации, а работает с публичными интерфейсами. Если тест писать легко и удобно, значит и другим модулям приложения будет удобно и безопасно работать с этим кодом.
И вот вопрос, тесты же разные бывают, значит..? Каждый тип теста - это отдельная часть структуры проекта. Вопрос не про доменные фичи, а про системное деление, типа слоев.
Я не селен в тестировании, но так понимаю они бывают: юнит (чистые функции или снапшот / скриншот), модульные (функциональные?), интеграционные (процессы) и e2e (как на живую). Соответственно, код нужно делить на утилиты или тупые компоненты), модули (виджеты), контроллеры для связи модулей и код для среды (рулит разницей клиент / ssr и тп).
Что думаете?
Хотя общий смысл простой. Архитектура - набор технических решений (тулинг - либы, паттерны, конвенции) оптимально подобранный под задачи бизнеса. Структура проекта (правила разбивки модулей) - малая часть общего вопроса.
И вот вам тейк, который я сам еще не проверял, но раздумываю над ним уже какое-то время: код нужно делить удобно для тестов.
Я давно убежден - если код удобен для тестов, это хорошо спроектированный код. Соответственно, как структурировать код и организовывать интерфейсы правильно? Подстраиваться под тесты! Хороший тест проверяет то что нужно и не проверяет что не нужно, он не лезет в детали реализации, а работает с публичными интерфейсами. Если тест писать легко и удобно, значит и другим модулям приложения будет удобно и безопасно работать с этим кодом.
И вот вопрос, тесты же разные бывают, значит..? Каждый тип теста - это отдельная часть структуры проекта. Вопрос не про доменные фичи, а про системное деление, типа слоев.
Я не селен в тестировании, но так понимаю они бывают: юнит (чистые функции или снапшот / скриншот), модульные (функциональные?), интеграционные (процессы) и e2e (как на живую). Соответственно, код нужно делить на утилиты или тупые компоненты), модули (виджеты), контроллеры для связи модулей и код для среды (рулит разницей клиент / ssr и тп).
Что думаете?
👍22👎1🔥1🤔1