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

Резултати

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

Търсене: #teammew

当前筛选 #teammew清除筛选
Genshin Null

@GenshinNull · Post #5867 · 05.06.2024 г., 15:26

source@GenshinNull#TeamMew [4.8 beta] 艾梅莉埃(Emelie)角色演示 00:00 ~ 00:13 普通攻击 00:14 ~ 00:19 重击 00:20 ~ 00:25 元素战技 00:26 ~ 00:31 元素爆发

Hashtags

Genshin Null

@GenshinNull · Post #5786 · 15.03.2024 г., 05:33

source@GenshinNull#TeamMew#null [4.6 beta] 阿蕾奇诺(Arlecchino)周本 "The Knave" 入口石碑铭文 Here lies Harbinger Crucabena To enter the fading lambency of the dusk To ensure the ascending radiance of the dawn 执行官 Crucabena[1] 在此安眠 进入那黄昏渐褪的余晖 使黎明的晨曦安然升起 (译文) [1]: Crucabena 是 Cerridwen 或 Ceridwen 的法语拼写, 音译一般为 "凯丽德温" 或 "关德温". Cerridwen 是凯尔特神话中的一名女巫, 掌管着一口象征着知识和灵感的坩埚, 部分异教徒则认为她是代表着重生和转变的女神.

Genshin Null

@GenshinNull · Post #5760 · 12.03.2024 г., 13:08

(1/2/3/4) @GenshinNull#TeamMew#Foul#unknown [4.6 beta] 新地图区域开放 枫丹南部海域几乎完全开放(诺思托伊区), 其上有一座小岛. 雷穆利亚(旧日之海)会作为独立地图同时上线.

Genshin Null

@GenshinNull · Post #5792 · 19.03.2024 г., 14:41

(1/2/3/4) @GenshinNull#dim#TeamMew#Nightmare [4.6 beta] v2 阿蕾奇诺(Arlecchino) 的重击特殊移动状态 v2 版本中, 阿蕾奇诺(Arlecchino)的重击增加了一种特殊的悬浮移动机制(示例动画未完成). 玩法类似于那维莱特的持续重击中的悬浮, 但比那维莱特重击移动速度更快, 也可跨越水面. 消耗体力进行持续大约 3 秒的特殊移动(最多 15 秒), 期间无法进行攻击, 期间再次重击可退出该状态. 速度相比莫娜和神里绫华的替代冲刺快, 慢于夜兰的元素战技.

Genshin Null

@GenshinNull · Post #5822 · 06.04.2024 г., 23:37

(1/2/3/4) @GenshinNull#Hexenzirkel#Nightmare#TeamMew 4.6 版本游戏优化 Pt.4 寻宝罗盘功能增强 使用寻宝罗盘之后, 宝箱的位置会在游戏左上角小地图以及展开后的大地图中显示(图一). 宝箱图标将同时给出宝箱所处的高度信息, 提示宝箱是否在地下或水下. 该功能更新后, 寻宝罗盘原先用于指引宝箱相对位置的短时间闪光动画(图二)将被移除.

Genshin Null

@GenshinNull · Post #5778 · 14.03.2024 г., 14:24

(1/2/3/4) @GenshinNull#Genshin_Intel#CroiX#DN#TeamMew 4.6 版本速览 1. 新角色: 阿蕾奇诺(Arlecchino)和她的周本. 2. 新区域: 枫丹南部海域 「诺思托伊区」与「旧日之海」. 3. 新剧情: 阿蕾奇诺「净炼火之章」第一幕, 赛诺「金狼之章」 第二幕. 4. 新圣遗物: 「谐律异想断章」和「未竟的遐思」套装. 5. 版本主活动: 「荒泷生命摇滚虹色大巡回」, 免费获得五郎. 6. 活动重制: 「殊形之龙参寻战记」(玩法类似于「风来人剑斗绮谭」). 7. 活动复刻: 「振晶的应用研究」. 8. 活动复刻: 「风行迷踪·谋策之局」. 9. 「七圣召唤」新卡牌: 珐露珊, 久岐忍. 10. Sethos[1]. [1]: Sethos 很可能是一个新的自机角色, 使用弓箭少年模型. 在 beta 阶段已经被刻晴的模型占位(米哈游对未实装自机角色最常用的占位符). 会在赛诺传说任务「金狼之章」 第二幕登场.

Genshin Null

@GenshinNull · Post #5773 · 14.03.2024 г., 06:17

(1/2/3/4/5/6) @GenshinNull#dim#p#TeamMew#Scoopy#妮可少年#unknown#null [4.6 beta] 阿蕾奇诺(Arlecchino)周本 BOSS 的形态 生命值: 1001708 (传说任务剧情内可调整至 701195) 攻击力: 26644 (全游戏最高) 抗性: 火 70% 基本玩法 某些攻击会消耗她自身的生命值, 并在命中角色后施加生命之契, 使角色持续流失生命值. 如果角色已经具有生命之契, 本次攻击伤害将大幅提高. 在角色的生命之契被清除后, 下一次重击命中 BOSS 时, 将施放血汐冲击, 打断 BOSS 的攻击并使其损失 3.2% 生命值. 第一阶段 常规装束, 使用专武(赤月之形), 有 "羽翼" 形态的元素爆发. 从空中突袭, 使用光束攻击, 战斗中必须清除施加给角色的生命之契, 否则很可能会被(后续攻击)一击毙命. 第二阶段 (低血量触发) 周本祕境的天空变成红色, (阿蕾奇诺)变为新装束, 使用两把战镰, 体型更大. 该阶段依旧需要清除施加给角色的生命之契, 否则会遭受必杀技攻击(类似正机之神). 标志性攻击手段: 在空中向角色发射追踪光束(类似正机之神), 另外一个动作是在地面上展开双翅朝角色攻击, 两个动作的速度都非常快.