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

TGINSIGHT SIMILAR POSTS

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

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

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

Hashtags

Резултати

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

Търсене: #ddj

当前筛选 #ddj清除筛选
Data Stitches

@data_stitches · Post #262 · 01.05.2022 г., 17:52

How 'Tucker Carlson Tonight' Fuels Extremism and Fear - 纽约时报分析了超过1150集"Tucker Carlson Tonight",调查揭示卡尔森是如何利用独白和屏幕信息传播种族主义和阴谋论的,其中的数据和视频(音频)交互令人着迷 #ddj

Hashtags

Data Stitches

@data_stitches · Post #228 · 25.01.2022 г., 15:00

西班牙学生去波兰读书,而德国人去爱尔兰 - 为什么Erasmus交流项目和奖学金援助不足以克服国家和家庭之间的经济不平等#ddj

Hashtags

Data Stitches

@data_stitches · Post #162 · 14.11.2021 г., 11:21

半数以上的欧洲国家禁止女同性恋者获得辅助生殖,几乎三分之一的国家禁止单身女性获得辅助生殖 - 无论您是异性恋情侣,还是单身女性还是女性情侣,在欧洲获得辅助生殖都变得越来越复杂,西班牙媒体Civio最新一篇交互可视化帮助人们探索了解欧洲各地关于辅助生育的不同政策和现状 #ddj

Hashtags

Data Stitches

@data_stitches · Post #161 · 14.11.2021 г., 11:15

Remembering the 5 million lives lost to Covid-19 - 全世界已经有近 500 万人死于 Covid-19, The Straits Times 设计了花瓣图形的可视化向因此缩短生命的人们致敬 #ddj

Hashtags

Data Stitches

@data_stitches · Post #150 · 30.10.2021 г., 22:41

头奖:赌博业如何从政治捐款中获利 - 在过去的 22 年里,与赌博相关的捐助者向澳大利亚政党贡献了超过 8100 万美元 #ddj

Hashtags

Data Stitches

@data_stitches · Post #148 · 17.10.2021 г., 22:12

日常性别歧视如何阻止女性获得职业晋升 - 即使一点点的性别偏见,随着时间的推移,几乎没有女性被留在最高管理层 #ddj

Hashtags

Data Stitches

@data_stitches · Post #137 · 10.10.2021 г., 19:00

美国郊区在 2020 年转向民主党 - 美国郊区在过去十年里逐渐变蓝、种族更加多样化以及人口增长,这些都会决定民主党是否能保持其微弱的众议院席位 #ddj

Hashtags

Data Stitches

@data_stitches · Post #129 · 09.10.2021 г., 11:30

美国的富家子弟正在纽约一些最令人向往的街区悄悄地进行房地产交易,利用为低收入人群提供的税收减免 (by Bloomberg) #ddj

Hashtags

Data Stitches

@data_stitches · Post #122 · 08.10.2021 г., 08:13

Afghanistan20 - 意大利在阿富汗的急救医疗组织 EMERGENCY 制作的数据报道,回顾了20年来阿富汗各地医院治疗的数千名战争受害者数据,Accurat 工作室为其制作了可视化 #ddj

Hashtags

12
ПредишнаСтр. 1 от 2Следваща