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

TGINSIGHT SIMILAR POSTS

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

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

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

Hashtags

Резултати

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

Търсене: #magic88cn

当前筛选 #magic88cn清除筛选

😀 😀 😀 😀 😀 😀 😀 🧹穿越旋转的维度,在 Magic88 终极「时空任务」中解锁11级每日奖励!下注你最喜欢的游戏,达成任务目标,一次旋转征服加密银河! 💎每天下注,完成从第 1 级至第 11 级的任务,金额从 200U到479800U! ✨每日领取每个奖励,仅需 3倍 流水,快速、轻松、随时可提现! 😀立即加入 Crypto「时空任务」,访问 magic88.game,你的奖励征程从现在开始! #Magic88#Magic88官方#大奖之家#电报机器人#免费加密货币#欢迎奖金#加密奖励#立即加入#Magic88cn#Magic88HK 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram ✉️ Luffa 🔐SafeW

😀 😀 😀 😀 😀 😀 😀 ⚽ 赛事预测 | 阿尔阿赫利 VS 迈阿密国际 巅峰对决,一触即发! 🔥 非洲劲旅阿尔阿赫利,能否捍卫荣誉? 还是迈阿密国际这支北美新势力,将继续写下进击神话? ⚡ 本场焦点:技术 VS 速度,经验 VS 冲击力 你站哪一边?押注你的信仰,决胜绿茵战场! 🎯 点击进入 magic88.game,支持你心中的胜者! #Magic88#世俱杯#足球预测#阿尔阿赫利#迈阿密国际#比赛前瞻#足球竞猜#下注赢大奖#国际足联俱乐部世界杯#绿茵对决#足球激情#今日赛事#体育娱乐#竞猜有奖#足球盛宴#比分预测#早场赛事#FootballPrediction#ClubWorldCup#Magic88CN 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🌟官网链接: ✅magic88.game 👈 ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤🖤 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW

😀 😀 😀 😀 😀 😀 😀 🏆 国际足联俱乐部世界杯火热进行中! 🗓今日赛程(6月19日)新鲜出炉! ⚽️00:00 - Palmeiras 🆚 Al Ahly ⚽️03:00 - Inter Miami 🆚 FC Porto ⚽️06:00 - Seattle Sounders 🆚 Atletico Madrid ⚽️09:00 - Paris Saint-Germain 🆚 Botafogo 🌍 谁将挺进下一轮?快来下注支持你喜欢的球队! 🔥 关注比赛,锁定精彩 🔥 赢大奖,就在 Magic88! 🎮 立即进入 👉magic88.game #Magic88#Magic88CN#俱乐部世界杯#国际足联#Palmeiras#AlAhly#InterMiami#FCPorto#SeattleSounders#AtleticoMadrid#PSG#Botafogo #足球迷#足球赛程#精彩赛事#线上竞猜#赢大奖#即时比分#足球竞猜#体育盛宴#足球热爱#世界杯狂欢#足球爱好者必看#每日赛事推荐 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🌟官网链接: ✅magic88.game 👈 ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW