读《黑客与画家》 [draft]
产品发展路径 搭建原型 上线运营(别管bug) 搜集反馈 成长壮大 在产品发展中最避讳的就是闭门造车,不能陷入自嗨式精益求精。产品最终使用者是客户,只有客户才是检验产品设计是否优秀的试金石。如果产品研发早期过度注重所为的精益求精,极大的可能就是所有的功能不是客户真正在意的,这就会很大的浪费了成本和精力。 互联网发展多年,不管是产品设计领域还是产品开发领域都涌现出很多相似的理论。例如:小步快走,快速迭代、敏捷开发…… 好的产品应该引入用户的参与,让用户参与产品的设计,这样开发的产品才是更符合使用者的需求,更好的满足市场的需要。 适合的才是最好的 对于编程语言的选择:流行的不是最好的,适合的才是最好的。现如今各种语言层出不穷,要对各个语言的特性有所了解,对于编程语言的选择应该以业务为核心而非以编程语言的流行程度为核心。 并非所有的业务都适合用来作为衡量选择语言的因素,应该以关键业务的关键部分,作为衡量的选择。也有可能整个项目都对语言没有过多的要求,可以根据补充条件(招聘难度,开发效率)作为选择语言的标准。 对于选择的语言可能会存在招聘不到相关语言的开发人员,书中说可能所在城市并非适合创业。我个人并不是很认同此观点,因为有些情况下,并不能换城市开展业务,那就必须面对招聘不到开发人员的实际问题。 对于上述问题我个人有下面一些思考:可以将项目的核心业务和周边业务做区分,周边业务,本身对语言要求不是很高,可以选择招聘相对容易的语言做开发。核心业务可以从内部组织一个小组学习新语言,进行开发。 可能会有人有疑问重新学变成语言,不是更浪费时间吗?关于此问题可以阅读我的《我们是如何使用一门新语言一周上线一个程序的》 优秀成于细节 达•芬奇在作品《女性肖像》中在少女头后摆了一片树枝。他很仔细的画出了树枝上的每一片叶子。许多画家也许会觉得,那不过是背景里的衬托,没有人会仔细看,不妨简单处理下就可以了。 但达•芬奇不这么想,他对作品的每一部分认真程度完全不取决于会不会有人仔细看这部分。 君子慎独,不欺暗室。做人与做事道理是一样的,不管所做的事情是否有人能够看到,都应该认真对待。 在开发过程中经常会遇到类似的情况,因为各种原因,将程序算法设计的过于简陋,短期看能够满足需求,但从长期看,无论是维护和可靠性都存在很大的问题,最终导致用户丧失信心,放弃继续产品。 开发过程中应该时刻保持敬畏之心,注重开发过程中的每一个细节。这样才能够在一个比较久的时间跨度上取得优异的成果。 代码是给人读的,其次是机器 写程序,一定要时刻提醒自己代码是给人读的,这个非常重要。所以在开发程序算法的时候应该首先考虑别人阅读起来是否能够更容易读,而不是考虑机器是否更容易读。 让代码更易读,并非就是放弃程序性能和架构完整。大多数情况下考虑代码可读性并不会带来过多的性能损耗和架构设计的牺牲。 至于少数情况则需要开发人员花更多的时间去考虑如何去取得一个平衡,在代码易读性和性能与架构完整性之间取得一个平衡。这是平衡的艺术,虽然次数不会很多,但每一次的取舍和考量都能让我们对程序开发的理解有所提升,也会让我们更少的遇到这类需要平衡抉择的问题。 总结 理想很丰满,现实很骨感。在很多情况下,都不得不面对各种各样的客观因素,而在这种客观因素下面所做出的选择拉开了人与人的差距。 有些人会心生抱怨,把问题归结于客观因素,最终不仅自己不能取得职业上的进步,也会给团队氛围带来一定的负面影响。 有些人则是积极主动,主动考虑在客观因素存在的前提下,如果通过主动做功,让事情进最大程度的取得好的结果。 每个选择都是因,在未来也一定会有相应的果。在一个团队中大家一定都喜欢那些给团队带来希望的人。希望我们能在被别人点亮的同时,也能够点亮别人。