笔记
0工具
0此页用于记录用户反馈问题后的每一次改进
关于
“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
不想公开、只想临时给人看:点“分享”生成一条带密码和有效期的链接,到期自动失效,你也能随时撤销。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
趋势
为什么选择Serverpod?一门语言搞定整个技术栈
我特别喜欢写整洁架构(Clean Architecture)。不是因为画出来的架构图好看,而是因为它能扛得住变化——新需求来了、新同事加入了、甚至现在AI辅助开发越来越普遍,你需要的是清晰的边界,让AI能理解哪些能碰哪些不能碰,再加上测试来兜底。
但在大多数Flutter项目里,最头疼的问题就是应用和后端之间的那个“接缝”。你在客户端写Dart,到了后端就得换一门语言,手写REST层,手写DTO,然后这些DTO慢慢就和前端对不上了,序列化出bug直到上了生产才发现。Serverpod把这个接缝给去掉了。你在服务端也写Dart,客户端-服务端之间的通信代码自动生成——类型安全,端到端。
Serverpod到底是什么?
Serverpod是一个开源的后端框架,让你能用Dart构建整个技术栈。不需要在语言之间来回切换——你的模型、API、数据库逻辑,全都在一门语言里。
开箱即用的功能包括:
- Endpoints(端点):服务端的方法,Flutter客户端可以直接调用。通信代码自动生成,不需要手写REST/JSON胶水代码。
- ORM:类型安全、经过静态分析的数据库访问,带迁移和关系支持。不需要写原生SQL。
- 代码生成:模型定义一次,服务端和客户端两边的序列化和绑定代码自动生成。
- 实时数据:基于WebSocket的流式传输,框架帮你管理。
- 认证:集成了Google、Apple和Firebase。
- 企业级功能:文件上传、任务调度、缓存、日志、错误监控。
至于“这东西能上生产吗?”——Serverpod自称已经在真实应用里经过实战检验,有超过5000个自动化测试保驾护航,从小项目到百万用户级的应用,不需要改代码。这正是企业级基础框架该有的特性。
架构一览
Serverpod项目生成后会包含三个包:
myapp_server → 你的后端:端点、模型、业务逻辑、数据库
myapp_client → 自动生成的Dart客户端(永远不要手动编辑)
myapp_flutter → 你的Flutter应用,依赖myapp_client
这里有一个关键原则:领域层完全不知道Serverpod的存在。生成的客户端放在数据层,通过领域定义的仓库接口来隐藏实现。这样应用才能保持可测试性,AI也好,未来的你也好,都不会越界。
这个系列要做什么
我们会构建一个小的任务/工单管理器——说白了就是“企业版待办事项”,每个企业应用骨子里都是这个:创建任务、列出任务、更新状态、删除任务。功能简单但能覆盖每一层:模型、端点、ORM、仓库、用例、UI状态。
最终你会得到:
- 一个Serverpod后端,带着真实的PostgreSQL表和CRUD端点
- 一个整洁架构分层的Flutter应用
- 通过TDD驱动的领域用例,以及DDD思维塑造的模型
- 一个自动生成、类型安全的客户端,把所有东西串起来
需要安装什么
在开始第二部分之前,准备好这些:
- Flutter SDK(会自带Dart)
- Docker——Serverpod会在容器里帮你跑一个本地PostgreSQL
- 代码编辑器——VS Code或Android Studio,装上Flutter/Dart插件
就这些。Serverpod一个很舒服的地方是:你不需要手动配置数据库——生成的项目自带一个docker-compose.yaml,本地PostgreSQL一键启动。
下一篇预告
在第二部分,我们会安装Serverpod CLI,生成项目,用Docker启动PostgreSQL,运行服务端,然后让Flutter应用和它通信——完整的“Hello World”闭环。
如果你觉得有用,可以收藏或分享。下一篇见。