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

Резултати

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

Търсене: #baldursgate3

当前筛选 #baldursgate3清除筛选
GRAYKOLORI 🧪💀

@graykolori · Post #74 · 13.05.2024 г., 11:57

Wip (2) Угадайте, кого я тут делаю опять 💀 Да, сейчас период, когда несколько впроцессников - но по-хорошему, надо уже выкладывать давно сидящего на очереди Рафаила. Ща, подожду только, пока хайп по BG3 окончательно остынет, тогда и выложу 🤡🤡🤡 ha-ha, classic Концепт и перс: Mlarty #bg3#baldursgate3

GRAYKOLORI 🧪💀

@graykolori · Post #4 · 01.02.2024 г., 20:39

Залью сюда тоже Рафаила из bg3 в сермате Ибо выдуманные мужики будут с тобой всегда, выдуманные мужики никогда не уйдут 🗿 #bg3#baldursgate3

🔤🔤🔤🔤🔤🔤🔤 ୨୧𝔼𝕧𝕖𝕝𝕪𝕟୨୧ Enjoy my new Pack Stikers👏 and thanks for being here😌 ▶️#BaldursGate3#Evelyn#Games 🟰 𝓒𝓻𝓮𝓪𝓽𝓸𝓻 🐱SΉΛDIZƗИΉӨ ➡️PINTEREST😎฿ØØ₴₮ シ ⍩ ⍨ ⍤ ッ ㋛ ⍢〴 🕹

GRAYKOLORI 🧪💀

@graykolori · Post #97 · 28.05.2024 г., 14:46

Боже мой, зацените, я закончила Рафаила!!! 🫠 сколько же он из меня души пососал, вы бы знали...🪦 будет ещё хэндпэйнтнутый 💚 Фигурку, кстати, можно напечатать, если вам нужен очередной выдуманный мужик на столе 🌚 Пишите в лс @ko_lori #BG3#baldursgate3#raphael

GRAYKOLORI 🧪💀

@graykolori · Post #11 · 14.02.2024 г., 14:54

С вами @kolori_art🫶 В этот ДВВ постарайтесь любить себя как Рафаил 💜 П. С. Это wip, поза такой не планировалась, просто когда зеркалила руки, он вдруг возомнил себя ох***ным 😐 #BG3#baldursgate3#raphael

GRAYKOLORI 🧪💀

@graykolori · Post #122 · 10.06.2024 г., 17:33

Лотереи - это хорошо, но надо дальше пилить контент) Вот опять прогресс по шикарному персу Марроу от @mlarty_art Сейчас в работе сразу несколько проектов, и лето в этом плане будет определённо жарким 🥵 #BG3#baldursgate3#DarkUrge#kolori

ТОВАРЫ ИЗ СЕРИИ "СИМФОНИЯ" | МЕРЧ ЭНТУЗИАСТОВ | BALDURS GATE 3 😈Персонажи: 🌟 Астарион 🌟 Гейл 🌟 Хальсин 🌟 Дриззт До'Урден 🌟 Шэдоухарт 😈Ассортимент и детали: ⭐ Продажи будут открыты до 28.05.26 ⭐Предпродажа, отправка в течение 90 дней 🙂Шикиши ⭐Размер: не указан ⭐Цена: 800 (рублей) 🙂Акриловый брелок ⭐Размер: не указан ⭐Цена: 570 (рублей) 😡Акриловый стенд ⭐Размер: не указан ⭐Цена: 1020 (рублей) 🙂Металлический значок ⭐Размер: не указан ⭐Цена: 520 (рублей) 🙂Корешок билета ⭐Размер: не указан ⭐Цена: 400 (рублей) 🅰️ Цена по курсу на сегодняшний день 01.01.26. 👍Доставка: 🅰️ Цена указана С УЧЕТОМ доставки ДО РФ 👍 Обратная связь: ⁉️Вопросы о доставке, оплате и тд. 🤝О неоф. товарах 👀Отзывы 👍Купить: 🅰️@astroknight_bot 🅰️ С реальными менеджерами #BaldursGate3@AKAuthors #Астарион@AKAuthors #Гейл@AKAuthors #Хальсин@AKAuthors #ДриззтДоУрден@AKAuthors #Шэдоухарт@AKAuthors