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

Търсене: #developertools

当前筛选 #developertools清除筛选
AppPie

@AppPie · Post #2289 · 30.12.2024 г., 04:01

#Developers Ghostty: 原生 GPU 加速的跨平台终端模拟器 🔗GitHub Ghostty 是一个快速、功能丰富且跨平台的终端模拟器,使用平台原生 UI 和 GPU 加速。它在保持速度、功能和原生 UI 三者平衡的同时,还在推动终端模拟器的边界,为 CLI 工具开发者提供更多可能性。 主要特点 • 跨平台:支持 macOS 和 Linux,计划支持 Windows • 原生 UI:使用各平台的原生 UI 组件 • GPU 加速:macOS 使用 Metal,Linux 使用 OpenGL • 多窗口支持:支持窗口、标签和分屏 • 主题系统:内置数百个主题,支持自动切换暗/亮模式 • 连字支持:正确渲染连字体,可自定义字体特性 • 字形聚类:正确处理多码点表情符号、国旗、肤色等 • Kitty 图形协议:支持终端应用直接渲染图像 macOS 专属功能 • Quick Terminal:菜单栏快速访问 • 原生 UI:使用系统原生组件 • 代理图标:标题栏文件管理 • Quick Look:三指轻点预览 • 安全键盘:密码保护机制 终端兼容性原则 • Xterm 兼容:保持与 xterm 标准一致 • 协议兼容:遵循原始终端行为 • 标准兼容:采用广泛接受的行为标准 开源许可证 MIT license。 关联内容 一个 Ghostty 可视化配置网站 ghostty.zerebos.com #GitHub#Terminal#DeveloperTools#OpenSource 📮 频道 @AppPie

AppPie

@AppPie · Post #1984 · 08.05.2024 г., 04:02

#DeveloperTools Headless UI v2.0 for React 发布 Headless UI v2.0 为 React 开发者带来了许多新特性和改进,旨在简化开发流程并增强用户界面的灵活性和可访问性。 这个版本带来了许多优秀的新功能,包括: • 内置的锚点定位 • 新的 checkbox 组件 • HTML 表单组件 • 改进的悬停、聚焦和活动状态检测 • 组合框列表虚拟化 • 新网站和改进的文档 来源 #TailwindCSS#HeadlessUI#React 📮 频道 @AppPie

AppPie

@AppPie · Post #2284 · 19.12.2024 г., 01:01

#Developers GitHub Copilot VS Code 免费版发布,每月 2000 次代码补全 GitHub 宣布 推出VS Code 版 Copilot 免费计划。你只需要一个 GitHub 账号,无需试用、订阅或信用卡,即可在 VS Code 中直接启用。 免费版功能 • 每月 2000 次代码补全 • 每月 50 次聊天请求 • 可使用 GPT-4o 和 Claude 3.5 Sonnet 模型 如果超出限制,需要更多功能可以升级到无限制的付费 Pro 版,还可以使用 o1 和即将推出的 Gemini 等额外模型。 新功能亮点 1. Copilot Edits 多文件编辑 - 从聊天侧边栏顶部打开 - 根据提示修改多个文件 - 支持创建新文件 2. 多模型选择 - 在聊天、内联聊天或 Edits 中自选模型 3. 自定义指令 - 为每个请求设置个性化偏好 - 指定代码编写方式 4. 项目全局感知 - 使用 @workspace 访问整个代码库 5. 智能变量重命名 - 按 F2 触发重命名 - 基于实现和使用给出建议 6. 语音聊天支持 - 本地模型驱动 - 无需第三方应用 7. 终端智能助手 - 执行终端操作 - 分析修复失败命令 8. 智能提交信息 - 基于变更自动生成 - 支持自定义格式 9. 扩展 API 集成 - 支持定制 AI 体验 - 如 MongoDB 复杂查询支持 10. Vision Copilot 预览 (即将推出) - 安装 Vision Copilot Preview 扩展 - 基于截图或标记生成界面 #GitHub#Copilot#VSCode#AI#DeveloperTools 📮 频道 @AppPie​​​​​​​​​​​​​​​​

折腾实验室频道

@TossLabChannel · Post #464 · 31.12.2024 г., 15:54

#GitHub#Terminal#DeveloperTools#OpenSource Ghostty: 原生 GPU 加速的跨平台终端模拟器 Ghostty 是一款结合平台 原生 UI 与 GPU 加速 的跨平台终端模拟器,为 CLI 工具开发者开创更多可能性。 核心亮点 • 跨平台支持:适配 macOS 和 Linux,计划支持 Windows。 • GPU 加速:使用 Metal (macOS) 和 OpenGL (Linux)。 • 多窗口支持:提供窗口、标签及分屏功能。 • 主题与连字:内置数百主题,自动切换暗/亮模式,支持连字体特性。 • 图像渲染:兼容 Kitty 图形协议,直接显示图像。 macOS 专属功能 • Quick Terminal:菜单栏快捷打开终端。 • 安全键盘模式:提升密码输入的安全性。 Ghostty 遵循 Xterm 和标准终端协议,采用 MIT License,助力开发者探索更多可能。 📢 群聊: @TossLab 🎈 频道: @TossLabChannel ❤️不想错过精彩内容,请打开 #频道通知,你的 #阅读#点赞#转发 便是我发帖的最大动力!

Crypto M - Crypto News

@CryptoM · Post #64676 · 09.04.2026 г., 13:44

🚀 Etherscan Enhances Contract Page with New Features Etherscan has announced a revamp of its contract page, introducing an IDE-style code browser. According to Foresight News, the update includes features such as file tree navigation, multi-file tabs, contract outline jumping, and cross-file keyword search. The redesign also improves the interaction interface for reading and writing contract pages, aiming to enhance the user experience in reading and operating smart contracts. Users can now switch to full-screen mode and open matching contract codes directly in Blockscan and Ethereum Remix for editing. #Etherscan#SmartContracts#Blockchain#Ethereum#CodeBrowser#DeveloperTools#Crypto#IDE#BlockchainDevelopment#TechUpdate#ETH