БАГодельня
2.23K subscribers
192 photos
2 videos
130 links
Канал про разработку и безопасность: код, костыли, разбор задач, ревью и размышления.

Вещает руководитель отдела разработки: @ipatove
Download Telegram
Channel created
🟢 МЕНЮ


📖 Посты:

#БазаЗнаний — примеры кода,

#КодРевью — разбор кода,

#Мысли — короткие заметки,

#Статьи — длинные публикации,

#Костыли — не стандартные решения,

#Кейсы — разбор ситуаций,

#НашиРазработки — готовые решения от нашей команды,

#Юмор — юмористические заметки,

#Топ5Месяца — 5 самых популярных постов за месяц.


👨‍💻 Об авторе

Привет! Меня зовут Ипатов Евгений, занимаюсь коммерческой IT-разработкой с 2011 года. Поработал на должностях от тестировщика и джуна до тимлида и техдира. CTO с 2021 года. На канале делюсь кодом, его разбором, интересными и не стандартными решениями, нашими внутренними инструментами и наработками, а так же своими мыслями и заметками на тему разработки.

Работаю тут: 🤝OWL agency
Связаться со мной: 💬@ipatove
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Привет!
Вы на канале «БАГодельня», который посвящен web-разработке и всему, что с ней связано: код; решение интересных задач, которые встречаются в повседневной работе; не стандартные «костыли»; туториалы и небольшие наработки; описание и презентация наших open source разработок; мысли и рассуждения на тему разработки; и просто баловство – курьезные ситуации и шуточные разработки.

Меня зовут Женя, я техдир в компании, которая занимается заказной разработкой, дизайном и рекламой. С 2013 по 2018 год активно вел блог на тему программирования: ссылка. Но работы и обязанностей со временем стало больше, когда из разработчика перешел на должность тимлида и потом руководителя отдела. Тратить несколько дней на написание больших статей уже нет возможности. Да и скорость восприятия информации, при серфинге интернета, сильно поменялась – спрос на развернутые статьи с полноценным описанием проблематики стал меньше. Короткие и четкие ответы на вопросы, небольшие заметки, 10-секундные видео и т.д. вытесняют старый формат длинных постов или полуторачасовых лекций. Это не плохо и не хорошо, просто по-другому, все меняется и нет ничего статичного и вечного.
С 2018 года прошло не мало времени, но интерес и тяга к публикации мыслей и наработок никуда не ушли. Даже пяток статей удалось написать за эти пять лет. Но это не дело – постить по одной статье в год, рассказать и показать хочется побольше и почаще. Поэтому из сайта-блога мое вещание переезжает в телеграм-канал. В телеграме идеальный формат, как мне кажется, для быстрого обмена информацией и опытом. Посмотрим, что из этого получится. Поехали!

#Мысли
Пока канал без подписчиков, можно и похалтурить немного, не писать новый текст 😁.
Вспомнил прошлогоднюю статью на Хабре, про одну из наших разработок — telegram-бота «Железный Феликс». Бот по сей день исправно работает и выполняет все свои функции, даже немного расширил свои возможности:
— проверка работы всех клиентских сайтов и уведомление, если сайт упал
— счетчик часов без падений сайтов
— появились дополнительные уведомления о лимите плановых часов на день
— сбор отчетов по времени переработок
— добавился мониторинг выполнения ночных бекапов

Ссылка на статью: https://habr.com/ru/articles/657863/

#Статьи
🔥2
🤖Bash-скрипт для переноса файлов с сервера на Яндекс Диск

Может пригодиться для сохранения бекапов или просто переноса больших архивов с сервера на Яндекс Диск, без предварительного скачивания на компьютер.


❗️В реализации помогут несколько трюков:

Трюк 1.
Ускорение загрузки файла на Яндекс Диск.
Если через api Яндекса заливать большие и тяжелые архивы, то скорость сильно замедляется. Есть предположение, что Яндекс умышленно это делает, чтобы не автоматизировать сохранение бекапов на диске, поскольку под бекапы у Яндекса есть отдельный облачный сервис, который стоит дороже классического облака. Но это не точно. Может быть связано и с проверкой содержимого архива. Но так или иначе, скорость заливки архивов в 7-10 раз медленней, чем одного большого файла.
Экспериментальным путем удалось обойти это замедление. Достаточно подменить расширение файла и скорость заливки кратно увеличивается. То есть, если файл бекапа называется file_name.tar, достаточно изменить расширение на file_name.123tar.

Трюк 2. Получение OAuth-токена «руками».
Чтобы не мудрить и не тратить время на реализацию авторизации, достаточно получить токен «руками». Прямо через браузер. Токен будет полностью рабочим, без ограничений и не имеет периода жизни – вечный, пока не отозвать или сменить пароль на аккаунте.
Такой способ подробно описан в официальной документации Яндекса: ссылка.


✏️ Ссылка на готовый скрипт: скачать.

Инструкция по эксплуатации:
1. В скрипте меняем значения переменных: FILENAME, FILEPATH, TOKEN и FOLDERDISK
2. Заливаем скрипт на сервер
3. Подключаемся по ssh, заходим в папку со скриптом и делаем файл исполняемым: chmod -x yaDisk.sh
4. И запускаем скрипт: ./yaDisk.sh

#БазаЗнаний
Code Review метода расчета 5% кешбека.
Код всего пять строк, но пример интересный, есть что разобрать и пояснить, как исправить и улучшить.

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

🔴 Критическая ошибка.
Потерялся нолик и кешбек стал 50%. 5% от заказчика и еще сверху 45% — бонус от разработчика.
Нужно исправить расчет, умножение должно быть на 0.05, чтобы получалось 5%, а не 50.

🟡 Можно доработать.
Значение процента удобнее и логичней вынести в глобальный конфиг, чтобы при изменении условий процента скидки, можно было быстро изменить 0.05 на любое другое значение.

🟢 Пояснение, как сделать совсем хорошо.
В идеале вообще в базу данных перенести хранение размера процента кешбека. И добавить флаг, который включает и выключает кешбек. Тогда в код совсем не придется заходить, при изменениях в стратегии маркетинга. Достаточно изменить значения в базе данных: "руками" в БД или через админку.
Но это не большой проект, админки нет и надобности регулировать скидку каждый день тоже нет. Поэтому достаточно и конфига — так сократим время и соответсвенно стоимость реализации. В то же время код и логика не пострадают, и на возможность расширения логики это тоже не повлияет.

#КодРевью
👍31