Не знаю чи є хтось тут з Одеси, але тримайтеся і бережіть себе!
❤77💔15❤🔥2🔥1
💪Потихеньку повертаюся назад до роботи 💪
👓 Перше відео над яким будемо працювати - структура проекту в React, бо це дійсно важливо, хоча і дискусійно, м'яко кажучи.
👩🏫 Спробую описати як я бачу зручну структуру проекту, яка більш-менш безболісно скейлиться.
Скоро побачимось і бережіть себе.
👓 Перше відео над яким будемо працювати - структура проекту в React, бо це дійсно важливо, хоча і дискусійно, м'яко кажучи.
👩🏫 Спробую описати як я бачу зручну структуру проекту, яка більш-менш безболісно скейлиться.
Скоро побачимось і бережіть себе.
❤54👍16❤🔥3🔥3
🏋️♀️Не ускладнюйте життя з useEffect🏋️♀️
😢 Ще раз переконався, що багато хто любить ускладнювати собі життя і код за допомогою useEffect, тому давайте знову повернемось до цієї теми
👀 Наприклад, маємо якийсь кастомний хук, в якому є ім'я та прізвище користувача, а нам потрібне ще й його повне ім'я.
Типове і не правильне рішення - використати
Насправді, все що нам треба - це вирахувати повне ім'я прямо в самому хуці (або компоненті)
const fullName =
👉 Для того, щоб не повторювати цю помилку достатньо запам'ятати, що похідні дані (ті які ми вираховуємо) потрібно не тримати в стейті, а вираховувати прямо в самій функції. А якщо ви побачите, що це займає забагато часу (і поміряєте!) - тоді вам може стати в нагоді хук
@reactbeginners
😢 Ще раз переконався, що багато хто любить ускладнювати собі життя і код за допомогою useEffect, тому давайте знову повернемось до цієї теми
👀 Наприклад, маємо якийсь кастомний хук, в якому є ім'я та прізвище користувача, а нам потрібне ще й його повне ім'я.
Типове і не правильне рішення - використати
useEffect
та проміжний стейт:useEffect(() => {🤨 Такий код складніше читається, має більшу вірогідність помилки та на додачу ще й не ефективний оскільки викликає додатковий рендер.
setFullUserName(`${fName} ${sName}`);
}, [fName, sName]);
Насправді, все що нам треба - це вирахувати повне ім'я прямо в самому хуці (або компоненті)
const fullName =
${fName} ${sName}👩🏫 Якщо дані користувача лежать в стейті, то як тільки вони зміняться - наш код буде викликаний знову і ми отримаємо нове повне ім'я. Все дуже просто і очевидно, але багато хто все одно додає зайвий effect 😊
👉 Для того, щоб не повторювати цю помилку достатньо запам'ятати, що похідні дані (ті які ми вираховуємо) потрібно не тримати в стейті, а вираховувати прямо в самій функції. А якщо ви побачите, що це займає забагато часу (і поміряєте!) - тоді вам може стати в нагоді хук
useMemo
Чистого вам коду, бережіть себе і скоро побачимось!@reactbeginners
❤38👍19🔥3
🏎 Вчора побіжно зачепили тему вимірювань, але без подробиць, тому виправляюся 🏎
🧑💻Всі оптимізації швидкодії потребують вимірювань - вам потрібно контролювати що ви робите і бачити свої результати.
Як це зробити:
1️⃣ Перший варіант - поставити розширення React Developer Tools і використати вкладу Profile. В результаті ви отримаєте такий графік, як на зображенні, який покаже вам скільки часу займає рендер кожного елементу.
👉 Це зручно для пошуку "дорогих" рендерів і причин перерендеру.
2️⃣ Другий варіант - використати компонент React.Profiler який приймає id та колбек в який будуть передані всі вимірювання:
Також можна використати Performance API, але про нього буде в наступному дописі.
@reactbeginners
🧑💻Всі оптимізації швидкодії потребують вимірювань - вам потрібно контролювати що ви робите і бачити свої результати.
Як це зробити:
1️⃣ Перший варіант - поставити розширення React Developer Tools і використати вкладу Profile. В результаті ви отримаєте такий графік, як на зображенні, який покаже вам скільки часу займає рендер кожного елементу.
👉 Це зручно для пошуку "дорогих" рендерів і причин перерендеру.
2️⃣ Другий варіант - використати компонент React.Profiler який приймає id та колбек в який будуть передані всі вимірювання:
<Profiler👉 Цей варіант стане в нагоді коли ви почнете оптимізувати конкретний компонент, щоб бачити як ваші зміни впливають на швидкодію.
id={pId}
onRender={(_, phase, actualDuration) =>
console.log(phase, ' ', actualDuration)
}
>
Також можна використати Performance API, але про нього буде в наступному дописі.
@reactbeginners
👍32🔥8❤1✍1
Колись я цей пост вже писав, але з того часу нас стало втричі більше, тож давайте познайомимось
😎 Мене звати Віталій, працюю я самі знаєте де 😁. В IT вже більше 8оми років. Можу спроектувати поганеньку базу даних, зробити посередній бекенд і нормальний фронтенд. Писав на knockout, angular.js, angular, react.
🧐 Три роки був спів викладачем для НАУ (хто був у нас в Itera, можливо бачив мене в живу). Був членом програмного комітету JsFest (там і познайомився з Бабічем) та виступав на FwDays, VinnitsyaJs, American Digital Weeks.
❤️ Люблю програмування, комп'ютерні ігри, читати, сноуборд та віндсерф. Під час війни здобув ще декілька корисних, але менш friendly навичок, чого і вам раджу. Про всяк випадок ;)
🧑💻 Щодо цього каналу - він не комерційний, з'явився на початку повномасштабного нападу росії на Україну щоб допомогти людям доотримати знання та знайти собі роботу. Каналу вже рік і він ще й досі живе, з чого я трохи дивуюсь та радію. Також ми тут іноді проводимо не великі збори на потреби ЗСУ, долучайтеся за можливості.
🔗 Ще в мене є лінкедин, де я іноді пишу щось корисне, а іноді свої думки стосовно того що відбувається навкруги, але без політики. Наприклад ось.
❓А хто ви? Звідки, як сюди потрапили, що вас цікавить? Пишіть, в п'ятницю складне постити гріх :)
😎 Мене звати Віталій, працюю я самі знаєте де 😁. В IT вже більше 8оми років. Можу спроектувати поганеньку базу даних, зробити посередній бекенд і нормальний фронтенд. Писав на knockout, angular.js, angular, react.
🧐 Три роки був спів викладачем для НАУ (хто був у нас в Itera, можливо бачив мене в живу). Був членом програмного комітету JsFest (там і познайомився з Бабічем) та виступав на FwDays, VinnitsyaJs, American Digital Weeks.
❤️ Люблю програмування, комп'ютерні ігри, читати, сноуборд та віндсерф. Під час війни здобув ще декілька корисних, але менш friendly навичок, чого і вам раджу. Про всяк випадок ;)
🧑💻 Щодо цього каналу - він не комерційний, з'явився на початку повномасштабного нападу росії на Україну щоб допомогти людям доотримати знання та знайти собі роботу. Каналу вже рік і він ще й досі живе, з чого я трохи дивуюсь та радію. Також ми тут іноді проводимо не великі збори на потреби ЗСУ, долучайтеся за можливості.
🔗 Ще в мене є лінкедин, де я іноді пишу щось корисне, а іноді свої думки стосовно того що відбувається навкруги, але без політики. Наприклад ось.
❓А хто ви? Звідки, як сюди потрапили, що вас цікавить? Пишіть, в п'ятницю складне постити гріх :)
❤42👍8❤🔥1
🌳Про структуру проекту - питання для роздумів🌳
🔨 Продовжуємо працювати над відео про структуру React проекту і в зв'язку з цим - пропоную подумати над наступним питанням:
❓Маємо проект, який складається з двох сторінок -
a) компонент
б) компонент SuccessText - текст зелено-ядучого кольору який показується у випадку успішного сабміту форми зворотнього звя'зку.
Сторінка
а) відмалювати заголовок першого рівня
б) відмалювати спеціальну ціну за товар. (приклад на скріншоті)
❓В задачі питається: які помилки я допустив з точки зору структури проекту і як їх виправити?
Відповідь опублікую вже завтра
П.М. Хтось помітив пасхалку? 😀?
@reactbeginners
🔨 Продовжуємо працювати над відео про структуру React проекту і в зв'язку з цим - пропоную подумати над наступним питанням:
❓Маємо проект, який складається з двох сторінок -
main.page.tsx
та buy-product.page.tsx
. В Main
сторінці є: a) компонент
H1
- який відмальовується як заголовокб) компонент SuccessText - текст зелено-ядучого кольору який показується у випадку успішного сабміту форми зворотнього звя'зку.
Сторінка
buy-product
імпортує обидва ці компоненти і використовує їх для того щоб:а) відмалювати заголовок першого рівня
б) відмалювати спеціальну ціну за товар. (приклад на скріншоті)
❓В задачі питається: які помилки я допустив з точки зору структури проекту і як їх виправити?
Відповідь опублікую вже завтра
П.М. Хтось помітив пасхалку? 😀?
@reactbeginners
👍10❤1
Free React For Beginners
🌳Про структуру проекту - питання для роздумів🌳 🔨 Продовжуємо працювати над відео про структуру React проекту і в зв'язку з цим - пропоную подумати над наступним питанням: ❓Маємо проект, який складається з двох сторінок - main.page.tsx та buy-product.page.tsx.…
🌲Відповіді та пояснення. Частина перша.🌲
😎 Сподіваюся що ви добряче поламали вчора голову. Тепер давайте розбиратися. Тексту багато, тому буде дві частини.
Першу помилку ви знайшли досить просто і це дуже добре. Але давайте її все ж таки розберемо для всіх:
Помилка: Прямий імпорт в
Проблема: Суть проблеми полягає в тому, що сторінка
Вирішення: Вирішити цю проблему просто - достатньо винести
👉 А для щоб не повторювати цю помилку в майбутньому ви можете використовувати просте контрольне запитання - чи має мій компонент змінюватися, коли змінюється модуль з якого я роблю імпорт?
Очевидно що зміні на
Друга помилка в наступному пості...
П.М. Так мою пасхалку і не знайшли) Наступного разу зроблю приз за її знаходження)
@reactbeginners
😎 Сподіваюся що ви добряче поламали вчора голову. Тепер давайте розбиратися. Тексту багато, тому буде дві частини.
Першу помилку ви знайшли досить просто і це дуже добре. Але давайте її все ж таки розберемо для всіх:
Помилка: Прямий імпорт в
buy-product.page.tsx
. з main.page.tsx
., або, якби б я відповідав на співбесіді, порушення принципу low coupling (низької зв'язності)Проблема: Суть проблеми полягає в тому, що сторінка
buy-product
починає щось знати про код, до якого він не має жодного стосунку - сторінку main
. На практиці, це призводить до того, що коли сторінка main буде перейменована, переміщена, відрефакторена - вам доведеться вносити зміни і у сторінку buy-product
. Якщо ви випустите це з уваги - отримаєте баг. Ще одна проблема в тому, що, оскільки H1
належить до main
, то розробники будуть думати що вони можуть вільно змінювати H1
відповідно до потреб main
. Це означає, що рано чи пізно, заголовок на сторінці buy-product не очікувано зміниться і ми отримаємо ще один баг. Вирішення: Вирішити цю проблему просто - достатньо винести
H1
в окрему теку, яка призначена виключно для коду, який можна використовувати всім, наприклад shared
. Цей підхід вирішить одразу дві проблеми. По-перше, ми відв'яжемо buy-product від main, а, по-друге, факт знаходження компоненту в shared буде сигналізувати всім що змінювати цей компонент потрібно з обережністю - він загальнодоступний. 👉 А для щоб не повторювати цю помилку в майбутньому ви можете використовувати просте контрольне запитання - чи має мій компонент змінюватися, коли змінюється модуль з якого я роблю імпорт?
Очевидно що зміні на
main
не мають впливати на інші сторінки, а от зміни в shared - мають.Друга помилка в наступному пості...
П.М. Так мою пасхалку і не знайшли) Наступного разу зроблю приз за її знаходження)
@reactbeginners
❤14👍4🔥3
Free React For Beginners
🌲Відповіді та пояснення. Частина перша.🌲 😎 Сподіваюся що ви добряче поламали вчора голову. Тепер давайте розбиратися. Тексту багато, тому буде дві частини. Першу помилку ви знайшли досить просто і це дуже добре. Але давайте її все ж таки розберемо для всіх:…
🌴Відповіді та пояснення. Частина друга. 🌴
Другу помилку знайти було трохи важче, і полягала вона в наступному:
Помилка: Неправильне перевикористання коду, а саме компоненту SuccessText. Або, якщо по-розумному, порушення принципу DRY.
Проблема: Зазвичай ми намагаємось використовувати існуючий код і не копіпастити його. І все йде добре, аж поки не виявиться, що код, який ми вважали спільним є таким лише випадково. По суті - мій компонент
Вирішення: Скопіювати компонент
👉 Для щоб не повторювати цю помилку в майбутньому ви можете використовувати ще одне просте контрольне запитання - чи збігаються підстави для змін цього коду у всіх модулях що їх використовують.
Очевидно, що підстави для змін компоненту ціни і компоненту нотифікації різні, а, отже, це різні компоненти які просто схоже виглядають.
🧐 Такі справи. Як бачите, тема не дуже проста і викладати її доступно завдання не тривіальне (не впевнений що в мене це вийшло навіть зараз, буду вдячний за відгук). Тому відео просувається повільно.
А ви бережіть себе і скоро побачимось.
@reactbeginners
Другу помилку знайти було трохи важче, і полягала вона в наступному:
Помилка: Неправильне перевикористання коду, а саме компоненту SuccessText. Або, якщо по-розумному, порушення принципу DRY.
Проблема: Зазвичай ми намагаємось використовувати існуючий код і не копіпастити його. І все йде добре, аж поки не виявиться, що код, який ми вважали спільним є таким лише випадково. По суті - мій компонент
SuccessText
- це банер повідомлення що операція пройшла успішно. Чисто випадково він виглядає так само як, на разі, виглядає ціна. Але по суті вони різні і коли ми захочемо змінити ціну, SuccessText
має залишитись без змін.Вирішення: Скопіювати компонент
SuccessText
в теку buy-product
і назвати його ProductPrice
. Таким чином ми отримаємо незалежний компонент ще й з логічною назвою. Ось так усе просто. 🙂👉 Для щоб не повторювати цю помилку в майбутньому ви можете використовувати ще одне просте контрольне запитання - чи збігаються підстави для змін цього коду у всіх модулях що їх використовують.
Очевидно, що підстави для змін компоненту ціни і компоненту нотифікації різні, а, отже, це різні компоненти які просто схоже виглядають.
🧐 Такі справи. Як бачите, тема не дуже проста і викладати її доступно завдання не тривіальне (не впевнений що в мене це вийшло навіть зараз, буду вдячний за відгук). Тому відео просувається повільно.
А ви бережіть себе і скоро побачимось.
@reactbeginners
❤13👍12
👥Принцип сильної згуртованості, або High Cohesion👥
Про Low Coupling ми вже поговорили, тепер давайте доб'ємо його пару - принцип згуртованості.
Насправді цей принцип дуже простий і найлегше його пояснити на наступному прикладі:
👉 Уявіть що ви придбали собі комп'ютер з доставкою додому. Приходити ви ввечері, сповнені надії нарешті повноцінно попрацювати з новим фреймворком diablo iv і бачите наступну картину: Монітор стоїть у великій кімнаті. Звідти тягнеться довжелезний шур до ванної де повішена на стіну материнка. Звідти, до кухні, йде шлейф до накопичувача, і лінія живлення яка напряму підключена до щита поза межами вашої квартири.. А коли ви нарешті сіли попрацювати (ну добре, пограти в старий добрий 1.6), то все згасло тому що ваш сусід (свята людина) побачив незнайомий йому шлейф на щиті і відключив його, про всяк випадок, бо чорт його знає що то за шнур і кому він треба.
😎 Не треба бути експертом, в чому тут проблема - замість того щоб тримати всі елементи системи в купі - хтось розкидав їх де попало ще й відкрив складові зовнішньому впливу, що призвело до втрати працездатності всієї системи.
👨💻В програмуванні все працює так само. Елементи, які працюють разом мають знаходитись разом - це і є принцип гуртування. Ще, бажано, показувати на ззовні лише те без чого не обійтись, але це вже інкапсуляція, про яку ми поговоримо пізніше.
❗️Принцип сильної згуртованості спрощує підтримку коду, зменшує його крихкість, збільшує стійкість до небажаних змін. Тому дуже раджу ним користуватися. До-речі, групування файлів за їх типом (всі лейаути разом, всі хуки разом, всі компоненти разом) чудово порушують цей принцип. Тож не робіть так, якщо є змога, а групуйте їх за призначенням.
Бережіть себе і скоро побачимось
Про Low Coupling ми вже поговорили, тепер давайте доб'ємо його пару - принцип згуртованості.
Насправді цей принцип дуже простий і найлегше його пояснити на наступному прикладі:
👉 Уявіть що ви придбали собі комп'ютер з доставкою додому. Приходити ви ввечері, сповнені надії нарешті повноцінно попрацювати з новим фреймворком diablo iv і бачите наступну картину: Монітор стоїть у великій кімнаті. Звідти тягнеться довжелезний шур до ванної де повішена на стіну материнка. Звідти, до кухні, йде шлейф до накопичувача, і лінія живлення яка напряму підключена до щита поза межами вашої квартири.. А коли ви нарешті сіли попрацювати (ну добре, пограти в старий добрий 1.6), то все згасло тому що ваш сусід (свята людина) побачив незнайомий йому шлейф на щиті і відключив його, про всяк випадок, бо чорт його знає що то за шнур і кому він треба.
😎 Не треба бути експертом, в чому тут проблема - замість того щоб тримати всі елементи системи в купі - хтось розкидав їх де попало ще й відкрив складові зовнішньому впливу, що призвело до втрати працездатності всієї системи.
👨💻В програмуванні все працює так само. Елементи, які працюють разом мають знаходитись разом - це і є принцип гуртування. Ще, бажано, показувати на ззовні лише те без чого не обійтись, але це вже інкапсуляція, про яку ми поговоримо пізніше.
❗️Принцип сильної згуртованості спрощує підтримку коду, зменшує його крихкість, збільшує стійкість до небажаних змін. Тому дуже раджу ним користуватися. До-речі, групування файлів за їх типом (всі лейаути разом, всі хуки разом, всі компоненти разом) чудово порушують цей принцип. Тож не робіть так, якщо є змога, а групуйте їх за призначенням.
Бережіть себе і скоро побачимось
Telegram
Free React For Beginners
🌲Відповіді та пояснення. Частина перша.🌲
😎 Сподіваюся що ви добряче поламали вчора голову. Тепер давайте розбиратися. Тексту багато, тому буде дві частини.
Першу помилку ви знайшли досить просто і це дуже добре. Але давайте її все ж таки розберемо для…
😎 Сподіваюся що ви добряче поламали вчора голову. Тепер давайте розбиратися. Тексту багато, тому буде дві частини.
Першу помилку ви знайшли досить просто і це дуже добре. Але давайте її все ж таки розберемо для…
👍14🔥7❤2
Free React For Beginners
👥Принцип сильної згуртованості, або High Cohesion👥 Про Low Coupling ми вже поговорили, тепер давайте доб'ємо його пару - принцип згуртованості. Насправді цей принцип дуже простий і найлегше його пояснити на наступному прикладі: 👉 Уявіть що ви придбали собі…
Питання:
-Так що, виходить що за цим принципом потрібно
Відповідь:
- Ні. Загальні компоненти утворюють свій власний модуль, до якого вони належать. Фактично це як коробка з інструментами, які лежать разом.
Ключовий момент тут - приналежність. Елементи, що належать одній системі живуть разом. Все)
:)
-Так що, виходить що за цим принципом потрібно
H1
тримати біля компоненту сторінки - адже вона його використовує, правильно?Відповідь:
- Ні. Загальні компоненти утворюють свій власний модуль, до якого вони належать. Фактично це як коробка з інструментами, які лежать разом.
Ключовий момент тут - приналежність. Елементи, що належать одній системі живуть разом. Все)
:)
👍17😁3
#ReactCodeSmells - стор не для локальних даних.
👜Глобальний стор штука зручна і наче навмисно запрошує вас все класти туди. Але це підла та підступна пастка, тому що глобальний стор доступний буквально всім (на те він і глобальний). А це призводить до його крихкості та заплутаності. А ще й до поступового росту перетворюючи миле кошеня з документації на монстра з нічних кошмарів.
Боротися з цим можна і треба:
1️⃣ По-перше, використовуйте глобальний стор лише для тих даних які потрібні буквально по всьому проекту, наприклад дані користувача, або корзина користувача.
2️⃣ По-друге, діліть глобальні стори на логічні шматки. Далеко не завжди вам потрібен єдиний стор для всіх 217 сторінок. Для прикладу зверніть увагу на слайси в Redux-Toolkit. Та й взагалі мати декілька логічно розділених сторів цілком розумна ідея, навіть RTK на моїй стороні.
3️⃣ По-третє, не соромтеся використовувати локальний стейт. Якщо дані потрібні лише в одному компоненті це й так очевидно. Але якщо дані потрібні в батьківському компоненті та на глибину в 1-2 компоненти вниз то використовувати локальний стейт теж не гріх.
👉 І наостанок хочу додати - запорука проекту, який росте без особливих проблем - інкапсуляція. Будь-який шматок коду або даних має відкриватися лише за потреби. Будь-який компонент, для своєї роботи, має вимагати лише ті дані з якими працює. Це робить кодову базу простіше для читання та менш вразливою.
Бережіть себе, скоро побачимось.
@reactbeginners
👜Глобальний стор штука зручна і наче навмисно запрошує вас все класти туди. Але це підла та підступна пастка, тому що глобальний стор доступний буквально всім (на те він і глобальний). А це призводить до його крихкості та заплутаності. А ще й до поступового росту перетворюючи миле кошеня з документації на монстра з нічних кошмарів.
Боротися з цим можна і треба:
1️⃣ По-перше, використовуйте глобальний стор лише для тих даних які потрібні буквально по всьому проекту, наприклад дані користувача, або корзина користувача.
2️⃣ По-друге, діліть глобальні стори на логічні шматки. Далеко не завжди вам потрібен єдиний стор для всіх 217 сторінок. Для прикладу зверніть увагу на слайси в Redux-Toolkit. Та й взагалі мати декілька логічно розділених сторів цілком розумна ідея, навіть RTK на моїй стороні.
3️⃣ По-третє, не соромтеся використовувати локальний стейт. Якщо дані потрібні лише в одному компоненті це й так очевидно. Але якщо дані потрібні в батьківському компоненті та на глибину в 1-2 компоненти вниз то використовувати локальний стейт теж не гріх.
👉 І наостанок хочу додати - запорука проекту, який росте без особливих проблем - інкапсуляція. Будь-який шматок коду або даних має відкриватися лише за потреби. Будь-який компонент, для своєї роботи, має вимагати лише ті дані з якими працює. Це робить кодову базу простіше для читання та менш вразливою.
Бережіть себе, скоро побачимось.
@reactbeginners
❤22👍12🔥2
Яке я вам відео готую - аж мені подобається.
👉 Робоча назва: ReactCodeSmells та Redux - поширені помилки під час використання глобального стору.
З прикладами, з мікрозастосунком, з кодом на GitHub. І все це менше ніж за 15 хвилин (ну я сподіваюся).
Як вам таке?
П.М. давно я таку либу не давив)))
👉 Робоча назва: ReactCodeSmells та Redux - поширені помилки під час використання глобального стору.
З прикладами, з мікрозастосунком, з кодом на GitHub. І все це менше ніж за 15 хвилин (ну я сподіваюся).
Як вам таке?
П.М. давно я таку либу не давив)))
🔥66👍8❤7❤🔥3👏2
OpenAI надав можливість заборонити його ботам парсити ваш контент для навчання ChatGPT.
В мене є блог і я от сижу і думаю - забороняти чи ні. Яка ваша думка і чому (чому це особливо цікаво)
В мене є блог і я от сижу і думаю - забороняти чи ні. Яка ваша думка і чому (чому це особливо цікаво)
Anonymous Poll
24%
Забороняти
76%
Хай працюють
Сиджу я значить в укритті (і ви сидіть!), слухаю наше ППО і роблю вам матеріали до наступного React Code Smells про Redux.
Якщо все буде добре, орієнтовно у середу відео вже буде на каналі :)
Бережіть себе, буде й на нашій вулиці свято!
Якщо все буде добре, орієнтовно у середу відео вже буде на каналі :)
Бережіть себе, буде й на нашій вулиці свято!
👍51❤14🔥10💔2🤩1
Трирівнева архітектура під час повітряної тривоги
Отакий от вийшов у нас спонтанний, без відео, стрім.
Дивитись не обов'язково, (просто немає на що), а на фоні послухати можна.
Бережіть себе)
Отакий от вийшов у нас спонтанний, без відео, стрім.
Дивитись не обов'язково, (просто немає на що), а на фоні послухати можна.
Бережіть себе)
Youtube
- YouTube
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
❤🔥25👍7❤3🤔1
❤️Сьогодні у Сергія Бабіча (я думаю всі його знають) день народження, і свій подарунок він вирішив передати на ЗСУ
Давайте йому в цьому допоможемо!
Ну і прийми мої щирі вітання, друже. Час у нас зараз не простий, але ми прорвемося.
Все буде Україна!
https://t.me/toisamyibabich/1183
Давайте йому в цьому допоможемо!
Ну і прийми мої щирі вітання, друже. Час у нас зараз не простий, але ми прорвемося.
Все буде Україна!
https://t.me/toisamyibabich/1183
Telegram
Той самий Бабіч
Сьогодні мені 36. З усіх дат, напевно, ця для мене – найсимволічніша. Сьогодні мені виповнюється стільки ж років, скільки було моєму батькові, коли у нього зʼявився я. Я не можу пояснити, чим саме це для мене особливо, але якесь цікаве й дивне сприйняття…
❤32👍3🥰2
🛄 React, Redux та поширені помилки під час використання глобального стору 🛄
👉 Відео відзняте, змонтоване і буде готовим до вашого перегляду сьогодні, 15.08 о 19:00
👂Вийшло приблизно 16 хвилин, пройшовся по помилкам під час проектування, читання та запису в глобальний стор. Загалом вісім (а для уважних десять) код смелів. Приклади на Redux + Redux Toolkit.
❤️ Буду радий за коментарі, відгуки та поширення!
П.М. А ще у нас нова прев'ю для відео, як вам?
👉 Відео відзняте, змонтоване і буде готовим до вашого перегляду сьогодні, 15.08 о 19:00
👂Вийшло приблизно 16 хвилин, пройшовся по помилкам під час проектування, читання та запису в глобальний стор. Загалом вісім (а для уважних десять) код смелів. Приклади на Redux + Redux Toolkit.
❤️ Буду радий за коментарі, відгуки та поширення!
П.М. А ще у нас нова прев'ю для відео, як вам?
YouTube
React, Redux та поширені помилки під час використання глобального стору
👉 П'ятий випуск React Code Smells. Говоримо про типові помилки під час проектування та використання глобального стору на прикладі Redux.
✉️ Telegram: https://t.me/reactbeginners
❤️ Підтримати канал: https://opencollective.com/farstar
💡Приклади з відео …
✉️ Telegram: https://t.me/reactbeginners
❤️ Підтримати канал: https://opencollective.com/farstar
💡Приклади з відео …
🔥38❤8
Free React For Beginners
🛄 React, Redux та поширені помилки під час використання глобального стору 🛄 👉 Відео відзняте, змонтоване і буде готовим до вашого перегляду сьогодні, 15.08 о 19:00 👂Вийшло приблизно 16 хвилин, пройшовся по помилкам під час проектування, читання та запису…
👉 Відео вже готове до перегляду - ТИЦЬ
✍️ Відгуки, коментарі та розповсюдження тільки вітаються!
✍️ Відгуки, коментарі та розповсюдження тільки вітаються!
YouTube
React, Redux та поширені помилки під час використання глобального стору
👉 П'ятий випуск React Code Smells. Говоримо про типові помилки під час проектування та використання глобального стору на прикладі Redux.
✉️ Telegram: https://t.me/reactbeginners
❤️ Підтримати канал: https://opencollective.com/farstar
💡Приклади з відео …
✉️ Telegram: https://t.me/reactbeginners
❤️ Підтримати канал: https://opencollective.com/farstar
💡Приклади з відео …
🔥22👍4❤2
Збір від 🍺BeerJS та Романа Савицького на антидронову рушницю.
❤️ Багато хто його знає, дехто навіть бував у нього на BeerJS в Житомирі.
👉 Давайте допоможемо, залишилось менше 14_000 гривень зі 100_000
#standswithukraine
❤️ Багато хто його знає, дехто навіть бував у нього на BeerJS в Житомирі.
👉 Давайте допоможемо, залишилось менше 14_000 гривень зі 100_000
#standswithukraine
send.monobank.ua
Безпечний переказ коштів
Надсилайте безкоштовно та безпечно кошти
❤🔥8🔥4❤1
❤️Ми знову в офлайні - Itera Open Day for Juniors❤️
UPD: Реєстрація закрита, місця скінчилися.
Мабуть ви знаєте, я не дуже люблю онлайн. Важко взаємодіяти з людьми, важко розуміти де треба зупинитись і пояснити детальніше, немає фідбеку від людей.
Тож я щасливий що ми можемо провести ще одну офлайн подію - Itera Open Day for Juniors
Програма:
1️⃣ Кар'єрний шлях розробника - Олександр Стороха, керівник Itera Ukraine та Itera Poland
2️⃣ Low/NoCode підхід для розробки - Олександр Скачков, керівник відділу розробки Itera Ukraine
3️⃣ Як писати гарний код - Віталій Рубан - (ну це, власне, я)
І, звичайно, піцца та нові корисні знайомства!
Деталі:
Дата: 30 серпня 2023
Час: 10:30 – 14:00
Де: Київ, вул. Ярославська, 58
👉 Реєструватися тут
UPD: Реєстрація закрита, місця скінчилися.
Мабуть ви знаєте, я не дуже люблю онлайн. Важко взаємодіяти з людьми, важко розуміти де треба зупинитись і пояснити детальніше, немає фідбеку від людей.
Тож я щасливий що ми можемо провести ще одну офлайн подію - Itera Open Day for Juniors
Програма:
1️⃣ Кар'єрний шлях розробника - Олександр Стороха, керівник Itera Ukraine та Itera Poland
2️⃣ Low/NoCode підхід для розробки - Олександр Скачков, керівник відділу розробки Itera Ukraine
3️⃣ Як писати гарний код - Віталій Рубан - (ну це, власне, я)
І, звичайно, піцца та нові корисні знайомства!
Деталі:
Дата: 30 серпня 2023
Час: 10:30 – 14:00
Де: Київ, вул. Ярославська, 58
👉 Реєструватися тут
Google Docs
Itera Open Day
📆Дата: 30 серпня 2023
⏲️Час: 10:30 – 14:00
🏘️Де: офіс Itera, вул. Ярославська, 58
Про що та що цікавого?
Кар'єрний шлях розробника - Олександр Стороха, керівник Itera Ukraine та Itera Poland
Low/NoCode підхід для розробки - Олександр Скачков, керівник відділу…
⏲️Час: 10:30 – 14:00
🏘️Де: офіс Itera, вул. Ярославська, 58
Про що та що цікавого?
Кар'єрний шлях розробника - Олександр Стороха, керівник Itera Ukraine та Itera Poland
Low/NoCode підхід для розробки - Олександр Скачков, керівник відділу…
❤18👍4✍2