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

Резултати

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

Търсене: #blbl

当前筛选 #blbl清除筛选

💎PiliNara最好用的哔哩哔哩第三端看番爽到爆 2.0.1 24 ♻️资源介绍:PiliNara是一款基于Flutter框架开发的哔哩哔哩第三方客户端,旨在为用户提供更加流畅、简洁且功能丰富的B站视频观看体验。它不仅保留了B站原有的丰富内容,如番剧、直播、短视频等,还通过优化界面设计和增强用户体验,让用户能够更轻松地浏览和观看自己喜欢的视频内容 ⬇️本地下载 🔔标签:#安卓软件#哔哩哔哩#blbl

💎 哔哩哔哩v8.81.0内置模块 202 ♻️资源介绍:哔哩哔哩是国内知名的动漫视频弹幕社区。哔哩漫游模块可解锁番剧限制、自定义去广告等功能。已通过LSPatch方式内置模块。 ⬇️本地下载 🔔标签:#安卓软件#哔哩哔哩#blbl

⭐️【资源名称】哔哩哔哩v8.87.0内置模块 195 🤖【适用平台】: #Andoid 🧱【资源介绍】 哔哩哔哩是国内知名的动漫视频弹幕社区。哔哩漫游模块可解锁番剧限制、自定义去广告等功能。已通过LSPatch方式内置模块。 🟡在线下载:点击下载 📁#哔哩哔哩#blbl

⭐️【资源名称】: 哔哩哔哩内置模块 🤖【适用平台】: #Andoid 🔄【应用版本】: 8.66 🔩【应用大小】:171MB 🧱【资源介绍】 微商客凭借其高效的功能设计和灵活的商业模式,成为微商从业者不可或缺的工具。无论是日常客户管理,还是营销推广,该软件都能提供切实帮助。随着电商行业的不断发展,微商客有望进一步优化功能,为用户提供更优质的服务体验。 🟢高级版 🟡在线下载:点击下载(无需密码) 🟡 uc下载:点击下载(无需密码) 🔄迅雷网盘:点击下载(无需密码) 📁#安卓软件#blbl#哔哩哔哩

⭐️【资源名称】: 哔哩哔哩内置模块 🤖【适用平台】: #Andoid 🔄【应用版本】: 8.61.0 🔩【应用大小】:157MB 🧱【资源介绍】 哔哩哔哩是国内知名的动漫视频弹幕社区。哔哩漫游模块可解锁番剧限制、自定义去广告等功能。已通过LSPatch方式内置模块。 🟢清爽版 🟡在线下载:点击下载(无需密码) 🟡 uc下载:点击下载(无需密码) 🔄迅雷网盘:点击下载(无需密码) ❤️资源指南: 💠子频道|🧑‍💻合作|🤖游戏|👍群聊 ➡️更多分享尽在: @QQZYDAPP 📁#安卓软件#哔哩哔哩#blbl

💎 iOS专享】重磅B站下载,最新深度纯净版! 273 8.76.0 ♻️资源介绍:哔哩哔哩追求做更多年轻人的潮流文化娱乐社区,常被动漫迷们昵称为bilibili,"B站" ⬇️本地下载 🔔标签:#苹果软件#iOS#b站#blbl

💎PiliPlus 第三方哔哩哔哩v1.1.4.1 22 ♻️资源介绍:PiliPlus最新版是一款由民间大佬自制的B站第三方工具,PiliPlus软件为用户提供了丰富的功能和优质的观看体验,界面简洁友好,操作简单便捷,能够轻松上手,同时软件屏蔽了广告,感兴趣的千万别错过了! ⬇️本地下载| 🔵网站下载 ❤️资源指南: 💠主频道|🧑‍💻合作|🤖游戏|👍群聊 🔔标签:#安卓软件#PiliPlus#哔哩哔哩#blbl

💎PiliPlus 第三方哔哩哔哩v1.1.4 22 ♻️资源介绍:PiliPlus最新版是一款由民间大佬自制的B站第三方工具,PiliPlus软件为用户提供了丰富的功能和优质的观看体验,界面简洁友好,操作简单便捷,能够轻松上手,同时软件屏蔽了广告,感兴趣的千万别错过了! ⬇️本地下载| 🔵网站下载 ❤️资源指南: 💠主频道|🧑‍💻合作|🤖游戏|👍群聊 🔔标签:#安卓软件#PiliPlus#哔哩哔哩#blbl

💎BV(哔哩哔哩第三方TV版)v0.3.4 支持动态|杜比视界 12.3 ♻️资源介绍:之前跟大家说过b站官方的TV版超级难用,于是大多数人都比较推荐使用网上一款口碑非常好的第三方开发的哔哩哔哩TV版本,比官版更简洁、体验更好,可以说方方面面的体验都完爆官版。 ⬇️本地下载| 🔵网站下载 ❤️资源指南: 💠主频道|🧑‍💻合作|🤖游戏|👍群聊 🔔标签:#安卓软件#BV#blbl#TV

⭐️【资源名称】: PiliPlus 第三方哔哩哔哩v1.1.5-pre 24 🤖【适用平台】: #Andoid 🔄【应用版本】: 1.1.5 🔩【应用大小】:24MB 🧱【资源介绍】 PiliPlus最新版是一款由民间大佬自制的B站第三方工具,PiliPlus软件为用户提供了丰富的功能和优质的观看体验,界面简洁友好,操作简单便捷,能够轻松上手,同时软件屏蔽了广告,感兴趣的千万别错过了! 🟢绿色版 🟡在线下载:点击下载 📁#安卓软件#PiliPlus#哔哩哔哩#blbl

⭐️【资源名称】: PiliPlus 第三方哔哩哔哩 🤖【适用平台】: #Andoid 🔄【应用版本】: 1.1.4.13 🔩【应用大小】:25MB 🧱【资源介绍】 PiliPlus最新版是一款由民间大佬自制的B站第三方工具,PiliPlus软件为用户提供了丰富的功能和优质的观看体验,界面简洁友好,操作简单便捷,能够轻松上手,同时软件屏蔽了广告,感兴趣的千万别错过了! 🟢专业版 🟡在线下载:点击下载(无需密码) 🟡 uc下载:点击下载(无需密码) 🔄迅雷网盘:点击下载(无需密码) 📁#安卓软件#PiliPlus#哔哩哔哩#blbl

⭐️【资源名称】: PiliPlus 第三方哔哩哔哩 🤖【适用平台】: #Andoid 🔄【应用版本】: 1.1.4 🔩【应用大小】:25MB 🧱【资源介绍】 PiliPlus最新版是一款由民间大佬自制的B站第三方工具,PiliPlus软件为用户提供了丰富的功能和优质的观看体验,界面简洁友好,操作简单便捷,能够轻松上手,同时软件屏蔽了广告,感兴趣的千万别错过了! 🟢绿化版 🟡在线下载:点击下载(无需密码) 🟡 uc下载:点击下载(无需密码) 🔄迅雷网盘:点击下载(无需密码) 📁#安卓软件#PiliPlus#哔哩哔哩#blbl

12
ПредишнаСтр. 1 от 2Следваща