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

Резултати

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

Търсене: #adguard

当前筛选 #adguard清除筛选

#Adguard🌐国际版,adguard 终生许可证,25元/设备,7人车补6人,支持Win/Mac/Ios/Android去广告防钓鱼诈骗网站。每个激活码仅限激活一台设备(多台设备可买多个位置),需要换设备可自行反激活。UID:1296004501 该拼车信息审核有效期已过,请勿上车。

Hashtags

CXPLAY World

@cxplayworld · Post #6268 · 27.02.2026 г., 12:07

#吐槽 迎接 SockFilter:全新实验性网络驱动程序登场 https://adguard.com/zh_cn/blog/adguard-for-windows-v7-22-4.html #AdGuard 的新网络驱动, 有希望解决本地复杂网络环境下的多应用兼容问题, 比如反病毒软件, 网络代理软件, 流量监控软件, 数据包分析软件和 AdGuard 共存时的情况. via Nostr@cxplay

CXPLAY World

@cxplayworld · Post #6138 · 29.01.2026 г., 15:14

#吐槽 In reply to nevent1q…2245 _________________________ #AdGuard 最近更新了文档, 解释了 $urltransform 修饰符新添加的这个解码特性, 和这个 issue 里面讨论的最后提出的方案一样. 用法是管道符串联起查找替换到解码的流程, 同时支持解码百分号编码(pct)和 Base64 编码(b64): ||example.com/redirect^$urltransform=/^https?:\/\/example.com\/redirect=(.+)/\$1/|pct|b64 如果管道中的其中一段失败则会直接将失败前的输入作为结果返回. via Nostr@cxplay

CXPLAY World

@cxplayworld · Post #6128 · 27.01.2026 г., 12:15

#吐槽 #AdGuard 的 HTML 元素修饰规则现在支持简化的路径过滤语法, 不再需要用 $path 修饰符单独限定路径了. https://adguard.com/kb/general/ad-filtering/create-own-filters/#cosmetic-path-in-domain via Nostr@cxplay

CXPLAY World

@cxplayworld · Post #6127 · 27.01.2026 г., 06:44

#吐槽 In reply to nevent1q…d0ch _________________________ 更新到新版也是因为 #AdGuard 最近的 urltransform 修饰符出了一点奇怪的问题(发现最新的 v7 和 v8 都有), 没办法进行正常的页面资源和请求的重定向, 同源和非同源都不行, 导致我的大部分依赖这个修饰符进行的规则都失效了. 怀疑是他们的 CoreLibs 内核更新导致的. The urltransform in page internal redirects not working · Issue #5829 · AdguardTeam/AdguardForWindows https://github.com/AdguardTeam/AdguardForWindows/issues/5829 via Nostr@cxplay

CXPLAY World

@cxplayworld · Post #6126 · 27.01.2026 г., 06:40

#吐槽 更新到了 #AdGuard v8.0 beta 2, 目前体验良好, 默认过滤联网应用也正常运行, 已经把反病毒软件的 Web 防护关掉了, 在过滤日志里面就能看到联网应用发起的 HTTP 和 TCP 连接. 不过偶尔无法过滤联网应用(包括浏览器)的 HTTP 连接, 需要重新手动添加一遍进程 exe, 并且默认的联网过滤也不会开启 HTTPS 解密, 也需要手动去开启, 这样也挺好的. via Nostr@cxplay

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