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

Резултати

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

Търсене: #tbt

当前筛选 #tbt清除筛选
TrilocosxJesús ✨

@trilocosxjesus · Post #7238 · 16.04.2026 г., 17:01

https://www.youtube.com/watch?v=qoejKfxYjiA&list=RDMM En este jueves de #TBT recordamos esta hermosa canción que nos alienta a confiar en Jesús como lo que es, nuestro gran amigo. 📌Disfruta y aprovecha este contenido, compártelo, coméntalo💭 y ayuda a que siga siendo de mucha bendición✨💌

Hashtags

BiA Cerámica Fría

@biaceramicafria · Post #4136 · 20.07.2023 г., 19:34

👋😁⭐🔗🤩 🍉📷🆒👍🔝😎 Hoy es jueves de #TBT 🥺 Este fue mi PRIMER BRAZALETE GHIBLI /2021- 🥸 Parece que fue ayer... Llégate a la publicación y déjale tu ❤️ Corazón 🥰 📷Toca aquí para verlo👈 ¿LO HABÍAS VISTO? - Sí ❤️ - No 👍

Hashtags

BiA Cerámica Fría

@biaceramicafria · Post #3979 · 16.03.2023 г., 18:50

Hola 💚 Bienvenidos a nuestro grupo A partir de hoy traeremos una dinámica de #TBT🔙 (todos los jueves) No te pierdas nuestras historias 👇 https://instagram.com/stories/biaceramicafria/3059925564827707754?utm_source=ig_story_item_share&igshid=MDJmNzVkMjY=

Hashtags

BaykarTech

@baykartech · Post #2911 · 15.04.2026 г., 11:24

İmkanlarımız sınırlı, ufuklarımız genişti! 🇹🇷✈️ 📲#TBT Our means were limited, but our horizon was vast! 🇹🇷✈️

Hashtags

🦅 [ perspective ix ]

@perspectiveix · Post #1524 · 06.09.2018 г., 18:00

⚰️RIP Electronics The Gowanus E-Waste Warehouse in Brooklyn houses pretty much every single type of retro tech gadget you can think of. Basically, the ultimate #TBT! 🚀@PerspectiveIX

Hashtags

🦅 [ perspective ix ]

@perspectiveix · Post #1295 · 24.05.2018 г., 19:30

💻Your Laptop's Great Great Grandfather! Briefcase designed by honywell for the 1968 movie A Space Odyssey 2001, complete with camera, stylus and modem. #TBT 🚀@PerspectiveIX

Hashtags

🦅 [ perspective ix ]

@perspectiveix · Post #1275 · 17.05.2018 г., 19:30

🌐The Entire Internet 45 Years Ago Less than half a century and we went from this 👆 to this 👉t.me/PerspectiveIX/1273 #TBT 🚀@PerspectiveIX 🔗PerspectiveIX.com

Hashtags

🦅 [ perspective ix ]

@perspectiveix · Post #1064 · 18.01.2018 г., 20:00

⌨️ Amstrad NC100 (Released in 1992) CPU: Z80 at 4 Mhz Memory: 64 KB RAM Display: LCD 80 columns by 8 rows Power: four standard AA cell batteries #TBT 🚀@PerspectiveIX 📸instagram.com/PerspectiveIX

Hashtags

NYUSHA

@nyusha_nyusha · Post #907 · 23.05.2024 г., 06:07

немножко милоты вам этим утром 💞 это любовь! #tbt РУ ТВ ✨

Hashtags

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