TGViewer
Channel Public Channel
Codica - корисне про IT

Codica - корисне про IT

@codica

Привіт, друже, це канал про корисності в ІТ🤘

🔺Даємо практичні матеріали з RoR, JavaScript, QA, DevOps
🔺Розкажемо як знайти першу роботу без хвилювань та проблем

✍️Для звʼязку-@klimenko_nataly

👉 Відкриті вакансії - www.codica.com/careers
Subscribers
2.08K
Photos
3.3K
Videos
172
Links
1.7K

Showing posts older than #5173 · Back to latest

Older Posts 19 shown
Post #5172 118
2. Чому key={index} може призвести до проблем зі state?

📌 Питання:

Є список:


{users.map((user, index) => (
<UserRow key={index} user={user} />
))}


У UserRow є локальний state:


function UserRow({ user }) {
const [isEditing, setIsEditing] = useState(false);

return (
<>
<span>{user.name}</span>

<button onClick={() => setIsEditing(true)}>
Edit
</button>

{isEditing && <input />}
</>
);
}


Що може статися після видалення або сортування елементів?

📌 Очікувана відповідь:

index — це позиція елемента, а не його стабільна ідентичність.

Наприклад:

До:


Alice Bob Charlie
0 1 2


Після видалення Alice:


Bob Charlie
0 1


React використовує key, щоб зіставляти елементи між render’ами.

Після видалення Alice той самий key={0} уже належить Bob. Для React це означає, що компонент із key 0 залишився тим самим, хоча на рівні наших даних це вже інший користувач.

Через це локальний state компонента може «переїхати» до іншої сутності.

Тому для списків, які можуть змінювати порядок, краще використовувати стабільний ID:


{users.map(user => (
<UserRow key={user.id} user={user} />
))}


📌 Важливий нюанс:

key — це не просто спосіб прибрати warning у консолі.

Він допомагає React визначати identity елементів між render’ами та правильно пов‘язувати з ними state.

3. Чи завжди useCallback покращує performance?

📌 Питання:

Чи обов’язково тут потрібен useCallback?


function Parent() {
const [count, setCount] = useState(0);

const handleClick = useCallback(() => {
console.log('click');
}, []);

return (
<>
<button onClick={() => setCount(c => c + 1)}>
{count}
</button>

<Child onClick={handleClick} />
</>
);
}

const Child = React.memo(function Child({ onClick }) {
return <button onClick={onClick}>Child</button>;
});


📌 Очікувана відповідь:

Не обов‘язково.

useCallback дозволяє зберігати ту саму function reference між render’ами, доки його dependencies не змінилися.

У цьому прикладі він може бути корисним разом із React.memo: Child отримує ту саму reference handleClick, тому незмінний onClick не змушує memoized-компонент render’итися повторно.

Але якщо стабільна reference функції ні на що не впливає, useCallback може бути просто зайвою memoization.

Тому не варто автоматично додавати:

useCallback(...)
useMemo(...)
React.memo(...)

до кожного компонента.

📌 А що із сучасним React?

У проєктах із React Compiler багато memoization-оптимізацій React може виконувати автоматично.

Це зменшує потребу вручну додавати useCallback, useMemo і React.memo лише заради оптимізації render’ів.

Тому хороша відповідь на рівні senior звучить приблизно так:

«Спочатку я визначаю, чи потрібна тут memoization взагалі. Якщо проєкт використовує React Compiler, значну частину таких оптимізацій він може виконати автоматично. Ручну memoization додаю, коли для цього є конкретна причина».
Post #5171 131
Ми зібрали 5 питань, на яких часто перевіряють не знання синтаксису, а розуміння того, як працюють JavaScript і React.

Готові перевірити себе? 👇

1. Чому useEffect може працювати з «неактуальним» state?

📌 Питання:

Що буде виводити console.log, якщо натискати кнопку?


function Counter() {
const [count, setCount] = useState(0);

useEffect(() => {
const id = setInterval(() => {
console.log(count);
}, 1000);

return () => clearInterval(id);
}, []);

return (
<button onClick={() => setCount(c => c + 1)}>
{count}
</button>
);
}


📌 Очікувана відповідь:

console.log продовжить виводити 0.

Причина — stale closure.

Callback усередині setInterval замикає значення count із того render, у якому був створений Effect. У нашому випадку це 0.

При цьому count — reactive value, яка використовується всередині Effect, але відсутня в dependency array. Тому Effect не синхронізується з наступними значеннями count.

До речі, правило exhaustive-deps у eslint-plugin-react-hooks саме на це й поскаржиться.

Якщо Effect має реагувати на зміну count, його можна додати в dependencies:


useEffect(() => {
const id = setInterval(() => {
console.log(count);
}, 1000);

return () => clearInterval(id);
}, [count]);


Тоді після зміни count React спочатку виконає cleanup попереднього Effect, а потім запустить Effect знову з актуальним значенням.

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

📌 Що перевіряє інтерв'юер:

Чи розуміє кандидат JavaScript closures, React render model, Effects та dependency array, а не просто знає синтаксис useEffect.
Post #5170 162
🎯 А як у інших? Питання з IT-співбесід

#codica_interviews

✅ Хороша підготовка — розуміти, чому саме React так працює.
❌ Погана — відповідати: «Ну… так у документації було».
Post #5169 173
Раночку! ⚡️

Таски відкрили, каву заварили і до справ! Всім успішного дня! 😎

#codica_humor

TikTok | Instagram | Telegram
  • ❤ 3
  • 💯 2
Post #5167 216
Англійська за мемами😜
👉 Говоримо красиво

📍 business card — візитка
📍 windshield — лобове скло

#codica_english

TikTok | Instagram | Telegram
  • 😁 7
Post #5166 207
➡️ 5 способів вивчити мову програмування
Не існує одного “правильного” способу — тут розкладуть по поличках, як вчитися ефективно і не витрачати час дарма.
⏱ Тривалість — 20 хв

➡️ Концепції Linux. Пояснення роботи та чому більша частина інтернету працює на лінукс
База, яку варто знати кожному, хто працює з серверами або хоче зрозуміти, як влаштований інтернет зсередини.
⏱ Тривалість — 10 хв

➡️ Що трапилось з медіа в браузері і до чого тут Apple? | Злет і падіння вільного інтернету
Глибока документалка про еволюцію вебу. Вона варта кожної хвилини, якщо хочете зрозуміти, як корпорації та технології змінили наш цифровий світ.
⏱ Тривалість — 2 год 22 хв

➡️ Навіщо програмісту універ?
Чесний розбір: універ, курси чи самонавчання — що реально працює і де не втратити час.
⏱ Тривалість — 16 хв

➡️ Як постало українське IT
Історія індустрії, якою ми зараз користуємось щодня — від перших кроків до світового рівня.
⏱ Тривалість — 51 хв

Нехай ці вихідні будуть з користю, новими ідеями і без відчуття “я нічого не встиг” ☕
І якщо раптом захочеться щось змінити — це вже хороший знак 🚀

TikTok | Instagram | Telegram
  • 🔥 3
Post #5165 176
Друзі, всім легкого і трохи лінивого вихідного!

Сьогодні той момент, коли планував просто подивитися серіал, але випадково відкрив відео про IT. І бац — через три години ти вже «сеньйор-помідор» у власних думках, який обирає колір для своєї яхти 😄

Тож приємного перегляду 👇
  • 😁 2
Post #5164 214
Хто тут ще намагається «вайбкодити», коли підходи до роботи з ШІ змінюються швидше, ніж ми встигаємо за ними стежити?

Якщо ви вже використовуєте ChatGPT та інші AI-інструменти в роботі, але відчуваєте, що використовуєте їх далеко не на максимум — час трохи систематизувати знання.

Ми знайшли безкоштовний курс «Від початківця до експерта в ШІ» від FRACTAL.

Він підійде тим, хто хоче зрозуміти, як використовувати ШІ для роботи, навчання та професійного розвитку.

Тож зберігайте, сідайте клацати й перевіряйте себе: що з інструментів і підходів ви вже давно використовуєте в роботі, а що досі пропустили 👀

👉 [Гайда на курс]

TikTok | Instagram | Telegram
  • ✍ 3
  • 🗿 2
Post #5163 194
Коли кажеш оцінку “два дні”, закладаєш час на каву та непередбачувані баги, а все одно виходить “ще вчора треба було закінчити” 🙃

В ІТ є три нескінченні речі: вогонь у продакшені, правки перед релізом і фраза “Це ж просто текст поміняти, чому так довго?”

Зібрали фрази для тих моментів, коли менеджер або клієнт просить “зробити дрібничку за 5 хвилин”:

#codica_english

💬 “Even small changes can have side effects in the existing codebase.”
Навіть невеликі зміни можуть мати побічні ефекти в існуючому коді.

💬 “I can implement a quick workaround, but we’ll need to refactor it later.”
Я можу зробити швидке тимчасове рішення, але потім доведеться його рефакторити.

💬 “Let’s estimate the risks before diving into this.”
Давайте оцінимо ризики перед тим, як занурюватися в це.

💬 “We need a proper investigation to give you an exact timeline.”
Нам потрібне детальніше дослідження, щоб дати точні терміни.

💡 Зберігайте, щоб не казати “я швидко”, коли точно знаєте, що це на весь день)

TikTok | Instagram | Telegram
  • 💯 2
Post #5161 200
#codica_js
Post #5159 160
#codica_ruby
Post #5158 203
1 жовтня — день нашої безмежної вдячності кожному й кожній, хто нас захищає.

Дякуємо за кожен ранок, за можливість працювати, бути вдома та обіймати рідних. Наша повага — кожному, хто зараз у строю. Пам’ять про тих, кого з нами немає — назавжди в серці 💔

Бережіть себе та повертайтеся.
Слава Україні! Героям слава!! 🇺🇦

TikTok | Instagram | Telegram
  • ❤ 9
Post #5157 215
«Калсарікянні» (Kalsarikännit) — фінське слово, яке буквально означає: «пити вдома в одній спідній білизні, не збираючись нікуди виходити».

Як це в IT: Це не обов’язково про алкоголь, це про крайню стадію вигорання та жорсткого детоксу після релізного тижня.

Коли за п'ять днів ти провів 40 годин на зідзвонах, змерджив 15 конфліктних пулл-реквестів і вислухав усі факапи менеджменту.

Субота. Телефон на «Do Not Disturb», увімкнений серіал, зручні старі шорти і абсолютне небажання бачити людство. Повне вимкнення соціальних функцій, щоб процесор не згорів.

Як це використовувати в житті: Якщо в п’ятницю ввечері колеги чи друзі наполегливо кличуть тебе на черговий галасливий нетворкінг або баркроул, а в тебе ліва повіка сіпається від перевантаження — не вигадуй відмазки.

Пиши прямо в чат: «Друзі, сорі, я сьогодні пасс. У мене за планом жорсткий калсарікянні». Айтівці зрозуміють і поважатимуть твій вибір.

TikTok | Instagram | Telegram
  • 🔥 3
  • 👀 1
Post #5156 186
Йо, друзі, з вами наша постійна рубрика #IT_словник

Ми зібрали рідкісні, дивні та абсолютно геніальні слова з усього світу, які ви навряд чи чули, але які на 100% описують будні в розробці. Розширюємо вокабуляр, качаємо софт-скіли, піднімаємо настрій і вчимося витончено тролити колег та ПМ-ів.

Читайте попередні пости рубрики:
📌 "Гігіл" — читати тут
📌 "Торшлюспанік" — читати тут
📌 "Цундзуку" — читати тут
📌 "Айвош" — читати тут

Гортайте нижче, тегайте в коментарях тих, кому це життєво, і погнали! 🔥
  • ❤‍🔥 2
Post #5155 205
📌 Локальний Mock-сервер за хвилину (Mock Service Worker / MSW)
MSW перехоплює запити на рівні мережі (Service Worker у браузері або Node.js для тестування). Ви працюєте з реальними fetch чи axios запитами, а не хардкодними заглушками, імутуючи будь-які відповіді сервері чи навіть network errors.

🔗 Дивитися MSW

📌 Універсальний конструктор стилів (Tailwind Variants / TV)
Дозволяє створювати безпечні, модульні варіанти стилів для компонентів (як у Stitches чи CVA), ідеально поєднуючись із Tailwind CSS. Код стає чистим, читабельним і позбавленим умовного хаосу в класах.

🔗 Дивитися Tailwind Variants

📌 Реактивне кешування та синхронизація (TanStack Store)
Надзвичайно легкий, атомний і повністю типізований менеджер стану від творців TanStack. Працює блискавично, не тягне за собою зайвого бойлерплейту і чудово інтегрується як у React, так і в чистий JS.

🔗 Дивитися TanStack Store

📌 Інтерактивний UI для конфігів (Unovis / або патерни інтерфейсів)
Модульна бібліотека візуалізації даних на базі TypeScript, створена спеціально для React та інших фреймворків. Надає готові, неймовірно швидкі та адаптивні компоненти графіків.

🔗 Дивитися Unovis

💬 А які приховані інструменти чи маловідомі бібліотеки виручали вас у найскладніших ситуаціях? Діліться своїми скарбами в коментарях!

TikTok | Instagram | Telegram
  • 🔥 3
Post #5154 174
🛠 Приховані скарби для JS/React-розробників: круті та маловідомі репозиторії, які економлять години

Продовжуємо нашу рубрику для JavaScript та React-розробників!

Минулі збірки репозиторіїв рубрики:
Частина 1: про корисні репозиторії для прокачування скілів
Частина 2: про девтулзи для боротьби з рутиною

А сьогодні підготували добірку справді потужних, але незаслужено маловідомих репозиторіїв та інструментів, які закривають специфічні болі на проєктах 👇
  • 👍 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →