В C# есть модификатор доступа internal, который закрывает свойство или метод для всего, кроме текущей сборки (сборка это по сути группа пространств имён). И это чертовски удобно для построения правильной архитектуры по DDD — ты делаешь домен отдельной сборкой без внешних зависимостей, у сущностей закрываешь сеттеры и другие поля модификатором internal, а бизнес-правила с открытыми методами уже пишешь в агрегатах, которые содержат эти сущности. Агрегаты объявлены в той же сборке, так что они могут с сущностями делать что угодно, но слой приложения уже сможет вызвать только метод агрегата.
Пример. Есть бизнес-процесс, который включает в себя две сущности: письмо и прикреплённый к нему документ. У каждой из этих сущностей разные жизненные циклы, но письмо можно отправить только в том случае, если статус документа "Согласован". Мы делаем агрегат "письмо с документом" и там public-метод отправки письма сначала проверяет статус документа, а потом вызывает internal-метод отправки в сущности письма. Снаружи (вне домена) вызвать сразу отправку письма невозможно.
Но как эту задачу решают разработчики на других языках? Я совершенно не понимаю, как сделать хорошую архитектуру без internal. Окей, в некоторых языках вообще нет вменяемого ОПП и системы типов, но и к таким ребятам я бы не подходил с вопросами об энтерпрайз-архитектуре. Однако, многие серьёзные проекты пишутся на Java или, скажем, Go, что делают разработчики там? Может, кто-нибудь знает, и расскажет мне в комментариях?
#dev
⏺#FLOKI is trying to break up the bullish flag pattern on Daily time frame, after breakout and retest we expect another pump 🚀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
⏺#FLOKI appears to have developed a cup and handle pattern, a technically bullish formation. 🐋
💫A strong confirmation of bullish sentiment would be achieved through a decisive breakout above the designated horizontal resistance. Conversely, a rejection at this level could signal an impending correction.
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
Stake and Earn with FLOKI!
Users can now stake their $FLOKI tokens, and earn $TOKEN, with TokenPocket!
👉https://staking.floki.com
Easy Access: #Floki Staking is now integrated with the TokenPocket wallet, and you can find it on the Trending DApp List on the Ethereum network.
👉 Learn More: https://tokenpocket.pro
We are excited to announce our latest strategic partnership with Floki 🔥
What started as a meme has developed into an industry-leading utility project. Floki's innovative ecosystem offers a 3D NFT Metaverse, DeFi utilities, a crypto education platform, NFTs, a merchandise store, and more.
As part of this partnership, we have purchased $5 million worth of FLOKI tokens from the Floki Treasury. We believe that this partnership will drive the acceleration of Floki adoption in institutional circles and unlock greater growth of this innovative ecosystem.
We're looking forward to your continuous success in this space! 🫡
The future is #Floki! ✨
Find out more here.
Opened a short #FLOKI.
The asset tested $0.000326976, but was unable to go above it, after which market participants actively fixed positions, and pressure from sellers began.
The bears pushed the price and thereby broke through the ascending channel into shorts, with subsequent consolidation under it. Most likely this is not the end of the corrective movement and the coin will show a further decline.
Trading volumes have fallen sharply, which means buyers are looking for more profitable entry points and are not yet ready to take on positions. I assume the price will move to the area of $0.000128717 - $0.000138660.
Goals: $0.000156924 - $0.000148628 - $0.000138660.
Stop: 0.000182642$