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

Резултати

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

Търсене: #tim

当前筛选 #tim清除筛选
Host Testing and evaluation

@HostEvaluate · Post #628 · 23.03.2020 г., 00:55

感谢群友 @ColinWood 的投稿 HostProvider: Tim (Italy) Specification: 1 vCore | 1G RAM | 20 SSD/HDD Network: Unlimited @ 1Gbps Looking glass: 156.54.63.1 Price: €6(tax ex.) / Month 需要欧洲证件才能购买 如果想靠路由环游世界可以买 CPU 性能巨差,且为 OVZ 虚拟化. 电信和部分移动走德国,联通和部分移动绕美。看起来是 tisparkle 单线。计费为自然月计费。 https://paste.ubuntu.com/p/kHXn8pWyNB #IT#Tim

Hashtags

#xp模块#模了个块#QQ#TIM 客户端增强模块 已知支持的版本: QQ 9.0.65 + TIM 4.0.97 + 具体版本请自测 功能: 自定义名片,长按消息功能 头像功能,发送卡片 字符防卡顿,回应表情防闪退 屏蔽戳一戳动画 篡改图片比例 随机伪装手机号码 屏蔽进群特效 恢复旧版侧边栏,弹窗功能 上传文件重命名 群文件下载次数 屏蔽关键词动画 解除危险网页拦截 闪照破解 跳过登录倒计时 恢复旧版设置 去除扫码限制 去除封号状态限制 自定义主页等级 QQ瘦身(清理QQ内存) 具体功能还有很多 更新日志:修复多个BUG

#xp模块#qq#tim#QFun _1.2.9 一个QQ/TIM功能性Xposed模块 设置及主界面加号可见模块入口 不同帐号功能数据不互通 理论适配: QQ9.1.25+/TIM4.0.95+ 请尽量更新到最新版本 功能: 群打卡, 防撤回 平板模式, 闪照破解 解除风险网址拦截 屏蔽艾特全体 一键点赞 上传apk重命名 去除回复自动艾特 以及其他功能 (仅列举部分功能) 更新日志: 新增语音自动转文字 新增收藏表情按使用排序 主题切换新增跟随宿主选项 修复账号切换监听 修复记住上次查看位置导致查的找聊天记录错误跳转 修复语音转发导致的错误拦截正常转发 修复打卡和续火的一些问题 修复显示艾特对象未携带群聊信息

祂录lze目录群

@talulze · Post #1843 · 08.08.2024 г., 14:36

今天准备回复QQ群友的消息的时候,QQ卡了一小会,因为我用的QA模块[ https://t.me/QAuxiliary ],功能虽好,但是在我手机上有时非常卡顿(可能我手机有点老了)。 QQ TIM 于是在TG上搜QQ第三方成品包,在一个群我搜到了【QQTim版】【 https://t.me/TIMUpdates 】,反正作为一个纯聊天的软件还是挺好用的,基本无广告(看QQ动态的话还是会有),所以我就装上了,玩起来异常丝滑 至于有些人说tim版不能登录的情况,我这里没遇到; 还有人说没防撤回那些,我觉得倒是还好,因为我手机基本没这个需求,就是看到消息回复一下。反正我电脑QQ也有防撤回,出过教程的【 https://t.me/talulze/1791 】 标签:#QQ#TIM#安卓手机软件#精简

@全体成员 (安全告知)通过调试新版本 #QQ ,果然增加了自动读取上报本机Chrome所有 #浏览记录 和 #Cookie 自动上报的功能。#TIM 更离谱。会中招的浏览器包括但不限于Chrome、Chromium、360极速、360安全、猎豹、2345等浏览器。大家有隐私需求的请远离QQ ! By @LeanSaidWTF

比特云-通知频道

@biteyunNews · Post #502 · 17.01.2021 г., 06:22

@全体成员 (安全告知)通过调试新版本 #QQ ,果然增加了自动读取上报本机Chrome所有 #浏览记录 和 #Cookie 自动上报的功能。#TIM 更离谱。会中招的浏览器包括但不限于Chrome、Chromium、360极速、360安全、猎豹、2345等浏览器。大家有隐私需求的请远离QQ ! By @LeanSaidWTF

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