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

Резултати

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

Търсене: #miui

当前筛选 #miui清除筛选
YuKongA | Channel

@YuKongA13579 · Post #1657 · 13.11.2025 г., 16:01

目前我参与的或认识的人使用 miuix 库的部分项目: 1、Updater-KMP:https://github.com/YuKongA/Updater-KMP 2、Font-Weight-Test_Compose:https://github.com/YuKongA/Font-Weight-Test_Compose 3、HQ-ICON_Compose:https://github.com/YuKongA/HQ-ICON_Compose 4、RestoreSplashScreen:https://github.com/YuKongA/RestoreSplashScreen 5、StatusBarLyric:https://github.com/YuKongA/StatusBarLyric 6、KernelSU:https://github.com/tiann/KernelSU 7、InstallerX-Revived:https://github.com/wxxsfxyzm/InstallerX-Revived 8、Payload-Dumper-Compose:https://github.com/rcmiku/Payload-Dumper-Compose 9、XiaomiHelper:https://github.com/HowieHChen/XiaomiHelper 10、HyperStar:https://github.com/YunZiA/HyperStar 11、HyperPods:https://github.com/Art-Chen/HyperPods 12、WOMMO:https://github.com/YifePlayte/WOMMO 13、NoRelaunch:https://github.com/YifePlayte/NoRelaunch ...待补充 二次封装库项目: 1、hyperx-compose:https://github.com/HowieHChen/hyperx-compose 曾经使用过,但现在已经面目全非的项目: 1、OShin:https://github.com/suqi8/OShin #miui

Hashtags

Lsposed Modules Updates Tracker

@lsposed_Modules_Updates_Trackers · Post #6656 · 23.04.2026 г., 16:00

#MIUI#ChsBuffer 模块:io.github.chsbuffer.miuihelper 简介:MIUI 生活质量提升 版本:19-1.1.17 更新时间:2024/10/17 09:11:09 更新日志: 修复 手机管家 10.x.x 应用详情页默认打开设置 修复 HyperOS 1.0 Android 14 通知更多设置打开通知频道设置 Fix Security app 10.x.x Replace App Info "Clear defaults" with "Open by default" setting Fix Notification's "More Info" redirect to the corresponding notification channel setting @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot

看看人间 @KKRJian

@KKRJian · Post #1174 · 29.11.2022 г., 12:13

有消息称#小米#MIUI 安全组件即小米的杀毒引擎添加有国家反诈中心的扫描接口(nationalAntiFraudSingleAppScan)。 at com.miui.guardprovider.engine.mi.antidefraud.AntiDefraudAppManager.getSign(Unknown Source:0) at com.miui.guardprovider.engine.mi.antidefraud.MiDetectAppsManager.virusInMiEngineRiskList(Unknown Source:30) at com.miui.guardprovider.engine.mi.antidefraud.AntiDefraudAppManager.getDetectUnsafeAppStatus(Unknown Source:6) at com.miui.guardprovider.manager.SecurityService$a.nationalAntiFraudSingleAppScan(Unknown Source:17) at com.miui.guardprovider.aidl.IAntiVirusServer$Stub.onTransact(Unknown Source:38) MIUI security components.apk源代码分析 viamogua.co

Hashtags

Lsposed Modules Updates Tracker

@lsposed_Modules_Updates_Trackers · Post #6876 · 28.04.2026 г., 02:06

#MIUI#Mufanc 模块:mufanc.tools.applock 简介:【MIUI 12】防止应用被侧滑杀死或一键清理 版本:20220417-2.1.1.r46.7e4d397 更新时间:2022/04/17 13:50:08 更新日志: 提升获取进程名的性能 支持按拼音首字母缩写搜索应用 显示正确的「MIUI 版本」 基于 Shizuku 的 NoRoot 工作模式(Beta) 将作用域列表移动至管理器存储 支持备份和恢复作用域 调整了应用图标样式 @lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot

Hashtags

木制杂物间

@trashbox_404 · Post #123 · 03.05.2025 г., 04:28

小寄巧:(对于澎湃OS的出行助手) 可以自己撰写一条短信发给自己,以实现负一屏显示列车信息,如下: 您的火车票购票成功,3月18日G3051次福州南18:15开,14车06D 【通知】您购买的2025年1月1日CZ8888航班已支付成功!该航班计划于当日14:10从武汉天河国际机场T3航站楼起飞,15:50抵达厦门高崎国际机场T3航站楼 但只能是普通短信,不可以是网络短信。 #MIUI#HyperOS#澎湃OS

ПредишнаСтр. 1 от 3Следваща