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

Резултати

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

Търсене: #checking

当前筛选 #checking清除筛选
【AFF】发布/使用

@affman668 · Post #287 · 24.01.2025 г., 06:41

Citi bank花旗银行325美元支票账户开户礼叠加50美元邀请返现。 #aff#checking#citi 🔗点击申请 当您使用以上链接开设新支票账户并满足以下要求时,花旗银行将提供325美元的支票奖金: 开设一个新的符合条件的花旗支票账户。 在开户后90个日历日内,将至少2笔EDD直接存入您的新支票账户,总额必须等于3000美元或以上。 您的现金奖金将在30天内存入支票账户。 获得开户礼之后联系我另返50美元。 EDD包括通过ACH网络向支票或储蓄账户进行的任何转账, 还包含通过Zelle®的所有存款,以及通过ACH使用Venmo或PayPal等提供商进行的其他P2P付款。 联系:@zoyung UID: 5930436363

【AFF】发布/使用

@affman668 · Post #283 · 15.01.2025 г., 04:36

#Adro#Checking#返现#美国账户#低门槛 🇺🇸无需SSN或信用检查即可注册的账户 开户要求: • edu邮箱(推荐)/SSN/ITIN +地址 + US手机号 • 无存款要求 • 无需信用记录 • 地址证明可用wise账单 官网 https://www.joinadro.com/ 账户介绍 • 提供 Checking 帐户,实体卡和虚拟卡 • BIN:527770 • 支持 Apple Pay, Google Pay • 支持 ACH ,免费 • 无国际交易费用 • 无月费,无存款要求 • Adro World Mastercard 1%返现 开户奖励 • 邀请码1ey8dqn0RGu • 90天内完成任务可得 $50 注册流程 • 下载app Apple StoreGoogle Play • 打开app填入姓名、邮箱、密码 • 填入邀请码 1ey8dqn0RGu • 选择第一个International Student (F / J/ M) • 此时要求填入edu邮箱作为验证,可以稍后验证 • KYC 护照、人脸 (CN护照可认证 • 发送验证码到刚刚填的edu邮箱,输入验证码完成认证 • 提交地址证明,审核完毕即可成为完全体账户 *目前美国edu邮箱还是比较好注册的,我用的是Liberty University 联系:@wxmsl UID:5574594508