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

Резултати

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

Търсене: #vultr

当前筛选 #vultr清除筛选
口袋银河

@GalaxyPocket · Post #35 · 09.03.2023 г., 18:02

Vultr Free Tier 项目的第一批申请正在陆续批准 3 月 7 日,Vultr 在其网站上宣布[1]将“提供完全免费的高性能云虚拟机”,即 Vultr Free Tier 项目[2]。该项目承诺将提供 1 vCPU, 0.5GB 内存、10GB 本地存储和额外的 2TB 出站流量。申请参与 Vultr Free Tier 项目需要一个 Vultr 帐户、充值最低金额且开启两步验证。 近日不少网友[DP1, 2, 3, 4, 5]收到 Vultr 的邮件,告知其已通过 Vultr Free Tier 项目的申请,且具体内容需要登录 https://my.vultr.com/settings/#settingsfreetier 查看。 从该页面显示的信息来看,Vultr Free Tier 项目目前有效期只有一年(自通过日期开始计算的一年),且每次只能启动一台免费实例;该实例可在控制台被关闭并重新引导,但每月仅能够在控制台重新引导两次。 启动免费实例的步骤为: 1. 访问 https://my.vultr.com/deploy/ 部署新实例; 2. 选择第二项 Cloud Compute 云计算实例; 3. 选择第四项 Intel(R) Regular Performance 常规性能的 Intel 实例; 4. 选择提供免费实例的地域 (Server Location); 5. 选择提供免费实例的系统镜像 (Server Image); 6. 选择服务器尺寸 (Server Size) 为 Free Tier; 7. 单击右下角的 Deploy Now. 免费实例可以被分配到一个免费的 IPv4 地址; 目前仅迈阿密 (Miami, US)、西雅图 (Seattle, US) 和法兰克福 (Frankfurt, DE) 共 3 个地域提供免费实例; 目前除 Arch Linux, Ubuntu, Windows Core Standard 和 Windows Standard 外的系统镜像均可供部署免费实例。 [1] https://www.vultr.com/news/new-free-tier-plan/ [2] https://www.vultr.com/free-tier-program/ #Vultr#免费

Host Testing and evaluation

@HostEvaluate · Post #858 · 26.01.2023 г., 13:15

#Vultr#JP#KIX Host Provider: Vultr Location: Osaka, Japan Specification: 1vCore | 1GB RAM | 25GB NVMe | 2T | $6 / Mo Looking glass: osk-jp-ping.vultr.com 一份匿名投稿。vultr 新增加了大阪 pop, 目前有 AMD High Performance 和 Intel High Performance. 两个都是 Hyper-V 虚拟化。就跑分来看 AMD 的性能会好些。联通回程 telia 绕欧洲,电信回程 pccw 绕美,移动回程绕美 telia。这延迟可以告别大陆使用了 。 AMD: https://paste.red/p/310758d422a2 Intel: https://paste.red/p/59cb52c2cc57

Host Testing and evaluation

@HostEvaluate · Post #851 · 11.12.2022 г., 02:14

#Vultr#ZA#JNB Host Provider: Vultr Location: Johannesburg, South Africa Specification: 1vCore (EPYC-Rome) | 1GB RAM | 25GB NVME | 2TB @ 1Gbps | $6 / Mo Looking glass: jnb-za-ping.vultr.com 上游提供商为 Cogent + PCCWG,接入 NAPAfrica IX 国内延迟普遍较高 (400ms+),上海 CN2 / 9929 (~350ms) https://paste.red/p/5ba1efe5f4ec