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

TGINSIGHT SIMILAR POSTS

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

Изходен канал @clockstackwheels · Post #721 · 26.12

Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev

Hashtags

Резултати

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

Търсене: #bach

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

@exploreclassical · Post #529 · 07.11.2024 г., 18:34

跳进 Passacaglia 的兔子洞(4)—— 管风琴 BWV 582 虽然BWV 582的不同版本都是挺好听的,但是一旦听了管风琴版就“曾经沧海难为水“了🤣不愧是“乐器之王”的魅力!听了好几首管风琴版,发现是不同的版本管风琴的音色选择居然可以完全不一样。个人对管风琴几乎没有任何了解,不过可能是巴赫当年没有写出来每一个地方需要什么音色,于是管风琴家就可以根据自己的理解以及使用的管风琴进行设置,这个工作叫做 organ registration,私以为一定程度上和orchestration有些类似(?我不懂哈只是瞎说 今天分享两个版本,一个是 Karl Richter 的版本,另一个是 Marie-Claire Alain的版本(见评论),大家可以比较比较他们的不同~ https://www.youtube.com/watch?v=_W4PJUOeVYw #bach

Hashtags

Classical Music

@exploreclassical · Post #528 · 05.11.2024 г., 19:06

跳进 Passacaglia 的兔子洞(3)—— BWV 582 的 transcriptions 大约是这首曲子太受人喜爱了,BWV 582有非常非常非常多的 transcription~这个小系列第一条里的 Leopold Stokowski 的交响乐版就是其中一个,除此之外还有 Ottorino Respighi,Eugene Ormandy等人的交响乐版。钢琴版比较有名的有 Eugen d’Albert 的版本和 Max Reger 改编的双钢琴版,Krystian Zimerman 也自己改编过一个版本。其他版本还有弦乐四重奏,铜管五重奏等等版本。 这里分享一张专辑,含有五个不同的 transcrpition~ https://youtube.com/playlist?list=OLAK5uy_k9gWmBhrs26FA9AbiTT1bLq97jkiv9Cwo&si=8bJpmgja-Snqlz30 #bach

Hashtags

Classical Music

@exploreclassical · Post #524 · 02.11.2024 г., 17:55

跳进Passacaglia的兔子洞(1)——什么是 Passacaglia? 前些天在广播里听到了交响乐版的 Bach 的Passacaglia and Fugue in C minor,于是略微跳进了兔子洞🤣了解了一下Passacaglia这个形制,Bach的这一首Passacaglia以及管风琴的一些知识~ 先是了解了一下 Passacaglia 这个形制。Passacaglia 是17世纪在西班牙起源的,这个词本身的意思大约就是 cross(passa) caglia(street)。最大的特点是有一个bass-ostinato,然后在这个基础上写很多旋律variation。一般 Passacaglia 都是三拍子的,而且有一种比较严肃的感觉。这个形制和 Chaconne 非常类似,后面也会被音乐家混合使用。 除了巴赫的这首著名的 Passacaglia and Fugue in C minor 之外,其他比较有名的 Passacaglia 还有 Handel 的 Harpsichord Suite No. VII in G minor (HWV 432)最后一个乐章, Purcell 的歌剧Dido and Aeneas 中的 Dido’s Lament,Mendelssohn 也写过一首管风琴的 Passacaglia in C minor (不愧是巴赫复兴鼻祖?😂),还有肖斯塔科维奇的 Lady Macbeth of Mtsensk Act 2 的 interlude (也有一个管风琴版本)。 扯了这么多,还是先分享一下拉我进兔子洞的罪魁祸首吧,由Leopold Stokowski改编的交响乐版 Bach: Passacaglia And Fugue In C Minor, BWV 582~ https://www.youtube.com/watch?v=naBh9Vhc6ZI #bach

Hashtags

Classical Music

@exploreclassical · Post #252 · 04.04.2021 г., 15:39

今天是中国传统节日清明节。早上分享的《忆故人》觉得很应合清明节“路上行人欲断魂“的气氛。 今天也是基督教的复活节,来听一首Bach的Easter Oratorio的选段~它的初次演出是1725年复活节(四月一日) #bach https://www.youtube.com/watch?v=EgQz899oW_8 ref:https://en.wikipedia.org/wiki/Easter_Oratorio

Hashtags

123•••1011
ПредишнаСтр. 1 от 11Следваща