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

Резултати

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

Търсене: #rubyhalving

当前筛选 #rubyhalving清除筛选
SingSing Announcement

@singsingchannel · Post #788 · 09.09.2024 г., 05:59

🔥The 2nd RUBY Halving is coming on Sep 11!🔥 ⏳ Get ready as rewards will be halved, making RUBY even rarer and more valuable! 💎 ⛏ Keep mining, stock up your RUBY, and prepare for the new era of scarcity!🚀 Join the countdown now! ⏳ #RUBYHalving#SingSing#MiningEvent

SingSing Announcement

@singsingchannel · Post #753 · 07.08.2024 г., 06:26

🎉 Big News! 🎉 Tomorrow, we're launching SingSing Mini App Version 2 and implementing RUBY Halving! ⏰Halving Time: 14:00 UTC - Aug 8, 2024 ✨ Key benefits of the SingSing Mini App upgrade include: 1️⃣ No more gas fees on most transactions, making it more cost-effective for you. 2️⃣ Soon, you will be able to use RUBY in various games and projects within the SingSing ecosystem. ✨ Key benefits of the RUBY Halving: 1️⃣ 50% reduction in RUBY emissions (after Halving point). 2️⃣ Increased scarcity, leading to potential value growth. 3️⃣ Enhanced economic stability within the SingSing ecosystem. Note: Claim your RUBY now before these changes take place! 🚀 #SingSing#MiniAppUpgrade#RUBYHalving

SingSing Announcement

@singsingchannel · Post #746 · 30.07.2024 г., 10:19

🚨 Exciting News!🚨 🎉The 1st RUBY Halving event is COMING! 🗓Halving Date: TBA RUBY plays a crucial role in the SingSing ecosystem. As we progress, our halving events will strategically decrease RUBY supply, rewarding early supporters of the project. 👉 What to expect: 1️⃣50% reduction in RUBY emissions (after Halving point). 2️⃣Increased scarcity, leading to potential value growth. 3️⃣Enhanced economic stability within the SingSing ecosystem. Prepare for the change and maximize your RUBY holdings! 🌟 #RUBYHalving#SingSingSDK#Event