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

Резултати

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

Търсене: #pkc

当前筛选 #pkc清除筛选

#QuantumultX#Loon#PKC#API ✅#B站视频解析📱 1️⃣ 导入重写: QuanX: 点击导入 Loon: 长按复制 2️⃣ 微信pkc插件-关键词自动回复 1.匹配模式选开头 2.1 关键字(必填)填 b站搜索= 2.2 关键字(必填)填 b站视频= 3.1 自动回复文本(必填)中填 /pkc text 1 [反选] 3.2 自动回复视频(必填)中填 /pkc video 1 [反选] 3️⃣ 参数设置 文本API1: https://api.sheep.com/sheep/bilibili/videotag/[参数1]/ 视频API1: https://api.sheep.com/sheep/bilibili/video/[参数1]/ 查看测试效果 👤 脚本作者: @Sheepfj 注意:该接口会返回搜索到的第一个视频,所以可以先关键词搜索获取对的标题,然后再触发视频接口

#脚本#QuantumultX#AI #PKC#BoxJS 📱#PKC微信助手(综合) 📌 功能脚本: 支持上下文,对应联系人设定 👤 脚本作者: @Sheepfj ❗️ 使用说明: 1️⃣ 请先设置Boxjs 1️⃣ 导入boxjs脚本重写: 点击安装 2️⃣ 浏览器访问链接: 点击跳转 3️⃣ 下方第三个订阅按钮进入在右上角添加订阅地址 长按复制地址 4️⃣ 然后下方第二个按钮选择对应的模块进入根据提示填入参数 5️⃣ 使用Boxjs设置全局设定与单独对某人设定,同时手动删除对话与查看对话 2️⃣ 导入重写: 点击导入 3️⃣pkc插件-关键词自动回复 打开关键词自动回复,进入关键词回复设置右上点添加 1️⃣ 匹配模式选开头 2️⃣ 关键字(必填)填 # 3️⃣ 自动回复文本(必填)中填写 /pkc text 1 [备注]/[原文] 4️⃣pkc插件-自定义接口Api 打开自定义文本api,然后进入配置,在API1中填写 https://movies.disney.com/sheep/video/gpt/[参数1]/ 💬 温馨提示: 使用APIX就使用 /pkc text X [原文] 💬交流反馈

#脚本#QuantumultX#AI#Loon #PKC#BoxJS#微信 😉#PKC微信助手(综合) 支持圈x与Loon 🛡更新:支持上下文,支持为对应联系人设定 👤 脚本作者: @Sheepfj 1️⃣导入重写:圈x: 点击导入 Loon: 复制脚本 2️⃣设置微信pkc插件--关键词自动回复 pkc插件中打开关键词自动回复,进入关键词回复设置右上点添加, 1.匹配模式选开头 2.关键字(必填)填 # 3.自动回复文本(必填)中填写 /pkc text 1 [备注][原文] 3️⃣设置微信pkc插件--自定义接口Api 打开自定义文本api,然后进入配置,在API1中填写 https://api.sheep.com/sheep/wechatgpt/?[参数1] 支持的指令设置 💳注意:使用APIX就使用/pkc text X [备注][原文] ,之前配置过的先移除

#PKC#聚合API #SheepAPI#PKC接口配置 免费组合接口,适用于微信PKC插件 1.帮作者GitHub点点关注,求求了(接口维护真的挺耗时间的) 2.在系统绑定你的deepseek_apikey,复制返回的接口链接 3.按照图片,在PKC设置图一图二,两条关键词自动回复 4.自定义接口Api-->文本Api-->接口1中填写复制的接口(图片api一样操作) 配置教程

#Task#脚本#QuantumultX#PKC#API 📈#星座运势 ➖➖➖➖➖➖➖➖➖➖➖ 🌙#星座游戏大全 导入重写: 长按复制 下载地址: 点击下载 脚本说明: 解锁付费内容 ➖➖➖➖➖➖➖➖➖➖➖ 💡#疯狂百科问答 导入重写: 长按复制 下载地址: 点击下载 脚本说明: 解锁会员功能 ➖➖➖➖➖➖➖➖➖➖➖ 🗂 添加Task任务,圈X通知 添加任务: 长按复制 使用说明: 打开圈X下面一排风车旁边🗂Task → 右上角第一个📊按钮→点击打开后右上角+号 → 复制粘贴到里,然后选择添加『星座运势』 ➖➖➖➖➖➖➖➖➖➖➖ 🌐 Boxjs导入/修改: 1️⃣ 导入boxjs脚本重写: 点击安装 2️⃣ 浏览器访问链接: 点击跳转 3️⃣ 下方第三个订阅按钮进入在右上角添加订阅地址: 长按复制地址 4️⃣ 然后下方第二个按钮选择对应的模块进入根据提示填入参数 ➖➖➖➖➖➖➖➖➖➖➖ ⭐ 用于PKC的API接口 1️⃣ 导入文本重写: 点击安装 2️⃣ 设置微信pkc插件-关键词自动回复 1.匹配模式选开头 2.关键字(必填)填 星座= 3. 自动回复文本(必填)中填 /pkc text 1 [反选] 3️⃣ 设置微信pkc插件-自定义接口Api 在文本API中填写 https://movies.disney.com/sheep/constellation/[参数1]/ ➖➖➖➖➖➖➖➖➖➖➖ ✈️导航💬群组🤖投稿🎁福利