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

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

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

👉 Відкриті вакансії - www.codica.com/careers
Download Telegram
50+ безпечних формулювань, щоб уникнути проблем з банками та податковою

👉 Ми вже публікували, що писати в призначенні платежу у нашій попередній статті від бухгалтерки Юлії.

📌 Але цього разу – ще практичніше.

Ми підготували понад 50 корисних формулювань
для різних ситуацій – у форматі зручних слайдів,
щоб ви могли зберегти собі та використовувати щодня.

👉 Гортайте слайди нижче або збережіть собі.
У кінці – поради, що не варто писати.


#codica_advice

TikTok | Instagram | Telegram
🔥4👀1
Агов, друзі! До вашої ранкової кави ми підготували ще 5 побутових антипатернів у Rails, які здаються «ок», але потім болять 🎯

👉 Ці помилки часто роблять навіть досвідчені розробники – просто через спішку або звичку.
👉 Саме з таких дрібниць починається legacy 🤷

📌 Якщо ще не читав перші частини – обов’язково знайди в каналі:
🔘 частина 1 – про fat controller, god model, default_scope
🔘 частина 2 – про погано організовану бізнес-логіку

👇 Тож лови корисний чек-лист
4
1. Логіка прямо в
routes.rb

Rails.application.routes.draw do
get "/hello", to: ->(env) { [200, {}, ["Hello, world!"]] }
end


Проблема:
- Неочевидна поведінка
- Жодної авторизації
- Неможливо переюзати логіку

Краще:
get "/hello", to: "welcome#hello"

Вся логіка в контролері, як і має бути 😉

2. Валідації тільки на фронтенді
<%= form.text_field :email, required: true %>


Проблема:
- Користувач обійде через Postman
- У базу потрапить сміття

Краще:
class User < ApplicationRecord
validates :email, presence: true, format: { with: URI::MailTo::EMAIL_REGEXP }
end

Фронт – це для UX, бек – для безпеки й чистоти даних 🛡️

3. Відсутність strong parameters
def update
@user.update(params[:user])
redirect_to @user
end


Проблема:
- Масове призначення (admin: true)
- Пряма вразливість у продакшені

Краще:
def update
if @user.update(user_params)
redirect_to @user
else
render :edit
end
end

private

def user_params
params.require(:user).permit(:name, :email)
end

Strong params – твій маленький щит безпеки

4. Створення даних у міграціях
class AddDefaultUsers < ActiveRecord::Migration[7.0]
def change
User.create!(name: "Admin", email: "[email protected]")
end
end


Проблема:
- Моделі змінюються, міграції – ні
- Через рік це просто впаде

Краще:
# seeds.rb або окрема rake task
User.create!(name: "Admin", email: "[email protected]")

Міграції – тільки про схему. Дані – окремо. 📊

5. HTML у контролерах
def index
render html: "<h1>Hello</h1>".html_safe
end


Проблема:
- Повне змішування шарів
- Неможливо масштабувати

Краще:
<!-- app/views/welcome/index.html.erb -->
<h1>Hello</h1>

Розділення логіки, представлення та даних – не просто принцип, а запорука виживання 💪

Висновок:
Rails дозволяє писати швидко, але це не завжди значить правильно. Пиши чисто одразу. Бо завтра це може редагувати твій колега. Або ти сам.

Хочеш ще антипатернів – кидай + в коментарі

#codica_advice

TikTok | Instagram | Telegram
🔥3👍1
Що виведе цей код?
Anonymous Quiz
7%
:b
6%
1
78%
2
9%
Помилка
Що буде виведено в консоль?
Anonymous Quiz
20%
ReferenceError
11%
3
20%
4
49%
7
Друзі, ну такого ви точно не очікували 😱
Ми запустили новий формат на YouTube – і перше відео одразу про найболючіше:
зарплати в ІТ у 2025 💸

👉 Чи справді айтішникам у 2025 платять багато?
👉 І чому більшість цих грошей до тебе не долітає?

Ми зібрали факти, міфи та іронію, щоб чесно розповісти, що зараз відбувається з ринком.
Повірте, це відео ви додивитесь до кінця.

👉 Ловіть лінк і дивіться
Гарного перегляду!

TikTok | Instagram | Telegram
🔥2
Навіщо JavaScript-тестування і що таке Cypress?

👉 Коли ваш проєкт росте, кількість коду збільшується в рази. Одне невелике оновлення може «поламати» зовсім іншу частину програми.

👉 І саме тут тести стають вашим страхуванням від багів.

#codica_advice
2
Чому саме Cypress?
Є безліч фреймворків для тестів у JS (Jest, Mocha, Playwright), але для end-to-end тестів сьогодні найбільше використовують Cypress. Це інструмент, який дозволяє симулювати поведінку реального користувача у браузері.

Що робить Cypress зручним?
🖥️ Тести у браузері
Ви бачите на власні очі, як відкривається сторінка, заповнюється форма й клікаються кнопки. Це схоже на «живу» перевірку.

🎛️ Візуальний інтерфейс
Не просто консоль, а цілий UI: можна поставити паузу, прогорнути виконання крок за кроком і подивитись, де саме тест впав.

📸 Скріншоти та відео
Якщо тест ламається на CI, Cypress робить знімок екрану або відеозапис. Зручно для відлагодження.

Гнучкість
Однаково добре працює з React, Vue, Angular та навіть з бекендом, якщо треба тестувати API.

Автоматичне очікування
Не потрібно писати
sleep()

– Cypress сам чекає, поки елемент з’явиться у DOM.

Мінімальний приклад
// cypress/e2e/login.cy.js
describe('Login flow', () => {
it('користувач може увійти', () => {
cy.visit('/login')
cy.get('input[name=email]').type('[email protected]')
cy.get('input[name=password]').type('Password1!')
cy.contains('Sign in').click()
cy.contains('Welcome').should('be.visible')
})
})

🔍 У цьому прикладі Cypress «грає роль» користувача:
- відкриває сторінку
/login

- вводить email і пароль,
- клікає кнопку «Sign in»,
- перевіряє, що на екрані з’явився текст «Welcome».

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

💬 А ви вже пробували Cypress у своїх проєктах, чи поки що користуєтесь тільки unit-тестами на Jest/Mocha?

Гарних вихідних, відпочиньте та набирайтеся сил!

#codica_advice

TikTok | Instagram | Telegram
🔥5
👋 Друзі, давайте чесно: всі ми бачили ці фільми. Деякі – навіть не один раз. Але ж хіба погано освіжити пам’ять?

#codica_weekend

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

👉 Тож зібрали для вас нашу суб’єктивну десятку фільмів і серіалів про програмістів.

А тепер цікаво: який фільм чи серіал ви з цього подивились? Діліться у коментарях!

TikTok | Instagram | Telegram
🔥41
Англійська за мемами😜
👉Говоримо красиво

📍 regular - регулярний, звичний, нормальний
📍 anxious - тривожний

#codica_english

TikTok | Instagram | Telegram
😁61