если не указать явно список файлов (package.json/files), формирующих пакет, то по-умолчанию в пакет будут включены все файлы в каталоге. Например исходники не нужны при наличии уже собранного js файла.
Я лично разделаю package.json проекта и package.json пакета, формирующегося из проекта. В него попадает лишь необходимый минимум: собранный код, типы для TS, Readme.md. Также это даёт более явный контроль над зависимостями пакета.
По сравнению с 2019.3. В настройках найдите Commit, и отключите старый режим модального окна. После этого операция коммита станет похожей на VSCode — в боковой панели, сверху список (можно древовидный) изменившихся файлов, внизу окошка для ввода текста коммита. А diff теперь становится гораздо больше, ведь он открывается как обычная вкладка, а не пытается втиснуться в половинку нижней панели VCS, как раньше.
Казалось бы, изменения не столь значительные, но для меня они кардинально меняют взаимодействие.
Я бы еще отметил отличную переработку окна Commit и Git. Настолько удобным, что теперь отпала необходимость в сторонних клиентах для большинства операций.
Они как-то на нескольких аккаунтах вставляли разовый редирект на свою рекламу антивируса Касперского. Он происходил для всех http запросов до тех пор, пока не перейдешь и не выберешь отказаться или согласиться.
Общался с техподдержкой, высказывая своё "фи". Для них это норма: "нам же надо как-то знакомить пользователей с нашими выгодными предложениями"
Принципиально перешел от них к другим именно из-за этого скотского отношения. Влазить в мой трафик неприемлемо!
очень большое время начинает отводиться на удовлетворение тайпскрипта, а не бизнеса.
Это с лихвой окупается за месяцы и годы поддержки и развития. Может быть для MVP он кому-то и кажется лишним, но для больших проектов с длинным циклом — must have.
Да и если освоится, и в проекте типы и так есть, то на них не так уж много времени тратиться.
Enum должны быть строковыми, числовые, особенно с неявными значениями (без знака =) — абсолютное зло, т.к. дебажить их нереально.
Гетеры и сетеры — зло (об этом уже писали). Не нужно повышать уровень магии в коде. А валидация должна быть внешней, либо в специальном методе.
Замечания ко второй части:
Интерфейсы предпочтительнее типов, используйте типы только, если нельзя выразить интерфейсом. Пруф. type — это просто алис для типов (или комбинации типов), а interface полноценная сущность.
Если и использовать fluent подход (цепочки), то обязательно иммутабельные (т.е. каждое звено должно генерировать клон). Но лучше обойтись, и писать явно.
К примеру:
const query = q('xxxx').where('y');
const query2 = query.limit(2); // если цепочка будет мутабельной, то мы неявно поменяем и query, что часто хотелось бы избежать
Угу, на растеризацию вектора, особенно детального, тратится сильно больше ресурсов, чем на отрисовку битмапа (просто набора цветных пикселей). За универсальность платим.
Я бы привел в пример для сравнения скриптовую сцену в игре и фильм.
присвоение innerHTML — самый быстрый (производительный) способ вставить большой фрагмент в документ. Уж движок знает, как быстро распарсить HTML. Портянка с дясятком DOM-операций не может быть производительней ОДНОЙ DOM-операции.
Гроза. Откуда молнии, непонятно. Давайте придумаем, что это дядька Зевс их кидает? Где тут бред?
Любой пробел в знаниях можно объяснить магически, мозгу удобно это. Есть какой-то неизвестный фактор — давайте назовем его загадочно "тёмная материя", и вот, теперь загадки нет. На любой вопрос о расхождении теории с практикой — списываем все на тёмную материю.
Вспоминается похожая история с МакХост и Оверсан-Меркурий почти десятилетней давности. Там тоже разошлись во мнениях несколько человек, когда-то партнеров. И выключили рубильник в ДЦ.
Еще есть программа EAP (Early Access Program), но она не всегда действует(
А для этого есть GitHub и ссылка в package.json/repository. Это не настолько частая необходимость, чтобы оправдать раздувание node_modules.
если не указать явно список файлов (package.json/files), формирующих пакет, то по-умолчанию в пакет будут включены все файлы в каталоге. Например исходники не нужны при наличии уже собранного js файла.
Я лично разделаю package.json проекта и package.json пакета, формирующегося из проекта. В него попадает лишь необходимый минимум: собранный код, типы для TS, Readme.md. Также это даёт более явный контроль над зависимостями пакета.
Вот на этом скриншоте синие стрелочки туда-сюда открывают дифф для выбранного файла в отдельном окне (можно на весь экран)
Эти же стрелочки есть в окошке просмотра коммита в панели Git
По сравнению с 2019.3. В настройках найдите Commit, и отключите старый режим модального окна. После этого операция коммита станет похожей на VSCode — в боковой панели, сверху список (можно древовидный) изменившихся файлов, внизу окошка для ввода текста коммита. А diff теперь становится гораздо больше, ведь он открывается как обычная вкладка, а не пытается втиснуться в половинку нижней панели VCS, как раньше.
Казалось бы, изменения не столь значительные, но для меня они кардинально меняют взаимодействие.
Я бы еще отметил отличную переработку окна Commit и Git. Настолько удобным, что теперь отпала необходимость в сторонних клиентах для большинства операций.
Тут явно параметризованный запрос, SQL-injection не пройдет. (Если, конечно, внутри Query не sprintf)
Они как-то на нескольких аккаунтах вставляли разовый редирект на свою рекламу антивируса Касперского. Он происходил для всех http запросов до тех пор, пока не перейдешь и не выберешь отказаться или согласиться.
Общался с техподдержкой, высказывая своё "фи". Для них это норма: "нам же надо как-то знакомить пользователей с нашими выгодными предложениями"
Принципиально перешел от них к другим именно из-за этого скотского отношения. Влазить в мой трафик неприемлемо!
Это с лихвой окупается за месяцы и годы поддержки и развития. Может быть для MVP он кому-то и кажется лишним, но для больших проектов с длинным циклом — must have.
Да и если освоится, и в проекте типы и так есть, то на них не так уж много времени тратиться.
Обычно они DIY и крайне заморочистые (там нужно очень тонко выстраивать для достижения нужного качества).
Проще брать готовое, у тех, кто уже заморочился. Я беру у greg-3d, там доступно, особенно без катушек мотки.
Оффтоп: интересно, что за странное форматирование двумя разрядами вместо трёх для чисел больше 100.000
Как и в первой есть спорные моменты.
Замечания к первой части:
Замечания ко второй части:
К примеру:
Угу, на растеризацию вектора, особенно детального, тратится сильно больше ресурсов, чем на отрисовку битмапа (просто набора цветных пикселей). За универсальность платим.
Я бы привел в пример для сравнения скриптовую сцену в игре и фильм.
присвоение innerHTML — самый быстрый (производительный) способ вставить большой фрагмент в документ. Уж движок знает, как быстро распарсить HTML. Портянка с дясятком DOM-операций не может быть производительней ОДНОЙ DOM-операции.
Гроза. Откуда молнии, непонятно. Давайте придумаем, что это дядька Зевс их кидает? Где тут бред?
Любой пробел в знаниях можно объяснить магически, мозгу удобно это. Есть какой-то неизвестный фактор — давайте назовем его загадочно "тёмная материя", и вот, теперь загадки нет. На любой вопрос о расхождении теории с практикой — списываем все на тёмную материю.
Вспоминается похожая история с МакХост и Оверсан-Меркурий почти десятилетней давности. Там тоже разошлись во мнениях несколько человек, когда-то партнеров. И выключили рубильник в ДЦ.
Спасибо, вы избавили меня от необходимости писать то же самое)
Почти все пункты — вредные советы, не делайте так.
1 — очевидный, 8-й — ОК, полезно, но тоже очевидно.
Для остального есть куда более правильные способы.
Спасибо, не знал. Хорошая "новость"!
На сайте Игоря Сысоева появился отзыв:
ITSumma возможно, можно добавить в UPD