分类目录归档:技术

技术

kafka:一个分布式消息系统

1.背景

最近因为工作需要,调研了追求高吞吐的轻量级消息系统Kafka,打算替换掉线上运行的ActiveMQ,主要是因为明年的预算日流量有十亿,而ActiveMQ的分布式实现的很奇怪,所以希望找一个适合分布式的消息系统。

以下是内容是调研过程中总结的一些知识和经验,欢迎拍砖。

2.基础知识

2.1[……]

继续阅读

【翻译】编程:思考?编码?思考!编码!

@程序员的那些事的邀请,翻译了这篇文章;原本以为翻译是件很简单的事,但实际做起来还是有难度的,很多地方读来读去都感觉不通顺,有机会再改改;不过这是我第一次翻译,感谢@程序员的那些事的邀请,朋友们凑合着看吧~

原文地址(欢迎指正):http://architects.dzone.com/artic[……]

继续阅读

我所理解的敏捷

我觉得敏捷是一种工作方式,一种适用小而精团队的工作方式,好比特种兵,敢死队,《士兵突击》里的老A,人数不多、流程特殊、战斗力奇强。因此,敏捷对个人的要求极高,但绝大多数的人并不满足相应的要求,毕竟正规军永远多于特种兵,但是敏捷的一些方法、流程、思维方式依然可以引入到互联网企业里,毕竟,面对不断变换的[……]

继续阅读

【收藏】Paul Graham:百年语言

【分享理由】在我看来,Paul Graham是一个典型的工匠,也只有工匠才会跳出编程这项工作去思考一些更加本质的问题。我为什么要学这门语言?找工作?项目中用到?可它本身是用来干什么的呢?为什么这么设计?它能实现我想做的任务吗?在各种论坛里总能找着争论哪种语言好坏的帖子,通常都不会有结果,因为大多数语[……]

继续阅读

程序员的四种类型

不是每一个写代码的都是程序员。这里,我把程序员定义为以编程为生的人。我认为世界上存在四类程序员:科学家、码农、专家和工匠。下面我一一介绍自己的观点。

科学家,与其说他们是程序员,不如说他们是数学家。他们发明了各种理论、算法和术语,教科书上那冗长的证明和计算也出自他们之手,其他的程序员都或[……]

继续阅读

【算法】经纬度常用计算

最近工作中遇到经纬度搜索的需求,初步想法是计算所有目标城市距该点的距离,然后进行筛选,但头疼的是,没有所有产品的缓存,计算距离的操作只能放到DB端,这样是不可接受的;所以打算先将所有产品放到缓存中,再进行计算。可这么做的话,一方面改造工时比较长,另一方面目前的缓存系统不是很稳定,几番思考征得产品经理[……]

继续阅读

规范的重要性—《Clean Code》读后感

《Clean Code》第一章举了一个很深刻却不断发生的例子,它展示了一个项目为混乱代码所付出的代价;然后列出了诸位大师眼中整洁代码的含义,最后给出了著名的“童子军军规”:让营地比你来时更干净。之后的二到十二章讲述了作者及其团队关于各种整洁代码的技巧和建议;十三章和附录A是关于并发的讨论,有一定难度[……]

继续阅读

【SQL】SQL分页查询总结

开发过程中经常遇到分页的需求,今天在此总结一下吧。

简单说来方法有两种,一种在源上控制,一种在端上控制。源上控制把分页逻辑放在SQL层;端上控制一次性获取所有数据,把分页逻辑放在UI上(如GridView)。显然,端上控制开发难度低,适于小规模数据,但数据量增大时性能和IO消耗无法接受;源上控制在[……]

继续阅读