Попробовали на работе предметно-ориентированное проектирование (Domain Driven Design). Это такой способ построения архитектуры, когда ты (чаще всего с помощью системы типов и ООП) описываешь физическую суть вещей, которые представлены в твоей программе.
Например, если в программе есть объект "Книга", то её нужно снабдить свойствами, которые бывают у книг в реальности: число страниц, автор, язык, тип обложки и т.д. При этом данные свойства должны быть такими, чтобы присвоить им нереалистичные значения было нельзя. Допустим, число страниц не может быть отрицательным (и скорее всего в реальном мире не может быть нулём). При попытке установить отрицательное число страниц программа должна выбросить исключение. А совсем в идеальном случае -- не дать этого сделать программисту на уровне статического анализа кода.
Описав все свойства книги, вы снабжаете её операциями, которые над ней можно сделать. Например, из книги можно вырвать страницу, и при этом число страниц уменьшается. Нет такого случая, когда можно вырвать страницу без изменения числа страниц. Вы строго программируете эту зависимость, делаете у книги метод "Вырвать страницу", а он уже уменьшает число. Кстати, свойство "Число страниц" при этом нельзя переназначить в уже созданной книге. Можно только создать книгу, передав в её конструктор (так называется в программировании функция создания объектов) заданное число страниц. Но поменять число страниц можно только специальными методами "Вырвать страницу" и "Вклеить страницу".
С помощью этого подхода вы гарантируете, что ваши объекты всегда находятся в валидном состоянии -- то есть таком, которое возможно в реальной жизни с объектом, представленным программой.
Плюсы подхода очевидны: меньше число ошибок. Код описывает сам себя, и программист, если не лезет внутрь объекта "Книга", вообще не сможет сделать с книгой ничего недопустимого.
Минусы, думаю, тоже понятны: изначально проектировать сложнее, нужно учесть много нюансов, писать тесты. Время разработки изрядно растёт. Изменение требований даётся дороже: например, если каким-то образом в ваш книжный магазин поступят книги со страницами из кевлара, которые невозможно вырвать :)
Но первый проект с этим подходом мы сдали хорошо, без багов. Лучше, чем многие предыдущие.
#dev
🤔 «стоит ли тратить свою субботу на Creative One от AIESEC в Астане?»
🙌 если коротко, ещё как стоит! этот выходной нужно провести по полной, и вот что тебя ждет:
Creative One - это твой шанс погрузиться в мир маркетинга, медиа и кино 🎨
Никакой скучной теории → только реальный опыт от топовых спикеров, расширение горизонтов и мощный заряд вдохновения для твоего творчества!👾👾👾
у тебя наверняка есть вопросы:
⭐️а что я получу?
полезный нетворкинг, вкуснейший кофе брейк, и призы за активность в виде бонуса.
👑
узнаю ли я что-то новое??
конечно!
спикеры раскроют инсайты индустрии; ты увидишь реальные возможности развития в Казахстане и поймешь, куда и как двигаться дальше.
✍️
а если я новичок и ничего не знаю о тематике?
опыт не важен!
форум как раз таки создан, чтобы вдохновить тебя и создать пространство для обмена идеями между теми кто реально интересуется.
более сотни людей уже в деле; не упусти и ты свой шанс получить дозу мотивации и полезных знакомств! ☄️☄️☄️
🗓когда? 24 января 2025
📍где? Назарбаев Университет
⏰дедлайн: 23 января, 23:59
регистрируйся прямо сейчас по ссылке и следи за нами в Instagram и Telegram!
#create with aiesec.
Как делать чеки с шестью нулями в Казахстане? 💰💰💰
Все твердят: «Хочешь успеха, встань с дивана». А мы скажем: в 2026 году это уже не обязательно. Благодаря технологиям и AI можно строить бизнес мирового уровня, не выходя из дома. Наши спикеры докажут, что умные алгоритмы работают эффективнее, чем беготня и суета 💥💥💥
Знакомься, твои хедлайнеры на 24 января:
👤Куна Амангали: Лид-дизайнер с оборотом $100.000+ в год. Научит забирать контракты в США и Сингапуре, работая из Казахстана.
👤Санжар Ревшанов: Основатель Neuro Stream. Покажет, как заставить AI приносить деньги.
👤Маржан Хайдар:Режиссер «Forever 29». Объяснит, как превратить творческую идею в продукт с миллионными охватами и прибылью.
👤Альмира Кутанова:Со-основатель UNIM School. Масштабирует онлайн-проекты и управляет маркетингом на высоких чеках.
👤Маншук Керей: Стратег с опытом 13 лет. Упакует ваш проект так, чтобы он стоил дорого и выделялся среди конкурентов.
👤Ярослав Мудрый: Эксперт по GEO-продвижению. Научит находить прибыльные ниши через AI.
➖➖➖➖➖➖➖➖➖➖
Готов провести день среди тех, кто создает тренды, а не просто следит за ними? 🚀
👉ссылка на регистрацию
📲наш тг-канал
🗓24 января | Назарбаев Университет | Orange Hall
⏱Дедлайн: 23 января, 23:59
#create with aiesec.
💡 今日金句
当你停止创造,你的才能就不再重要,你所拥有的只剩下你的品味。
而品味会裹挟你,让你排斥他人、变得狭隘。
所以,创造。
When you don’t create things, you become defined by your tastes rather than
ability. your tastes only narrow & exclude people. so create.― Why The Lucky
Stiff
via 今日金句
标签: #create#your#tastes
⚡️探索号频道
⚡️探索者频道
⚡️探索者交流群
⚡️ Youtube 频道:科技探索者
每天推荐有趣内容,欢迎订阅、转发。
🪂Airdrop: DanceFit Genesis Giveaway
💰Value: 10,000 $DDR Prize Pool
👥Referral: +20 Entries
📒Partnership:Ceres, Octopus, Polygon
📅End Date: 10th December, 2022
🏦Distribution Date: Q1 2023
🔗 Airdrop Link: Go to the Airdrop Page
📃Information
DanceFit is a #Web3 social platform where users can #Dance, #Create and #Share
Disclaimer: Airdrop is 100% free. Don't send any fee or penny for receiving airdrop tokens. Just join airdrop for free!
🚀Airdrop: DanceFit Genesis Giveaway
💰Value: 10,000 $DDR Prize Pool
👥Referral: +20 Entries
📒Partnership:Ceres, Octopus, Polygon
📅End Date: 10th December, 2022
🏦Distribution Date: Q1 2023
Go to the Airdrop Page
📃Information
DanceFit is a #Web3 social platform where users can #Dance, #Create and #Share
Disclaimer: Please do your own research before joining to any airdrops project, also airdrop is 100% free.
@CineNoticiasbot🇪🇸
Qué puede hacer este bot?
Este es un bot de canales de noticias de cine, es una interesante opción para mantenerte actualizado sobre el séptimo arte
Idioma: ESPAÑOL
(visto en @BotsGram.cu)
#manybot, #create, #subscription
@StikRobot
Qué puede hacer este bot?
Con este bot puedes crear y copiar paquetes de pegatinas sin mencionar el bot en el título del paquete de pegatinas, cree pegatinas de texto, cree pegatinas a partir de fotos o simplemente convierta fotos en pegatinas. Es gratis, sin límites, sin anuncios.
Idioma: Inglés, Ruso
(visto en @BotsGram_cu)
#sticker, #create, #text, #photo
@GuideRobot
Qué puede hacer este bot?
Este bot te ofrece un catálogo de los mejores canales de telegram
Idioma: Inglés
(visto en @BotsGram_cu)
#manybot, #collection, #create, #subscription, #telegram
@Chatbotcreatorbot
Qué puede hacer este bot?
Con este bot puedes crear tus propios Telegram Chatbots o usar plantillas existentes. No se requieren habilidades de codificación.
Idioma: Inglés
(visto en @BotsGram_cu)
#create, #chat, #development, #dev, #botbuilding
@FavoriteStickersBot
Qué puede hacer este bot?
Con este bot puedes coleccionar tus pegatinas favoritas en un solo juego de pegatinas!
Idioma: Inglés
(visto en @BotsGram.cu)
#sticker, #pack, #collection, #favorite, #create, #set
@StickersDownloaderBot
Qué puede hacer este bot?
Con este bot puedes coleccionar y descargar pegatinas
Exporta el paquete de pegatinas de Telegram en un archivo zip.
Idioma: Inglés
(visto en @BotsGram.cu)
#sticker, #pack, #collection, #favorite, #create, #set