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

Резултати

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

Търсене: #sechi

当前筛选 #sechi清除筛选
Savino Balzano

@savinobalzano · Post #844 · 17.12.2024 г., 09:51

https://x.com/SavinoBalzano/status/1868955755107271155?t=DnSRyzb5frMEdUA3MzmTig&s=19 Ieri c'è stata una mezza zuffa a #OttoEMezzo, tra #Gruber e #Sechi, colpevole di aver attribuito un ruolo politico a #Saviano. Penso che il Direttore di #Libero avesse ragione: #RobertoSaviano è perfettamente collocabile nelle vesti di un attore politico in senso stretto; i suoi attacchi sono unilaterali, gli argomenti adottati spesso sovrapponibili a quelli dell'opposizione di #sinistrucola e, dunque, il suo è un ruolo politico, funzionale all'opposizione. Avete mai sentito #RobertoSaviano muovere una critica seria al #PD, evidenziarne le infinite contraddizioni? avete mai assistito a un Saviano feroce col Sinsacato, che ne denunciasse le profondissime incoerenze e le misere strumentalizzazioni? io non ricordo nulla di tutto ciò. Il suo è un ruolo politico, ha ragione Sechi. Come un ruolo politico svolgono alcuni giornalisti, dei quali peraltro non apprezzo minimamente (forse per mio limite) la qualità: cosa c'è di apprezzabile nel pedinare il Presidente del Senato #Larussa e nel domandargli ossessivmente, pappagallescamente, se è #antifascista? Dove sarebbe l'inchiesta? dove la rilevanza pubblica per chi legge? Peraltro il tutto fatto provocatoriamente ad #Atreju2024, nella speranza di una reazione forte da parte di qualcuno che gli consentisse di presentarsi al mondo come vittima del regime. La banalità del male. Si, insomma, mettiamo che Larussa si fosse rivolto a #Tommasi rispondendogli: «lo ammetto, sono fascista». Cosa sarebbe accaduto? quale sarebbe stata la reazione nell'opinione pubblica? come avrebbe reagito la gente? Francamente, e lo dico da fervente antifascista per nulla orgoglioso di chi ricopre il ruolo della seconda carica dello Stato, penso che la gente se ne sarebbe completamente sbattuta di un epilogo del genere, perché la gente è stufa dell'#antifascismo politicamente corretto e salottiero di cui questi sono l'espressione. Io trovo offensivo che una roba seria come l'antifascismo sia nelle mani di certa gente, che certi soggetti possano davvero considerarsi eredi e depositari di quella cultura. I valori della nostra Costituzione sono stati traditi da chi ha svenduto il Paese affamando la gente: perché non evidenziare queste gravissime contraddizioni, laddove ad animarle sono stati proprio quelli che oggi cantano Bella Ciao in piazza? ci hanno scippato quella canzone, con tutta la memoria della Resistenza, per farne un vessillo scialbo e ormai insignificante, da sbandierare irrispettosamente e strumentalmente contro l'avversario non gradito, nel teatrino che è diventato il dibattito pubblico italiano. Davvero qualche cretino può pensare che i valori dell'antifascismo possano essere incarnati da chi si vantava di fottere il tavolino esterno di un bar a chi non possedeva il #GreenPass? che l'antifascismo sia coerente col negare il diritto a qualcuno di prendere un caffè? nel divertimento sorridente sbattuto in faccia a chi veniva escluso dal godimento di diritti fondamentali? e non mi riferisco solo al caffè, evidentemente. Certe nefandezze non saranno mai dimenticate e mai perdonate: resteranno marchiate a fuoco, come uno stigma morale, sulla pelle di chi se ne è reso responsabile, alimentando un odio sociale ingiustificato e vessatorio del quale paghiamo il prezzo ancora adesso. Che categoria decaduta è quella degli intellettuali! #Pasolini era un intellettuale, non #Saviano, non #Valerio, non #Murgia («Può durare un altro po' questo virus? se il risultato è la vivibilità delle strade, io ci metterei la firma»). L'intellettuale è spietato, non guarda in faccia nessuno, ha un solo faro: le proprie idee, espresse con la massima onestà intellettuale possibile. #Pasolini era un comunista e le critiche più feroci le ha rivolte proprio al partito che rappresentava l'ideologia che sentiva più vicina. Questi fanno lo stesso? (...) CONTINUA SU X