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

Резултати

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

Търсене: #kk

当前筛选 #kk清除筛选

事情是这样的,我从 #kk 中转进去他们群,拉手说索莱尔百家乐可以安排首充,我就去了,kk以前我玩过所以也信任那边,然后我也去核实了,是不是真的官方中转,后面就百家乐上分了7000多,结果财务直接拉黑我了,找他们管理,管理说是假财务,他妈的官方频道放一个假财务进去?谁信啊,这不是钓鱼吗,杀我7000多,管理也直接把我拉黑了,妈的也开了几年了,现在7000都要杀,大家千万别去玩,kk是杀猪盘 😰订阅海外曝光:@haiwai05 😰 导航频道: @xueren3 😰 免费投稿 :@qizai4 😈广告合作 🥺悬赏寻人 🥺黑平台 🥺吃瓜频道

Hashtags

Das Boot

@dasboothistory · Post #1318 · 27.06.2024 г., 19:10

Из любопытного… C началом высадки союзников в Нормандии у их военнослужащих, находившихся в плену, в Германии, наступили не лучшие дни. Причина – прежний маршрут доставки грузов Красного Креста был нарушен из-за дезорганизации французских железных дорог. Американский Красный Крест принял решение направить два зафрахтованных нейтральных судна (уже прибывших в Барселону) в Гетеборг. Великобритания согласилась предоставить им маршрут для безопасного плавания через воды, контролируемые ее ВМС и ВВС. Также она согласилась предоставлять такой же маршрут и другим судам КК, но с учетом оперативной обстановки, то есть, если последняя не превалирует над всем остальным. При этом британцы потребовали, чтобы, после прибытия в Швецию, грузы КК для пленных доставлялись в Германию только через паромное сообщение между (оккупированной) Данией и Швецией на маршруте Хельсингборг-Хельсингор. Как я понимаю, Германия с этим согласилась, и КК стал доставлять грузы не маршрутом Испания-Швейцария-Германия, а вышеуказанным способом. #KK#rn

Hashtags

【供应】 供应名称: 微信 QQ kakao 供应介绍: 韩国kakao talk 各种老号 010接码注册 各国本土耐用FB iG 推特 各国Tiktok老号 一手国内牛逼微信可解封 企业微信 芝麻客服 一手国外私人微信无视ip 一手国卡0违规单 双 三 皇冠 QQ 可解封 企点qq 支付宝 企业支付宝 价格: 价格私聊 标签:#微信#kk#QQ 👇点击下方按钮查看发布者

【供应】 供应名称: 微信 QQ kakao 供应介绍: 韩国kakao talk 各种老号 010接码注册 各国本土耐用FB iG 推特 各国Tiktok老号 一手国内牛逼微信可解封 企业微信 芝麻客服 一手国外私人微信无视ip 一手国卡0违规单 双 三 皇冠 QQ 可解封 企点qq 支付宝 企业支付宝 价格: 10-1000u 标签:#微信#kk#QQ 👇点击下方按钮查看发布者

【供应】 供应名称: 微信QQ企业主体企点 供应介绍: 供应介绍: 企业kakao(主推) 韩国kakao 接码注册 韩国kakao 实名带好友 韩国kakao单实名老号 企业版本kakao 一个企业可以10个客服去接粉 不封不死不限制 坦克微信 有货 上去就可以秒改,被加,进群,都可以聊天不异常 国内外各类聊天软件 价格: 价格私聊 标签:#微信#QQ#kk 👇点击下方按钮查看发布者

【供应】 供应名称: 微信QQ企业主体企点 供应介绍: 企业kakao(主推) 韩国kakao 接码注册 韩国kakao 实名带好友 韩国kakao单实名老号 企业版本kakao 一个企业可以10个客服去接粉 不封不死不限制 坦克微信 有货 上去就可以秒改,被加,进群,都可以聊天不异常 国内外各类聊天软件 价格: 价格私聊 标签:#微信#QQ#kk 👇点击下方按钮查看发布者

【供应】 供应名称: kakao 支付宝 微信 供应介绍: 企业kakao(主推) 韩国kakao 接码注册 韩国kakao 实名带好友 韩国kakao单实名老号 企业版本kakao 一个企业可以10个客服去接粉 不封不死不限制 国卡QQ 全系列有货 坦克微信有货质量嘎嘎硬 企业微信有货 支付宝 有限公司及个体户企业支付宝 企业支付宝单主 企业支付宝1拖2 企业支付宝1拖4 公司带淘宝店带手持 一家公司 三家 五家 @tykf001 价格: 咨询客服 标签:#KK#支付宝#微信#QQ 👇点击下方按钮查看发布者

【供应】 供应名称: kakao 支付宝 微信 供应介绍: 企业kakao(主推) 韩国kakao 接码注册 韩国kakao 实名带好友 韩国kakao单实名老号 企业版本kakao 一个企业可以10个客服去接粉 不封不死不限制 国卡QQ 全系列有货 企业微信有货 有限公司及个体户企业支付宝 企业支付宝单主 企业支付宝1拖2 企业支付宝1拖4 公司带淘宝店带手持 一家公司 三家 五家 @tykf001 价格: 咨询客服 @tykf001 标签:#KK#支付宝#微信#QQ 👇点击下方按钮查看发布者

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