Про 50 т.р. я имел ввиду что это сумма, которую работяга будет откладывать, зп конечно больше. Можно и откладыать даже больше, но все равно получаются сроки в 5+ лет, когда ты просто копишь на голубую мечту, вместо например ипотеки.
У меня статьи про истории предпринимателей всегда вызывают один и тот же вопрос - откуда работяге (то есть человеку, самостоятельно зарабатывающему на жизнь, без богатых друзей или родителей) взять те самые 2-5 млн рублей "на первое время". Откладывать почти 10 лет (5 млн. / 50 тыс./мес. = 8.3 года)? Брать кредит (под 20%, то есть если прогоришь останешься должен в два раза больше, а сколько лет будешь это выплачивать см. выше)?
Спасибо за честный разбор, именно честное описание ситуации и позволило вообще задать такой вопрос. Я сам сейчас пытаюсь с горем пополам выжить своей небольшой компанией/кооперативом с двумя коллегами, и основное мое впечатление от погружения в сферу бизнеса, это что у всех, кроме меня, просто было 10 лямов откуда-то на старте.
Не реализовано. Статья ведь не про реализацию конкретного языка, а туториал по написанию крохотного компилятора для обучения. Сборка мусора, ленивость и т.д. это весьма продвинутые темы. Выделение памяти тут просто силами llvm "alloca".
Уточню, что я говорю исключительно про «фреймворки» для функциональной разработки в питоне — с основными выводами статьи я совершенно согласен и большинством из описанного сам активно пользуюсь
Спасибо за статью, про функциональные возможности питона часто незаслуженно забывают.
Однако на мой взгляд многое из описанного во второй части статьи, про пакет functional и библиотеку returns, на практике довольно бесполезно.
Код, который мимикрирует под функциональный, вызывая рантайм-исключения при нарушении каких-то условий, только мешает — на его месте мог бы быть более привычной питонячий код, который можно проверить линитерами и mypy, и выявить похожие ошибки «статически», без запуска кода.
Примерно тоже самое применимо и к returns. В частности хаскель, из которого похоже Maybe и притащили, встречая Maybe в коде заставляет тебя проверять везде что именно вернулось — Just T или Nothing, что и даёт серьезные гарантии на уровне типов. В returns не вникал, но судя по примеру из статьи, этот инструмент не даёт никаких «статических» проверок, и вообще будто ломает тайп чекер (mypy), подменяя возвращаемые значения на собственные типы — а если и не ломает, то однозначно усложняет чтение кода.
Я сам функциональную парадигму тоже люблю и уважаю, но объектно-ориентированный, динамически типизированный, интепретируемый Python фундаментально очень от нее далек, несмотря на то что имеет и функции как объекты первого класса, и замыкания, и много чего ещё.
Поэтому на мой взгляд выгоднее внедрять мощь функциональщины в свои Python-программы порционально, там где она решает конкретные проблемы, не выходя далеко за рамки «идиоматического» питона)
Я понимаю что хранятся они в БД, я имел ввиду как это выглядит для разработчика.
Например, чтоб посмотреть все имеющиеся процедуры и что-нибудь поменять/добавить, я клонирую репозиторий со всеми процедурами, что-то в него коммичу, и оно потом само CI/CD-шится куда надо, или вся работа идет в условном DataGrip напрямую через БД?
Как вы храните и «деплоете» код процедур? Спрашиваю как человек, с процедурами почти не работавший)
Это какая-та, условно говоря, папка с текстовыми файлами, при деплое какими-то скриптами «загружаемая» в БД, или новые/измененные процедуры вы загружаете в БД руками, или вообще по-другому все происходит?
Про 50 т.р. я имел ввиду что это сумма, которую работяга будет откладывать, зп конечно больше. Можно и откладыать даже больше, но все равно получаются сроки в 5+ лет, когда ты просто копишь на голубую мечту, вместо например ипотеки.
У меня статьи про истории предпринимателей всегда вызывают один и тот же вопрос - откуда работяге (то есть человеку, самостоятельно зарабатывающему на жизнь, без богатых друзей или родителей) взять те самые 2-5 млн рублей "на первое время". Откладывать почти 10 лет (5 млн. / 50 тыс./мес. = 8.3 года)? Брать кредит (под 20%, то есть если прогоришь останешься должен в два раза больше, а сколько лет будешь это выплачивать см. выше)?
Спасибо за честный разбор, именно честное описание ситуации и позволило вообще задать такой вопрос. Я сам сейчас пытаюсь с горем пополам выжить своей небольшой компанией/кооперативом с двумя коллегами, и основное мое впечатление от погружения в сферу бизнеса, это что у всех, кроме меня, просто было 10 лямов откуда-то на старте.
Не реализовано. Статья ведь не про реализацию конкретного языка, а туториал по написанию крохотного компилятора для обучения. Сборка мусора, ленивость и т.д. это весьма продвинутые темы. Выделение памяти тут просто силами llvm "alloca".
P.S. Естественно, все это шутки, но пройти мимо не смог
Однако на мой взгляд многое из описанного во второй части статьи, про пакет functional и библиотеку returns, на практике довольно бесполезно.
Код, который мимикрирует под функциональный, вызывая рантайм-исключения при нарушении каких-то условий, только мешает — на его месте мог бы быть более привычной питонячий код, который можно проверить линитерами и mypy, и выявить похожие ошибки «статически», без запуска кода.
Примерно тоже самое применимо и к returns. В частности хаскель, из которого похоже Maybe и притащили, встречая Maybe в коде заставляет тебя проверять везде что именно вернулось — Just T или Nothing, что и даёт серьезные гарантии на уровне типов. В returns не вникал, но судя по примеру из статьи, этот инструмент не даёт никаких «статических» проверок, и вообще будто ломает тайп чекер (mypy), подменяя возвращаемые значения на собственные типы — а если и не ломает, то однозначно усложняет чтение кода.
Я сам функциональную парадигму тоже люблю и уважаю, но объектно-ориентированный, динамически типизированный, интепретируемый Python фундаментально очень от нее далек, несмотря на то что имеет и функции как объекты первого класса, и замыкания, и много чего ещё.
Поэтому на мой взгляд выгоднее внедрять мощь функциональщины в свои Python-программы порционально, там где она решает конкретные проблемы, не выходя далеко за рамки «идиоматического» питона)
Например, чтоб посмотреть все имеющиеся процедуры и что-нибудь поменять/добавить, я клонирую репозиторий со всеми процедурами, что-то в него коммичу, и оно потом само CI/CD-шится куда надо, или вся работа идет в условном DataGrip напрямую через БД?
Это какая-та, условно говоря, папка с текстовыми файлами, при деплое какими-то скриптами «загружаемая» в БД, или новые/измененные процедуры вы загружаете в БД руками, или вообще по-другому все происходит?