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

Резултати

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

Търсене: #ming

当前筛选 #ming清除筛选
萌番组 Me Love You

@bangumimoe · Post #38604 · 24.12.2025 г., 07:25

[MingY] 末世二轮之旅 / Shuumatsu Touring [10][1080p][简繁日内封] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-24 15:19:58 UTC+8 文件数量:1 个 文件总大小:544.95 MB 磁力链接:magnet:?xt=urn:btih:c07234ec2dc9dd78e1dd0fc4fb96b5bef7dbf1bf&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #38603 · 24.12.2025 г., 07:25

[MingY] 末世二輪之旅 / Shuumatsu Touring [10][1080p][繁日內嵌] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-24 15:19:53 UTC+8 文件数量:1 个 文件总大小:504.48 MB 磁力链接:magnet:?xt=urn:btih:a532c06c717bbf6add8b0df608594b132539088e&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #38602 · 24.12.2025 г., 07:25

[MingY] 末世二轮之旅 / Shuumatsu Touring [10][1080p][简日内嵌] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-24 15:19:36 UTC+8 文件数量:1 个 文件总大小:504.52 MB 磁力链接:magnet:?xt=urn:btih:ac6b2cd8a136b8682ac75f74db0e56e9c5dbb653&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #37953 · 15.12.2025 г., 04:37

[MingY] 末世二轮之旅 / Shuumatsu Touring [09][1080p][简繁日内封] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-15 12:26:38 UTC+8 文件数量:1 个 文件总大小:492.69 MB 磁力链接:magnet:?xt=urn:btih:a5e11d0aea05be3cb2d6a0ccf67434f6a9ca3118&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #37952 · 15.12.2025 г., 04:37

[MingY] 末世二輪之旅 / Shuumatsu Touring [09][1080p][繁日內嵌] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-15 12:26:33 UTC+8 文件数量:1 个 文件总大小:472.25 MB 磁力链接:magnet:?xt=urn:btih:2a57e93e129f6a781c7702731a393dc8789d1ae3&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #37951 · 15.12.2025 г., 04:37

[MingY] 末世二轮之旅 / Shuumatsu Touring [09][1080p][简日内嵌] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-15 12:26:24 UTC+8 文件数量:1 个 文件总大小:472.31 MB 磁力链接:magnet:?xt=urn:btih:ba587693481533063ed1691bd87dd9c82c810ae8&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #37950 · 15.12.2025 г., 04:36

[MingY] 末世二轮之旅 / Shuumatsu Touring [08][1080p][简繁日内封] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-15 12:25:10 UTC+8 文件数量:1 个 文件总大小:537.68 MB 磁力链接:magnet:?xt=urn:btih:dfc2e71ae1ff3f6ccb3c71a991eb2f44858501dc&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #37949 · 15.12.2025 г., 04:36

[MingY] 末世二輪之旅 / Shuumatsu Touring [08][1080p][繁日內嵌] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-15 12:25:01 UTC+8 文件数量:1 个 文件总大小:457.44 MB 磁力链接:magnet:?xt=urn:btih:5f316ea8e3dd6ccc10c8c31a5d1514dcf075b470&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #37948 · 15.12.2025 г., 04:36

[MingY] 末世二轮之旅 / Shuumatsu Touring [08][1080p][简日内嵌] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-15 12:24:49 UTC+8 文件数量:1 个 文件总大小:457.33 MB 磁力链接:magnet:?xt=urn:btih:8ff6f1f85e789a258f714589566bf77bb8b2976e&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #37857 · 14.12.2025 г., 11:51

[MingY] 末世二轮之旅 / Shuumatsu Touring [07][1080p][简繁日内封] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-14 19:39:07 UTC+8 文件数量:1 个 文件总大小:413.94 MB 磁力链接:magnet:?xt=urn:btih:41289e2f28efb8d3d5261beb3af71a6b8f04237a&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #37856 · 14.12.2025 г., 11:51

[MingY] 末世二輪之旅 / Shuumatsu Touring [07][1080p][繁日內嵌] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-14 19:38:57 UTC+8 文件数量:1 个 文件总大小:432.72 MB 磁力链接:magnet:?xt=urn:btih:be7fc581b0cd87e69525025649c4359faabae23e&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

萌番组 Me Love You

@bangumimoe · Post #37855 · 14.12.2025 г., 11:48

[MingY] 末世二轮之旅 / Shuumatsu Touring [07][1080p][简日内嵌] 发布组:#MingYSub 发布者:#Ming 发布时间:2025-12-14 19:38:45 UTC+8 文件数量:1 个 文件总大小:432.6 MB 磁力链接:magnet:?xt=urn:btih:ac9df61574022fc852ad1ca7ea0b3cbef298721e&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce 发布页面

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