Всем привет!
Продолжаем видосы по TypeScript (это должен быть предпоследний).
В этот раз разберем актуальную для всех тему - типизация сложных кейсов в React (memo, forwardRef, hoc, component as prop).
Обязательно оставляйте лайки, фидбэк в комментариях и делитесь видео с друзьями - это помогает каналу быстрее расти.
https://youtu.be/JysvuDPCS80
Продолжаем видосы по TypeScript (это должен быть предпоследний).
В этот раз разберем актуальную для всех тему - типизация сложных кейсов в React (memo, forwardRef, hoc, component as prop).
Обязательно оставляйте лайки, фидбэк в комментариях и делитесь видео с друзьями - это помогает каналу быстрее расти.
https://youtu.be/JysvuDPCS80
YouTube
Продвинутое использования React с TypeScript
В данном видео разберем, как использовать React с TypeScript. Поговорим не только про базовые кейсы, а также разберем типизацию сложных паттернов, таких как Hight Order Components (HOCs), Component as prop, render props.
Видео про tsconfig:
https://yout…
Видео про tsconfig:
https://yout…
❤45🔥18💯3👍2👏1🌭1🍓1
Всем привет!
Мне переодически пишут люди, которые не могут устроиться на первую работу. Ситуация у всех разная, одно решение дать тут не могу.
Однако хотел бы вкинуть свои 5 центов и рассказать об еще одном варианте, с помощью которого можно получить реальный опыт - стажировки в больших фирмах.
Да, вариант не для всех, но мне кажется большой его плюс в том, что вы заранее можете узнать, к чему вам нужно готовиться.
Я лично знаю про то, как обычно это происходит в Яндексе (про другие несложно найти в инете):
1) Записываетесь на стажировки (сейчас кстати идет весенний набор, если не ошибаюсь)
2) Проходите контест (алгоритмы)
3) Проходите 1-2 собеса (один на JS, другой на алгоритмы)
Пару советов, которыми можно воспользоваться:
1) Зарегайтесь на контест с 2-3 акаунтов и прорешайте задачи заранее, так как там дается определенное кол-во времени.
2) Почти все задачи на алгоритмы есть на литкод, там есть список задач Яндекс (другие фирмы тоже - Гугл, фейсбук и тд.). Их там не так много.
Если выделить время и подготовится - то попасть на стажировку не так сложно. Самый главный тут плюс в том, что вы знаете чего ожидать.
#devtips #job
Мне переодически пишут люди, которые не могут устроиться на первую работу. Ситуация у всех разная, одно решение дать тут не могу.
Однако хотел бы вкинуть свои 5 центов и рассказать об еще одном варианте, с помощью которого можно получить реальный опыт - стажировки в больших фирмах.
Да, вариант не для всех, но мне кажется большой его плюс в том, что вы заранее можете узнать, к чему вам нужно готовиться.
Я лично знаю про то, как обычно это происходит в Яндексе (про другие несложно найти в инете):
1) Записываетесь на стажировки (сейчас кстати идет весенний набор, если не ошибаюсь)
2) Проходите контест (алгоритмы)
3) Проходите 1-2 собеса (один на JS, другой на алгоритмы)
Пару советов, которыми можно воспользоваться:
1) Зарегайтесь на контест с 2-3 акаунтов и прорешайте задачи заранее, так как там дается определенное кол-во времени.
2) Почти все задачи на алгоритмы есть на литкод, там есть список задач Яндекс (другие фирмы тоже - Гугл, фейсбук и тд.). Их там не так много.
Если выделить время и подготовится - то попасть на стажировку не так сложно. Самый главный тут плюс в том, что вы знаете чего ожидать.
#devtips #job
❤23👍13💯5🏆2🍓1
Всем привет!
Вышло еще одно видео по TypeScript, где мы разбираем 3 самые важные вещи, которые вам нужны для написания сложной типизации - conditional types, mapped types, infer.
Обязательно оставляйте лайки и фидбэк в комментариях. Также не забывайте делиться видео с друзьями - это помогает каналу быстрее расти.
https://youtu.be/wfGhhmtDsDQ
Вышло еще одно видео по TypeScript, где мы разбираем 3 самые важные вещи, которые вам нужны для написания сложной типизации - conditional types, mapped types, infer.
Обязательно оставляйте лайки и фидбэк в комментариях. Также не забывайте делиться видео с друзьями - это помогает каналу быстрее расти.
https://youtu.be/wfGhhmtDsDQ
YouTube
3 вещи для написания сложной TypeScript типизации
В данном видео мы рассмотрим 3 вещи, которые вам нужно знать для написания сложной типизации в TypeScript - conditional types, mapped types, infer. Погорим, для чего нужна каждая из них, как работает, и где и как ее можно использовать.
Видео про unknown…
Видео про unknown…
❤41👍20💯3🍓1🆒1
Всем привет!
На позапрошлой неделе у меня выходил 1 видос, вместо обещанных 2-х, поэтому давайте проведем розыгрыш на эту тему.
Для тех, кто не в курсе, я пообещал выпускать 2 видео в недели и 1 пост в день на протяжении 2023-го года. За каждый пропущенный видос или пост я разыгрываю $50 или 1:1 сессию консультации/менторинга.
Для участия нужно будет оставить ровно 1 комментарий под следующим постом. Победителя выберу на этой неделе (не раньше, чем через 24 часа). Нужно просто разобраться с тем, как это можно делать через бота.
На позапрошлой неделе у меня выходил 1 видос, вместо обещанных 2-х, поэтому давайте проведем розыгрыш на эту тему.
Для тех, кто не в курсе, я пообещал выпускать 2 видео в недели и 1 пост в день на протяжении 2023-го года. За каждый пропущенный видос или пост я разыгрываю $50 или 1:1 сессию консультации/менторинга.
Для участия нужно будет оставить ровно 1 комментарий под следующим постом. Победителя выберу на этой неделе (не раньше, чем через 24 часа). Нужно просто разобраться с тем, как это можно делать через бота.
❤18👍12💯2🏆2🍓1
Пост для сбора комментариев на розыгрыш.
❤27👍10🆒5💯3⚡1🍓1
Всем привет!
Пару недель назад наткнулся на вот эту статью про clean code и там поднималась тема перформанса при соблюдении всех правил чистого кода.
Статья довольно интересная (там также есть видео по ней), однако тут мне кажется нужно думать не только о перформансе кода, но и о смысле оптимизации наперед.
Очень часто у разработчиков (у меня в том числе) бывает желание сделать код "более универсальным", покрывая кейсы и проблемы, которых сейчас нету. И в итоге получается какая-то махина, которая только все усложняет.
Особенно часто у меня такое бывает на своих проектах, где нету четкого ТЗ и дедлайна.
Тоже самое и касается архитектуры. Я планирую сделать по ней отдельное видео, однако я очень часто вижу, что люди просто все переусложняют.
Просто разделите ваше приложение на четкие слои и придерживайтесь их. Идеально под все кейсы в любом случае не подстроишься, тем более с первого раза.
Тоже самое и касательно структуры папок, очень много споров, хотя казалось бы, не такая значительная вещь. Главное, чтобы была какая-то структура и ее придерживались, а остальное думаю уже не важно.
Я не говорю, что нужно брать и писать говно код. Мне кажется важная вещь, о которой нужно задумываться это то, чтобы вы могли в любой момент заменить какой-то модуль на другой, и ваша логика не была размазана по всему приложению.
Однако пытаться покрыть кейсы, которые могут произойти в будущем не стоит. Я также часто люблю себе напоминать о том, что с первого раза никогда не получается сделать что-то хорошее.
Поэтому если есть новый функционал - делайте его хорошо, но не стремитесь к идеалу. Когда настанет время переделывать - тогда уже будет виднее. А может переделывать его вообще не придется, по крайней мере вам).
#devtips #cleancode
Пару недель назад наткнулся на вот эту статью про clean code и там поднималась тема перформанса при соблюдении всех правил чистого кода.
Статья довольно интересная (там также есть видео по ней), однако тут мне кажется нужно думать не только о перформансе кода, но и о смысле оптимизации наперед.
Очень часто у разработчиков (у меня в том числе) бывает желание сделать код "более универсальным", покрывая кейсы и проблемы, которых сейчас нету. И в итоге получается какая-то махина, которая только все усложняет.
Особенно часто у меня такое бывает на своих проектах, где нету четкого ТЗ и дедлайна.
Тоже самое и касается архитектуры. Я планирую сделать по ней отдельное видео, однако я очень часто вижу, что люди просто все переусложняют.
Просто разделите ваше приложение на четкие слои и придерживайтесь их. Идеально под все кейсы в любом случае не подстроишься, тем более с первого раза.
Тоже самое и касательно структуры папок, очень много споров, хотя казалось бы, не такая значительная вещь. Главное, чтобы была какая-то структура и ее придерживались, а остальное думаю уже не важно.
Я не говорю, что нужно брать и писать говно код. Мне кажется важная вещь, о которой нужно задумываться это то, чтобы вы могли в любой момент заменить какой-то модуль на другой, и ваша логика не была размазана по всему приложению.
Однако пытаться покрыть кейсы, которые могут произойти в будущем не стоит. Я также часто люблю себе напоминать о том, что с первого раза никогда не получается сделать что-то хорошее.
Поэтому если есть новый функционал - делайте его хорошо, но не стремитесь к идеалу. Когда настанет время переделывать - тогда уже будет виднее. А может переделывать его вообще не придется, по крайней мере вам).
#devtips #cleancode
❤39👍27💯5👎1🍓1🎄1
Ayub Begimkulov - уроки по JS
Собственно, перечитал весь фидбэк касательно моих видео. Выделил для себя следующие пункты, которые можно улучшить: - Быстрая речь, иногда тороплюсь, когда объясняю. - Прыгаю от темы к теме, нужен более структурированный и последовательный рассказ. - Не…
Всем привет!
Сегодня чуть забегался, поэтому тех пост адекватный думаю уже не выдам. Но хотел бы поговорить про почти законченный плейлист по ТС.
Почти все темы из своего списка я уже покрыл (осталось 2-3 видоса — выпущу их чуть позже). Хочу собрать фидбэк по серии видосов.
Для оценки можно использовать критерии, которые мы собрали в прошлый раз (Сейчас отвечаю на данное сообщение).
Дополнительный фидбэк тоже приветствуется. Может вы хотите, чтобы я покрыл какую-то тему? Что может не стоило включать и вы уже и так это знали?
Из того что я сам заметил:
- До сих пор часто тороплюсь.
- Кажется, что нужно как-то понятнее объяснять сложные слайды с кодом, но пока не пойму как. Буду рад предложениям.
- Нужно пробовать добавлять визуал, но тоже пока нету четкого понимания, где и как.
- Скорее всего видео про utility types не стоило делать, так как тема не такая сложная для понимания.
Из дальнейших планов - переснять плейлист по хукам, однако добавить туда дополнительную инфу и улучшить подачу. В этот раз думаю миксовать с другими видео, чтобы тема не приедалась.
А так есть еще пару важных апдейтов, поделюсь ими в ближайшее время.
Как-то так, жду ваших комментов!
Сегодня чуть забегался, поэтому тех пост адекватный думаю уже не выдам. Но хотел бы поговорить про почти законченный плейлист по ТС.
Почти все темы из своего списка я уже покрыл (осталось 2-3 видоса — выпущу их чуть позже). Хочу собрать фидбэк по серии видосов.
Для оценки можно использовать критерии, которые мы собрали в прошлый раз (Сейчас отвечаю на данное сообщение).
Дополнительный фидбэк тоже приветствуется. Может вы хотите, чтобы я покрыл какую-то тему? Что может не стоило включать и вы уже и так это знали?
Из того что я сам заметил:
- До сих пор часто тороплюсь.
- Кажется, что нужно как-то понятнее объяснять сложные слайды с кодом, но пока не пойму как. Буду рад предложениям.
- Нужно пробовать добавлять визуал, но тоже пока нету четкого понимания, где и как.
- Скорее всего видео про utility types не стоило делать, так как тема не такая сложная для понимания.
Из дальнейших планов - переснять плейлист по хукам, однако добавить туда дополнительную инфу и улучшить подачу. В этот раз думаю миксовать с другими видео, чтобы тема не приедалась.
А так есть еще пару важных апдейтов, поделюсь ими в ближайшее время.
Как-то так, жду ваших комментов!
❤25👍19🔥4💯3🍓1
Как вам плейлист по TS?
Anonymous Poll
48%
Посмотрел, понравилось, все супер!
12%
Посмотрел, нормально, но можно было и получше.
2%
Посмотрел, но не особо понравилось.
38%
Еще не смотрел.
❤6💯4👍3🍓1
Также хочу быстро поделиться одним небольшим открытием для себя.
Раньше всегда для картинок с кодом использовал сервис https://carbon.now.sh/. Однако кастомизаций у него не так много, да и подсветка там мне не сильно нравилась.
Сегодня наткнулся на https://showcode.app/ — выглядит, как намного более хорошее решение.
Может кому-то тоже будет полезно.
Раньше всегда для картинок с кодом использовал сервис https://carbon.now.sh/. Однако кастомизаций у него не так много, да и подсветка там мне не сильно нравилась.
Сегодня наткнулся на https://showcode.app/ — выглядит, как намного более хорошее решение.
Может кому-то тоже будет полезно.
🔥33❤3💯3👍2🏆1🍓1
Всем привет!
Сегодня наткнулся на статью, от chrome, где они презентуют WebGPU - API для проведения вычислений на GPU.
Пока поддержка только в хроме, но по статье кажется, что там активно участвовали и другие компании. Думаю фича в ближайшее время доедет и в другие браузеры.
На самом деле очень рад данным изменениям. Возможно photoshop теперь наконец выпустят свою веб версию).
https://developer.chrome.com/blog/webgpu-release/
#devtips #news
Сегодня наткнулся на статью, от chrome, где они презентуют WebGPU - API для проведения вычислений на GPU.
Пока поддержка только в хроме, но по статье кажется, что там активно участвовали и другие компании. Думаю фича в ближайшее время доедет и в другие браузеры.
На самом деле очень рад данным изменениям. Возможно photoshop теперь наконец выпустят свою веб версию).
https://developer.chrome.com/blog/webgpu-release/
#devtips #news
❤15👍10💯5🍓1
Наткнулся тут на видео от Primagen, где он реагирует на статью про то, как одна строка в tanstack table улучшила перфоманс в 1000 раз.
Сама причина там очевидная, мы разбирали подобные кейсы в моем видео про цену иммутабельности. Однако больше удивило то, что вообще такой код попал в библиотеку и был там столько времени.
Не знаю почему, но по какой-то причине для многих людей в мире JS нормальная практика писать иммутабельный код где попало, даже там, где он ненужен и может повлечь за собой
Понятное дело, что на 20 элементах это вряд ли как-то скажется, но тут ситуация то совсем другая. Это библиотека, тем более для написания таблиц, в том числе и виртуализированных.
Соотвественно, ей нужно расчитывать как минимум на 100к элементов (если объекты не такие большие, то это займет не так много памяти).
В общем, советую всем чуть более осознанно относиться к коду, который вы пишите, и задумываться о его алгоритмической сложности.
Это не значит, что нужно оптимизировать каждую строчку, но хотя бы понимать, что и где сделано не оптимально точно стоит.
P.S. Если не понятно, о чем идет речь - советую прочитать статью либо посмотреть мое видео.
#devtips #performance
Сама причина там очевидная, мы разбирали подобные кейсы в моем видео про цену иммутабельности. Однако больше удивило то, что вообще такой код попал в библиотеку и был там столько времени.
Не знаю почему, но по какой-то причине для многих людей в мире JS нормальная практика писать иммутабельный код где попало, даже там, где он ненужен и может повлечь за собой
O(n^2)
, а иногда даже и больше.Понятное дело, что на 20 элементах это вряд ли как-то скажется, но тут ситуация то совсем другая. Это библиотека, тем более для написания таблиц, в том числе и виртуализированных.
Соотвественно, ей нужно расчитывать как минимум на 100к элементов (если объекты не такие большие, то это займет не так много памяти).
В общем, советую всем чуть более осознанно относиться к коду, который вы пишите, и задумываться о его алгоритмической сложности.
Это не значит, что нужно оптимизировать каждую строчку, но хотя бы понимать, что и где сделано не оптимально точно стоит.
P.S. Если не понятно, о чем идет речь - советую прочитать статью либо посмотреть мое видео.
#devtips #performance
❤35🔥13👍6💯4⚡2🍓1
Всем привет!
Мне часто пишут подписчики и просят запилить отдельный плейлист либо стримы по разработке проекта.
Что-то такое сделать я думаю можно, однако я хотел бы показать людям, что в опен сорс также есть реальные проекты, которые используют тысячи пользователей.
1) Телеграм web клиент, да и в целом любой клиент (iOS/android/desktop) телеграмма находится в открытом доступе и его код можно почитать в гитхаб.
Насколько я знаю, сейчас есть 2 актуальных веб клиента:
https://github.com/morethanwords/tweb
https://github.com/Ajaxy/telegram-tt
2) Kibana - https://github.com/elastic/kibana
3) Grafana - https://github.com/grafana/grafana
На самом деле есть еще много проектов, у которых frontend в открытом доступе. Найти их не так сложно. Помню даже как-то список был.
Однако кроме этих я ничего не вспомнил, так как остальные я детально не изучал.
А, ну и еще есть слитый код Яндекса. Не совсем опенсорс, но поизучать тоже можно).
#devtips #opensource
Мне часто пишут подписчики и просят запилить отдельный плейлист либо стримы по разработке проекта.
Что-то такое сделать я думаю можно, однако я хотел бы показать людям, что в опен сорс также есть реальные проекты, которые используют тысячи пользователей.
1) Телеграм web клиент, да и в целом любой клиент (iOS/android/desktop) телеграмма находится в открытом доступе и его код можно почитать в гитхаб.
Насколько я знаю, сейчас есть 2 актуальных веб клиента:
https://github.com/morethanwords/tweb
https://github.com/Ajaxy/telegram-tt
2) Kibana - https://github.com/elastic/kibana
3) Grafana - https://github.com/grafana/grafana
На самом деле есть еще много проектов, у которых frontend в открытом доступе. Найти их не так сложно. Помню даже как-то список был.
Однако кроме этих я ничего не вспомнил, так как остальные я детально не изучал.
А, ну и еще есть слитый код Яндекса. Не совсем опенсорс, но поизучать тоже можно).
#devtips #opensource
❤27👍8🗿6💯3🍓1
Всем привет!
Думал сначала выпустить видео по реакт хукам, однако там все чуть затянулось. Поэтому пока что продолжаем наш TS плейлист).
На этот раз разберем 8 вещей, которые мне не нравятся в TypeScript. Детально поговорим про данные проблемы, когда они происходят, и как их можно решить (иногда никак).
Обязательно оставляйте лайки и фидбэк в комментариях. Также не забывайте делиться видео с друзьями - это помогает каналу быстрее расти.
https://youtu.be/jEWLhZ3ZJzQ
Думал сначала выпустить видео по реакт хукам, однако там все чуть затянулось. Поэтому пока что продолжаем наш TS плейлист).
На этот раз разберем 8 вещей, которые мне не нравятся в TypeScript. Детально поговорим про данные проблемы, когда они происходят, и как их можно решить (иногда никак).
Обязательно оставляйте лайки и фидбэк в комментариях. Также не забывайте делиться видео с друзьями - это помогает каналу быстрее расти.
https://youtu.be/jEWLhZ3ZJzQ
YouTube
ТОП 8 вещей которые я не люблю в TypeScript
В данном видео мы рассмотрим 8 вещей, которые мне не нравятся в TypeScript. Разберем, что это за вещи, почему они мне не нравятся, и какие проблемы они вызывают.
Видео про unknown, never, void и типизацию объектов:
https://youtu.be/KMsbIdTYrd4
Видео про…
Видео про unknown, never, void и типизацию объектов:
https://youtu.be/KMsbIdTYrd4
Видео про…
❤26🔥13💯3⚡2👍1🍓1
Всем привет!
В первую очередь, у нас на канале набралось 2000 подписчиков, за что хочу сказать всем спасибо!
А сегодня хотел бы поделиться основными структурами данных и алгоритмами, которые по моему мнению стоит знать фронтенд разработчику.
Также сразу скажу, что по моему мнению лучше вначале уделить больше времени на изучение и понимание структур данных. Ну и в целом строить все обучение CS на этом.
Изучили структуру - порешали задачки с ней. А затем уже можно переходить к более сложным задачам, которые требуют комбинации нескольких структур и знание определенных алгоритмов.
Теперь сам список того, что я считаю нужным:
- Map, Object, Set. Задач тут много на них, но самые частые - sum two, sum three и тд. Да и в работе думаю есть много примеров, где нужны данные структуры.
- O(n) - Не совсем алгоритм или структура данных. Однако важная тема, которую нужно понимать. По крайней мере для того, чтобы писать оптимальный код.
- array - Тут много есть разных и интересных задач, конкретное что-то выделить не могу. Но все из них обычно очень полезные.
- stack - Самая популярная задачу тут - проверка последовательности скобок. Если хотите чуть сложнее - то можно попробовать проверять последовательностью с html-like тегами. Например,
- queue
- recursion - на рекурсию тоже много интересных задач, прямо выделить какие-то не могу. Также полезно знать, как можно переделать рекурсию на обычный цикл с помощью stack/queue.
Не прямо, чтобы нужные, но очень рекомендую поизучать:
- Heap - Иногда может быть полезен для неординарных задач (используется, кстати, в самом коде React).
- graph/tree/linked list - тут можно изучить прям базу (bfs/dfs и нахождение circular reference). Глубоко я бы уходить не стал, если нет желания конечно.
Мой список примерно такой. Да, указал все почти все, но на самом деле есть и более продвинутые структуры (ring buffer, sorted map и тд.), которые бывают нужны в очень специфичных ситуациях.
В плане задачек, я бы решал до уровня medium. На самом деле даже некоторые medium бывают очень сложные, поэтому не надо расстраиваться, если идет не так просто.
В плане ресурсов, уже рекомендовал на этом канале вот этот бесплатный курс и плейлисты по алгоритмам и структурам данных от HackerRank.
Как-то так!
#devtips #algorithms
В первую очередь, у нас на канале набралось 2000 подписчиков, за что хочу сказать всем спасибо!
А сегодня хотел бы поделиться основными структурами данных и алгоритмами, которые по моему мнению стоит знать фронтенд разработчику.
Также сразу скажу, что по моему мнению лучше вначале уделить больше времени на изучение и понимание структур данных. Ну и в целом строить все обучение CS на этом.
Изучили структуру - порешали задачки с ней. А затем уже можно переходить к более сложным задачам, которые требуют комбинации нескольких структур и знание определенных алгоритмов.
Теперь сам список того, что я считаю нужным:
- Map, Object, Set. Задач тут много на них, но самые частые - sum two, sum three и тд. Да и в работе думаю есть много примеров, где нужны данные структуры.
- O(n) - Не совсем алгоритм или структура данных. Однако важная тема, которую нужно понимать. По крайней мере для того, чтобы писать оптимальный код.
- array - Тут много есть разных и интересных задач, конкретное что-то выделить не могу. Но все из них обычно очень полезные.
- stack - Самая популярная задачу тут - проверка последовательности скобок. Если хотите чуть сложнее - то можно попробовать проверять последовательностью с html-like тегами. Например,
<1>asdf</1>asdf<asdf></asdf>
- валидно, <1>asdf</1>asdf<asdf>
- невалидно.- queue
- recursion - на рекурсию тоже много интересных задач, прямо выделить какие-то не могу. Также полезно знать, как можно переделать рекурсию на обычный цикл с помощью stack/queue.
Не прямо, чтобы нужные, но очень рекомендую поизучать:
- Heap - Иногда может быть полезен для неординарных задач (используется, кстати, в самом коде React).
- graph/tree/linked list - тут можно изучить прям базу (bfs/dfs и нахождение circular reference). Глубоко я бы уходить не стал, если нет желания конечно.
Мой список примерно такой. Да, указал все почти все, но на самом деле есть и более продвинутые структуры (ring buffer, sorted map и тд.), которые бывают нужны в очень специфичных ситуациях.
В плане задачек, я бы решал до уровня medium. На самом деле даже некоторые medium бывают очень сложные, поэтому не надо расстраиваться, если идет не так просто.
В плане ресурсов, уже рекомендовал на этом канале вот этот бесплатный курс и плейлисты по алгоритмам и структурам данных от HackerRank.
Как-то так!
#devtips #algorithms
👍76❤6🔥6💯3⚡2🍓1
Всем привет, друзья!
Сегодня хотел бы поделиться своими мыслями касательно ручного тестирования перед выкаткой на прод, и почему я считаю, что его нужно обязательно проводить в каком-то виде.
Небольшая предыстория, на 2-х последний работах у нас не было ручного тестирования вообще. Связанно это с тем, что команды сами по себе были маленькие.
В целом, с самим отсутствием тестировщиков я был согласен — в этом есть смысл с точки зрения эффективного распределения ресурсов. Однако часто бывало такое, что я выкатывал прям совсем глупые баги на прод.
И каждый раз это было связанно с тем, что я поленился зайти и потыкать пару кнопок. Так как такое случалось не один раз, то я уже понимаю мой мыслительный процесс.
Обычно я все проверяю сам, пока не появляется какая-то очевидная вещь, которую кажется даже не надо тестить — там и так все просто. Особенно, если такой простой кейс сложно протестировать — нужно делать сетап в админке, получать мейлы и тд.
Часто бывает сразу пушишь коммит, проходишь ревью, выкатываешь на препрод (а иногда даже прод) и тут бац. Оказалось там не правильно написан if. Либо же опечатка в типизации, что следовательно ведет за собой опечатки в коде и тд.
Еще один частый паттерн, это когда у меня есть большая фича и я вношу изменения. С каждым изменением я проверяю, что все работает правильно. Однако проверяю я именно те части, которые по моему мнению должны были быть задеты.
Как вы сами понимаете, мое понимание может сильно отличаться от реальности.
На самом деле я встречал коллег, у которых вообще нету такой проблемы. Даже я бы сказал обратное — слишком датошно смотрят каждую деталь.
Однако для себя я понял решение. Если я чувствую, что я не достаточно хорошо все проверил, либо же там реально значимые изменения — я попрошу протестить еще раз кого-нибудь из разработчиков либо продуктов. Обычно никто не отказывает.
Соотвественно другим я тоже помогаю в тестировании. И причем я заметил, когда тестируешь чужой код — таких проблем нет. Всегда все нормально проверяешь.
Как-то так! А есть ли у вас проблемы с тестированием своих задач?
#devtips #testing
Сегодня хотел бы поделиться своими мыслями касательно ручного тестирования перед выкаткой на прод, и почему я считаю, что его нужно обязательно проводить в каком-то виде.
Небольшая предыстория, на 2-х последний работах у нас не было ручного тестирования вообще. Связанно это с тем, что команды сами по себе были маленькие.
В целом, с самим отсутствием тестировщиков я был согласен — в этом есть смысл с точки зрения эффективного распределения ресурсов. Однако часто бывало такое, что я выкатывал прям совсем глупые баги на прод.
И каждый раз это было связанно с тем, что я поленился зайти и потыкать пару кнопок. Так как такое случалось не один раз, то я уже понимаю мой мыслительный процесс.
Обычно я все проверяю сам, пока не появляется какая-то очевидная вещь, которую кажется даже не надо тестить — там и так все просто. Особенно, если такой простой кейс сложно протестировать — нужно делать сетап в админке, получать мейлы и тд.
Часто бывает сразу пушишь коммит, проходишь ревью, выкатываешь на препрод (а иногда даже прод) и тут бац. Оказалось там не правильно написан if. Либо же опечатка в типизации, что следовательно ведет за собой опечатки в коде и тд.
Еще один частый паттерн, это когда у меня есть большая фича и я вношу изменения. С каждым изменением я проверяю, что все работает правильно. Однако проверяю я именно те части, которые по моему мнению должны были быть задеты.
Как вы сами понимаете, мое понимание может сильно отличаться от реальности.
На самом деле я встречал коллег, у которых вообще нету такой проблемы. Даже я бы сказал обратное — слишком датошно смотрят каждую деталь.
Однако для себя я понял решение. Если я чувствую, что я не достаточно хорошо все проверил, либо же там реально значимые изменения — я попрошу протестить еще раз кого-нибудь из разработчиков либо продуктов. Обычно никто не отказывает.
Соотвественно другим я тоже помогаю в тестировании. И причем я заметил, когда тестируешь чужой код — таких проблем нет. Всегда все нормально проверяешь.
Как-то так! А есть ли у вас проблемы с тестированием своих задач?
#devtips #testing
👍34❤12💯3⚡2🔥2🍓1
Всем привет!
Наверняка со всем хайпом вокруг solid.js, сигналов и подобных решений вы наверняка могли слышать такой термин, как "Fine-Grained Reactivity".
Однако задавались ли вы вопросом, что он означает?
Я также, как и большинство из нас не слышал данное выражение, однако по контексту понял, про что тут говориться.
Однако пару дней назад задался вопросом, правильно ли я понял значение или же тут есть какие-то детали?
К моей радости, термин я понял правильно, и он означает, что каждая нода реактивного стейта знает о том, где она используется - какие реакции/эффекты ее используют.
Чтобы понять о чем я, давайте посмотрим на данный пример кода:
Как мы видим наш auto run callback вызывается только при инициализации и изменении стейт, на который он завязан.
Однако в кейсы с React, можно делать вот так:
И тут при каждом клике у нас будет обновляться
Соответственно, у нас есть реактивность только на уровне компонента, а не на уровне каждого свойства. И как раз из-за этого в react'е часто есть проблема лишних рендеров.
Так что теперь можете использовать данную фразу (fine-grained reactivity), если хотите выглядеть умным в глазах других коллег (я бы не советовал).
Если хотите углубиться в тему подробнее - то можете ознакомиться с данной статьей от создателя Sold:
https://dev.to/ryansolid/a-hands-on-introduction-to-fine-grained-reactivity-3ndf
#devtips #reactivity
Наверняка со всем хайпом вокруг solid.js, сигналов и подобных решений вы наверняка могли слышать такой термин, как "Fine-Grained Reactivity".
Однако задавались ли вы вопросом, что он означает?
Я также, как и большинство из нас не слышал данное выражение, однако по контексту понял, про что тут говориться.
Однако пару дней назад задался вопросом, правильно ли я понял значение или же тут есть какие-то детали?
К моей радости, термин я понял правильно, и он означает, что каждая нода реактивного стейта знает о том, где она используется - какие реакции/эффекты ее используют.
Чтобы понять о чем я, давайте посмотрим на данный пример кода:
const object = observable({ a: 5, test: 'asdf' });
autorun(() => {
console.log("object.a: ", object.a);
}); // залогирует при инициализации object.a: 5
object.a = 10; // залогирует "object.a: 10"
object.a = 11; // залогирует "object.a: 11"
object.test = 'asdf2'; // не залогирует ничего
Как мы видим наш auto run callback вызывается только при инициализации и изменении стейт, на который он завязан.
Однако в кейсы с React, можно делать вот так:
function Component() {
const [, forceUpdate] = useReducer((v) => v + 1, 0);
console.log('I render');
return <button onClick={forceUpdate}>Update Me</button>;
}
И тут при каждом клике у нас будет обновляться
Component
, даже не смотря на то, что мы вообще не используем наш стейт.Соответственно, у нас есть реактивность только на уровне компонента, а не на уровне каждого свойства. И как раз из-за этого в react'е часто есть проблема лишних рендеров.
Так что теперь можете использовать данную фразу (fine-grained reactivity), если хотите выглядеть умным в глазах других коллег (я бы не советовал).
Если хотите углубиться в тему подробнее - то можете ознакомиться с данной статьей от создателя Sold:
https://dev.to/ryansolid/a-hands-on-introduction-to-fine-grained-reactivity-3ndf
#devtips #reactivity
DEV Community
A Hands-on Introduction to Fine-Grained Reactivity
Reactive Programming has existed for decades but it seems to come in and out of fashion. In...
👍13❤11💯4👀3🍓1
Всем привет!
Вот наконец вышел первый ролик нового плэйлиста по хукам. В нем мы поговорим про самый полезный хук для оптимизаций!
Разберем что это за хук, как он работает, чем он может быть полезен, и разберем конкретные примеры оптимизации кода.
Обязательно оставляйте лайки и фидбэк в комментариях. Также не забывайте делиться видео с друзьями - это помогает каналу быстрее расти.
https://youtu.be/XOSgHVzHEV4
Вот наконец вышел первый ролик нового плэйлиста по хукам. В нем мы поговорим про самый полезный хук для оптимизаций!
Разберем что это за хук, как он работает, чем он может быть полезен, и разберем конкретные примеры оптимизации кода.
Обязательно оставляйте лайки и фидбэк в комментариях. Также не забывайте делиться видео с друзьями - это помогает каналу быстрее расти.
https://youtu.be/XOSgHVzHEV4
YouTube
САМЫЙ ПОЛЕЗНЫЙ хук для ОПТИМИЗАЦИЙ в React | React Hooks
В данном виде мы поговорим про самый полезный хук для оптимизаций в React. Разберемся, что это за хук, как его использовать и чем он может нам помочь оптимизировать наши компоненты.
Ссылка на статью про useRef:
https://frontarm.com/daishi-kato/use-ref-in…
Ссылка на статью про useRef:
https://frontarm.com/daishi-kato/use-ref-in…
👍45🔥12❤3💯3🏆2⚡1🍓1
Ayub Begimkulov - уроки по JS
Пост для сбора комментариев на розыгрыш.
Итак друзья, наконец дошли руки для того, чтобы написать скрипт для автоматизации нахождения победителя.
Поэтому сегодня подводим итоги!
Победитель у нас Саша, с комментарием “asd”.
Давайте поздравим победителя!
Поэтому сегодня подводим итоги!
Победитель у нас Саша, с комментарием “asd”.
Давайте поздравим победителя!
👍24🏆4💯3❤1🔥1🍓1
Всем привет!
Продолжаем наш плейлист по React хукам. В сегодняшнем видео разберем мои топ 6 хуков оберток над useState.
Каждый из этих хуков я использовал на своих проектах, так что некоторые из них должны быть вам тоже полезны.
Обязательно оставляйте лайки и фидбэк в комментариях. Также не забывайте делиться видео с друзьями - это помогает каналу быстрее расти.
https://youtu.be/3SB278SY73s
Продолжаем наш плейлист по React хукам. В сегодняшнем видео разберем мои топ 6 хуков оберток над useState.
Каждый из этих хуков я использовал на своих проектах, так что некоторые из них должны быть вам тоже полезны.
Обязательно оставляйте лайки и фидбэк в комментариях. Также не забывайте делиться видео с друзьями - это помогает каналу быстрее расти.
https://youtu.be/3SB278SY73s
YouTube
МОИ ТОП 6 ХУКОВ оберток над useState | React Hooks
В данном видео мы поговорим про мои топ 6 оберток над useState. Разберем, что это за хуки, для чего они нужны, и как они помогут решать наши проблемы.
Код из видео:
https://github.com/Ayub-Begimkulov/youtube-tutorials/tree/master/react-hooks/lessons/use…
Код из видео:
https://github.com/Ayub-Begimkulov/youtube-tutorials/tree/master/react-hooks/lessons/use…
❤31🔥13👍6💯3🏆3🍓1