STRINGCONCAT Telegram 351
Снова побуду капитаном очевидностью.
Намедни обсуждали вопрос сравнения (equals) агрегатов. И здесь важно помнить: сравнение — это всегда контекстно зависимая операция.

Почему так?
Потому что невозможно сравнивать «вообще» — всегда есть цель, ради которой мы это делаем.

- Если нужно понять, что речь идет об одинаковых ссылках на участок памяти, то сравниваем собственно по ссылке
a === b

- Если нужно понять, что речь идет об одном и том же агрегате, достаточно сравнить идентификаторы.
a.id == b.id

- Если важно отследить изменения, которые произошли в процессе работы, тогда сравнивается содержимое.
a.id == b.id && a.field1 == b.field1

Причем механизм сравнения полей тоже может отличаться в зависимости от контекста


И здесь ключевой момент: невозможно заранее выделить универсальный набор параметров для сравнения. Критерии будут зависеть от конкретной задачи и того результата, который мы хотим получить.

Это, кстати, один из частых источников ошибок в проектах: мы пытаемся придумать «универсальный способ сравнения», а потом обнаруживаем, что он не подходит в половине случаев.
Поэтому каждый раз, когда возникает вопрос сравнения, полезно начать с простого: для чего мы это делаем?
👍31🔥104💯2🤷‍♂1😁1



tgoop.com/stringconcat/351
Create:
Last Update:

Снова побуду капитаном очевидностью.
Намедни обсуждали вопрос сравнения (equals) агрегатов. И здесь важно помнить: сравнение — это всегда контекстно зависимая операция.

Почему так?
Потому что невозможно сравнивать «вообще» — всегда есть цель, ради которой мы это делаем.

- Если нужно понять, что речь идет об одинаковых ссылках на участок памяти, то сравниваем собственно по ссылке

a === b

- Если нужно понять, что речь идет об одном и том же агрегате, достаточно сравнить идентификаторы.
a.id == b.id

- Если важно отследить изменения, которые произошли в процессе работы, тогда сравнивается содержимое.
a.id == b.id && a.field1 == b.field1

Причем механизм сравнения полей тоже может отличаться в зависимости от контекста


И здесь ключевой момент: невозможно заранее выделить универсальный набор параметров для сравнения. Критерии будут зависеть от конкретной задачи и того результата, который мы хотим получить.

Это, кстати, один из частых источников ошибок в проектах: мы пытаемся придумать «универсальный способ сравнения», а потом обнаруживаем, что он не подходит в половине случаев.
Поэтому каждый раз, когда возникает вопрос сравнения, полезно начать с простого: для чего мы это делаем?

BY StringConcat - разработка без боли и сожалений


Share with your friend now:
tgoop.com/stringconcat/351

View MORE
Open in Telegram


Telegram News

Date: |

The initiatives announced by Perekopsky include monitoring the content in groups. According to the executive, posts identified as lacking context or as containing false information will be flagged as a potential source of disinformation. The content is then forwarded to Telegram's fact-checking channels for analysis and subsequent publication of verified information. How to create a business channel on Telegram? (Tutorial) How to create a business channel on Telegram? (Tutorial) SUCK Channel Telegram The Channel name and bio must be no more than 255 characters long
from us


Telegram StringConcat - разработка без боли и сожалений
FROM American