Easy Dev
77 subscribers
100 photos
45 videos
4 files
61 links
Download Telegram
Про имена переменных: боль, которая лечится

Назвал переменную x, через два дня сам не понял, что там лежит. Знакомо?

Как надо:

· user вместо us.
· getUserById вместо getUsr.
· isActive вместо activeFlag.

Три простых принципа:

· Имя должно быть понятно без контекста. Если читаешь строчку через месяц — всё должно быть ясно.
· Одно слово — одна идея. Не впихивай всё в одно название.
· Используй глаголы для функций: get, send, calculate, validate.

Пример разницы:

Было: d — непонятно.
Стало: deliveryDate — понятно.

Было: procData() — что значит proc?
Стало: processUserOrders() — сразу ясно.

Почему это важно:

Ты пишешь код для людей. Компьютеру всё равно. Человек тратит время на чтение. Облегчи ему это.
👍2
Вопрос дня 🧐
Если бы вы могли удалить одну технологию из мира IT, что бы это было?
🤔1
Прошла уже неделя учебы 🫠
Делитесь: кто жив, кто поступил, или уже закончил и работает по полной
Media is too big
VIEW IN TELEGRAM
Всем программистам посвящается 🌬
😨2🔥1🥰1
Про отладку: как найти баг и не сойти с ума

Баг есть, но не понятно где.

Что делать по шагам:

· Воспроизведи баг. Если не можешь повторить — не можешь починить. Запиши шаги: что нажал, что ввёл, что получил.
· Сузь круг. Баг в одном месте или везде? Работает на локалке, но не на сервере? Это уже подсказка.
· Читай логи. В логах часто написано прямо: какая ошибка, в каком файле, на какой строке.
· Ставь точки останова. Пройди по коду шаг за шагом. Смотри, где значение становится не тем, каким должно быть.
· Меняй одну вещь за раз. Поменял два параметра сразу — не поймёшь, что помогло.

Частые причины багов:

· Данные пришли не те, что ожидал.
· Не учёл пустое значение или null.
· Гонка: два процесса лезут в одно и то же.
· Работает у тебя, но не работает у другого — разные версии, настройки, окружение.

Что не помогает:

· Менять код наугад и надеяться.
· Писать print через каждую строчку и потом их забывать удалять.
❤1
С 256-м днём года.
Пусть код работает, дедлайны не горят, а багов в проде не будет.

С праздником💻🥳
🎉3
Вопрос дня 🧐
Какую технологию вы боитесь учить, но знаете, что она нужна?
Про базы данных: что нужно знать каждому

База — это сердце приложения. Если она тормозит — тормозит всё.

Что важно понимать:

· Индексы. Без них поиск по большой таблице — это перебор всех строк. С ними — быстро. Но не ставь индекс на всё подряд. Каждый индекс замедляет запись.
· Запросы. Не тяни SELECT *, если нужны две колонки. Не делай запрос в цикле, если можно одним запросом получить всё.
· Связи. Если данные связаны — используй внешние ключи. Иначе получишь заказы без пользователей и мусор в базе.
· Транзакции. Если делаешь несколько операций, которые должны выполниться вместе — оборачивай в транзакцию. Иначе половина пройдёт, половина нет.

Что убивает базу:

· N+1 запросов. Когда в цикле по 100 элементов делаешь 100 запросов вместо одного.
· Отсутствие лимитов. SELECT * FROM users без ограничений на миллионе строк.
· Долгие транзакции. Держишь блокировку — все ждут.
❤1👍1
Вопрос дня 🧐
Вспомните проект, который вы бросили на середине. Почему?
Про тесты: зачем они нужны на самом деле

Три причины писать тесты:

· Чтобы не бояться менять код.

· Чтобы не ловить баги на продакшене.

· Чтобы помнить, как всё должно работать.

Какие бывают:

· Модульные.
Проверяют одну маленькую функцию. Быстрые, запускаются за секунды.

· Интеграционные.
Проверяют, как части системы работают вместе.

· Сквозные.
Проверяют весь путь от начала до конца.

Что тестировать не надо:

· Геттеры и сеттеры.

· Код, который просто вызывает чужую библиотеку.

· Всё подряд.
Вопрос дня 🧐
Какой самый странный код вы видели в чужом репозитории?