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

Резултати

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

Търсене: #eadb

当前筛选 #eadb清除筛选

Опубликован первый в 2021 г. и 77-й по счету выпуск дайджеста "Ключевые события международных партнёров РСПП" из числа крупнейших деловых объединений и ключевых многосторонних институтов международного сотрудничества. В этом выпуске: Конфедерация промышленности Чешской Республики; Движение предприятий Франции (Medef); Франко-российская торгово-промышленная палата; Торговая палата США; Американо-российский деловой совет; Федеральный союз германской промышленности; BUSINESSEUROPE; Конференция ООН по торговле и развитию (ЮНКТАД); Всемирный банк; Продовольственная и сельскохозяйственная организация Объединенных Наций (ФАО); Организация экономического сотрудничества и развития (ОЭСР); Евразийская экономическая комиссия (ЕЭК); Евразийский банк развития (ЕАБР). Источник: https://rspp.ru/events/news/klyuchevye-sobytiya-mezhdunarodnykh-partnyerov-rspp-600177dd849ff/ #РСПП, #ЮНКТАД, #Всемирныйбанк, #ФАО, #ОЭСР, #ЕЭК, #ЕАБР, #RSPP, #UNCTAD, #WorldBank, #FAO, #OECD, #EADB.

Опубликован 5 (81) в 2021 г. выпуск бюллетеня "Ключевые события международных партнёров РСПП" из числа крупнейших деловых объединений и ключевых многосторонних институтов международного сотрудничества. В этом выпуске: Франко-российская торгово-промышленная палата; Торговая плата США; Ассоциация европейского бизнеса (АЕБ); Конфедерация промышленности Чешской Республики; Европейская комиссия; Международный валютный фонд (#МВФ, #IMF); Конференция ООН по торговле и развитию (#ЮНКТАД, #UNCTAD); Деловой консультативный совет Азиатско-Тихоокеанского экономического сотрудничества (#ДКСАТЭС, #ABAC); Продовольственная и сельскохозяйственная организация ООН (#ФАО, #FAO); Международный совет по зерну (#МСЗ, #IGC); Экономическая и социальная комиссия ООН для Азии и Тихого океана (#ЭСКАТО, #UNESCAP); Европейская экономическая комиссия ООН (#ЕЭКООН, #UNECE); Евразийская экономическая комиссия (#ЕЭК, #EEC); Евразийский банк развития (#ЕАБР, #EADB).

Опубликован очередной 7 (83) выпуск бюллетеня "Ключевые события международных партнёров РСПП". В этом выпуске: Всемирный Банк; Международный валютный фонд (#МВФ); Организация экономического сотрудничества и развития (#ОЭСР); Продовольственная и сельскохозяйственная организация Объединенных Наций (#ФАО); Организация Объединенных Наций (#ООН); Европейская экономическая комиссия ООН (#ЕЭКООН); Организация Объединенных Наций по вопросам образования, науки и культуры (#ЮНЕСКО); Конференция ООН по торговле и развитию (#ЮНКТАД); Ассоциация государств Юго-Восточной Азии (#АСЕАН); Азиатско-Тихоокеанское экономическое сотрудничество (#АТЭС); Международный совет по зерну (#МСЗ); Евразийская экономическая комиссия (#ЕЭК); Евразийский банк развития (#ЕАБР). Источник: http://рспп.рф/events/news/opublikovan-7-83-vypusk-byulletenya-klyuchevye-sobytiya-mezhdunarodnykh-partnyerov-rspp-60d5fee0a5eab/ #РСПП#RSPP#worldbank#IMF#UN#OECD#FAO#UNESCO#UNCTAD#ASEAN#APEC#IGC#EEC#EADB

Опубликован 74-й выпуск дайджеста "Ключевые события международных партнеров РСПП". С предыдущими можно ознакомиться в соответствующем разделе сайта РСПП: http://рспп.рф/activity/cooperation/byulleteni/ В этом выпуске: #ТорговаяпалатаСША; #Испанскаяконфедерациипредпринимательскихорганизаций; #ДвижениепредприятийФранции; #ФранкороссийскаяТПП; #Восточныйкомитетгерманскойэкономики; #КонфедерацияпромышленностиЧешскойРеспублики; #Конфедерацияиндийскойпромышленности; #Ассоциацияевропейскогобизнеса; #AEB; #АЕБ; #Африканскийсоюз; #Деловаядвадцатка; #B20; #КонференцияООНпоторговлеиразвитию; #ЮНКТАД; #UNCTAD; #Международныйсоветпозерну; #МСЗ; #IGC; #Евразийскаяэкономическаякомиссия; #ЕЭК; #EEC; #Евразийскийбанкразвития; #ЕАБР; #EADB.