Про собственную рефлексию. Как она реализована — макросы, кодогенерация на этапе сборки, парсинг через clang? Меня интересует не столько сам механизм, сколько цена сопровождения: рефлексия в C++ обычно упирается в то, что при каждом изменении структуры её надо где-то продублировать, и рано или поздно это расходится. У вас на ней держатся и сериализация, и редактор, то есть расхождение будет стоить дорого. Как вы от этого страхуетесь?
Про веб. Меньше 3 МБ на hello world — это про нативную сборку. А что получается в вебе: какой тулчейн, какой реальный размер бандла и сколько занимает первый старт? Для 2D это обычно решающая цифра, и её почти никогда не публикуют.
И отдельно снимаю шляпу за 2000 тестов в движке. Это редкость, и мне правда любопытно, что именно ими покрыто: математика и утилиты или доходит до рендера и физики?
Пункт про язык гипотез оказался у меня дороже остальных шести, причём узнал я его цену наоборот — когда безупречно решил не ту задачу.
В августе на мой проект зашла ферма ботов: двенадцать тысяч регистраций за двое суток, капча Cloudflare не остановила ни одной. Две недели я занимался тем, что умею: разбирал распределение регистраций по рефереру, искал аномалии, в итоге нашёл приём, который выбил всех до одного и не задел живых людей. Технически это была чистая победа, и я ей до сих пор доволен.
А потом ботов не стало — и стало видно, что живых-то и не было. Настоящий вопрос всё это время стоял другой: не «как отбиться», а «зачем сюда вообще приходить». И я его не трогал ровно потому, что он не решается кодом, а значит не выглядит как работа. Две недели отладки ощущаются продуктивнее, чем один честный вечер с вопросом, на который у тебя нет метода.
Так что я бы добавил восьмой язык: язык неудобного вопроса — того, который не решается тем, что ты умеешь лучше всего.
Два вопроса по внутренностям, если не сложно.
Про собственную рефлексию. Как она реализована — макросы, кодогенерация на этапе сборки, парсинг через clang? Меня интересует не столько сам механизм, сколько цена сопровождения: рефлексия в C++ обычно упирается в то, что при каждом изменении структуры её надо где-то продублировать, и рано или поздно это расходится. У вас на ней держатся и сериализация, и редактор, то есть расхождение будет стоить дорого. Как вы от этого страхуетесь?
Про веб. Меньше 3 МБ на hello world — это про нативную сборку. А что получается в вебе: какой тулчейн, какой реальный размер бандла и сколько занимает первый старт? Для 2D это обычно решающая цифра, и её почти никогда не публикуют.
И отдельно снимаю шляпу за 2000 тестов в движке. Это редкость, и мне правда любопытно, что именно ими покрыто: математика и утилиты или доходит до рендера и физики?
Пункт про язык гипотез оказался у меня дороже остальных шести, причём узнал я его цену наоборот — когда безупречно решил не ту задачу.
В августе на мой проект зашла ферма ботов: двенадцать тысяч регистраций за двое суток, капча Cloudflare не остановила ни одной. Две недели я занимался тем, что умею: разбирал распределение регистраций по рефереру, искал аномалии, в итоге нашёл приём, который выбил всех до одного и не задел живых людей. Технически это была чистая победа, и я ей до сих пор доволен.
А потом ботов не стало — и стало видно, что живых-то и не было. Настоящий вопрос всё это время стоял другой: не «как отбиться», а «зачем сюда вообще приходить». И я его не трогал ровно потому, что он не решается кодом, а значит не выглядит как работа. Две недели отладки ощущаются продуктивнее, чем один честный вечер с вопросом, на который у тебя нет метода.
Так что я бы добавил восьмой язык: язык неудобного вопроса — того, который не решается тем, что ты умеешь лучше всего.