Дмитрий Тусаев (@tusaeff) header
Дмитрий Тусаев (@tusaeff) profile picture

еще один фронтендер из yet another company

Москва
Joined March 2020
Photo by Дмитрий Тусаев (@tusaeff)Photo by Дмитрий Тусаев (@tusaeff)Photo by Дмитрий Тусаев (@tusaeff)Photo by Дмитрий Тусаев (@tusaeff)Photo by Дмитрий Тусаев (@tusaeff)Photo by Дмитрий Тусаев (@tusaeff)Photo by Дмитрий Тусаев (@tusaeff)Photo by Дмитрий Тусаев (@tusaeff)Photo by Дмитрий Тусаев (@tusaeff)Photo by Дмитрий Тусаев (@tusaeff)
Люди думают, что костыли при работе с датами изобрели инженеры, но это совсем не так Взять хотя бы високосный год:
10
233
30
753
Очень круто про то, как работает esbuild
This Post is from an account that no longer exists. Learn more
2
Когда я работал с блокчейном, часто приходилось открывать nodejs repl и вбивать там однотипные команды для web3.js Оказывается в репле есть команды .save и .load которые позволяют сохранить сессию в файл и запустить из файла! кайф?
1
А еще есть команда .editor, которая запускает полноценный редактор (ну не вим, конечно - но лучше чем обычный однострочный режим) - супер крутая штука для длинных команд
1
Лайфхак: `git checkout -` (а еще можно `git switch -`) возвращает на предыдущую ветку, на которой вы были. Сам пользуюсь всего пару недель, но уже сэкономил символов на половину войны и мира
1
3
Оказывается, в Typescript есть конструкция asserts <условие>, которая позволяет указать, что функция выбрасывает ошибку, если не выполняется условие
Какую только дичь не спрашивают 😱
This Post is from an account that no longer exists. Learn more
1
Кстати, еще в тему ревью - недавняя статья от девов из Netlify netlify.com/blog/2020/03/05/… Они проставляют ревью-комментариям тэги, отмечающие важность - самые неважный можно смело игнорировать, самый важный означает, что весь пр в целом решает не ту задачу, которую нужно
Такие вещи должен проверять линтер (ESLint или Prettier для JS, Stylelint для CSS) ещё в момент pre-commit хука. Если это смотрит человек в PR — то это трата времени и лишние конфликты в команде.
1
1
11
Это помогает понимать друг друга: по опыту, часто возникают ситуации, когда из-за каких-то мелких замечаний важные для бизнеса фичи откладываются на часы и дни - потому что автор пул реквеста подумал, что это важно исправить (хотя ревьюер такого и не имел в виду)
Дотащил до маркетплейса расширений: marketplace.visualstudio.com… 🎉🎉🎉
Идея, которая не дает спать по ночам: синхронизировать тему @code с цветовым профилем iterm2 как это работает ↓
1
Следующие пункты в роадмапе: 1. Добавить, помимо автовывода цветов, возможность указать явное соответствие между vscode theme и .itermcolors файлом (то есть - не выводить автоматически цвета, а просто включать какую-то заранее выбранную тему)
1
Идея, которая не дает спать по ночам: синхронизировать тему @code с цветовым профилем iterm2 как это работает ↓
2
1
2
В vscode есть event, который позволяет узнать, что пользователь изменил тему: code.visualstudio.com/api/re… (правда, чтобы достать оттуда цвета и название темы нужно применять всякие грязные хаки)
1
TIL: в макбуках можно использовать Touch ID для sudo (а еще всякие аппаратные ключи - типа YubiKey) При этом, если авторизация по отпечатку пальца не пройдет, то он сфолбечится к обычному вводу пароля apple.stackexchange.com/a/30…
Одна из самых бесячих штук в React разработке - постоянно деструктурировать пропсы руками Казалось бы - зная тип обьекта, это достаточно легко автоматизировать на уровне редактора, но готовых плагинов cходу не нашлось - пришлось писать свой
2
1
Оказалось, что написать такой плагин сильно сложнее, чем кажется - например, в вскод есть source action "вынести smth в отдельный файл", который выдергивает определение функции (например) в переменную в другом файле и добавляет импорт github.com/microsoft/TypeScr… - почти тыща строк!
Еще одна смешная история, не про костыли, но про важность документации: через два года после создания юлианского календаря Цезаря убили (бывает) и после его смерти римляне еще 36 лет неправильно отсчитывали високосные года, пока император Август не пофиксил беспорядок
2
"When companies getting bigger they want to replicate their initial success ... so they start to institutionalize process" "The best people are those who really understand the content and they are pain in the butt to manage (but you put up with it)" youtube.com/watch?v=mVGmMwjn…
На самом деле Javascript не воровал название, его правда разработали, чтобы писать скрипты для Java. В те времена майкрософт плотно наступал на пятки Netscape и они объединились с Sun, предложив им интегрировать Java (она тогда только появилась) в свой браузер. Но java была...
Вся суть JS в одном предложении: JavaScript даже название стащил у Java, чтобы проехаться на её хайпе, так что нечего удивляться, что в его экосистеме как нигде больше процветает Hype Driven Development.
2
2
Но java была сложной в освоении, а у Майков была убойная пара Visual C++ (мощный) и Visual Basic (простой), поэтому было решено добавить к Java простой в освоении язык, c которым любой новичок мог бы работать с классами из Java (а уже их писали бы настоящие программисты)
1
1
gentle reminder: :// в URI не единая конструкция (как легко подумать, если всю жизнь провел в http://веб2.0), а две разных - двоеточие означает конец scheme, а // - начало т. н. authority и является не всегда обязательным (в отличии от схемы и :, которые обязаны быть в URI)
1
1
таким образом: yandex.ru, но mailto:[email protected] P.S. boss level - file:///images/yandex-logo.png (тут третий слэш обозначает начало пути, а первые два = пустой хост, что значит, что искать файлы надо локально)
А я кстати наоборот думаю, что это отличные вопросы для собеседований и как раз потому что они такие растиражированные: про них всем известно, что их будут спрашивать, и они показывают насколько глубоко кандидат сможет погрузиться в некую тему (а глубина у всех разная)
Туда же можно добавить и про замыкание. Cчитаю должны быть гибкие подходы в собеседовании и выбирать в команду надо в первую очередь коллегу, а не спрашивать согласно списку, видя что человеку не интересно отвечать на них в миллионный раз и все понятно с его компетенцией.
1
И даже скучными их назвать сложно: лично я, например, так и не нашел время, чтобы разобраться в каких спеках прописаны т. н. микротаски (html, es, спеки движков?) и зачем они вообще нужны. почему таймауты в одной очереди, а промисы - в другой, более приоритетной? непонятно 🤷‍♂️
1
праздник со слезами на глазах
1
Лайфхак, как запускать vue-devtools на production сборках сайтов: P.S это не реклама sports.ru, просто первое что пришло в голову P.P.S это реклама галустяна
1
1
Почему вообще в production-режиме не открывается вкладка vue? Чтобы девтулзы заработали, они должны получить доступ к классу Vue (не инстансу) и инстансу Vuex (не классу).
1
Хорошая идея, которая почему-то еще не стала широко популярной: разделять (в сознании и коде) состояние (state) и данные (в статье это называется «knowledge» - но мне кажется, что «data» больше подходит)
Just written my first english post - and my first post for a looong while! Looks like I’m coming back into writing👌 dev.to/jabher/state-vs-knowl…
1
Я недавно был в активном поиске работы и накопил небольшое количество инсайтов, которые надо бы где-то зафиксировать (по большей части - для себя) Итак, собеседования the comprehensive guide
1
8
Prerequisites: я - middle-to-senior frontend разработчик, Москва, vue/react неважно. Побывал на собеседованиях в Авито, Яндексе, Озоне и нескольких менее серьезных компаниях. Раз двадцать проводил собеседования сам.
1