Your trial period has ended!
For full access to functionality, please pay for a premium subscription
KO
Kobezzza. База в программировании
https://t.me/kobezzza_channel
Channel age
Created
Language
Russian
2.21%
ER (week)
10.65%
ERR (week)

Канал про современный фронтенд и базу программирования.

Автор Андрей Кобец, ведущий разработчик с 20-летним опытом разработки.

Рекламу не размещаю.

Messages Statistics
Reposts and citations
Publication networks
Satellites
Contacts
History
Top categories
Main categories of messages will appear here.
Top mentions
The most frequent mentions of people, organizations and places appear here.
Found 123 results
04/25/2025, 17:12
t.me/kobezzza_channel/823
04/25/2025, 17:12
t.me/kobezzza_channel/822
Ну все, теперь моя очередь 🔥
04/25/2025, 15:07
t.me/kobezzza_channel/821
А волнительно! Вроде уже далеко не первая моя конференция, но чувство тревоги на месте 🤣
04/25/2025, 11:56
t.me/kobezzza_channel/820
04/25/2025, 10:04
t.me/kobezzza_channel/819
04/25/2025, 10:04
t.me/kobezzza_channel/817
Ну вот я снова на чемоданах: завтра улетаю в Екб на DUMP, а в субботу назад. Летать я, признаться, не очень люблю - спасает только SteamDeck (сейчас перепрохожу первый Baldur's Gate ❤️). До встречи на DUMP! 🥳🔥
04/23/2025, 17:41
t.me/kobezzza_channel/816
Я часто замечаю, что людям свойственно негативно относится к опыту, если он не попадает в актуальную струю хайпа. Мы постоянно рефлексируем на тему "а что потом я буду делать с этим опытом". Например, при устройстве на работу мы отдадим предпочтение той команде, которая работает с тем что на слуху, нежели той, что использует что-то более необычное. Мы не начинаем читать книгу, если не получим на неё рекомендации от кого-то еще. Такое ощущение, что все буквально одержимы тайм-менеджментом и эффективностью и боятся перетрудиться. А вот бессмысленно скролить ленту в соцсетях - это, пожалуйста, не жалко.

И меня такой подход удивляет, ведь если посмотреть на опыт и историю многих выдающихся программистов, то мы увидим совсем иную картину: необычный, глубокий и индивидуальный опыт позволяет иначе смотреть на проблемы и их решения. В этом на мой взгляд и заключается отличие инженерного подхода от подхода ремесленника. Инженер ищет способы применить знания из самых разных прикладных областей и доменов для решения задач. Поэтому, с моей точки, зрения такой пуризм из серии "мне это никогда не пригодится" является не просто не эффективным, но и вредным. Я давно понял, что чтобы пробить плато застоя нужно стать всеядным: нет областей, которые мне не нужны - есть те, к которым я пока не готов. И это тоже нормально.

Относитесь к знаниям, как к приемам в "карате": чем больше фишек вы знаете, тем разнообразнее будет ваш стиль боя. Вместо стандартных ударов вы будете способны применять творческие ходы, которые просто не доступны для остальных. Тем самым вы значительно повышаете свою конкурентоспособность.

База - это не только знание низкоуровневых структур, но и ваша насмотренность. Любой писатель скажет вам, что чтобы научится писать, нужно много читать. Любой музыкант, что много слушать. Не бойтесь переработать - будьте голодными до знаний.
04/22/2025, 14:44
t.me/kobezzza_channel/815
🧐 Дорожная карта обучения в IT: что, когда и зачем изучать

Недавно я обсуждал с начинающим разработчиком план развития и типичные ошибки на старте. Конечно, все советы — это ИМХО, но мой опыт в индустрии позволяет выделить несколько важных принципов.

Начало: фокус на прикладных навыках

Главная задача новичка — освоить профессию на практике. Здесь работает правило «меньше, да лучше»:

🔶 Не распыляйтесь на несколько языков сразу (Java и Python, Haskell и Rust). Выберите один из топ-5 (если не можете определиться — берите любой и не усложняйте).

🔶 Не погружайтесь в теорию алгоритмов или «Кнута» раньше времени. Сначала — база, как в школе: прежде чем учить алгебру, осваивают арифметику.

🔶 Решайте реальные задачи. Посмотрите вакансии на рынке или используйте ChatGPT (ИИ — отличный инструмент для ускорения обучения).

Ключевой этап — преодолеть фазу «ничего не понимаю». Это требует усидчивости, но сегодня, с обилием курсов и материалов, сделать это проще, чем 10 лет назад.

Пет-проекты — это важно?

Да! Они дают практику, если нет коммерческого опыта, и помогают сохранять интерес к профессии.

Углубление базы

Как только вы освоили основы, важно избежать ловушки «зоны комфорта». Если вам стало легко — значит, пора двигаться дальше. Теперь фокус смещается на фундамент:

🔶 Разбирайте, как работает ваша область (например, веб — от HTTP до устройства фреймворков).

🔶 Изучайте основы программирования: паттерны, структуры данных, различные парадигмы программирования.

Это ускорит ваше развитие: новые знания будут «цепляться» за прочную базу, а не зависать в воздухе.

Расширение кругозора: новые языки и области

Следующий шаг — выход за рамки привычного:

🔶 Изучайте языки, кардинально отличающиеся от вашего основного (Haskell, Rust, Erlang). Просто читать — мало, важно писать код.

🔶 Освойте 3-4 языка — это «прокачает» мышление, и дальше учиться станет значительно легче.

Выход за пределы программирования

С сильной базой можно подключать смежные дисциплины:

🔶 Математику, статистику, специфичные алгоритмы (например, компьютерное зрение).

🔶 Новые доменные знания (например, финансы для fintech или геймдизайн для разработчиков игр).

На готовую базу эти знания ложатся иначе, чем в университете — они сразу находят применение. Кстати, именно поэтому я сейчас готовлюсь к аспирантуре :)

Как находить время?

Осознание масштабов может пугать, но время летит незаметно (помните пандемию или выход «Ведьмака 3»?). Интегрируйте обучение в рутину:

🔶 Читайте в транспорте (я раньше тратил 1.5 часа в метро на книги).

🔶 Выделяйте «час после работы» — например, я брал переговорку для практики.

🔶 Создавайте ритуалы (сейчас я ухожу в кальянную на пару часов для учебы).

Учитесь как космонавты: для них обучение — часть работы, даже на земле. Так и нам стоит относиться к развитию.

Главное — база и дисциплина. Всем успехов!
04/16/2025, 15:44
t.me/kobezzza_channel/813
Всех с началом новой рабочей недели!💪🏻

Я вчера закрыл свой отпуск и сегодня уже во всю тружусь: завтра у нас первая лекция на курсе по TypeScript и я весь в приготовлениях.

Также, прорабатываем с Димой Холстининым обновленный курс по "Сборке Frontend" и "Марафон по SSR". А через неделю я лечу в Екатеринбург на Dump. Одним словом - жара!
🥘ПРОБУЕМ ЕДУ ДЛЯ КОСМОНАВТОВ

Когда были на туре в невесомость закупились в ЦПК настоящей едой для космонавтов, которой их кормят на МКС. Поставляется она в виде сублимата или консервов. В тюбиках возят только мед, сгущенку, варенье.

🍽️ Итак, сегодня в меню у нас:

1. Мясо в белом соусе
2. Борщ (на МКС служит валютой и успешно обменивается у американцев на креветки и стейки)
3. Баранина с овощами
4. Творог с черносливом
5. Яблоки с орехами
6. Хлеб

Получилось такое полноценное питание на обед 😋

Как вам еда? Хотели бы попробовать?
04/13/2025, 17:46
t.me/kobezzza_channel/811
Сразу отвечу про стоимость тура и организаторов.

И в невесомость и на Байконур мы летали с туроператором Rockettrip. Молодые, горячие, идейные. С удовольствием съездим с ними куда-то еще. Их сайт - https://rockettrip.ru

По стоимости тур на Байконур (на 6 дней) стоил 240 тыс. с чел. + перелет. Мы взяли прямой чартерный рейс из Москвы за 140 тыс. на человека. Если лететь самостоятельно, то надо сначала добраться самолетом до Алматы, потом Кызылорды, а уже потом на автобусе до Байконура еще часа 3. Будет в два раза дешевле примерно, но лучше тогда не одним днем весь этот путь преодолевать. На программу сил не останется, а она частенько начиналась рано утром по местному времени, да и с Москвой еще и разница +2 часа.

В любом случае тур себя полностью оправдал, никаких денег не жалко за такие эмоции! Теперь с сыном хочу туда полететь, как подрастет ❤️
04/12/2025, 22:35
t.me/kobezzza_channel/810
Обещал сегодня еще показать космическую еду. Вот она 🤩

Мы все попробовали и сняли, но надо смонтировать. Завтра постараюсь выложить 🙌🏻
04/12/2025, 21:43
t.me/kobezzza_channel/809
На пилотируемый запуск часто прилетают действующие космонавты, чтобы поддержать своих коллег, поэтому их можно было видеть на расстоянии вытянутой руки и даже взять автограф. Но нам повезло гораздо круче! На протяжении всей поездки с нами в группе был Максим Викторович Сураев - герой России, космонавт дважды летавший в космос, за плечами которого 334 дней на МКС и более 8 часов в открытом космосе.

Максим Викторович оказался невероятно харизматичным и душевным человеком, а также обладающим удивительным чувством юмора. Я даже отметил про себя, что такие качества также необходимы космонавту, как и отменное здоровье и безупречная выучка, ведь находится пол года и больше в тесном помещении отделяемым 4-мя миллиметрами от вечности может только тот, кто обладает неиссякаемым оптимизмом и юмором. Кто думает, что я преувеличиваю, то вспомните, что происходило с людьми, когда вводили локдаун при Ковиде.

Вообще, космонавт - это уникальная профессия. Фактически, он обязан разбираться в огромном количестве прикладных и теоретических наук, иметь безупречное здоровье и навыки выживания в любых экстремальных условиях. Уметь быстро реагировать в критической ситуации и принимать на себя всю ответственность последствий. Никогда не сдаваться пред лицом любых препятствий. А еще, удивительно, что подать заявку, чтобы стать космонавтом могут многие из нас. Я писал про это отдельный пост.

Безусловно, для меня возможность лично познакомится, пожать руку и поднять бокал за успешный запуск с таким человеком - это огромная честь! Я вам точно могу сказать, что если кто-то ищет вдохновения и мотивации работать, то не идите к коучам и бизнес-тренерам, а слетайте на запуск и проведите время среди космонавтов. Это удивительные люди и их аура, как будто, делает и нас сильнее.
04/12/2025, 17:28
t.me/kobezzza_channel/800
04/12/2025, 17:28
t.me/kobezzza_channel/802
04/12/2025, 17:28
t.me/kobezzza_channel/801
04/12/2025, 15:24
t.me/kobezzza_channel/799
04/12/2025, 15:24
t.me/kobezzza_channel/793
04/12/2025, 15:24
t.me/kobezzza_channel/792
Теперь про космодром. Следует сказать, что Байконур самый большой из когда-либо существовавших космодромов - более 6000 квадратных километров! Исследовательские комплексы, сборочные ангары, стартовые площадки - все продублировано и разнесено по всей территории. Масштабность просто поражает. И это не с проста - космодром проектировался так, чтобы он мог функционировать в случае множества аварий или, даже, ядерной войны.

Значительная часть объектов на космодроме уже не функционирует и сейчас выступают скорее как музейные экспонаты. Здесь буквально все дышит историей и великими свершениями, а также памятники страшных аварий при покорении космоса. Во время экскурсии испытываешь полную гамму эмоций: гордость, радость, тоска, печаль и надежда.

Когда ты видишь как огромная ракета плавно выезжает из ангара и затем устанавливается в вертикальном положении, то невольно хочется закричать ура! Как и не оставляет равнодушным легендарный Гагаринский старт - вероятно один из самых надежных и безупречно спроектированных стартовых комплексов.

А посещение руин страшной аварии 1960 года "Неделинский старт" даже самого черствого сухаря заставит прослезиться. 24 октября считается "чёрным" днём в российской космонавтике, и пуски ракет в этот день никогда не производятся.

Буран и Энергия же заставляют восхититься гению советских инженеров, а затем погрузится в тоску о потерях всего человечества, что этот невероятный проект закрыли. Одним словом Байканур трогает все грани души.
04/12/2025, 15:24
t.me/kobezzza_channel/791
👩‍🚀По случаю Дня космонавтики — скидка 12% на все наши курсы до понедельника 14 апреля 23:59

🎫 Промокод: КОСМОС
04/12/2025, 13:29
t.me/kobezzza_channel/790
04/12/2025, 12:55
t.me/kobezzza_channel/786
Итак, начну с города Байконур. Мы летели прямым рейсом из Москвы и заняло это всего 3 часа. Город закрытый и находится на территории Казахстана (Россия арендует эту территорию до 2050 года), поэтому нам пришлось проходить отдельные КПП по прилету и далее все экскурсии были строго в сопровождении сотрудников ЦЭНКИ (Центр эксплуатации объектов наземной космической инфраструктуры).

Сам город хоть и имеет заметный отпечаток времени, но все равно достаточно ухоженный. А еще сразу обращаешь внимание на тишину - стоит отойти от дороги и тебя буквально обволакивает ею. Такой тишины я никогда не встречал ни в Москве, ни в Сочи, не где-либо еще - очень успокаивает. Всюду памятники и изображения великих: Королев, Гагарин, Янгель, Челомей, Рязанский, Шубников, Неделин и многие другие. Стоят и макеты ракет Союз и УР-100. В общем сразу понимаешь, что ты не в простом городе.

В бытовом плане в городе не так много гостиниц и нужно быть готовым к спартанским условиям. Но по большому счету все было все равно на хорошем уровне. Особенно хочется отметить еду - тут преобладает мясо и оно изумительное. Шашлык "Наполеон" состоящий из слоев мяса и жира навеки в моем сердце!

Теперь погода: я думал, что мы прилетим и будет круглые сутки стоять жарень 30 градусов. В реальности у нас вышел "Тафт 3 погоды": ночью и утром дубак 5 градусов, поэтому одеваешь термобелье и теплую куртку (у нас были экскурсии в 6 утра, а на сам запуск мы встали в 3 ночи), а к полудню солнышко так разогревает воздух, что в итоге раздеваешься до майки. Пару раз был дождь и очень сильный ветер. Зато на сам запуск погода была просто идеальная - ни облочка.

Немного грустно от мыслей, что дальше будет с городом. Ведь его жизнь и развитие неотрывно связаны с космодромом, а сейчас основные запуски - это полеты на МКС. К сожалению, МКС должны затопить в 2030 (станция уже летает очень долго и период её эксплуатации заканчивается). С другой стороны, Казахстан активно развивает свою космическую отрасль и планирует запускать ракеты Зенит. Могу только пожелать им удачи и выразить надежду, что такой великий город будет жить и процветать.

Не отключайтесь, дальше я расскажу про само путешествие на космодром Байконур и места, где мы побывали.
04/12/2025, 12:55
t.me/kobezzza_channel/780
🚀Вчера я прилетел домой из своего космического трипа на Байконур. Теперь хочу собраться с мыслями и описать как все это было. Будет серия постов в течение дня.

Но перед этим хочется поздравить всю нашу большую страну и весь мир с Днем Космонавтики! 🥳

Глядя в звездное небо невольно осознаешь, как ничтожен ты сам и человечество в целом в масштабах вселенной: бесчисленное количество галактик, процессы протекающие миллиарды лет. Но все таки мы сумели сделать первые шаги и покинуть притягивающие объятия нашей родной планеты. Не знаю как для вас, а для меня это чудо ставшее возможным только при совместной работе тысяч светлейших умов, великих ученых, инженеров, управленцев и бесстрашных космонавтов.

Наша страна была пионером в освоение космоса:

🔶 Первый искусственный спутник Земли: 4 октября 1957 года СССР запустил Спутник-1, первый в истории искусственный спутник Земли.
🔶Первое живое существо в космосе: 3 ноября 1957 года СССР запустил Спутник-2 с собакой Лайкой на борту. Лайка стала первым живым существом, побывавшим на орбите Земли.
🔶Первый человек в космосе: 12 апреля 1961 года советский космонавт Юрий Гагарин совершил первый в истории человечества полет в космос на корабле Восток-1.
🔶Первая женщина в космосе: 16 июня 1963 года советская космонавтка Валентина Терешкова совершила полет в космос на корабле Восток-6, став первой женщиной в космосе.
🔶Первый многоместный космический корабль: 12 октября 1964 года СССР запустил Восход-1, первый в мире многоместный космический корабль.
🔶Первый выход в открытый космос: 18 марта 1965 года советский космонавт Алексей Леонов совершил первый в истории выход в открытый космос с корабля Восход-2.
🔶Первая автоматическая мягкая посадка на Луну: 3 февраля 1966 года советская станция Луна-9 совершила первую в истории мягкую посадку на поверхность Луны и передала панорамные снимки лунной поверхности.
🔶Первый искусственный спутник Луны: 3 апреля 1966 года советская станция Луна-10 стала первым искусственным спутником Луны.
🔶Первый луноход: 17 ноября 1970 года советский Луноход-1 стал первым в мире дистанционно управляемым аппаратом, успешно работавшим на поверхности другого небесного тела (Луны).
🔶Первая мягкая посадка на Венеру и передача изображений с поверхности: 15 декабря 1970 года советская станция “Венера-7” совершила первую в истории мягкую посадку на поверхность Венеры. Она передала данные о температуре с поверхности, подтвердив экстремальные условия на планете. 22 октября 1975 года “Венера-9” впервые передала черно-белые панорамные снимки с поверхности Венеры.
🔶Первая орбитальная станция: 19 апреля 1971 года СССР запустил Салют-1, первую в мире орбитальную станцию.
🔶Первый и единственный беспилотный орбитальный полет космического корабля многоразового использования: 15 ноября 1988 года советский космический корабль Буран совершил свой первый и единственный орбитальный полет в беспилотном режиме.

Но кроме великого прошлого, у нас есть и великое настоящее:

🔺Россия является одним из ключевых партнеров в программе МКС, предоставляя значительный вклад в виде модулей (Заря, Звезда, Поиск, Рассвет, Наука), грузовых кораблей (Прогресс) и пилотируемых кораблей (Союз).
🔺Разрабатывается новое семейство ракет-носителей Ангара, которые должны заменить ракеты Протон и Зенит. Ангара использует экологически чистое топливо и может выводить на орбиту различные типы грузов.
🔺Строительство космодрома Восточный.
🔺Развитие и поддержание глобальной навигационной спутниковой системы ГЛОНАСС.
🔺Ключевое участие в создании морского космодрома Морской старт.

И конечно же нас ждет великое будущее! Но для этого каждый из нас должен вносить свой вклад. Учитесь, будьте голодными до знаний и не позволяйте обществу потребления навязывать вам как нужно жить. Инженер вновь звучит гордо! И пусть великие предки дадут нам сил и смелости идти дальше за горизонт.

Всех с праздником!🚀
04/12/2025, 11:29
t.me/kobezzza_channel/779
Видеть как ракета улетает в космос своими глазами это что-то невероятное. Это не передаст ни одно видео. Это целый коктейль эмоций. Скажу честно, я плакал. Это и гордость за страну и инженеров, которые сделали это возможным, это и переживание за жизнь космонавтов ( а они на минуточку, сидят на большом баке с топливом на 300 тонн, которое подрывается и выводит их на орбиту!), это и детские мечты ставшие реальностью и много чего еще. Но это невероятно круто! Если вас интересует эта тема, обязательно приезжайте на запуск 🚀 Это впечатление, которое останется на всю жизнь, гарантирую.
04/08/2025, 13:55
t.me/kobezzza_channel/778
04/08/2025, 02:14
t.me/kobezzza_channel/777
Космонавты покинули гостиницу и направляются на доклад госкомиссии, ну а затем в ракету и поехали! 🚀
04/08/2025, 02:14
t.me/kobezzza_channel/776
04/05/2025, 20:38
t.me/kobezzza_channel/774
04/05/2025, 20:38
t.me/kobezzza_channel/775
04/05/2025, 20:38
t.me/kobezzza_channel/770
04/05/2025, 20:38
t.me/kobezzza_channel/769
Сегодня встали в 4:30 утра, чтобы своими глазами увидеть как ракета Союз МС-27 покинула монтажно-испытательный комплекс и была установлена на стартовом столе в вертикальное положение. Это что-то невероятное, наблюдать это своими глазами! Мощь! 💪🏻🔥

После мы посетили музей космодрома, посмотрели домик Королева и Гагарина, прогулялись по городу. Очень устали, день был насыщенный, но в большом предвкушении от самого главного события - запуска ракеты, который состоится 8 апреля в 8:47 по МСК 🚀🤩
04/05/2025, 20:38
t.me/kobezzza_channel/768
04/05/2025, 20:38
t.me/kobezzza_channel/773
04/05/2025, 20:38
t.me/kobezzza_channel/771
04/05/2025, 20:38
t.me/kobezzza_channel/772
Публикую дайджест постов за март. Поехали!
Вы — читать пропущенные посты, а я на Байконур 🚀

👋 Личное, офферы в Бигтех, путь Kobezzza.Lab

Пост-знакомство
Рассказал о себе, пути в Яндексе, запуске школы Kobezzza.Lab и новом этапе жизни после 20 лет коммерческой разработки. Для новичков в канале — самое то, чтобы понять, кто мы и зачем всё это. Там же ловите гайд «От Junior к Senior».

Живое общение и офферы в Яндекс
Встретился с давними подписчиками, пообщались за жизнь и вдохновились друг другом. А ещё — два моих студента получили офферы в Яндекс на высокие позиции. Очень горжусь и рад, что наш путь даёт реальные результаты.

🎓 TypeScript и новый фундаментальный курс

TypeScript 5.8: что нового
Рассказал про важные обновления компилятора: erasableSyntaxOnly, улучшенную поддержку ESM и CommonJS, а также почему tsc — это не просто утилита для компиляции, а полноценный языковой сервис.

ReScript — альтернатива TypeScript c акцентом на ФП
На фоне новостей про компилятор TS на Go — знакомлю с ReScript

Актуальность TypeScript в 2025 году.
Разложил по полочкам, зачем и когда действительно стоит использовать TS в новых проектах.

Flow против TypeScript: почему не взлетел
Вспомнил времена, когда Flow был реальной альтернативой TS. Почему тогда ставки были на него, в чём была проблема и как TypeScript в итоге всех переиграл. Немного истории, боли и личного опыта.

Старт курса по TypeScript и tsc — уже 15 апреля
Рассказываю, почему этот курс — самое глубокое погружение в TS, которое вы найдёте. 9 недель живых лекций, живой разбор домашек, ответы на вопросы и чат единомышленников-инженеров. Еще успеешь присоединиться!

🛠 Технологии и API

Canvas в Chrome теперь с imageSmoothingQuality
В context 2d появилось свойство imageSmoothingQuality — можно выбирать между качеством и производительностью при масштабировании изображений.

FinalizationRegistry — когда объект удалён сборщиком мусора
Познакомился с FinalizationRegistry из ES2021 — API, который позволяет отследить, когда объект очищен GC. Полезно для отладки и поиска утечек памяти.

📚 Клуб читателей

Книжный батч: DDD, Doom, Baldur’s Gate и Pixar
Подборка прочитанного: от DDD и системного дизайна до истории создания Doom и Baldur’s Gate. Техническое, ностальгическое и вдохновляющее.

600 страниц жести: «Типы в языках программирования»
Взялся за фундаментальную книгу Бенджамина Пирса по теории типов — тяжело, местами непонятно, но дико полезно. Даже 30% выжитого материала дали мощный буст к пониманию основ. Только для подготовленных!

‼️НАПОМИНАЮ, ЧТО 15 АПРЕЛЯ СТАРТУЕТ ПЕРВЫЙ ПОТОК КУРСА TYPESCRIPT И TSC!

Что ждет на курсе?

Глубокое погружение в TypeScript:
— научишься применять TS для написания кода с использованием разных парадигм;
— разберешься с паттернами проектирования, рефлексией, метапрограммированием и DI-техникой;
— научишься встраиваться в pipeline компиляции и расширять возможности компилятора.

Занять место

Вперёд к базе 💥
04/03/2025, 17:46
t.me/kobezzza_channel/767
Ну всё, сегодня сделал прогон для Codefest, закончил рабочие дела и завтра стартую в Мск, а потом на Байконур на запуск. Уже, если честно, сложно заставить себя что-то делать из-за чемоданного настроения. В дорогу с собой возьму книгу Доменг Николя "Mass Effect Восхождение к звездам" - еще одна книга по истории создания одной из моих любимейших игр. Да и в тему космоса 😄

А вот с одеждой вышел конфуз: в Москве холодно, а на Байконуре жара жарень. Видимо придется тащить с собой всё.

Фотки с запуска пришлю! 🔥 Не теряйте! ❤️
04/01/2025, 17:35
t.me/kobezzza_channel/766
Кто хотел зайти на TS до повышения цены, сегодня последний день. Стартуем 15 апреля.

УСПЕТЬ ПО СТАРОЙ ЦЕНЕ
03/31/2025, 16:38
t.me/kobezzza_channel/765
Совсем скоро состоится наша поездка на Байконур на запуск МС-27 и в преддверии этого события читаю книгу космонавта Сергея Рязанского «Можно ли забить гвоздь в космосе?».

📖Книга по сути является набором ответов на вопросы, но некоторые факты меня особенно поразили:

1. В космосе начинают расти волосы на пятках.

2. Когда ты закрываешь глаза, ты каждые несколько секунд видишь яркие вспышки. Это радиоактивные частицы врезаются в сетчатку глаза.

3. На МКС очень много ноутбуков: часть из них под Linux, а часть под Windows XP.
03/29/2025, 21:43
t.me/kobezzza_channel/764
🚀До старта нашего глубокого погружения в "TypeScript и tsc" осталось чуть больше двух недель, стартуем 15 апреля.

Если ты еще сомневаешься подойдёт ли тебе курс, то вот, что важно знать:

1. Основная ценность информации, которую вы получите на курсе, заключается в тонкостях использования языка, освоенных мной прежде всего на практике. Я работаю с TypeScript с 2017 года и пишу на нём очень много. В Бигтехах, как вы знаете, это стандарт де-факто, поэтому и у меня этот период совпал с началом моей работы над сервисом Яндекс.Едадил.

2. Мы будем учиться применять TS для написания кода с использованием самых разных парадигм. Будем изучать паттерны проектирования, рефлексию и метапрограммирование, DI техники. Для решения ряда задач мы научимся встраиваться в Pipeline компиляции и расширять возможности компилятора.

3. Конечно, столь глубокое погружение мы обеспечим именно на тарифе PRO, но, как мы уже выяснили, другие тарифы вас и не интересуют 😅 Поэтому будем лезть в самые дебри, разбирать всё до мельчайших деталей — это гарантированно даст вам заряд идей для внедрения в вашем рабочем проекте. А если вы выберете тариф с live-доступом, то сможете напрямую общаться со мной по этим и другим вопросам. Пишите в личку или обсуждайте в общем чате — как вам удобнее!

4. Поскольку тема языков программирования — это ещё и моё любимое хобби, которому я посвятил более 10 лет (и даже создал свой собственный DSL ЯП за это время), курс по TypeScript будет выстроен с учётом опыта других ЯП: научимся применять контейнерные-типы из ФП языков, делать автореализуемые-интерфейсы из Java, создавать и использовать макросы аля Rust. Мы будем сравнивать типизацию TS с типизацией в других ЯП: разбираться с плюсами и минусами.

5. Этот курс — самый доступный из наших фундаментальных курсов, которые проходят в формате Live. Мы будем взаимодействовать с вами на протяжении 9 недель, до 12 июня, но всё организовано так, чтобы вы могли комфортно совмещать обучение с работой. Встречи проходят дважды в неделю по вечерам — во вторник и четверг, а раз в две недели мы созваниваемся по воскресеньям. Все записи будут доступны вам на платформе.

6. Если у вас есть бонусы (а они, скорее всего, у вас есть, если вы участвовали в распродаже на Черную пятницу или проходили курс по инфраструктуре либо другие курсы), вы можете использовать до 7000 бонусов при покупке. Чтобы уточнить текущий баланс бонусов, напишите в наш бот @kobezzza_bot.

7. На курс по TypeScript мы специально выделили значительно больше времени, чем обычно: 18 месяцев на тарифе PRO Live и 12 месяцев на тарифе PRO в записи. Это сделано для того, чтобы вы могли использовать курс как постоянный источник знаний.
☝🏻Кстати, курс полностью охватывает всё, что нужно знать о TS, — дополнительных материалов для изучения вам не потребуется.

8. Ну и не забываем про повышение цен 1 апреля. По рассрочкам пишите нам в бот.

ВПИСАТЬСЯ НА КУРС

Я думаю, мы отлично проведем с вами эти два месяца! Изучение ЯП может быть очень увлекательным, если подходить к этому процессу с базой.
03/28/2025, 16:26
t.me/kobezzza_channel/763
🙈 И снова новости с полей клуба читателей! На сей раз я взялся за 600 страничную грамадину по теории типов "Типы в языках программирования" Бенджамин Пирс.

Книга посвящена основательному введению в типы данных и их математическое обоснование. Главы чередуются от теории к практике с реализацией на языке OCaml. Начинается все с бестипового лямбда-исчисления, и по мере продвижения мы знакомимся как с типами, алгоритмами выведения, объектными типами, метатеорией подтипов, обобщенным программированием, типами высшего порядка. Написана книга в математическом стиле, где каждая глава состоит из некоторого введения, а далее множества аксиом, теорем и лемм с их доказательствами.

Мне книга далась очень тяжело (и это несмотря на то, что у меня была некоторая предварительная подготовка). Математические доказательства очень сильно выматывали, и в какой-то момент я просто сдался и стал читать, пытаясь выцепить "суть", но если отдельные фрагменты не давались, то я их пропускал. Думаю виной еще темп, в котором я взялся за чтение: я хотел успеть прочитать её до запуска курса по TS, чтобы вложить в него больше полезной информации. Одним словом было непросто, но худо-бедно я сделал это.

Конечно, сейчас я вероятно извлек процентов 20-30% полезной информации из книги и я однозначно буду перечитывать как отдельные главы, так и книгу целиком. Уже запланировал это совместить с марафоном по Haskell. Мне хочется написать простую игру-платформер без использования каких-либо высокоуровневых абстракций. И сделать все это на Haskell.

Но даже эти 30%, что я вынес из книги сейчас, дали мне очень сильный толчок к более глубокому пониманию самого основания типов (особенно мне зашла метатеория подтипов).

Рекомендовать данную книгу я не буду. Но не потому, что она плохая (она потрясающая), а потому, что сложная. Если подойти к ней без должной подготовки, то может напрочь отбить желание копать в этом направление. Но если вы все таки решитесь, то я очень рекомендую предварительно прослушать курс Дениса Николаевича Москвина. Тогда многое в книге будет понятнее и "теорема о неподвижной точке" не убьёт вас с первых же страниц чтения 😄
03/27/2025, 12:46
t.me/kobezzza_channel/762
🧐 На днях узнал об относительно новом API JS (ES2021), который позволяет повесить обработчик на то, что заданный объект был очищен сборщиком мусора - FinalizationRegistry.

Давайте напишем простой тестовый пример:

const registry = new FinalizationRegistry((heldValue) => {
console.log(`Объект был удалён, сохранённое значение: ${heldValue}`);
});

let obj = {name: "Тестовый объект"};
registry.register(obj, "Объект foo");

obj = null;

// Объект был удалён, сохранённое значение: Объект foo

Разумеется, когда вызовется данный колбек мы не знаем - этим управляет GC. Но теперь у нас есть возможность залогировать это, например, для отслеживания утечек памяти.

Дополнительный бонус, что поддержка у этого API весьма неплохая.

Надо сказать, что данный механизм не следует использовать как способ перепридумать RAII из C++ или Rust. Для этого у нас появился using.

А вы знали про этот API?
03/26/2025, 12:57
t.me/kobezzza_channel/761
🥳 Ко мне пришла моя первая сплит клавиатура!

Делюсь впечатлениями:

1. Там где клавиши совпадают с базовой раскладкой почти не чувствую дискомфорт. Но к моему удивлению, некоторые символьные клавиши стоят на других позициях. Например, "х" и "з". Вот тут надо привыкать (хотя можно и переставить, но с другой стороны, не просто же так сделано, значит так удобнее).

2. Командные кнопки, слои и символы пока вызывают сложности, но думаю - дело привычки.

3. Возможность развернуть клавиатуру под углом и разнести по разные стороны - очень удобно!

4. "Впуклый" контур клавиатуры - тема. Теперь кисть при наборе символов совсем не двигается - только пальцы.

5. Трекбол - тема, но к сожалению на него нельзя нажать. Пришлось добавлять на слой левый, правый клик и режим прокрутки.

В целом очень доволен, но нужна практика. Думаю за пару месяцев привыкну.
03/24/2025, 12:54
t.me/kobezzza_channel/760
😱 Мы просчитались

Нам давно говорят, что в нашей линейке продуктов не хватает курса, который был бы максимально широким и мог охватит разработчиков разного уровня, не только матерых, но и совсем начинающих. Да и сами джуны нас часто просил: «А когда будет что-нибудь для нас?». И вот, когда руки дошли до перезаписи курса по TS, мы подумали, что вот это ОНО. TS мы так и так разбираем с самого нуля, в продуктовой разработке он просто необходим, соответственно даже те, кто не так давно пишут на JavaScript смогут наконец-то попасть на мой курс, повзаимодействовать в лайве. Поэтому мы выделили отдельный тариф (покороче, чтобы не перегрузить), да и подешевле, сделали отдельный чат для таких ребят.

И что вы думаете??

На данный момент у нас нет НИ ОДНОГО участника этого тарифа. Вообще НИКОГО!

Зато на PRO уровне у нас уже 62 человека. Причем 39 из них на Лайв тарифе и 23 купили в записи.

О чем это говорит? В первую очередь о том, что моя аудитория ценит именно мои глубокие знания в разработке и опыт, которым я могу поделиться на своих курсах. А те кто в лайв идут еще и знают что они получат гораздо больше информации, чем заложено в курсе и смогут не только свои пробелы закрыть, но и по рабочим проектам получить идеи для внедрения.

А еще я понял, что делать узкие глубокие курсы это моя суперсила, и надо прилагать больше усилий чтобы развивать именно это направление, а не распыляться в ширину, пытаясь охватить всех. Попробовал, не получилось. Значит мы все делали правильно и надо продолжать идти тем же путем и качать глубину и расширять кругозор уже опытных ребят.

Что касается TS, то в этом потоке ничего уже менять не будем. Продолжаем набор как есть.

Напомню, что цена на курс растет по мере приближения к старту:

до 24 марта 23:59:

TS C нуля - 22 990 руб.
TS PRO в записи - 28 750 руб.
TS PRO LIVE - 34 850 руб.

При рассрочке на 6 месяцев- от 3800 до 5808 руб в месяц.

с 25 марта - 31 марта:

TS C нуля - 25 990 руб.
TS PRO в записи - 31 750 руб.
TS PRO LIVE - 37 850 руб.

При рассрочке на 6 месяцев- от 4331 руб до 6308 руб. в месяц.

С 1 по 15 апреля:

TS C нуля - 31 900 руб.
TS PRO в записи - 37 900 руб.
TS PRO LIVE - 45 000 руб.

При рассрочке на 6 месяцев- от 5316 руб до 7500 руб. в месяц.

Есть рассрочка от банков РФ, Беларуси, Казахстана, Узбекистана.
Мы можем также разделить платежи по внутренней рассрочке.
Для оформления напишите нам в бот @kobezzza_bot

УСПЕТЬ НА КУРС ПО САМОЙ НИЗКОЙ ЦЕНЕ

осталось 3 дня

Всем базы!
03/22/2025, 13:27
t.me/kobezzza_channel/759
03/20/2025, 13:55
t.me/kobezzza_channel/757
Вчера встретился со своими давними подписчиками. Ребята следят за мной ещё с тех времён, когда я только начинал вести блог в Инстаграме 4 года назад. Они отдыхали в Сочи и решили написать мне, предложив встретиться за чашкой чая. Я, конечно, с радостью согласился ☺️

В итоге мы душевно посидели за кальяном: я рассказал про свою жизнь в Сочи, про работу, а ребята поделились своими успехами и мечтами на будущее. И прикольный момент, что такое общение как будто создаёт синергию: их достижения вдохновляют меня ещё больше заниматься своим делом, а мой путь мотивирует их усерднее учиться.

Мне всегда больше нравилось живое, офлайн-общение — оно какое-то настоящее, тёплое. Да и вообще, я воспринимаю себя скорее как преподавателя, чем как блогера. Свой путь я начинал в университете, читая лекции и проводя практические занятия лицом к лицу со студентами. И, если честно, я надеюсь, что когда-нибудь смогу вернуться к такому формату.

🔥А еще, вчера я узнал, что два других моего студента успешно прошли все секции в Яндекс и получили офер на высокие позиции! Очень рад за ребят и желаю им дальнейших успехов в карьере и жизни!

Я хоть и ушел из Яндекса, но по-прежнему считаю, что эта компания, да и в целом бигтехи, отличное место для прокачки навыков и построения карьеры.
03/20/2025, 13:55
t.me/kobezzza_channel/756
Обучение Junior разработчика VS Middle и выше

❓Что важно для Junior разработчика?

Первое — это то, чтобы его программа просто работала.
Второе — понимать написанное на уровне элементарных конструкций.

Первое, кстати, может существовать и без второго, но в таком случае Junior ограничивает свой набор инструментов еще сильнее.

Приведу пример из личного опыта. Когда я начинал изучать JavaScript, то часто искал в интернете готовые решения моей задачи и пытался их адаптировать. Своего рода конструктор, где мы используем не отдельные детали, а уже собранные фрагменты. Так вот, много где повторялась следующая конструкция:

doSomething({param1: 42, param2: [1, 2, 3]});

Я понимал функции, понимал числа и массивы, а вот запись литерала объекта мне казалось мистической. Т.е. я интуитивно в контексте понимал, что я задаю "настройки" для своей функции, но что я могу просто использовать такие литералы в отрыве далось мне не сразу. Причем тут история такая, что при встрече с неизвестным сразу встает два вопроса "что это" и "зачем это". Способность ответить на эти вопросы свидетельствует о том, что вы действительно разобрались.

В моем новом курсе по TypeScript мы специально решили сделать два разных тарифа для Новичков и Продвинутых, чтобы с одной стороны не перегрузить Junior разработчиков, но и дать полный объем информации для Middle и выше. Но это совершенно не значит, что первые 11 лекций, которые мы выделили в тариф для новичков не обязателен к прохождению опытным ребятам. Сейчас объясню почему.

Традиционно курс мы начинаем с того, что мы сначала учимся понимать все языковые конструкции и отвечаем на вопросы "что это" и "зачем это". Например, если мы знакомимся с абстрактными классами, то мы разберём, в каких кейсах и сценариях стоит их применять. И так тема за темой мы разберем ВСЕ аспекты языка. Изучение TS в полной мере невозможно без знакомства с парадигмами и паттернами программирования. Без них нельзя ответить на вопрос "зачем это". Так что честнее было бы назвать курс "Применение ООП и ФП вместе с TypeScript и tsc", но это как-то странно звучит.

❓Что важно для Middle и выше?

А вот тут важно другое — как ЛУЧШЕ применять существующие инструменты? Под "лучше" тут имеются вполне конкретные метрики:

1. Как увеличить % ошибок, отлавливаемых за счет типов.
2. Как увеличить DevEx при работе с кодом.
3. Как писать меньше шаблонного кода.
4. Как получать в Runtime код, который работает эффективнее.
5. Как получать в Runtime бандл меньшего размера.

Ответы на эти вопросы уже значительно проблематичней тех, что мы озвучили пару абзацами выше. Но должен ли их решать Junior? Я считаю, что это не только не нужно, но и вредно. Если у вас еще не оформился базовый слой, то добавление нового может привести к информационному взрыву в голове и потере интереса к теме.

Какой тариф выбрать?

1. TS с нуля предполагает 11 лекций, в течении которых вы полностью освоите все аспекты TS и связанных с ним инструментов: настройка компилятора, настройка линтеров для дополнительных проверок, интеграция с JS кодом и публикация TS библиотеки. А также разберете различные парадигмы программирования от ООП до ФП и их основные паттерны. У новичков всегда много вопросов и важная обратная связь, поэтому данный тариф идет в Live. Записи, конечно будут.

2. Продвинутый тариф состоит уже из 17 лекций. Да, первые 11 лекций у нас совпадают с базовым тарифом, но уверяю вас, что я найду чем вас удивить на каждой лекции. А завершающие 6 откроют для вас мир за пределами обычного TS и позволят решать проблемы значительно большего характера. Прохождение данного тарифа возможно в двух вариантах: либо все также в Live, либо самостоятельно в записи. Выбор здесь исключительно за вами и как вам сами привычнее изучать информацию.

Какой бы вы тариф не выбрали, у вас в течение этой недели есть уникальная возможность приобрести его почти с 30% скидкой. Так что не затягивайте и до встречи на курсе!

https://kobezzza.ru/ts-tsc
03/19/2025, 14:27
t.me/kobezzza_channel/755
🧐 Давно я не постил новостей из клуба читателей! Нет, читаю я все также активно, но решил не пушить вас отдельным постом по каждой книге дабы не утомить. Все-таки большинство из вас подписаны на меня ради непосредственно технической информации, а не моих мыслей по поводу прочитанного. Поэтому я решил писать такие посты в виде батчей — сразу по множеству прочитанных книг.

Итак, из технического материала на прошлой неделе я прочитал книгу Влада Ханонова "Изучаем DDD — предметно-ориентированное проектирование". Замечательная книжка, которая понравится всем тем, кто изучает System Design и интересуется DDD. Книга открыла мне глаза на необходимость проработки единого разговорного языка между всеми участниками разработки и бизнеса. А также исправила ряд моих ошибочных суждений касаемо некоторых паттернов. Например, я с удивлением обнаружил, что моя трактовка архитектуры Clean немного неверная. Так что еще раз убеждаюсь, что любую техническую литературу нужно читать целиком, а не избегать информацию, которую ты якобы и так знаешь. Так что книга отличная, рекомендую. Но предварительно лучше прочитать "Кабанчика" Мартина Клеппмана.

А вот из не-технического у меня целый букет за прошлые две недели:

1. "Повелители Doom. Как два парня создали культовый шутер и раскачали индустрию видеоигр" Дэвид Кушнер. Увлекательная книга про историю компании Id Software и жизни двух гениальных разработчиков Джона Кармака и Джона Ромеро. Книга заставила меня по-другому взглянуть на конфликт, который привел к уходу Ромеро из кампании: раньше я всегда занимал сторону Кармака и считал, что Ромеро потерял хватку. Но пережив вместе с героями все их бесконечные кранчи и жертвы, я стал понимать Ромеро и его желание пожить нормальной жизнью вместе со своей семьей. Кармак же живой пример, как любовь или даже одержимость своим делом позволяет создать нечто потрясающее. Книга очень мотивирует работать и учится. Рекомендую!


2. "Baldur`s Gate. Путешествие от истоков до классики RPG" Максанс Деграндель. Для меня Baldur`s Gate — частичка детства и занимает особое место в пантеоне любимых игр рядышком с Fallout и Civilization, а компании Bioware, Black Isle и Obsidian являются одними из наиболее почитаемых мною. Мне было интересно узнать про историю создания легендарной CRPG и то, что ей предшествовало. Книга рассказывает про истоки вселенных Forgotten Realms и DnD, становление Bioware и разработку великой игры, а также как в дальнейшем сложилась судьба компаний и их вселенных. Как и в случае с Doom книга содержит многие близкие к сердцу разработчика главы про кранчи, баги и конечный успех. Очень интересно и очень мотивирует.


3. "От идеи до злодея. Учимся создавать истории вместе с Pixar" Дин Мовшовиц. Небольшая книга, прочитанная мною за два присеста (с большим удовольствием!), рассказывает об искусстве создания интересного сценария и героев на примере проектов Pixar. За что мы любим героев и преклоняемся перед кумирами? За их красоту и талант? А может потому, что они, сталкиваясь с событиями непреодолимой сложности, не пасовали и в итоге менялись и выходили из ситуации победителями? Как тут не вспомнить мой любимый монолог Сэма из Властелина Колец:

- Мы словно в легенде очутились, мистер Фродо, в одной из тех, что берут за душу, в них столько страхов и опасностей, порой даже не хочется узнавать конец, потому что ни верится, что все кончится хорошо. Как может все снова стать по-прежнему, когда все так плохо?… Но в конце, все проходит, и даже самый, непроглядный мрак рассеивается, грядет новый день, и когда засветит солнце, оно будит светить еще ярче. Такие великие легенды врезаются в сердце, и запоминаются на всю жизнь, даже если ты слышал их ребенком и не понимаешь, почему они врезались. Но мне кажется, мистер Фродо, я понимаю, понял теперь, герои этих историй, сто раз могли отступить, но не отступили, они боролись, потому что им было на, что опереться.
- На что мы опираемся, Сэм?
- На то, что в мире есть добро, мистер Фродо, и за него стоит бороться!

Читайте книги — это очень интересно. Всем базы!
03/18/2025, 10:51
t.me/kobezzza_channel/754
В TypeScript действительно очень могущественная система типов, которая позволяет описать формальным языком буквально любой наш каприз. Но иногда такая гибкость выходит боком и мы можем обнаружить себя борющимся с компилятором пытаясь заставить его "умерить свой пыл и делать что велено".

Вот простой пример такой ситуации, допустим у нас есть функция:

function setColors(colors: T[], activeColor: T) {
// ...
}

Функция просто устанавливает массив возможных значений цвета и активный цвет. Предполагается, что активный цвет должен быть одним из перечисленных в массиве colors. Но вот в чем беда - TS думаем иначе. Т.к. типовой параметр привязан к двум аргументам, то он пытается сопоставить наиболее широкий тип.


// @ts-expect-error тут должна быть ошибка, но её нет!
setColors(['red', 'green', 'blue'], 'mаgenta');

И вот в этом примере TS считает, что у нас абсолютно валидная ситуация, т.к. он вывел T как 'red' | 'green' | 'blue' | 'magenta' (т.к. оно extends string), но мы то имели в виду совсем другое! Ок, давайте перепишем пример так, чтобы он работал:

function setColors(colors: T[], activeColor: A) {
// ...
}

// @ts-expect-error ошибка!
setColors(['red', 'green', 'blue'], 'mаgenta');

Теперь все работает, но "зашумленность" нашего кода стала выше! За такие вот приколы TS часто критикуют, но в TS 5.4 появился новый интрисинк (встроенная типовая функция реализуемая на уровне самого компилятора) NoInfer, который позволит решить нашу проблему без введения нового типового параметра.

function setColors(colors: T[], activeColor: NoInfer) {
// ...
}

// @ts-expect-error ошибка!
setColors(['red', 'green', 'blue'], 'mаgenta');

Стало намного лучше и читаемей. Это подводит нас к очень важной мысли: TS активно развивается и многие проблемы уходят с новыми версиями ЯП и компилятора, поэтому нужно активно держать руку на пульсе и следить за новшествами в языке.

Ну и напоследок хочется напомнить, что вы еще можете приобрести мой новый курс по TS и tsc по наиболее выгодной цене! На курсе мы не просто изучаем TS, а самую новейшую версию его эталонного компилятора. Поэтому мы разберем все встроенные интрисинки и стандартную типовую библиотеку с целью научится писать TS, который не мешается под ногами и не раздражает своей многословностью.

Всем базы!
03/17/2025, 13:23
t.me/kobezzza_channel/753
🔥 Курс Typescript и tsc

При разработке программы передо мной стояла задача комплексности: я хотел не просто сделать "еще один курс по TS", но и уделить много времени паттернам использования, а также инфраструктуре языка.

✔️Программа курса состоит из 17 лекций, в течении которых мы разберем ВСЕ аспекты новейшей версии языка.
✔️Мы будем изучать ОО и ФП парадигму сквозь призму TS и новые выразительные возможности, которые дает нам язык.
✔️Курс содержит много практики: live кодинг на лекциях с решением конкретных задач, ДЗ после каждой лекции, практические занятия по выходным.
✔️Мы научимся создавать свои типовые библиотеки, разрабатывать NPM проекты на TS, собирать мультипроектные конфигурации.
✔️Изучим все необходимые параметры .tsconfig и нюансы составления .d.ts файлов.
✔️Изучим актуальные паттерны сборки TS и использования tsc как инструмент линтинга. Научимся писать TS тесты.
✔️Подчиним себе мощь ts трансформеров для оптимизации кода, создания DSL и достижения большей выразительности.

Все лекции проходят в Live, где я буду, в том числе отвечать на возникшие вопросы по ходу ведения лекции (кто был на моих курсах, знает, что в таких вот ответах раскрываются отдельные миры). Плюс такой формат позволит оперативно отреагировать на новейшие изменения: если например выйдет TS 5.9 или будут новые подробности про ts-go, то это появится в программе. Доступ к материалам будет доступен в течение одного или полутора лет после окончания (в зависимости от тарифа). Разумеется, продлить доступ по окончанию будет также можно.

📀 Запись лайв лекций будет доступна на следующий день на платформе на всех тарифах.

🌟Доступны 3 тарифа:

1. TS с НУЛЯ Live — укороченный курс из 11 лекций, раскрывающий все основные аспекты TS, но без глубоких изысканий для продвинутых. Проходит в Live. Идеально для тех, кто еще не знаком TS и боится получить "информационный взрыв". Доступ к материалам 1 год.

2. TS PRO в Записи — полный курс из 17 лекций, но без обратной связи. Для тех кто будет смотреть лекции в своём темпе. Доступ к материалам 1 год.

3. TS PRO Live — полный курс из 17 лекций + обратная связь. Проходит в Live. Доступ к материалам 1.5 года.

‼️Также отмечу, что сейчас самая низкая цена, по которой можно зайти на курс, и при приближении к дате старта она будет расти. Так что успеваем заскочить сейчас.

✅Есть безпроцентная рассрочка от банков, так и от Kobezzza.Lab.

✅Если у вас есть Kobezzza бонусы, то их можно потратить на скидку.

✅Так и потом можно будет оформить налоговый вычет 13%.

✅Возможно оформление от работодателя (TS PRO Live). Презентация есть на сайте.

По любым вопросам пишите в бот @kobezzza_bot

Стартуем 15 апреля. Продлится курс 2 месяца.

В общем годнота! Если остались вопросы — пишите.

https://kobezzza.ru/ts-tsc
03/14/2025, 10:17
t.me/kobezzza_channel/752
Через 45 минуток встречаемся на эфире! Письмо со ссылкой на эфир должно упасть вам на почту. Если будут проблемы - пишите @Daria_Kobezzza

Увидимся на уроке!
03/13/2025, 18:21
t.me/kobezzza_channel/751
Сегодня утром дошлифовал презентацию к открытому уроку — получилось здорово! Мы с вами познакомимся с целой группой интереснейших проектов: ReScript, Dart/Flutter, .NET/Blazor, Kotlin. У каждого из этих инструментов есть как свои уникальные плюсы, так и кейсы, где их особенно эффективно использовать. Думаю, что мы даже немножко полайвкодим.

В общем всех жду вечером в 19.00. Лекция бесплатная, но нужно предварительно зарегистрироваться — https://kobezzzalab.ru/ts2025. Запись будет.

А еще рад наконец-то открыть запись на наш новейший курс по "TypeScript и tsc". Ознакомиться с программой и записаться можно по ссылке — https://kobezzza.ru/ts-tsc. Стартует курс 15 апреля.

Сегодня после окончания открытой лекции смогу ответить на вопросы по курсу.

PS: сегодняшняя открытая лекция — это не продающий вебинар. Хоть темы и пересекаются, но здесь скорее мы будем говорить "когда и почему TS можно НЕ использовать".
03/13/2025, 13:34
t.me/kobezzza_channel/750
Пока все приходят в себя после новости о переписанном на Go официальном компиляторе TS (неофициальные похожие проекты уже давно существуют, но поддерживают лишь малую часть возможностей tsc) и ускорении сборки в 10 раз, я предлагаю вам познакомиться с другим ЯП, который на мой взгляд является самым достойным конкурентом TS на его поле. Итак, знакомьтесь, ReScript!

ReScript вырос из проектов BuckleScript (компилятор OCaml в JS) и проекта ReasonML (frontend для BuckleScript с более близким по духу синтаксисом для JS разработчика). Фактически, ребята пошли дальше чем ReasonML и сделали ЯП еще более простым для изучения JS разработчику, а также создали вокруг него мощную инфраструктуру. Давайте просто начну с перечисления возможностей:

1. ЯП идейный продолжатель OCaml, поэтому все плюсы OCaml он также унаследовал. Это мощный, статически-типизированный ЯП (никаких тебе any) с выводом типов, который поддерживает ФП и ООП парадигмы.

2. Вывод типов в ReScript основан на алгоритме Хиндли-Милнера, что позволяет меньше "зашумлять" код типовыми аннотациями по сравнению с TS.

3. ЯП вводит свою более богатую систему типов. Например, есть отдельно тип для int32, есть списки и кортежи, структуры и таблицы.

4. ЯП поддерживает очень много фишек из ФП мира, таких как управляемая изменяемость, алгебраические типы, паттерн-матчинг, пайпы, каррирование и многое другое.

5. Очень быстрый компилятор-сервис на OCaml. Компилятор выполняет и роль сборщика, так что в общем случае вам не нужен Webpack/Vite, но при необходимости интеграция с ними делается стандартно.

6. Оптимизирующий компилятор. В отличие от TS, который практически не оптимизирует код при компиляции, компилятор ReScript генерирует очень эффективный JS. Например, компилятор делает инлайнинг-оптимизацию, оптимизацию хвостовой рекурсии, оптимизацию типов и структур-данных и многое другое.

7. Прекрасный interop с JS.

8. Поддержка JSX.

9. Своя модульная стандартная библиотека!

Если TS ставит своей целью оставаться JS, но с более могучей типизацией, то ReScript — это другой ЯП, значительно сфокусированной над ФП парадигмой, но не отрицающий ООП. Если вы любите ФП парадигму, то данный ЯП будет по всем параметрам значительно более правильным выбором, нежели TS.

Подробнее про ReScript мы поговорим на ближайшем открытом уроке посвященным TS и его альтернативам. Будет интересно!
03/12/2025, 09:31
t.me/kobezzza_channel/749
Сегодня оформил заказ на новую клавиатуру - High Plains Drifter v2 - Galaxy Black Edition в конфигурации с трекболом. Это моя первая сплит клавиатура и я пока даже не знаю чего ожидать. Беру с прицелом на более удобную десятипальцевую печать, чтобы руки не болели. Но морально настраиваюсь, что по-началу будет оч непривычно. Что думаете?
03/11/2025, 15:06
t.me/kobezzza_channel/748
Ну, мы в лекции разберем и ЯП который "одного поля" с TS, например, ReScript. Так и про JSDoc поговорим.

Но такие решения как Dart/Flutter или C#/Blazor и и т.д. имеют за собой важную особенность, что у них есть возможности за пределами Frontend.

Например, Flutter это история в первую очередь мобильная, но в тоже время она валидна и для Web и для Desktop.

Blazor позволяет писать высокоэффективные серверные компоненты и плеваться на клиент HTML файлами как по старинке, но при этом у нас современный реактивный компонентный фреймворк.

В общем поговорить обсудить много чего есть. Несмотря на кликбейтное название (что поделать, надо привлекать внимание) - лекция не про TS, а про другой существующий мир. Здесь как минимум нужно иметь ввиду о наличии таких инструментов, чтобы когда встанет задача трезво сделать выбор, а не бежать по наитию.

PS: несмотря на то, что на лекции я расскажу про курс - к курсу данная лекция отношения не имеет.
03/10/2025, 17:55
t.me/kobezzza_channel/747
Актуальность TypeScript в 2025 году.

Часто бывает, что мы используем инструменты по накатанной, просто потому что "так привыкли". Особенно это актуально, когда мы начинаем новые проекты и еще не обременены фактором легаси. Поэтому полезно время от времени устраивать ресерчи с актуализаций представления об используемом стеке и альтернативах.

В случае с TypeScript это также актуально, как и в случае с компонентным фреймворком. На данный момент у нас есть как минимум несколько пунктов по которым мы можем сравнить TS и возможные альтернативы:

1. Разделение знаний с JavaScript. Сюда можно отнести простоту миграции проектов с JS, переиспользование написанного на JS кода и сложность изучения новыми разработчиками.

2. Поддержка в IDE и другими инструментами статического анализа. Мы используем TS не просто так, а чтобы получить улучшенный DevEx и проверку ошибок в DesignTime/CompileTime вместо Runtime.

3. Поддержка альтернативных парадигм программирования. Например, если мы хотим писать в каноническом ФП стиле, то многословность TS и отсутствие некоторых привычных механизмов (как паттерн-матчинг) может раздражать.

4. Наличие и качество инфраструктуры. Сюда относим все про сборку и скорость сборки; оптимизацию и минификацию кода; простоту интеграции со сторонними инструментами и написание своих расширений.

5. Оптимизации на уровне компиляции. Чем больше и лучше мы оптимизируем код на этапе компиляции, тем лучше работает наш Runtime. Компиляторы могут использовать информацию о типах и других языковых конструкциях для генерации более эффективного конечного кода.

6. Поддержка нескольких Runtime. Многие современные ЯП поддерживают компиляцию в разные целевые платформы. Например, Kotlin поддерживает компиляцию в Java байткод, машинные коды, JavaScript и WebAssembly. Мы можем получить множество преимуществ, если будем использовать единый язык на всех платформах.

7. Размер Runtime. Проще говоря, как много ЯП тянет собой в конечном счете на компьютер клиента.

8. Размер комьюнити, объем образовательных материалов и литературы, зрелость решения.

И это только основные пункты, которые сразу приходят на ум.

🔔 Поэтому приглашаю вас в четверг на открытую лекцию "Насколько актуален TypeScript в 2025".

На лекции, мы поговорим:

▫️про сам TS и сравним его с возможными альтернативами из самых разных лагерей: от JSDoc и ReScript до Dart, Kotlin, С# и Rust.

▫️А также после лекции я проведу презентацию своего нового курса "TypeScript и tsc" и открою запись на курс.

Для посещение лекции необходимо предварительно зарегистрироваться.

ЗАРЕГИСТРИРОВАТЬСЯ

Всех жду!
03/10/2025, 14:03
t.me/kobezzza_channel/746
Поздравляю прекрасную половину моего канала с 8-м марта! Пусть ваш код всегда сразу получается красивым и эффективным, а архитектура стройной и элегантной! Желаю вам радости, любви и тепла в этот замечательный день. Пусть ваша жизнь будет наполнена яркими моментами, интересными задачами и заслуженными успехами! 🌷😊

*Фото сгенерировано ИИ. Сами выберите от какого аватара хотели бы получить мое поздравление 😅
03/08/2025, 10:53
t.me/kobezzza_channel/741
Когда разговор заходит про альтернативу для TypeScript, то у меня почему-то первым делом в голове всплывает Flow. Хотя сейчас его можно назвать лишь альтернативой с натяжкой. Более того я уверен, что большинство из вас даже не слышали про такой проект, не то что использовали.

А вот лет 10 назад это были по настоящему конкуренты и я (да и еще много кто) тогда прогнозировал победу именно Flow. И я разумеется с радостью стал переписывать на него все мои проекты с JSDoc. Но мой прогноз не оправдался и уже спустя несколько лет я в попыхах мигрировался на TS.

Что из себя представляет Flow:

1. С одной стороны проект вводит некоторое надмножество JS, где можно явно вставлять аннотации типов. Но если TypeScript изначально позиционировался как самостоятельный ЯП, то Flow был скорее как "препроцессор" для JS. И в то время это было крутым преимуществом, т.к. можно было очень просто внедрить инструмент в свой проект. А вот с TS тогда это было весьма и весьма больно.

2. С другой стороны это инструмент для статического анализа кода. И снова видим разницу с TS, который изначально создавался в формате компилятора, а затем уже и сервиса компиляции. С Flow было сложнее, т.к. во-первых статический анализатор был написан на OCaml, который без приседаний в то время не запускался в Windows, а во вторых, что для удаления типов Flow еще приходилось тащить отдельный инструмент (например, Babel). В общем так оно до сих пор и выглядит.

В чем же была основная проблема? Оглядываясь назад, мне кажется главным преимуществом Flow было то, что тогда TS позиционировался себя как самостоятельный ЯП (своя система модулей, собственные runtime конструкции) и использовать его вместе с существующей JS кодовой базой было весьма не просто. И в этот момент Flow выглядел как более правильный подход. Но затем с 3-й версии компилятора TS стал все больше двигаться в сторону "дружбы" с JS и с каждой версией интеграция TS становилась все проще и проще. Добавить к этому, что вместе с TS мы автоматом получали трансляцию под разные окружения, реализацию новейших фич JS, которые планируются к добавлению в стандарт, поддержку разных модульных систем и JSX, а также одинаковый DevEX в любой IDE. Да и тренд "ts только про типы без runtime" сейчас имеет поддержку как в tsc, так и альтернативных реализациях.

А Flow? А Flow для многих стал легаси от которого все старательно избавлялись. Нет, проект до сих пор активно развивается, но я уже очень давно не встречал проектов на нем, как и не вижу смысла в этом инструменте в современных реалиях. А вот альтернативы у TS по прежнему есть, но они конкурируют уже по совсем другим критериям. Но об этом как-нибудь потом.

А вы использовали Flow?
03/07/2025, 17:26
t.me/kobezzza_channel/740
В новом релизе Chrome у Canvas (context 2d) появилось свойство imageSmoothingQuality, которое может принимать значения low, medium и high, позволяющие выбирать между качеством и производительностью при масштабировании изображений.

Помню, в своё время, из-за того, что стандартные методы масштабирования в Canvas давали посредственный результат при высокой детализации изображения, мне пришлось делать его самостоятельно. Здорово, что теперь это есть из коробки.
03/06/2025, 12:05
t.me/kobezzza_channel/739
🔥 Вышел стабильный релиз TypeScript 5.8.

Что из наиболее интересного:

* Появилась опция компилятора erasableSyntaxOnly, которая запрещает любые конструкции TS имеющие эффект в Runtime. Зачем это нужно? В первую очередь для использования альтернативных трансляторов TS, которые просто не поддерживают такие конструкции. Теперь мы можем явно декларировать наше намерение и сам tsc начнет ругаться на такой код избавляя от проблем в будущем.

* Улучшена интеграция ESM и CommonJS. В силу исторических и функциональных причин множество NPM пакетов состоит из тех, которые используют модули ECMAScript, а другие CommonJS. И беда в том, что эти форматы очень плохо между собой взаимодействуют: мы не можем делать require на ESM модуль. Из-за это нам приходилось использовать трансляторы/сборщики и публиковать сразу несколько версий библиотеки. В Node.js 22 ситуация улучшилась и теперь мы можем так делать (при условии, что мы не использует top await синтаксис). И теперь TS также поддерживает такое поведение с опцией module: "nodenext".

Как видите, основные изменения касаются компилятора TS (tsc). Это особенно важно, потому что tsc – это не просто утилита для компиляции, а полноценный языковой сервис, который работает в фоновом режиме, пока мы пишем код. Он не только транслирует TS в JS, но и предоставляет такие возможности, как автодополнение, рефакторинг и линтинг непосредственно в IDE. Поэтому, при изучении TS, необходимо понимать не только синтаксис языка, но и возможности, предоставляемые tsc.
03/04/2025, 17:35
t.me/kobezzza_channel/738
✨Пост знакомство

Приветствую вас! Устраивайтесь поудобнее в нашем дружелюбном инженерном пространстве, где мы обсуждаем в основном технические темы, которые волнуют фронтенд разработчиков; темы, которые расширяют кругозор в подходах к программированию и способствуют карьерному росту через прокачку базы и усиление технических навыков.

Если вы со мной не знакомы, то скажу пару слов. Зовут меня Андрей Кобец, мне 35 лет, официально работаю программистом с 2005 года. 10 лет я проработал в Яндексе. Сначала был в Метрике, куда устроился еще на старших курсах института, потом ушел в разработку своего стартапа “I am Gamer”. Когда понял, что разработка затянулась, вернулся в найм, сменил еще пару стартапов и опять вернулся в Яндекс, где проработал руководителем Frontend разработки последние 7,5 лет. Подробнее про мой путь программирования вы можете посмотреть на YouTube.

С 2021 года я начал вести блог, записывать образовательные видео, что привело к созданию школы Kobezzza.Lab, которая нацелена на повышение квалификации уже действующих фронтенд разработчиков. Основали школу мы вместе с моей женой Дашей, которая отвечает за всю бизнесовую часть проекта. Сейчас нас в команде 10 человек, и совсем недавно мы получили образовательную лицензию.

Работать руководителем в Яндексе и параллельно развивать школу было непросто и очень трудозатратно. Я откровенно вымотался и пришлось выбирать что-то одно. Я сделал ставку на свое дело и считаю, что после 20 лет в коммерческой разработке это сродни выходу на пенсию, новый жизненный этап, в котором я могу больше времени посветить образованию крутых специалистов и оставить время на себя и семью. У меня, к слову, еще сынишке 3,5 года. Школа и сын растут одновременно 😅

Чтобы лучше познакомиться, рекомендую вам:

1. Прочитать пост - Что такое база?

2. Подписаться на Ютуб канал. Там много разного, но отдельно хочу выделить бесплатный курс «Делаем stories как в Instagram» для новичков и джуниоров, Мой топ горячих клавиш в Webstorm, подкаст с Димой Холстининым.

3. Подписаться на бот, в который мы присылаем только важные новости и анонсы курсов и акций - @Kobezzzainfo_bot

4. Заглянуть на сайт школы - Kobezzza.ru

5. Ну и чтобы оценить свой уровень в масштабах Бигтехов, посмотрите Гайд «От Junior к Senior». Ссылка на него по кнопке ниже 👇🏻
03/04/2025, 11:14
t.me/kobezzza_channel/736
Сегодня закончил чтение книги Брайана Слеттена "WebAssembly. Практическое руководство".

Я взял эту книгу с целью сделать свои знания Wasm более цельными. Что я имею в виду: до сих пор Wasm для меня был инструментом расширения задач, которые я решаю с использованием JavaScript (в браузере или Node.js). Но книга открыла мне глаза на совершенно иное применение Wasm.

Итак, Wasm появился благодаря таким проектам, как NaCl/PNaCl и asm.js. Изначально требования заключались в разработке низкоуровневого формата байткода для встраиваемых сценариев с высокой скоростью исполнения, приближающейся к нативной. Так оно и вышло, но достаточно скоро стало очевидно, что, хотя Wasm создавался как помощник JS, фактически, это отдельный инструмент.

В результате развития этих идей появился стандарт WASI, который описывает стандартный интерфейс запуска Wasm-программ на любой хост-среде, а также сами такие среды: wasmer, wasmtime, wasm3 и т.д. Теперь мы можем писать программы на разных языках программирования и объединять их для исполнения как Wasm-программы (браузер или JS тут уже ни при чем).

Давайте перечислим плюсы такого подхода:

1. В отличие от нативных программ, Wasm не требует отдельной компиляции под разные архитектуры процессоров.

2. Эффективность исполнения Wasm при этом близка к нативной.

3. Wasm использует инфраструктуру LLVM для компиляции, а значит, существует огромное количество языков программирования, которые могут быть скомпилированы в Wasm.

4. Wasm изначально проектировался как встраиваемый инструмент, поэтому его можно легко интегрировать в программы на множестве языков, а не только в JavaScript.

5. Wasm очень минималистичен, а все дополнительные возможности предоставляет среда. WASI стандартизирует этот подход. При этом у нас получается слой легковесной виртуализации между программой и исполняющей средой. Например, WASI позволяет программе использовать только те API, которые разрешены пользователем при запуске среды, или перегружать API среды.

6. Wasm не принадлежит какому-то одному вендору, как, например, в случае с Java.

Если проанализировать эти пункты, то можно прийти к выводу, что Wasm-программы — это аналог контейнера (например, Docker), только еще более минималистичный (нет зависимости от конкретного ядра ОС). А значит, мы можем запускать наши программы на любых ОС и устройствах с минимальными издержками, но при этом иметь контроль над используемыми API и обеспечивать безопасность.

Уже сейчас существует множество компаний, которые позиционируют Wasm как новый Docker (один из разработчиков Docker даже сказал, что будь Wasm в 2008 году, Docker не появился бы). Есть сервисы распределенных вычислений, которые позволяют развернуть Wasm в любом облаке или на компьютерах пользователей. Есть проекты, добавляющие поддержку Wasm в Kubernetes. Блокчейн-платформа Ethereum переходит со своей VM (EVM) на Wasm (EWASM).

Одним словом, Wasm имеет шансы стать революционной технологией не только для веба, но и для всей разработки в целом 🔥
03/01/2025, 11:27
t.me/kobezzza_channel/735
С первым днем весны! Публикую дайджест постов за февраль. Поехали! 🚀

🌍 Личный опыт и события

Тайм-аут в Стамбуле: осознание выгорания и поиск баланса – после бодрого старта года и кранча с курсом стало понятно, что пора на паузу. Размышляю, почему даже любимая работа может истощать и как научиться работать без упахивания.

🛠 Разборы, технологии, полезные фишки

CSS attr теперь работает не только с content – теперь attr можно использовать вместе с другими CSS-свойствах. Мелочь, а приятно!
Как Rust взломал мой мозг: куда пропал дискриминант? – разбираем технику оптимизации памяти на примере Option<&T> из Rust.
Где в реальной жизни используются битовые маски? – Vue, WebGL, IP, сетевые протоколы… Маски повсюду, просто ты их раньше не замечал.

🚀 Курсы и анонсы

Новый турбо-курс: IndexedDB в действии! – разбор IndexedDB, работа с idb, Dexie.js, PouchDB, а также Local First и распределенные БД. Курс уже доступен!
Фрагмент 5-й лекции: синхронизация данных и Local First – как двигаются данные между клиентом и сервером, транзакции, MVCC, индексные структуры. Лекция из курса в открытом доступе!
Почему транзакции не всегда работают в распределенных СУБД? – транзакции – это удобно, но масштабировать их в распределённых системах не так-то просто. Альтернативные подходы, MVCC и CouchDB.
Готовлюсь к выступлениям на Codefest’25 и DUMP Екатеринбург! – если увидите меня на конференциях, подходите, поболтаем!

🎓 TypeScript и база знаний

Почему все носятся с TypeScript? – TS = безопасность, DevEx, документация и сборка. Почему это мощнее, чем кажется?
Что такое база и зачем она нужна? – алгоритмы, структуры данных, парадигмы, низкий уровень и математика. Почему важно прокачивать базу, а не просто учить фреймворки?
Скоро анонс нового Live-курса по TypeScript! – TS 5.8, tsc, трансформации кода, линтинг, Тьюринг-полная система типов. Уже скоро!

🔥 Инструменты и хэлперы

Как работает indexedDB.cmp и зачем он нужен – метод indexedDB.cmp умеет корректно сравнивать сложные структуры данных в IndexedDB, работая даже в древних браузерах.
Хэлперы для изучения битовых операций – выложил gist с полезными утилитами для работы с битами.

Продолжаем разгоняться, впереди ещё больше интересного. 🚀
03/01/2025, 10:36
t.me/kobezzza_channel/734
🥳 Мы уже почти готовы сделать анонс нового курса по TypeScript!

Он будет состоять из 11 или 17 занятий (в зависимости от выбранного тарифа) и проходить в Live.

На курсе будет в полной мере разбираться последняя актуальная версия TS 5.8, а также эталонный компилятор tsc. Мы научимся не только творить страшное используя Тьюринг-полную систему типов TS, но и встраиваться в Pipeline сборки меняя код под свои требования. Также в общем поговорим про сборку (включая альтернативные реализации TS) и использования tsc как инструмента линтинга.

В общем будет легендарно! На следующей неделе будет официальный анонс, так что остаемся на связи. 💪
02/28/2025, 13:15
t.me/kobezzza_channel/733
‼️Что такое база?

Ну, по-большому это накопленный опыт и знания в областях, которые являются основообразующим для используемых нами прикладных технологий. Как видите, в ответе есть некоторая телескопичность, ведь база зависит от того, что мы считаем прикладным.

Что же нам дает база:

1. Буст в изучении прикладных технологий. Человеку с базой нужно намного меньше времени, чтобы изучить новый инструмент/библиотеку или язык программирования.

2. Способность синтезировать новые решения на прикладном уровне или выстраивать нетривиальные кейсы использования существующих.

3. Способность тратить меньше времени на проектирование и переписывание.

Как уже говорилось выше, что база состоит из совокупности опыта и знаний, а значит нельзя, прочитав одну книжку или пройдя одни курсы, сразу сформировать крепкую базу — это процесс, протекающий во времени. Да и к тому же понятия того, что может входить в базу, крайне широко, так что пока просто не представляется возможным уместить все это многообразие в рамках одного учебного материала.

Но я попробую перечислить наиболее важные (на мой взгляд) вещи для формирования базы и приложу небольшие пояснения:

1. Изучение алгоритмов. Любое программирование так или иначе сводится к применению алгоритмов над данными, поэтому, изучая фундаментальные алгоритмы, мы накапливаем опыт в программировании, как в таковом. Это можно сравнить с формированием мышечной массы.

2. Изучение структур данных. Если алгоритмы отвечают за мясо, то структуры данных — это техника. Техника позволяет вам эффективнее применять свою силу и не получить травму (в нашем случае это баги и архитектурные изъяны).

3. Изучение низкоуровневых примитивов программирования: работа процессора, памяти, кэша, основы программирования на языка низкого уровня. Данные знания в первую очередь полезны для оптимизации наших программ и позволят вам получить супер силу использования Wasm для решения ваших задач.

4. Изучения разных языков программирования. Даже если основной ваш яп вполне конкретный JavaScript и вы не планируете его менять. Изучения других ЯП повышает вашу насмотренность, что в свою очередь отразится в выборе вполне конкретных решений при прикладной работе. Простой пример, если вы изучали Haskell или любой другой ML подобный ФП ЯП, то при программировании на JS вы будете активно использовать функциональные контейнеры и монадические интерфейсы — просто потому, что это очень удобно и делает код проще и чище.

5. Изучения разных парадигм программирования: процедурное, FP, OOP, AOP, DDD и т.д. Данный пункт можно было бы объединить с 4-м, но я хочу отдельно подчеркнуть важность изучения паттернов и идиом каждой конкретной парадигмы.

6. Изучение математики. Особенно нас интересует дискретная математика и линейная алгебра. Вы удивитесь, но данные разделы мы неосознанно используем каждый день, а явное понимание "что здесь происходит" даст больше контроля в ваши руки.

7. Знания из других отраслей. Удивительно, но ваши способности в создании программ можно значительно усилить за счет знаний из, казалось бы, совсем не связанных с программированием дисциплин. Сюда можно отнести и физику, геометрию, электротехнику, биологию, лингвистику, теорию музыки и многое другое.

В итоге получилось 7 пунктов, хотя конечно, сюда можно много чего еще добавить. Например, устройство и архитектура сетей или устройство ОС. Но мне не очень хочется вываливать на вас сразу все, поэтому начать можно с плавного изучения этих пунктов.

Последовательность здесь не обязательна, да и вполне можно изучать параллельно, если изучаемый материал не давит своей сложностью. Помните, что нет такого состояния, когда "база полностью сформирована". Это процесс во времени и ваша задача просто не останавливать движение в этом направлении. Ну а я помогу, чем смогу.
02/26/2025, 14:40
t.me/kobezzza_channel/732
🧐 Даша меня сегодня спросила: "А почему вообще все носятся с этим TypeScript?". Отвечая на этот вопрос, я уже по традиции, выдал некоторую предварительную историческую справку, рассказал об альтернативах, о процессах в других динамических ЯП...

Но если отбросить лирику и попытаться выделить суть, то что именно дает нам ТС (а дает он ровно 4 вещи):

1. Перенос обнаружения ряда ошибок из Runtime в Design-Time (вы пишите код) и Compile-Time (вы собираете проект). И вероятно это самое главное, что дает нам TS. К слову, актуальность проблемы и востребованность похожего рода инструментов привела к тому, что опциональная аннотация типов была добавлена во многие динамические ЯП: PHP, Python, Ruby. В JS тоже такое предложение было, но на фоне уже имеющегося развитого инструмента и экосистемы TS оно как будто уже не нужно.

2. Улучшение DevEx: помимо обнаружения ошибок и контрактов на этапе написания кода, TS приносит нам очень мощный механизм автодополнения, инструменты линтинга (например, обнаружение константных условий типа if (a = 1)) и рефакторинга. Причем приносит именно TS (а точнее, tsc), ведь он реализован не просто как простой компилятор из A в B, а языковой сервис (LSP). А значит поддержка всех этих фичей одинаково хорошо работает как в WebStorm, так и в Vim.

3. Документация. Хорошо описанные интерфейсы и .d.ts файлы часто заменяют полноценную документацию. Да и генерировать документацию по TS коду также можно (через сторонние инструменты).

4. Сборка. При использовании tsc мы можем использовать TS для сборки под разные окружения (ES5, ES6, ES+), смешивать commonjs и esm модули вместе, а также встраивать в pipeline сборки свои трансформеры для преобразования кода.

Вот в общем и все. Но этого хватает, что выбор в пользу использования TS перед JS является практически всегда наиболее подходящим. В подтверждение моих слов, многие Runtime платформы JS (Node.js, Deno, Bun) имеют встроенную поддержку TS. Безусловно, альтернативы тут есть:

1. Примитивный jsDoc.
2. Похожие на TS проекты по типу Flow.
3. Заточенные под трансляцию в JS альтернативные ЯП, например, Rescript.
4. Мультиплатформенные ЯП по типу Kotlin и Scala.
5. ЯП собираемые в Wasm.

Но по ряду совокупных факторов: распространению, минимализму runtime, простоте миграции, развитой инфраструктуре - TS все равно остается наиболее логичным выбором для большинства проектов.
02/25/2025, 13:43
t.me/kobezzza_channel/731
Сегодня утром закончил чтение книги Евгения Черешнева "Форма жизни №4". Вообще, пожалуй самое заметное изменение в моей жизни, связанное с уходом из найма - это то, что я снова много и активно читаю. Последние лет пять я читал в среднем книг 5-6 в год (в соотношение техническое к художественному примерно 80 к 20), а теперь я могу читать каждый день!

Итак, про книгу. Книга посвящена проблемам жизни в цифровую эпоху (сбор данных, отслеживание) и бурному развитию ИИ. Машины становятся умнее, а человек, ведомый примитивной жаждой денег и ленью - глупее. И во мы движемся к прекрасному новому миру, где человек абсолютно не способен к самостоятельному мышлению и развитию, где нет места свободе, но зато есть 100500 "нужных" девайсов к покупке для утоления жажды потребления и набивания карманов огромных корпораций.

Евгений красноречиво и аргументированно рассказывает в своей книге, почему нужно серьезно относиться к наполнению своей собственной нейросети: чтению книг, постоянному обучению и развитию. Признаюсь, меня пару раз порывало прям процитировать фрагменты из книги в блоге. В общем годнота и однозначно рекомендую к прочтению!

PS: Параллельно с чтением Черешнева прочитал повесть "Чайка по имени Джонатан Ливингстон" Ричарда Баха. Повесть о стремлении к знаниям и идеалам; об одиночестве и свободе. Читается за один присест, но очень мотивирует.
02/25/2025, 10:42
t.me/kobezzza_channel/730
Выложил большой фрагмент 5-й лекции моего новейшего турбо-курса:

vk видео
youtube

В нем мы поговорим о способах синхронизации данных между клиентской и серверной БД; паттерну движения данных через БД и архитектуре Local First.

Как обычно, в своих материалах я отвечаю не только на прикладные вопросы, но показываю взгляд на вещи сквозь призму базы:

1. Индексные структуры данных для оптимизации операций чтения.
2. Различные паттерны извлечения данных из БД: от запросов по ключам до Map-Reduce.
3. Нюансы миграции данных при обновлении.
4. Проблемы конкурентного доступа к данным и способы их разрешения через транзакции и MVCC.
5. Нюансы синхронизации в распределенных системах.

Я считаю важным подавать материал именно в таком виде, ведь так вы получите не только конкретные ответы на свои вопросы, но и задумаетесь о вещах, о которых раньше не думали. Это открывает доступ к новым темам и знаниям — вы начинаете смотреть на вещи иначе, замечая новые абстракции и перспективы.

Более того, такой подход помогает формировать в голове собственную базу знаний, где информация не просто оседает, а связывается в единую систему. На мой взгляд, это единственный способ перейти от пассивного потребления информации и зубрежки к глубокому пониманию, а затем и способности созидать новое.

PS: Сегодня последний день, когда новый турбо-курс можно приобрести по самой низкой цене. Доступ к приобретенным материалам доступен в течение года с момента покупки с возможностью продление за 50% от стоимости.
02/24/2025, 08:43
t.me/kobezzza_channel/729
Друзья, всем доброе субботнее утро!

Я наконец то доделал последнюю, пятую лекция моего турбо-курса по IndexedDB! На самом деле, в данной лекции речь пойдет не про IndexedDB, а про совершенно другую СУБД CouchDB, а также про синхронизацию данных между разными активными узлами и архитектуру LocalFirst.

В лекции мы будем работать с библиотекой PouchDB, которая является полнофункциональной реализаций CouchDB на JS. Мы изучим все основные API для работы с данными и детально разберем механизм ревизий и разрешение конфликтов. А после лекции вас ждет большое и интересное ДЗ, чтобы закрепить навыки на практике.

Данная лекция будет полезна как практикам, так и тем, кто готовится к собеседованию и страшиться секции про System Design. Одним словом - годнота.

Напомню, что у вас есть всего несколько дней, чтобы приобрести турбо-курс по самой низкой цене. А если вы уже купили базовый тариф и поняли, что хотите пройти оставшиеся лекции, то напишите в бот и сделайте апгрейд.

Всем базы!
02/22/2025, 12:42
t.me/kobezzza_channel/728
Разбирая тот или иной инструмент полезно задать себе вопрос "какую проблему он решает" и "почему он решает её именно так". Вот, например, возьмём транзакции в СУБД - они позволяют нам сделать атомарным выполнение сразу нескольких операций над данными. Под атомарностью я понимаю тут три условия:

1. Все параллельные транзакции исполняются так, как если бы они исполнялись последовательно. Т.е. у нас не должно возникать проблем из-за конкурентных операций записи или чтения - СУБД должны как-то решать такие ситуации.

2. Если какой-то из запросов в рамках транзакции "ломается", то у нас должна быть возможность полностью откатить все изменения, которые применились в рамках транзакции.

3. Если транзакция считается успешной, то значит ВСЕ запросы в рамках транзакции уже выполнились и все изменения сохранились на диске.

Пока мы не знаем, как именно можно обеспечить выполнение этих пунктов (ведь их можно выполнить по-разному), но уже очевидно, что их выполнение вызовет проблемы в распределенной системе. Почему? Ну, как минимум по-тому, что если запись можно параллельно делаться на разных устройствах, то гарантировать отсутствие конкуренции очень сложно.

Вообще, есть протоколы позволяющие выполнять такие распределенные транзакции, например, "Двухфазная фиксация". Это протокол использующий специального куратора и набор определенных фаз фиксации транзакции. Я не буду сейчас вдаваться в подробности, но скажу, что это решение далеко от идеала. Во-первых, у нас по-прежнему есть единая точка отказа (куратор), во вторых эффективность работы таких транзакций в случае если что-то идет не так оставляет желать лучшего (из-за блокировок).

Нет, не подумайте, транзакции замечательный и вероятно наиболее удобный инструмент в условиях работы на одном компьютере. Именно поэтому они используются во многих встраиваемых СУБД (например, IndexedDB или SQLLite). Также, они очень даже успешно применяются в рамках конфигурации кластера Master-Slave. Однако, способы реализации транзакций в серверных СУБД отличаются от встраиваемых (вместо блокировок используются зафиксированные слепки данных).

Но с другой стороны, многие современные распределенные СУБД отказываются от транзакций, как от таковых из-за сложности в масштабировании и выбирают альтернативные решения. Одно из таких решений может быть подход с использованием множества версий записей в БД (Multi Version Concurrency Control). В моем новом турбо-курсе этот способ детально разбирается в отдельной лекции на примере СУБД CouchDB (планирую её зарелизить завтра).

К чему я все это веду? Не раз слышал от ребят, читавших того же "Кабанчика", что информация после прочтения забывается. Но как мне кажется, секрет запоминания кроется в понимании решаемых проблем. Во всяком случае я придерживаюсь такого паттерна уже очень давно при обучении.

Всем базы!
02/21/2025, 13:02
t.me/kobezzza_channel/727
Сегодня был созвон с программным комитетом Codefest’25. Предварительно выбрали тему выступления. Тема непростая, но заставляет серьезно задуматься.

Также сегодня Dump Екатеринбург сообщили, что приняли мой доклад 🥳

Темы спойлерить не буду, увидите на сайте после всех согласований. Так что, скоро увидимся ✌🏻

25 апреля - Екатеринбург
31 мая-1 июня - Новосибирск

P.S. Если узнали меня, подходите, не стесняйтесь. Буду рад встрече ☺️
02/20/2025, 18:33
t.me/kobezzza_channel/726
Классной особенностью разработки обучающих материалов является тот факт, что ты сам совершенствуешь свои знания. Ведь перед записью материала ты должен составить программу, разработать примеры и т.д.

И при разработке курса по IndexedDB я открыл для себя статический метод indexedDB.cmp. Он позволяет сравнить два значения, типы которых могут быть ключами в IndexedDB: это строки, числа, даты, байтовые буферы и типизированные массивы, а также массивы таких значений. Разумеется, использовать его можно и в отрыве от IndexedDB. Получается, что у нас есть встроенные метод для сравнения сложных типов!

indexedDB.cmp([42, 11], [67]) // -1
indexedDB.cmp([42, 11], [42]) // 1
indexedDB.cmp([42, 11], [42, 11]) // 0

Это особенно актуально, учитывая, что встроенные операторы сравнения работают через приведения типов, что приводит к совершенно нелогичному результату.

[1111] > [2] // false

Тут массивы были приведены к строке, а затем сравнены лексикографически. А вот indexedDB.cmp делает честное поэлементное сравнение и в добавок поддерживает кучу типов. И работает даже на утюгах (chrome 23, firefox 10, safari 8).

Хорошее знание встроенных инструментов может помочь в самых разнообразных инструментах!

https://kobezzza.ru/indexeddb
02/20/2025, 09:39
t.me/kobezzza_channel/725
Друзья, вижу, что большинство из вас берет тариф IndexedDB+ ❤️

Последняя (пятая) лекция появится в доступе уже на этой неделе. Материал уже записан и лежит на монтажном столе. Просто я немного порвался не рассчитал свои силы, когда решил еще провести открытый урок и не успел к запуску.

Все будет в ближайшие дни, спасибо за понимание ❤️
02/19/2025, 16:30
t.me/kobezzza_channel/724
🥳 После 1.5 месяцев непрерывной разработки (рекорд получается) я с радостью готов представить мой новый турбо-курс - IndexedDB в действии 🔥

По началу может показаться странным, что я потратил так много времени на разработку и общая длительность получившегося материала превышает 8 часов.
Но дело в том, что там действительно есть много чего рассказать и курс хоть построен вокруг конкретного инструмента, но затрагивает очень многие вещи от разрешения конфликтов в распределенных системах до принципов поточной архитектуры работы с данными.

Да и сам IndexedDB на мой взгляд один из самых недооцененных инструментов в Web.

* Во-первых, он с нами уже 100 лет в обед (только задумайтесь, IndexedDB появился раньше Promise) и он прекрасно поддерживается во всех браузерах.

* Во-вторых, он реализует документ-ориентированную модель хранения данных и позволяет бесшовно сохранять в базе почти все стандартные JS объекты, а затем также бесшовно их считывать.

* В третьих, он позволяет хранить гигабайты информации (в том числе бинарной), что выглядит особенно внушительно против 5МБ у LocalStorage. Более того, IndexedDB использует индексы, чтобы не держать в памяти все данные сразу, а также осуществлять более сложные запросы.

* В четвертых, IndexedDB изначально спроектирован на поддержку работы из нескольких потоков. Механизмы транзакций позволят вам гарантированно защитится от гонок данных.

* А самое главное, что использовать его почти также просто как LocalStorage и, на мой взгляд, в половине случаев, когда мы используем LocalStorage, нам удобнее будет работать с IndexedDB.

Но при всех этих безусловных плюсах инструмент старательно избегается большинством разработчиков. Вместо этого они либо грузят сотни килобайт библиотек, которые "как будто бы проще" (спойлер, это не так) и они под капотом все равно используют IndexedDB. Либо всегда используют LocalStorage и обмазываются костылями, для обхода всех ограничений.

Я постарался сделать курс таким, чтобы не только рассказать про существующий API, но и объяснить почему он именно такой. На протяжение 8 часов курса мы будем вновь и вновь задавать вопросы, а затем находить ответы.

При этом пусть цифра 8 часов не пугает вас, ведь курс поделен на лекции, где постепенно, шаг за шагом, мы погружаемся в разбор этого могущественного API и связанного с ним. Кроме того, помимо ванильного API в курсе разбираются наиболее популярные библиотеки использующие IndexedDB: idb, idb-keyval, LocalForage, Dexie.js, PouchDB.

Не обошёл стороной я и тему с архитектурой Local First: в курсе разбираются сразу два возможных решения для синхронизации данных (Dexie Cloud и CouchDB/PouchDB). Причем PouchDB посвящена отдельная лекция, где мы разбираем стратегии разрешения конфликтов, распределенные индексы, Map/Reduce и многое другое!

При этом курс доступен в двух вариантах: только IndexedDB и с дополнительными лекциями по библиотекам и Local First. А цена сформирована таким образом, что в итоге это получился самый доступный из наших турбо-курсов, а до 24 февраля еще и действует стартовая скидка!

На сайте турбо-курса можно детальнее ознакомится с тарифами, программным планом и посмотреть кусочек первой лекции.

https://kobezzza.ru/indexeddb
02/19/2025, 13:26
t.me/kobezzza_channel/723
Выкладываю ссылку на gist с хэлперами для упрощения изучений операций с битами:

https://gist.github.com/kobezzza/b8e1caeb87ec2cfe8fcbf7acd8216ed6

PS: всем спасибо, кто был на эфире! (и тем, кто посмотрит в записи - тоже ❤️).
02/18/2025, 22:12
t.me/kobezzza_channel/722
🔔В 19:00 начинаем наш открытый урок по работе с битами в JS.

Кто регистрировался, проверяйте почту. Не забудьте проверить спам и рассылки.

❗️Письма могут приходить с задержкой, не переживайте! Если до 19:00 не найдете ссылку, пишите нашему техническому специалисту Юлии @YuliyaKornilova

До встречи на уроке! 👋🏻
02/18/2025, 18:15
t.me/kobezzza_channel/721
Search results are limited to 100 messages.
Some features are available to premium users only.
You need to buy subscription to use them.
Filter
Message type
Similar message chronology:
Newest first
Similar messages not found
Messages
Find similar avatars
Channels 0
High
Title
Subscribers
No results match your search criteria