【51CTO.com原创稿件】经历国庆七天假期,又经历了七个工作日,在大多数人们忙不迭度周末的时候,CTO训练营第六课又开课了。
这期的CTO训练营活动,培训的主题只有一个:如何在公司不断发展的过程中,确保技术能够灵活地因需而动?这个话题非常有实战性,因为无论公司是刚刚组建还是发展到一定规模,语言的选择、架构的调整一直伴随其中。那么当面临老系统重构、拆分亦或是解耦,管理者们应当注意哪些问题?随着业务的发展,时间的推移,IT技术逐步在进化,在进化演变的过程中又应该如何把握,应该用什么样的思想去迭代产品?七乐康技术VP曲毅给出了一个新的思路:用进化的思维做架构,给与会者们开辟了更多思考方向。
语言选型需要注意6大因素
曲毅,从事互联网研发工作12年,曾在高阳、空中网、新浪、乐蜂网等互联网公司担任构架师、高级技术经理、技术总监等职位。他对HTML5技术有非常深刻的认识和理解,有着丰富的实践经验,同时也是HTML5引擎Crow5的创造者。
“是什么在左右你选择语言?”曲毅一开场就抛出了一个问题。经过六个小组的简短讨论,最终曲毅在白板上将选择语言需要考虑的问题归纳成六点。
一是团队。训练营的一位小伙伴表示,招到优秀的人才最难得,***是能招募一个靠谱的团队,有了团队,语言的选择就顺理成章了。
二是成本。这里面主要是时间成本和质量成本。曲毅认为此外还需要考虑人员培养的周期、学习的周期、团队配合的周期,以及人员流失带来的人力成本。
三是控制。选择了这种语言能不够始终保持控制度。
四是项目特点。根据不同的项目需求,最终选择最适合这个项目的语言。
五是技术健壮性。所谓技术健壮性主要包括技术是否安全,文档是否健全,以及活跃性,例如这种框架社区是否活跃,是否有持续性。
六是技术多样性。产品合作的需要取决于团队语言的多样性,曲毅认为前期搭建团队时,采取的语言***要统一,但是后期团队发展起来后,***能够有多样语言,因为经常会与外部合作,语言的多样性可以带来更多的选择。
好的架构是设计出来的,还是改出来的?
“好的架构是设计出来的,还是改出来的?”曲毅又抛出一个问题,***他谈出自己的观点:长远地看,架构是改出来,短期地看是设计出来的。
他解释道,企业发展是从无到有,从小到大的过程,而企业产品演化的方向同样也是变化的,而且有时间和成本的限制,因此架构在前期、中期、后期需要考虑的点都不尽相同,应当因地制宜地选择语言,选择合适的容器,合适的架构。“在我看来,做架构就是做技术创业。”
庞大复杂的系统如何进行解耦?
“解耦主要用的逆向思维,这一点和写游戏外挂非常相似。”曲毅表示,“那么解藕是否有规律可寻?”答案显然是肯定的,曲毅给出5个方法,根据这5个步骤就可以逐一替换拆分出的模块。
***步,抽象+分层是一种解决方案,采用代理模式,从整体把握,按照业务拆;第二步,在模块内,熟悉系统,研究数据流。用逆向工程模拟交互接口,猜表;第三步,逐一替代,按照功能和数据流向对接。需要注意的是,前期涉及数据同步、脏数据等问题,需要写外挂处理脏数据;第四步,针对脏数据,收集bug。使用数学归纳法穷举问题,逐一修复;第五步,***打破现在方案,根据对现有业务的需求,重新设计,曲毅表示,这里要注意,是按照业务需要设计,并非技术架构。
主流电商业务流程介绍
“在主流电商平台中,若需精细化管理各个业务流程,一般会涉及到上百个系统,系统之间的交互接口更是不及其数,任何系统环节出现问题,都会对业务带来或多或少的影响。”曲毅以电商为例。
系统解耦案例2
设计的进化
曲毅用发生在自己身上的真实案例给大家讲解设计前端,写代码的方法论。“如果都采用标准化语言规范和配置方式,给我30分钟就可以教会大家使用JS语言”
他的方法是首先要编写公用模块给大家用,编写规则引擎大家可以按照相同方式编写。***阶段要编写完整的模块,并且书写风格优良。讲到这里,曲毅分享他的心得,他认为少写代码就可以减少复杂度,约定模式是一种很好的方式,用配置的方式可以减少代码的编写,而且降低具体细节的复杂度
***他提醒大家,要回归本真,标记替代配置,这样更简洁,更容易理解。
“学会忘记,也许设计的本真就在开始的时候,就在你觉得简单的时候。”
轻松热闹的沙盘活动
瀚海商学院刘达开,是一位有丰富管理经验的老师,在下午沙盘活动环节,也给学员们带了轻松交流交流和项目管理的经验分享。
刘达开,瀚海商学院资深讲师、管理咨询师,是瀚海商学院沙盘【地租交易】【超级公司】【捕鱼达人】研发者,主要研究方向是“PDP测评”“工作压力和情绪管理”“沙盘管理”,掌握企业管理学、心理学、人力资源管理等知识,拥有丰富的教学经验。
他首先让大家将座位调整成一个圆圈,每两位学员开始互相介绍自己,然后通过一两个互动的小游戏,让大家在轻松愉悦过程中认识彼此。
小伙伴们开始面对面互相握手介绍自己
在体验活动中,刘达开将学员分成7个小组,每个小组自己领取了不同形状不同颜色的任务卡,只有小组之间相互合作,互相共享信息,齐心协力才能完成。最终学员们经过“激烈”的沟通,顺利地完成了任务。
【CTO 训练营】是51CTO高招旗下,面向中高端技术管理人才,提供技术和管理的学习以及人脉和资源平台,旨在打造技术经理的MBA,为行业输送更多CTO人才,第三季CTO训练营课程内容参照CTO胜任能力以及延展能力设计,包含技术与架构、技术与管理、商业运营、敏捷个人管理4大模块,聘请一线互联网平台 CTO担任导师,完成为期12天的课程学习之后,参与毕业典礼,辅修学分,完成结业。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】