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

Резултати

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

Търсене: #locali

当前筛选 #locali清除筛选
Libertà è ragione

@libertaeragione · Post #4363 · 02.05.2025 г., 21:47

#Elezioni#RegnoUnito#Locali Risultati definitivi: #Reform|Destra populista: 677 seggi (+677) #LDEM|RE: 370 (+164) #CON|Centro-destra: 317 (-676) #LAB|S&D: 99 (-186) Indipendenti: 88 (-20) #Greens|G/EFA: 80 (+45) #MK|Regionalisti cornici: 3 (-2) Residents' Association: 2 (-1) Ashfield Independents: 1 (-9) @OsservatorioEsteri

Libertà è ragione

@libertaeragione · Post #4421 · 13.10.2025 г., 15:33

#Elezioni#Portogallo#Locali Consigli comunali conquistati: #PSD|EPP e coalizioni: 136 #PS|S&D e coalizioni: 128 #CDS|EPP e coalizioni: 61 Indipendenti e Localisti: 20 #CDU (#PCP-#PEV)|LEFT|G/EFA: 12 *#PPM|ECPP: 7 *#IL|RE: 6 #Chega|PfE: 3 *#PAN|G/EFA: 2 *#LIVRE|G/EFA: 2 *#Volt|G/EFA: 1 #JPP|Centro di Madeira: 1 #NC|Centro-destra: 1 *= in coalizione In foto, la mappa del voto. @OsservatorioEsteri

Libertà è ragione

@libertaeragione · Post #4463 · 23.03.2026 г., 00:18

#Elezioni#Francia#Locali#ÎleDeFrance#Parigi Risultati definitivi: Affluenza: 61,59% Emmanuel #Grégoire (#PS supp. #PP-#EELV-#PCF|S&D|G/EFA|LEFT): 50,52% Rachida #Dati (#LR supp. #MoDem-#UDI-#Horizons|EPP|RE): 41,51% Sophia #Chikirou (#LFI|LEFT): 7,97% Emmanuel Grégoire eletto Sindaco di Parigi. @OsservatorioEsteri

Libertà è ragione

@libertaeragione · Post #4459 · 19.03.2026 г., 13:45

#Elezioni#PaesiBassi#Locali Risultati definitivi dei seggi: Affluenza: 53,7% (+3 rispetto al 2022) Localisti: 3391 seggi (+197) #CDA|EPP: 1110 (-19) #VVD|RE: 1074 (+66) #PvdA-#GL|S&D|G/EFA: 1059 (-138) #D66|RE: 660 (+57) #FvD|ESN: 299 (+244) #SGP|ECR: 256 (+28) #CU|ECPP: 211 (-91) #SP|LEFT: 103 (-65) #PVV|PfE: 101 (+42) #CU-#SGP|ECPP|ECR: 78 (-12) #PvdD|LEFT: 58 (-5) #50PLUS|RE: 39 (+18) #BBB|ECR: 38 (+38) #DENK|Sinistra multiculturale: 31 (+7) #Volt|G/EFA: 25 (+5) #JA21|Destra fortuinista: 17 (+15) #BIJ1|Sinistra radicale: 4 (-2) @OsservatorioEsteri

Libertà è ragione

@libertaeragione · Post #3832 · 20.05.2023 г., 23:36

#Elezioni#RegnoUnito#Locali#NordIrlanda Risultati definitivi: #SF|LEFT: 144 seggi (+39) #DUP|Destra unionista: 122 #APNI|RE: 67 (+14) #UUP|ECR: 54 (-21) #SDLP|S&D: 39 (-20) Indipendenti: 19 (-5) #TUV|Destra unionista: 9 (+3) #GreensNI|G/EFA: 5 (-3) #PBP|LEFT: 2 (-3) #PUP|Sinistra unionista: 1 (-2) #Aontú|Nazionalisti conservatori: 0 (-1) #CCLA|Sinistra: 0 (-1) Per blocchi: Nazionalisti (#SF-#SDLP-#Aontú): 192 Unionisti (#DUP-#UUP-#TUV-#PUP): 191 Non settari (#APNI-#GreensNI-#PBP): 80 @OsservatorioEsteri

Libertà è ragione

@libertaeragione · Post #3951 · 12.09.2023 г., 10:58

#Elezioni#Norvegia#Locali Risultati definitivi: Affluenza: 62,2% #H|EPP: 25,9% #Ap|S&D: 21,7% #FrP|Destra: 11,4% #Sp|Centro ruralista: 8,2% #SV|Sinistra: 6,8% #V|RE: 5% #MDG|G/EFA: 4,1% #KrF|EPP: 4% #R|Estrema sinistra: 3,5% #INP|Destra populista: 3% #Pensjonistpartiet|Pensionati: 1,5% #ND|Destra: 0,5% #K|Destra cristiana: 0,5% #Sentrum|Ecologisti di centro: 0,4% #Lib|Destra libertaria: 0,2% #FNB|Anti-pedaggi: 0,2% #NKP|INITIATIVE: 0,05% #Alliansen|Estrema destra: 0,04% #Kystpartiet|Centro-destra ruralista regionalista: 0,02% #Árja|Centro Sámi: 0,01% #SáB|Minoranza Sámi: 0% @OsservatorioEsteri

Libertà è ragione

@libertaeragione · Post #4457 · 16.03.2026 г., 11:00

#Elezioni#Francia#Locali#ÎleDeFrance#Parigi Risultati preliminari: Emmanuel #Grégoire (#PS supp. #PP-#EELV-#PCF|S&D|G/EFA|LEFT): 38% Rachida #Dati (#LR supp. #MoDem-#UDI|EPP|RE): 25,5% Sophia #Chikirou (#LFI|LEFT): 11,7% Pierre-Yves #Bournazel (#Horizons supp. #Renaissance|RE): 11,3% Sarah #Knafo (#Reconquête|ESN): 10,4% Thierry #Mariani (#RN supp. #UDR|PfE|Destra): 1,6% Blandine #Chauvel (#NPA|Estrema sinistra): 0,7% Marielle #Saulnier (#LO|Estrema sinistra): 0,7% Mahel #PierotGuimbaud (#PT|Estrema sinistra): 0,1% Necessario un secondo turno tra Grégoire, Dati, Chikirou, Bournazel e Knafo. @OsservatorioEsteri