[Перевод] Система типов — лучший друг программиста
Я устал от одержимости примитивами и от чрезмерного использования примитивных типов для моделирования функциональной области.
Значение в string не лучший тип для записи адреса электронной почты или страны проживания пользователя. Эти значения заслуживают гораздо более богатых и специализированных типов. Мне нужно, чтобы существовал тип данных EmailAddress, который не может быть null. Мне нужна единая точка входа для создания нового объекта этого типа. Он должен валидироваться и нормализироваться перед возвратом нового значения. Мне нужно, чтобы этот тип данных имел полезные методы наподобие .Domain() или .NonAliasValue(), которые бы возвращали для введённого foo+bar@gmail.com значения gmail.com и foo@gmail.com. Эта полезная функциональность должна быть встроена в эти типы. Это обеспечивает безопасность, помогает предотвращать баги и существенно повышает удобство поддержки.
Читать дальше →
Источник: Хабрахабр
Похожие новости
- Права в Linux: chown/chmod, SELinux context, символьная/восьмеричная нотация, DAC/MAC/RBAC/ABAC
- Как запустить VLESS + Reality на старом Intel iMac с macOS Catalina 10.15.8
- Кто выпустил гончую. Ищем следы коллекторов BloodHound в логах Windows
- HTML во вложении — это программа. Почему почтовые фильтры его пропускают и как SOC его ловит
- Как СМИ рождают “хакеров” и как сам Глава группировки слил секретные методы DDoS
- Погосян Марго: В топ-4 рынка с маскотом
- Пентест с помощью ИИ в России и материалы для сертификации по безопасности ИИ
- Интеграция MULTIDIRECTORY и MULTIFACTOR: двухфакторная аутентификация в Kerberos
- Глухарь ESPшный — мемуары охотника
- Когнитивная эргономика в веб-дизайне: Как не отупеть от собственного интерфейса