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

Резултати

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

Търсене: #maying

当前筛选 #maying清除筛选
杰尼龟和他的订阅们

@jngchannel · Post #2559 · 18.11.2023 г., 12:16

#Maying#魅影极速 #SSR 测速带宽 #上海Azure10G 官网: https://maying.co 频道: https://t.me/myjstw 群组: 见套餐内 套餐截图: https://t.me/taochanyuantu/92 老牌机场,现在与分站Ark一样,卖点的阿里云也没了... 这速度感觉是被限速了... 入口:深圳移动、广州电信 落地:Kamatera、Linode、Gcore、Eons、Kirino、Hinet等 即刻起至本月22日24时 新购、续费年付套餐赠送使用时长60天, 新购、续费半年付套餐赠送使用时长30天, 商店直接购买即可,无需优惠码

杰尼龟和他的订阅们

@jngchannel · Post #1791 · 10.02.2023 г., 12:53

#Maying#魅影极速 #SSR #阿里云入口 测速带宽 #武汉移动1200M 官网: https://maying.co 频道: https://t.me/myjstw 群组: 见套餐内 套餐截图: https://t.me/taochanyuantu/92 老牌机场,最为出名的就是他家的阿里云入口,其分站Ark已于先前换用其他入口,注册需要邀请码,注册界面点官方bot申请,VIP3和VIP4区别在于节点数量和流量不同,VIP5比VIP4多5条线路和部分流量,另有普拉斯Emby,本次使用的V5套餐进行测试 入口:上海阿里云、深圳阿里云、武汉电信 落地:Kamatera、Linode、OVH、Eons、Kirino、Hinet等

杰尼龟和他的订阅们

@jngchannel · Post #2049 · 14.04.2023 г., 06:12

#Maying#魅影极速 #SSR #阿里云入口 测速带宽 #镇江电信2000M 官网: https://maying.co 频道: https://t.me/myjstw 群组: 见套餐内 套餐截图: https://t.me/taochanyuantu/92 这速度太🌿了,不知道是不是被限速了 入口:上海阿里云、深圳阿里云、青岛阿里云 落地:Kamatera、Linode、OVH、Eons、Kirino、Hinet等

杰尼龟和他的订阅们

@jngchannel · Post #1185 · 11.11.2022 г., 12:40

#Maying#魅影极速 #SSR #阿里云入口 测速带宽 #安徽电信1000M 官网: https://maying.co 频道: https://t.me/myjstw 群组: 见套餐内 套餐截图: https://t.me/taochanyuantu/92 注册需要邀请码,注册界面点官方bot申请,VIP3和VIP4区别在于节点数量和流量不同,VIP5比VIP4多5条线路和部分流量,另有普拉斯Emby 老牌机场,最为出名的就是他家的阿里云入口,其分站Ark已于先前换用其他入口,在不久前魅影也暂时下掉阿里云入口改用其它入口,据群友说阿里云入口已于近日恢复,故对它进行测试,部分用户可能还是会因为地理位置导致使用不是很舒服 新购、续费年付套餐赠送使用时长60天 新购、续费半年付套餐赠送使用时长30天 截至11月20日24时 测到后面吃限速了......

杰尼龟和他的订阅们

@jngchannel · Post #727 · 15.09.2022 г., 00:38

#Maying#魅影极速 #SSR #阿里云入口 测速带宽 #北京AWS5000M 官网: https://maying.co 频道: https://t.me/myjstw 群组: 见套餐内 套餐截图: https://t.me/taochanyuantu/92 注册需要邀请码,注册界面点官方bot申请,VIP3和VIP4区别在于节点数量和流量不同,另有普拉斯Emby 老牌机场,唯二两家全阿里云入口的机场,另外一家是其分站Ark,在Rixcloud跑路前与Nexitally并称为御三持,不过部分用户可能因为地理位置导致使用不是很舒服 本次测速为VIP5账号,VIP5比VIP4多5条线路和部分流量

杰尼龟和他的订阅们

@jngchannel · Post #2285 · 23.06.2023 г., 13:15

#Maying#魅影极速 #SSR #阿里云入口 测速带宽 #辽宁移动2000M 官网: https://maying.co 频道: https://t.me/myjstw 群组: 见套餐内 套餐截图: https://t.me/taochanyuantu/92 老牌机场,相比上次测试,现在只剩青岛的阿里云入口,其余入口换成深圳电信与广州移动了,不过速度和上次一样🌿 即刻起至6月25日24时 新购、续费年付套餐赠送使用时长60天 新购、续费半年付套餐赠送使用时长30天 商店直接购买即可,无需优惠码 入口:青岛阿里云、深圳电信、广州移动 落地:Kamatera、Linode、Gcore、Eons、Kirino、Hinet、Nearoute等

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