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 подобни публикации

Търсене: #magic88official

当前筛选 #magic88official清除筛选

😀 😀 😀 😀 😀 😀 😀 🚀 国际足联俱乐部世界杯火热进行中! 📅 今日赛程 · 2025年6月16日 🥊 Chelsea vs LAFC – 凌晨3:00 🔥 蓝军对决美洲劲旅,谁能率先出线? 🥊 Boca Juniors vs Benfica – 早上6:00 🔥 阿根廷老牌豪门迎战葡萄牙强队,强强碰撞! 🥊 Flamengo vs Espérance de Tunis – 上午9:00 🔥 南美冠军大战非洲劲旅,谁能笑到最后? 📺 全程精彩赛事尽在 👉magic88.game 🎮 下注观赛两不误,赢大奖就趁现在! #Magic88#Magic88Official#Magic88全球#足球盛宴#世界杯赛程#俱乐部世界杯#Chelsea#LAFC#BocaJuniors#Benfica#Flamengo#EsperanceDeTunis#体育竞猜#看球赢钱#激情绿茵场#今日看点#足球迷必看#凌晨不眠夜#比赛预测#亚洲第一平台#线上体育盛会#赛事日历#竞彩推荐 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🌟官网链接:✅magic88.game👈 ❤️❤️❤️❤️❤️ ❤️ ❤️ ❤️ ❤️ ❤️ 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤🖤 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW

😀 😀 😀 😀 😀 😀 😀 🔥 巅峰对决,一触即发! 巴黎圣日耳曼 VS 马德里竞技,你支持哪一方? 🎰 技术与铁血的较量即将上演,谁能率先挺进下一轮? 🗓是姆巴佩的闪电突破,还是格列兹曼的致命反击? 🏆 赛场风云瞬息万变,结局永远充满未知! 🎯 现在就加入Magic88,一起见证这一场豪门对撞! 🎰 实时竞猜、直播预测、重磅奖金统统等你来! #Magic88#Magic88Official#Magic88体育#足球预测#俱乐部世界杯#巴黎圣日耳曼#马德里竞技#欧洲豪门对决#足球盛宴#即将开战#足球竞猜#胜者为王#足球热点#全球赛事#看球就上Magic88#体育直播平台#足球赛事推荐#今晚看球#爆奖不断#欧洲足球#热血对决#大牌云集#高能预警#Hash游戏#Hash轮盘#博彩推荐 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤🖤 🌟官网链接:✅magic88.game👈 ❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤 🖤🖤 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW