Lynn «Кофеман»
const x = catToID.get(path[j - 1]); if (typeof x === 'number') { category.parent = x }
Ilia
Тут тс прав, динамичное вычисление типов в компайл тайме, кода вычисления будут в рантайме, это путь в ад
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Тут тс прав, динамичное вычисление типов в компайл тайме, кода вычисления будут в рантайме, это путь в ад
Да в чем ад то, лол. Есть ли у нас значение в Словаре – присваиваем, нет значения – не присваеваем
Порридж В Ко-ливинге
Походу вы мне все предлагаете на Си вернуться
Порридж В Ко-ливинге
const x = catToID.get(path[j - 1]); if (typeof x === 'number') { category.parent = x }
Ок, сработало, только странно что он это сразу не может делать. Очень странно const parent = catToID.get(path[j - 1]); if (parent !== undefined) { category.parent = parent; }
Ilia
Да в чем ад то, лол. Есть ли у нас значение в Словаре – присваиваем, нет значения – не присваеваем
j может быть чем угодно, поэтому нет гарантии что в первом и втором варианте это будет одно и тоже, поэтому и тип остаётся тот же самый как до проверки
Ilia
Защита от оверинжеринга от тс
Ilia
j – переменная, которую мы не меняем. Какие еще должны быть гарантии? 😅
Это может быть геттером, который каждый раз разные значения возвращает
Ilia
Тайпскрипт оперирует типами, а не имплементацией кода
Порридж В Ко-ливинге
Ilia
Не может) Это переменная объявленная выше)
Для него не будет разницы объявишь ты это как переменную или как геттер, он смотрит только на тип
Ilia
Return type будет number, им он и будет оперировать
Ilia
А как объявлять переменную как getter?
Ты у любой переменной может сеттер и геттер переобъчвить при объявлении
Ilia
Для этого синтаксис специальный есть
Порридж В Ко-ливинге
Ты у любой переменной может сеттер и геттер переобъчвить при объявлении
Это что-то новое? Я ни разу не видел чтобы переменная была getter ом. Максимум свойства объекта
Порридж В Ко-ливинге
Не у переменной, а у свойства.
Типо я могу поменять get у Map.prototype?
Порридж В Ко-ливинге
В общем что-то не ладное, но и ладно, буду делать через переменные
Lynn «Кофеман»
j – переменная, которую мы не меняем. Какие еще должны быть гарантии? 😅
Ты вызываешь метод get. TS ничего не знает про гарантии этого метода, кроме возвращаемого типа
Порридж В Ко-ливинге
Ilia
Типо я могу поменять get у Map.prototype?
да, примерно это я и имел ввиду
Ilia
а так же для тайпскрипта не будет разницы напишешь ты j=0; j=calculate(); j = someoBj.propGetter, он все будет выводить только на основе типа j, но не того, что именно в нее присвоилось
Yarik
Вот жуть)
Viktor
чуть-чуть совсем не «идиоматичный» котлин 😊
Lynn «Кофеман»
Сегодня у меня впервые скрипт работал 10 секунд
Порридж В Ко-ливинге
Сегодня у меня впервые скрипт работал 10 секунд
Что за скрипт? 10 сек типо много или мало?
Lynn «Кофеман»
Вторая часть сегодняшней задачи. Найти 30-миллионный элемент.
Порридж В Ко-ливинге
Вторая часть сегодняшней задачи. Найти 30-миллионный элемент.
Что за 30тимиллионный? Можно задачку посмотреть?
Lynn «Кофеман»
https://adventofcode.com/2020/day/15
Lynn «Кофеман»
Тебе наверное видно только первую часть, но во второй только одно отличие, вместо 2020 числа нужно найти 30'000'000 число.
Порридж В Ко-ливинге
Аааа, лол, ок
Порридж В Ко-ливинге
https://adventofcode.com/2020/day/15
Хм. Ну тут походу математикой будет сложно
Lynn «Кофеман»
Угу. У меня набралось три с половиной миллиона различных чисел
Roman
у меня 3 минуты 😅
Замена объекта {} и поиска ключей в объекте (item in obj) на Map сократила время c 3 минут до 5 сек. node ./src/15.js ./data/15.txt 5.41s user 0.11s system 100% cpu 5.515 total
Lynn «Кофеман»
У меня сразу Map. Но 5-10 секунд можно списать на разные процессоры
Порридж В Ко-ливинге
Привет. Ты Front-end?)
Ilia
вот так сразу ярлык на человека повесили ))
Viktor
Привет. Ты Front-end?)
ага, звучит как оскорбление 😂
Plotnik
Привет. Ты Front-end?)
И не скрываю этого )
Viktor
все мы писали или пишем джаваскрипт, че уж тут скрывать
Ilia
вот человеек сейчас и думает: скажу да - кикнут, а может быть скажу нет - кикнут 😄
Ilia
все мы писали или пишем джаваскрипт, че уж тут скрывать
хорошо есть только на нем, а не на его разновидностях, которые были до es6
Порридж В Ко-ливинге
@vitkarpov Кстати, недавно говорили, как все в IT долго в поане найма. Но вот ребята из ВК все ОЧЕНЬ оперативно сделали. Я получается вчера написал Азату и заполнил заявку. Сегодня обедом позадавали глупые вопросы и сказали что обсудят с командой. А сегодня только что уже спрашивают когда собес на этой неделе хочу. ВК 💪, взялись за работу наконец-то
Порридж В Ко-ливинге
Ладно, тут не понравился вопрос некоторым. Тогда по другому спрошу, на каком ЯПе пишешь? 😁
Lynn «Кофеман»
Ну так то Азат 😀
Порридж В Ко-ливинге
Как вас зовут? Продублирую рекрутёру на всякий случай
Порридж В Ко-ливинге
Как вас зовут? Продублирую рекрутёру на всякий случай
Я не рассчитывал в этом сообщение, что мне завтра ответят уже 🤣
Порридж В Ко-ливинге
А вообще это ОЧЕНЬ полезно. Я полгода год назад подавал, вообще не ответили
Plotnik
Ладно, тут не понравился вопрос некоторым. Тогда по другому спрошу, на каком ЯПе пишешь? 😁
Та на самом обычном ) ES8, React, Nodejs Сейчас вот стало скучно, пробую в алгоритмы
Viktor
Та на самом обычном ) ES8, React, Nodejs Сейчас вот стало скучно, пробую в алгоритмы
Добро пожаловать. Попал в нужный чатик, тут все пробуют в алгоритмы 😄
Порридж В Ко-ливинге
+1
А еще рекрутеры ВК пишут прямо в ВК 🤣
Viktor
А еще рекрутеры ВК пишут прямо в ВК 🤣
вот это вообще огонь. догфудинг в полный рост 😂
Порридж В Ко-ливинге
Dog food?
Viktor
Dog food?
ага. когда свою ногу сперва сам ешь 🙂
Viktor
> Догфу́динг — практика использования компанией или командой разработчиков собственных сервисов и продуктов
Viktor
Как вас зовут? Продублирую рекрутёру на всякий случай
Есть вероятность, что Азат просто нанимает как не в себя сейчас, то есть там нехватка рук. А ещё, что Азат просто очень крут и внимательно относится к людям 🙂
Viktor
Как к людям, а не бездушным шестерёнкам корпоративной машины.
Порридж В Ко-ливинге
Viktor
походу связи нет
Порридж В Ко-ливинге
Viktor
?
сорян. не туда написал 😂
Порридж В Ко-ливинге
сорян. не туда написал 😂
Не связали мысль с правильным чатом 🤣
Evgeniy
у меня 3 минуты 😅
На каком языке? У меня секунды 3-4
Evgeniy
JS
А как запускал? В браузере?
Roman
Node
Порридж В Ко-ливинге
у меня 3 минуты 😅
Ты все результаты хранил, или только последние?
Roman
Node
https://github.com/vanesyan/adventofcode2020/blob/master/src/15.js
Evgeniy
Все будут слишком много памяти есть
Evgeniy
У меня на шарпе со словарем по монитору процессов в пике съело "на глаз" почти 180Мб. На линуксе
Порридж В Ко-ливинге
https://github.com/vanesyan/adventofcode2020/blob/master/src/15.js
А зачем массив хранить? 😃
Roman
не нужен он там)
Roman
я быстренько что-то за 5 минут накидал, чтобы решилось)