Адские ухищрения и использование дырок в системе вместо планирования, приоритезации и закрытия низкоприоритетных и неактуальных задач.
Кстати,
что поставлены недавно, а всякая тухлая просрочка, «пожелание записано» и т.п.
я не увидел в ваших поцедурах какой-то процесс, который бы отличал просрочку и "те, что поставлены недавно" — списывается все, что накопилось. Получается, при наступлении момента "индульгенции" авторы задач должны актуальное поставить еще раз, если им нужно?
Кроссфункциональость часто понимают как владение всеми навыками всеми членами команды.
Это кроссфункциональность команды состоящей из одного человека. Мне кажется, это совсем неверное понимание термина — он просто совсем не то означает (см. доступные определения)
Это применимо только для некоторых дженериков. Хотя вы и сами это знаете. Фактически по самому факту, что T подтип T1 нельзя сказать что X является подтипом для X и конкретно для List это не так.
Some kids go trick-or-treating for Halloween. They all have Bags of Candy. It's safe for them to eat anything that gets put in their Bag of Candy, because the only thing inside, by definition, is Candy.
But when they get to the end of the block, a grumpy old man who hates children begrudgingly opens the door. He looks down and sees the children all have Bags of Candy. But a Bag of Candy, he reasons, is also a Bag of Things. And the evil old man grabs a handful of RazorBlades — which are also Things — and puts them in the Bag of Things the children are holding.
Субъект — это тот, кто делает, объект — это тот над чем делают. Так как pedals это то, чем делают и объект на на нем, то метод относится у меня к объекту, а у вас к субъекту.
Машина для гонщика и машина для инженера обслуживания, это две разные модели одной и той же реальной сущности.
Для меня это противоположность Ubiquotous Language в DDD
class DrivingStart < LunaPark::Interactors::Sequence
def call! Service::CheckEngine.call Service::StartUpTheIgnition.call car, with: key Service::ChangeGear.call car.gear_box, to: :drive Service::StepOnTheGas.call car.pedals[:right]
end
end
В моей мысленной картине мира двигатель часть машины и никаких сервисов нет и я думаю как-то так:
car.engine.check
car.ignintion.startUp with:key
car.gear.change to: :drive
car.pedals.gas.press
Вопрос — зачем эти прослойки?
Вернее
сервис ответов на вопросы:: задать вопрос.сказать
сервис ответов на вопросы:: зачем.сказать
сервис ответов на вопросы:: эти.сказать
сервис ответов на вопросы:: прослойки.сказать
"Тип данных (тип) — множество значений и операций на этих значениях."
Так как набор операций изменяется, то это уже другой тип.
эта штука не меняет тип String, но она обозначает тип "nullable string" который может быть проассоциирован с переменной. Так же как и int[10] не меняет тип int, а делает новый тип по int и количеству элементов.
Предупреждения — это дань переходному периоду — фактически у этих конкретно типов пока более слабый контроль, но концептуально — это тип. Поэтому и синтаксис такой
Возможно, он просто не успел. В Котлине это сразу было или потом добавили?
Логически правильно тогда либо не позволять создавать объекты такого типа никак кроме как десериализацией (и допустим вручную, но с заполнением всех полей). Либо десериализация возращает тип, который знает, что все поля заполнены. Хотя наверное, так все вообще сложно будет.
Да, выкатка не value, но его содержит. Так же как канистра не является молоком, например, но может его содержать.
А можно ссылочку на MSA? Я попробовал найти, но не получилось
Адские ухищрения и использование дырок в системе вместо планирования, приоритезации и закрытия низкоприоритетных и неактуальных задач.
Кстати,
я не увидел в ваших поцедурах какой-то процесс, который бы отличал просрочку и "те, что поставлены недавно" — списывается все, что накопилось. Получается, при наступлении момента "индульгенции" авторы задач должны актуальное поставить еще раз, если им нужно?
Могу поделиться только тем, что читал:
https://en.wikipedia.org/wiki/Agile_contracts
https://martinfowler.com/bliki/ScopeLimbering.html
https://www.scaledagileframework.com/agile-contracts/
Это кроссфункциональность команды состоящей из одного человека. Мне кажется, это совсем неверное понимание термина — он просто совсем не то означает (см. доступные определения)
Т.е. бизнесу пофиг выкатят релиз или нет — никакого value нет?
Бывает не только джава
Объекты можно видеть по разному. Например "вычисление" тоже может быть объектом.
Это применимо только для некоторых дженериков. Хотя вы и сами это знаете. Фактически по самому факту, что T подтип T1 нельзя сказать что X является подтипом для X и конкретно для List это не так.
А кто из этих конкретных типов относится друг к другу как подтип?
(эта может быть та же самая ситуация, как с мутабельными кваратом и прямоугольником)
Субъект — это тот, кто делает, объект — это тот над чем делают. Так как pedals это то, чем делают и объект на на нем, то метод относится у меня к объекту, а у вас к субъекту.
Interface segregation principle?
Для меня это противоположность Ubiquotous Language в DDD
class DrivingStart < LunaPark::Interactors::Sequence
def call!
Service::CheckEngine.call
Service::StartUpTheIgnition.call car, with: key
Service::ChangeGear.call car.gear_box, to: :drive
Service::StepOnTheGas.call car.pedals[:right]
end
end
В моей мысленной картине мира двигатель часть машины и никаких сервисов нет и я думаю как-то так:
Вопрос — зачем эти прослойки?
Вернее
сервис ответов на вопросы:: задать вопрос.сказать
сервис ответов на вопросы:: зачем.сказать
сервис ответов на вопросы:: эти.сказать
сервис ответов на вопросы:: прослойки.сказать
Ну, а для ссылочных типов null есть. Фактически для них только Option был до 8.0
Чем именно вот это https://github.com/microsoft/referencesource/blob/master/mscorlib/system/nullable.cs отличается от option?
F#
"Тип данных (тип) — множество значений и операций на этих значениях."
Так как набор операций изменяется, то это уже другой тип.
эта штука не меняет тип String, но она обозначает тип "nullable string" который может быть проассоциирован с переменной. Так же как и int[10] не меняет тип int, а делает новый тип по int и количеству элементов.
Предупреждения — это дань переходному периоду — фактически у этих конкретно типов пока более слабый контроль, но концептуально — это тип. Поэтому и синтаксис такой
Я думаю, также C# недостаточно плох по сравнению с Котлин тоже. Так что котлину придетбя бороться с C# для которого есть большая поддержка
Почему вы считаете что он читатся легко? Рациональные аргументы?
if (person.PhoneNumber == null)
throw new ArgumentException("Phone number missing entirely");
if (person.PhoneNumber.Number == 0)
throw new ArgumentException("Actual number missing");
if (person.PhoneNumber.Code < 0)
throw new ArgumentException("WTF?");
Лично мне не очень нравится три раза писать и читать одно и то же.
Круглые не считаются?
Это также аргумент чтобы заменить a * 2 на switch(a){ case 1: return 2; case 2: return 4
Потому, что на вопрос "из чего может состоять паттерн?" среди можно ответить "паттерн" — т.е. он как бы определен через самого себя.
Возможно, он просто не успел. В Котлине это сразу было или потом добавили?
Логически правильно тогда либо не позволять создавать объекты такого типа никак кроме как десериализацией (и допустим вручную, но с заполнением всех полей). Либо десериализация возращает тип, который знает, что все поля заполнены. Хотя наверное, так все вообще сложно будет.