
编程原理
文章平均质量分 88
良少
资深挨踢人士,精通Python,C,Java,JavaScript,Linux内核,网络协议,虚拟化,云计算,分布式存储,kubernetes,数据仓库等技术。擅长微服务架构设计,DevOps。目前致力于以Fintech助力普惠金融。
展开
-
关系型数据库表结构的两个设计技巧
设计关系型数据库的表时,需要给表添加一个ID字段(自增字段,或者uuid字段)和一个version字段(数值类型)。ID字段作为物理主键,用于保证记录的不可重复性和用作外键关联。 version字段用于实现乐观锁,提供比悲观锁更好的性能。特别是对于UI显示并可能出现并发更新的数据,更需要使用乐观锁来提升数据库访问性能。 对于后台自动更新的任务,可以使用乐观锁实现。但需要在冲突发生时实现自动退让。也可以使用悲观锁在数据库上对事务进行排队来解决更新冲突问题。 对于不关原创 2015-08-12 13:17:10 · 8887 阅读 · 0 评论 -
编程能力层次模型
程序员的编程技能随着经验的积累,会逐步提高。我认为编程能力可以分为一些层次。 下面通过两个维度展开编程能力层次模型的讨论。 一个维度是编程技能层次,另一个维度是领域知识层次。...... 有些程序员可能把精力都花在提升编程技能上了,领域知识知之甚少,这其实在日常工作中也是极其有害的。有些需求可能早已经有了现成、开源免费的解决方案,或者只需要组合几个现有软件就可以快速搞定,而他们却不得不自己花大量时间去开发。另外,缺少领域知识,在程序出现非预期状况时,很难快速定位到问题的根源,很难解决bug。原创 2015-02-15 15:30:39 · 18018 阅读 · 11 评论 -
Linux内核中链表和散列表的实现原理揭秘
inux内核的实现,大量使用了数据结构,包括了数组、链表和散列表。其中用的最多的是双向循环链表。Linux内核使用的是自己定义的链表和散列表,简单而高效,使用方法也非常的别具一格。研究Linux内核的链表和散列表对于看懂Linux内核源源代码有重要的意义。原创 2011-07-14 11:37:02 · 10142 阅读 · 7 评论 -
构建一个分布式操作系统的简单方案—答陈硕的“分布式系统中的进程标识”一文
本文提出了构建一个分布式操作系统的简单方案。核心是使用ssh的强大能力,构建一个简单、安全、灵活、高效的分布式操作系统!并且没有单点失效的问题。注意,是通用的分布式操作系统,而不是专用的分布式系统。原创 2011-03-29 16:20:00 · 9327 阅读 · 57 评论 -
Objective-C---本地运行的Ruby
缘起: 上周入手了一个iPad,用得很爽。AppStore确实非常棒。每天上班车上两个小时可以惬意地看书了。 相比之下,我的Nokia C6手机软硬件都远远不如精致的iPad。 Nokia的OviStore上软件也很少,估计最多200、300款。而且没有什么实用的软件。我翻了好几遍,虽然都是免费的,但还是找不到一个值得下载的软件。 不过Nokia的手机价格挺便宜的。我用过很多厂商的手机,Nokia是质量最好的,特别是信号非常好。一句话,皮实耐用,虽然不怎么好玩作为手机也还不错的原创 2010-11-09 00:13:00 · 8443 阅读 · 31 评论 -
主流编程语言优劣考
主流编程语言优劣考 前言 本文的目的并非是想挑起语言之争,而是希望通过客观地分析每一种主流语言的能力,辨明其长短,让程序员能够扬长避短,有效地使用各种语言。让各种语言能够各安其位,为你更好的服务。程序员应当成为语言的主人,而不是语言原创 2008-06-10 00:19:00 · 41324 阅读 · 88 评论 -
基于对象和面向对象编程范式辨析和主流编程语言中的应用
基于对象和面向对象编程范式辨析和主流编程语言中的应用 前言 本文的目的是想告诉大家,为什么C++的模板这么强大。为什么Ruby的Duck Typing(像鸭子那样编程)这么强大! 基于对象和面向对象编程范式关于基于对象和面向对象编程范式,我有着不同于传统的理解。我认为我的理解更能体现出这2个范式的本意。原创 2008-06-09 01:41:00 · 9545 阅读 · 11 评论 -
用Redis轻松实现秒杀系统
秒杀系统,是典型的短时大量突发访问类问题。对这类问题,有三种优化性能的思路:写入内存而不是写入硬盘异步处理而不是同步处理分布式处理用上这三招,不论秒杀时负载多大,都能轻松应对。更好的是,Redis能够满足上述三点。因此,用Redis就能轻松实现秒杀系统。用我这个方案,无论是电商平台特价秒杀,12306火车票秒杀,都不是事:)原创 2016-04-08 01:03:49 · 119665 阅读 · 52 评论