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
This media is not supported in your browser
VIEW IN TELEGRAM
1
581 день 👨‍💻 | Абстрактные типы данных (АТД)

Не писал здесь почти 2 недели. Активно изучаю ООАП.
Постепенно буду отписываться по данной теме.


Что такое абстрактный тип данных (АТД)?

Это самое базовое понятие в ООП, на основе которого следует проектировать любые объектно-ориентированные программы.

Это более высокий уровень абстракции, чем класс.
Если пройти сверху вниз по уровням абстракции, то получается следующее:
1) АТД
2) Класс
3) Объект класса

АТД - это класс, но без реализации.

АТД определяет допустимое множество объектов, а также допустимый набор методов над этими объектами. Просто задается тип данных и указываются допустимые методы без их конкретной реализации.

АТД - это абстрактный класс.

Класс - это реализация АТД.
В классе доступны поля и методы, которые прописаны в АТД. А все вспомогательные методы и поля, которые не прописаны в АТД, приватны и недоступны для внешнего мира.

———
Например, можно посмотреть АТД динамического массива по ссылке на гитхаб.
АТД DynArray и его реализация в виде уже готового класса.

Как всегда код покрыл тестами.

https://github.com/avagners/OOAP/blob/main/dyn_array/DynArray.py
🔥4
🌲👨‍💻🌲👨‍💻🌲👨‍💻
🍾6🔥31
С наступающим Новым годом! 🎄🎄🎄

Напишу пару слов.

Год выдался хорошим. Возможно, самым успешным в плане выполнения поставленных целей.

Завершил ряд курсов, среди которых большой курс на ЯП. Прочитал ряд книг по Computer Science. Изучил базовые структуры данных на довольно хорошем уровне.

Закрепился в профессии. В июне поменял место работы с ростом в доходе. Сейчас у меня много задач. А это значит много опыта.

Обновил себе ноутбук. Эта покупка является своеобразным символом моих достижений в освоении новой профессии.

В следующем году нужно приложить ещё больше усилий, чтобы реализовать поставленные цели. "Дисциплина, усердие, внимание!" - вот мой девиз следующего года)))

Вперёд, в 2023 год! 🎉🎊🎉🎊🎉🎊
🍾3🔥2🥰2
Продолжаю изучение ООАП.

После изучения абстрактных типов данных (АТД) и практической отработки на 10 структурах данных приступил к изучению наследования, композиции и полиморфизма в ООП.

Все мои АТД можно посмотреть по ссылке на гитхаб: https://github.com/avagners/OOAP/tree/main/part_1

Есть два фундаментальных вида отношений между классами в ООП: наследование и композиция.

Наследование -- это отношение "является" (is-a), когда один класс является потомком другого класса.

Композиция -- это отношение "содержит" (has-a), когда один объект содержит объект другого класса (как поле соответствующего типа).

Три разные возможности наследования:
-- расширение класса-родителя (наследник задаёт более общий случай родителя);
-- специализация класса-родителя (наследник задаёт более специализированный случай родителя);
-- комбинация нескольких родительских классов.

#ООП
🔥3
Зарегистрировался на HackerRank.👨‍💻

Как минимум ближайшие 30 дней буду решать задачки на данном ресурсе.
Хочу проверить навыки SQL и Python.

Сегодня решил 13 задачек:
- 5 на Python;
- 8 на SQL;

Получил первые звёздочки)😁

гоу со мной)
🔥7
Получил еще по одной звёздочке =)
🔥4
Итоги 7 дней на HackerRank.

Всего решено 76 задачек, из которых:
- 45 на SQL;
- 31 на Python;

По SQL уже получил золотой значок)
🔥52
Всем привет!

Итоги 14 дней на HackerRank.

Всего решено 115 задач.
Получил "золотые" значки по Python и SQL.
Продолжаю проходить челлендж 30 дней.

На работе есть небольшое достижение.
Удалось оптимизировать функцию, которую написал другой разработчик.
Ранее отрабатывала около 1 минуты. Сейчас 8 секунд.
🔥4
+1 книга в этом году

Всём привет!

Завершил чтение книги "Изучаем SQL" Алана Бьюли.

Книга мне очень понравилась. Кратко, понятно, с примерами и заданиями на закрепление.

Очень порадовало, что очень многое мне было знакомо из практики. Из нового для себя отмечу хорошее объяснение работы индексов.

Книга 10/10. Рекомендую.
👍4🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Изучаю вариатность в программировании.

Вариантность — перенос наследования исходных типов на производные от них типы.

Есть 3 вида:
- Ковариантность — перенос наследования исходных типов на производные от них типы в прямом порядке.
- Контравариантность — перенос наследования исходных типов на производные от них типы в обратном порядке.
- Инвариантность — ситуация, когда наследование исходных типов не переносится на производные.

В питоне довольно подробно вариантность описана в:
- PEP 483 – The Theory of Type Hints;
- PEP 484 – Type Hints;

Классные PEP. Нужно изучить их более внимательно.

Честно, осмысление данного вопроса дается непросто. Нужно писать примеры, много примеров. Без практики тема не заходит.

Подскажите, как у вас с данной темой? Что помогло в освоении?
👏2👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Столько всего интересного в программировании!

PEP в Python для меня стали открытием года.

Раньше я знал о существовании только PEP 8, который посвящён стилю написания кода. И то я его даже не открывал, так как обходился парой статей и линтерами.

Например, сегодня читал PEP 591 – Adding a final qualifier to typing.

Он посвящён модификатору final.

Он реализован в виде:

- декоратора "@final" (для обозначения метода, который запрещено переопределять, или класса, от которого нельзя наследоваться);

- аннотации типа "Final" (для обозначения переменной, атрибута класса, параметра функции, которые запрещено переприсваивать).
👏3
This media is not supported in your browser
VIEW IN TELEGRAM
😁2
Завершил 30 дней на HackerRank.
Вот золотые шильдики.
🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
🔥1
🔥Записался на курс "Инженер данных".🔥

Всем привет! Решил, что логическим развитием моей карьеры будет освоение такого направления в разработке как data engineering.

Моим первым местом работы был Магнит, где я познакомился с Big Data. На текущем месте работы я также работаю с данными. Т.е. у меня уже есть некоторый опыт в этой специализации.

Хочу углубиться в данном направлении, перейти на качественно новый уровень, познакомиться с лучшими практиками работы с данными, освоить современные инструменты, получить комплексную теорию, и пополнить портфолио соответствующими проектами на гитхаб.

Курс длится 6,5 месяцев. Программа интересная.

Вперед!👨‍💻
👍3🔥3👏2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥2