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

TGINSIGHT SIMILAR POSTS

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

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

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

Hashtags

Резултати

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

Търсене: #knowledge

当前筛选 #knowledge清除筛选
Classical Music

@exploreclassical · Post #402 · 15.07.2022 г., 13:53

由刚刚分享的这条了解了一下 Toccata 的历史,现学现卖一下🥲大家多指点。 Toccata 一词来源于意大利语的 toccare,意思是 to touch,toccata 意为 action of touching,从这个词就可以看出来 Toccata 旨在表现演奏家的手指技巧。Toccata 多为键盘乐器作品,不过也有一些其他乐器或是交响乐作品。 Toccata 最早于文艺复兴时期出现于意大利北部。巴洛克时期的 toccata 可能最为有名,除了 Bach 的代表作以外,Pachellbel,Scarlatti等人都写过 Toccata。Bach 的 Toccata and Fugue in D minor 可能是大家最熟悉的 Toccata,也是最为人熟知的管风琴作品之一。这里的 Toccata 是一种很即兴式的创作,而且节奏也比较随性。巴洛克之后,Toccata 就比较少见了,浪漫主义时期,Schumann 写过一首 Toccata in C major,技巧性很高。 从二十世纪早期,又有很多作曲家开始创作 toccata,比如 Debussy 的 Pour le Piano第三乐章为 Toccata,Prokofiev 的 Toccata in D minor等。Toccata 有时也在 Symphony中出现,比较有名的有 Ralph Vaughan Williams 的 Symphony No.8 最后一个乐章。 篇幅比较小的 Toccata 常被称为 Toccatina,比如上一条分享的 Kapustin 的 Toccatina Op.36。除了这首以外,他在 Eight Concert Etude 中还有一首Toccatina,之前有分享过~ #knowledge

Hashtags

古典曲推

@MuClassic · Post #213 · 15.07.2022 г., 16:00

由刚刚分享的这条了解了一下 Toccata 的历史,现学现卖一下🥲大家多指点。 Toccata 一词来源于意大利语的 toccare,意思是 to touch,toccata 意为 action of touching,从这个词就可以看出来 Toccata 旨在表现演奏家的手指技巧。Toccata 多为键盘乐器作品,不过也有一些其他乐器或是交响乐作品。 Toccata 最早于文艺复兴时期出现于意大利北部。巴洛克时期的 toccata 可能最为有名,除了 Bach 的代表作以外,Pachellbel,Scarlatti等人都写过 Toccata。Bach 的 Toccata and Fugue in D minor 可能是大家最熟悉的 Toccata,也是最为人熟知的管风琴作品之一。这里的 Toccata 是一种很即兴式的创作,而且节奏也比较随性。巴洛克之后,Toccata 就比较少见了,浪漫主义时期,Schumann 写过一首 Toccata in C major,技巧性很高。 从二十世纪早期,又有很多作曲家开始创作 toccata,比如 Debussy 的 Pour le Piano第三乐章为 Toccata,Prokofiev 的 Toccata in D minor等。Toccata 有时也在 Symphony中出现,比较有名的有 Ralph Vaughan Williams 的 Symphony No.8 最后一个乐章。 篇幅比较小的 Toccata 常被称为 Toccatina,比如上一条分享的 Kapustin 的 Toccatina Op.36。除了这首以外,他在 Eight Concert Etude 中还有一首Toccatina,之前有分享过~ #knowledge

Hashtags

走来走去 Roam around

@roam_around · Post #114 · 29.03.2023 г., 12:57

The world is awful. The world is much better. The world can be much better. 看到这句标语,突然想起了去年读刘瑜老师《比较政治学》,真的消解了内心很多的情绪。 学习的态度看过去,比较的视角看现在,发展得眼光看未来。 https://ourworldindata.org/much-better-awful-can-be-better #knowledge

Hashtags

走来走去 Roam around

@roam_around · Post #111 · 28.03.2023 г., 04:18

「 深蓝洞察 」2022 年度最“不可赦”漏洞 “但 2022 年,有知名互联网厂商竟持续挖掘新的安卓 OEM 相关漏洞,在其公开发布的 App 中实现对目前市场主流手机系统的漏洞攻击。” (也不知道是哪家有名的互联网公司😑) #knowledge https://mp.weixin.qq.com/s/P_EYQxOEupqdU0BJMRqWsw

Hashtags

走来走去 Roam around

@roam_around · Post #96 · 24.03.2023 г., 13:41

carbon tunnel vision 只关注与碳相关问题的狭窄或有限视角,往往忽视其他重要因素或考虑。 解决问题不能只盯着眼前的指标,要系统性、结构性的考虑。 #knowledge ---- 这个图画的挺有趣。

Hashtags

走来走去 Roam around

@roam_around · Post #94 · 22.03.2023 г., 06:13

IKIGAI 2.0 Ikigai Dual Meaning = Life is worth living (being) and worth living for (doing). #knowledge 更多信息: https://www.sloww.co/ikigai-2-0/ ----- 是一种平衡主客体关系的生活实践。

Hashtags

123•••10•••20•••30•••3536
ПредишнаСтр. 1 от 36Следваща