Pull to refresh
45
0
Сергей Федосов @fso

User

Send message

Коротко: разные части монолита, по-разному нагружены. Вынос таких частей в сервисы позволяет их масштабировать отдельно. Обработка запроса в сервисе почти всегда "короче" и "легче" чем в монолите - отрабатывает только то, что нужно. Никакого общего "бутстрепа", на запрос не влияет и не мешается "соседняя логика".

Да и сам сервис проще и чище по коду чем монолит, хотябы ввиду размера кодовой базы.

Эндовибратор и как его использовали в шпионаже — еще более продвинутая реализация этой идеи

Тоже удивился, PHP в последнее время далеко прыгнул. Стал сложнее, "взрослее", порог входа вырос и поток новичков снизился.

Посмотрите на swoole или spiral/roadrunner — то, что вам хочется. Уже сейчас :)
Не думаю, что такие вещи с которыми «не все просто» можно выпустить в минорных версиях. Вы смотрели changelog 3.7.3? Там только фиксы, только работа над ошибками, залатывание багов. Медленно очень.
3-ей версии питона уже 11 лет… и первый мой комментарий как раз и был про то, что «не все так просто» и это во многом мешает питону развиваться, по крайней мере в сторону веба.
Трудно не согласиться с этим) Но мы как-то уклонилсь от изначального посыла в обсуждении «заточенности» питона под веб, перейдя к его недостаткам. Конечно, нет серебряной пули, у всего есть свои плюсы и минусы. Но, ИМХО, питон мог бы стать много лучше, причем малой кровью.
А зачем, если можно взять язык, в котором это все просто-напросто есть?
Примерно такое было (django с его настройками в settings.py в виде «констант»):

SETTINGS_CONSTANT = 1

condition = SETTINGS_CONSTANT = 2 # Must be == 2

if condition:
    print("Now SETTINGS_CONSTANT=%s" % SETTINGS_CONSTANT)
Или что-то другое имеете ввиду?

Да, чуть ошибся, я имел ввиду контекст protected. То есть при наследовании доступен, но недоступен при вызове снаружи. И не сокрытие видимости с помощью __ (кстати, тоже не выглядит элегантным), а именно ограничение доступа.
Вы не хотите меня понять) Я не говорю что в питоне нельзя сделать неизменяемую структуру. я говорю, что это делается не как в других языках, специальным для этого инструментом — константой, а обходными путями, namedtuple в частности, занулением сеттеров и прочими костылями.
а это реализуется кучей способов

Фактически, я и хотел сказать, что не надо «кучу способов», нужны просто константы. Зачем эти обходные пути, костыли-велосипеды, когда, повторюсь, во всех зрелых языках просто есть константы. И просто есть модификаторы доступа. И да, без них можно обойтись, но они придуманы не просто так и решают вполне насущные проблемы.
Веду сейчас крупный федеральный проект на питоне, с большой распределенной командой разработчиков. Проблемы на самом деле существуют.

Отсутствие констант очень сильно мешает, особенно в легаси 2.7 версии. Доходит до того, что простая опечатка в сравнении приводит к изменению значения того, что меняться в принципе не должно.

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

Большая простыня models.py приводит к конфликтам слияния, попытка разбить на модули — к проблеме циклического импорта. И так далее.
Соглашусь с вами, не утверждал что это большая проблема, просто обратил внимание, что php проектировался именно под веб, когда как для питона web — не родная среда.
Не особо нужно

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

В других языках нельзя что ли простыню сделать?

Речь про то, что питон диктует так делать (проблема циклического импорта) и устоявшаяся практика. Посмотрите на models.py в django любого сложного проекта.

В чем ее мутность?

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

В чем заточенность?

PHP изначально проектировался для обработки http запросов, цикл обработки запроса заточен именно под это. Как пример — встроенный механизм сессий. работа с сессиями — это функции самого языка.
Большинство вещей, которые делаются в PHP на базовом уровне, в питоне делает фреймворк. И оно понятно, обработка http — это не целевая задача питона и делается сравнительно «сторонними» от ядра, средствами.
Питон довольно сильно застрял в своей парадигме и это мешает ему развиваться в нужном для веб направлении. Отсутствие констант, модификаторов доступа, длинные простыни кода в одиночных файлах, мутная история с тайпхинтингом/типизацией и многое другое. Питон хорош для научной работы, математики, расчетов, числодробилок наконец. В вебе он как-то держится, но тот же PHP 7-ых версий именно в вебе, будет наголову выше. И по производительности и по «заточенности».
дело не только в паранойе, они весьма существенно садят батарею своими фоновыми сервисами (по одному на каждое приложение) которые беспрестанно долбятся запросами к местоположению.

да и просто нервирует постоянно вылазящее уведомление внизу экрана о том что яндекс в очередной раз полез в gps
А они в принципе через все свои приложения шпионят https://link.https.pro/52j очень разозлили постоянной долбежкой к местоположению, пока не прибьешь приложение, пользоваться телефоном практически невозможно.
Какой замечательный пост 2015-го года. Сейчас стало все еще хуже, плевать они хотели — https://link.https.pro/52j
Да, смысла нет. Предложение just for fun. Просто несовершенство алгоритма.

Information

Rating
Does not participate
Location
Томск, Томская обл., Россия
Date of birth
Registered
Activity