ТОП - Тёма о программировани – Telegram
ТОП - Тёма о программировани
2.83K subscribers
9 photos
1 file
41 links
Канал о программировании
Реклама - @vlad_0045
Мой личный контакт - @ngArchie

Мой ютуб канал - https://www.youtube.com/@temaProg
Download Telegram
Сезон отпусков
#ПростоМысли

Доброе утро, работяги!

Сегодня ехал на работу, погодка супер, из окна так вообще как лето уже. Пришла идея немного побухтеть про отпуска.

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

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

Но постепенно я начал замечать усталость. И нет это не какая-то мифическая усталость. Просто быстрее устаешь. Усталость появляется не к ночи как обычно, а к вечеру. При этом утром я заряжен, я готов разрывать таски, творить и просто бегу на работу. Но к вечеру уже выжат. Я грешил на погоду, витамин D и многое другое.

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

Если ты стабильно стал быстрее утомляться, то тебе пора недельку отдохнуть. Так пользы от тебя будет сильно больше.

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

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

Продуктивной пятницы и хороших выходных, работяги!
🔥19👍10
Анонс ютюб канала
#Анонсы

Здарова, работяги!

Я создал свой ютуб канал.

Возможно позже добавлю другие платформы. На канале будет много всего интересного о программировании, но только уже в видеоформате.

Первым делом записываю видеожурнал про NextJs. Первый эпизод уже на канале - https://youtu.be/F9Vaac3h0pg

Я только начинаю делать видео, поэтому буду очень рад вашему фидбеку, пишите что понравилось, что нет в комменты)))
🔥22
Отпуск заканчивается
#Анонсы

Я потихоньку начинаю выбираться из отпуска. Скоро выложу новые посты в канал)
А на ютуб-канале уже вышел новый выпуск видео-журнала о Next.js.

https://youtu.be/0UJhyhspYPw

Приятного просмотра!
🔥203
Это база
#ПростоМысли

Здарова, работяги!

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

Для простоты введем сокращение ПТ - продвинутая технология, это может быть фреймворк, либо библиотека. Как пример React, Angular и тп.

Почему такой вопрос вообще возникает? Я предполагаю, что пошло это из найма, ведь если мы откроем вакансии для фронтендеров, то увидим огромное количество заголовков в духе - "Ищем junior/middle/senior React/Angular/Vue разработчика". Уже в самом заголовке выставлен акцент на ПТ. Хорошо ли это? Не думаю. Скорее даже опасно.

Начинающие разработчики спешат поскорее найти свою первую работу. Для этого они стараются максимально соответствовать тем описаниям вакансий, которые они видят. А там акцент выставлен на ПТ. Следовательно складывается впечатление, что нужно поскорее выучить именно ПТ. И вот тут они допускают ошибку.

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

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

Хороший фундамент позволяет вам в кратчайшие сроки изучать новые ПТ, ведь вы понимаете на чем они строятся, какие принципы лежат в их основе. И я убедился в этом на своем примере, ставка на базу позволила мне без проблем и в кратчайшие сроки перейти с Vue на Angular, а после на React. И это только один из самых крупных примеров в моей практике. Поэтому в этом споре я всегда буду на стороне базы.
🔥27👍6🥰1🆒1
Труд!

Доброе утро, работяги!

Праздник труда закончился, а результаты остались.

На канале вышел новый выпуск про Next.js. В нем мы с вами разберемся с роутингом.

Приятного просмотра - https://youtu.be/RIA5N660mr8
🔥20
Расширяемся

Работяги, решил создать сообщество в вк. Посты и видео теперь будут дублироваться там.

https://vk.com/temaprogchannel

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

Всем продуктивной недели!
👍9
3 работы
#ПростоМысли

Здарова, работяги!

Несколько работ - достаточно горячая тема. Есть люди кто «За» то, чтобы иметь несколько работ, есть те, кто «против». У меня есть опыт работы в нескольких компаниях одновременно, поэтому есть желание поделиться выводами из этого опыта. Под несколькими работами я подразумеваю работу по совместительству и калым.

Пойдем четко по плюсам и минусам.

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

Минусы:
1. Замедление роста. Доп работы отнимают много времени, которое вы могли бы потратить на чтение и осознанную практику в петпроектах.

Вывод: для младших работяг рост это основное. Их нанимают с целью вырастить. Замедляя свой рост, вы уменьшаете свою ценность. Поэтому сконцентрируйтесь на росте.

Для простых работяг
Плюсы:
1. Деньги.
2. Возможно вам повезет и вы сможете на доп проекте поупражняться в проектировании.

Минусы:
1. Замедление роста в большинстве случаев.
2. От вас ждут роста знаний по вашему основному проекту. Имея несколько разных проектов сложнее хорошо разобраться в одном из них.

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

Для старших
Плюсы:
1. Деньги.

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

Вывод: однозначно нет!

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

А что думаете вы, работяги? Делитесь своим опытом в комментах, буду рад почитать)
🔥14👍721🆒1
Наливайте кофеёк
#Анонсы

Здарова, работяги!

На выходных появилась идея записать разговорный видос. Формат для канала новый. Буду очень рад вашему фидбеку)

В пилотном выпуске проведем сравнение плодородности больших и маленьких компаний для стажера.
Ютуб
ВК
Приятного просмотра.

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

Подписывайтесь на канал, чтобы их не пропустить!
🔥172👍1
Минутка саморекламы
#Анонсы

Здарова, работяги!

Я веду курс по React и интенсив по TS на платформе https://learn.javanoscript.ru/
Сейчас проходит набор:
20.05-21.05 интенсив по TS - https://learn.javanoscript.ru/courses/typenoscript
18.05 - 26.06 курс по React(React+Next) - https://learn.javanoscript.ru/courses/react

Лекции веду я лично, все дз проверяю я лично в формате код-ревью.

Если у вас есть желание освоить новую технологию, либо закрыть пробелы, то буду рад вас видеть.
👍18
Next 13.4

Здарова, работяги!

Недавно релизнулся Next 13.4. Самое основное, что приносит нам эта версия - стабильный AppRouter, который ранее находился в бете.

Мотивация разработчиков в том, что время идёт, технологии развиваются и нексту тоже хочется расти и радовать нас новыми классными фичами, поддерживать крутые новинки реакта, но PageRouter(его мы использовали до версии 13.4) уже не позволяет это делать. Поэтому ребята подготовили новое решение AppRouter, которое с версии 13.4 становится основным выбором.

Про PageRouter я рассказывал в этом видео. Какое-то время он еще будет актуален, тк проекты обновляются не по щелчку пальцев.

В ближайшее время постараюсь релизнуть подробный разбор AppRouter)
🔥102
Магия TS

Здарова, работяги!

Вы просили - я сделал. Первое видео о TypeScript уже на канале. В нем разбираю MappedTypes мощный инструмент для генерации типов.

Youtube
ВК

Приятного просмотра!
🔥23👍42
Куда пропал?

Здарова, работяги!

Давненько не писал посты, не выкладывал видео.
И если вы думаете, что я забил, халтурил, свалил в отпуск или что-то подобное, то нет. Готовился к ШРИ.

В этом году читал 3 лекции про Реакт:
1. База;
2. Продвинутые темы;
3. Next + StateManagement.

Приятного просмотра!

P.S. возвращаюсь к постам в тг и видео на канал)
🔥78👀4🐳1🆒1
App Router

Здарова, работяги!

На канале вышло первое видео по обновленному нексту, начинаем с базовых возможностей App Router:

Ютуб

Приятного просмотра!
🔥534👍1
Callback в ref

Здарова, работяги!

Думаю, для вас не секрет, что в React доступ к DOM-элементу можно получить не только с помощью document.getElementById(и подобного), но и используя useRef. Но есть еще один способ, и в некоторых случаях он даже лучше.

Допустим, мы хотим установить фокус на DOM-элемент. Часто я вижу подобное решение:



function MyComponent() {
    const inputRef = useRef(null);

    useEffect(() => {
        inputRef.current?.focus();
    }, []);

    return (
        <div>
            {/* разные элементы */}
            <input ref={inputRef} />
            {/* разные элементы */}
        </div>
    );
}


По моему мнению, оно не самое эффективное, особенно учитывая двойные вызовы колбека useEffect в React.StrictMode(dev mode). Чтобы воспользоваться альтернативным решением, необходимо посмотреть на апи ref’а. Там мы увидим, что ref ожидает следующие значения:



RefCallback<T> | RefObject<T>


Делаем вывод, что [[ref]] принимает еще и ссылку на функцию. Собираем пример:



function MyComponent() {
    const onRender = useCallback((element) => {
        element?.focus();
    }, []);

    return (
        <div>
            {/* разные элементы */}
            <input ref={onRender} />
            {/* разные элементы */}
        </div>
    );
}


onRender будет вызываться при добавлении (и при удалении, если этот элемент рисуется условно).

Такой подход также решает проблему, когда вам нужно получить доступ к элементу, который условно рисуется в дочернем элементе. В этом случае использование ref с useEffect будет неэффективно.
👍62🔥341
Современная программная инженерия. ПО в эпоху эджайла и непрерывного развертывания. Дэвид Фарли

Недавно (больше месяца назад, недавно...) был на HollyJs и на стенде с книгами приобрел себе несколько книг. Одна из них была — «Современная программная инженерия. ПО в эпоху эджайла и непрерывного развертывания» Дэвида Фарли.

Ранее я уже читал книгу этого автора — «Непрерывное развертывание ПО: автоматизация процессов сборки, тестирования и внедрения новых версий программ». Именно поэтому я уже был готов к тому, что CI, TDD, trunk-based development и т. д. будут всячески превозноситься в этой книге. Так и случилось, тут без сюрпризов. Возможно, когда-то я напишу посты со своим мнением об этих подходах, но сейчас мне хочется остановиться на другом:

1. Фокус автора на важность в разработке программной инженерии. К сожалению, сейчас многие превращают разработку в рутину, просто ремесло. Но идея автора сильно бодрит, отрезвляет и помогает иначе взглянуть на то, что мы делаем каждый день. Позволяет увидеть наметки пути к улучшениям и развитию. Эта идея открывает дверь ко многим практикам, которые недоступны ремесленнику, но полезны инженеру.
2. Хороший обзор современной разработки, процессов, метрик. А самое главное — со ссылками на источники.

Советую ли я эту книгу?
Если вы закопались в рутине — точно да.
Если вы никогда не слышали про DORA-метрики, практики экспериментов, циклы обратной связи, не знаете отличия итерации от инкремента, не слышали про управление сложностью, то снова да.

НО нужно помнить, что эта книга — приятный старт, а не исчерпывающее руководство. И если вас заинтересует то, о чем рассказывает автор, и вы захотите внедрить себе что-то, то лучше почитать что-то более конкретное. Благо автор дает ссылки на другую литературу.
Одной из таких книг является «Ускоряйся! Наука DevOps. Как создавать и масштабировать высокопроизводительные цифровые организации», о ней 100% процентов будет отдельный пост, так как книга очень достойная.
🔥33👍7
Типизация ошибок

Здарова, работяги!

Скорее всего, у многих возникала проблема с типизацией ошибок. Рассмотрим кейс:

try {
// logic
} catch (error: Error) {

}

В этой ситуации ts будет ругаться:

Catch clause variable type annotation must be 'any' or 'unknown' if specified.ts(1196)

Возникает вопрос, почему any или unknown?

В ошибку может прилететь все что угодно:

throw 'hello';
throw null;
throw {};
throw undefined;
throw 123;

Поэтому единственно верным вариантом будет:


try {
// logic
} catch (error: unknown) {

}

Именно с unknown!!! Никакого any!!!

Но как тогда обработать такую ошибку?
Очень просто, написать тайпгард:


if (error instanceof Error) {
return error.message; // как пример
}

Если у вас кастомная ошибка, то нужно будет использовать другой тайпгард - type predicate, in и т.д.
🔥66👍27🆒72💅2
Привет, работяги!

С последнего поста прошло много времени, много всего поменялось. Хочу поделиться с вами различными новостями и планами на каналы в «Телеграме» и YouTube, планами на выступления и прочие активности.

В ноябре 2023-го я выступал на HolyJs в Питере. Рассказывал о ререндерах в React. Видео уже доступно на канале конференции — https://youtu.be/DDN9himU5PE?si=aFGsKPTsJXGCy9si. Приятного просмотра)

В конце апреля выступил на HolyJs в Москве. Доклад был про роутеры NextJs, виды рендеринга и серверные компоненты. Записи пока нет, но скину в канал сразу, как откроют доступ.

В ближайших планах ШРИ. Будет, как всегда, летом. Готовим полностью новые лекции по React, ну или не только по React) Уже скоро скину более точную инфу.

Теперь о курсах, которые я веду на платформе learn.javanoscript.ru. Принял решение завершить преподавание в таком формате. Сейчас идёт/заканчивается набор на курс по React, TypeScript и паттернам. Это последние наборы, которые буду вести я, потом там будут другие преподаватели. Мой уход с платформы не значит, что там что-то не так, нет. Я просто решил сместить фокус на другие сферы своей жизни. Уверен, лекторы, которые будут вести после меня, тоже будут супер.

После ухода с платформы я не планирую совсем завязывать с преподаванием, оно останется в моей жизни как хобби. Теперь основными платформами будут «Телеграм» и YouTube. Уход с платформы позволит перенаправить часть освободившегося времени на них, поэтому скоро наконец будет новый контент. В ближайших планах — серия роликов по React, Next и экосистеме, контент по внутреннему устройству React и Next. Для «Телеграма» уже заготовил пару интересных постов)

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

Есть еще ряд планов, которые я пока не хочу спойлерить, оставлю небольшую интригу)
🔥100👍4710🙏2💯21
Привет, работяги!

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

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

Приятного чтения!
🔥86❤‍🔥118🫡6🥰2🐳2👨‍💻21🎄1🆒1
Здарова, работяги!

В открытый досутп опубликовали доклад с весенней HolyJs - YouTube.

А уже 24, 25, 26 июня в рамках ШРИ будет блок лекций по React.
В этом году план следующий:
1. 24 поговорим о базе Реакта. Я каждый год делаю эту лекцию с нуля, добавляю новые нюансы, улучшаю объяснения и т. д. Этот год не исключение.
2. 25 большая лекция про NextJS. Посмотрим, как построить приложения, используя этот фреймворк.
3. 26 Андрей Зубков, мой коллега, расскажет о построении классического SPA.

Все лекции, как и каждый год, будут в открытом доступе.
🔥76❤‍🔥54🏆32👍1👨‍💻1
И еще новость!
27 июня буду на Youngcon. Если тоже планируете посетить — пишите, буду рад пообщаться вживую)
(не реклама)
🔥16🆒2