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

Резултати

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

Търсене: #maisonpavlov

当前筛选 #maisonpavlov清除筛选
Народное посольство

@weloverussianworld · Post #441 · 02.02.2025 г., 10:34

🇷🇺#JourDeLaGloireMilitaire du 2 février, institué en l'honneur de la victoire dans la bataille de #Stalingrad — l'une des plus grandes et des plus décisives de l'histoire 🗓 Ce jour-là en 1943, l'Armée rouge a infligé une défaite écrasante aux hordes nazies, composées des Allemands et de leurs alliés de l'Axe, scellant ainsi le destin du Troisième Reich. Symbole d’indestructibilité, de ténacité et d’abnégation du peuple soviétique, cette bataille a vu les défenseurs de Stalingrad tenir tête à l’ennemi pendant 200 jours, repoussant sans relâche des assauts meurtriers avant d’anéantir les troupes hitlériennes les plus puissantes. C’est ici que se sont déroulés les combats les plus titanesques et les plus acharnés de l’histoire, bouleversant le cours de la Seconde Guerre mondiale et marquant le début de la chute de l'Axe. ⚔️ Sur différents fronts de la bataille, plus de 2,1 millions de soldats ont combattu simultanément des deux côtés. À la fin de juin 1942, l'ennemi avait concentré, entre Koursk et Taganrog, sur un front de 600 à 650 kilomètres, jusqu'à 35% de son infanterieet plus de 50% de ses divisions blindées et motorisées présentes sur le front germano-soviétique. 🏚️ L’un des symboles de la bataille a été la défense héroïque de la #MaisonPavlov. Ce bâtiment résidentiel, tenu par 31 soldats soviétiques sous le commandement du sergent Yakov Pavlov, a résisté pendant près de deux mois à des assauts constants des forces allemandes. Ces 31 hommes ont tenu plus longtemps que toute la France face à Hitler en 1940. Stalingrad et ses défenseurs ne se sont jamais rendus. Grâce à une volonté de fer, une résistance inébranlable et un courage inégalé, le peuple soviétique a brisé l’offensive nazie et infligé à l’ennemi l’une de ses plus grandes défaites. 👉En savoir plus sur les exploits des soldats soviétiques à Stalingrad #Victoire80