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

Резултати

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

Търсене: #deva

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

@Ultimorapolitics · Post #37627 · 26.04.2022 г., 13:35

#Sondaggi#Turchia Sondaggio di ASAL: #AKP|Destra: 36% (+1,5) #CHP|S&D: 25% (-1) #İYİ|Centro-destra: 12% #HDP|S&D: 10,5% (+0,5) #MHP|Estrema destra: 9% #DEVA|Centro: 2% #YRP|Estrema destra islamica: 1% #SP|Estrema destra islamica: 1% #GP|Centro-destra: 1% Data rilevazione: 8-10 aprile +/-: 15-18 marzo Intervistati: 2100 @UltimoraPolitics

Ultimora.net - POLITICS

@ultimoraPOLITICS · Post #39591 · 17.05.2022 г., 14:04

#Sondaggi#Turchia Sondaggio di AKAM: #CHP|S&D: 30,5% (-1) #AKP|Destra: 29,5% (-1,5) #İYİ|Centro-destra: 13% #HDP|S&D: 10% #MHP|Estrema destra: 6% #DEVA|Centro: 5% (+1) #ZAFER|Destra kemalista: 2% (+1) #GP|Centro-destra: 2% (+1) #SP|Estrema destra islamica: 1% Data rilevazione: 27 aprile-3 maggio +/-: 24-29 marzo Intervistati: 2460 @UltimoraPolitics

Ultimora.net - POLITICS

@ultimoraPOLITICS · Post #39874 · 06.06.2022 г., 20:50

#Sondaggi#Turchia Sondaggio di AKAM: #CHP|S&D: 31% (+0,5) #AKP|Destra: 29,5% #İYİ|Centro-destra: 13% #HDP|S&D: 9% (-1) #MHP|Estrema destra: 5% (-1) #DEVA|Centro: 5% #GP|Centro-destra: 2% #ZAFER|Destra kemalista: 2% #SP|Estrema destra islamica: 1% #YRP|Estrema destra islamica: 1% (+1) Data rilevazione: 26 maggio-1° giugno +/-: 27 aprile-3 maggio Intervistati: 1500 @UltimoraPolitics

Ultimora.net - POLITICS

@UltimoraPOlitics · Post #39180 · 10.05.2022 г., 16:12

#Sondaggi#Turchia Sondaggio di İEA: #AKP|Destra: 32% #CHP|S&D: 26% #İYİ|Centro-destra: 17% (+2) #HDP|S&D: 12% #MHP|Estrema destra: 7% (-1) #DEVA|Centro: 2% (-1) #SP|Estrema destra islamica: 1% (;1) #YRP|Estrema destra islamica: 1% #GP|Centro-destra: 0,5% (-0,5) #ZAFER|Destra kemalista: 0,5% (+0,5) Data rilevazione: 4-7 aprile +/-: marzo Intervistati: 1500 @UltimoraPolitics

Ultimora.net - POLITICS

@UltimoraPOlitics · Post #38418 · 05.05.2022 г., 15:30

#Sondaggi#Turchia Sondaggio di MetroPOLL: #AKP|Destra: 32% (-2) #CHP|S&D: 22% (-2) #İYİ|Centro-destra: 19% (+3) #HDP|S&D: 12% (-1) #MHP|Estrema destra: 7% (+2) #DEVA|Centro: 2% #SP|Estrema destra islamica: 1% #YRP|Estrema destra islamica: 1% #GP|Centro-destra: 1% #ZAFER|Destra kemalista: 1% (+1) Data rilevazione: 14-20 aprile +/-: marzo Intervistati: 2164 @UltimoraPolitics

Ultimora.net - POLITICS

@UltimoraPOlitics · Post #39292 · 12.05.2022 г., 12:15

#Sondaggi#Turchia Sondaggio di Artıbir: #AKP|Destra: 30% #CHP|S&D: 27% #İYİ|Centro-destra: 14% #HDP|S&D: 13% #MHP|Estrema destra: 6% (-1) #DEVA|Centro: 5% (+1) #GP|Centro-destra: 2% #SP|Estrema destra islamica: 2% #YRP|Estrema destra islamica: 1% (+1) #MP|Centro-sinistra kemalista: 0,4% #ZAFER|Destra kemalista: 0,3% Data rilevazione: 21-30 aprile +/-: 20-28 marzo Intervistati: 1500 @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37805 · 28.04.2022 г., 18:02

#Sondaggi#Turchia Sondaggio di MAK: #AKP|Destra: 29% (-1) #CHP|S&D: 27% (+1) #İYİ|Centro-destra: 15% #HDP|S&D: 8% (-1) #MHP|Estrema destra: 7% #DEVA|Centro: 3% #GP|Centro-destra: 3% #BTP|Centro kemalista alevista: 1% #SP|Estrema destra islamica: 1% #HÜDAPAR|Estrema destra curda islamica: 1% #YRP|Estrema destra islamica: 1% Data rilevazione: 7-18 aprile +/-: 7-18 marzo Intervistati: 5750 @UltimoraPolitics

Ultimora.net - POLITICS

@ultimoraPOLITICS · Post #39317 · 12.05.2022 г., 18:40

#Sondaggi#Turchia Sondaggio di ORC: #AKP|Destra: 28% #CHP|S&D: 24% #İYİ|Centro-destra: 18% (+1) #HDP|S&D: 9% (+0,5) #MHP|Estrema destra: 7% (-1) #GP|Centro-destra: 2% #DEVA|Centro: 2% #SP|Estrema destra islamica: 2% #TDP|Centro-sinistra kemalista: 2% (+0,5) #YRP|Estrema destra islamica: 1% #BTP|Centro kemalista alevista: 1% #MP|Centro-sinistra kemalista: 1% #BBP|Estrema destra islamica: 1% (+0,5) #DP|Centro-destra: 1% Data rilevazione: 5-8 maggio +/-: 17-22 aprile Intervistati: 5300 @UltimoraPolitics

Ultimora.net - POLITICS

@Ultimorapolitics · Post #37788 · 28.04.2022 г., 13:53

#Sondaggi#Turchia Sondaggio di ORC: #AKP|Destra: 28% #CHP|S&D: 24% (+1) #İYİ|Centro-destra: 17% #HDP|S&D: 8,5% (-0,5) #MHP|Estrema destra: 8% #GP|Centro-destra: 2% (-1) #DEVA|Centro: 2% (-1) #SP|Estrema destra islamica: 2% (+0,5) #TDP|Centro-sinistra kemalista: 1,5% (+0,5) #YRP|Estrema destra islamica: 1% #BTP|Centro kemalista alevista: 1% #MP|Centro-sinistra kemalista: 1% #ZAFER|Destra kemalista: 1% (+1) #DP|Centro-destra: 1% #HÜDAPAR|Estrema destra curda islamica: 0,5% (-0,5) #BBP|Estrema destra islamica: 0,5% (+0,5) Data rilevazione: 17-22 aprile +/-: 31 marzo-3 aprile Intervistati: 4385 @UltimoraPolitics