Morningstar的产品开发模式

广告位招租
扫码页面底部二维码联系

从大学开始接触Web开发,到现在已经是第未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net9个年头了,但是感觉自己才刚刚开始入门。【原创不易,请尊重版权】本文作者:唐霜,转载请注明出处。特别是开发模式(这个称法待议),不同的公本文作者:唐霜,转载请注明出处。【本文首发于唐霜的博客】司不一样,团队结构,团队合作方式都有很大著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。的区别。我虽然经历的公司不多,但是接触了转载请注明出处:www.tangshuang.net原创内容,盗版必究。一些,自然有些比较。今天主要分享一下mo原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.netrningstar的产品开发模式。

【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】【版权所有】唐霜 www.tangshuang.net

传统的产品开发

一个产品的上线,需要经历非常多的步骤,单未经授权,禁止复制转载。未经授权,禁止复制转载。就产品开发这个方面,主要可以分成几个块。【版权所有,侵权必究】【原创内容,转载请注明出处】不同的年代,方式也不同,分块的依据也各异【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。。下面是我总结的传统的产品开发模式:

【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。

tranditional-DBF-structure

原创内容,盗版必究。本文版权归作者所有,未经授权不得转载。【版权所有,侵权必究】

这种模式非常清晰,特别是对于程序员而言,著作权归作者所有,禁止商业用途转载。【转载请注明来源】非常容易定位。一个程序员,是做哪一个产品著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。,是前端还是后台还是数据库开发,都可以找著作权归作者所有,禁止商业用途转载。【作者:唐霜】到自己的位置。

【作者:唐霜】【原创不易,请尊重版权】

而且这种开发模式有很多有点,比较适合敏捷【作者:唐霜】【原创不易,请尊重版权】开发。大公司小公司都在用,小公司可能只有未经授权,禁止复制转载。【转载请注明来源】一个产品,一个团队,大公司可以多个产品线【本文首发于唐霜的博客】【版权所有,侵权必究】,多个团队,团队之间有人员流动,但所有的【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。研发人员都可以非常明确的用“在开发哪个产【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.net品,自己是哪个端”来给自己在公司里面定位著作权归作者所有,禁止商业用途转载。【关注微信公众号:wwwtangshuangnet】

【版权所有,侵权必究】【本文受版权保护】未经授权,禁止复制转载。【未经授权禁止转载】

早期的时候,前后端其实也分得不是很清楚,【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.net后端用PHP,顺带就使用MVC框架那一套【本文受版权保护】【本文受版权保护】,把HTML+CSS的部分全部完成了。比【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】如你用PHP框架进行开发,完全是后端主导本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】,因为所有的页面HTML模板全部是后端定【原创内容,转载请注明出处】本文作者:唐霜,转载请注明出处。义的。

【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。【转载请注明来源】【本文受版权保护】

随着前后端分离的思想出现之后,上面这种完未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net全后端主导的局面也逐渐瓦解了,前后端分离【未经授权禁止转载】转载请注明出处:www.tangshuang.net是指前端和后端专注(甚至只)做一件事,所【转载请注明来源】原创内容,盗版必究。以在我写的《从web架构来认识nodejs》这篇文章里,就勾画了大致的新的前后端分【访问 www.tangshuang.net 获取更多精彩内容】【本文首发于唐霜的博客】工:

未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.net

nodejs-web-construct-simple

【本文首发于唐霜的博客】【本文首发于唐霜的博客】

中间通过Node将前端和后台完全分离。后【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。端完全专注于数据和数据业务逻辑,前端则通转载请注明出处:www.tangshuang.net【版权所有】唐霜 www.tangshuang.net过node实现界面和交互,对后端仅有数据【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。接口依赖。

【版权所有,侵权必究】【未经授权禁止转载】【访问 www.tangshuang.net 获取更多精彩内容】【作者:唐霜】

这种改变使得web开发从“CMS向APP【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。”转变,以前的MVC更多的是CMS的思想【作者:唐霜】【本文首发于唐霜的博客】,而现在的MVC更多的是APP思想。

【转载请注明来源】【转载请注明来源】【本文受版权保护】

Morningstar的产品研发思想

作为外企,Morningstar的产品架【作者:唐霜】【关注微信公众号:wwwtangshuangnet】构都是在芝加哥完成的,深圳团队主要是在架【原创不易,请尊重版权】未经授权,禁止复制转载。构思想上进行具体的实现,老外的思想总比国【原创不易,请尊重版权】【版权所有】唐霜 www.tangshuang.net内激进一些,国内PHP还盛行的时候,我们【访问 www.tangshuang.net 获取更多精彩内容】【转载请注明来源】的产品仅留下Java和JavaScrip著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。t两门语言。Java开发data api未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net,而JavaScript实现剩下的全部产转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。品开发。如果你关注我的微博,应该有发现我著作权归作者所有,禁止商业用途转载。【未经授权禁止转载】提到过这点。

本文版权归作者所有,未经授权不得转载。【本文首发于唐霜的博客】【原创内容,转载请注明出处】

昨天在rong给我们讲解了公司目前的产品本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】研发的思想后,我觉得这可能是未来产品研发转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。的趋势,特别是经过十多年发展之后,开发已【原创不易,请尊重版权】原创内容,盗版必究。经不再仅仅是横向的工具,而逐渐成为企业纵未经授权,禁止复制转载。【本文受版权保护】向的血液,不仅要控制成本,而且要保证产品本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshuang.net群是公司想要的结果。于是,就有了下面的结未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。构:

【未经授权禁止转载】【版权所有,侵权必究】

project-DCP-structure

著作权归作者所有,禁止商业用途转载。【转载请注明来源】【原创不易,请尊重版权】

和传统的产品开发有很大的不同,在这种模式【版权所有,侵权必究】【关注微信公众号:wwwtangshuangnet】下,一个程序员无法给自己在产品线上定位,转载请注明出处:www.tangshuang.net【作者:唐霜】程序员不知道自己在为哪一个产品开发(或者转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.net说程序员在为所有的产品做开发)。

【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。

在传统模式下,前后端分离,后端开发者调用【原创不易,请尊重版权】【未经授权禁止转载】数据库为前端提供api,但是往往基于某一【访问 www.tangshuang.net 获取更多精彩内容】【版权所有,侵权必究】个产品的特定需求,相当于定制。而现在da【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。ta层的开发并不为产品服务,而直接为整体著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net业务服务,data api不再从业务逻辑【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。出发,而是以data point为目标。未经授权,禁止复制转载。【本文首发于唐霜的博客】data api团队接到的需求绝对不是产【访问 www.tangshuang.net 获取更多精彩内容】本文作者:唐霜,转载请注明出处。品需求,而是非常明确的“需要哪些(数据)【原创不易,请尊重版权】【原创不易,请尊重版权】点,可以按照xx进行区间和步幅查询,可以【作者:唐霜】本文作者:唐霜,转载请注明出处。按照xx排序,可以按照xx分组”类似这样【转载请注明来源】本文版权归作者所有,未经授权不得转载。的需求,它完全脱离了业务逻辑,开发者并不未经授权,禁止复制转载。未经授权,禁止复制转载。需要知道自己的开发具体是为哪一个产品服务著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。,也不知道自己的api具体要实现什么业务未经授权,禁止复制转载。【本文首发于唐霜的博客】逻辑,程序员只需要专注于算法和性能。

【原创内容,转载请注明出处】【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.net

最大的不同莫过于capability这一【版权所有,侵权必究】【原创内容,转载请注明出处】层。因为公司现在也不知道怎么来定义这一层【本文受版权保护】转载请注明出处:www.tangshuang.net,所以目前暂时用capability称呼本文作者:唐霜,转载请注明出处。【转载请注明来源】。这一层是开发者集中的一层,也就是前端开【访问 www.tangshuang.net 获取更多精彩内容】【作者:唐霜】发(后端在data层)。这一层你可以看到【转载请注明来源】转载请注明出处:www.tangshuang.net,总体层面有一个framework,当然【本文受版权保护】原创内容,盗版必究。也不一定只有一个framework,可能未经授权,禁止复制转载。【转载请注明来源】有多个framework实现不同的逻辑,【作者:唐霜】原创内容,盗版必究。但总体上就是要有framework,用来【转载请注明来源】【未经授权禁止转载】装component,所有的功能都被制作原创内容,盗版必究。【本文首发于唐霜的博客】为component,用户需要什么功能,【版权所有,侵权必究】未经授权,禁止复制转载。就把component塞到framewo【原创不易,请尊重版权】【本文受版权保护】rk里面去,打包好之后,就成了一个pro【原创内容,转载请注明出处】本文版权归作者所有,未经授权不得转载。duct,可以卖给客户。
【关注微信公众号:wwwtangshuangnet】 实例说下:我们有一个产品,叫Asset转载请注明出处:www.tangshuang.net【关注微信公众号:wwwtangshuangnet】 Manager,是向基金经理提供资产管【关注微信公众号:wwwtangshuangnet】【版权所有,侵权必究】理分析的产品。我们还有一个产品,叫Wea【关注微信公众号:wwwtangshuangnet】【作者:唐霜】lth Manager,是向更高级别的用【本文受版权保护】原创内容,盗版必究。户提供资产管理者分析的产品。这两个产品的未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net目的不同,前者是要让用户(基金经理)更好转载请注明出处:www.tangshuang.net【原创内容,转载请注明出处】的管理资产和进行预测分析,而后者更多的想转载请注明出处:www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】让用户(投资机构)挑选合适的基金(通过看【原创不易,请尊重版权】转载请注明出处:www.tangshuang.net这个基金经理的业绩来确定是否值得挑选),【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。所以这两个产品的需求不同。但是虽然需求不【原创不易,请尊重版权】未经授权,禁止复制转载。同,可是有些方面,在数据呈现上是一样的,【版权所有,侵权必究】原创内容,盗版必究。比如单支基金在某个时段的流入流出,这两个未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net产品都可以查看这个情况,所以实际上它们使本文版权归作者所有,未经授权不得转载。【本文受版权保护】用同一个component,在类似的其他未经授权,禁止复制转载。【关注微信公众号:wwwtangshuangnet】某些点上,也可以使用相同的compone【未经授权禁止转载】未经授权,禁止复制转载。nt塞到不同的产品里面去。

【访问 www.tangshuang.net 获取更多精彩内容】【访问 www.tangshuang.net 获取更多精彩内容】【原创不易,请尊重版权】【版权所有,侵权必究】

所以,实际上,capability一层为转载请注明出处:www.tangshuang.net【关注微信公众号:wwwtangshuangnet】product一层提供了原材料,或者叫“原创内容,盗版必究。【未经授权禁止转载】组件,模块”,product是对这些“模【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net块”的组装。而这些component就是著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net零件,它们可以被复用,甚至通过修改配置,未经授权,禁止复制转载。【未经授权禁止转载】来使得连接到不同的data api上,以本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。适应更好的product。

著作权归作者所有,禁止商业用途转载。【本文受版权保护】【版权所有,侵权必究】

这种开发模式的意义非常大,它相当于解放了转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】所有开发者,让他们更专注,同时在公司层面【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.net,可以极大的降低成本,产品更加快速,可以本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。说有多少种component的组合,就可原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】以有多少个产品。

转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。未经授权,禁止复制转载。【版权所有,侵权必究】

两种模式的比较

我在Morningstar开始的时候很迷未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net茫,不知道自己到底是要做什么,而且com【原创内容,转载请注明出处】【本文首发于唐霜的博客】ponent的开发有自己的一套规则,所以【本文首发于唐霜的博客】原创内容,盗版必究。大部分时间都在研究这些规则,研究完规则之【本文受版权保护】【版权所有】唐霜 www.tangshuang.net后,跟以前写前端没有什么差别,只不过还是【版权所有,侵权必究】原创内容,盗版必究。不知道自己是在为哪一个产品服务。后来在理本文作者:唐霜,转载请注明出处。原创内容,盗版必究。解这种模式之后,我就对自己的状况有了更多【作者:唐霜】【原创内容,转载请注明出处】的了解。

【原创不易,请尊重版权】本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。

那么这两种模式哪一种更好呢?答案当然是不【版权所有】唐霜 www.tangshuang.net【本文首发于唐霜的博客】确定,只能说“适合就好”。

【原创内容,转载请注明出处】未经授权,禁止复制转载。【未经授权禁止转载】

1. 公司成长阶段

如果一个公司只有一个产品,刚开始创业,当【关注微信公众号:wwwtangshuangnet】【版权所有,侵权必究】然是传统模式更占优势,比如开发知乎的团队著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net,为了让产品赶紧上线,迅速迭代,当然要开本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。发团队自己拿主意。如果采用第二种模式,前【作者:唐霜】本文版权归作者所有,未经授权不得转载。端开发受到后端的制约,后端受到数据库的制著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。约,component受到framewo【访问 www.tangshuang.net 获取更多精彩内容】未经授权,禁止复制转载。rk的制约,framework受到具体需【本文首发于唐霜的博客】【原创内容,转载请注明出处】求的制约,制约来制约去,消耗的就是时间。

【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。【本文受版权保护】

但是当公司成长起来,到了一个特定的阶段的【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。时候,产品就有可能这样去分。比如微信,把【作者:唐霜】【版权所有】唐霜 www.tangshuang.net通讯录、公众号、朋友圈儿、支付看成com【访问 www.tangshuang.net 获取更多精彩内容】转载请注明出处:www.tangshuang.netponent,那么整个微信就是frame未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。work。但是在腾讯公司这样一个大的环境【访问 www.tangshuang.net 获取更多精彩内容】【关注微信公众号:wwwtangshuangnet】里,仍然保持着传统的开发模式,很多资源重著作权归作者所有,禁止商业用途转载。【转载请注明来源】复开发,不知道会不会是制约腾讯的一个点。

【本文受版权保护】著作权归作者所有,禁止商业用途转载。【作者:唐霜】

2. 模块重用可能性

一个公司的产品虽然多,但是都不是同类产品转载请注明出处:www.tangshuang.net【版权所有】唐霜 www.tangshuang.net,自然要将这些开发分开。比如淘宝和支付宝【转载请注明来源】【本文首发于唐霜的博客】,不可能放在一起,但是它们底层的数据可以【原创不易,请尊重版权】【本文受版权保护】共享。比如QQ和腾讯视频,如果作为两个单本文版权归作者所有,未经授权不得转载。【原创内容,转载请注明出处】独的产品,也不可能有什么地方可以重用。如转载请注明出处:www.tangshuang.net原创内容,盗版必究。果一个公司,做了一款电商产品,过了一点时未经授权,禁止复制转载。【版权所有,侵权必究】间又做医疗产品,那也不能重用。

著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。

但是如果产品之间的模块重用性很大,就应该【原创内容,转载请注明出处】原创内容,盗版必究。考虑新的开发模式。

【作者:唐霜】【版权所有,侵权必究】【原创不易,请尊重版权】

Morningstar的所有产品之间具有【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】非常大的相似性,产品界面几乎长一个样,但【关注微信公众号:wwwtangshuangnet】【本文受版权保护】具体的细节却不同,不同的基金经理需要的数【转载请注明来源】本文作者:唐霜,转载请注明出处。据不一样,所以得到的产品也不一样。这就非本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。常适合使用这种新的开发模式。

【本文受版权保护】【本文受版权保护】【转载请注明来源】未经授权,禁止复制转载。

3. 敏捷开发(团队)

敏捷开发的前提是,有一个非常强有力的团队【版权所有,侵权必究】【本文受版权保护】,而团队意味着集中在某些具体的开发上面。【关注微信公众号:wwwtangshuangnet】【作者:唐霜】但是敏捷开发一般都是针对产品,产品的需求本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。、设计、测试、迭代,都要快。但是在Mor【关注微信公众号:wwwtangshuangnet】著作权归作者所有,禁止商业用途转载。ningstar的这种模式下,根本无所谓【转载请注明来源】【作者:唐霜】敏捷不敏捷。

著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。

程序员所在的团队可能只有开发和测试,而没【转载请注明来源】【转载请注明来源】有设计,甚至连产品都没有。从公司层面讲,【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】也不能以产品进行团队划分,比如腾讯,可以原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。用一个游戏划分一个团队,但是在Morni【访问 www.tangshuang.net 获取更多精彩内容】【版权所有,侵权必究】ngstar,除了大产品模块的划分(比如著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。桌面端产品,web端产品,其他业务产品)【原创内容,转载请注明出处】【访问 www.tangshuang.net 获取更多精彩内容】,其实没有具体的产品团队,更多的是开发团【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net队,而开发团队内部才划分到具体的产品线上转载请注明出处:www.tangshuang.net【本文首发于唐霜的博客】

原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net

总结

我只能从自己的感觉去理解,Morning转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.netstar作为核心技术架构在美国的公司,有【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】很多技术上先进的地方是值得思考的,但是作【转载请注明来源】著作权归作者所有,禁止商业用途转载。为个人,开发者也要为自己的成长考虑。如果【关注微信公众号:wwwtangshuangnet】【本文首发于唐霜的博客】按照Morningstar的模式发展下去【本文受版权保护】著作权归作者所有,禁止商业用途转载。,不出几年,这种架构就会稳定下来,一个开【访问 www.tangshuang.net 获取更多精彩内容】转载请注明出处:www.tangshuang.net发者很快会成为这种稳定结构中的一个节点,【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。就像流水线上的工人,需要用自己熟练的操作【转载请注明来源】【未经授权禁止转载】,在规定的时间快速完成规定的动作。比如有本文作者:唐霜,转载请注明出处。【转载请注明来源】一个新的component要做,实际上c未经授权,禁止复制转载。原创内容,盗版必究。omponent的规则已经定好了,你必须【原创内容,转载请注明出处】转载请注明出处:www.tangshuang.net先把这些框架性质的代码先写好,然后开始发【关注微信公众号:wwwtangshuangnet】【未经授权禁止转载】挥,但是众所周知,这种发挥的空间并不算大【原创不易,请尊重版权】【作者:唐霜】,而且很有可能只是利用经验,而非学到东西转载请注明出处:www.tangshuang.net【本文受版权保护】

【访问 www.tangshuang.net 获取更多精彩内容】本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshuang.net

但是作为公司层面,甚至作为社会协作层面,本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。这种模式值得借鉴,它可以更好的降低开发成【未经授权禁止转载】【本文受版权保护】本,特别适合拥有数据资源的公司,像微博、腾讯、阿里这些公司,已经在数据【版权所有】唐霜 www.tangshuang.net【本文首发于唐霜的博客】服务上开始思考了。作为开发者,也可以在拿著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】到相同报酬的情况下获得更多的休息时间,这【本文受版权保护】本文版权归作者所有,未经授权不得转载。或许是解决国内程序员加班问题的一条途径吧【转载请注明来源】【访问 www.tangshuang.net 获取更多精彩内容】。而且有了这套模式,把众包模式具体化也是未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。有想象空间的。

【关注微信公众号:wwwtangshuangnet】原创内容,盗版必究。本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。

2016-09-06 5225 ,

为价值买单,打赏一杯咖啡

本文价值52.25RMB
已有1条评论
  1. […] Morningstar的产品开发模式 […]