@TFGames · Post #1607 · 22.12.2023 г., 20:51
#ROM#RED#GAMES https://testflight.apple.com/join/QFsY24ZN
TGINSIGHT SIMILAR POSTS
Изходен канал @clockstackwheels · Post #721 · 26.12
Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev
Hashtags
Търсене: #rom
@TFGames · Post #1607 · 22.12.2023 г., 20:51
#ROM#RED#GAMES https://testflight.apple.com/join/QFsY24ZN
@YuKongA13579 · Post #874 · 28.06.2024 г., 10:12
小米 14 1.0.42.0 / 1.0.24.6.24 OS1.0.42.0.UNCCNXM: 笔记 - 修复 笔记附件数据超过20MB时,云同步失败的问题 文件管理器 - 优化 文件列表的加载速度 时钟 - 修复 闹钟响铃后,无法通过按键关闭闹钟的问题 手机管家 - 优化 体检分数计算规则,提升体检分数准确性 小部件 - 新增 出行助手功能,智能提醒火车、飞机行程,让出行更便捷(后续需在小米应用商店将智能助理应用升级至5.12.2及以上版本,短信升级至15.0.2.24及以上版本,MiAI引擎升级至2.2及以上版本时可支持) - 优化 负一屏加载速度 - 修复 点击音乐小部件时缩放动画异常的问题 - 修复 添加时钟小部件时,低概率出现的显示异常问题 状态栏、通知栏 - 修复 单行通知图标显示不全的问题 - 修复 空白通知仅展示图标的问题 - 修复 状态栏切换字体大小或切换三方字体后,5G图标显示不全的问题 计算器 - 优化 计算器按键灵敏度 相册 - 优化 视频同步策略,提升播放画面流畅度 - 修复 短时间产生大量图片时,相册预览图加载时间过长的问题 - 修复 云同步过程中照片时间丢失,导致日期错误的问题 - 修复 在云同步时删除照片后,照片再次出现的问题 - 修复 部分机型时光卡片无法播放的问题 - 修复 连续拍摄大量照片时,相册预览图显示异常的问题 系统 - 优化 应用预加载,提升应用启动速度 - 优化 启动动画策略,降低应用启动延迟 - 优化 应用切换时的系统资源回收策略,提升应用流畅度 - 优化 内存使用,提升抖音流畅度 - 修复 通知过多可能导致系统重启的问题 - 合入2024年6月安全补丁,增强系统安全 锁屏 - 优化 锁屏长按进入编辑的触发策略,减少误触 控制中心 - 修复 部分快捷开关低概率失效的问题 OS1.0.24.6.24.DEV: 系统 - 优化 应用预加载,提升应用启动速度 - 优化 启动动画策略,降低应用启动延迟 - 优化 应用切换时的系统资源回收策略,提升应用流畅度 - 优化 内存使用,提升抖音流畅度 #Xiaomi14#HyperOS#ROM#Recovery
@xiaomi_12tpro_updates · Post #338 · 22.05.2025 г., 00:53
#LineageOS#Unofficial#ROM#V#Diting LineageOS 22.2 - UNOFFICIAL | Android 15 Updated:05/22/'25 ▪️Download ▪️Sources ▪️Support ▪️Playground HQ ▪️Changelog ▪️Wiki ▪️XDA Notes: • Weekly automated build By@Adrianyyyy Follow@HawaiiReleases Join@Polywaiparrot
@xiaomi_12tpro_updates · Post #336 · 21.05.2025 г., 00:39
#LineageOS#Unofficial#ROM#V#Diting LineageOS 22.2 - UNOFFICIAL | Android 15 Updated:05/21/'25 ▪️Download ▪️Sources ▪️Support ▪️Playground HQ ▪️Changelog ▪️Wiki ▪️XDA Notes: • Weekly automated build By@Adrianyyyy Follow@HawaiiReleases Join@Polywaiparrot
@xiaomi_12tpro_updates · Post #333 · 19.05.2025 г., 20:24
#LineageOS#Unofficial#ROM#V#Diting LineageOS 22.2 - UNOFFICIAL | Android 15 Updated:05/19/'25 ▪️Download ▪️Sources ▪️Support ▪️Playground HQ ▪️Changelog ▪️Wiki ▪️XDA Notes: • Weekly automated build By@Adrianyyyy Follow @xiaomi_12tpro_updates Join @xiaomi12tpro_chat
@xiaomi_12tpro_updates · Post #316 · 22.04.2025 г., 19:29
#LineageOS#Unofficial#ROM#V#Diting LineageOS 22.2 - UNOFFICIAL | Android 15 Updated:04/22/'25 ▪️Download ▪️Sources ▪️Support ▪️Playground HQ ▪️Changelog ▪️Wiki ▪️XDA Notes: • Weekly automated build By@Adrianyyyy Follow @xiaomi_12tpro_updates Join @xiaomi12tpro_chat
@xiaomi_12tpro_updates · Post #236 · 27.01.2025 г., 21:23
#LineageOS#Unofficial#ROM#V#Diting LineageOS 22.1 - UNOFFICIAL | Android 15 Updated:01/27/'25 ▪️Download ▪️Sources ▪️Changelog ▪️Wiki ▪️XDA Notes: • Weekly automated build By@Adrianyyyy Follow @xiaomi_12tpro_updates Join @xiaomi12tpro_chat
@xiaomi_12tpro_updates · Post #472 · 03.11.2025 г., 21:48
#LineageOS#Unofficial#ROM#B#Diting LineageOS 23.0 - UNOFFICIAL | Android 16 Updated:11/03/'25 ▪️Download ▪️Sources ▪️Support ▪️Playground HQ ▪️Changelog ▪️Wiki ▪️XDA Notes: • Weekly automated build By@Adrianyyyy Follow@HawaiiReleases Join@Polywaiparrot
@xiaomi_12tpro_updates · Post #455 · 20.10.2025 г., 21:10
#LineageOS#Unofficial#ROM#B#Diting LineageOS 23.0 - UNOFFICIAL | Android 16 Updated:10/20/'25 ▪️Download ▪️Sources ▪️Support ▪️Playground HQ ▪️Changelog ▪️Wiki ▪️XDA Notes: • Weekly automated build By@Adrianyyyy Follow@HawaiiReleases Join@Polywaiparrot
@xiaomi_12tpro_updates · Post #445 · 13.10.2025 г., 21:27
#LineageOS#Unofficial#ROM#B#Diting LineageOS 23.0 - UNOFFICIAL | Android 16 Updated:10/13/'25 ▪️Download ▪️Sources ▪️Support ▪️Playground HQ ▪️Changelog ▪️Wiki ▪️XDA Notes: • Weekly automated build By@Adrianyyyy Follow@HawaiiReleases Join@Polywaiparrot
@xiaomi_12tpro_updates · Post #443 · 06.10.2025 г., 20:45
#LineageOS#Unofficial#ROM#B#Diting LineageOS 23.0 - UNOFFICIAL | Android 16 Updated:10/06/'25 ▪️Download ▪️Sources ▪️Support ▪️Playground HQ ▪️Changelog ▪️Wiki ▪️XDA Notes: • Weekly automated build By@Adrianyyyy Follow@HawaiiReleases Join@Polywaiparrot
@xiaomi_12tpro_updates · Post #442 · 29.09.2025 г., 20:37
#LineageOS#Unofficial#ROM#B#Diting LineageOS 23.0 - UNOFFICIAL | Android 16 Updated:09/29/'25 ▪️Download ▪️Sources ▪️Support ▪️Playground HQ ▪️Changelog ▪️Wiki ▪️XDA Notes: • Weekly automated build By@Adrianyyyy Follow@HawaiiReleases Join@Polywaiparrot