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

Резултати

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

Търсене: #memphis

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

@info288_deportes · Post #35886 · 16.11.2024 г., 09:01

🏀🇺🇸NBA Spurs 115-120 Lakers#NBA#Spurs#Lakers Anthony Davis logró 40 puntos y 12 rebotes, LeBron James obtuvo 15 unidades, 16 tablas y 12 asistencias y Los Ángeles Lakers comenzaron la defensa de su título de la NBA Cup el viernes, con una victoria de 120-115 sobre los San Antonio Spurs. James consiguió su cuarto triple-doble consecutivo, la mejor racha de este tipo en su carrera. Victor Wembanyama totalizó 28 puntos, 14 rebotes, cinco asistencias y dos tapas por San Antonio. El miércoles por la noche, alcanzó un récord personal de 50 puntos en una victoria en casa por 139-130 sobre Washington Wizards. https://espndeportes.espn.com/basquetbol/nba/cronica/_/juegoId/401703384 Oklahoma 99-83 Phoenix#NBA#Oklahoma#Phoenix Shai Gilgeous-Alexander lució con 28 puntos y el Oklahoma City Thunder doblegó el viernes 99-83 a los diezmados Phoenix Suns en un encuentro correspondiente además a la NBA Cup. Lu Dort totalizó 15 puntos y nueve rebotes, Jalen Williams agregó 14 unidades y ocho tableros e Isaiah Joe anotó 11 tantos para ayudar a que Oklahoma City mejorara su récord a 11-2. Oklahoma City ostentó una delantera de 25 puntos en la segunda mitad, en camino a su tercera victoria consecutiva sin el pívot lesionado Chet Holmgren. https://espndeportes.espn.com/basquetbol/nba/cronica/_/juegoId/401703387 Warriors 123-118 Memphis#NBA#Warriors#Memphis Draymond Green logró 13 puntos, ocho rebotes y siete asistencias antes de ser expulsado cerca del final del encuentro por dos faltas técnicas en un lapso de 33 segundos, lo que no impidió a los Golden State Warriors superar el viernes 123-118 a los Memphis Grizzlies. En el rudo partido de la NBA Cup, Stephen Curry se sobrepuso a un inicio lento para terminar con 13 puntos, ocho rebotes y cinco asistencias, mientras que Buddy Hield anotó 18 puntos y Moses Moody sumó 14. Jaren Jackson Jr. anotó 32 puntos por Memphis en un enfrentamiento entre equipos con rotaciones profundas que dependen en gran medida de sus suplentes. https://espndeportes.espn.com/basquetbol/nba/cronica/_/juegoId/401703388 Otros marcadores Indiana 111-124 Miami Orlando 98-86 76res Toronto 95-99 Detroit Atlanta 129-117 Washington Cleveland 144-126 Chicago Knicks 124-122 Brooklyn Houston 125-104 Clippers Pelicans 101-94 Denver Sacramento 126-130 Minnesota 🏆@Info288_deportes

🏆 Info 288 - DEPORTES

@info288_deportes · Post #35874 · 14.11.2024 г., 08:01

🏀🇺🇸NBA Lakers 128-123 Memphis#NBA#Lakers#Memphis LeBron James consiguió 35 puntos, 14 asistencias y 12 rebotes para su tercer triple-doble consecutivo, y los Lakers de Los Ángeles remontaron para imponerse el miércoles 128-123 a los Grizzlies de Memphis.Anthony Davis anotó 11 de sus 21 puntos en el último cuarto. Cometió su quinta falta con 3:51 minutos restantes en el tercer periodo y regresó con 6:48 por jugar. Acto seguido, aportó un par de canastas cruciales, incluyendo un triple con 4:51 restantes que puso a Los Ángeles al frente definitivamente por 111-108. https://espndeportes.espn.com/basquetbol/nba/cronica/_/juegoId/401704791 Brooklyn 114-139 Boston#NBA#Brooklyn#Boston Jayson Tatum anotó 36 puntos, prodigó 10 asistencias y capturó ocho rebotes, Jaylen Brown añadió 24 unidades y 12 rebotes, y los Boston Celtics arrollaron el miércoles 139-114 los Brooklyn Nets. Payton Pritchard consiguió 23 tantos, ocho asistencias y seis rebotes por los Celtics, quienes se recuperaron rápidamente y de manera enfática de una sorpresiva derrota del martes, en casa por 117-116 ante Atlanta Hawks. https://espndeportes.espn.com/basquetbol/nba/cronica/_/juegoId/401704784 Spurs 139-130 Washington#NBA#Spurs#Washington Victor Wembanyama logró un récord personal de 50 puntos y los San Antonio Spurs se impusieron el miércoles 139-130 a los Washington Wizards. Wembanyama acertó 8 de 16 disparos de tres puntos, estableciendo también la mejor cifra en su carrera, en un encuentro en que San Antonio logró su segunda victoria consecutiva. Jordan Poole obtuvo 42 puntos por Washington, que sin embargo sufrió su sexta derrota en fila. https://espndeportes.espn.com/basquetbol/nba/cronica/_/juegoId/401704790 Otros marcadores Orlando 94-90 Indiana Knicks 123-124 Chicago 76ers 106-114 Cleveland Oklahoma 106-88 Pelicans Houston 111-103 Clippers Milwaukee 127-120 Detroit Portland 106-98 Minnesota Sacramento 127-104 Phoenix 🏆@Info288_deportes