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

Резултати

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

Търсене: #beethoven

当前筛选 #beethoven清除筛选
PiaNinoNotovna

@ninonotovna · Post #435 · 04.11.2025 г., 06:20

АМАЗОНКИ ПИАНИЗМА: МАРИЯ ГРИНБЕРГ (1908-1978) При жизни ее величали «подпольная аспирантура» за то, что занималась и пестовала не только своих, но и чужих учеников. Все это знали, но мирились. Запрещать было бесполезно. Все равно шли к ней, не только студенты, но и сложившиеся музыканты: Керер, Скавронский, Доренский, Башкиров, Штаркман... Играть ей было большим испытанием. Авторитет был огромен. Интеллект, он же сила разума - колоссальны. Сама же Мария Израилевна себя в шутку звала в последние годы «Марией Агрессоровной» (в тот момент случилось очередное «обострение» и из каждого утюга неслось про «агрессора»). Гринберг училась у Феликса Блюменфельда, тот - у Федора Штейна, а сам Штейн с детства был протеже той самой Клары Шуман... (см. предшествующий пост). Знаки Судьбы… Мировой славы, которую следовало ожидать, у Гринберг не случилось. Отец и муж сгинули в 1937м, а выпускать заграницу ее стали почти на пороге смерти. Но остались ее непревзойденные записи. #classicalmusic #Beethoven #MariaGrinberg

Classical Music

@exploreclassical · Post #313 · 11.07.2021 г., 19:56

鄙人这两天压力山大,于是今天分享一首有点可爱的,Rage Over a Lost Penny https://www.youtube.com/watch?v=8F8r_Vrd674 完整版请戳这里:https://www.youtube.com/watch?v=8XFMZs_7nOA #Beethember#Beethoven P.S 想加入我们群聊的朋友请戳这里:https://t.me/exploreclassicalchat

Classical Music

@exploreclassical · Post #115 · 06.12.2020 г., 12:03

鄙人这两天压力山大,于是今天分享一首有点可爱的,Rage Over a Lost Penny https://www.youtube.com/watch?v=8F8r_Vrd674 完整版请戳这里:https://www.youtube.com/watch?v=8XFMZs_7nOA #Beethember#Beethoven P.S 想加入我们群聊的朋友请戳这里:https://t.me/exploreclassicalchat

Beethoven’s Third Symphony was originally intended as a tribute to Napoleon and drafted with the title “Bonaparte” was retitled "Eroica" after Napoleon crowned himself on 2 December 1804, marking Beethoven’s disillusionment with the betrayal of revolutionary ideals. 🎼🇫🇷⚔️ [Read more] [Learn more] @googlefactss #Beethoven#Eroica#MusicHistory

Classical Music

@exploreclassical · Post #277 · 15.05.2021 г., 18:48

Sticky Notes最近在go through贝多芬的所有symphony~介绍非常详细,音乐结构、历史背景,音乐主题使用等等~ #podcast#beethoven https://www.listennotes.com/podcasts/sticky-notes-the/beethoven-symphony-no-3-eroica-9wcWkX-G0sK/

Classical Music

@exploreclassical · Post #405 · 31.07.2022 г., 22:41

今天下午看完了一本 graphical novel, Golden Boy: Beethoven’s Youth还挺有意思~这本书介绍的是1795年在维也纳的第一次正式亮相前贝多芬的人生。里面应该是有些演绎啦,比如说莫扎特和贝多芬是在公共厕所(?)遇到的🙈还有 Waldstein “偷”了贝多芬的作曲,然后Haydn 借此威胁他找人资助贝多芬去维也纳(不知道这是真的假的),还有一些情窦初开的故事等等。书的画风还蛮有特色的,感觉把贝多芬的那种stubborn和暴脾气还是表现出来了的。 #beethoven#fun

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