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

Резултати

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

Търсене: #zan

当前筛选 #zan清除筛选
Ultimora.net - POLITICS

@ultimoraPOLITICS · Post #39388 · 14.05.2022 г., 14:06

#Italia Alessandro #Zan (#PD|S&D): "Il ddl Zan approvato alla camera è stato il frutto di lunghe mediazioni. Molti di questi cambiamenti sono stati chiesti e ottenuti proprio grazie alla mediazione. Quello che chiediamo è che nella legge non vengano mai meno diritti e dignità delle persone. Noi abbiamo solo esteso la legge Mancino. Il sogno e far uscire l'Italia da questa arretratezza che nell'Unione Europea non trova posto. Approvare il ddl sarebbe solo primo passo nella lotta per i diritti." @UltimoraPolitics

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #43259 · 07.04.2023 г., 12:45

Elly #Schlein presenta la nuova segreteria #PD: sarà Marta #Bonafoni la coordinatrice. E poi Peppe #Provenzano agli Esteri, Sandro #Ruotolo all'Informazione e Cultura, Maria Cecilia #Guerra al Lavoro, Alessandro #Zan ai Diritti, Debora #Serracchiani alla Giustizia @UltimoraPolitics

Libertà è ragione

@libertaeragione · Post #4356 · 12.03.2025 г., 15:17

#Italia#UE#Europarlamento Voto presso il Parlamento Europeo sulla risoluzione concernente il white paper sulla difesa comune europea, deputati italiani per partito: A favore (41 voti): - #PD|S&D: Lucia #Annunziata, Stefano #Bonaccini, Antonio #Decaro, Giorgio #Gori, Elisabetta #Gualmini, Giuseppe #Lupo, Pierfrancesco #Maran, Alessandra #Moretti, Pina #Picierno, Irene #Tinagli, Raffaele #Topo; - #FdI|ECR: Sergio #Berlato, Stefano #Cavedagna, Carlo #Ciccioli, Giovanni #Crosetto, Elena #Donazzan, Carlo #Fidanza, Pietro #Fiocchi, Alberico #Gambino, Chiara #Gemma, Paolo #Inselvini, Lara #Magoni, Mario #Mantovani, Denis #Nesci, Michele #Picaro, Daniele #Polato, Nicola #Procaccini, Ruggero #Razza, Antonella #Sberna, Marco #Squarta, Francesco #Torselli, Francesco #Ventola, Mariateresa #Vivaldini; - #FI|EPP: Caterina #Chinnici, Marco #Falcone, Fulvio #Martusciello, Letizia #Moratti, Giusi #Princi, Massimiliano #Salini, Flavio #Tosi; - #SVP|EPP: Herbert #Dorfmann. Contrari (20 voti): - #Lega|PfE: Paolo #Borchia, Susanna #Ceccardi, Aldo #Patriciello, Silvia #Sardone, Raffaele #Stancanelli, Isabella #Tovaglieri, Roberto #Vannacci; - #EV|G/EFA: Cristina #Guarda, Ignazio Roberto #Marino, Leoluca #Orlando, Benedetta #Scuderi; - #SI|LEFT: Mimmo #Lucano; - #M5S|LEFT: Giuseppe #Antoci, Danilo #DellaValle, Mario #Furore, Carolina #Morace, Valentina #Palmisano, Gaetano #Pedullà, Dario #Tamburrano, Pasquale #Tridico. Astenuti (10): - PD|S&D: Brando #Benifei, Annalisa #Corrado, Camilla #Laureti, Dario #Nardella, Matteo #Ricci, Sandro #Ruotolo, Marco #Tarquinio, Alessandro #Zan, Nicola #Zingaretti. @OsservatorioItaliano

Libertà è ragione

@libertaeragione · Post #4305 · 27.11.2024 г., 17:20

#Italia#UE#EuroParlamento Votazione presso il Parlamento Europeo per l'elezione della #Commissione Europea guidata da Ursula #VonDerLeyen (#CDU|EPP), deputati italiani per partito: A favore (52 voti): #FdI|ECR: Sergio #Berlato, Stefano #Cavedagna, Carlo #Ciccioli, Alessandro #Ciriani, Giovanni #Crosetto, Elena #Donazzan, Carlo #Fidanza, Pietro #Fiocchi, Alberico #Gambino, Chiara #Gemma, Paolo #Inselvini, Lara #Magoni, Mario #Mantovani, Giuseppe #Milazzo, Denis #Nesci, Michele #Picaro, Daniele #Polato, Nicola #Procaccini, Ruggero #Razza, Antonella #Sberna, Marco #Squarta, Francesco #Torselli, Francesco #Ventola, Mariateresa #Vivaldini; #FI|EPP: Caterina #Chinnici, Salvatore #DeMeo, Marco #Falcone, Fulvio #Martusciello, Letizia #Moratti, Giusi #Princi, Massimiliano #Salini, Flavio #Tosi; #SVP|EPP: Herbert #Dorfmann; #PD|S&D: Lucia #Annunziata, Brando #Benifei, Stefano #Bonaccini, Annalisa #Corrado, Antonio #Decaro, Giorgio #Gori, Elisabetta #Gualmini, Camilla #Laureti, Giuseppe #Lupo, Pierfrancesco #Maran, Alessandra #Moretti, Dario #Nardella, Pina #Picierno, Matteo #Ricci, Sandro #Ruotolo, Irene #Tinagli, Raffaele #Topo, Alessandro #Zan, Nicola #Zingaretti. Contrari (23 voti): #Lega|PfE: Paolo #Borchia, Susanna #Ceccardi, Anna Maria #Cisint, Aldo #Patriciello, Silvia #Sardone, Raffaele #Stancanelli, Isabella #Tovaglieri, Roberto #Vannacci; PD|S&D: Cecilia #Strada, Marco #Tarquinio; #M5S|LEFT: Giuseppe #Antoci, Danilo #DellaValle, Mario #Furore, Carolina #Morace, Valentina #Palmisano, Giuseppe #Pedullà, Dario #Tamburrano, Pasquale #Tridico; #SI|LEFT: Mimmo #Lucano, Ilaria #Salis; #EV|G/EFA: Ignazio Roberto #Marino, Leoluca #Orlando, Benedetta #Scuderi. @OsservatorioItaliano