Что может быть лучше языка, в котором можно вертеть типы данных? Только дополнительно Chat GTP, который быстро скажет как это сделать.
В данном случае на языке typescript создается тип RequiredResult на основе типа Result, с той разницей, что поле result в новом типе - не может быть undefined, то есть всегда должно быть определено.
P.S. Сам бы такое не написал никогда
Объяснение для душнил
Этот тип использует несколько ключевых концепций TypeScript: маппинг типов, условные типы и модификатор доступа -?.
Здесь мы создаём новый тип, перебирая все ключи (keyof) исходного интерфейса Result<T, E>. Для каждого ключа (P) в исходном типе создаётся новое поле в нашем типе RequiredResult.
Модификатор -? используется для удаления опциональности с полей типа. Это значит, что если в исходном типе поле было опциональным (например, result?: T;), то в нашем новом типе это поле станет обязательным (то есть, без знака вопроса ?).
Эта часть проверяет, является ли текущий ключ P строкой 'result'. Если да (P extends 'result'), то тип этого поля будет T, и поле будет обязательным из-за предыдущего шага (удаления ?). Если нет, то тип поля будет таким же, как и в исходном типе Result<T, E>[P]. Это позволяет нам сделать поле result обязательным, не изменяя опциональность остальных полей.
В данном случае на языке typescript создается тип RequiredResult на основе типа Result, с той разницей, что поле result в новом типе - не может быть undefined, то есть всегда должно быть определено.
P.S. Сам бы такое не написал никогда
Объяснение для душнил
type RequiredResult<T, E = any> = {
[P in keyof Result<T, E>]-?: P extends 'result' ? T : Result<T, E>[P]
};
Этот тип использует несколько ключевых концепций TypeScript: маппинг типов, условные типы и модификатор доступа -?.
[P in keyof Result<T, E>]
Здесь мы создаём новый тип, перебирая все ключи (keyof) исходного интерфейса Result<T, E>. Для каждого ключа (P) в исходном типе создаётся новое поле в нашем типе RequiredResult.
-?:
Модификатор -? используется для удаления опциональности с полей типа. Это значит, что если в исходном типе поле было опциональным (например, result?: T;), то в нашем новом типе это поле станет обязательным (то есть, без знака вопроса ?).
P extends 'result' ? T : Result<T, E>[P]
Эта часть проверяет, является ли текущий ключ P строкой 'result'. Если да (P extends 'result'), то тип этого поля будет T, и поле будет обязательным из-за предыдущего шага (удаления ?). Если нет, то тип поля будет таким же, как и в исходном типе Result<T, E>[P]. Это позволяет нам сделать поле result обязательным, не изменяя опциональность остальных полей.
Предъявил Антону Назарову на стриме за антисоциальные черты. (ссылка с таймкодом)
Антон любезнои бесплатно , прошел тест на Темную триаду и как видите, я оказался как минимум ближе к правде, чем к неправде. Хотя сами понимаете точность тестов из интернета...
Но вы можете попробовать самостоятельно и желательно честно пройти тест, чтобы понять насколько вы похожи на Антона. Если вам казалось что все его практики сработают на вас от и до и не нанесут ущерб вашему психическому состоянию (таких людей единицы).
Это просто в очередной раз доказывает, что делать выводы о том кто хороший, а кто плохой бессмысленно в вакууме, каждый из нас нормис/аутист/триадник/<ваша дезиз> может приносить как вред так и пользу в зависимости от условий в которых окажется. Антон, не будучи тем кем он является, не смог бы занять свое место. Ну а нам всем я рекомендую относиться критично к чужому опыту.
P.S. У меня 3-8% в светлую.
Антон любезно
Но вы можете попробовать самостоятельно и желательно честно пройти тест, чтобы понять насколько вы похожи на Антона. Если вам казалось что все его практики сработают на вас от и до и не нанесут ущерб вашему психическому состоянию (таких людей единицы).
Это просто в очередной раз доказывает, что делать выводы о том кто хороший, а кто плохой бессмысленно в вакууме, каждый из нас нормис/аутист/триадник/<ваша дезиз> может приносить как вред так и пользу в зависимости от условий в которых окажется. Антон, не будучи тем кем он является, не смог бы занять свое место. Ну а нам всем я рекомендую относиться критично к чужому опыту.
P.S. У меня 3-8% в светлую.
Visual Studio Code обновился
- Применение пользовательских ярлыков редактора – Выделение редакторов с одинаковыми именами файлов.
- Заблокированная прокрутка – Сравнение редакторов рядом с синхронизированной прокруткой.
- Улучшения обновления расширений – Перезапуск расширений без перезагрузки и обновление расширений вместе с выпусками VS Code.
- API покрытия тестами – Поддержка нативного покрытия кода в VS Code.
- Маркеры сворачивания в миникарте – Легкое определение и навигация к секциям кода из миникарты.
- Улучшения быстрого поиска – Липкие разделители пути файла и кнопки разделителей.
- Запуск ячеек в секции блокнота – Быстрый запуск всех ячеек в секции блокнота.
- Улучшения Copilot – Улучшенный встроенный интерфейс чата, сообщения коммитов и использованные ссылки.
- Улучшения автоматического обнаружения Python – Обнаружение стартовых файлов для Flask & Django, обнаружение сред Hatch.
- Предварительный просмотр: Встроенный чат терминала – Начало беседы с Copilot непосредственно из терминала.
Демо фич
- Применение пользовательских ярлыков редактора – Выделение редакторов с одинаковыми именами файлов.
- Заблокированная прокрутка – Сравнение редакторов рядом с синхронизированной прокруткой.
- Улучшения обновления расширений – Перезапуск расширений без перезагрузки и обновление расширений вместе с выпусками VS Code.
- API покрытия тестами – Поддержка нативного покрытия кода в VS Code.
- Маркеры сворачивания в миникарте – Легкое определение и навигация к секциям кода из миникарты.
- Улучшения быстрого поиска – Липкие разделители пути файла и кнопки разделителей.
- Запуск ячеек в секции блокнота – Быстрый запуск всех ячеек в секции блокнота.
- Улучшения Copilot – Улучшенный встроенный интерфейс чата, сообщения коммитов и использованные ссылки.
- Улучшения автоматического обнаружения Python – Обнаружение стартовых файлов для Flask & Django, обнаружение сред Hatch.
- Предварительный просмотр: Встроенный чат терминала – Начало беседы с Copilot непосредственно из терминала.
Демо фич
YouTube
Visual Studio Code Gets Another Awesome Update
The March update for Visual Studio Code has been released and once again the VSC team have been nailing it off late. This release adds several awesome new features but my specific favorite feature is no longer needing to restart Visual Studio Code when…
Полюбишь ли ты писать КОД? | Тест | При чем тут аутизм?
Используя последние (и первые) научные веяния определяем присутствует ли у тебя потенциальный талант по написанию кода.
Новое видео для спонсоров boosty и patreon
Используя последние (и первые) научные веяния определяем присутствует ли у тебя потенциальный талант по написанию кода.
Новое видео для спонсоров boosty и patreon
boosty.to
Полюбишь ли ты писать КОД? | Тест | При чем тут аутизм? - Никита Декабрист
Используя последние (и первые) научные веяния определяем присутствует ли у тебя потенциальный талант по написанию кода.
Через час будем смотреть Романа Сакутина 😎
👇🏽
👇🏽
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Зачем мы такие?
📅 Встречаемся в эту среду (10 апреля) в 20:00 по МСК по этой ссылке!
Всех ждём 🫶🏻
#змт_события
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
РЕАКЦИЯ: Роман Сакутин: Разоблачение Инцелибата и Поднебесного | Лиза Кузнецова feat @Zachemmitakie
Донат: https://www.donationalerts.com/r/decembristittv
Донат вне РФ за рубли: https://new.donatepay.ru/@1136169
Озвучка голосом от 25 руб.
ТГ Канал гостей: https://t.me/zachemmt
Смотрим:
Сегодня вместе с Альбиной Галлямовой и Алисой Годованец с канала…
Донат вне РФ за рубли: https://new.donatepay.ru/@1136169
Озвучка голосом от 25 руб.
ТГ Канал гостей: https://t.me/zachemmt
Смотрим:
Сегодня вместе с Альбиной Галлямовой и Алисой Годованец с канала…
А вот если бы они написали OBS на Rust...
OBS это стримерский софт, через который байтики ваших "сцен" текут в ютуб.
Если вам кажется, что вы понимаете как всё в этом вашем компе работает, возможно вы не стримили через OBS:
- Он может просто дропать 50% ваших фреймов, до тех пор пока вы не пересоздадите стрим на YouTube, в эфире будет слайд шоу
- Если я сижу по WiFi то будут ли дропаться фреймы это просто вопрос удачи, от стрима к стриму, при чем это не подлагивания а полноценный дроп 50%+
- Если я подключен через WiFi то OBS может рандомно дисконектиться, зависит "от погоды" сегодня.
- Если включен и OBS и любая тулза для конференций типа Zoom соединение может отваливаться, с ошибкой (OBS при этом не показывает ошибку поверх всех окон и вы можете разговаривать с собой оставшееся время и думать что всё ок)
- Если OBS не в фокусе то соединение отваливается с ошибкой, если при этом идет созвон в Zoom и т.д.. Поэтому когда мы совместно смотрим видео я могу управлять им только горячими клавишами оставляя активным окно OBS
- OBS иногда просто не может захватить контент окна (как будто программа излучает черный экран), проблема пропадает и появляется сама собой.
- Производителям софта для конференций дико насрать на OBS и иной раз они не учитывают возможность того что я буду это стримить, поэтому окно с камерой в Zoom при демонстрации экрана не считается отдельным процессом и не может быть перехвачено.
P.S. Не притензия к OBS, просто расстраивает.
P.P.S. У меня неплохие железки, проблема не в них.
OBS это стримерский софт, через который байтики ваших "сцен" текут в ютуб.
Если вам кажется, что вы понимаете как всё в этом вашем компе работает, возможно вы не стримили через OBS:
- Он может просто дропать 50% ваших фреймов, до тех пор пока вы не пересоздадите стрим на YouTube, в эфире будет слайд шоу
- Если я сижу по WiFi то будут ли дропаться фреймы это просто вопрос удачи, от стрима к стриму, при чем это не подлагивания а полноценный дроп 50%+
- Если я подключен через WiFi то OBS может рандомно дисконектиться, зависит "от погоды" сегодня.
- Если включен и OBS и любая тулза для конференций типа Zoom соединение может отваливаться, с ошибкой (OBS при этом не показывает ошибку поверх всех окон и вы можете разговаривать с собой оставшееся время и думать что всё ок)
- Если OBS не в фокусе то соединение отваливается с ошибкой, если при этом идет созвон в Zoom и т.д.. Поэтому когда мы совместно смотрим видео я могу управлять им только горячими клавишами оставляя активным окно OBS
- OBS иногда просто не может захватить контент окна (как будто программа излучает черный экран), проблема пропадает и появляется сама собой.
- Производителям софта для конференций дико насрать на OBS и иной раз они не учитывают возможность того что я буду это стримить, поэтому окно с камерой в Zoom при демонстрации экрана не считается отдельным процессом и не может быть перехвачено.
P.S. Не притензия к OBS, просто расстраивает.
P.P.S. У меня неплохие железки, проблема не в них.
У нас тут форк VSCode под кодовым именем Cursor
Заявляется как первый Ai Code Editor. Бесплатная версия порезана.
Основные функции Cursor включают:
Command K: Позволяет редактировать и писать код с помощью ИИ. Чтобы редактировать, нужно выбрать код, нажать "Edit" и описать желаемые изменения. Для создания нового кода достаточно ввести Command K без выделения текста.
Copilot++: Это встроенная функция автодополнения Cursor. Copilot++ предлагает более мощные возможности, чем стандартный Copilot, включая предложения по автодополнению в середине строки и полные различия между версиями кода.
Chat: Позволяет общаться с ИИ, который видит вашу кодовую базу. Чат всегда видит текущий файл и позицию курсора, что позволяет задавать вопросы, например, о наличии ошибок.
@ Symbols: Упрощает демонстрацию кода ИИ. Введя "@" в Command+K или в чат, можно получить выпадающий список всех файлов и символов кода в папке.
Codebase Answers: Позволяет задавать вопросы обо всей кодовой базе, используя Command+Enter в чате.
Docs: Улучшает понимание ИИ сторонних библиотек. Для использования введите @LibraryName в чате или Command K.
Auto-Debug: Инструмент для исправления ошибок в терминале Cursor. После ошибки в терминале появляется синяя кнопка "Auto-debug", которую можно нажать для автоматического исправления.
Fix Lints: Помогает быстро исправлять ошибки линтинга. Достаточно навести курсор на ошибку и нажать появившуюся синюю кнопку "Fix".
Terminal Command K: Позволяет вводить терминальные команды на понятном человеку языке. Нажатие Command K позволяет ИИ видеть содержимое терминала.
Notes: Помогают быстро понять незнакомые переменные и типы. Удерживание Shift дает краткое описание символа под курсором.
Vision: Поддержка изображений для запросов к ИИ. Изображения можно добавлять через кнопку под чатом или перетаскивать в поле ввода ИИ.
Apply From Chat: Позволяет быстро переносить предложения кода из чата в редактор.
Rules for AI: Позволяет задавать стилевые правила для ИИ.
Заявляется как первый Ai Code Editor. Бесплатная версия порезана.
Основные функции Cursor включают:
Command K: Позволяет редактировать и писать код с помощью ИИ. Чтобы редактировать, нужно выбрать код, нажать "Edit" и описать желаемые изменения. Для создания нового кода достаточно ввести Command K без выделения текста.
Copilot++: Это встроенная функция автодополнения Cursor. Copilot++ предлагает более мощные возможности, чем стандартный Copilot, включая предложения по автодополнению в середине строки и полные различия между версиями кода.
Chat: Позволяет общаться с ИИ, который видит вашу кодовую базу. Чат всегда видит текущий файл и позицию курсора, что позволяет задавать вопросы, например, о наличии ошибок.
@ Symbols: Упрощает демонстрацию кода ИИ. Введя "@" в Command+K или в чат, можно получить выпадающий список всех файлов и символов кода в папке.
Codebase Answers: Позволяет задавать вопросы обо всей кодовой базе, используя Command+Enter в чате.
Docs: Улучшает понимание ИИ сторонних библиотек. Для использования введите @LibraryName в чате или Command K.
Auto-Debug: Инструмент для исправления ошибок в терминале Cursor. После ошибки в терминале появляется синяя кнопка "Auto-debug", которую можно нажать для автоматического исправления.
Fix Lints: Помогает быстро исправлять ошибки линтинга. Достаточно навести курсор на ошибку и нажать появившуюся синюю кнопку "Fix".
Terminal Command K: Позволяет вводить терминальные команды на понятном человеку языке. Нажатие Command K позволяет ИИ видеть содержимое терминала.
Notes: Помогают быстро понять незнакомые переменные и типы. Удерживание Shift дает краткое описание символа под курсором.
Vision: Поддержка изображений для запросов к ИИ. Изображения можно добавлять через кнопку под чатом или перетаскивать в поле ввода ИИ.
Apply From Chat: Позволяет быстро переносить предложения кода из чата в редактор.
Rules for AI: Позволяет задавать стилевые правила для ИИ.
Forwarded from IT Ментор | Сергей Жуков (Sergey Zhukov)
Анонс - стрим с лекцией по MVC
Пробую новый формат - теоретические лекции в контектсте проектов роадмапа.
Начну с паттерна MVC в для Java Backend разработки:
Готовлю лекцию по MVC в контексте проектов роадмапа.
Темы:
- Прародитель идеи MVC - слоистая архитектура. В чем принцип и какую проблему решает
- Паттерн MVC, общая идея на простом примере
- Пример - MVC в Java приложении на сервлетах, за что отвечает каждый слой
- Пример - как работает обработка ошибок
- Пример - MVC в приложении на Spring / Thymeleaf
- Структура MVC в реальном проекте - проблема топорного подхода, и около-реальный пример
Цель - помочь студентам в реализации проектов #3/#4, добавить лекцию в список теоретических материалов для этих проектов.
Схемы к стриму - https://t.me/zhukovsd_it_chat/1/69230.
Суббота, 13 апреля, 19:00 Мск. Запись будет доступна.
Роадмап | YouTube | Менторство | Поддержать | Консультации
Пробую новый формат - теоретические лекции в контектсте проектов роадмапа.
Начну с паттерна MVC в для Java Backend разработки:
Готовлю лекцию по MVC в контексте проектов роадмапа.
Темы:
- Прародитель идеи MVC - слоистая архитектура. В чем принцип и какую проблему решает
- Паттерн MVC, общая идея на простом примере
- Пример - MVC в Java приложении на сервлетах, за что отвечает каждый слой
- Пример - как работает обработка ошибок
- Пример - MVC в приложении на Spring / Thymeleaf
- Структура MVC в реальном проекте - проблема топорного подхода, и около-реальный пример
Цель - помочь студентам в реализации проектов #3/#4, добавить лекцию в список теоретических материалов для этих проектов.
Схемы к стриму - https://t.me/zhukovsd_it_chat/1/69230.
Суббота, 13 апреля, 19:00 Мск. Запись будет доступна.
Роадмап | YouTube | Менторство | Поддержать | Консультации
А вас, суббота, я попрошу остаться.
Любое даяние благо:
Через буусти
Через патреон
donation alerts тут
Или поиграть пару часов в мою игру)))00))
Подписывайтесь на лайв канал с НЕ IT приколами
Дайжест этой недели:
Потупил с постгре индексами
Поражаюсь типам typescript
Психопатия Антона Назарова
Тест на талант программиста
Смотрим Романа Сакутина на стриме
OBS насрал мне в штаны
Дайжест прошлой недели
Любое даяние благо:
Через буусти
Через патреон
donation alerts тут
Или поиграть пару часов в мою игру)))00))
Подписывайтесь на лайв канал с НЕ IT приколами
Дайжест этой недели:
Потупил с постгре индексами
Поражаюсь типам typescript
Психопатия Антона Назарова
Тест на талант программиста
Смотрим Романа Сакутина на стриме
OBS насрал мне в штаны
Дайжест прошлой недели