TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #247 · 11.03

Попробовали на работе предметно-ориентированное проектирование (Domain Driven Design). Это такой способ построения архитектуры, когда ты (чаще всего с помощью системы типов и ООП) описываешь физическую суть вещей, которые представлены в твоей программе. Например, если в программе есть объект "Книга", то её нужно снабдить свойствами, которые бывают у книг в реальности: число страниц, автор, язык, тип обложки и т.д. При этом данные свойства должны быть такими, чтобы присвоить им нереалистичные значения было нельзя. Допустим, число страниц не может быть отрицательным (и скорее всего в реальном мире не может быть нулём). При попытке установить отрицательное число страниц программа должна выбросить исключение. А совсем в идеальном случае -- не дать этого сделать программисту на уровне статического анализа кода. Описав все свойства книги, вы снабжаете её операциями, которые над ней можно сделать. Например, из книги можно вырвать страницу, и при этом число страниц уменьшается. Нет такого случая, когда можно вырвать страницу без изменения числа страниц. Вы строго программируете эту зависимость, делаете у книги метод "Вырвать страницу", а он уже уменьшает число. Кстати, свойство "Число страниц" при этом нельзя переназначить в уже созданной книге. Можно только создать книгу, передав в её конструктор (так называется в программировании функция создания объектов) заданное число страниц. Но поменять число страниц можно только специальными методами "Вырвать страницу" и "Вклеить страницу". С помощью этого подхода вы гарантируете, что ваши объекты всегда находятся в валидном состоянии -- то есть таком, которое возможно в реальной жизни с объектом, представленным программой. Плюсы подхода очевидны: меньше число ошибок. Код описывает сам себя, и программист, если не лезет внутрь объекта "Книга", вообще не сможет сделать с книгой ничего недопустимого. Минусы, думаю, тоже понятны: изначально проектировать сложнее, нужно учесть много нюансов, писать тесты. Время разработки изрядно растёт. Изменение требований даётся дороже: например, если каким-то образом в ваш книжный магазин поступят книги со страницами из кевлара, которые невозможно вырвать :) Но первый проект с этим подходом мы сдали хорошо, без багов. Лучше, чем многие предыдущие. #dev

Hashtags

Резултати

Намерени 3 подобни публикации

Търсене: #tronscan

当前筛选 #tronscan清除筛选

😀 😀 😀 😀 😀 😀 😀 😙 😍 😗 😋 😝 🙃 😜 🤨 😜 ❓游戏公平公正吗? 是的。Magic88 基于以太坊(Ethereum)和波场(Tron)区块链技术,所有数据和核心逻辑均完全透明,无法被操纵。区块链上的每一笔交易都可在 Etherscan 和 Tronscan 上实时追踪,确保平台的公平、公开、公正。 🌐magic88.game #Magic88#魔术师娱乐城#区块链游戏#公平公正#透明可查#Etherscan#Tronscan ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW

😀 😀 😀 😀 😀 😀 😀 ❓存款和取款需要多长时间? ⏱ 区块链上的每笔交易通常需要 3-5分钟 进行网络确认。 💡若遇到账延迟,可前往 Tronscan.org 查询交易状态,或联系技术支持协助处理。 👉提款前请务必确认钱包地址及币种无误,以确保资金安全到账。 📌Magic88 魔术师娱乐城 贴心守护您的每一笔资产转移! 🔗Magic88.game #Magic88#区块链存取款#快速到账#虚拟币提款#充值无忧#提款不慌#加密娱乐城#USDT转账#Tronscan#数字资产安全#在线娱乐 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram ✉️ Luffa 🔐SafeW

😀 😀 😀 😀 😀 😀 😀 😙 😍 😗 😋 😝 🙃 😜 🤨 😜 ❓存款和取款需要多长时间? ⏱ 区块链上的每笔交易通常需要 3-5分钟 进行网络确认。 💡若遇到账延迟,可前往 Tronscan.org 查询交易状态,或联系技术支持协助处理。 👉提款前请务必确认钱包地址及币种无误,以确保资金安全到账。 📌Magic88 魔术师娱乐城 贴心守护您的每一笔资产转移! 🔗Magic88.game #Magic88#区块链存取款#快速到账#虚拟币提款#充值无忧#提款不慌#加密娱乐城#USDT转账#Tronscan#数字资产安全#在线娱乐 ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW