<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[canfeit的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/canfeit</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; canfeit]]></copyright><item><title><![CDATA[鸿蒙开发实战三：第一个 ArkTS 应用 Hello World]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170274086</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170274086</guid><author>canfeit</author><pubDate>Tue, 10 Nov 2026 07:46:00 +0800</pubDate><description><![CDATA[本节通过创建首个ArkTS应用“Hello World”，掌握鸿蒙声明式UI核心：使用@Entry、@ComponentV2、@Local、build()与Column()构建可交互界面。通过点击按钮改变状态，实现界面自动刷新，直观体验“状态驱动视图”的理念。代码从旧版V1（@State/@Component）迁移至新版V2（@Local/@ComponentV2），并实践计数器功能，强化“改状态即刷新”的开发思维。同时规避常见错误，如根节点缺失、属性方法加分号等，为后续深入学习打下坚实基础。]]></description><category></category></item><item><title><![CDATA[Rust原来很简单七：生产级 Rust]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170147876</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170147876</guid><author>canfeit</author><pubDate>Tue, 10 Nov 2026 07:45:09 +0800</pubDate><description><![CDATA[本篇聚焦生产级 Rust 开发核心：测试体系（单元、集成、文档测试）、质量保障（Clippy、Miri、覆盖率）、错误处理（thiserror/anyhow 二分法）、结构化日志（tracing）及序列化（serde）。强调通过严谨测试、清晰错误链、可观测性与安全编码实践，实现代码可维护、可协作、可上线。推荐 cargo-nextest、cargo-tarpaulin 等工具链，构建健壮工程化流程。]]></description><category></category></item><item><title><![CDATA[Mojo编程实战六：struct 与值类型]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170147420</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170147420</guid><author>canfeit</author><pubDate>Tue, 10 Nov 2026 07:44:18 +0800</pubDate><description><![CDATA[本章系统讲解Mojo的struct——值语义的核心类型。与Python的引用语义不同，struct赋值默认为拷贝或移动，确保数据独立性。重点掌握字段声明、__init__/__deinit__构造与析构、self与mutself的可变性控制。通过@fieldwise_init简化构造器，用@staticmethod替代工厂方法，摒弃@property和@classmethod以保持语法清晰。理解Movable（默认）、Copyable与ImplicitlyCopyable三档语义，避免大对象误标为隐式拷贝导]]></description><category></category></item><item><title><![CDATA[Rust原来很简单六：四个完整项目]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170147861</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170147861</guid><author>canfeit</author><pubDate>Mon, 09 Nov 2026 07:48:10 +0800</pubDate><description><![CDATA[本篇通过四个实战项目，系统讲解 Rust 核心应用开发：实现命令行工具 minigrep，掌握 CLI 参数解析、错误处理与测试；构建 REST API 后端，融合 Axum、Tokio、SQLx 等主流技术栈，实现异步、类型安全的 Web 服务；探索并发爬虫与 WebAssembly 应用，最后聚焦性能优化。项目代码可运行，强调模块化设计、错误传播与生产级实践，全面覆盖现代 Rust 开发核心技能。]]></description><category></category></item><item><title><![CDATA[Mojo编程实战五：错误处理与 Optional]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170146933</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170146933</guid><author>canfeit</author><pubDate>Mon, 09 Nov 2026 07:47:14 +0800</pubDate><description><![CDATA[Mojo将错误设计为“返回值”而非栈展开异常，实现热路径零开销。函数需显式声明raises，否则编译报错，强制错误处理。通过try/except/finally捕获错误，支持自定义struct+Writable错误类型，提升可读性。Optional[T]处理“值可能不存在”的场景，配合map、and_then等链式操作，避免空指针。三类风格各司其职：意外失败用raises，正常缺失用Optional，仅在FFI中使用错误码。整体强调静态安全与性能平衡，代码更清晰、可维护性更强。]]></description><category></category></item><item><title><![CDATA[鸿蒙凭什么是第三大移动OS]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170273886</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170273886</guid><author>canfeit</author><pubDate>Mon, 09 Nov 2026 07:46:46 +0800</pubDate><description><![CDATA[鸿蒙为何成第三大移动操作系统？它非安卓套壳，而是面向全场景的分布式系统，从智慧屏起步，2024年正式推出纯血鸿蒙（HarmonyOS NEXT），告别安卓兼容层。其核心优势在于统一技术栈（ArkTS+ArkUI）、一次开发多端部署、跨设备无缝协同。当前装机量达数亿，主流应用已原生上架，元服务与卡片形态降低使用门槛。开发者生态快速成长，尤其在工具类、垂直领域仍有巨大缺口。对学习者而言，掌握ArkTS、ArkUI与DevEco Studio，即可切入高需求赛道。]]></description><category></category></item><item><title><![CDATA[Rust原来很简单五：类型系统与元编程]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170147834</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170147834</guid><author>canfeit</author><pubDate>Sun, 08 Nov 2026 07:06:08 +0800</pubDate><description><![CDATA[本篇深入探讨 Rust 高级类型系统与元编程，涵盖关联类型、默认泛型参数、完全限定语法、supertrait、newtype 模式及 blanket implementation，揭示零成本抽象的本质。通过 dynosaur 等新工具应对异步 trait 挑战，结合类型别名与 ! 类型，全面掌握高级类型设计与泛型优化，迈向专家级编程。]]></description><category></category></item><item><title><![CDATA[Mojo编程实战四：控制流与函数]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170146913</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170146913</guid><author>canfeit</author><pubDate>Sun, 08 Nov 2026 07:05:09 +0800</pubDate><description><![CDATA[本章系统讲解Mojo控制流与函数，涵盖if/elif/else、while、for/range及break/continue的使用，强调条件必须为Bool，range含头不含尾。引入v1.2新特性match/case，支持字面量、or-pattern、guard、通配符及元组/列表解构，提升多路分支可读性与安全性。函数仅用def定义，参数必标类型，返回值需显式标注，且默认不抛错（需抛时加raises）。掌握默认参数、关键字参数、/与*限定、可变参数、out命名返回与lambda表达式。注重函数文档编写，通过]]></description><category></category></item><item><title><![CDATA[Rust原来很简单四：释放 Rust 的真正威力]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170147808</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170147808</guid><author>canfeit</author><pubDate>Sat, 07 Nov 2026 07:31:15 +0800</pubDate><description><![CDATA[本篇深入讲解 Rust 进阶核心：闭包通过 Fn/FnMut/FnOnce 实现灵活捕获，结合迭代器实现函数式编程。迭代器惰性求值、链式调用，配合 map、filter、fold 等适配器，零成本优化至等效循环。自定义迭代器只需实现 next，即可无缝使用所有适配器。掌握这些，便真正释放 Rust 的性能与表达力。]]></description><category></category></item><item><title><![CDATA[Mojo编程实战三：变量、类型与运算符]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170146887</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170146887</guid><author>canfeit</author><pubDate>Sat, 07 Nov 2026 07:30:23 +0800</pubDate><description><![CDATA[Mojo 1.2.0 要求变量声明必须显式使用 var，摒弃了 Python 风格的隐式赋值。变量默认可变，无 let 或 alias，编译期常量统一用 comptime。类型标注可选，编译器支持从初始值推断类型，但跨函数边界需显式声明。作用域为块级，if/for 内声明的变量外部不可见。数值类型本质是 SIMD 别名（如 Int = Scalar[DType.int]），支持固定位宽整数、浮点（含 BFloat16）、Bool 及 None。类型转换必须显式，禁止隐式收窄。运算符与 Python 类似，但]]></description><category></category></item><item><title><![CDATA[Rust原来很简单三：抽象——组织与复用代码]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170147767</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170147767</guid><author>canfeit</author><pubDate>Fri, 06 Nov 2026 07:45:22 +0800</pubDate><description><![CDATA[本篇系统讲解 Rust 的代码组织与复用机制。通过模块（mod）、可见性控制（pub）和 use 引入路径，实现清晰的命名空间管理；利用包（Package）、Crate 与 Workspace 管理项目结构与依赖，支持大型项目协作。结合 Vec、String、HashMap 等标准集合，掌握动态数据存储与操作。最终构建可复用、可组合、结构清晰的 Rust 代码体系。]]></description><category></category></item><item><title><![CDATA[Mojo编程实战二：环境搭建与工具链]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170146837</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170146837</guid><author>canfeit</author><pubDate>Fri, 06 Nov 2026 07:43:54 +0800</pubDate><description><![CDATA[本章系统指导在macOS、Linux及WSL2上安装Mojo 1.2.0，推荐使用uv或pixi进行项目级环境管理，避免全局污染。明确区分MojoSDK（基础编译工具）与MAXSDK（AI加速依赖），仅在涉及GPU算子或模型部署时安装max[all]。掌握mojoCLI八大命令：run、build、repl、debug、precompile、format、doc、demangle，理解其AOT编译本质及输出行为。通过HelloWorld与多文件包实践，掌握包结构规范（含__init__.mojo）、相对导入]]></description><category></category></item><item><title><![CDATA[Kotlin与Java虚拟机四：函数]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170048610</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170048610</guid><author>canfeit</author><pubDate>Thu, 05 Nov 2026 07:39:22 +0800</pubDate><description><![CDATA[Kotlin 中函数是“一等公民”，使用 fun 声明，支持表达式函数体、默认参数、命名参数和可变参数（vararg）。函数可位于顶层（编译为静态方法）、局部或类中。无返回值时类型为 Unit，尾递归优化可避免栈溢出。本章还介绍了函数的灵活性与可读性提升特性，为后续高阶函数打下基础。]]></description><category></category></item><item><title><![CDATA[Zig 系统编程也能如此简单二：第一个项目]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/170048379</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/170048379</guid><author>canfeit</author><pubDate>Thu, 05 Nov 2026 07:38:36 +0800</pubDate><description><![CDATA[本章目标：把 Zig 装好、把编辑器配好、把zig这个"瑞士军刀"的每个刀刃都摸一遍，最后从零建立一个规范的 0.17 项目。本章所有命令的输出都是的。]]></description><category></category></item><item><title><![CDATA[Kotlin与Java虚拟机三：控制流]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/169948253</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/169948253</guid><author>canfeit</author><pubDate>Wed, 04 Nov 2026 07:02:35 +0800</pubDate><description><![CDATA[Kotlin 控制流以表达式为核心，if 和 when 均可返回值，取代了 Java 的语句形式。when 功能强大，支持多值、区间、类型判断及穷尽性检查，提升安全性。区间与 for 循环结合，简洁遍历集合；break/continue 可配合标签跳出嵌套循环。Lambda 中的 return 默认非局部返回，需用 return@标签 控制行为。整体设计更安全、简洁。]]></description><category></category></item><item><title><![CDATA[Rust原来很简单二：所有权系统]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/169947949</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/169947949</guid><author>canfeit</author><pubDate>Wed, 04 Nov 2026 07:02:01 +0800</pubDate><description><![CDATA[本文系统讲解Rust所有权核心机制：每个值有唯一所有者，作用域结束时自动释放（drop）。三大铁律确保内存安全：唯一所有者、所有权转移（移动）、离开作用域即丢弃。堆数据如String通过移动转移所有权，避免重复释放；而Copy类型（如整数）可复制，不移动。clone()用于深拷贝，适合新手过渡。引用（&T）允许借用而不转移所有权，可变引用（&mut T）支持修改，但遵循“多读或单写”规则，结合非局部生命周期（NLL）实现灵活且安全的借用。掌握这些概念，是理解Rust内存模型与安全性的关键。]]></description><category></category></item><item><title><![CDATA[Mojo编程实战一：认识 Mojo]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/169849206</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/169849206</guid><author>canfeit</author><pubDate>Tue, 03 Nov 2026 07:18:04 +0800</pubDate><description><![CDATA[Mojo旨在弥合Python易用性与C/Rust高性能之间的鸿沟，基于MLIR实现编译期元编程、原生级性能与跨硬件优化。由Chris Lattner主导的Modular公司推出，2026年被高通收购。其三大支柱为：类Python语法、AOT编译性能、编译期特化能力。虽非Python超集，但可高效重写数值计算、AI内核等热路径代码。性能优势多针对未优化的Python循环，实际对比NumPy/C++等仅1–5倍。建议以“Python编排+Mojo内核”模式落地，避免盲目重写。本书聚焦Mojo 1.2.0现行标准]]></description><category></category></item><item><title><![CDATA[Zig 系统编程也能如此简单]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/169849127</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/169849127</guid><author>canfeit</author><pubDate>Tue, 03 Nov 2026 07:16:46 +0800</pubDate><description><![CDATA[Zig 是一门强调“显式”与“安全”的系统编程语言，旨在解决 C 语言长期积累的隐藏复杂度问题。它通过显式内存分配、强制错误处理、运行时安全检查（如越界、溢出）和可预测的控制流，实现健壮性与最优性能。0.17 版本重构了 I/O、构建系统与互操作机制，确保代码真实可运行。本书聚焦 0.17.0，以可验证代码为核心，展示 Zig 如何在保留 C 高效特性的同时，用透明设计提升可靠性，适合追求可控、可维护系统的开发者。]]></description><category></category></item><item><title><![CDATA[Rust编程入门，迈出第一步]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/169815713</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/169815713</guid><author>canfeit</author><pubDate>Mon, 02 Nov 2026 08:49:35 +0800</pubDate><description><![CDATA[greet("世界");println!fn greet(name: &str) { // 参数必须标注类型println!("你好，{name}！");fn add(a: i32, b: i32) -> i32 { // -> 后是返回类型a + b // 无分号 = 返回值（表达式）// 也可以，但结尾用表达式更地道。]]></description><category></category></item><item><title><![CDATA[Rust 编程其实很简单]]></title><link>https://blog.youkuaiyun.com/canfeit/article/details/169814313</link><guid>https://blog.youkuaiyun.com/canfeit/article/details/169814313</guid><author>canfeit</author><pubDate>Mon, 02 Nov 2026 08:45:54 +0800</pubDate><description><![CDATA[《Rust 编程其实很简单》系统化讲解 Rust 核心理念：通过所有权、借用检查器与生命周期，实现内存安全与极致性能。书中以“编译期消灭错误”为突破口，打破“Rust 很难”的误解，引导开发者建立直觉。结合真实应用案例与实战环境搭建，助力从入门到精通，让每位开发者都能驾驭可靠高效的系统编程。]]></description><category></category></item></channel></rss>