summaryrefslogtreecommitdiff
path: root/content/digarden/pages/20210409071146-python.org
diff options
context:
space:
mode:
Diffstat (limited to 'content/digarden/pages/20210409071146-python.org')
-rw-r--r--content/digarden/pages/20210409071146-python.org125
1 files changed, 0 insertions, 125 deletions
diff --git a/content/digarden/pages/20210409071146-python.org b/content/digarden/pages/20210409071146-python.org
deleted file mode 100644
index f90f3ed..0000000
--- a/content/digarden/pages/20210409071146-python.org
+++ /dev/null
@@ -1,125 +0,0 @@
-:PROPERTIES:
-:ID: 2d40c870-3ea1-4065-a982-a1db1a5a69d6
-:END:
-#+title: Python
-
-* Python
-Высокоуровневый язык программирования, применяемый для широкого спектра
-задач. Достаточно убог сам по себе, но исторически очень распространён (возможно
-из-за влияния корпораций в частности Google). Python неплох относительно другого
-мейнстрима.
-
-Два основных фреймворка для web:
-- [[id:8ec304b0-7981-4f0a-a6ed-7b7ee27cb9d2][Django]]
-- [[id:0fb97d24-aa68-43ef-ad97-731af80bcbe1][Flask]]
-
-Ключевые слова:
-- and
-- as
-- assert
-- async
-- await
-- break
-- class
-- continue
-- def
-- del
-- elif
-- else
-- except
-- False
-- finally
-- for
-- from
-- global
-- if
-- import
-- in
-- is
-- lambda
-- None
-- nonlocal
-- not
-- or
-- pass
-- raise
-- return
-- True
-- try
-- while
-- with
-- yield
-
-Интерфейсы в Python:
-- Абстрактные классы с использованием @abstractMethod
-- Протоколы из MyPy
-
-Ультимативная справка по языку:
-https://gto76.github.io/python-cheatsheet/
-
-https://python.org/
-
-[[https://python-patterns.guide][Паттерны Python]]
-
-Профилирование и дебаг:
-- Objgraph
- Рисует графы, созданных объектов
-- Pympler
- Показывает сколько памяти едят те или иные объекты
-- Mprof
- Рисует график потребления памяти с течением времени
-
-[[https://stackoverflow.com/questions/1113611/what-does-ruby-have-that-python-doesnt-and-vice-versa][Отличия Python и Ruby]]
-
-Преимущества Python:
-- Есть работа
-- Маленький язык (не так много лексем, 1.2 миллионов строк кода на си, openjdk например около 20)
-- Хоть какая-то интерактивная разработка и интроспекция
-- Есть doc-string
-
-Недостатки Python:
-- Байткод никак не оптимизируется
-- Boolean это числа -1, 0 и 1
-- Нет Multiple Dispatch (https://github.com/mrocklin/multipledispatch)
- ([[https://towardsdatascience.com/the-correct-way-to-overload-functions-in-python-b11b50ca7336][Как перегружать функции в Python]])
-- Нет модификаторов доступа
-- Нет интерфейсов
-- Нет встроенной проверки типов
-- Нет стандарта
-- Низкая производительность
-- Отсутствует jar / phar
-- GIL
-- Слишком сильно отличающийся синтаксис по сравнению с C / C++ / Java
-- Множественное наследование
-- Плохая поддержка функциональной парадигмы
-- Замыкание реализовано через ООП костыль
-- Неявные сокращения в стандартной библиотеке
-- Нарушение совместимости (Python 2 => Python 3)
-- Слишком много пакетных менеджеров
-- Нет switch-case
-- Не настолько сильно переносим на другие системы как Java (особенно под
- Windows)
-- В документации не пишет полную API функций (например не пишет какие
- типы она конкретно принимает и возвращает), но это решается нынче
- аннотациями типов для стандартной библиотеки.
-- 4 способа отформатировать строку
-- List comprehensions сложные для чтения (фп подход был бы понятнее)
-- Отсутствует Let
-- Есть None
-
-https://wiki.python.org/moin/PythonWarts
-
-[[https://airbrake.io/blog/python/class-hierarchy][Иерархия ошибок]]
-
-Видео:
-- [[https://www.youtube.com/watch?v=D0vbuIDOV4c][«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС]]
-
-Книги:
-- От лутца
-
-
-Веб-сайты:
-- https://python-scripts.com
-- https://devguide.python.org/
-
-https://i.stack.imgur.com/Ty2F3.png \ No newline at end of file