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

Резултати

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

Търсене: #fra

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

@HostEvaluate · Post #862 · 10.03.2023 г., 18:12

#Saltyfish#DE#FRA Host Provider: Saltyfish.IO Location: Frankfurt, Germany Specification: 1vCore(Intel Broadwell) | 1GB RAM | 10GB SSD | 1000GB @ 300Mbps | $15.91 / Quarterly (Promo code: FRA-P-ZRT9Y4HDFK) Looking glass: https://lg.saltyfish.io/ 感谢商家提供的测试机。机器性能和 e1 差不多,4k 的 IO 略低一点。上一次测他家法兰克福 CN2 的时候上游还是 xtom,现在改成 krino 的了。三网回程 CN2 没啥好说的。海外都是走 voxility, 和他们 elite network 应该是一样的。到联通的延迟会比 9929 高些,到电信和 9929 差不多。总体上来讲这俩没有拉开差距。流媒体解锁详见评论区。 https://paste.red/p/8486fee9dd0a

Host Testing and evaluation

@HostEvaluate · Post #841 · 19.11.2022 г., 15:20

#Saltyfish#DE#FRA Host Provider: SaltyFish.IO Location: Frankfurt, DE Specification: 1vCore(EPYC-Milan) | 1G RAM | 10G SSD | 1T @ 300Mbps | ¥45.5 / Mo Looking glass: lg.saltyfish.io 购买地址(含aff) 商家宣传三网回程 AS10099 的机器。这个是 e2, 和 e1 的区别就是一个 CPU 是 Intel 一个是 AMD, 一个最低配有货一个没货。跳隐的有点厉害。 https://paste.red/p/19caaad82cce

Host Testing and evaluation

@HostEvaluate · Post #824 · 12.09.2022 г., 08:17

#Saltyfish#DE#FRA Host Provider: SaltyFish.IO Location: Frankfurt, Germany Specification: 1vCore(Intel Broadwell) | 1G RAM | 10G SSD Storage | 1T @ 500Mbps | $5.59 / Month(Promo code: FRA-E-SGGU9D04V6) Looking glass: lg.saltyfish.io 购买地址 法兰克福三网回程 9929 VPS. 赶上中秋促销性价比不错。带宽给的也比较富裕。海外看起来清一色 voxility. https://paste.red/p/2647604b6246

Host Testing and evaluation

@HostEvaluate · Post #910 · 30.01.2026 г., 16:55

#EthernetServers#FRA#DE Host Provider: EthernetServers Location: Frankfurt am Main, Germany Specification: 1vCore (Xeon Gold 6142) | 1GB RAM | 55GB SSD | 2TB @ 10Gbps | $3 / Mo Test IP: 208.115.231.237 EthernetServers 在 LET 上的活跃可以追溯到 2022 年四月,曾经出过 $3 年付洛杉矶 QN 机房 VPS。现在有新泽西、迈阿密、洛杉矶、法兰克福四个位置可选,上游均为 limestonenetworks。机器的性能有点小垃圾了,CPU 跑分结果远不及 Xeon Gold 6142 水平,可能是突发型实例。磁盘的随机 IO 是 SATA SSD 水平,顺序读写勉强接近 NVMe 水平,应该是有缓存。这个性能跑一些轻量级服务还可以,比如静态网站托管、日志收集。虽然机器宣传限制是 10Gbps 带宽,但是我怀疑这个性能不允许它跑满。机器的流媒体解锁很不错,跨国平台基本都能看。联通晚上十二点能跑到 350Mbps。网络上,IPv4 接了 cogent,GTT,arelion 和 NTT。IPv6 多了一个 HE。回程的链路根据本地运营商具体的 ASN 变动,IPv4 地址:电信走 arelion/gtt,联通走 cogent/arelion,移动走 HE/cogent;IPv6 地址:电信走 arelion/gtt,联通走 arelion,移动走 cogent。比较不幸的是,三大的骨干网去程都会绕美,电信走 NTT,联通走 Arelion,移动走 cogent。精品网用户可能可以抽到直连的去程。联通晚上十二点能跑到350Mbps。 https://hosteval.mntpaji.com/2026/01/30/Blog/ethernetservers-fra/

Host Testing and evaluation

@HostEvaluate · Post #846 · 28.11.2022 г., 13:03

#prohosting24#DE#FRA Host Provider: ProHosting24 Location: Frankfurt, Germany Specification: 4vCore(EPYC-Rome) | 14GB RAM | 100GB Storage | Fair use @ 1Gbps | 4.95€ / Mo Looking glass: lg.synlinq.de(目前 IP Transit 提供商的) DDoS Protection: Yes, 750 Gbps 来自群友的投稿。黑五套餐,现在也卖完了。对比起常规套餐多了 2G 内存和翻倍的硬盘。买前必看关于他家的历史阅读 https://paste.red/p/0b24d9d56570

Host Testing and evaluation

@HostEvaluate · Post #844 · 23.11.2022 г., 17:26

#HTHosting#FRA#DE Host Provider: HT-Hosting Location: Frankfurt, Germany Specification: 4Core | 8G RAM | 50G NVMe | Fair use @ 1Gbps | €4 / Month 购买地址 感谢群友的投稿。德国商家 HT-Hosting 的黑五机器。商家宣称有 800G 的 DDoS 防御,并且有针对游戏服务器、HTTP/HTTPS 等协议的防御优化。上游是 active-servers, 而 active-servers 又接了 combahton, 所以这里怀疑 DDoS 防御是 combahton 提供的。回程电信联通 cogent, 移动 de-cix. 9929 也走 cogent, 延迟看起来不错。机器性能也挺好的。 https://paste.red/p/4eb924c6b2a2

Host Testing and evaluation

@HostEvaluate · Post #819 · 31.08.2022 г., 12:36

#1fire#DE#FRA Host Provider: 1fire Location: Frankfurt, Germany Specification: 1vCore(EPYC 75-2P) | 1GB RAM | 25GB NVMe | 20T @ 1Gbps then unlimited @ 10Mbps | €2.95 / Mo Looking glass: lg.23m.com 匿名投稿。上游是 23M。电信回程 telia, 移动联通回程 telia/level3. 报告里内存性能、磁盘速度和网络测速的结果中的逗号代表的是小数点。 https://paste.red/p/84e0aa828499

Host Testing and evaluation

@HostEvaluate · Post #813 · 19.08.2022 г., 13:48

#Signaltransmitter#DE#FRA Host Provider: Signaltransmitter Location: Frankfurt, Germany Specification: 1 vCore(Ryzen 3970X) | 1GB RAM | 30GB SSD | 25TB @ 1Gbps | €5.99 / Mo (incl. VAT) Looking glass: lg.signaltransmitter.de DDos Protection: 1 TB/s by NETSCOUT Arbor https://paste.red/p/c8de3f2e4b9c 匿名投稿。虽然商家写的使用 Intel 的 CPU,但是开出来是 AMD. ip-projects 的下游。联通回程直连或 telia, 电信回程 ntt/telia, 移动 de-cix.