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

TGINSIGHT SIMILAR POSTS

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

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

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

Hashtags

Резултати

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

Търсене: #m4

当前筛选 #m4清除筛选
探索号

@seeker_rc · Post #19711 · 06.05.2026 г., 01:25

派早报:一加、realme 合并,M4 Mac mini 256GB 版本下架等 M4 Mac mini 256GB 版本下架,豆包确认将推出付费版本等。查看全文 via 少数派 标签: #M4#Mac#mini ⚡️探索号频道 ⚡️探索者频道 ⚡️探索者交流群 ⚡️ Youtube 频道:科技探索者 每天推荐有趣内容,欢迎订阅、转发。

Hashtags

AppPie

@AppPie · Post #1977 · 07.05.2024 г., 15:00

#Apple Apple 发布 M4 芯片 Apple 今日发布 M4 芯片,这款最新芯片为全新 iPad Pro 带来强劲的性能表现。M4 芯片以第二代 3 纳米制程工艺打造,采用 SoC 架构,进一步提升 Apple 芯片的出众能效,成就 iPad Pro 的极致纤薄设计。 这款芯片还集成了全新的显示引擎,助力 iPad Pro 的突破性超精视网膜 XDR 显示屏实现惊人的精准度、色彩和亮度。最高达 10 核的全新中央处理器,10 核图形处理器构建于 M3 系列芯片的新一代图形处理器架构之上。首次为 iPad 带来动态缓存、硬件加速光线追踪和硬件加速网格着色功能。 M4 芯片还集成了 Apple 迄今最快的神经网络引擎,运算速度最高可达每秒 38 万亿次,领先业界。加上更快的内存带宽、中央处理器内置的新一代机器学习加速器和高性能图形处理器,M4 芯片为新款 iPad Pro 赋予超强性能,使之成为处理人工智能任务的理想设备。 来源 #AppleEvent#AppleNewsroom#M4 📮 频道 @AppPie