DON'T STOP AND CODE – Telegram
DON'T STOP AND CODE
103 subscribers
58 photos
2 videos
1 file
119 links
Мой путь в программировании
#python

Для связи: @avagners
Download Telegram
Продолжаю изучать базы данных...

Реляционная модель данных обеспечивает поиск по значениям (ассоциативный поиск). Что способствует работе с набором объектов данных.

Для более ранних моделей данных (иерархическая и сетевая) характерны навигационный способ доступа (от одного объекта к другому по ссылке) и ориентация на обработку отдельных объектов.

Обработка отдельных записей и навигация не может обеспечить эффективную массовую обработку данных. Поэтому на их смену пришли реляционные системы.

Интересный момент, который я раньше не осозновал.
🔻🔻🔻🔻

Популярность в последнее время NoSQL систем связана с отказом от массовой обработки данных на уровне базы данных.
🔥3👍1
Критерии эффективности и требований к базам данных.

В 70-е годы считали важным эффективность доступа к отдельным объектам и навигации между ними.

Начиная с 80-х годов, начали считать эффективным другое, а именно массовость обработки данных и поиск значений по атрибутам (ассоциациативный поиск).

Именно поэтому произозошло массовое распространие реляционной модели данных.
👍3
Вот это новости)

Не таблицы, а отношения.
Не колонки, а атрибуты.
Не строки, а кортежи.

Вот такие термины используются в реляционной алгебре.
😁1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
😁1
Всем привет! Последние недели в основном занят работой.
За это время:
- завершил 3 задачи по настройке обмена данными с поставщиком;
- научился формировать документы xml на стороне ms sql server и на стороне python и отправлять их по ftp;
- лучше осваиваю airflow;
- принимаю проект от другого разработчика по загрузке данных от клиентов;

Подробнее о проекте.
Клиенты высылают свои данные в различных форматах на почту. Задача настроить автоматическую загрузку в нашу базу. За это время научился работать с почтой с помощью модуля imap, считывать данные из почты, преобразовывать их в нужный датафрейм и загружать данные в базу.
Получаю большое удовольствие от автоматизации. Один раз подключаешь клиента и данные ежедневно загружаются в нашу базу без какого-либо участия. =)
👍5
Также,
- завершается обучение в Яндекс.Практикум. Начал писать дипломный проект;
- поправил профили в linkidIn, hh - указал актуальное место работы;
- звонили рекрутеры из Армении) Предлагали работу с релокацией. Говорили, что у них тепло и вкусно)

Важно! Кажется я определился с направлением в разработке.
Это работа с данными - ETL Development / Data Engineering.

За время работы понял, что это увлекательное и востребованное направление.
👍6
"Задача, стоящая перед программистом, - это интеллектуальный вызов высочайшего ранга."
Эдсгер Дейкстра
🔥5
А как вы проводите субботу? 😅
🔥4
Суббота. Ноутбук. Дипломная работа.

Осталось совсем немного дописать API проекта. :)
👍4👏2
🔥🔥🔥Завершил курс "Python-разработчик" на ЯП.🔥🔥🔥

*Ознакомиться с кодом дипломной работы можно по ссылке: https://github.com/avagners/foodgram-project-react

Итого был пройден путь в 10 месяцев. Очень рад завершению обучения.

На нем я научился:
- писать довольно чистый код, который соответствует стандарту PEP8;
- оформлять README файлы в репозиториях проектов;
- создавать API и работать с ним;
- писать тесты;
- создавать бэкенд на Django;
- работать с Docker;
- делать деплой проектов на сервер;
- настраивать CI/CD;
- настраивать сервер на Яндекс.Облако;
- хорошо развил навык работы с git (за это время сделал около 700 коммитов);
🔥6👏2
This media is not supported in your browser
VIEW IN TELEGRAM
Как дела на работе?

За эти 2 месяца прокачался:
- в MS SQL Server: научился работать с индексами, анализировать планы запросов, на основании анализа оптимизировать запросы, немного познакомился с созданием архитектуры БД, создавать job'ы для робота;
- в airflow: научился пользоваться хуками, переменными, некоторыми операторами, группировать таски, использовать ветвления, создавать довольно интересные графы; научился устанавливать и настраивать airflow локально, так и с помощью docker;

P.s. если вы не знаете как нагрузить все 16гигов оперативы, то просто запустите airflow в докер на wsl =)
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Кстати, каналу сегодня ровно год. :)

15 августа прошлого года создал канал в телеге и аккаунт на GitHub.

Быстро время летит.
👏6
This media is not supported in your browser
VIEW IN TELEGRAM
Вот и оф. бумага. Пока в электронном виде.
🔥6🎉2🏆2
This media is not supported in your browser
VIEW IN TELEGRAM
Последние 2 недели изучаю структуры данных.

На сегодня изучил след. структуры:

1) Связанный список;
2) Двунаправленный связный (связанный) список;
3) Динамический массив;
4) Стек;
5) Очередь;
6) Двусторонняя очередь (deque).

К каждой структуре данных:
- написал тесты. Итого написано тестов на 1700 строк кода;
- сделал оценку мер сложности для методов каждой структуры;

Важно! С написанием тестов находишь все ошибки, которые ты допустил во время написания методов структуры данных.
Для меня это открытие последних 2-х недель.
🔥51
Всем привет! 👨‍💻

За последние 7 дней прошёл 2 структуры данных:

- упорядоченный список;
- хэш-таблицы.

Написал тестов на 693 строки.

Не перестаю восхищаться покрытию кода тестами.
Пишу код без ошибок)

А как у вас прошла неделя?) 😊
🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Всем привет!

Забыл в субботу отписаться о том, что успел сделать за 7 дней помимо работы.

Исправляюсь)

Изучил следующие структуры данных:

9) ассоциативный массив (словарь) ;
10) множества;
11) фильтр Блюма;

Написал тестов на 480 строк.

Все эти структуры данных в своей реализации используют хэш-функции и хэш-таблицы. Это позволяет получить сложность операций поиска до О(1).

Очень интересной показалась структура "фильтр Блюма".
Фильтр даёт возможность проверки элементов со скоростью O(1). Но фильтр даёт вероятностный ответ. То есть фильтр может вернуть ложноположительный ответ. Это ситуация, когда мы не включали в фильтр строку, но фильтр нам пишет, что данная строка в фильтре есть.

Такое возникает, когда хэш-функции, используемые в фильтре, расчитывают один и тот же хэш для разных строк.

Вероятность срабатывания ложноположительного ответа находится в обратной зависимости от количества бит выделяемых под сам фильтр. Чем больше битовый массив, тем меньше вероятность ложноположительного ответа.
🔥5👍1