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

Търсене: #anadolu

当前筛选 #anadolu清除筛选
🏆 Info 288 - DEPORTES

@info288_deportes · Post #35877 · 14.11.2024 г., 22:10

🏀🇪🇺Euroliga Baskonia 75-87 Monaco#Euroliga#Baskonia#Monaco El Baskonia pagó este jueves una horrible primera mitad, en la que se desangró ante el Mónaco y encadenó su cuarta derrota consecutiva en la Euroliga, en un partido que fue perdiendo hasta por 27 puntos (75-87). Los azulgranas, que solo anotaron 7 puntos en el primer cuarto, reaccionaron tras el descanso y lograron bajar la diferencia hasta los 5s, pero pagaron el esfuerzo derrochado en un gran tercer asalto. https://www.infobae.com/america/agencias/2024/11/14/75-87-el-baskonia-se-desangra-en-la-primera-mitad-ante-el-monaco/ Real Madrid 64-74 Anadolu#Euroliga#RealMadrid#Anadolu Como si fuera un cruce directo de la Champions y en el Bernabéu... pero no. El Real Madrid peleó por una remontada imposible ante el Anadolu Efes después de ir 27 puntos abajo (18-45) en el segundo cuarto. El cansancio pudo con un ejercicio notable de fe y de carácter liderado, cómo no, por Facundo Campazzo. Se situó a un punto con cuatro minutos por delante, pero la fatiga hizo el trabajo que se les estaba escapando de las manos a los turcos. El Madrid encajó su primera derrota de la temporada como local y ya son seis tropiezos en Europa en las diez primeras jornadas. https://www.larazon.es/deportes/madrid-roza-remontada-imposible_202411146736725eb747ad0001817a7e.html 🏆@Info288_deportes

🏆 Info 288 - DEPORTES

@info288_deportes · Post #35867 · 12.11.2024 г., 22:44

🏀🇪🇺Euroliga Baskonia 84-89 Anadolu#Euroliga#Baskonia#Anadolu El Baskonia se quedó sin pólvora cuando se jugaba todo ante el Anadolu Efes y cayó derrotado en el toma y daca final por 84-89, cuando aparecieron las estrellas del equipo turco para endosar la primera derrota baskonista en el Buesa Arena en la Euroliga. https://www.marca.com/baloncesto/euroliga/2024/11/12/baskonia-paga-caro-mal-partido-markus-howard.html Real Madrid 98-86 Virtus#Euroliga#RealMadrid#Virtus Necesitaba el Real Madrid una noche así en la Euroliga. Tranquila y que le permitiera jugar cómodo. La tuvo en la visita de la Virtus, cuya defensa facilitó la bacanal ofensiva de los blancos, reducida finalmente a 98-86, aunque la renta llegó a ser de 22 antes de un parcial final de 0-10. https://www.marca.com/baloncesto/euroliga/2024/11/12/real-madrid-pega-bacanal-ofensiva.html Otros marcadores Fenerbahce 87-76 Bayern Monaco 90-98 Estrella Roja Alba 105-101 Milano Olympiacos 94-92 Asvel Panathinaikos 93-87 Maccabi 🏆@Info288_deportes

🏆 Info 288 - DEPORTES

@info288_deportes · Post #35742 · 29.10.2024 г., 22:17

🏀🇪🇺Euroliga Anadolu 88-97 Barcelona#Euroliga#Anadolu#Barcelona El Barça ratificó su condición de líder en el inicio de la segunda doble jornada de la temporada en una complicada visita a Estambul, donde se enfrentó a un Anadolu Efes que no podía contar con su mayor estrella, Shane Larkin, pero que no dio su brazo a torcer en un partido que se acabó llevando el Barça por 88-97. https://www.marca.com/baloncesto/euroliga/2024/10/29/barca-reafirma-lider-efes-exhibicion-metu.html Olympiacos 79-69 Real Madrid#Euroliga#Olympiacos#RealMadrid La mejoría del Real Madrid se vio truncada en El Pireo, donde acabó su racha de cuatro victorias consecutivas. Los blancos se hundieron frente al Olympiacos (79-69) y siguen sin ganar fuera de casa esta temporada: cinco viajes y cinco derrotas. En esta ocasión, tras tener el encuentro bajo control (46-55), cayeron en un pésimo último cuarto en el que tan sólo pudieron anotar 10 puntos y dos canastas en juego. Los 69 son su peor anotación del curso. https://www.marca.com/baloncesto/euroliga/2024/10/29/real-madrid-hunde-pireo-sigue-ganar-fuera-casa.html Baskonia 88-83 Milano#Euroliga#Baskonia#Milano Volver a hacer del Buesa Arena un fortín. Ese era el objetivo de un Baskonia que volvía a su feudo tras caer derrotado el pasado fin de semana ante el Joventut de Badalona. Sin embargo, la cara del equipo de Vitoria en Europa es totalmente diferente a la de la Liga Endesa. https://www.marca.com/baloncesto/euroliga/2024/10/29/increible-forrest-sostiene-baskonia-victoria-milan.html Otros marcadores Alba 83-92 Paris Fenerbahce 84-82 Maccabi Virtus 84-87 Bayern 🏆@Info288_deportes