ClaudeCode系列(二):入门一篇通
一、前言作为 Vibe Coding 领域的重炮手 Claude 大模型母公司 Anthropic,自推出 Claude Code 后便风靡全球。但由于其掺杂一些政治目的导致中国区用户无法直接使用,加上 Claude Code 官方采用命令行程序形式相对复杂,一定程度上限制了很多国内开发者了解它。尽管如此,这也并不影响它成为 Vibe Coding 赛道的一个优等生存在。因此,本文通过去繁从简的思路,希望能帮助各位开发者快速上手 Claude Code,并有机会在日常开发中深度使用其辅助编程,在 AI 时代浪潮下,共同寻找未来新的程序设计模式。 二、准备工作以下教程以 MacOS 为参考,Windows 及 Linux 请自行查阅官方文档。 2.1 安装 Node.js官网参考:https://nodejs.org/en/download版本要求:Node.js 18+ 1234567891011121314# Download and install nvm:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.4...
ClaudeCode系列(一):付费方案对比
一、个人方案方案一:使用 Anthropic API Key 方式调用这种方式实质上是通过 API 直接调用 Claude 大模型,由自己选择自定义(或开源)用户界面,类似于 OpenAI API。由于该方式实质并未用到 Claude Code 强大的命令行工具能力,因此更适合前期试用 Anthropic 产品。 入口 → https://console.anthropic.com/ 方案二:Claude Code 官方订阅方案其中 Claude Pro 是大多数专业开发者的首选方案。相比免费版,Pro 用户享有优先访问权、更长的对话长度和更稳定的服务质量。Pro 版的核心价值在于其 45 条消息的 5 小时使用限制,这个设定看似严格,实际上为 90% 的用户提供了充足的使用额度。根据 Anthropic 官方数据,Pro 用户的平均使用量为每天 28-35 条消息,月度使用率达到 82%。 而这里有个关键:仅 Max 以上订阅支持使用更为强大的 Opus 模型。Opus 远强于 Sonnet 这几乎是板上钉钉的事实:Opus 的效果比 Sonnet 好很多。毕竟 token...
如果根DNS服务器被炸了,万维网是不是将马上瘫痪?
前言 最近刚追完杨导的电视剧版《三体》,对人类所为对世界的影响有了一个叹为观止的新认知,虽然是一部科幻剧,对人性的揭示却是非常刻骨。很久之前曾经在知乎刷到过一个问答,标题大概是《假如有人把支付宝所有存储服务器炸了,大众在支付宝里的钱是不是就都没有了呢?》,惭愧的说,从那篇文章笔者首先是全面地了解了「如何使用各种手段对服务集群进行物理破坏」,再者才是明白了「金融系统设计者是如何用心良苦地设计一套安全体系来保护数据」。 而偶然间在查阅一段资料时访问 root-servers ,便想到了标题的这个问题。带着这个疑问,决定追溯下去… 一、认识DNS要回答这个问题之前,本着刨根问底的精神,首先需要了解DNS的工作原理,了解根域名的管理机制。 1.1 什么是 DNS熟知 TCP/IP协议 可得,网络层通过定义 IP(Internet Protocol),来进行 将数据从一个设备传输到另一个设备。基于这个设想,设计出了 IP地址 概念对设备进行编号,对于 IPv4 协议, IP 地址共 32 位,分成了四段(比如,192.168.100.1),每段是 8 位。关于 IP地址的分类...
深入探究ECDHE算法
一、加密与数论基础在正式谈及 ECDHE 之前,需要先谈谈与之关系紧密的 RSA 算法。ECDHE 是建立在优化 RSA 部分特性的前提下诞生的。 1.1 非对称加密RSA算法 常应用于非对称加密,非对称加密生成一对密钥,常见的使用场景为: 公钥加密,私钥解密。这个目的是为了保证数据传输安全性,因为被公钥加密的内容,其他人是无法解密的,只有持有私钥的人,才能解密出实际的内容; 私钥加密,公钥解密。这个目的是为了保证数据真实性,因为私钥是不可泄露的,如果公钥能正常解密出私钥加密的内容,就能证明这个消息是来源于持有私钥身份的人发送的。 想要理解 RSA算法,首先需要从几个初等数论概念着手。 1.2 素数素数又称质数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。 比如:2、3、5、7、11、13、17、19 … 而素数已被证明有无穷多个,共有6种证法(分别为 欧几里得法,埃尔米特法,戈德巴赫法,弗斯滕伯格法,菲利普法),其中 欧几里得法 最为经典,论证过程可参考《几何原本》第9卷。 1.3 模运算模运算:即 求余运算,指一个数除以另一个数,不够除的...
初探Flutter(三) 路由管理
一、基本概念所谓路由管理,就是管理页面之间如何跳转,通常也可被称为导航管理。Flutter 中的路由管理和原生开发类似,无论是 Android 还是 iOS,导航管理都会维护一个路由栈,路由入栈(push)操作对应打开一个新页面,路由出栈(pop)操作对应页面关闭操作,而路由管理主要是指如何来管理路由栈。 二、MaterialPageRoute2.1 基本定义MaterialPageRoute 是 Material组件库提供的组件,它可以针对不同平台,实现与平台页面切换动画风格一致的路由切换动画: 对于 Android,当打开新页面时,新的页面会从屏幕底部滑动到屏幕顶部;当关闭页面时,当前页面会从屏幕顶部滑动到屏幕底部后消失,同时上一个页面会显示到屏幕上。 对于 iOS,当打开页面时,新的页面会从屏幕右侧边缘一直滑动到屏幕左边,直到新页面全部显示到屏幕上,而上一个页面则会从当前屏幕滑动到屏幕左侧而消失;当关闭页面时,正好相反,当前页面会从屏幕右侧滑出,同时上一个页面会从屏幕左侧滑入。 123456MaterialPageRoute({ WidgetBuilder...
初探Flutter(二) 状态管理
一、三种常见的状态管理 Widget 管理自己的状态。 Widget 管理子 Widget 状态。 混合管理(父 Widget 和子 Widget 都管理状态)。 1.1 Widget 管理自己的状态1.1.1 适用场景如果状态是有关界面外观效果的,例如颜色、动画,那么状态最好由 Widget 本身来管理。 1.1.2 例子1234567891011121314151617181920212223242526272829303132333435class TapboxA extends StatefulWidget { TapboxA({Key? key}) : super(key: key); @override _TapboxAState createState() => _TapboxAState();}class _TapboxAState extends State<TapboxA> { bool _active = false; void _handleTap() { se...
初探Flutter(一) Widget
一、Widget1.1 canUpdate方法canUpdate(...)是一个静态方法,它主要用于在 widget 树重新build时复用旧的 widget。 根本作用:是否用新的 widget 对象去更新旧UI树上所对应的Element对象的配置。 判断规则:只要newWidget与oldWidget的runtimeType和key同时相等时就会用new widget去更新Element对象的配置,否则就会创建新的Element。 1.2 Flutter中的四棵树1.2.1 基本联系与职责 根据 Widget 树生成一个 Element 树,Element 树中的节点都继承自 Element 类。 根据 Element 树生成 Render 树(渲染树),渲染树中的节点都继承自 RenderObject 类。 根据渲染树生成 Layer 树,然后上屏显示,Layer 树中的节点都继承自 Layer 类。 布局和渲染逻辑在 Render 树中。 Element 是 Widget 和 RenderObject 的粘合剂。 1.2.2 例子123456789Contain...
基于 LocalWebServer 实现 WKWebView 离线资源加载
一、背景笔者在《WKWebView》一文中提到过,WKWebView 在独立于 app 进程之外的进程中执行网络请求,请求数据不经过主进程,因此,在 WKWebView 上直接使用 NSURLProtocol 无法拦截请求。所以如果需要使用到拦截请求,有种可行地方案是使用苹果开源的 Webkit2 源码暴露的私有API(详见原文第3小节:NSURLProtocol问题)。但使用私有API,必然带来以下几个问题: 审核风险 拦截http/https时,post请求body丢失 如使用ajax hook方式,可能存在 post header字符长度限制 、Put类型请求异常 等 由此看来,在 iOS11 WKURLSchemeHandler [探究] 到来之前,私有API并不那么完美。所幸通过寻找发现,iOS系统上具备搭建服务器能力,理论上对实现 WKWebView 离线资源加载 存在可能性。 二、分析基于iOS的local web server,目前大致有以下几种较为完善的框架: CocoaHttpServer (支持iOS、macOS及多种网络场景) GCDWeb...
关于 WKWebView 适配
一、分析在iPhone 6s、iOS 10.3.2中,对 http://www.qq.com 进行10次请求,得到如下数据: 次数 UIWebView 内存消耗 WKWebView 内存(APP)消耗 UIWebView 请求耗时 WKWebView 请求耗时 1 67.47 MB 0.81 MB 4.13 s 0.80 s 2 58.23 MB 0.86 MB 1.16 s 0.54 s 3 57.83 MB 0.50 MB 1.14 s 0.56 s 4 59.38 MB 0.88 MB 1.08 s 1.07 s 5 59.70 MB 0.75 MB 1.07 s 0.71 s 6 64.05 MB 0.83 MB 1.47 s 0.65 s 7 59.45 MB 0.81 MB 1.11 s 0.63 s 8 57.55 MB 0.45 MB 1.15 s 0.64 s 9 58.47 MB 0.77 MB 1.17s 0.75 s 10 58.89 MB 0.84 MB 1.11 s 0.70 s UIWebView平...