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

Резултати

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

Търсене: #ageofmars

当前筛选 #ageofmars清除筛选

💵 How to make money in the P2E game Age of Mars? 💵 AGE OF MARS is a 3D game in which you conquer Mars. You will need to produce water, oxygen, and rocket fuel to trade these resources for real money How it works 👇 1️⃣ Buy Aqua NFT and (or) Planta NFT of any rarity - from common to legendary. The higher the rarity of an NFT, the greater its profitability. 2️⃣ Place your NFTs on the playing field. They will become in-game assets and will generate daily resources that can be exchanged for MRT tokens. This token is traded on the Pancake Swap exchange as MRT/USDT pair, which means you can instantly top-up your USDT wallet. 3️⃣ Increase your income - upgrade your NFTs to level 10. Yield at Level 10 can be 101% higher than at Level 1. 4️⃣ Try minting - create a new NFT from two existing ones. Minting is available for Level 10 tokens. You can play together with your team members and earn passive income - up to 15% from NFT sales and up to 80% from all resources generated in your team. 💰How to start earning 💰 ➡️Register using the link ➡️ Top up your balance ➡️ Buy NFTs on the marketplace ➡️ Place them on the in-game map ➡️ Collect resources and exchange them for USDT REGISTRATION | TELEGRAM CHANNEL #P2E#Play2Earn#AgeOfMars

​​🎙TOP TIER PROJECT ANNOUNCEMENT 🔥🔥🔥 👉Age of Mars - a P2E game. Make money on the colonization of Mars 💵👽💵 📌A whole new generation of P2E games is coming: they offer a free 2 play model, high-quality graphics, addictive gameplay, and a sustainable economic model. It is a fully-fledged 3D game in which you are required to turn Mars into a habitable planet. 📌The spaceship will take you to Mars, where your mission will be to create a habitable planet. You will get to develop your base and extract liquid resources that can be instantly converted into MRT utility tokens (MRT 👉 USDT). 👩‍🚀 Level up your NFTs and earn more. Depending on the rarity of the NFT, the yield on level 10 can be 101% higher than on level 1. In addition, level 10 unlocks Minting, the process of creating a new NFT at the expense of two NFTs you already own. 🧨 Age of Mars has a dedicated game mode for teams. You can earn up to 15% from NFT sales and up to 80% of the resources generated in your team. These are the best rewards across all blockchain games! 🤌 👉You can join the conquest of Mars by following the link.🔥🔥🔥 REGISTRATION| Telegram #P2E#Play2Earn#AgeOfMars