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

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

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

👉 Відкриті вакансії - www.codica.com/careers
Download Telegram
🙄 Клони Spotify і Todo-додатки вже в печінках у рекрутерів і тімлідів.

#codica_articles

Якщо хочеш виділитися з сотень однакових резюме, твій пет-проєкт має пахнути реальним комерційним продакшном, а не сороковою серією туторіалу з YouTube.

Ми вже розбирали, як джуну робити pet-проєкти, які виглядають як досвід. А тепер продовжуємо тему на практиці 👇

Ми зібрали 5 ідей pet-проєктів, які одразу покажуть, що ти вмієш думати як інженер, а не сліпо копіювати код.

Читай у картках та обов'язково пересилай другу, якому якраз час оновити свій портфель проєктів!

TikTok | Instagram | Telegram
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
Практика Rails: Розумний семантичний пошук через PostgreSQL & ActiveRecord

#codica_advice

Чи бувало у вас таке: замовник приходить і каже: “Нам терміново потрібен AI-пошук у проекті!“, а ви вже уявляєте новий деплой, налаштування Pinecone або Qdrant, додатковий бюджет і головний біль з інфраструктурою?

Спокійно! Знайшли для вас елегантне рішення, яке дозволяє реалізувати семантичний векторний пошук без жодної нової бази даних — прямо у вашому звичному PostgreSQL.

Більшість продуктів зараз додають AI-фічі, але підключати окремі векторні бази даних (Pinecone/Qdrant) — це зайвий деплой, гроші та інфраструктура.

Якщо у вас вже є PostgreSQL, проблему вирішує розширення pgvector та гем pgvector-ruby
Як це працює на практиці за 4 кроки:

1️⃣ Додаємо гем та вмикаємо розширення:


# Gemfile
gem “pgvector”

Створюємо міграцію:
class EnablePgvector < ActiveRecord::Migration[7.1]
def change
enable_extension “vector”
end
end


2️⃣ Додаємо векторну колонку до моделі:


class AddEmbeddingToProducts < ActiveRecord::Migration[7.1]
def change
# 1536 — розмірність для стандартних векторів OpenAI (text-embedding-3-small)
add_column :products, :embedding, :vector, limit: 1536
end
end


3️⃣ Підключаємо магію в ActiveRecord:


class Product < ApplicationRecord
has_neighbors :embedding
end


4️⃣ Робимо семантичний пошук у коді:


# Отримуємо вектор від AI для пошукового запиту “теплий худі на зимову погоду”
user_vector = OpenAIClient.embed(“теплий худі на зимову погоду“)

# Шукаємо найближчі товари за косинусною відстаню прямо через SQL:
@nearest_products = Product.nearest_neighbors(:embedding, user_vector, distance: “cosine”).first(5)


🔥 Чому це круто:
• Жодних сторонніх сервісів — все всередині вашої Postgres.
• Повна підтримка стандартних з’єднань, scope та фільтрів ActiveRecord.
• Легко масштабується до мільйонів записів за допомогою HNSW індексів.

А ви вже пробували впроваджувати векторний пошук у своїх Rails-проектах чи поки використовуєте звичайний Full-Text Search? 👇

TikTok | Instagram | Telegram
👍3
Друзі, ми багато говорили про те, як створювати, копіювати та ефективно працювати з обʼєктами в JavaScript 😎

Робота з обʼєктами в JavaScript давно не обмежується keys() чи entries(). Сучасний синтаксис дозволяє писати коротше, читабельніше і без зайвих перевірок — особливо коли дані приходять з API або структура обʼєкта може змінюватися.

Ці кілька “маленьких” можливостей мови часто недооцінюють, хоча саме вони роблять production-код акуратним і зрозумілим 👇

✨ Modern Object Tricks in JavaScript — маленькі речі, які роблять код чистішим

Гортайте картки — розберемося, коли який метод доречний і як писати ефективніше.

#codica_advice

Попередні пости рубрики:
📍 5 Important Object Methods in JavaScript
📍 Iteration Patterns
📍 Shallow vs Deep Copy in JavaScript
📍 Object vs Map in JavaScript — коли що використовувати?
📍 Protecting Objects in JavaScript — freeze, seal чи preventExtensions?

TikTok | Instagram | Telegram
🔥3
🚨 ХТО ЗНОВУ ЗЛАМАВ СТЕЙДЖ? НОВИЙ IT-ДЕКТЕКТИВ! 🚨

Друзі, у нас в компанії черговий релізний форс-мажор. Чотири спеціалісти працювали над фічами, але хтось один завантажив сирий код і повністю поклав стейджинг-сервер 😱

Наш PM зібрав первинні логи та записав кілька фактів. Допоможіть знайти винуватця, визначивши для кожного: Роль, Мову/Інструмент та їхній єдиний головний факап.

📋 Команда та ресурси:
Андрій, Марія, Сергій, Олена.

Ролі:
Backend, Frontend, QA, PM.

Мови та Інструменти:
Python, JavaScript, Jira, Postman.

Факапи:
Поклав стейдж, Забув дедлайн, Видалив ліда з CRM, Створив 50 merge conflicts.

Відомо, що:
Андрій працює з Python.
Марія — QA.
QA працює в Postman і не ламала стейдж.
PM веде задачі в Jira і саме він забув дедлайн.
Олена — не Frontend і не QA.
Сергій — не Backend і не PM.
Frontend працює з JavaScript і саме він поклав стейдж.
Backend створив 50 merge conflicts.

🤔 Хто поклав стейдж? Яка у нього роль та інструмент?
Пишіть у коментарях ім’я винуватця 👇


TikTok | Instagram | Telegram
👀2
Що буде виведено в консоль?
Anonymous Quiz
7%
2 undefined
26%
3 undefined
56%
2 3
11%
3 null