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

Резултати

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

Търсене: #xxx

当前筛选 #xxx清除筛选
FlyingSky's Channel

@flyingsky233 · Post #1858 · 01.07.2022 г., 11:25

以前想要引用 web 网页的某一段需要用到锚(即URL里 #xxx 的部分) 缺点很明显,只能引用到 HTML 里的 id,如果这段文字没有 id 的话就不行了 后来某几次在 Google 的时候发现点击某个候选网页可以让屏幕直接滚动到命中的文字并高亮 翻了翻是 WICG 有个草案叫 Scroll-to-Text Fragments 说白了就是允许在 URL 里直接指向网页内的任意一段文本,格式是#:~:text=<arbitrary text> 例:https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#:~:text=ECMAScript%20Modules%20in%20Web%20Workers 某些场合下挺好用的不得不说,需要注意的是仅Chrome 83+和Opera 68+支持

Hashtags

探索号

@seeker_rc · Post #19915 · 07.05.2026 г., 18:25

做了个在线简历工具:一个简历,多种版本,用 Claude Code 改起来很爽 最近做了一个小工具:cv.pro (点了没用, 域名还没买下来, support 看网页 footer) 项目地址: https://cv.ha7ch.com Repo: <https://github.com/LAWTED/cv-pro> 核心想解决两个问题: 1. 简历不应该只有一个版本 同一份经历,投不同岗位时重点其实不一样。 比如: /xxx?focus=research /xxx?role=engineer /xxx?company=alibaba 投研究岗就突出 paper /... via V2EX 分享创造 标签: #Claude#Code#xxx ⚡️探索号频道 ⚡️探索者频道 ⚡️探索者交流群 ⚡️ Youtube 频道:科技探索者 每天推荐有趣内容,欢迎订阅、转发。

探索号

@seeker_rc · Post #20135 · 10.05.2026 г., 06:25

德州扑克记账工具 从去年开始玩德州, 第一次玩过之后我就知道这个游戏我会喜欢一辈子. 一直玩到了现在, 中间有过大水上和大水下, 有时候也会想着备忘录里面记录一下每一次的战绩, 想着最后或者能看一段时间我总体到底是输是赢. 但是太麻烦了, 备忘录我最多记录一个+xxx 或者-xxx, 外加一个时间 我也不好统计也不好算. 于是我做了这么个网站, 尽可能的减少记录的阻力, 然后还方便我查看总体结果. <https://pokerlog.cc/zh> 希望大家多多提意见, 做这个网站的时候, 尽可能的把一些平时学到的做产品的内容用上了, 也是一个我自己本身一直有的需求. 谢谢谢谢. via V2EX 分享创造 标签: #xxx#记录#备忘录 ⚡️探索号频道 ⚡️探索者频道 ⚡️探索者交流群 ⚡️ Youtube 频道:科技探索者 每天推荐有趣内容,欢迎订阅、转发。

PT资讯频道

@PrivateTrackerNews · Post #434 · 13.05.2019 г., 13:47

2019.5.13 #开放注册 #OpenSignups #国外PT #整理自电报PT资讯频道 @privatetrackernews #CZpodzone #Thailand#XXX#General 泰国站 xxx 综合站 http://www.cz-podzone.com/signup.php powered by NexusPHP,only Thai language,start from 2015,torrents 60k+ #开放申请注册 #Blutopia #HD 高清站 https://blutopia.xyz/application BLUTOPIA is home to CultFilms™, BLURANiUM and BLUTONiUM