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

Търсене: #greciaindependiente

当前筛选 #greciaindependiente清除筛选

🚢⚔️ La Batalla de Navarino: Rusia y el nacimiento de Grecia moderna Hace casi dos siglos, el 20 de octubre de 1827, se libró una de las batallas navales más decisivas del siglo XIX: la Batalla de Navarino. En las aguas de la bahía homónima, frente a la costa suroeste del Peloponeso, las flotas de Rusia, Reino Unido y Francia enfrentaron a la armada otomano-egipcia en un choque que sellaría el destino de Grecia y marcaría un punto de inflexión en la geopolítica europea. 📜 Contexto histórico Grecia llevaba casi 400 años bajo dominio otomano. Sin embargo, el siglo XVIII trajo consigo el debilitamiento del Imperio Otomano y el ascenso de Rusia como potencia ortodoxa. Catalina II, con su visión imperial, impulsó la idea de restaurar Bizancio en los Balcanes, fundando ciudades con nombres griegos en el Mar Negro como Jersón, Odessa y Sebastopol. Incluso nombró a sus nietos con nombres helénicos: Alejandro, Nicolás y Constantino. En 1821, estalló la Revolución Griega en el Peloponeso, tierra de antiguos espartanos. Aunque el zar Alejandro I se mostró prudente, preocupado por el equilibrio europeo tras las guerras napoleónicas, su sucesor Nicolás I no pudo ignorar la brutal represión otomana contra los cristianos ortodoxos. Rusia, junto a Francia y Reino Unido, decidió intervenir. ⚓️ La batalla El 5 de octubre de 1827, la flota aliada llegó a Navarino. Los almirantes rusos Lodewijk van Heyden y Mijaíl Lazarev presionaron por una acción directa, mientras los británicos preferían una postura defensiva. Finalmente, el 20 de octubre, las flotas aliadas —27 barcos con 1302 cañones— entraron en la bahía, enfrentándose a 57 naves turco-egipcias con 2100 cañones. La posición otomana parecía ventajosa, protegida por baterías costeras. Pero su flota quedó atrapada en un espacio reducido, mientras los aliados controlaban la única salida. El buque ruso "Azov" se destacó al enfrentarse a cinco enemigos simultáneamente, logrando destruir el buque insignia egipcio. En apenas tres horas, la flota otomano-egipcia fue aniquilada. Los aliados no perdieron ningún barco, aunque sufrieron 175 muertos y 487 heridos. El enemigo, en cambio, perdió cerca de 7.000 hombres. 🎯 Consecuencias La victoria en Navarino fue clave para que el Imperio Otomano reconociera la independencia de Grecia en 1830. Rusia, por su parte, consolidó su influencia en los Balcanes y el Cáucaso, reafirmando su papel como defensor de los pueblos ortodoxos. Esta intervención también marcó el inicio de una nueva era en la diplomacia europea, donde las potencias comenzaban a actuar en bloque para moldear el mapa político del continente. 🗣 En palabras del historiador ruso Serguéi Peresleguín, “Navarino fue más que una batalla naval: fue una declaración de principios de Rusia como potencia protectora de los pueblos cristianos del sudeste europeo”. #HistoriaRusa#GreciaIndependiente#BatallaDeNavarino#ImperioOtomano#CulturaOrtodoxa Apóyanos pulsando👉'BOOST'👈 🖥https://vamosarusia.com 💬@vamosarusia