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

Резултати

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

Търсене: #mao

当前筛选 #mao清除筛选
利姆诺斯岛·深空放送局📡

@limnosdsstation · Post #10256 · 26.02.2026 г., 05:25

#VRchat#3D衣装 🌸Yoruhime🌸 夜姬 —— 樱花与狐耳的华丽和风幻想 该服装将于2月27日17时(北京时间16时)正式发售 上架纪念促销期间 2026. 2. 27(发售日半价特惠) Full Pack 4000円 -> 1800円 -55%OFF Single 2000円 -> 990円 -50%OFF 2026. 2. 28.~ 2026 3. 11 Full Pack 4000円 -> 2200円 -45%OFF Single 2000円 -> 1190円 -40%OFF 结合了华丽的花魁和服、毛茸茸的披肩以及狐狸面具元素,粉色的樱花主题加上若隐若现的绑带设计,将优雅与性感完美融合 注意事项 由于和服宽大下摆的物理特性,在剧烈运动时容易发生穿模或撕裂,这属于正常现象 完全不支持平胸 (Flat) ShapeKey 如果使用小胸 (Small) ShapeKey,必须手动关闭胸部的 PhysBone(物理骨骼) 为防止穿模,请务必配合各 Avatar 的防穿模/身体收缩 ShapeKey 使用(BOOTH商品页面列出了每个模型对应的推荐参数) 使用了 lilToon 的 RimShade 效果,请务必更新 lilToon 到最新版本 已适配的Avatar #Shinano#Milltina#airi#shinra#manuka#selestia#sio#chocolat#chiffon#lime#plum#mizuki#rurune#mao#Milfy#lumina#ramune#kumaly