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 подобни публикации

Търсене: #aquatibia

当前筛选 #aquatibia清除筛选
Amity University Tashkent

@amityuniversitytashkent · Post #3023 · 09.01.2024 г., 11:48

#Tech4Good loyihasining People's Choice Award birinchi bosqichida O‘zbekistonning “Techno Mind” jamoasiga ovoz bergan barchaga minnatdorchilik bildiramiz! Ular ikkinchi bosqichga o'tishdi va biz yana sizning qo‘llab-quvvatlashingizga muhtojmiz! Havola orqali o‘ting va O‘zbekistonning barqaror rivojlanishi uchun katta ahamiyatga ega bo‘lgan #Aquatibia innovatsion loyihasiga ovoz bering! Ovoz berish uchun havolaga o'ting: Instagram: https://www.instagram.com/p/C133bsrhmCc/ Twitter: https://twitter.com/Huawei/status/1744636051140870421 🫥🫥🫥 Благодарим всех, кто проголосовал за команду "Techno Mind" из Узбекистана в первом раунде на People's Choice Award проекта #Tech4Good! Ребята прошли во второй раунд и нам вновь нужна ваша поддержка! Переходите по ссылке и голосуйте за инновационный проект #Aquatibia, реализация которого будет иметь большое значение для устойчивого развития Узбекистана! Ссылки на голосование: Instagram: https://www.instagram.com/p/C133bsrhmCc/ Twitter: https://twitter.com/Huawei/status/1744636051140870421 @mitcuz@newuzbekistanuniversity@inha_uz@AmityUniversityTashkent@kiut_official@tuituz_official@eduuz

Uzbekistan Techno Mind jamoasi “Aquatibia” loyihasi bilan Tech4Good global finalida ✅ "People's Choice Award" ovoz berishning 1-bosqichi 2024-yil 8-yanvar soat 20:59 gacha davom etadi. ❗️Jamoamizni o’z ovozingiz bilan qo'llab quvvatlang! 📣Ovoz berish uchun havolaga o'ting: Twitter:https://twitter.com/Huawei/status/1743203307101855856 Instagram:https://www.instagram.com/p/C1tsWBIhQKq/ 🔁English ➖➖➖➖➖➖➖➖➖➖➖➖➖ #aquatibia#Tech4good#huawei ⬇️ Biz ijtimoiy tarmoqlarda: Veb-sayt | Telegram | Instagram | Facebook

O‘zbekiston jamoasini muvaffaqiyatli g‘alaba bilan tabriklaymiz! 💥 “Techno Mind” jamoasi “Aquatibia” loyihasi bilan Tech4Good global finalida ishtirok etib, “Silver Award” (ikkinchi o'rin)ni qo‘lga kiritdi. 🏆 Shuningdek, “People's choice award” tanlovida ham O‘zbekiston jamoasi g'oliblar qatoridan o'rin egalladi. 💧Aquatibia – qishloq xo‘jaligi uchun raqamli texnologiyalardan foydalangan holda integratsiyalashgan suv filtrlash tizimini yaratish loyihasi hisoblanadi. 🎗Yoshlarimizdan kelajakda bundanda yuqori natijalarni kutib qolamiz! 🔁English ➖➖➖➖➖➖➖➖➖➖➖➖➖ #SeedsfortheFuture#Aquatibia#global_final#winners#Tech4Good#TechnoMind ⬇️ Biz ijtimoiy tarmoqlarda: Veb-sayt | Telegram | Instagram | Facebook