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

Резултати

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

Търсене: #memetrollsxd

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

@GenshinNull · Post #5267 · 08.07.2023 г., 22:33

source@GenshinNull#memetrollsXD [4.0 beta] 菲米尼(Freminet)角色详细演示 00:15 ~ 00:19 角色菜单武器界面 00:19 ~ 00:20 角色菜单圣遗物界面 00:20 ~ 00:25 角色菜单命之座界面 00:25 ~ 00:36 角色菜单天赋界面 00:36 ~ 00:39 角色菜单资料界面 00:48 ~ 01:44 对战丘丘人 01:10 ~ 01:11 元素战技(E) 01:25 ~ 01:28 普通攻击二段衔接元素战技(E) 菲米尼在使用 E 后形成的具有芒性始基力的灵息之刺与 E 同样是能够击飞敌人的挑击.

Genshin Null

@GenshinNull · Post #5222 · 06.07.2023 г., 22:15

source@GenshinNull#memetrollsXD [4.0 beta] 6命林尼(Lyney)角色详细演示 00:00 ~ 01:03 对战丘丘人 00:18 ~ 00:22 当场上的怪笑猫猫帽达到数量上限时, 最先生成的怪笑猫猫帽会被引爆 01:12 ~ 01:16 角色菜单武器界面 01:20 ~ 01:22 角色菜单圣遗物界面 01:22 ~ 01:27 角色菜单命之座界面 01:27 ~ 01:39 角色菜单天赋界面 01:39 ~ 01:41 角色菜单资料界面

Genshin Null

@GenshinNull · Post #5215 · 06.07.2023 г., 20:02

source@GenshinNull#memetrollsXD [4.0 beta] 6命琳妮特(Lynette)角色详细演示 00:20 ~ 01:05 对战丘丘人 00:37 ~ 00:40 长按元素战技(E)[1] 00:41 ~ 00:47 6命的风元素附魔效果 00:58 ~ 00:59 点按元素战技(E)[2] 00:59 ~ 01:05 6命的风元素附魔效果 01:21 ~ 01:28 角色菜单武器界面 01:28 ~ 01:30 角色菜单圣遗物界面 01:30 ~ 01:35 角色菜单命之座界面 01:35 ~ 01:47 角色菜单天赋界面 01:47 ~ 01:50 角色菜单资料界面 01:54 ~ 02:00 黑丝 [1] 琳妮特以「谜身影盗」姿态疾走, 对附近的敌人施加「刺影征标」, 击出谜影突刺, 并释放具有荒性始积力的涌流之刃. [2] 琳妮特迅速击出谜影突刺, 并释放具有荒性始积力的涌流之刃.

Genshin Null

@GenshinNull · Post #4889 · 21.03.2023 г., 15:42

source@GenshinNull#memetrollsXD [3.6 beta] 尽管白术(Baizhu)的元素爆发动画有改动,但施放元素爆发本身仍然不会造成伤害或草元素附着. Kiyomaro#0924发布于 Baizhu Mains Discord.

Genshin Null

@GenshinNull · Post #4769 · 03.03.2023 г., 07:23

source@GenshinNull#memetrollsXD#null [3.6 beta] 白术(Baizhu)实机演示(剪辑版) 00:00 ~ 00:07 普通攻击 & 重击 00:08 ~ 00:16 元素战技(E) 00:17 ~ 00:33 元素爆发(Q) & 元素战技(E)

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