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 подобни публикации

Търсене: #description

当前筛选 #description清除筛选
VmShell VPS Channel

@vmshell · Post #1679 · 03.03.2025 г., 09:15

VPS内存太小,VmShell,小内存自动清理缓存脚本 “VPS小内存硬盘日志定时清理工具”是为了针对系统如何清理VPS自动缓存,保持系统的清洁与活力的小工具,喜欢的朋友可以给我们点亮我们的小星星 VPS小内存硬盘日志定时清理工具,作者:Vmshell INC,是美国怀俄明注册正规企业,现注册有自有网络运营ASN号:147002;提供香港CMI线路高速网络云计算中心和美国云计算中心,小巧灵动的VPS为全球网络提供全方位服务, 官网订购地址: https://vmshell.com/; 企业高速网络: https://tototel.com/; TeleGram讨论:https://t.me/vmshellhk; TeleGram频道:https://t.me/vmshell; 提供微信/支付宝/美国PayPal支付(3日内无条件退款); 登录VPS的SSH之后,执行如下代码后reboot重启服务器 第一步:创建文件夹和文件名: mkdir -p /opt/script/cron && vim /opt/script/cron/cleanCache.sh 输入如下文字,之后":wq"保存退出 #!/bin/bash #description: 清除缓存 echo "开始清除缓存" sync;sync;sync #写入硬盘,防止数据丢失 chmod -R 777 /opt/script/cron #修改其文件的權限 chmod -R 777 /var/spool/mail #修改其郵件消息的權限 #sleep 10 #延迟10秒 echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches echo "结束清除缓存" #description: 删除30天之前的r日志文件… https://linuxword.com/?p=43179

STAR VET BOOKS

@starvetbooks · Post #4732 · 24.11.2024 г., 04:18

https://t.me/starvetbooks #PENSTREP_INJECTION (Procaine penicillin & Dihydrostreptomycin injection) #PRODUCT: Suspension #ADMINISTRATION ✓Parenteral #COMPOSITION ✓Procaine penicillin: 200ml ✓Dihydrostreptomycin: 250ml ✓Sulphate: 200 mg. ✓Excipients: ad1 ml. #DESCRIPTION The combination of #PROCAINE_PENICILLIN_G & #DIHYDROSTREPTOMYCIN acts additive and in some cases synergistic. #PROCAINE_PENICILLIN_G A Narrow-spectrum, a bactericidal against Gram-positive bacteria, #DIHYDROSTREPTOMYCIN An aminoglycoside, a bactericidal, against Gram-negative. #INDICATION/USES Arthritis, mastitis and gastrointestinal, respiratory and urinary tract infections rapid healing of wound/injury. NEXT ⏭️👇