Привіт, друже, це канал про корисності в ІТ🤘 🔺Даємо практичні матеріали з RoR, JavaScript, QA, DevOps 🔺Розкажемо як знайти першу роботу без хвилювань та проблем ✍️Для звʼязку-@klimenko_nataly 👉 Відкриті вакансії - www.codica.com/careers
4. Забути return в Array.map()Ти хотів трансформувати масив, а отримав набір undefined.❌ Погано:const result = [1, 2, 3].map((n) => { n * 2; // нічого не повертається!});
✅ Добре:const result = [1, 2, 3].map((n) => n * 2);// абоconst result = [1, 2, 3].map((n) => { return n * 2;});
5. Мутувати масив чи об‘єкт напрямуОсобливо болісно це бачити в React. Але навіть без нього — це гарний спосіб створити собі баг, який важко відловити.❌ Погано:const arr = [1, 2, 3];arr.push(4); // мутує оригінальний масив
✅ Добре:const newArr = [...arr, 4]; // створює новий масивconst newObj = { ...oldObj, updatedProp: 42 }; // для обʼєктів
6. Виклик setState у useEffect без залежностейЦе або нескінченний цикл, або лаги. Або все одразу.❌ Погано:useEffect(() => { setState(data);});
✅ Добре:useEffect(() => { setState(data);}, [data]); // вкажи залежності
І пам’ятай: порожній масив — це “виконати один раз“.Бонус: забути await перед асинхронним викликомconst result = fetchData(); // Це проміс, а не результат!
Правильно:const result = await fetchData();
💬 Пишіть у коментарях — зберемо колекцію помилок, які ми всі колись робилиTikTok | Instagram | Telegram
📚Гайз, ми підготували для вас чудову добірку технічних книг, які дійсно резонують із повсякденними викликами фронтенд-розробки. Це не просто посібники з програмування — це книги, які формують професійне мислення.📌 Clean Code: A Handbook of Agile Software CraftsmanshipRobert C. MartinПро що книга: як писати код, який не страшно відкривати через пів року. Принципи чистоти, приклади «поганого» та «хорошого» коду, рефакторинг.🔗 Читати на Amazon 📌 The Pragmatic Programmer: Your Journey to MasteryAndrew Hunt & David ThomasПро що книга: як мислити як розробник. Прийняття рішень, робота з технічним боргом, гнучке мислення, стиль коду. Книга-порадник із досвідом.🔗 Читати на Amazon 📌You Don't Know JS Yet: Get StartedKyle SimpsonПро що книга: JavaScript без прикрас. Глибоке пояснення замикань, this, hoisting, типів — усе, що здається простим, але працює не так, як очікуєш.🔗 Читати на Amazon📌Learning JavaScript Design PatternsAddy OsmaniПро що книга: як організовувати масштабні фронтенд-проєкти. Singleton, Factory, Observer, MVC — з прикладами на JS та порадами для сучасного коду.🔗 Читати на Amazon 📌 Eloquent JavaScript: A Modern Introduction to ProgrammingMarijn HaverbekeПро що книга: універсальний старт для тих, хто хоче добре зрозуміти програмування через JavaScript. Задачі, пояснення, розбір складних тем простою мовою.🔗 Читати на Amazon Зберігайте пост, читайте у зручний час і діліться своїми фаворитами в коментарях 👇TikTok | Instagram | Telegram
1️⃣ Яка різниця між класом і модулем у Ruby?📍 Очікувана відповідь:Клас — це шаблон для створення об’єктів, його можна інстанціювати. Модуль — набір методів і констант, не створює об'єктів. Його використовують для міксинів: include додає методи як інстанс-методи, extend — як методи класу.2️⃣Що таке singleton-методи? Що таке eigenclass у Ruby?📍 Очікувана відповідь:Singleton-методи — це методи, що належать тільки одному конкретному об’єкту. Вони зберігаються в так званому eigenclass (або singleton-класі) — це прихований клас, який Ruby створює для кожного об’єкта і де зберігає ці методи.3️⃣Опишіть шлях пошуку методів у Ruby (method lookup path).📍 Очікувана відповідь:Ruby шукає метод у такому порядку:1. У singleton-класі об'єкта2. У класі об'єкта3. У модулях, включених через include4. У суперкласах і їхніх модулях5. У BasicObjectЯкщо метод не знайдено — викликається method_missing.4️⃣ Яка різниця між Proc і lambda у Ruby?📍 Очікувана відповідь:Обидва — об'єкти, що інкапсулюють блоки коду, але:- lambda перевіряє кількість аргументів, Proc — ні.- return у lambda виходить тільки з самої лямбди, а в Proc — з усього методу.Тобто lambda поводиться як звичайний метод, а Proc — більш "вільно".#codica_interviews📌 Сподобалось? Збережи собі, щоб не загубити, і постав реакцію — підтримай тих, хто теж готується до співбесід ❤️І звісно — успіхів на співбесідах! Нехай питання будуть знайомі, а відповіді — впевнені 😉TikTok | Instagram | Telegram
Тримай базовий набір практик, які реально допомагають тримати Rails-застосунок у формі:📌 КешуванняНайшвидший запит — той, якого не було.— Rails.cache.fetch — кешуй фрагменти даних або частини сторінок— Russian doll caching + touch для звʼязаних моделей— Redis — швидко, просто, ефективно📌Фонові задачі (Background Jobs)Не вантаж прод задачами, які можна виконати окремо.— Sidekiq — золотий стандарт: простий, стабільний, battle-tested— Винось у фон: email-розсилки, API-запити, PDF, аналітику— Не забудь про retries, queues, таймаути й моніторинг📌Оптимізація ActiveRecordПрацюй з базою так, щоб не боліло.— Використовуй includes, select, pluck, find_each— Уникай N+1: Bullet gem підкаже, де прорвало— EXPLAIN у SQL допоможе зрозуміти причину гальм— Індекси must-have — особливо на foreign_key, user_id, created_at📌Архітектурна декомпозиціяРозділяй, щоб вижити.— Винось важке (аналітику, email-сервіси) в мікросервіси чи окремі воркери— CDN — для статики, зображень і фронтенд-активів📌Моніторинг — mustБез нього ти не побачиш, де гальмує.— Skylight, New Relic або хоча б rack-mini-profiler— Логи + алерти = твій ранній захист від прод-катастроф💡Масштабування — це не тільки “серверів побільше“, а розумні практики ще під час розробки.Зберігай, передавай далі, повертайся, коли 🔥#codica_adviceTikTok | Instagram | Telegram
🔎 Фокус — Automation QA. Якщо ти вже автоматизуєш або тільки плануєш — зберігай.📌Типи тестів:👉Unit — швидкі, стабільні, тестують одну річ → основа впевненості👉E2E — симулюють реального користувача → виявляють реальні баги, але повільні👉Snapshot — зручні для перевірки UI або API-структур → не замінюють логічні тести, але зручні для рефакторингу📌Інструменти:👉 Jest (JS/TS)— Unit та Snapshot— Ідеально для React-компонентів— jest --watch — кайф при розробці👉 Cypress (JS)— E2E у браузері: перевірка flows, UI, чеклісти— Пишеш тести як сценарій → інтуїтивно— Не забувай грамотно мокати бекенд і таймаути👉 RSpec (Ruby)— Підтримка фіче-тестів через Capybara— Прочитав — і зрозумів → гарно для командної роботи👉 PyTest (Python)— Лаконічний, але потужний— Гнучкий через плагіни— Швидко вчитися і писати💡Best Practices:✅ Не тестуй те, що не має бізнес-логіки (виняток: доступність, SEO, критичні UI-блоки)✅ E2E — лише для ключових flows, інше → unit✅ Snapshot = не логіка, а перевірка стабільності✅ Назви тестів як спека: "returns 403 if user is banned"✅ CI має падати одразу — швидкий фідбек✅ Тести мають бути швидкі, стабільні, інформативні✅ Flaky-тест? З’ясуй причину, не ігноруй. Видалення — крайній захід📌 Перевір свій стек, зроби ревізію тестів і згадай, для чого ти це все запускаєш 🚀#codica_adviceTikTok | Instagram | Telegram
1. Порівняння через == замість ===Це найшвидший шлях до пригод. == в JavaScript робить приведення типів, і іноді веде себе… дуже творчо.❌ Погано:0 == '0' // true false == 'false' // false false == 0 // true ✅ Добре:0 === '0' // false false === 'false' // false false === 0 // false
👉 Запам’ятай: завжди використовуй ===, якщо тільки не хочеш стати героєм історій про баги.2. Магічні значенняКоли в коді зʼявляються 42, 'OK', 5000 — і незрозуміло, чому саме ці значення і що вони значать.❌ Погано:if (status === 'OK') { ... }
✅ Добре:const STATUS_OK = 'OK'; if (status === STATUS_OK) { ... }
3. Нехтування try...catch у промісахЧудовий async/await працює красиво… поки не бахне виняток.❌ Погано:const data = await fetchData(); console.log(data);
✅ Добре:try {const data = await fetchData(); console.log(data);} catch (error) {console.error('Something went wrong:', error);}
⚠️ До речі: fetch не кидає помилку на 404/500, тому перевіряй статус:if (!response.ok) {throw new Error('Request failed');}
+ бонус: мутування обʼєктів у Redux/ReactЦе окрема тема, але просто запам’ятай:🔒 immutability — наше все.Не мутуй напряму state, працюй з копіями. Інакше React просто не зрозуміє, що щось змінилося.А ви яку помилку бачили найчастіше в чужому (чи своєму 🙈) коді?Пишіть у коментарі — буде друга частина! 💬#codica_adviceTikTok | Instagram | Telegram
👇 Тримай добірку must-have команд, які виручали не один десяток продів:1️⃣ git rebase -i HEAD~5Інтерактивний rebase: красиво переписати історію перед злиттям — як прибрати бруд із commit log.2️⃣ git cherry-pick <hash>Забрати один-єдиний комміт з іншої гілки. Незамінно, коли фікс уже в іншій фічі, а треба в прод — зараз.3️⃣ git stash / stash popЗберегти локальні зміни на потім. Рятує, коли треба терміново переключитися на щось інше без втрат.4️⃣ git bisectПошук багу методом binary search — автоматично визначає, який саме комміт усе зламав.5️⃣ git reflogПовна історія того, що ти робив (навіть після reset --hard). Справжній таймлайн порятунку 🙌6️⃣ git commit --amendЗмінити останній комміт (наприклад, поправити опис або додати файл, який забув).7️⃣ git diff --stagedПодивитися, що саме ти вже додав у staged перед комітом — зручно ловити "ой, не те додав".8️⃣ git log --oneline --graphВізуальний граф гілок. Ідеально для рев’ю, коли історія складніша за життя.9️⃣ git blameДізнатися, хто написав цей код... щоб потім виявити, що це був ти з 2021 😬🔟 git clean -fdОчистити untracked файли та папки. Обережно: працює безжально.Git — це як швейцарський ніж. Чим краще ним володієш, тим менше стресу у девелопменті.Зберігай і ділись з командою 👇А в коментах пиши свою “рятівну” команду #codica_adviceTikTok | Instagram | Telegram
Агов, друзі! Тримаємо курс на розвиток 💪Ловіть другу добірку проєктів на Ruby on Rails, які допоможуть прокачати навички, отримати реальний досвід і поповнити портфоліо.У кожному кейсі — не просто ідея, а живий код з GitHub, який можна вивчати, запускати, доповнювати та кастомізувати під себе 🚀📌Онлайн-платформа для навчанняРівень: ПросунутийЩо вивчиш: Створення курсів, управління уроками, відстеження прогресу студентів.Посилання на код: Canvas LMS 📌Дошка оголошень про роботуРівень: СереднійЩо вивчиш: Створення та пошук вакансій, фільтрація, управління заявками.Посилання на код: Job Board 📌Система управління подіямиРівень: СереднійЩо вивчиш: Створення подій, реєстрація учасників, надсилання нагадувань.Посилання на код: Event Management 📌Платформа для обміну рецептамиРівень: ПочатковийЩо вивчиш: Створення рецептів, додавання зображень, коментарі, оцінки.Посилання на код: Recipe App 📌Особистий фінансовий трекерРівень: СереднійЩо вивчиш: Ведення бюджету, категоризація витрат, візуалізація даних.Посилання на код: Money Rails Став 🔥, якщо було корисно!А ще — зберігай пост, щоб не загубити 😉#codica_adviceTikTok | Instagram | Telegram
Naming Best Practices — або як перестати страждати від data1, temp2, stuff_final_final.Майже кожен девелопер має грішки в іменуванні. Але правда така: зрозумілий неймінг — це половина читабельності коду.Давайте освіжимо в памʼяті кілька ключових принципів 👇📌Будьте конкретнимиПогано: data, info, temp, objДобре: userProfile, emailTemplate, cartItems📌Імʼя повинно відповідати сутіЯкщо функція повертає булеве значення, почніть з is/has/should:isAdmin(), hasAccess(), shouldDisplayBanner()📌Уникайте скорочень, які зрозумілі тільки вамПогано: cntUsr, cfgSet, inpFlgДобре: userCount, configSettings, inputFlag📌Не повторюйте контекстПогано:class User { getUserName() {}}Добре:class User { getName() {}}📌Конвенції — ваші друзі→ camelCase для змінних і функцій: getUserName()→ PascalCase для класів: UserService→ UPPER_CASE для констант: MAX_USERS📌Масив? Додай множинуuser → це одинusers → вже зрозуміло, що багато💬 І памʼятай: код читають частіше, ніж пишуть. Добрий неймінг — це повага до себе в майбутньому (і до того, хто ревʼюватиме твій PR).Шариш за хороші практики — кидай у коменти!Хочеш ще таких шортгайдів? Напиши в коментарі або вподобай цей пост ❤️#codica_adviceTikTok | Instagram | Telegram
5 інструментів, щоб виглядати в команді як senior, навіть якщо ще на middle 😎👨💻 Неважливо, пишеш на JavaScript чи Ruby on Rails — ці тулзи полегшують життя, чистять код і рятують від "а що тут взагалі відбувається".📌CodeWhisperer — автодоповнення, яке реально знає своє ділоПлатформа: JavaScript, Python, Java та ін.👉 Це аналог Copilot від Amazon. Підтягує готові шматки коду, пропонує тест-кейси, розуміє контекст. Працює прямо в IDE (VSCode / JetBrains). Вільний для особистого користування. 📌Railwind — Tailwind CSS для Rails Платформа: Ruby on Rails👉 Інтегрує Tailwind у твій Rails-проєкт за кілька хвилин.Підходить для тих, хто не хоче возитися з Webpacker чи Importmaps. Все зручно, чітко й швидко. 📌Lintje — для тих, хто хоче чистий gitПлатформа: будь-яка, але особливо зручно для JS/Rails👉 Тулза, яка перевіряє git-коміти на якість (неймінг, структура). Працює як pre-commit hook. Допомагає команді не перетворити історію на хаос. 📌Ruby LSP — IntelliSense Платформа: Ruby / Ruby on Rails👉 Language Server Protocol для Ruby, що додає автодоповнення, jump to definition, фолдинг і діагностику. Працює з VSCode, Sublime, Neovim та ін. 📌Ast-grep — знайди все, що хочеш (і не хочеш)Платформа: JS / TS / Ruby👉 Це grep, але на стероїдах. Дає змогу шукати патерни у дереві синтаксису коду. Наприклад: знайди всі місця, де .map() не повертає значення, або всі if без else. Ідеально для рефакторингу або рев’ю.⚡ Хочеш ще таких добірок — напиши, яка мова чи сфера цікавить.#codica_adviceTikTok | Instagram | Telegram
We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes (“basic interactions & functionalities” and “measurement”) as specified in the Cookie policy.
You can freely give, deny, or withdraw your consent at any time.
You can consent to the use of such technologies by using the “Accept” button. By closing this notice, you continue without accepting.