摘要: 长期以来,软件行业之所以能够提供庞大的就业规模,与软件开发的特殊性有关。软件系统虽然抽象,但实现过程往往依赖大量人工编码,因此行业形成了一种典型结构:少量系统设计者,大量代码实现者。 在这种结构下,大部分程序员的工作是: 将需求转化为代码 维护和修改已有系统 使用框架实现业务逻辑 因此,行业真正培养 阅读全文
posted @ 2026-03-04 18:07 陈百川 阅读(299) 评论(2) 推荐(2)
摘要: 在一些数据处理场景中,我们经常会设计这样的接口: byte[] GetImageArgb(); 它看起来很自然:调用方法,得到一段结果数据。 但在某些情况下,这类接口会带来一个不容易察觉的问题: 后续的优化空间,被提前限制了。 问题从哪里开始? 这个接口同时做了两件事: 表达能力:获取 ARGB 数 阅读全文
posted @ 2026-03-19 17:46 陈百川 阅读(410) 评论(0) 推荐(3)
摘要: 刚工作时,经常听到一句话:不要过度设计。 于是很多人对接口、抽象层、设计模式都保持警惕。 代码一旦多出几层结构,就容易被怀疑是在“过度设计”。 但工作几年之后,我慢慢有了不同的理解: 很多所谓的“过度设计”,其实只是设计错误。 “过度设计”是错误的切入视角,因为设计本身并不会“过度”。 真正的问题, 阅读全文
posted @ 2026-03-16 09:10 陈百川 阅读(376) 评论(2) 推荐(4)
摘要: 在讨论图像压缩时,我们经常会同时听到: JPEG JPEG Baseline JPEG Extended JPEG-LS JPEG2000 很多资料容易把它们混在一起,仿佛它们只是“同一种 JPEG 的不同版本”。 实际上,它们属于 JPEG 组织发布的不同压缩体系,底层算法思想差异很大。 下面用一 阅读全文
posted @ 2026-03-06 16:15 陈百川 阅读(249) 评论(0) 推荐(2)
摘要: 在设计基础库或跨平台框架时,一个反复出现的问题是:如何构建抽象层。 典型场景包括: GUI 框架(Windows / macOS / Linux) 图形 API(OpenGL / DirectX / Vulkan) 数据库访问接口 图像处理框架 操作系统适配层 这些系统具有一个共同特征:底层实现差异 阅读全文
posted @ 2026-03-05 14:03 陈百川 阅读(189) 评论(2) 推荐(5)
摘要: 在实际项目中,我们常常需要高效、线程安全地加载配置文件。为了确保在高并发场景下配置只加载一次、且读取速度尽可能快,我们往往会设计一些特殊的加载方案。今天,我将记录一次从具体实现问题出发,逐步抽象出高级设计概念的过程。 1. 高效加载配置的需求 在项目初期,我们的需求很简单:如何在多线程环境下高效加载 阅读全文
posted @ 2025-03-26 20:43 陈百川 阅读(417) 评论(0) 推荐(1)
摘要: 1. 委托内部结构 委托类型包含三个重要的非公共字段: _target 字段 静态方法包装:当委托包装一个静态方法时,该字段为 null。 实例方法包装:当委托包装实例方法时,该字段引用回调方法所操作的对象。 _methodPtr 字段 标识委托要调用的方法。 _invocationList 字段 阅读全文
posted @ 2025-02-26 20:38 陈百川 阅读(677) 评论(0) 推荐(1)
摘要: 众所周知C#的DllImport特性只允许将常量字符串赋值给DllName。 C/C++动态库在不同平台上可能具有不同的名称。 用nativedep这个库来举例:在windows上可能叫nativedep.dll、linux上叫libnativedep.so、macos上叫libnativedep. 阅读全文
posted @ 2025-02-25 17:21 陈百川 阅读(152) 评论(0) 推荐(0)
摘要: 在框架开发的过程中很容易被““普遍接受””的思维束缚,导致设计结果不上不下,重构活动更是如此。 在重构或设计新框架时,应该运用关注点分离思想:首先明确推迟“普遍接受”,专注于解决技术难题和构建系统的内在价值;然后,再思考如何将这种价值以易于理解、易于采纳的方式展示给用户。过早地迎合用户的传统习惯,往 阅读全文
posted @ 2025-02-13 10:53 陈百川 阅读(38) 评论(0) 推荐(0)
摘要: 记录一下。 应用程序莫名报这个错,其它电脑上正常。 可能是Application Verifier这个工具影响到了。 进入注册表:win+R->regedit->HKEY_LOCAL_MACHINE->SOFTWARE->Microsoft->Windows NT->CurrentVersion-> 阅读全文
posted @ 2024-09-25 17:12 陈百川 阅读(129) 评论(0) 推荐(0)