程序员

程序员「奇葩」说

一直以来「奇葩」这个词都是偏贬义的,直到去年有个综艺节目叫「奇葩说」挺热闹,这里的人不一定是奇葩,更多指达人的意思。 「奇葩说」里的达人都是能说会道的,我的主业是程序员,所以只能写写在我职业生涯中碰到的一些「奇葩」程序员。 你懂的,我这里的「奇葩」没有任何贬义的意思。月在胸襟人在途我刚入行时的第一位项目经理,70后。那年三十出头,在银行客户现场做项目经理,负责一个二十来人的

代码故事:汉德的救赎

我叫汉德(Handle),是一段程序代码,出生在日食之城埃地特(Editor)。我诞生于伟大而荣耀的瑟维斯家族(Service),我们家族的格言是:“瑟维斯永不倒下。(Services never crash down.)”。信仰我们家族的信仰,哦,不对,应该是所有代码家族的信仰都是普瑞格兰姆神祇。普瑞格兰姆是众神的统称,其中又细分为三类:科德尔(Coder),创造神。特斯

项目开发的责任感

目前我形成了一个项目告一段落就进行一次总结的习惯,总结会对提高自己的思维层次和能力都非常的有帮助,这篇文章主要基于我现在所在的环境,和所在的公司情景来写的; 关于开发:开发过程,我制作了流程化,从文档入手,做数据结构分析、数据表结构分析、程序结构分析;然后进入开发工作,也就是编码阶段,但少了详细的程序逻辑结构分析,这也就造成了开发中还会存在很多问题,以至于造成了很多隐患,为

程序员启示录

最近因为项目需要在看一个开源项目的源码,这个开源项目据说在内部开发孵化了 6 年之久,前几年才开源出来。 我在看设计文档和源码中发现,它的高层设计的一致性是比较好的,但到了源码实现就显得凌乱了些。 既然是时间跨度如此长的项目,想必参与这个项目的程序员也不止一批人了,处于不同阶段的程序员都有可能参与,这样也能理解实现上的凌乱了。 看着这些有一定时间沉淀的代码,有些代码可能诞生

IM 去中心化概念模型与架构设计

今天打算写写关于 IM 去中心化涉及的架构模型变化和设计思路,去中心化的概念就是说用户的访问不是集中在一个数据中心,这里的去中心是针对数据中心而言的。站在这个角度而言,实际上并非所有的业务都能做去中心化设计,对于一致性要求越高的业务去中心化越难做。比如电商领域的库存就是一个对一致性要求很高的业务,不能超卖也不能少卖,这在单中心容易实现,但多中心纯从技术层面感觉无解,可能需要

一技压身,天下行走

最近朋友圈有篇文章《为何我工作十年,内心仍无比恐慌》转的比较多,来自一个腾讯产品总监的演讲。我一个程序员也工作了十年,确实依然感到内心的恐慌,这种职业焦虑在这个行业普遍存在。也许正是因为互联网行业还很年轻,一个行业的寿命远超过一个人的寿命,而互联网行业还不到三十年。远超传统行业的发展速度和新陈代谢规律,让其中的从业者深感疲惫,而对未来又充满了不确定性。而未来的不确定性通常正

第四集!值得每个人收藏的《完美像素使用手册》之设计与开发篇

这本纪念碑谷团队出品的《完美像素使用手册》,有设计师说是她见过的最全面,最毫无保留,最生动有趣的界面设计指南,而且不止是设计,还包括和程序员的合作经验,AI、PS的操作小技巧等等。现在终于有中文版了,强烈建议收藏阅读。虽然这个册子确实出来挺久了,大概14年的时候优设网就有推荐过它:http://www.uisdc.com/pixel-perfect-precision-ha

程序员要的不是需求文档,而是一份清晰的流程图

我所见过的程序员和产品经理之间产生矛盾大多是因为一个叫「需求文档」的家伙。有一种恶心的需求文档,我曾经见过,甚至再见到会觉得更恶心,请看下图:这张图应该会交给交互射鸡湿,交互看着这么长的文字,应该是崩溃的,画出交互图。交给程序员的时候,程序员看着这样的需求描述再来生产的时候,就会问若干个「如果」问题,如果×××情况下,该怎么办呢?产品经理再来更新需求文档,又问,又改,再问,

程序员,你不应该成为一匹独狼

编程从来都是一项集体工作,在我们程序员的代码世界里,几乎所有的事情都是依靠协作来完成的。像我们每天都在使用的微信、支付宝、淘宝等应用,也无一例外都是由那些优秀的开发团队创造出来的。尽管,随着专业领域的不断融合,程序员将会变得更加全面,也更全能 ,但你仍不应该成为一匹独狼,因为这将会给你带来那些技术之外的问题。不切实际的梦想我经常听一些程序员谈论他们的梦想(大多是创业想法),

在程序员的眼里 用户是这样使用他们开发的软件的

我曾经说过,程序员不是一般的人,是具有某种超能里的人。但问题是,程序员往往意识不到自己的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情,其他人——比如他们的客户/软件用户——也应该很容易做到。但事实上,由于大部分人——绝大部分人(包括软件开发公司的客户/购买软件的用户)——都是电脑小白(对电脑知识/计算机知识/软件知识知之甚少的人)。一个