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

Резултати

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

Търсене: #selfhosted

当前筛选 #selfhosted清除筛选
Newlearnerの自留地

@NewLearnerChannel · Post #14288 · 15.05.2025 г., 07:03

#OpenSource#SelfHosted#GitHub情报#APP 🔏 Colanode: 开源、本地优先的协作空间 🔗:GitHub ⭐️ Features: - 数据本地优先,安全可控 - 开源免费,可自托管部署 - 支持在线同步 - 流畅的实时多人协作编辑 Notion 横空出世后其开源代替层出不穷,很多人离开 Notion 的原因就是担心数据被平台掌控或者因为各种原因云服务不稳定或中断。Colanode 是一个开源、本地优先的协作工作空间,旨在成为 Slack 和 Notion 等中心化工具的有力替代品,强调用户的数据隐私和控制权。 类似 Obsidian,Colanode 的核心理念是 Local-first,所有操作和数据变更首先保存在本地设备上,然后再同步到服务器。这种架构使得数据安全可控,在没有网络连接的情况下也能继续工作,联网后会自动同步。Colanode 当前提供了位于欧洲和美国的同步服务器。 作为协作平台,Colanode 集成了团队协作所需的核心工具,可以进行实时文字聊天、创建和编辑 Notion-like 富文本页面、构建和管理带有多种视图(表格、看板、日历)的可定制数据库等。Colanode 利用了 CRDTs 技术,确保多人在同一文档或数据库条目上进行并发编辑时,数据依然能够正确、流畅地同步,避免冲突。 👀 对于重视数据隐私、希望完全掌控自己数据的团队和个人来说,Colanode 提供了一个开源解决方案。虽然现在 Local-first 是潮流,但对于个人也没必要过于焦虑。毕竟,对于绝大多数个人用户而言,主流云服务提供的便捷性和稳定性,足以满足日常需求,其安全性也通常高于普通用户自行维护的环境。过度追求绝对的数据主权,有时反而会带来额外的管理负担。选择适合自己的工具,平衡好便利与掌控,或许比盲目追逐某种“潮流”更重要。 频道:@NewlearnerChannel

AppPie

@AppPie · Post #2344 · 03.03.2025 г., 04:03

#Apps Stirling-PDF: 强大的本地 PDF 处理工具 🔗GitHub Stirling-PDF 是一款基于 Docker 的本地部署网页 PDF 处理工具,提供超过 50 种 PDF 操作功能,既保护文件隐私又功能全面。所有文件仅在客户端存在或在任务执行过程中短暂驻留服务器内存,下载后自动从服务器删除。 主要特点 • 50+ 种 PDF 操作功能 • 并行文件处理与下载 • 深色模式支持 • 自定义下载选项 • 自定义「流水线」功能,自动化执行多步操作 • 外部脚本集成 API • 可选登录与认证支持 • 数据库备份与导入 • 企业级功能如 SSO • 支持 39 种语言 PDF功能集合 页面操作: • 查看和编辑 PDF(注释、绘图、添加文本和图片) • 合并、拆分、旋转、移动页面的完整互动界面 • 多页布局、调整对比度、裁剪 PDF • 自动拆分 PDF(使用物理扫描页面分隔符) • 页面内容缩放、提取页面等 转换操作: • PDF 与图片互转 • 常见文件转 PDF(使用 LibreOffice) • PDF 转 Word/PowerPoint • HTML/URL/Markdown 转 PDF 安全与权限: • 添加/移除密码 • 更改 PDF 权限 • 添加水印 • 认证/签名 PDF • 净化 PDF、自动编校文本 其他操作: • 添加/生成签名 • 按大小分割 PDF • 修复 PDF • 检测并移除空白页 • 对比两个 PDF 的文本差异 • OCR (使用 Tesseract OCR) • PDF/A 转换 • 编辑元数据等 #GitHub#OpenSource#SelfHosted#PDF#Docker 📮 频道 @AppPie

AppPie

@AppPie · Post #2313 · 20.01.2025 г., 04:04

#Apps Hoarder:为「收藏控」打造的 AI 辅助自托管工具 🔗GitHub Hoarder 是一个集成 AI 功能的全能收藏工具,专为数据收藏爱好者设计,支持自托管部署。 核心功能 • 多类型收藏:链接、笔记、图片和 PDF • 智能抓取:自动获取链接标题、描述和图片 • 分类管理:支持列表式整理收藏内容 • 全文搜索:快速检索所有存储内容 • AI 标签:基于 ChatGPT 的自动标记,支持 ollama 本地模型 • OCR 支持:提取图片中的文本内容 • 多端支持:Chrome/Firefox 插件、iOS/Android 应用 • RSS 订阅:自动收藏 RSS 内容 • API 接口:提供 REST API • 多语言:支持多语言界面 • 内容高亮:标记和存储重要内容 • 页面存档:使用 monolith 防止链接失效,支持 youtube-dl 视频存档 • 批量操作:支持批量管理内容 • SSO 认证:支持单点登录 • 自定义主题:支持暗黑模式 注意:项目仍在积极开发中,尚未达到稳定版本。 #GitHub#OpenSource#Bookmark#AI#SelfHosted 📮 频道 @AppPie​​​​​​​​​​​​​​​​

AppPie

@AppPie · Post #2286 · 26.12.2024 г., 04:03

#Apps Hoarder: 具有 AI 标签功能的自托管书签收藏工具 🔗GitHub Hoarder 是一个自托管的全能书签收藏应用,支持链接、笔记和图片收藏,具备 AI 自动标签和全文搜索功能。 主要功能 • 内容收藏 - 书签链接、笔记、图片和 PDF - 自动获取链接标题、描述和图片 - 支持列表分类整理 • AI 增强 - 基于 ChatGPT 的自动标签 - 支持使用 ollama 的本地模型 - OCR 图片文字提取 • 搜索与归档 - 全文搜索 - 完整页面存档(使用 monolith) - 使用 youtube-dl 自动存档视频 • 多平台支持 - Chrome 插件和 Firefox 扩展 - iOS 和 Android 应用 - RSS 订阅自动收藏 - REST API 接口 • 其他特性 - 支持批量操作 - SSO 单点登录 - 深色模式 - 优先考虑自托管 注意:该应用仍在积极开发中,尚未达到稳定版本。 开源许可证 AGPL-3.0 license。 #GitHub#OpenSource#Bookmarks#SelfHosted#AI 📮 频道 @AppPie​​​​​​​​​​​​​​​​

AppPie

@AppPie · Post #2315 · 21.01.2025 г., 04:05

#Apps Telegram Files:自托管的 Telegram 文件下载工具 🔗GitHub Telegram Files 是一款专注于持续、稳定、无人值守下载的 Telegram 文件下载工具,支持自托管部署。 主要功能 • 支持从 Telegram 频道和群组下载文件 • 支持多账号同时下载 • 支持暂停和恢复下载 • 多账号重复文件智能去重 • 响应式设计,支持移动端访问 开源许可证 MIT license。 #GitHub#OpenSource#Telegram#SelfHosted#FileDownload 📮 频道 @AppPie​​​​​​​​​​​​​​​​

12
ПредишнаСтр. 1 от 2Следваща