Англійська за мемами😜
👉 Говоримо красиво
📍 hitting – ударити, бити, потрапляти, сягати, світити на, падати на (про сонце, світло).
📍 revealed – показувати, виявляти, розкрити, демонструвати, робити видимим.
#codica_english
TikTok | Instagram | Telegram
👉 Говоримо красиво
📍 hitting – ударити, бити, потрапляти, сягати, світити на, падати на (про сонце, світло).
📍 revealed – показувати, виявляти, розкрити, демонструвати, робити видимим.
#codica_english
TikTok | Instagram | Telegram
😁6
Друзі, раночку! 👋
Принесли мемчик, як ви виглядаєте залежно від своєї улюбленої мови програмування!
#codica_humor
TikTok | Instagram | Telegram
Принесли мемчик, як ви виглядаєте залежно від своєї улюбленої мови програмування!
#codica_humor
TikTok | Instagram | Telegram
😁8
Старенькі знають, молоді гуглять 😎
Сьогодні в нашій рубриці словника Ruby on Rails розглядаємо поняття «Ідемпотентність» (Idempotency).
#codica_advice
Попередні пости рубрики:
👉 Міграції (migrations)
👉 Способи запуску команд Rails
👉 Метал-контролери (Metal Controllers)
👉 DSL (Domain Specific Language)
Сьогодні в нашій рубриці словника Ruby on Rails розглядаємо поняття «Ідемпотентність» (Idempotency).
#codica_advice
Попередні пости рубрики:
👉 Міграції (migrations)
👉 Способи запуску команд Rails
👉 Метал-контролери (Metal Controllers)
👉 DSL (Domain Specific Language)
❤4
Ідемпотентність — властивість операції, при якій її повторний виклик з тими ж вхідними даними не змінює стан системи повторно і не створює нових побічних ефектів (side-effects).
Іншими словами: перший виклик змінює систему, а всі наступні — залишають її в тому самому стані, що й після першого виклику.
Де це критично:
📍Background Jobs (напр. Sidekiq / ActiveJob): Мережа може відвалитися, джоба перезапуститься. Код має бути готовим до повторного виконання без дублювання транзакцій.
📍REST API: Запити GET, PUT та DELETE за специфікацією HTTP мають бути ідемпотентними (на відміну від POST).
Приклад у Ruby
Розглянемо сервіс активації користувача.
❌ Неідемпотентний підхід
При кожному виклику метод оновлює базу даних та генерує нові фонові задачі на відправку пошти. Це створює зайве навантаження і спамить користувача.
✅ Ідемпотентний підхід (з урахуванням конкурентності)
Ми робимо умовне оновлення на рівні бази даних через update_all. Метод update_all повертає кількість оновлених рядків (1 або 0). Якщо рядок вже був оновлений іншим паралельним потоком, ми просто виходимо, не відправляючи лист повторно.
TikTok | Instagram | Telegram
Іншими словами: перший виклик змінює систему, а всі наступні — залишають її в тому самому стані, що й після першого виклику.
Де це критично:
📍Background Jobs (напр. Sidekiq / ActiveJob): Мережа може відвалитися, джоба перезапуститься. Код має бути готовим до повторного виконання без дублювання транзакцій.
📍REST API: Запити GET, PUT та DELETE за специфікацією HTTP мають бути ідемпотентними (на відміну від POST).
Приклад у Ruby
Розглянемо сервіс активації користувача.
❌ Неідемпотентний підхід
При кожному виклику метод оновлює базу даних та генерує нові фонові задачі на відправку пошти. Це створює зайве навантаження і спамить користувача.
class ActivateUser
def call(user)
user.update!(active: true, activated_at: Time.current)
UserMailer.activation_success(user).deliver_later
end
end
✅ Ідемпотентний підхід (з урахуванням конкурентності)
Ми робимо умовне оновлення на рівні бази даних через update_all. Метод update_all повертає кількість оновлених рядків (1 або 0). Якщо рядок вже був оновлений іншим паралельним потоком, ми просто виходимо, не відправляючи лист повторно.
class ActivateUser
def call(user)
# Оновлюємо лише якщо active ще false (атомарна операція)
updated_rows = User.where(id: user.id, active: false)
.update_all(active: true, activated_at: Time.current)
return if updated_rows.zero?
# Лист відправиться ОДИН раз, навіть при паралельних запитах
UserMailer.activation_success(user).deliver_later
end
end
Важливо для інтерв‘ю та код-рев‘ю: Ідемпотентність гарантує незмінність стану системи, а не повернутого значення (return value). У другому прикладі перший виклик поверне об’єкт листа, а повторний — nil. Це абсолютно нормально і не порушує ідемпотентність.
TikTok | Instagram | Telegram
🔥4👍1
Друзі, чи ловили ви себе на думці: «Треба відкладати гроші, але як це робити правильно»?
Сьогодні особливо важливо не просто заробляти, а й будувати фінансову безпеку. Навіть невеликі, але регулярні кроки можуть дати результат у майбутньому.
👩💼 Наша фінансова експертка Юлія розповідає, як правильно відкладати гроші, з чого почати інвестувати та як сформувати стратегію, яка працюватиме саме для вас.
📥 Почитайте та збережіть цей гайд. Коли вирішите серйозно зайнятися своїми фінансами — ще подякуєте собі.
#codica_articles
TikTok | Instagram | Telegram
Сьогодні особливо важливо не просто заробляти, а й будувати фінансову безпеку. Навіть невеликі, але регулярні кроки можуть дати результат у майбутньому.
👩💼 Наша фінансова експертка Юлія розповідає, як правильно відкладати гроші, з чого почати інвестувати та як сформувати стратегію, яка працюватиме саме для вас.
📥 Почитайте та збережіть цей гайд. Коли вирішите серйозно зайнятися своїми фінансами — ще подякуєте собі.
#codica_articles
TikTok | Instagram | Telegram
👍5🔥4
Ще одна важка ніч позаду… Друзі, ви як?
Тримаємось разом і спрямовуємо нашу лють у правильне русло — підтримуємо армію донатами 🇺🇦
Тримаємось разом і спрямовуємо нашу лють у правильне русло — підтримуємо армію донатами 🇺🇦
💯5
Друзі, ми багато говорили про те, як створювати, копіювати та ефективно працювати з обʼєктами в JavaScript 😎
Але що робити, якщо обʼєкт уже створений і тепер головне завдання — не дати нікому випадково його зламати?
Тут у гру вступають Object.freeze(), Object.seal() та Object.preventExtensions(). Назви знайомі багатьом, але різниця між ними часто стирається в памʼяті навіть у досвідчених розробників 👇
✨ Protecting Objects in JavaScript — freeze, seal чи preventExtensions?
Гортайте картки — розберемося, коли який метод доречний і чим вони відрізняються на практиці.
#codica_advice
Попередні пости рубрики:
📍 5 Important Object Methods in JavaScript
📍 Iteration Patterns
📍 Shallow vs Deep Copy in JavaScript
📍 Object vs Map in JavaScript — коли що використовувати?
TikTok | Instagram | Telegram
Але що робити, якщо обʼєкт уже створений і тепер головне завдання — не дати нікому випадково його зламати?
Тут у гру вступають Object.freeze(), Object.seal() та Object.preventExtensions(). Назви знайомі багатьом, але різниця між ними часто стирається в памʼяті навіть у досвідчених розробників 👇
✨ Protecting Objects in JavaScript — freeze, seal чи preventExtensions?
Гортайте картки — розберемося, коли який метод доречний і чим вони відрізняються на практиці.
#codica_advice
Попередні пости рубрики:
📍 5 Important Object Methods in JavaScript
📍 Iteration Patterns
📍 Shallow vs Deep Copy in JavaScript
📍 Object vs Map in JavaScript — коли що використовувати?
TikTok | Instagram | Telegram
✍4