Codica - корисне про IT
2.03K subscribers
2.88K photos
144 videos
35 files
1.49K links
Привіт, друже, це канал про корисності в ІТ🤘

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

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

👉 Відкриті вакансії - www.codica.com/careers
Download Telegram
І майже кожен з нас колись писав джобу так:
class ChargeUserJob
def perform(user_id)
user = User.find(user_id)
PaymentService.charge(user)
end
end

Все працює. Поки не спрацює retry.

Sidekiq за замовчуванням робить повторні спроби.
І якщо джоба не є ідемпотентною, ти можеш отримати:
• подвійний платіж
• дубльовані записи
• повторну інтеграцію з зовнішнім сервісом
• хаос у станах

Ми всі так робили 🙂

Що таке ідемпотентність простими словами?
Ідемпотентна операція – це така, яку можна виконати кілька разів, і результат залишиться однаковим.

Наприклад:
• “створити запис” – не ідемпотентно
• “встановити статус = paid” – ідемпотентно
• “списати 100 грн” – дуже небезпечно
• “перевірити, чи вже списано, і якщо ні – списати” – вже ближче

Де найчастіше ламаються джоби
🔹 HTTP інтеграції без перевірки стану
🔹 Відсутність унікальних індексів
🔹 Немає перевірки “чи вже виконано”
🔹 Використання
create!

замість
find_or_create_by

🔹 Логіка, яка залежить від “попереднього стану” без блокувань

Як писати безпечні background jobs
1️⃣ Використовувати унікальні індекси в БД
add_index :payments, :external_id, unique: true

Validation не захистить від race condition. Індекс – так.

2️⃣ Робити перевірку перед виконанням
return if payment.processed?
payment.process!


3️⃣ Використовувати транзакції
ActiveRecord::Base.transaction do
...
end


4️⃣ Думати про retry як про нормальний сценарій
Не “якщо впаде” – а “коли впаде”.
Sidekiq retry – це не виняток, це частина механіки.

Міні-правило, яке рятує нерви
Якщо твоя джоба не витримає повторного виконання – вона небезпечна.

Особливо якщо це:
• гроші
• доступи
• інвентар
• інтеграції

У кого був продакшн-кейс із дублем через retry? І що тоді рятувало – індекс чи гарячий фікс?
😄

TikTok | Instagram | Telegram
🔥4
Що виведе цей код?
Anonymous Quiz
5%
3
3%
5
93%
8
0%
nil
Що буде виведено в консоль?
Anonymous Quiz
61%
0 1 2
12%
0 0 0
5%
Error
22%
3 3 3
🤯2
Ви теж це чули?
“AI всіх замінить“, “джуни не потрібні“, “в IT вже пізно заходити“…
Спойлер: більшість із цього — міфи, які тільки гальмують.

Зняли для вас відео де розібрали 7 речей, через які або не заходять в IT, або вигорають ще на старті.

З реальними кейсами і трохи болючою правдою 😏

📺 Дивитися відео: [посилання на YouTube]

💬 Напишіть в коментарях: який міф вас найбільше дратує?

TikTok | Instagram | Telegram
🔥2👍1
🧠 Скажіть, ви вже теж не можете обійтись без AI в роботі?

А чи про всі круті інструменти ви вже знаєте? Ми прописали для вас ланцюжок AI‑інструментів, які можна використовувати щодня.

Перегляньте, що може бути дійсно корисним саме для вас 😉
Для програмістів
📌 IDE + AI – VSCode + GitHub Copilot або IntelliJ + JetBrains AI
📌 Тестування – CodiumAI / Diffblue Cover (генерація unit-тестів)
📌 Документація – ChatGPT / GPT‑5 пише README та пояснення коду
📌 Візуалізація архітектури – Diagrams.net + AI

Для дизайнерів UI/UX
📌 Ідеї + концепти – ChatGPT / GPT‑5 + FLORA
📌 Генерація візуалів – Midjourney v7
📌 Прототип + UI – Figma AI + Runway Gen‑3

Для менеджерів / тімлідів / продуктових людей
📌 Зустрічі + нотатки – Otter.ai + ChatGPT
📌 Документи + плани – ChatGPT / Claude Max
📌 Комунікація – Superhuman AI
📌 Аналітика + візуалізація – Notion AI, Miro + AI

Для креативу / маркетингу / контенту
Ідеація – ChatGPT / GPT‑5, Jasper.ai
Візуалізація – Canva AI, Midjourney v7
Відео / анімація – Runway Gen‑3
Публікація + аналітика – Buffer / Hootsuite AI

Золоте правило всіх AI‑стеків
• Визнач мету (код, текст, дизайн, планування)
• Почни з 1‑2 базових AI
• Додай спеціалізований інструмент під задачу
• Автоматизуй рутину → залишай собі стратегічну частину

🔥 Підсумок: AI не замінить твою голову, якщо ти мислиш креативно. Але рутинну роботу забирає собі і тоді твоя продуктивність злітає 🚀

TikTok | Instagram | Telegram
🔥3
Фух, нарешті вихідні… 😌 Дочекались!
Весь тиждень — навчання, робота… хочеться видихнути і не думати про складне, правда?

#codica_weekend

Тож ми підготували для вас трохи розваги 🎉 наші квізи!
Можливо, якийсь ви ще не проходили. Зараз саме час перевірити свої знання та інтуїцію на різні теми. 🧠

👉 Квіз 1
👉 Квіз 2
👉 Квіз 3
👉 Квіз 4
👉 Квіз 5
👉 Квіз 6

💛 Бажаємо вам гарних вихідних, спокою, відпочинку та часу для себе!

TikTok | Instagram | Telegram
🔥21
Світлого Великодня, друзі! 🌿

Бажаємо, щоб ваші домівки наповнилися ароматом свіжої випічки, а душі — спокоєм. Mr. Cody вже перевірив паски на міцність і передає вам свій святковий «кусь» та порцію натхнення 🐶

Смачної паски, щирих усмішок та якнайбільше добрих новин!
4
Раночку, друзі! 😄

І тільки не кажіть, що у вас жодного разу такого не було на сімейному застіллі… 😂

#codica_humor

TikTok | Instagram | Telegram
🤣4👨‍💻1
Старенькі знають, молоді гуглять 😎

Rails-команди можна запускати кількома способами і кожен має свої нюанси.

#codica_advice
🧠 Навіщо знати різницю?
Прості скорочення типу
rails s, rails c, rails g

зручні для швидких дій. Але вони можуть працювати не так, як ти очікуєш, якщо версія Rails у проекті відрізняється від глобальної.

rails s

Запускає Rails через глобально встановлений гем rails.
👉 Швидко та просто для експериментів.
🔴 Ризик: може не збігатися версія з тією, що у проекті.

 bin/rails s

Запускає Rails із локального скрипта, створеного при
rails new

🔘 Безпечніше: завжди використовує версію Rails із Gemfile.
🔘 Рекомендовано для щоденної розробки.

bundle exec rails s

Запускає Rails через Bundler, щоб гарантувати правильні версії гемів.
🔘 Корисно, якщо Rails встановлений не через bin/rails або при сторонніх утилітах.
🔘 Часто застосовується у CI/CD та make-скриптах.

bundle exec bin/rails s

Ураховує і локальний bin-скрипт, і середовище Bundler.
🔘 Найсуворіший і безпечний варіант.
🔘 Гарантує запуск саме з тими версіями, що зафіксовані в Gemfile.lock.
🔘 Використовується у Dockerfile, Makefile і продакшн-сценаріях.

💡 Тож:
rails s

– швидко, але не завжди точна версія.
bin/rails s

– стандарт для локальної розробки.
bundle exec rails s

– фіксація залежностей.
bundle exec bin/rails s

– максимум передбачуваності і безпеки.

Містер Cody каже:
"Хочеш, щоб все працювало стабільно – запускай Rails правильно" 😎

TikTok | Instagram | Telegram
🔥5
Фрази, які краще ніколи не казати на співбесіді 😅

#НапуттяВід_HR Директорки Клименко Наталії

👉 Здивуємо вас: більшість кандидатів, які приходять до нас, адекватні, ввічливі та підготовлені. Але трапляються й такі перли, що хоч в TikTok викладай.
👉 Тож ловіть добірку фраз, які на співбесіді краще залишати при собі.

А які фрази ви чули на співбесідах і думали: «Ого, це було зайве»? Поділіться в коментарях 👇

TikTok | Instagram | Telegram
3
💬 А тепер ваша черга!

Ми розповіли про дивні фрази кандидатів…
Але давайте чесно: рекрутери теж іноді можуть здивувати 😅