Попробовали на работе предметно-ориентированное проектирование (Domain Driven Design). Это такой способ построения архитектуры, когда ты (чаще всего с помощью системы типов и ООП) описываешь физическую суть вещей, которые представлены в твоей программе.
Например, если в программе есть объект "Книга", то её нужно снабдить свойствами, которые бывают у книг в реальности: число страниц, автор, язык, тип обложки и т.д. При этом данные свойства должны быть такими, чтобы присвоить им нереалистичные значения было нельзя. Допустим, число страниц не может быть отрицательным (и скорее всего в реальном мире не может быть нулём). При попытке установить отрицательное число страниц программа должна выбросить исключение. А совсем в идеальном случае -- не дать этого сделать программисту на уровне статического анализа кода.
Описав все свойства книги, вы снабжаете её операциями, которые над ней можно сделать. Например, из книги можно вырвать страницу, и при этом число страниц уменьшается. Нет такого случая, когда можно вырвать страницу без изменения числа страниц. Вы строго программируете эту зависимость, делаете у книги метод "Вырвать страницу", а он уже уменьшает число. Кстати, свойство "Число страниц" при этом нельзя переназначить в уже созданной книге. Можно только создать книгу, передав в её конструктор (так называется в программировании функция создания объектов) заданное число страниц. Но поменять число страниц можно только специальными методами "Вырвать страницу" и "Вклеить страницу".
С помощью этого подхода вы гарантируете, что ваши объекты всегда находятся в валидном состоянии -- то есть таком, которое возможно в реальной жизни с объектом, представленным программой.
Плюсы подхода очевидны: меньше число ошибок. Код описывает сам себя, и программист, если не лезет внутрь объекта "Книга", вообще не сможет сделать с книгой ничего недопустимого.
Минусы, думаю, тоже понятны: изначально проектировать сложнее, нужно учесть много нюансов, писать тесты. Время разработки изрядно растёт. Изменение требований даётся дороже: например, если каким-то образом в ваш книжный магазин поступят книги со страницами из кевлара, которые невозможно вырвать :)
Но первый проект с этим подходом мы сдали хорошо, без багов. Лучше, чем многие предыдущие.
#dev
⚡️TapSwap Community: Upcoming Exciting Developments
#TapSwap#Web3Gaming
The TapSwap Community announces upcoming major platform updates, new gameplay reveals, and a fresh phase for $TAPS. These developments are expected in the coming weeks.
Source: link
@tonlines
🔋Amazing to see our founder connecting with industry legends and innovators at the Real Games, Real Rewards event!
⭐️Excited about the insights and collaborations that will power the future of gaming and Web3.
🤝Big thanks to @gate_ventures, @Metadomo, and @Moxyio for making this event possible!
#CyberCharge#Web3Gaming
Like👍, Retweet🔵, Comment
Link to the Tweet!
🔗Tweet From Our Co-Founder: Read
Open Metaverse Podcast Features Catizen Co-Founder
#gaming#web3gaming
Catizen Announcement introduces a new episode of the Open Metaverse Podcast featuring Ricky Wong, co-founder and CFO of Catizen. The discussion covers his transition from auditor to Web3 entrepreneur and insights into building a gaming ecosystem.
Source: link
@tonlines
⚡️Catizen Announcement: Strategic Partnership with Animoca Brands
#TON#Web3Gaming#Catizen
Catizen Announcement reveals a strategic partnership with Animoca Brands, enhancing their position as a leading Telegram Mini App game on TON. With a user base of over 40 million and 30 million CATI tokens utilized, Catizen is dedicated to developing a robust Web3 ecosystem around gaming, tokens, and Mini Apps.
Source: link
@tonlines
🎮 Exciting News! Dive into the world of NotCoin, the biggest Web3 game! 🌐🚀 Unleash your gaming prowess, explore virtual realms, and earn real rewards. 💰🕹 Join the revolution now!
👉 Explore the limitless possibilities: https://t.me/notcoin_bot?start=r_577856_2232895🎮🌟#NotCoin#Web3Gaming
🎮 Exciting News! Dive into the world of NotCoin, the biggest Web3 game! 🌐🚀 Unleash your gaming prowess, explore virtual realms, and earn real rewards. 💰🕹 Join the revolution now!
👉 Explore the limitless possibilities: https://t.me/notcoin_bot?start=r_577856_2232895🎮🌟#NotCoin#Web3Gaming
🎮 Exciting News! Dive into the world of NotCoin, the biggest Web3 game! 🌐🚀 Unleash your gaming prowess, explore virtual realms, and earn real rewards. 💰🕹 Join the revolution now!
👉 Explore the limitless possibilities: https://t.me/notcoin_bot?start=r_577856_2232895🎮🌟#NotCoin#Web3Gaming
TapSwap Community: Share Your Ideas for the Beta
#TapSwapBeta#Web3Gaming
TapSwap is inviting community members to contribute ideas for their beta version. Participants can suggest game ideas, features to test, or provide feedback on existing elements. Successful ideas may be implemented in the final release.
Source: link
@tonlines
🤝UXLINK x @TOKYOBEAST_JP: 日本コミュニティパートナーシップ発表! 🇯🇵
UXLINKは、TOKYOBEASTと日本コミュニティパートナーシップを締結しました! 🎉
TOKYOBEASTは、ゲーム・クリプト・予想を融合させた革新的なWeb3エンターテインメントプロジェクトです。
💰 2,000万ドルの開発予算 & 業界のプロ80名が手掛けるこのプロジェクトは、数百万のWeb2ユーザーをWeb3へとスムーズに導きます。
このパートナーシップを通じて、UXLINKは日本のWeb3コミュニティの成長と発展を支援し、より多くのユーザーにこの革新的な体験を届けます!
一緒にWeb3の未来を創りましょう!
🤝UXLINK x @TOKYOBEAST_EN: Japan Community Partnership Announcement! 🇯🇵
We’re excited to announce our Japan Community Partnership with TOKYOBEAST, a cutting-edge Web3 entertainment ecosystem that fuses gaming, crypto, and prediction like never before!
With a $20M development budget and a team of 80 industry experts, TOKYOBEAST is set to attract millions of Web2 users and seamlessly transition them into Web3.
Through this partnership, UXLINK will help grow and engage the Japanese Web3 community, connecting users to this revolutionary gaming experience.
Stay tuned for more updates as we expand the Web3 community together! #UXLINK#TOKYOBEAST#Web3Gaming
🚀 Big Announcement - Snapshot Completed!
🎉 The snapshot for the Tycoon Airdrop was successfully completed at 14:00 UTC, Nov 17!
The qualified participants list is ready, based on the previously announced criteria.
📖 Review the details:
1️⃣ Tycoon Point calculation & mandatory conditions: https://t.me/singsingchannel/965
2️⃣ Eligibility criteria & conversion rate: https://t.me/singsingchannel/996
✨On Nov 18, we will reveal the qualified list along with the corresponding $SING amount you’ve earned⏰Specific claim time will be announced tomorrow (Nov 18). Stay tuned!
#SingSingAirdrop#Web3Gaming
https://x.com/d3vxr/status/2040642828703772992?s=46. Live demo of D3VXR beta:
DXR → gameplay → DXR rewards
End-to-end utility, working in real time.
No speculation — just execution.
Watch here 👇
d3vxr.app
⚡#D3VXR#GameFi#Web3Gaming
🚨 Big news!
🎮$SING is now integrated into our partner game - Chickizen!
From now on, you can enjoy Chickizen with even more options and flexibility. 🐥✨
💳 Payment just got easier, smoother, and more rewarding!
Dive in, play, and explore Chickizen like never before!
Easily buy $SING at:
- BingX: https://bingx.com/en/spot/SINGUSDT/
- CoinEx: https://www.coinex.com/en/exchange/sing-usdt
- SingSing Mini App: https://t.me/SingSing_TG_bot/app?startapp=_wallet
- OKX Wallet: Guideline (https://t.me/singsingchannel/1088)
Play Chickizen with $SING: https://t.me/chickizenbot/app
#SingSing#Chickizen#Web3Gaming