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

Резултати

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

Търсене: #j1league

当前筛选 #j1league清除筛选
AI match predictions

@ai_match_prediction · Post #12073 · 13.05.2026 г., 05:05

Japan J1 League🇯🇵 2026-05-13 10:00 UTC Vissel Kobe vs. Kyoto Sanga Predicted outcome: Vissel Kobe✅ Predicted score: 2:1 Actual: Vissel Kobe 1:0 #VisselKobe#KyotoSanga 2026-05-13 10:00 UTC Machida Zelvia vs. Tokyo Verdy Predicted outcome: Machida Zelvia❌ Predicted score: 2:1 Actual: Draw 0:0 #MachidaZelvia#TokyoVerdy #Football#J1League

AI match predictions

@ai_match_prediction · Post #11236 · 01.04.2026 г., 05:05

Japan J1 League🇯🇵 2026-04-01 10:00 UTC Vissel Kobe vs. Shimizu S-pulse Predicted outcome: Vissel Kobe✅ Predicted score: 1:0 Actual: Vissel Kobe 2:0 #VisselKobe#ShimizuSpulse 2026-04-01 10:00 UTC Machida Zelvia vs. FC Tokyo Predicted outcome: Draw❌ Predicted score: 1:1 Actual: FC Tokyo 0:3 #MachidaZelvia#FCTokyo #Football#J1League

AI match predictions

@ai_match_prediction · Post #11111 · 20.03.2026 г., 21:05

Japan J1 League🇯🇵 2026-03-21 05:00 UTC Fagiano Okayama vs. V-varen Nagasaki Predicted outcome: V-varen Nagasaki✅ Predicted score: 1:2 Actual: V-varen Nagasaki 0:1 #FagianoOkayama#VvarenNagasaki 2026-03-21 05:30 UTC Avispa Fukuoka vs. Gamba Osaka Predicted outcome: Draw✅ Predicted score: 1:1 Actual: Draw 2:2 #AvispaFukuoka#GambaOsaka #Football#J1League

AI match predictions

@ai_match_prediction · Post #11453 · 11.04.2026 г., 21:05

Japan J1 League🇯🇵 2026-04-12 05:00 UTC Urawa vs. Tokyo Verdy Predicted outcome: Urawa❌ Predicted score: 2:1 Actual: Draw 1:1 #Urawa#TokyoVerdy 2026-04-12 07:00 UTC Kawasaki Frontale vs. Kashima Predicted outcome: Kashima✅ Predicted score: 1:3 Actual: Kashima 0:2 #KawasakiFrontale#Kashima #Football#J1League

AI match predictions

@ai_match_prediction · Post #11970 · 08.05.2026 г., 21:05

Japan J1 League🇯🇵 2026-05-09 05:00 UTC Mito Hollyhock vs. Urawa Predicted outcome: Mito Hollyhock❌ Predicted score: 2:1 Actual: Urawa 1:4 #MitoHollyhock#Urawa 2026-05-09 07:00 UTC Cerezo Osaka vs. V-varen Nagasaki Predicted outcome: Cerezo Osaka✅ Predicted score: 2:1 Actual: Cerezo Osaka 3:2 #CerezoOsaka#VvarenNagasaki #Football#J1League

AI match predictions

@ai_match_prediction · Post #11692 · 24.04.2026 г., 05:05

Japan J1 League🇯🇵 2026-04-24 10:00 UTC Kashiwa Reysol vs. Kashima Predicted outcome: Kashima✅ Predicted score: 1:2 Actual: Kashima 0:1 #KashiwaReysol#Kashima 2026-04-24 10:00 UTC FC Tokyo vs. Mito Hollyhock Predicted outcome: FC Tokyo✅ Predicted score: 1:0 Actual: FC Tokyo 5:2 #FCTokyo#MitoHollyhock #Football#J1League

AI match predictions

@ai_match_prediction · Post #11587 · 18.04.2026 г., 21:05

Japan J1 League🇯🇵 2026-04-19 04:00 UTC Mito Hollyhock vs. Kashiwa Reysol Predicted outcome: Draw❌ Predicted score: 1:1 Actual: Mito Hollyhock 2:0 #MitoHollyhock#KashiwaReysol 2026-04-19 06:00 UTC Gamba Osaka vs. Fagiano Okayama Predicted outcome: Gamba Osaka❌ Predicted score: 2:1 Actual: Draw 2:2 #GambaOsaka#FagianoOkayama 2026-04-19 07:00 UTC Nagoya Grampus vs. Avispa Fukuoka Predicted outcome: Nagoya Grampus❌ Predicted score: 1:0 Actual: Draw 2:2 #NagoyaGrampus#AvispaFukuoka #Football#J1League

AI match predictions

@ai_match_prediction · Post #11872 · 02.05.2026 г., 21:05

Japan J1 League🇯🇵 2026-05-03 05:03 UTC Tokyo Verdy vs. Kashiwa Reysol Predicted outcome: Kashiwa Reysol❌ Predicted score: 1:2 Actual: Tokyo Verdy 1:0 #TokyoVerdy#KashiwaReysol 2026-05-03 06:00 UTC Cerezo Osaka vs. Avispa Fukuoka Predicted outcome: Cerezo Osaka❌ Predicted score: 2:1 Actual: Draw 1:1 #CerezoOsaka#AvispaFukuoka 2026-05-03 07:00 UTC Kashima vs. Machida Zelvia Predicted outcome: Kashima❌ Predicted score: 2:1 Actual: Draw 1:1 #Kashima#MachidaZelvia 2026-05-03 08:00 UTC V-varen Nagasaki vs. Nagoya Grampus Predicted outcome: Nagoya Grampus✅ Predicted score: 1:2 Actual: Nagoya Grampus 1:2 #VvarenNagasaki#NagoyaGrampus #Football#J1League

AI match predictions

@ai_match_prediction · Post #11267 · 03.04.2026 г., 21:05

Japan J1 League🇯🇵 2026-04-04 04:00 UTC JEF United Chiba vs. Tokyo Verdy Predicted outcome: JEF United Chiba✅ Predicted score: 2:1 Actual: JEF United Chiba 3:2 #JEFUnitedChiba#TokyoVerdy 2026-04-04 05:00 UTC Mito Hollyhock vs. Kashima Predicted outcome: Kashima❌ Predicted score: 0:2 Actual: Draw 1:1 #MitoHollyhock#Kashima 2026-04-04 06:00 UTC Nagoya Grampus vs. Cerezo Osaka Predicted outcome: Cerezo Osaka❌ Predicted score: 1:2 Actual: Nagoya Grampus 3:0 #NagoyaGrampus#CerezoOsaka 2026-04-04 07:00 UTC Gamba Osaka vs. Kyoto Sanga Predicted outcome: Draw❌ Predicted score: 2:2 Actual: Gamba Osaka 2:0 #GambaOsaka#KyotoSanga #Football#J1League

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