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

Резултати

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

Търсене: #school

当前筛选 #school清除筛选

Летняя школа по демографии НИУ ВШЭ для студентов и выпускников российских вузов, интересующихся демографией пройдет с 30 июня по 4 июля 2025 года Подробности: www.hse.ru/demo/sdp/summer Подача заявок до: 14 мая 2025 года #school

Hashtags

Весенняя школа «Интеграция через поколения: исследование образовательных, профессиональных и семейных траекторий мигрантов» (Integration Across Generations: Exploring the Educational, Occupational and Family Trajectories of Migrants). Пройдет в Турине, Италия, 7–10 апреля 2025 года. Дедлайн: 2 марта 2025 года. Подробности: https://ecsrnet.eu/spring-school/ #school

Hashtags

Весенняя школа MIrreM 2025 "Подход к изучению нерегулярной миграции с количественной точки зрения: данные, оценки, методы" (MIrreM Spring School 2025 on Approaching Irregular Migration from a Quantitative Perspective: Data, Estimates, Methods) пройдет с 19 по 21 марта 2025 года на кампусе Университета непрерывного образования в Кремсе, Австрия. Дедлайн подачи заявок: 18 декабря 2024 года. Подробности: https://irregularmigration.eu/2024/12/03/mirrem-spring-school/ #school

Hashtags

Летняя программа по анализу данных о населении и обществе Институт демографических исследований Макса Планка приглашает студентов на трехмесячную программу (2 июня – 22 августа 2025 года), где участники будут работать в небольших командах с поддержкой опытных наставников над общими исследовательскими целями. Темы программы 2025 года: - "Изменение климата и мобильность" (Climate Change and Mobility), наставники: Ристо Конте Кеивабу, Эбру Санлитюрк, Моника Александр (Торонто). - "Машинное обучение для анализа жизненных траекторий" (Machine Learning for Life Course Trajectories), наставники: Линда Вецгайле, Бруно Арпино (Падова), Эмилио Загени. - "Смертность в условиях войны" (Mortality in War Settings), наставники: Иветт Янг, Диего Альбурес-Гутьеррес, Энрике Акоста (CED), Ирена Чен. Участвовать могут студенты бакалавриата, магистратуры или аспирантуры. Дедлайн: 8 января 2025 года. Подробности: https://www.demogr.mpg.de/en/career_6122/jobs_fellowships_1910/population_and_social_data_science_summer_incubator_program_13651 #school

Hashtags

Трехмесячная летняя стажировка для молодых ученых в International Institute for Applied Systems Analysis (IIASA), Австрия. Программа YSSP предназначена для аспирантов, которые уже несколько лет работают над своей темой и заинтересованы в возможном практическом применении результатов своей работы. Дедлайн подачи заявок на YSSP 2025: 13 января 2025 года. Подробности: https://iiasa.ac.at/early-career/yssp #school

Hashtags

Осенняя школа по цифровой и вычислительной демографии в институте Макса Планка (Topics in Digital and Computational Demography). Пройдет 4-8 ноября 2024 года в гибридном формате Дедлайн: 24 сентября Подробности: https://www.demogr.mpg.de/en/career_6122/international_advanced_studies_in_demography_6682/courses_6931/topics_in_digital_and_computational_demography_13340/ #school

Hashtags

Весенняя школа по восприятию богатства (неравенства) (Spring School on perceptions of wealth (inequality)). Обещают предоставить жилье на время школы! Пройдет 17-28 марта 2025 в Бамберге, Гкрмания Дедлайн подачи заявки: 31 августа Подробности: https://dariatisch.github.io/SPINE/ #school

Hashtags

Второй семинар по открытой науке (Open Science Workshop) в Ростоке, Германия. Пройдет 17-18 марта 2025 года. Дедлайн подачи заявки для очного участия: 15 сентября Есть возможность участия онлайн! Такие заявки можно будет подать позже. Подробности: https://www.demogr.mpg.de/en/news_events_6123/calendar_1921/second_rostock_open_science_workshop_13282 #school

Hashtags

Осенняя школа "Социальная политика: значение, меры и влияние на поведение людей" (Social Policies: meanings, measures and effects on individuals’ behaviour). Пройдет 23-25 октября в Тренто, Италия. Дедлайн: 26 августа Подробности: https://event.unitn.it/tn-square/ #school

Hashtags

Курс для аспирантов "Организационные основания неравенства" (Organizational Foundations of Inequality). Пройдет 10-13 июня в Осло, Норвегия. Дедлайн подачи заявки: 21 апреля Подробности: https://www.uio.no/studier/emner/sv/iss/SOS9237/index.html и https://www.imiscoe.org/news-and-blog/sc-blogs/raced/1990-phd-course-organizational-foundations-of-inequality #school

Hashtags

Летняя школа от Европейского общества исторической демографии - "Исследование неравенства в отношении здоровья с использованием продольных демографических данных" (Research on health inequalities using longitudinal demographic data). Пройдет 24 июня - 4 июля в Лунде, Швеция. Дедлайн подачи: 1 апреля Подробности в прикрепленном файле #school

Hashtags

123•••56
ПредишнаСтр. 1 от 6Следваща