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

Търсене: #bluey

当前筛选 #bluey清除筛选

🎨 𝗧𝗘𝗠𝗔𝗦 𝗧𝗘𝗟𝗘𝗚𝗥𝗔𝗠 ➤ 𝗧𝗚𝗫 📢 𝗖𝗵𝗮𝗻𝗻𝗲𝗹: @DNZ_Temas ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ 🔗𝗔𝗣𝗣𝗟𝗬 𝗧𝗛𝗘𝗠𝗘>> ✅ ⤵️𝗕𝗔𝗖𝗞𝗚𝗥𝗢𝗨𝗡𝗗>> ⬇️𝗪𝗔𝗟𝗟𝗣𝗔𝗣𝗘𝗥>> ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ 🏷️Tags: #Blue#Bluey #Cute#MDGram ╚═══ ღ 𝔻ℕℤ 𝕋𝔼𝕄𝔸𝕊 ღ ═══╝

beng!

@mdmbeng · Post #2601 · 24.07.2025 г., 01:46

#Bluey#Arcade Bluey×Fruit Ninja联动活动推出Apple Arcade提供免费体验活动 近日,Halfbrick Studios推出Fruit Ninja Classic+与蓝色卡通“小狗Bluey”进行跨界联动。该活动包含四大主题:Featherwand、Sticky Gecko、Asparagus和Fruit Salad,将在6月至8月期间分阶段上线,活动将持续到2025年9月19日,玩家可与Bluey和其朋友Bingo一起完成专属挑战并领取独家奖励。 为配合本次活动推广,Halfbrick Studios将在包括澳大利亚、巴西、加拿大、德国、日本、墨西哥、菲律宾、美国与英国在内的部分国家,赠送最多2个月Apple Arcade免费体验码。用户只需前往 Halfbrick的专属页面 ,填写姓名与邮箱,即可在10至15分钟内获取兑换码。如果曾订阅过Apple Arcade,仅限领取1个月试用。 Apple Arcade服务在美国定价为每月$6.99,也可通过Apple One订阅套餐获得。玩家可在App Store或新上线的Games应用中找到Fruit Ninja Classic+等相关游戏。 频道:@mdmbeng 投稿:@mdmbeng_Bot

OnePlus OS Update Tracker

@OnePlusOTA · Post #4 · 22.02.2021 г., 05:49

Welcome to OnePlus OS Update Tracker! This channel tracks system updates for OnePlus related devices. The bot has not yet been completed and is currently posted manually 该频道负责追踪 OnePlus 相关设备的系统更新,机器人尚未完工,目前暂为手动发布 Donation / 捐赠 https://www.neko.ink/ (Buy me a coffee) Language / 语言 EN / English / 英语 ZH / Simplified Chinese / 简体中文 Catalogue / 目录 You can use these tags to quickly find what you want 你可以使用这些标签快速找到你需要的 Announcement / 公告: #NeverSettle By System / 系统: HydrogenOS / 氢 OS: #Hydrogen OxygenOS / 氧 OS: #Oxygen ColorOS: #Color Wear OS by Google: #WearOS RTOS: #RTOS By Region / 区域: China / 中国 CHN: #China#CMCC India / 印度 IND: #India Europe / 欧洲 EEA: #Europe#EUEX#EE Global / 全球 GLO: #Global America / 北美 USA: #NorthAmerica#TMobile#Sprint By Stage / 阶段: Stable / 稳定:#Stable Beta / 公测: #Beta#OpenBeta Alpha / 内测: #Alpha Trial / 尝鲜: #Trial Preview / 预览: #Preview By Type / 类型: Full / 全量包: #Full Increment / 增量包: #Increment Component / 组件包: #Component Downgrade / 降级包: #Downgrade Emergency / 线刷包: #Emergency By Device / 设备机型: OnePlus Nord 5: #lexus OnePlus Ace 5 Ultra: #emira OnePlus Ace 5 Race: #subatu OnePlus 13T / 13s: #pagani OnePlus Ace 5 Pro: #hummer OnePlus 13R / OnePlus Ace 5: #giulia OnePlus 13: #dodge OnePlus Ace 3 Pro: #corvette OnePlus Nord 4: #avalon OnePlus Ace 3V: #audi OnePlus 12R / OnePlus 12R Genshin Impact / OnePlus Ace 3 / OnePlus Ace 3 Genshin Impact: #aston#martin OnePlus 12: #waffle OnePlus Open: #hedwig#xueying OnePlus Ace 2 Pro: #xigua#xiyou OnePlus Nord 3 / OnePlus Ace 2V: #vitamin OnePlus 11R / OnePlus Ace 2 / OnePlus Ace 2Genshin Impact: #udon OnePlus 11: #salami OnePlus 10T / OnePlus Ace Pro / OnePlus Ace Pro Genshin Impact: #ovaltine OnePlus Ace Race: #qqcandy OnePlus 10R / OnePlus 10R Endurance / OnePlus Ace: #pickle OnePlus 10 Pro: #negroni OnePlus 9RT: #martini OnePlus 9 Pro: #lemonadep OnePlus 9: #lemonade OnePlus 9R: #lemonades OnePlus 8T+ (T-Mobile): #kebabt OnePlus 8T: #kebab OnePlus 8 Pro: #instantnoodlep OnePlus 8: #instantnoodle OnePlus 7T Pro 5G: #hotdogg OnePlus 7T Pro: #hotdog OnePlus 7T: #hotdogb OnePlus 7 Pro 5G (EE):#guacamoleg OnePlus 7 Pro 5G (Sprint): #guacamoles OnePlus 7 Pro (T-Mobile): #guacamolet OnePlus 7 Pro: #guacamole OnePlus 7: #guacamoleb OnePlus 6T: #fajita OnePlus 6: #enchilada OnePlus 5T: #dumpling OnePlus 5: #cheeseburger OnePlus 3T: #oneplus3t OnePlus 3: #oneplus3 OnePlus X: #onyx OnePlus 2: #oneplus2 OnePlus One: #bacon OnePlus Nord CE 5: #honda OnePlus Nord CE 4 Lite: #camry OnePlus Nord CE 4: #benz OnePlus Nord CE 3 Lite / Nord N30: #larry OnePlus Nord CE 3: #ziti OnePlus Nord CE 2 Lite: #oscar OnePlus Nord CE 2: #ivan OnePlus Nord CE: #ebba OnePlus Nord 2T: #karen OnePlus Nord 2: #denniz OnePlus Nord: #avicii OnePlus Nord N300: #hlida OnePlus Nord N200: #dre9#dre8t OnePlus Nord N100: #bengal OnePlus Nord N30 SE: #fanli-o OnePlus Nord N20 SE: #zhaoyun-o OnePlus Nord N20: #gunnar OnePlus Nord N10: #billie8#billie8t OnePlus Pad 3 / OnePlus Pad 2 Pro: #erhai-o OnePlus Pad 2 / OnePlus Pad Pro: #rainbow#caihong OnePlus Pad (CN):#dunhuang-o OnePlus Pad Go Wi-Fi / OnePlus Pad Go LTE: #bluey OnePlus Pad: #aries OnePlus Watch 3: #chili OnePlus Watch 2R / OnePlus Watch 2 (CN): #bagel OnePlus Watch 2: #almond OnePlus Watch: #W301CN#W501CN#W301GB OnePlus Band: #W101IN Links / 友情链接 @MlgmXyysd_bibilailai @OnePlusChat @OnePlusRes @OPUpdatesTracker Do you have a question? Want to exchange links? Add your device model? Notify an update? 有任何的疑问? 想要交换友情链接? 添加欲更新的设备型号? 提醒更新? Contact me here -> @MlgmXyysd #NeverSettle