Pull to refresh
50
0
Oleg Nechaev @lega

Developer

Send message
Можете просто оставить ссылку в коментариях на этой странице, тогда больше людей увидят ваш пост.
Вы понимаете насколько крутая learning curve от заведения бага — до принятного PR в коде одного из проектов Spring? Насколько высокие там требования к процессу и стандарт качества?
Вот теперь я вас отправляю обратно к вашему комментарию:
2 недели на баг фикс? Можно пример?
Откройте любой крупный проект в котором сотни/тысяи багов виcят годами.
обещаю исправлять любые найденные баги (если есть архитектурная возможность исправить).
Ну вот уже начинаете оговорки (условия) применять.

Если вы такой добрый почему не поможете опенсорсу? Вот вы используете Spring Boot? А у них баги висят годами, возмите пару багов и исправте — так сказать отплатите добром за бесплатное использование продукта на который разработчики потратили кучу своего времени.
Заодно и посмторите сколько недель это у вас займет.
Врач же не будет в половину своих усилий помогать пациенту, например, в самолёте. А это тоже не оплачивается.
Дело в затратах — если это потребует 2-х полно-рабочих недель, то врачь откажется. И наоборот, если для прогаммиста закрыть конкретную проблему — это 10мин времени, то я думаю он не откажется.
Докер пляшет от иммутабельных образов, т.е. "(не сбрасывается до исходного состояния)" — нету.
Вы заблуждаетесь: docker start, docker stop, docker restart — не сбрасывают контейнер к исходному образу.

вкорячил систему, зашел по ssh, настроил как надо. Что получилось — то и образ
Точно также и на докере — запустите нужный контейнер (дистрибутив), подключаетесь, настраиваете все что нужно и используете сколько угодно — запуск/остановка/рестарт/клонирование/бекапы/перенос на другой хост и т.д. все есть без всяких сбросов до исходного образа.
И в этом плане у LXC никаких видимых преимуществ нет, поэтому переход Docker -> LXC — это просто даунгрейд.
Но это все и в докере есть.
LXC, который куда лучше подходит для pet container'ов.
А чем он лучше подходит?
для того чтобы мое приложение работало, нужен сам docker на сервере
Нет, докер нужен только если вы хотите им пользоваться, имхо странный пункт.

если я хочу запустить свой (приватный) локально собранный образ на удаленном сервере, то мне нужен свой docker репозиторий
Нет не нужен, можно просто скопировать образ и запустить (docker save -> docker load).

docker-compose. Он нужен только для запуска контейнеров. И все
Не хотите не используйте, есть и другие способы (тут даже можно спросить — а при чем тут докер?).

при работе в команде, в большинстве своем люди пишут Dockerfile очень криво
постоянно преследуют мысли о поднятии в docker всего и вся
всегда возникает вопрос про персистенцию данных контейнера
Это проблема докера? Докер вам просто дает некоторые возможности с некоторыми ограничениями, вы уже решаете пользоваться ими или нет, зачем жаловаться на то что вам дают выбор.

Жаль, что не всё работает в контейнерах
Например?
Дети усваивают лучше. Это так.
Что вы имеете ввиду под словом «лучше»?
Взрослый (20-30 лет) может гораздо быстрее и эффективней выучить любой язык чем ребенок. Мозг взрослого гораздо продвинутей и уже имеет кучу навыков.

И если мозг детей имеет какие-то преимущества в этом плане — они относительно минимальны, все дело в подходе изучения, но вы же не будете часами сидеть за детскими мультиками и играть в песочнице с малышами… (это не конкретно вам, а про подходы...).
Если нода упала, то nginx (балансер) продублирует запрос на другую ноду (зависит от настроек).
Не нужно никакого повторного запроса, в нормальных системах, если нода упала, то поток запросов автоматический распределяется между живыми нодами, так же и плавный апргрейд — нода выводится из потока, обновляется и вводится обратно в систему, потом следующая нода.
1) их реализации, очень медленные.
Нет, с++ «zero cost exceptions», в некоторых тестах с++ код с исключениями работает быстрее чем «возврат ошибки», если их использовать как исключения.
Исключения, как пресловутое goto, рвут структуру программы
Вы так и до yield, if/else, __call__ дойдете, исключения не рвут, а передают управление назад «родителю».

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

Исключения трудно заметить
И действительно, если вы глушите исключения, то вы их не заметите, и не узнаете, что ваша система работает не правильно.
Это я понимаю, я про другое — про затраты и прибыли.
MySQL — это тоже software продукт
Это смотря как посчитать, а mongodb продукт? а linux/docker...? это все инструменты не для «конечного пользователя», и тут оно очень размыто.
Автору MySQL повезло, что его купили, но этого могло и не произойти.

PHP — это… низкоуровневый инструмент
Любой инструмент который вам помогает что-то сделать может что-то стоить. Если бы не PHP то фейсбука могло бы и не быть.
Разница в том, что в одних сферах за продукты платят, а в других — нет. Возможно это просто закон спроса — предложений, а может просто что-то «сломано».

Вот Docker — хороший «продукт», но если команда «закроется» (от того что нет прибыли), то будет обидно.
Сравнивать PHP с MySQL и Facebook как минимум странно.
MySQL стал популярен потому что PHP добавил его поддержку, впоследствии автор MySQL разбогател, фейсбук использовал (беспатный) PHP и заработал кучу денег, т.е. многие компании зарабтаывают кучу денег используя твой продукт, а ты с этого ничего не имеешь, у вас нет ощущения что автора PHP «обделили» деньгами?
Если очень кратко — компания MongoDB вложила много денег, времени и сил в продукт и все с ним связанное, а деньги с этого (как ожидается) будет иметь Амазон (они сделали клона монги).
нет, не занимаетесь, не создавайте новые опенсорс-проекты...
Я пришел к выводу, что опенсорс проекты нужно делать «just for fun», а ответственность за проекты должна уже обговариваться.

Про деньги, иногда возникает мысль что «художник должен быть голодным», пример команда Angular — осваивает деньги и должна выдавать какой-то результат, в итоге разработчики, которые не «едят» свой продукт, генерят кучу кода, тем самым создавая неповоротливого монстра, или Meteorjs — нанимали «джунов» для «освоения» раундов, подобно выглядит и Vue где первая версия была простая, но после потока денег появилась ответсвенность «в развитие», и он тоже начал обрастать, медленно превращаясь в монстра (хотя это только взгляд со стороны, на vue уже давно не смотрел), с другой стороны, без денег проект может просто умереть.

Ещё есть грустные примеры с MongoDB и Amazon, или то что PHP вытянул MySQL, в результате автор mysql разбогател, а автор PHP не особо, или то что Марк Цукерберг разбогател воспользовавшись этим самым PHP, а получил ли что-то автор?

Вообщем OpenSource это не про деньги, и в этом плане что то тут «сломано», т.к. как раз благадоря open source появились гуглы, фейсбуки и подобные…
Сейчас произвел аналогичный тест (исходники из этой статьи, но без базы), обнаружил что у саника логи не выключены, ну и результаты соответственно:

aiohttp: 5681 rps
aiohttp + uvloop: 7780 rps
sanic (default): 6362 rps
sanic (logs off): 20956 rps
код будет почти всегда равен 200
Для ошибок можно отправлять 400, завист от реализации
Ещё такой вопрос, допустим вы запустили json-rpc сервис на нескольких серверах и сбалансировали через nginx (или через что-нибудь другое), и нужно вызвать одну процедуру но на всех запущенных серверах (типа pubsub с ответом).
Как бы вы это решили? Дополнительно внедрять MQ-сервис (rabbitmq/...) для этой процедуры или как?
(И ещё вариант если нет прямого доступа к серверам, только через балансер).

Information

Rating
Does not participate
Location
Stockholm, Stockholms Län, Швеция
Registered
Activity