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 подобни публикации

Търсене: #pertini

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

@savinobalzano · Post #727 · 23.08.2024 г., 08:40

https://x.com/SavinoBalzano/status/1826902126892650501?t=Nph5MkcjigQSaPyF7ltyrA&s=19 Parlava agli operai dell'Italsider di Savona, #Pertini, con un discorso tanto toccante e appassionato da essere quasi insopportabile oggi, allo sguardo di chi può guardare indietro, con la consapevolezza di quanto sia stato tradito e disatteso. Si rivolgeva ai giovani, ai lavoratori e invitava tutti alla lotta, alla difesa, alla rivendicazione. Si perché Pertini sapeva benissimo che la #libertà senza giustizia sociale è cosa vana. Cos'è la libertà senza giustizia sociale? Si domandò retoricamente in un famoso discorso di fine anno da #PresidenteDellaRepubblica: è libertà di bestemmiare, nulla di più. Ecco cosa rispose. Era garante del vincolo interno, Pertini, della #Repubblica, della #Costituzione. Tutto ciò che oggi non è il #Quirinale. Oggi al Quirinale si inciucia coi Presidenti della Commissione Europea per disarcionare "dolcemente" un capo di governo inviso agli eurocrati di #Bruxelles o si pone il veto su quel ministro sgradito alle élite finanziarie eurounitarie. In questo Paese è diventato impossibile tutelare l'interesse nazionale: tale impegno è considerato quasi reazionario, nella accezione più negativa del termine. Il punto è che oggi essere reazionari è letteralmente doveroso: una reazione a chi vuole continuare a spolpare le nostre risorse è semplicemente l'unica cosa sensata da fare. Pertini si definiva orgogliosamente riformista. Era giusto: lo faceva quando certi presidi non erano ancora stati conquistati. Oggi forse non ha più senso, se non nella misura in cui la riforma coincida con la restaurazione. Viceversa, è corretto definirsi conservatori se si vuole ciò che voleva Pertini: libertà e giustizia sociale. Il gioco di prestigio è stato proprio questo: dividere i #diritti dopo aver diviso le persone. Contrapporre libertà a diritti sociali, abbandonando l'eversività del programma costituzionale, sancito in particolar modo nell'articolo 3, che più di ogni altro seppe conciliare le anime del Paese: la laburista ("partecipazione dei lavoratori") e la cristiana democratica ("sviluppo della persona umana"). Ciò è stato possibile quando chi storicamente aveva il compito di tutelare i fragili, le periferie sociali ed esistenziali, il mondo del lavoro, ha tradito. Ed è proprio per (mal)celare quel tradimento che si sventola ossessivamente e grottescamente la bandiera arcobaleno intonando un'ormai stonata "bella ciao". È l'imbarazzo di chi non può ammettere di aver "torto il volto" da una storia, da dei valori, da determinati ideali, da una prospettiva, a indurre certe messe in scena grottesche. Lo spettacolo sgredevole cui si assiste è frutto di una necessità imprescindibile: provare a dissimulare il fatto che nel Paese vi sia qualcuno che non persegue l'interesse del #popolo italiano, ma quello di qualcun altro. Un'agenda sociale non può esistere, dopotutto partiti come il #PD non l'hanno mai perseguita quando hanno guidato il Paese, perché la priorità per alcuni è quella di agevolare determinati centri di potere, mediante le politiche economiche neoliberali volute a Bruxelles (e non solo). Oggi si urla al #fascismo, mitizzando "intellettuali" completamente vuoti, ma se soltanto le forze di opposizione abbandonassero (cosa impossibile) il ruolo di servitù o di utile idiozia il pericolo diverrebbe quello del ritorno allo stalinismo o qualcosa del genere. Ecco perché è fondamentale aprire gli occhi e comprendere che gli ideali esistono, mentre non esiste più la tradizionale contrapposizione partitica da essi sottesa. Non ha dunque alcun senso il demenziale sostenere per affezione una parte, con la consapevolezza che appena arrivata al potere svenderà ciò che vi è più caro. E ragionarci da un Paese come la #Grecia è assai più amaro: qui il #neocolonialismo e l'avido sciacallaggio europeo lo hanno pagato letteralmente con la vita.