9 законов (принципов) программирования — это база.
0⃣ Закон Брукса — если ты посадишь трёх разрабов за одну задачу, они не сделают её в три раза быстрее. Чем больше твоя команда, тем сложнее становится координация и планирование.
1️⃣ Закон Гудхарта — чем жёстче твои KPI и метрики для измерения эффективности, тем сильнее они отвлекают от выполнения самих задач. В самых запущенных случаях люди забивают на задачи и переключаются только на KPI.
2️⃣ Закон Хайрама — чем больше юзеров у API, тем сильнее они полагаются на незадокументированные особенности, превращая их в «обязательные» функции. Из-за этого любые изменения становятся сложными, ведь легко сломать что-то для тех, кто уже привык к старым фишкам.
3️⃣ Закон Конвея — структура программ часто повторяет организационную структуру команды, которая её создала. Если слепо следовать границам в команде, софт получится неоптимизированным.
4️⃣ Закон Линуса — база опенсора. Чем больше людей проверяют код, тем больше шансов найти ошибку.
5️⃣ Закон Хофтшадтера — дедлайн всегда нужно ставить с запасом. Мы склонны занижать количество времени, необходимое для выполнения задачи.
6️⃣ Закон Кернигана — код всегда должен быть простым и понятным. Сложный код всегда становится неподъёмным в отладке и сопровождении — это только вопрос времени.
7️⃣ Закон Питера — софт- и хард-скиллы, это разные навыки. Так, топовый разраб не обязательно обладает такими же способностями к управлению людьми, руководству командами или выполнению стратегических требований лидерства.
8️⃣ Закон Парето — усилия должны быть избирательными. Чтобы 20% усилий приносили 80% результатов, сначала нужно понять, куда прикладывать эти усилия. Качество всегда перевешивает количество, а результат важнее времени затраченного на задачу.
#dev #baza #pareto #laws #programming #engineering
#dev #baza #pareto #laws #programming #engineering
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10
Forwarded from partially unsupervised
Наткнулся на пост Top Python libraries of 2024, и набор библиотек в очередной раз затрагивает давно наболевшие топики:
1) несовершенство языка и пакетного менеджера (
2) все низкоуровневые штуки продолжают переписывать на rust;
3) главная проблема и в LLM-driven мире осталоась все той же - перегонять данные из формата в формат, только к привычным HTML/JSON/markdown/датаклассам добавляются попытки сделать LLM-native форматы (BAML), LLM-native датаклассы (PydanticAI) etc.
Правда, из всего списка сколько-то массовый адопшен случился пока только у uv.
1) несовершенство языка и пакетного менеджера (
uv вместо pip, Whenever как лучший datetime, streamable как альтернатива встроенным коллекциям, очередной генератор/валидатор типов...);2) все низкоуровневые штуки продолжают переписывать на rust;
3) главная проблема и в LLM-driven мире осталоась все той же - перегонять данные из формата в формат, только к привычным HTML/JSON/markdown/датаклассам добавляются попытки сделать LLM-native форматы (BAML), LLM-native датаклассы (PydanticAI) etc.
Правда, из всего списка сколько-то массовый адопшен случился пока только у uv.
❤🔥8
#turso #limbo #sqlite #dev #de #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
turso.tech
Introducing Limbo: A complete rewrite of SQLite in Rust
we forked SQLite with the libSQL project. What would it be like if we just rewrote it?
GitHub
GitHub - electric-sql/pglite: Embeddable Postgres with real-time, reactive bindings.
Embeddable Postgres with real-time, reactive bindings. - electric-sql/pglite
PGlite — это революционная WASM-сборка PostgreSQL, которая позволяет запускать базу данных прямо в браузере без необходимости использования виртуальной машины Linux.
Теперь PostgreSQL компилируется в WebAssembly, что открывает возможность работы с эфемерными БД в памяти или на диске через IndexedDB.
В сочетании с Electric, PGLite становится идеальным инструментом для создания реактивных local-first приложений, где основой служит Postgres.
#WASM #FrontendMagic #pg #pglite #db #postgres #databases
Теперь PostgreSQL компилируется в WebAssembly, что открывает возможность работы с эфемерными БД в памяти или на диске через IndexedDB.
В сочетании с Electric, PGLite становится идеальным инструментом для создания реактивных local-first приложений, где основой служит Postgres.
#WASM #FrontendMagic #pg #pglite #db #postgres #databases
This media is not supported in your browser
VIEW IN TELEGRAM
С Новым годом!
Пусть 2025 принесёт тебе ещё больше вдохновения, неожиданных инсайтов и стабильных пайплайнов!
Спасибо за твою поддержку — продолжим прокачивать наш мир данных вместе!
Please open Telegram to view this post
VIEW IN TELEGRAM
3 17❤🔥1
Forwarded from Николай Ясинский | SHIFU (Nikolay Yasinskiy)
Я вот смотрю где и как используется Rust сейчас, и виден явный тренд, когда все чаще этот язык становится основным решением при переписывании тяжелых, требующих больших ресурсов сервисов или библиотек.
Это я к чему... возможно, это именно та ниша где раст будет постепенно захватывать мир.
Например Polars (вдруг в DE занимаетесь):
https://pola.rs
Это я к чему... возможно, это именно та ниша где раст будет постепенно захватывать мир.
Например Polars (вдруг в DE занимаетесь):
https://pola.rs
pola.rs
Polars
DataFrames for the new era
Forwarded from 🔋 Труба данных (Simon Osipov)
https://arch.dev/blog/2025-the-dawn-of-the-ai-data-team/
Бла-бла-бла, AI всех заменит, подходы меняются, меняйся или умри.
Пожалуйста, не поддавайтесь этой истерике, в самой статье ж прям написано: The Foundation Remains Critical
Ничего ульра-прорывного именно в data engineering с появлением AI пока не произошло, вы ничего не пропустили.
Copilot и другие умные автокомплиты - это да. Вот это стоит взять на вооружение.
@ohmydataengineer - канал "🕯 Труба Данных" на страже хайпожорства!
Бла-бла-бла, AI всех заменит, подходы меняются, меняйся или умри.
Пожалуйста, не поддавайтесь этой истерике, в самой статье ж прям написано: The Foundation Remains Critical
Ничего ульра-прорывного именно в data engineering с появлением AI пока не произошло, вы ничего не пропустили.
Copilot и другие умные автокомплиты - это да. Вот это стоит взять на вооружение.
@ohmydataengineer - канал "
Please open Telegram to view this post
VIEW IN TELEGRAM
arch.dev
2025: The Dawn of the AI Data Team
<p>Introduction 2025 will fundamentally shift how organizations approach their data operations. When board members are advising their portfolio companies to skip hiring analysts in favor of AI tools, we’re at an inflection point that demands attention. Yet…
Forwarded from О разработке и не только
О! Кажется, маятник качнулся в другую сторону. Авось, станет меньше глупых проверок по длине строки или количеству строк в файле. А разработчики наконец-то станут лучше выражать свои мысли и намерения (intentions).
Все эти KISS, DRY, SOLID и пр. в конце концов только настоятельные рекомендации, а не жёсткие правила. Не надо быть фанатиком чистого кода, надо голову включать.
https://habr.com/ru/companies/ruvds/articles/865026/ #dev
Все эти KISS, DRY, SOLID и пр. в конце концов только настоятельные рекомендации, а не жёсткие правила. Не надо быть фанатиком чистого кода, надо голову включать.
https://habr.com/ru/companies/ruvds/articles/865026/ #dev
Хабр
Грязный код
Эдсгер Дейкстра: «Грязно и быстро — мне это не понравится» «Чтобы иметь право называть себя профессионалом, вы должны писать чистый код. Нет никаких разумных оправданий тому, чтобы не стремиться к...
👏6❤🔥1
Forwarded from О разработке и не только
А вы знали какая сама распространённая БД? В пятничный вечер немного фактов про неё. У всех на слуху Postgres, MySQL, Oracle - там постоянно какие-то новые фичи, баги, хайлоад... А вот про рабочую лошадку, которая просто работает, почему-то информации немного.
https://habr.com/ru/companies/ruvds/articles/873816/ #dev
https://habr.com/ru/companies/ruvds/articles/873816/ #dev
Хабр
Безумные и забавные факты о SQLite
SQLite — самая часто разворачиваемая и используемая база данных. На текущий момент активно используется более одного триллиона (1000000000000 или миллиона миллионов) баз данных SQLite. Её поддерживают...
Forwarded from DataEng
The Ultimate Guide to Apache Airflow DAGs.pdf
4.5 MB
The Ultimate Guide to Apache Airflow® DAGs
E-book от ребят из Astronomer про Apache Airflow. 135 страниц концентрированной информации "без воды". Рекомендую! Заходит как справочник в самый раз 👍🏻
E-book от ребят из Astronomer про Apache Airflow. 135 страниц концентрированной информации "без воды". Рекомендую! Заходит как справочник в самый раз 👍🏻
Forwarded from Находки в опенсорсе
В asyncio добавили возможность смотреть граф вызова корутин
Ждем в python3.14: https://github.com/python/cpython/commit/188598851d5cf475fa57b4ec21c0e88ce9316ff0
Пример:
Выведет:
Как оно работает?
Появилось два новых важных изменений:
- Поле
- Новое свойство у
Нужно, чтобы отрисовывать
Конечно же есть две иплементации. На питоне уже показал, вот так оно на C:
Как использовать?
Конечно же данная фича умеет не только печатать объекты в stdout. Прежде всего – она предоставляет удобное АПИ для различных IDE и дебагеров, которые смогут использовать данную информацию для визуализации: чего вообще у вас там происходит.
Ну и мониторинги, и sentry, и много кто еще получит дополнительную мета-информацию о процессе выполнения кода.
Документация: https://docs.python.org/3.14/library/asyncio-graph.html
Круто?
| Поддержать | YouTube | GitHub | Чат |
Ждем в python3.14: https://github.com/python/cpython/commit/188598851d5cf475fa57b4ec21c0e88ce9316ff0
Пример:
import asyncio
async def test():
asyncio.print_call_graph()
async def main():
async with asyncio.TaskGroup() as g:
g.create_task(test(), name=test.__name__)
asyncio.run(main())
Выведет:
* Task(name='test', id=0x10304eee0)
+ Call stack:
| File '/Users/sobolev/Desktop/cpython2/Lib/asyncio/graph.py', line 278, in print_call_graph()
| File '/Users/sobolev/Desktop/cpython2/ex.py', line 4, in async test()
+ Awaited by:
* Task(name='Task-1', id=0x1034a1e60)
+ Call stack:
| File '/Users/sobolev/Desktop/cpython2/Lib/asyncio/taskgroups.py', line 121, in async TaskGroup._aexit()
| File '/Users/sobolev/Desktop/cpython2/Lib/asyncio/taskgroups.py', line 72, in async TaskGroup.__aexit__()
| File '/Users/sobolev/Desktop/cpython2/ex.py', line 7, in async main()
Как оно работает?
Появилось два новых важных изменений:
- Поле
Frame.f_generator – оно хранит генератор или корутину, которая владеет данным фреймом. Нужно чтобы отрисовывать + Call stack:- Новое свойство у
Future
@property
def _asyncio_awaited_by(self):
if self.__asyncio_awaited_by is None:
return None
return frozenset(self.__asyncio_awaited_by)
Нужно, чтобы отрисовывать
+ Awaited by:.Конечно же есть две иплементации. На питоне уже показал, вот так оно на C:
/*[clinic input]
@critical_section
@getter
_asyncio.Future._asyncio_awaited_by
[clinic start generated code]*/
static PyObject *
_asyncio_Future__asyncio_awaited_by_get_impl(FutureObj *self)
/*[clinic end generated code: output=... input=...]*/
{
/* Implementation of a Python getter. */
if (self->fut_awaited_by == NULL) {
Py_RETURN_NONE;
}
if (self->fut_awaited_by_is_set) {
/* Already a set, just wrap it into a frozen set and return. */
assert(PySet_CheckExact(self->fut_awaited_by));
return PyFrozenSet_New(self->fut_awaited_by);
}
PyObject *set = PyFrozenSet_New(NULL);
if (set == NULL) {
return NULL;
}
if (PySet_Add(set, self->fut_awaited_by)) {
Py_DECREF(set);
return NULL;
}
return set;
}
Как использовать?
Конечно же данная фича умеет не только печатать объекты в stdout. Прежде всего – она предоставляет удобное АПИ для различных IDE и дебагеров, которые смогут использовать данную информацию для визуализации: чего вообще у вас там происходит.
Ну и мониторинги, и sentry, и много кто еще получит дополнительную мета-информацию о процессе выполнения кода.
Документация: https://docs.python.org/3.14/library/asyncio-graph.html
Круто?
| Поддержать | YouTube | GitHub | Чат |
GitHub
GH-91048: Add utils for capturing async call stack for asyncio progra… · python/cpython@1885988
…ms and enable profiling (#124640)
Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
Co-authored-by: Kumar Aditya...
Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
Co-authored-by: Kumar Aditya...
Forwarded from PyCon Russia
Отличные новости для всего Python-сообщества: мы открыли доступ к записям докладов с PyCon 2024 на нашем YouTube-канале Speach!
Теперь каждый может посмотреть (или пересмотреть заново) 27 классных докладов от лучших спикеров прошлого года. Изучайте, делитесь с друзьями и коллегами🙂
А совсем скоро вы сможете приобрести билеты на PyCon 2025.
1 февраля открываем продажу билетов на сайте по низкой цене. Не пропустите!
Теперь каждый может посмотреть (или пересмотреть заново) 27 классных докладов от лучших спикеров прошлого года. Изучайте, делитесь с друзьями и коллегами🙂
А совсем скоро вы сможете приобрести билеты на PyCon 2025.
1 февраля открываем продажу билетов на сайте по низкой цене. Не пропустите!
Forwarded from PyCon Russia
🔹Тая Пенская. Foundation models в Computer Vision: как они могут быть полезны для бизнеса?
🔹Татьяна Зубахина. Настройки сборщика мусора: опыт х2 производительности высоконагруженного сервиса
🔹Станислав Раковский. WayBack Machine для карантина зависимостей и трудности безопасности в PyPI
🔹Николай Хитров. Есть только моя архитектура и ваши неправильные
🔹Никита Крайко. Как оценивать современные RAG-системы?
🔹Михаил Гурбанов. На старт. Внимание. RUST
🔹Максим Акинин. Python и WASM — легко и быстро выносим бизнес-логику на сторону frontend'а
🔹Лев Орехов. Are We Web Yet?
🔹Карен Петросян. HTTP в питоне и кэширование
🔹Игорь Буянов. Настройка аугментаций для текстов как оптимизация гиперпараметров
🔹Ефим Головин. Как профилирование помогло разобраться со скачками утилизации GPU
🔹Елизавета Пушкарева. Yet another LLM benchmark. Why?
🔹Екатерина Арбузова. Объяснения персональных рекомендаций в онлайн-кинотеатре
🔹Егор Булычев. Контролируемая генерация для больших языковых моделей (LLM)
🔹Евгений Блинов. Как тестировать питонячьи либы
🔹Евгений Афонасьев. Долгая дорога к JIT
🔹Дмитрий Тихомиров. Полное погружение в Causal Inference. Практическое применение в HypEx
🔹Денис Аникин. Я ускорил всё, кроме себя
🔹Григорий Петров. Как и зачем я пишу новый учебник по Python
🔹Артем Самойлов. Мультиагентные системы и автопромптинг
🔹Артем Каледин. Python VS ГИС-инструменты: хватает ли питона для обработки гео-данных в индустрии?
🔹Антон Алексеев. GPU в k8s с максимальной отдачей, шерингом ресурсов и простой настройкой драйверов
🔹Алексей Стыценко. Как мы тестируем дата-пайплайны в рекламе Яндекса
🔹Алексей Воропаев. Taichi Lang: пишем CUDA ядра на Python
🔹Александр Шибаев. Делаем из питона го. Зачем?
🔹Александр Артамонов. Зачем Яндексу своя бинарная сборка python
🔹Юлия Волкова. Память, данные, python
🔹Татьяна Зубахина. Настройки сборщика мусора: опыт х2 производительности высоконагруженного сервиса
🔹Станислав Раковский. WayBack Machine для карантина зависимостей и трудности безопасности в PyPI
🔹Николай Хитров. Есть только моя архитектура и ваши неправильные
🔹Никита Крайко. Как оценивать современные RAG-системы?
🔹Михаил Гурбанов. На старт. Внимание. RUST
🔹Максим Акинин. Python и WASM — легко и быстро выносим бизнес-логику на сторону frontend'а
🔹Лев Орехов. Are We Web Yet?
🔹Карен Петросян. HTTP в питоне и кэширование
🔹Игорь Буянов. Настройка аугментаций для текстов как оптимизация гиперпараметров
🔹Ефим Головин. Как профилирование помогло разобраться со скачками утилизации GPU
🔹Елизавета Пушкарева. Yet another LLM benchmark. Why?
🔹Екатерина Арбузова. Объяснения персональных рекомендаций в онлайн-кинотеатре
🔹Егор Булычев. Контролируемая генерация для больших языковых моделей (LLM)
🔹Евгений Блинов. Как тестировать питонячьи либы
🔹Евгений Афонасьев. Долгая дорога к JIT
🔹Дмитрий Тихомиров. Полное погружение в Causal Inference. Практическое применение в HypEx
🔹Денис Аникин. Я ускорил всё, кроме себя
🔹Григорий Петров. Как и зачем я пишу новый учебник по Python
🔹Артем Самойлов. Мультиагентные системы и автопромптинг
🔹Артем Каледин. Python VS ГИС-инструменты: хватает ли питона для обработки гео-данных в индустрии?
🔹Антон Алексеев. GPU в k8s с максимальной отдачей, шерингом ресурсов и простой настройкой драйверов
🔹Алексей Стыценко. Как мы тестируем дата-пайплайны в рекламе Яндекса
🔹Алексей Воропаев. Taichi Lang: пишем CUDA ядра на Python
🔹Александр Шибаев. Делаем из питона го. Зачем?
🔹Александр Артамонов. Зачем Яндексу своя бинарная сборка python
🔹Юлия Волкова. Память, данные, python