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

Търсене: #openstreetmap

当前筛选 #openstreetmap清除筛选
Media maps 🌏

@mediamaps · Post #274 · 14.11.2025 г., 14:03

Тема четырнадцатого ноября — OpenStreetMap. Сегодня необходимо использовать OSM в качестве основного источника данных. С OpenStreetMap мы сталкиваемся почти каждый день при создании картографических основ. Но этот сервис хранит в себе гораздо больше информации, если использовать специальные ключи. Делимся картой количества салонов красоты в Москве. Все салоны красоты выгрузили с помощью модуля QuickMapServices в QGIS по ключу shop=beauty, а затем пересчитали количество по округам. ЦАО оказался бесспорным лидером! #30DayMapChallenge#Day14#OpenStreetMap#Cartography#GIS

Libreware

@libreware · Post #949 · 13.06.2021 г., 03:55

Organic Maps - New promising alternative to Google Maps is now in beta for Android and iOS https://teddit.net/r/privacytoolsIO/comments/nxfxx1/organic_maps_new_promising_alternative_to_google/ Organic Maps (Offline maps with turn-by-turn navigation) -https://f-droid.org/packages/app.organicmaps Organic Maps | Fast detailed offline maps for travelers, tourists, hikers and cyclists – https://organicmaps.app #OpenstreetMap#Maps #travel#navigation #FuckGoogleMaps

✈️ MapPoster Online | 把一座城市做成可打印海报 🏷 检索标签:#MapPosterOnline#地图海报#OpenStreetMap#WASM#Rust#城市地图 ⭐️ 详情介绍:MapPoster Online 是个在线城市地图海报工具,选城市后就在浏览器里出图。它能导出 A4、方图、手机壁纸、16:9格式,印刷图的话支持到 300 DPI;旅行地、家乡、常去城市都能拿来做纪念图 20 个主题里有北欧、霓虹、航海、故障紫,背景、道路、水体和字色都能自己调。Rust/WASM 渲染加本地缓存,重做时少等一截 🔎MapPoster在线体验 📖GitHub 📜相关阅读: 🔘City Map Poster Generator | 17 种风格的城市地图生成器,把喜欢的城市变成一张可以挂墙的地图作品 😌频道 |🙂群聊 |😋中文包 |☺️搜索

✈️City Map Poster Generator | 17 种风格的城市地图生成器,把喜欢的城市变成一张可以挂墙的地图作品 🏷 检索标签:#CityMapPosterGenerator#地图海报#城市地图#图片#海报#地图#OpenStreetMap#海报生成 ⭐️ 详情介绍:City Map Poster Generator 是个开源的城市地图海报生成器,用 OpenStreetMap 数据 给全球任意城市做极简地图海报,它最省事的是流程足够直给:一条命令生成高质量海报,同时还能按你的需求改 城市/主题/地图范围,做出来就是可打印的墙面装饰画效果 亮点在于它内置了 17 种主题风格,从 经典黑白与建筑蓝图 到 赛博朋克霓虹、日式水墨,甚至还有偏场景化的 海洋蓝、地中海陶土色 这种配色,审美不容易撞车 📖GitHub · maptoposter 😌频道 |🙂群聊 |😋中文包 |☺️搜索