EMACSWAY_LOG Telegram 1402
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Остановимся на моментах, имеющих ключевое отношение к определению границ Bounded Context. Даже в языке математики: 💬 "полностью изжить неопределенность невозможно, иначе было бы невозможно о бесконечности мира говорить конечными фразами". 💬 "снятие неопределенности…
До сего момента мы рассматривали управление Существенной Сложностью (Essential Complexity). Это наиболее существенное, хотя и не исчерпывающее, условие успешности разработки, потому что "Серебрянной пули нет".

Существенная Сложность (Essential Complexity) - сложность того, что делает система, сложность реализованных ею моделей, отражающих сложность реального мира, не зависящая от способа и деталей реализации. Сложность, порожденная решаемой проблемой, и ничто не может устранить или уменьшить её. Мы можем только управлять ею таким образом, чтобы минимизировать объем существенной сложности, рассматриваемой одновременно, до уровня, не превосходящего ограничения краткосрочной памяти человека.

Как утверждает Steve McConnell:

💬 "В философии существенными называют свойства, которыми объект должен обладать, чтобы быть именно этим объектом. Автомобиль должен иметь двигатель, колеса и двери — если объект не обладает каким-нибудь из этих существенных свойств, это не автомобиль."
-- "Code Complete" by Steve McConnell


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

Как утверждает Steve McConnell:

💬 "Несущественными (акцидентными, побочными) свойствами называют свойства, которыми объект обладает в силу случайности, — свойства, не влияющие на его суть. Так, автомобиль может иметь четырехцилиндровый двигатель с турбонаддувом, восьмицилиндровый или любой другой и все же являться автомобилем. Тип двигателя и колес, число дверей — все это несущественные свойства. Можете также думать о них как о второстепенных, произвольных, необязательных и случайных."
-- "Code Complete" by Steve McConnell


Ввел эти термины в оборот Frederick P. Brooks в своей монументальной статье "No Silver Bullets: Essence and Accidents of Software Engineering", позаимствовав идею у Аристотеля.

💬 "Following Aristotle, I divide them [difficulties] into essence - the difficulties inherent in the nature of the software - and accidents - those difficulties that today attend its production but that are not inherent.
<...>
The complexity of software is in essential property, not an accidental one. Hence descriptions of a software entity that abstract away its complexity often abstract away its essence. Mathematics and the physical sciences made great strides for three centuries by constructing simplified models of complex phenomena, deriving properties from the models, and verifying those properties experimentally. This worked because the complexities ignored in the models were not the essential properties of the phenomena. It does not work when the complexities are the essence.”
—“No Silver Bullet - Essence and Accident in Software Engineering” by Frederick P. Brooks, Jr.


Теперь мы подошли к вопросу о том, каким образом можно защитить управление существенной сложностью от несущественной сложности.
🔥11💯1



tgoop.com/emacsway_log/1402
Create:
Last Update:

До сего момента мы рассматривали управление Существенной Сложностью (Essential Complexity). Это наиболее существенное, хотя и не исчерпывающее, условие успешности разработки, потому что "Серебрянной пули нет".

Существенная Сложность (Essential Complexity) - сложность того, что делает система, сложность реализованных ею моделей, отражающих сложность реального мира, не зависящая от способа и деталей реализации. Сложность, порожденная решаемой проблемой, и ничто не может устранить или уменьшить её. Мы можем только управлять ею таким образом, чтобы минимизировать объем существенной сложности, рассматриваемой одновременно, до уровня, не превосходящего ограничения краткосрочной памяти человека.

Как утверждает Steve McConnell:

💬 "В философии существенными называют свойства, которыми объект должен обладать, чтобы быть именно этим объектом. Автомобиль должен иметь двигатель, колеса и двери — если объект не обладает каким-нибудь из этих существенных свойств, это не автомобиль."
-- "Code Complete" by Steve McConnell


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

Как утверждает Steve McConnell:

💬 "Несущественными (акцидентными, побочными) свойствами называют свойства, которыми объект обладает в силу случайности, — свойства, не влияющие на его суть. Так, автомобиль может иметь четырехцилиндровый двигатель с турбонаддувом, восьмицилиндровый или любой другой и все же являться автомобилем. Тип двигателя и колес, число дверей — все это несущественные свойства. Можете также думать о них как о второстепенных, произвольных, необязательных и случайных."
-- "Code Complete" by Steve McConnell


Ввел эти термины в оборот Frederick P. Brooks в своей монументальной статье "No Silver Bullets: Essence and Accidents of Software Engineering", позаимствовав идею у Аристотеля.

💬 "Following Aristotle, I divide them [difficulties] into essence - the difficulties inherent in the nature of the software - and accidents - those difficulties that today attend its production but that are not inherent.
<...>
The complexity of software is in essential property, not an accidental one. Hence descriptions of a software entity that abstract away its complexity often abstract away its essence. Mathematics and the physical sciences made great strides for three centuries by constructing simplified models of complex phenomena, deriving properties from the models, and verifying those properties experimentally. This worked because the complexities ignored in the models were not the essential properties of the phenomena. It does not work when the complexities are the essence.”
—“No Silver Bullet - Essence and Accident in Software Engineering” by Frederick P. Brooks, Jr.


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

BY emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.


Share with your friend now:
tgoop.com/emacsway_log/1402

View MORE
Open in Telegram


Telegram News

Date: |

In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. As of Thursday, the SUCK Channel had 34,146 subscribers, with only one message dated August 28, 2020. It was an announcement stating that police had removed all posts on the channel because its content “contravenes the laws of Hong Kong.” Invite up to 200 users from your contacts to join your channel On June 7, Perekopsky met with Brazilian President Jair Bolsonaro, an avid user of the platform. According to the firm's VP, the main subject of the meeting was "freedom of expression." With the sharp downturn in the crypto market, yelling has become a coping mechanism for many crypto traders. This screaming therapy became popular after the surge of Goblintown Ethereum NFTs at the end of May or early June. Here, holders made incoherent groaning sounds in late-night Twitter spaces. They also role-played as urine-loving Goblin creatures.
from us


Telegram emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
FROM American