Согласен, бандлер Bun имеет мало настроек и подойдёт далеко не всем. Я сам где-то использую esbuild вместо него.
А bun test на моих тестах отрабатывал примерно в 10 раз быстрее vitest, но такого результата можно добиться только на синхронных тестах. Если в проекте есть много асинхронных тестов, то, из-за ожиданий, результат будет менее значительным.
Какой-то неполноценный переход на Bun, потому что у вас в качестве бандлера используется депрекейтнутый tsup, а для запуска тестов vitest. В Bun есть встроенный бандлер, который будет однозначно быстрее и так-же есть встроенный jest-совместимый тестраннер, у которого, в версии Bun 1.3, появилась возможность запускать тесты параллельно, благодаря этому он стал быстрее vitest.
Тут больше камень в огород не к типу null, а к оператору typeof. Этот оператор, как бы странно это не звучало, не возвращает тип данных. Это можно понять по тому, что код typeof (() => {}) вернёт function, а такого типа данных в JS не существует. Думаю, если бы оператор typeof назывался как whatis (к примеру), то подобные споры бы не возникали.
И что тут не так? parseInt принимает значение и систему счисления, а map вызывает функцию со значением, индексом и массивом, поэтому результат выполнения правильный. Да, в JS можно отстрелить ногу, но делать это не обязательно.
Почему typeof null === 'object' назначен багом? В спеке написано, что null - это значение, которое представляет из себя отсутствие значения у объекта. То есть null задуман как отсутвующая ссылка на объект (в других языках null используется аналогично). Поэтому не баг, а фича.
Чтобы сделать анти вх на сервере, придётся хранить актуальное и довольно точное 3D представление карты и просчитывать физику на сервере. Это довольно дорого.
А если это и получится сделать идеально, то вблизи от противников это может не помочь - чит, теоретически, может рассчитать позицию других игроков в зависимости от получаемого звука шагов (это если сервер не передаёт позицию игрока, чтобы игрок услышал шаги, а передаёт информацию прямо о звуке).
Пенькам в прошлом поколении добавили мощи — они теперь с Hyper Threading. Не думаю, что на кофе что-то сильно изменится, разве что частоты слегка поднимут.
Согласен, бандлер Bun имеет мало настроек и подойдёт далеко не всем. Я сам где-то использую esbuild вместо него.
А bun test на моих тестах отрабатывал примерно в 10 раз быстрее vitest, но такого результата можно добиться только на синхронных тестах. Если в проекте есть много асинхронных тестов, то, из-за ожиданий, результат будет менее значительным.
Какой-то неполноценный переход на Bun, потому что у вас в качестве бандлера используется депрекейтнутый tsup, а для запуска тестов vitest. В Bun есть встроенный бандлер, который будет однозначно быстрее и так-же есть встроенный jest-совместимый тестраннер, у которого, в версии Bun 1.3, появилась возможность запускать тесты параллельно, благодаря этому он стал быстрее vitest.
А бенчмарки с сравнением обоих реализаций делали? Было бы интересно посмотреть.
Спасибо)
Было дело)
Тут больше камень в огород не к типу null, а к оператору typeof. Этот оператор, как бы странно это не звучало, не возвращает тип данных. Это можно понять по тому, что код typeof (() => {}) вернёт function, а такого типа данных в JS не существует. Думаю, если бы оператор typeof назывался как whatis (к примеру), то подобные споры бы не возникали.
И что тут не так? parseInt принимает значение и систему счисления, а map вызывает функцию со значением, индексом и массивом, поэтому результат выполнения правильный. Да, в JS можно отстрелить ногу, но делать это не обязательно.
Я больше описывал область его применения, а не то, чем он является.
В этой статье исключительно догадки, а описание null как объекта появилось уже в первой спецификации языка.
JS - это язык с автоматической конвертацией типов. Для таких языков это правильное поведение. В этом есть свои плюсы и минусы.
Почему typeof null === 'object' назначен багом? В спеке написано, что null - это значение, которое представляет из себя отсутствие значения у объекта. То есть null задуман как отсутвующая ссылка на объект (в других языках null используется аналогично). Поэтому не баг, а фича.
Чтобы сделать анти вх на сервере, придётся хранить актуальное и довольно точное 3D представление карты и просчитывать физику на сервере. Это довольно дорого.
А если это и получится сделать идеально, то вблизи от противников это может не помочь - чит, теоретически, может рассчитать позицию других игроков в зависимости от получаемого звука шагов (это если сервер не передаёт позицию игрока, чтобы игрок услышал шаги, а передаёт информацию прямо о звуке).
Пенькам в прошлом поколении добавили мощи — они теперь с Hyper Threading. Не думаю, что на кофе что-то сильно изменится, разве что частоты слегка поднимут.