2019夏令营软件设计(三):技术选型

2019夏令营软件设计(三):技术选型

技术选型——分类

  • 基础设施选型:云平台或IDC(Internet Data Center)、编程语言、数据库等
  • 框架和库的选型:前后端的开发框架、核心类库等
  • 中间件选型:负载平衡、消息中间件、缓存中间件
  • 第三方服务选择:第三方的推送、短信等

项目所涉及的一整套技术、方案、规范或者产品的选型。
这就需要我们更仔细的取权衡各种技术、各种组合的利弊,做出取舍。

技术选型

一、顶层架构

Linux/Windows平台、CS/BS架构、大数据架构、应用领域(游戏、互联网、传统行业等)

二、CS中的Client的技术选型

1、GUI开发技术

(1)微软技术体系
MFC、Win Form、WPF、UWP
(2)Java技术体系
Java AWT、Java swing、javafx
(3)Python技术体系
Kivy、P有Q他、P有GUI、LiBavg、wxPython

三、BS中Browser的技术选型

1、微软技术体系

Asp.net、Asp.net MVC、Silverlight、IIS等

2、Java技术体系

JSP+Servlet+Struts+Hibernate+Spring、tomcat等

3、其他技术

html5、js、Ajax、CSS3、http/https
js框架:jQuery、Angular JS、Bootstrap、jQuery UI、Ext JS、Dojo、Prptotype JS(DOM解析、Ajax处理、JSON支持、浏览器兼容)

四、CS和BS中的Server端的技术选型

1、微软技术体系

ASP.NET WebService、WCF、web API等

2、Java技术体系

3、数据库访问计数

(1)数据库产品
Sql Server、MySql、Oracle、DB2、Postgre、Redis等
(2)数据可访问技术
JDBC、ADO.NET、ORM等

五、其他

  1. 编码规范定制
  2. 代码管理技术
    SVN,CVS,Git
  3. Bug管理技术
    jira、BugFree
  4. 单元测试技术及自动化测试技术
  5. 设计模式及设计模式的六大原则

技术选型——影响因素

一、项目因素

明确项目本身的性质,包括项目的规模、重要程度、时间要求等等。
如果是一个小规模的实验性项目,那么尝试一些新技术也未尝不可。
如果时间要求非常紧,那可以考虑基于开源或商用的程序修改。
另外,项目的成本和预算也是必须考虑的。如果预算足够,也可以考虑购买商用程序或者第三方服务。

特别要注意的是那些非功能性的需求,例如对并发性、实时性、可用性、数据统一性、安全性等方面的需求,往往对技术方案的选型有很大影响。
例如支付相关的应用,对数据一致性有非常高的要求,那核心的支付数据的存储,就会倾向选择Oracle、PostgreSQL这种强一致性的数据库,而不会去选择MongoDB(据说马上也要支持事务了)

二、团队因素

技术选型一定要考虑当前团队人员的技术组成
对于一些比较基础的技术的选型,比如语言和框架、数据库等等,往往最合适的选择就是团队最熟悉的技术。如果选择不同的技术的话,那就要考虑下团队是否有人能hold住了。

团队的发展时期对于技术选型也会有一定影响。对于早期团队,大多数员工都是喜欢创新;团队发展到一定阶段,往往会选择一些比较大众的、经过验证的技术

技术选型要保持开放。需要考虑团队人员的喜好,但千万不要因为某几个人的个人喜好,来决定技术的选型。

三、技术因素

技术特征(易用性、可维护性、可扩展性、性能等)、技术难度、社区活跃度、架构匹配和演化等等。
亲自实验一下或者做一些测试,有自己的体会。
技术发展有其内在趋势,Gartner每年都会发布一个Hypter Gartner(技术成熟度曲线)来标记各种技术的发展阶段;另外一个很好的参考是ThoughtWorks的技术雷达
技术产品和当前架构的匹配程度

四、其他因素

商业策略(诺基亚事件)等等

技术选型——步骤

参考步骤

  • 首先要明确选型的需求和目的,最好能列出必须要考虑的各种因素以及评判标准。
  • 寻找候选技术或产品,此时范围可以尽量广。
  • 进行初步筛选
  • 详细的调查和分析,做一些小Demo验证可行性
  • 最终决定

技术选型——重要点

  • 一定要进行可行性分析,如果不太确定,做个Demo验证一下老技术和新技术的抉择;不要有思维定势,习惯性的使用某些技术;不要过于追求新技术。
  • 需考虑未来趋势、可替换性。
  • 架构尽可能统一。
发布了11 篇原创文章 · 获赞 9 · 访问量 2460

猜你喜欢

转载自blog.csdn.net/weixin_43553694/article/details/96132754