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

Резултати

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

Търсене: #pop

当前筛选 #pop清除筛选
音乐小本本

@PaulsNote · Post #937 · 30.10.2023 г., 03:43

原神BGM - 枫丹 真正的安眠处 水仙的安任务结尾处bgm,想在游戏中再次听到只能卡bug了。 后面的四重奏写的很有水平!希望Hoyo-mix可以写更多室内乐! 附:官方稿: 此次枫丹的音乐设计,在配器选择上运用了曼托林、鲁特琴、维奥尔琴等经典的欧洲乐器;为了增添浪漫气息,还增加了体现都市时尚感的爵士元素、颇具戏剧感的华尔兹元素以及雍容华丽的巴洛克元素。据HOYO-MiX(米哈游旗下游戏音乐创作团队)成员介绍,主创团队基于枫丹整体泛欧洲的风格基调,参考文艺复兴至浪漫主义时期的德奥音乐风格,也包含了圣桑、加布里埃尔·弗雷、莫里斯·拉威尔这一谱系的法国音乐风格。 #Pop https://youtu.be/N7wowNflnu4?si=OcXLnYe-0EmCXMts

Hashtags

Mirracoin Новости

@MirraChannel · Post #125 · 15.05.2024 г., 10:58

#крипто#база#PoP Что такое Proof of Personhood? Алгоритм консенсуса - Proof of Personhood («доказательство личности» или кратко PoP). Использует механизмы подтверждения «человечности» (personhood) и уникальности индивидуума, гарантируя, что каждый участник проекта получит равный голос и долю вознаграждения. 🤔Зачем это нужно? Метод получил распространение из-за угроз недобросовестного использования технологии дипфейк и по причине того, что злоумышленники создают множество поддельных аккаунтов для манипулирования голосованием или распределением наград. 🔥 PoP обеспечивает естественное ограничение скорости за счет верификации учетной записи, что, по сути, исключает возможность проведения атаки Сивиллы в заметных масштабах и позволяет фильтровать контент, что помогает бороться с вирусным распространением дезинформации, генерируемой ИИ. 😎Примеры проектов использующих технологию PoP: 📌Gitcoin Passport - проект собирает «марки» с аутентификаторов Web2 и Web3, служащие учетными данными для кроссплатформенной проверки личности без разглашения приватной информации. 📌Proof of Humanity - проект объединяет сети доверия с обратными тестами Тьюринга, реализует разрешение споров и создает список подтвержденных пользователей. 📌BrightID - проводит «верификационные вечеринки» по видеосвязи для взаимной верификации через систему Bitu, требующую, чтобы за человека поручилось достаточное количество верифицированных пользователей. 📌World ID проекта Worldcoin - открытый протокол идентификации, не требующий разрешения, который анонимно проверяет личность человека, используя доказательства нулевого знания. @MirraChannel😎

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