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

Резултати

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

Търсене: #spring

当前筛选 #spring清除筛选
mushroom notification group

@mgy_cloud · Post #156 · 17.01.2023 г., 08:07

【#本站公告#General #Spring Festival Activities】 🧧The 2023 mushroom cloud Chinese New Year event has started!🧧 ================================== 🐰The Year of the Rabbit uses mushroom cloud to let you "🐰Rabbit Fly Forward 🐰Rabbit to Run" all the way 💰 ================================== 🌟This limited-edition special product, annual payment special discount 366CNY, let you go smoothly 💰💰💰 Limited to 10, sold out will not make up~ Preferential Specifications: Time: 365 days Level: big mushroom Traffic: 888G (can be reset every 45 days) Broadband: Peak 888Mbps ================================== 🌟All station product discount code: Monthly payment: 15% off 2023-CNY-MON Quarterly payment: 2023-CNY-SEA 25% off Annual payment: 2023-CNY-YEA 35% discountG ================================ ‼️ Notes for this Spring Festival event 1. All discounts are limited to new purchases (old packages cannot be used) 2. None of the refunds are supported 3. In case of exploiting loopholes or violating TOS (including behaviors suspected of loopholes), we have the right to refuse to provide you with services, or even ban your account. This site reserves the highest right of interpretation. Event schedule: 2022/01/17 22:00-2023/02/01 00:00 ================================== Latest official website: https://1mgy.com Contact customer support: https://t.me/mushroom_cloud_bot -------------------------------------------------------------------- 🧧2023 mushroom cloud 春節活動開跑囉!🧧 ================================ 🐰兔年使用 mushroom cloud 讓您 “🐰兔飛猛進 🐰兔來運轉” 一路發發發💰 ================================ 🌟本檔限量特惠产品,年缴 特惠366CNY,让您一顺顺利利💰💰💰 限量10,售完不補~ 特惠規格: 时间:365day 等级: 大蘑菇 流量: 888G (每45天可人工重置一次) 宽带: 峰值888Mbps ================================ 🌟全站產品優惠碼: 月繳: 2023-CNY-MON 8.5折 季繳: 2023-CNY-SEA 7.5折 年繳: 2023-CNY-YEA 6.5折 ================================ ‼️本檔春节活动注意事项 1. 所有優惠限新購(舊套餐無法使用) 2. 均不支持退款 3. 如有出現鑽漏洞或者違反TOS嘅行為(包含疑似漏洞嘅行為),我哋有權拒絕為您提供服務,甚至封禁賬號,本站保留最高解釋權。 活動檔期: 2022/01/17 22:00-2023/02/01 00:00 ================================ 最新官網: https://1mgy.com 聯繫客服: https://t.me/mushroom_cloud_bot

Hashtags

POCO M7 Plus, POCO M8s, REDMI 15 - China - OS3.0.302.0.WOUCNXM (Android 16) 📆2026/05/06 #release📱#spring 📥Recovery ROM 📝Changelog: [System] Updated the security patch to August 2025. Increased system security. 🔗@xiaomiui | @miui_download | @hyperosfirmware | MemeOS Updates | XimiTime

💎Spring视频剪辑 v1.4.5.35422 高级版 131 ♻️资源介绍:Spring视频编辑剪辑让短视频、动态视频制作变得更加轻松!免费创建无水印高质量视频,并配备高级AI编辑功能 ⬇️本地下载| 🔵网站下载 🔔标签:#安卓软件#Spring#视频剪辑

💎Spring视频剪辑 v1.4.3.35362 高级版 131 ♻️资源介绍:Spring视频编辑剪辑让短视频、动态视频制作变得更加轻松!免费创建无水印高质量视频,并配备高级AI编辑功能 ⬇️本地下载| 🔵网站下载 ❤️资源指南: 💠主频道|🧑‍💻合作|🤖游戏|👍群聊 🔔标签:#安卓软件#Spring#视频剪辑

⭐️【资源名称】Spring视频剪辑 v2.0.14.36002 高级版 142 🤖【适用平台】: #Andoid 🧱【资源介绍】 Spring视频编辑剪辑让短视频、动态视频制作变得更加轻松!免费创建无水印高质量视频,并配备高级AI编辑功能。Spring是视频创作者和博主的首选,提供最佳的视频编辑、动画制作,尤其是短视频创作。借助Spring强大的视频编辑功能,更加轻松便捷的完成视频制作,合并视频、添加照片、添加音乐和插入文本,快速制作出令人惊叹的视频。 🟡在线下载:点击下载 📁#Spring#视频剪辑

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