Как стать автором
Обновить
14
0.1
Stanislav Spiridonov @foal

Человек

Отправить сообщение

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

И то и то реально. Но на долгой дистанции результат разный.

так вы не устраивайте из сети шаренную память, а передавайте лишь нужное

В этом и есть различие между вашим идеальным монолитом и реальной программой, написанной большим коллективом людей. А так да - идеальный монолит гораздо лучше распределённой системы. Примерно, как утопия лучше и приятнее реальной жизни.

Нет хуже. Гораздо хуже. Вы просто рассказываете о идеальном монолите, написанном как надо. А у нас есть реальный монолит. Знаете в чем его основная проблема при масштабировании? Сетевое взаимодействие. Всё упирается в сеть. Либо все копии тянут данные независимо (а данных для монолита надо много!) и кладут дата-соурс. Либо мы используем распределённый кэш. Помогло ненадолго, потому что апологеты монолита встроили его куда? Правильно в сам монолит. И теперь у нас загибаются 10Гиб свитчи на пиковой нагрузке при синхронизации кэша.

>если можно разбить только на логические части, которые потом соберутся в одну программу

Практически нельзя. Да можно договорится, что мы все будем писать независимые логические части, но на практике даже программа, написанная одним человеком за год, два разработки обрастает неявными внутренними связями. Что говорить о проектах, на которых работают 20-30 программистов в течении лет пяти.

Иногда удивляешься, сколько таких зависимостей вылезает из относительно простого и логичного стройного монолитика при попытке выделить часть его функционалиты в отдельный логический модуль.

Микросервисы хороши при разумном использовании, для меня это тот самый "тулинг", который следит за отсутствием неявных зависимостей.

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

fees for products...

Как я понимаю — это "any fees associated with such distribution or use of the Program", то есть даже если я не предлагаю дистрибутив скачать, я просто мой код содержит "куски SubstrateVM", я все равно не имею права брать деньги за преимущества, полученные от использования GraalVM, например, "работает быстрее" или "меньше места" итд. Только деньги за мою программу.

Например, не могу предлагать нативные образы для Докера за большую цену.

они должны быть "not provided for a fee"

Это не совсем не так. Нельзя брать деньги за GraalVM. Полностью это звучит так:

redistribute the unmodified Program and Program Documentation, under the terms of this License, provided that You do not charge Your licensees any fees associated with such distribution or use of the Program, including, without limitation, fees for products that include or are bundled with a copy of the Program or for services that involve the use of the distributed Program.

Program — это субъект лицензии, то есть Oracle GraalVM.

То же самое написано в FAQ (https://www.oracle.com/java/technologies/javase/jdk-faqs.html#GraalVM-licensing) простым языком

Redistribution is permitted as long as it is not for a fee

Hу GWT (https://www.gwtproject.org/) тоже ещё рано зарывать :)

По поводу гарантии - купил пару диодных лампочек (примерно 1,5 евра за штуку). Примерно через месяц обе сдохли, гарантия 2 года, но пересылка обратно выходит на 5-6 евро. Плюнул и купил другие две (подороже) а эти просто выкинул.

Проблема еще в том, что Windows уже давно использует Unicode. System locale используется для программ, которые не поддерживают Unicode. Это прямо написано при установки кодировки

Не понятно зачем Java на это ориентировалась.

Не едет он. Просто не надо путать скролбар и клавиатурные команды перемещения курсора.

Немного наивно.

очень нужных действий  — не вспоминаете

Вы действительно думаете, что каждый обязан знать нужные вам действия, чтобы считаться полноценным пользователем системы?

В проводнике.

Если вы пользовались скролом, то так же. Если вы пользовались PgUp/PgDn или Home/End то +1 от текущего выделенного файла.

Не уверен, но вроде где-то видел, что на ноутах проблема с длиной дорожек от слотов к контроллеру поэтому технически сложно распаять SODIMM в одной плоскости, а не друг над другом.

P.S. Кстати, Dell обещал выпустить CAMM модуль с переходником для SODIMM, правда только до 64Гб.

Там написано - используют паттерн Circuit Breaker, для Java, например https://resilience4j.readme.io/docs/circuitbreaker

Категорически не согласен

Да, пожалуйста. Не знаю, зачем это разработчику, но заказчики такие точно есть. И если разработчик видит смысл с ними работать по формуле fix time fix price, то почему нет? Работы настолько много, что каждый может найти себе что-то по вкусу.

Вы не поняли, решение не подходит, после того как его сделали. Неужели сами с таким никогда не сталкивались в реальной жизни?

Ну посадили вы команду, ну потратила она неделю, две. Подписали ТЗ. Еще три месяца прошло. Выкатили продукт. А клиент смотрит и видит - не то. И ТЗ оно соответствует, и вроде сам дурак. И что?

А ведь вместо этого можно обсудить с клиентом все его хотелки. Примерно оценить время (несколько месяцев в нашем случае). И предложить ему максимально урезанный вариант на неделю или две. После этого у Вас будет более чёткое понимание процессов клиента, у него будет понимание что от вас ждать. Будет готовое приложение с минимумом функциональности. Возможная коррекция планов на остальную функциональность со стороны клиента.

Да, по времени до полной функциональности это займёт больше. Но только если вам в самом деле удастся создать идеальное ТЗ и идеальную реализацию. В реале некоторые фичи могут отвалится по мере наращивания функционала. И клиент может понять, что продукт уже прямо сейчас можно запускать, а не ждать 100% реализации.

Что касается оплаты, то я уже говорил - повременная. К чему там закладывать риски? Хочет заказчик месяц переделывать, будем месяц переделывать.

Угу, обидно проработать месяц и выяснить, что всё что ты сделал не соответствует ожиданиям заказчика. TЗ один из вариантов защиты от этого. Не могу сказать, что идеальный, но иногда единственный, особенно на этапе, когда продукта еще нет. Дальше проще, вы уже знаете бизнес, чтобы адекватно понимать требования заказчика, заказчик доверяет вам. Задачи почти всегда можно разбить на части. Оплата может идти за часы. Всё это ведёт к тому, что уже не надо писать ТЗ на каждый чих, а у вас есть уверенность, что все переделки и исправления будут оплачены.

Но даже в случае нулевого продукта, можно жить без ТЗ и иногда это не плохой вариант, потому что не вы не заказчик изначально, не знаете, что хотите. К счастью, программирование — это не строительство и всегда можно скорректировать ход разработки, при минимальных затратах.

А зачем? Пускай каждый сам за себя решает.

Информация

В рейтинге
2 429-й
Откуда
Praha, Hlavni Mesto Praha, Чехия
Дата рождения
Зарегистрирован
Активность