写代码的最高境界 就是不用写代码
大家都知道软件就是靠代码执行的,不写代码 写啥?不是不写代码 而是最高境界是不写代码。
要达到最高境界 就需要不断磨练,积累;
大家都知道在工业制造业领域,如飞机、汽车等领域很多配件都市采用成熟可靠的配件,就是所谓的COTS。
那也是经历了N年后才不断完善形成标准,软件业虽然没有银弹,但并不是就没有良药。
但只要深入每个细分行业,基于行业研究,一样可以基于该行业研发相应的COTS组件,而不是从零开始。
怎么达到最高境界呢,首先
一:正确的做事 强调战术
1. 要有技术高手 奠定公司所属领域通用技术、基础技术
目的要做到技术与业务分离,技术独立与业务的演变,最终形成自己的易用、可靠的技术平台。
达到技术最大化复用,后面的日子新增代码量就原来越少了。
我想微软、INTEL、甲骨文、GOOGLE、苹果等牛逼公司的技术平台绝不是基于每个开源形成的。
对于有实力的企业,基本都做到了技术与业务分离,形成了自己的技术平台。如华为就具备了这一点。
对于没有太多实力的企业,可以基于开源产品来改进完善,但一定要先消化再扩展,而不要随心所欲,
今天用这个改天用这个,这样很难有积累,很难复用。
要实现高度重用的技术平台 需要优秀的技术牛人 或 架构师或高级程序员,总之对技术非常执着,没有偏见。
能包容一切技术、看透一切技术。
2.要有领域高手 奠定公司所属领域的业务模型、业务平台
一个技术高手,关起门来可以开发一个GOOGLE,一个非死不可,但很难开发一个财务软件,一个ERP软件,
因为行业软件跟业务紧密相连,只有深入一个行业才能抽象出该领域的业务模型,且业务模型最终也要形成
自己的业务平台,达到业务复用。
要实现高度重用的业务平台 需要优秀的需求分析师或产品经理+架构师
实现业务平台的难度必技术平台的难度更大,需要多个角色的牛人才能出色的完成。
这个阶段不管是技术平台还是业务平台都是复用的基础。
二:做正确的事 强调战略
有了可复用的技术平台+业务平台,后续的任何产品和项目都基于此研发。
这个阶段主要是设计,设计核心四个字“分而治之”
1. 构想该产品或项目的概念架构,理想的,远大的
2. 运用物理架构设计软件在现实中得部署
3. 运用逻辑架构 分层、分子系统、分模块、分组件、分包等
分到每个独立的模块都能采用COTS来完成,那就是最高的境界,不用写代码,即可RUNNING。
任何软件系统最终都可分为
实体对象---对应领域的数据类 控制对象------对应软件的控制流 边界对象-----对应软件的输入输出
每一个类别设计时尽量最大化利用现有的技术平台+业务平台