@selfdeprules · Post #1542 · 22.02.2025 г., 18:38
#dream
Hashtags
TGINSIGHT SIMILAR POSTS
Изходен канал @clockstackwheels · Post #721 · 26.12
Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev
Hashtags
Търсене: #dream
@selfdeprules · Post #1542 · 22.02.2025 г., 18:38
#dream
Hashtags
@bestwallpapes · Post #2946 · 19.10.2024 г., 17:48
@Bestwallpapes #Fantasy#Dream
@ysmodku · Post #5624 · 21.03.2023 г., 10:23
人物:#神里绫华 作者:#Dream Fantasea 下载:https://wwze.lanzoub.com/iHiie0qp8n6j 来源:https://gamebanana.com/mods/433392
@ysmodku · Post #5362 · 08.03.2023 г., 05:28
人物:#迪希雅 作者:#Dream Fantasea 说明:另一个版本,可以互换,可以从我的Kofi商店购买(基本版本也包括Kofi购买,按9键切换)。 下载:https://wwze.lanzoub.com/iwf710pldt9i 来源:https://gamebanana.com/mods/431103
@ysmodku · Post #5715 · 26.03.2023 г., 02:38
人物:#申鹤 作者:#Dream Fantasea 下载:https://wwze.lanzoub.com/i5h6d0r43nfi 来源:https://gamebanana.com/mods/434082
@ysmodku · Post #5535 · 17.03.2023 г., 12:21
人物:#优菈 作者:#Dream Fantasea 下载:https://wwze.lanzoub.com/iSq0z0qchmmf 来源:https://gamebanana.com/mods/432189
@ysmodku · Post #5203 · 04.03.2023 г., 11:37
人物:#丽莎 作者:#Dream Fantasea 下载:https://wwze.lanzoub.com/imLMb0p87ize 来源:https://gamebanana.com/mods/430483
@ysmodku · Post #4930 · 28.02.2023 г., 07:33
人物:#丽莎 作者:#Dream Fantasea 说明:如果这个模组达到 50 个赞或更多,我将创建另一个后续模组,将这条裙子的裤子去掉。 下载:https://wwze.lanzoub.com/iyPYf0otlzje 来源:https://gamebanana.com/mods/429879
@talks · Post #13 · 27.07.2016 г., 10:01
◼ I HAVE THE DREAM! LET FREEDOM RING! This speech will give YOU goosebumps ! 😮#MartinLutherKing#dream#freedomhttps://youtu.be/3vDWWy4CMhE
Hashtags
@testflightynoti · Post #38163 · 12.05.2026 г., 19:02
#Dust#The#Dream#App Join the Dust: The Dream App beta on ✈️#TestFlight 🔗 Link: https://testflight.apple.com/join/dNp4seDX Shared by Dimitri
Hashtags
@wildthemestelegram · Post #1207 · 26.02.2024 г., 05:00
Magic Cat #black #blue #dark #butterfly #dream #magic #fantasy #night #cat #art ᅠ𝐖𝐢𝐥𝐝 𝐓𝐞𝐥𝐞𝐠𝐫𝐚𝐦 𝐓𝐡𝐞𝐦𝐞𝐬 ᅠ═──═⌘═──═ᅠ
@skolzki_art · Post #698 · 14.02.2022 г., 16:38
по телевизову показывали срочные новости про то что украли мальчика-лилипута и вот он лежит теперь перед нашим взором. черно-белый с оттенком зеленого, безмятежно спящий. мы можем оценить его соотнеся с размером руки воровки, ее ладонь почти полностью покрывает его тело и указательным пальцем поглаживает загривок. мальчик-лилипут немного ворочается во сне, и мы видим что ему не причинили никакого вреда. в погребе, где срывается воровка с мальчиком немного холодно, вот почему они одеты по-осеннему. вокруг ребенка то и дело пробегают крупные муравьи, но не беспокоя его разбегаются по своим делам. после этого цепочка жуток-солдатиков, совокупляясь на ходу, пробегают прямо по его лицу. мальчик отгоняет их по сне рукой, и они тоже исчезают. последними появляются земляные осы, роятся неподалеку. одна из них интересуется мальчиком и направляется в его сторону. к сожалению, вынуждены сообщить, что мальчик умрет от ее укуса. #gurls#cgart#sketch#dream