软件工程
分布式初探 Distributed 101
分布式系统通过多机协同处理突破单机资源限制,解决存储和计算压力问题。系统需处理存储、传输、计算三大核心挑战,具备扩展性、高性能和容错性特征。设计采用分治和复制策略,通过数据分区实现并行处理,利用副本提高可用性和性能。物理距离和节点数量构成系统限制,需要在一致性、可用性和分区容错性间权衡。
2018年4月6日
0交换排序 Google笔试题
0交换排序是Google经典笔试题,要求在仅能与0进行交换的限制条件下对数组排序。算法核心思路是先将0置于首位,然后通过三次交换操作循环将每个元素归位。该解决方案时间复杂度O(n),空间复杂度O(1),展示了巧妙的数组操作技巧和约束条件下的优化思维。
2018年3月29日
在 Gin 中实践TDD测试API
在Gin框架中实践TDD测试驱动开发,通过优先编写测试来提升API代码质量和稳定性。TDD确保代码健壮性,减少Bug产生,支持系统重构和代码优化。文章介绍Go语言中使用httptest进行端到端API测试的具体实现方法,包含测试准备、请求构造和响应验证的完整流程。
2018年3月26日
Go下解析XML文档时的编码问题
Go语言解析XML文档时处理非UTF-8编码的技术方案。通过使用xml.Decoder替代xml.Unmarshal方法,并设置CharsetReader函数来正确处理不同字符编码的XML文档,解决RSS解析过程中遇到的编码转换问题,确保数据准确解析和显示。
2018年3月10日
SQL基础简明总结
SQL基础简明总结涵盖数据库核心操作技术,包括INNER JOIN、SELF JOIN、OUTER JOIN等连接查询方法,UNION合并查询结果,INSERT INTO数据插入,CREATE/DROP/ALTER表结构操作,视图创建与事务管理。详细说明主键、外键、唯一约束、检查约束等数据库完整性约束机制,以及索引优化和触发器应用,为数据库开发提供完整的技术参考指南。
2017年11月4日
Linux日常之进程内存篇
Linux系统中进程内存管理涉及内核、用户进程和线程的协调工作。内核负责CPU调度、内存分配和进程间通信,通过fork和exec系统调用创建管理进程。掌握top、ps、vmstat等监控命令可有效追踪进程状态和内存使用情况,理解虚拟内存机制有助于优化系统性能。
2017年10月31日
Linux日常之cron篇
Linux cron定时任务管理系统详解,涵盖crontab基本语法、时间格式配置及常用参数。详细介绍分钟、小时、日期、月份、星期的设置规则,以及逗号、横线、斜杠等分隔符的使用方法。包含实用命令如-l查看、-r删除、-e编辑任务,并提供一次性任务调度解决方案。
2017年10月30日
一文讲透koa-源码剖析
深度剖析流行Node.js框架Koa的核心源码与实现机制。文章详解Koa应用实例的初始化过程,包括context、request、response对象的创建,并重点解析中间件系统的核心:通过koa-compose实现的递归式洋葱模型执行流程。同时,深入讲解了Koa如何基于Node.js原生http模块封装请求处理,以及单一请求上下文的创建、封装与职责划分机制,揭示其高内聚、低耦合的设计思想。
2017年10月17日
常见设计模式概要及其实践-TypeScript实现
掌握TypeScript设计模式提升代码质量。涵盖策略、观察者、装饰者、工厂、单例、命令、适配器、外观和模板方法等核心模式,结合TypeScript面向对象特性实现。通过封装变化、组合优先继承、接口编程等原则,构建易维护、高弹性的应用程序架构,提供完整代码示例和实践指导。
2017年10月15日
使用sftp搭建本地快速部署环境
通过SFTP搭建本地快速部署环境的技术指南,涵盖CentOS系统SSH服务配置、用户权限管理、SFTP目录设置等关键步骤。详细说明VSCode FTP-Sync插件配置方法,实现安全的文件传输和自动化部署流程,支持密钥认证和忽略特定文件类型,提升开发效率。
2017年9月10日