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

TGINSIGHT SIMILAR POSTS

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

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

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

Hashtags

Резултати

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

Търсене: #m3

当前筛选 #m3清除筛选
占位符

@placeholderpics · Post #59463 · 10.04.2026 г., 01:20

咲良ゆの┊ M3 二展 2F シ-23ab: 𝙽𝚎𝚠 𝚁𝚎𝚕𝚎𝚊𝚜𝚎✴︎.. 『 想星エトワール 』 ꙳⸜ 明日4/10(金) 21:00 XFD公開 ⸝꙳ サークル︴Amelia スペース︴第二展示場 シ-23ab #M3#M3春2026 https://twitter.com/yuno_singer/status/2042191252402446480

AppPie

@AppPie · Post #1773 · 31.10.2023 г., 01:00

Apple 发布超先进个人电脑芯片 M3、M3 Pro 和 M3 Max 🔗Apple Newsroom (中国大陆) Apple 今日隆重发布 M3、M3 Pro 和 M3 Max 芯片。这三款全新芯片采用一系列突破性技术,为 Mac 带来超乎想象的性能提升,并解锁众多新功能。这是首批采用业界领先 3 纳米工艺打造的个人电脑芯片,可将更多晶体管封装于更小的芯片空间中,实现速度和能效的双重提升。M3、M3 Pro 和 M3 Max 芯片展示了 Apple 自初次发布 M1 系列芯片以来,在 Mac 芯片领域取得的长足进步。 #AppleNewsroom#AppleSilicon#M3 📮 频道 @AppPie

Android Broadcast

@android_broadcast · Post #9164 · 20.05.2025 г., 21:30

На сайте Android Developers стали выкатывать обновления существующих руководств с интеграцией Material 3 Expressive дизайна, а именно: 👉Help & Feedback 👉Settings 👉Настройки App Widget 👉Edge-to-edge дизайн #material#material3#materialexpressive#m3