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

Резултати

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

Търсене: #kh

当前筛选 #kh清除筛选

中文名: 狂欢节 话数: 13 放送开始: 2013年4月3日 放送星期: 星期三 原作: 御巫桃也 导演: 菅沼栄治 ☺️评分:6.3 还行 🟢故事简介 身份不明的少年无带着一个遗留下的腕轮去寻找它的主人嘉禄。缺少现实的常识、对自己也知之甚少,只残留下强烈的寻找嘉禄的记忆。在遭遇绑架后被花砾所救,得知了那个腕轮与组织“轮”之间的关系,两人踏上了旅途,在一连串的意外发生后,世界简单的面纱缓缓掉落… ☁️OneDrive:点击下载 🗂百度网盘:点击下载 💡往期番剧汇总表格:打开 🔐解压:blackcatunderthemoon 引索:#K#KH 标签:#乙女向#奇幻#漫改

ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:15198#HK-香港-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:20322#HK-香港-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:10741#US-美国-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:44167#US-美国-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:11482#JP-日本-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:53054#JP-日本-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:15838#TW-台湾-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:10279#TW-台湾-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC0ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:10279#TW-台湾-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:37748#KR-韩国-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:16045#KR-韩国-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:29909#DE-德国-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:48429#DE-德国-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:16303#UK-英国-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:10540#UK-英国-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:11889#TM-新加坡-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:54091#TM-新加坡-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:11889#TM-马来西亚-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:54091#TM-马来西亚-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:35541#FLB-菲律宾-快速专 线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:47140#FLB-菲律宾-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:25770#TG-泰国-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:20534#TG-泰国-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:25770#VN-越南-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:20534#VN-越南-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:36432#KH-柬埔寨-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:57038#KH-柬埔寨-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:49212#FR-法国-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:39980#FR-法国-快速专线2 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@shrimp-door-9527.gym0boy.com:47708#RU-土耳其-快速专线1 ss://YWVzLTEyOC1nY206MTAyOWE5YmQtMjFiOC00ODFmLWEzMjQtYzljOGJhMmJiMjg4@ali.youyouapi.top:52562#RU-土耳其-快速专线2 🍟 节点来源:网友大哥匿名投稿 ⚠️ 恶意刷流量者亲🐎原地爆炸 🥴 多多转发与分享才能激励出更多更好的订阅分享给大家 🤖 投稿助手:@wxdy_bot 🚀 节点分享:@wxdy666