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

Резултати

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

Търсене: #ponta

当前筛选 #ponta清除筛选
Tutto Elezioni

@tuttoelezioni · Post #870 · 04.05.2025 г., 08:51

#Romania🇷🇴 #Presidenziali Victor #Ponta, 52 anni, è originario di Bucarest (Muntenia). Avvocato di professione, è stato deputati dal 2004 al 2020, Presidente del Partito Social Democratico (#PSD|S&D) dal 2010 al 2015, è Primo Ministro dal 2012 al 2015. Attualmente è di nuovo deputato, come indipendente nel gruppo parlamentare del PSD. Ponta si candidò anche alle elezioni presidenziali del 2014, dove giunse al ballottaggio con Klaus #Iohannis, sostenuto dal Partito Nazionale Liberale (#PNL|PPE); in quella tornata Ponta venne sconfitto da Iohannis. La sua candidatura è sostenuta da diversi partiti minori, tra i quali PRO Romania (#PRO|S&D), di cui è stato Presidente dal 2018 al 2024. @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #919 · 05.05.2025 г., 08:53

#Romania🇷🇴 #Presidenziali Risultati preliminari. Sezioni scrutinate: 20.085/20.085 (100%) 🟧 George #Simion (#AUR|ECR): 40,96% 🟩 Nicușor #Dan (Ind.): 20,99% 🟦 Crin #Antonescu (#PSD|S&D, #PNL|PPE, #UDMR|PPE): 20,07% 🟥 Victor #Ponta (Ind.): 13,04% 🟦 Elena #Lasconi (#USR|RE): 2,68% Altri: 2,26% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #918 · 04.05.2025 г., 22:30

#Romania🇷🇴 #Presidenziali Risultati parziali. Sezioni scrutinate: 19.915/20.085 (99,15%) 🟧 George #Simion (#AUR|ECR): 40,53% 🟩 Nicușor #Dan (Ind.): 20,90% 🟦 Crin #Antonescu (#PSD|S&D, #PNL|PPE, #UDMR|PPE): 20,34% 🟥 Victor #Ponta (Ind.): 13,28% 🟦 Elena #Lasconi (#USR|RE): 2,67% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #915 · 04.05.2025 г., 21:55

#Romania🇷🇴 #Presidenziali Risultati parziali. Sezioni scrutinate: 19.783/20.085 (98,50%) 🟧 George #Simion (#AUR|ECR): 40,32% 🟩 Nicușor #Dan (Ind.): 20,77% 🟦 Crin #Antonescu (#PSD|S&D, #PNL|PPE, #UDMR|PPE): 20,50% 🟥 Victor #Ponta (Ind.): 13,45% 🟦 Elena #Lasconi (#USR|RE): 2,67% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #914 · 04.05.2025 г., 21:40

#Romania🇷🇴 #Presidenziali Risultati parziali. Sezioni scrutinate: 19.690/20.085 (98,03%) 🟧 George #Simion (#AUR|ECR): 40,26% 🟩 Nicușor #Dan (Ind.): 20,70% 🟦 Crin #Antonescu (#PSD|S&D, #PNL|PPE, #UDMR|PPE): 20,56% 🟥 Victor #Ponta (Ind.): 13,53% 🟦 Elena #Lasconi (#USR|RE): 2,67% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #913 · 04.05.2025 г., 21:35

#Romania🇷🇴 #Presidenziali Risultati parziali. Sezioni scrutinate: 19.651/20.085 (97,84%) 🟧 George #Simion (#AUR|ECR): 40,21% 🟩 Nicușor #Dan (Ind.): 20,68% 🟦 Crin #Antonescu (#PSD|S&D, #PNL|PPE, #UDMR|PPE): 20,59% 🟥 Victor #Ponta (Ind.): 13,56% 🟦 Elena #Lasconi (#USR|RE): 2,67% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #912 · 04.05.2025 г., 21:28

#Romania🇷🇴 #Presidenziali Risultati parziali. Sezioni scrutinate: 19.583/20.085 (97,57%) 🟧 George #Simion (#AUR|ECR): 40,14% 🟩 Nicușor #Dan (Ind.): 20,66% 🟦 Crin #Antonescu (#PSD|S&D, #PNL|PPE, #UDMR|PPE): 20,64% 🟥 Victor #Ponta (Ind.): 13,60% 🟦 Elena #Lasconi (#USR|RE): 2,67% ❗️Nicușor Dan sorpassa Crin Antonescu e diventa secondo. @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #911 · 04.05.2025 г., 21:27

#Romania🇷🇴 #Presidenziali Risultati parziali. Sezioni scrutinate: 19.583/20.085 (97,50%) 🟧 George #Simion (#AUR|ECR): 40,12% 🟦 Crin #Antonescu (#PSD|S&D, #PNL|PPE, #UDMR|PPE): 20,66% 🟩 Nicușor #Dan (Ind.): 20,64% 🟥 Victor #Ponta (Ind.): 13,61% 🟦 Elena #Lasconi (#USR|RE): 2,66% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #910 · 04.05.2025 г., 21:20

#Romania🇷🇴 #Presidenziali Risultati parziali. Sezioni scrutinate: 19.523/20.085 (97,20%) 🟧 George #Simion (#AUR|ECR): 40,08% 🟦 Crin #Antonescu (#PSD|S&D, #PNL|PPE, #UDMR|PPE): 20,72% 🟩 Nicușor #Dan (Ind.): 20,57% 🟥 Victor #Ponta (Ind.): 13,67% 🟦 Elena #Lasconi (#USR|RE): 2,66% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #909 · 04.05.2025 г., 21:17

#Romania🇷🇴 #Presidenziali Risultati parziali. Sezioni scrutinate: 19.493/20.085 (97,05%) 🟧 George #Simion (#AUR|ECR): 40,04% 🟦 Crin #Antonescu (#PSD|S&D, #PNL|PPE, #UDMR|PPE): 20,74% 🟩 Nicușor #Dan (Ind.): 20,55% 🟥 Victor #Ponta (Ind.): 13,70% 🟦 Elena #Lasconi (#USR|RE): 2,66% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #908 · 04.05.2025 г., 21:11

#Romania🇷🇴 #Presidenziali Risultati parziali. Sezioni scrutinate: 19.345/20.085 (96,68%) 🟧 George #Simion (#AUR|ECR): 40,02% 🟦 Crin #Antonescu (#PSD|S&D, #PNL|PPE, #UDMR|PPE): 20,78% 🟩 Nicușor #Dan (Ind.): 20,48% 🟥 Victor #Ponta (Ind.): 13,75% 🟦 Elena #Lasconi (#USR|RE): 2,66% @TuttoElezioni

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