Codica - корисне про IT
2.09K subscribers
3.29K photos
171 videos
52 files
1.69K links
Привіт, друже, це канал про корисності в ІТ🤘

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

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

👉 Відкриті вакансії - www.codica.com/careers
Download Telegram
🚀 QA у 2026: як не залишитися позаду?

#codica_articles

Тестування вже давно не обмежується чеклістами та баг-репортами. AI, автоматизація, API, безпека, перформанс — ринок змінюється, і QA має змінюватися разом із ним.

З чого почати розвиток? Які навички справді варто прокачувати? І що буде цінуватися роботодавцями найближчими роками?

У новій статті наш QA Lead Олексій ділиться своїм баченням розвитку QA Engineer у 2026 році — читай у картках!

TikTok | Instagram | Telegram
🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
Друзі, дивіться, що ми знайшли 👀

Є цікавий спосіб зекономити до 60% токенів при роботі з AI-моделями 🤯

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

Мультимодальні моделі читають такі зображення доволі ефективно, а оплата йде за роздільну здатність картинки, а не за кількість тексту всередині. Тобто великий шматок тексту можна буквально «запакувати» в PNG і суттєво скоротити витрати.

Для цього використовують інструмент pxpipe:
▫️ конвертує промпти, документацію та старий контекст у зображення;
▫️ залишає нові повідомлення у звичайному текстовому форматі;
▫️ допомагає зменшити витрати на токени приблизно на 60–70% залежно від задачі.

За словами автора, в одному з прикладів вартість сесії вдалося знизити з $42 до $6 без помітної втрати якості роботи моделі.
Ділимося знахідкою, бо тема справді цікава 🔥

Автор: Павло Лисий 🙌

TikTok | Instagram | Telegram
👍2🔥1
Друзі, а у вас бувало таке, що дивишся на розвʼязання задачі в Python і JavaScript — і ніби логіка однакова, а код виглядає так, ніби його писали люди з різних світів? 😄

У цьому й одна з найцікавіших відмінностей між мовами. Python часто робить ставку на лаконічність і читабельність, тоді як JavaScript дає більше свободи у виборі підходів та побудові рішень.

Тож продовжуємо нашу рубрику Python vs JavaScript 👇

⚔️ Python vs JavaScript — Code Style Battle

#codica_advice

Попередні частини:
📍 Python vs JavaScript — Part 1
📍 Python vs JavaScript — Part 2
👀3
1) Витягнути імена користувачів

Python:

names = [user["name"] for user in users]


Пояснення:
List comprehension — класичний Python-патерн.
Читається як природна мова: “візьми name для кожного user”.

JavaScript:

const names = users.map(user => user.name);


Пояснення:
map() — частина functional style у JS.
Часто використовується разом з іншими методами в ланцюжках.

2) Відфільтрувати активних користувачів

Python:

active = [u for u in users if u["active"]]


Пояснення:
Один вираз — одразу новий список.
Мінімум синтаксичного шуму.

JavaScript:

const active = users.filter(u => u.active);


Пояснення:
filter() повертає новий масив.
Зручно комбінувати з map() або reduce().

3) Безпечний доступ до поля

Python:

name = user.get("name", "Guest")


Пояснення:
dict.get() — стандартний спосіб уникнути KeyError.
Часто використовується при роботі з API-даними.

JavaScript:

const name = user?.name ?? "Guest";


Пояснення:
Optional chaining + nullish coalescing — сучасний синтаксис JS.
Дозволяє уникати довгих перевірок if.

4) Асинхронний виклик

Python:

async def fetch_data():
await api_call()


JavaScript:

async function fetchData() {
await apiCall();
}


Пояснення:
Обидві мови підтримують async/await.
JS історично сильніший у UI та event-loop задачах, Python — у backend і automation.

Чому це виглядає як “батл”?
🔹 Python часто прагне максимальної простоти читання.
🔹 JavaScript прагне універсальності та композиції функцій.
🔹 Python-деви іноді кажуть, що JS “перевантажений синтаксисом”.
🔹 JS-деви відповідають, що Python “занадто обмежує стиль”.

📌 Висновок
Це не битва мов — це битва code style.
І багато сучасних команд спокійно поєднують Python на backend і JavaScript на frontend.

💬 А який стиль коду вам ближчий — Python чи JavaScript?

TikTok | Instagram | Telegram
🔥3
Друзі, скільки разів на мітингу хотілося пояснити свою думку англійською, але в голові крутилося лише: “It depends”? 😅

Щоб почуватися впевненіше під час обговорення технічних рішень, ловіть добірку корисних фраз 👇

#codica_english

🔹 Обговорення технічних рішень

💬 “From a technical standpoint, this could be challenging.”
З технічної точки зору це може бути складно.

💬 “We’re considering a more scalable solution.”
Ми розглядаємо більш масштабоване рішення.

💬 “This approach should improve performance.”
Цей підхід має покращити продуктивність.

💬 “There are some trade-offs we need to consider.”
Є певні компроміси, які треба врахувати.

🔹 Проблеми та ризики

💬 “We’ve identified a potential bottleneck.”
Ми виявили можливе вузьке місце.

💬 “There’s a risk this could break existing functionality.”
Є ризик, що це зламає існуючий функціонал.

💬 “We’re currently investigating the issue.”
Ми зараз досліджуємо проблему.

💡 Зберігайте собі в закладки!

TikTok | Instagram | Telegram
❤‍🔥4❤1🔥1
Що виведе цей код?
Anonymous Quiz
20%
nil
9%
false
11%
true
60%
5
Що буде виведено в консоль?
Anonymous Quiz
24%
1 2 3
44%
3 1 2
16%
3 2 1
16%
1 3 2
Друзі, а у вас бувало таке, що все чудово працює на локалці, а в продакшені сторінка раптом починає «думати» значно довше? 😅

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

Продовжуємо нашу серію про типові проблеми продакшену 👇

Попередні пости серії:
📍 Rails без магії: 7 помилок, які роблять навіть мідли
📍 Background jobs: чому “просто Sidekiq” — не завжди просто
📍 Transactions у Rails: чому “і так працює” — небезпечна ілюзія
📍 DB constraints: чому Rails validation — це не гарантія
📍 Fat model / Fat controller: коли клас росте швидше за проєкт

#codica_advice
N+1: коли все працює… поки не з’являються реальні дані

Якщо сторінка відкривається за 50 ms на локалці, але падає в продакшені — дуже часто це N+1.

Rails робить асоціації зручними.
І саме ця зручність іноді дорого коштує.

Ми всі через це проходили 🙂

Класичний приклад

users = User.all
users.each do |user|
puts user.posts.count
end


Здається невинно.
Але під капотом:
1 запит за всіма users
N запитів за posts для кожного user

Якщо користувачів 200 — це вже 201 SQL-запит.

Чому це небезпечно
🔹 Проблема не помітна на маленьких даних
🔹 Логи виглядають “нормально”
🔹 Ламається тільки під навантаженням
🔹 Важко відловити без моніторингу

N+1 — це не баг. Це “тиха деградація”.

Як це виправити?

1️⃣ includes

users = User.includes(:posts)


Rails зробить 2 запити замість N+1.

2️⃣ preload vs eager_load
includes — універсальний варіант
preload — окремі запити
eager_load — JOIN

Іноді JOIN краще, іноді — ні. Треба дивитись у SQL.

3️⃣ counter_cache
Якщо ви лише рахуєте:

add_column :users, :posts_count, :integer, default: 0


І:

belongs_to :user, counter_cache: true


І більше ніяких .count у циклі.

4️⃣ Дивитись у EXPLAIN
Якщо не дивишся в SQL — ти не контролюєш продуктивність.

Маленьке правило
Якщо в коді є .each + асоціація — перевір, скільки запитів реально виконується.

💬 Хто ловив N+1 уже після релізу? І через що помітили — Sentry, NewRelic чи “клієнт написав”? 😄

TikTok | Instagram | Telegram
🔥3👀1
Коли робочий тиждень позаду, у Mr. Cody прокидається внутрішній кутюр’є ✨

Наш маскот приміряв традиційні костюми різних країн. Ну який же він у нас гарнюня 🫶 (Окрім одного персонажа з унітазами, але то окрема клінічна історія 🫠)

Який образ Містера Cody залетів вам у саме серце?

Став реакції:
❤️ — за розкішний український аутфіт!
🔥 — за стильні європейські костюми!
🗿 — за «стиль болота» в окремому бліндажі!

TikTok | Instagram | Telegram
❤4👍1🌚1
Друзі, всім ясного та допитливого вихідного 🔬

#codica_weekend

Зібрали для вас підбірку про науку. Ідеально, щоб залипнути з користю 🧠

➡️ 25 за 25: найбільші наукові відкриття ХХІ сторіччя і що далі до 2050?
Геном, CRISPR, AlphaFold, чорні діри і термоядерка — концентрат науки, після якого трохи інакше дивишся на світ і майбутнє.
⏱ Тривалість — 34 хв

➡️ Людина, яка відкрила антиматерію [VERITASIUM]
Історія відкриття, яке звучить як sci-fi, але стало реальною наукою — дуже захоплює і пояснює складне простими словами.
⏱ Тривалість — 34 хв

➡️ Чому часові пояси такі дивні?
Після цього відео ви нарешті зрозумієте, чому світ живе в такому хаосі часу і чому все могло бути значно простіше 😄
⏱ Тривалість — 27 хв

Нехай ці вихідні будуть з новими відкриттями, гарним настроєм і хоча б однією відповіддю на питання “як це працює?” ☕

TikTok | Instagram | Telegram
🔥2