技术选型注意事项

最近一个朋友比较烦恼,原因是他们的系统换数据库了,如果仅仅是换个数据库倒是没啥大不了,撑死了改个数据库的驱动,改改连接字符串就得了,这都是分分钟的事。但是悲哀的是表结构也得到了较大的调整,“累觉不爱”来形容这为朋友对换数据库这件事的感受再恰当不过了。而笔者对这件事有几点体会。

错误发现的越早浪费的时间越少

其实如果后面Dao实现用的是Hibernate或者是JPA那么在开发阶段换数据库就不再是什么麻烦的事情,然而他们用的是Ibatis(或者是MyBatis?忘记哪个了who care~)所以在换数据库的时候实体得换、VO得换、界面得改、sql得改,累觉不爱啊!

以前对Hibernate有些偏见,感觉其也不像传说中的那么方便(官方宣扬将开发者从sql语句中解放出来),简单的sql是可以,但是遇到复杂的sql还是得写,而且对于Hibernate后期维护修改表的时候也得改代码,现在想想其实无论是jdbc还是Hibernate在维护阶段都需要改一定量的代码,问题在于哪个能更高效、准确的开发和维护代码。

Hibernate的优势是将错误放在编译之前(如果实体错了启动就会报错),错误出现的越早越好解决相应的浪费的时间越少。Ibatis中sql语句如果错误或者配置文件错误得等到服务器启动运行的时候才能发现,这就使得开发人员把大部分时间都浪费在了重启服务器上面了。

对开发者而言时间分两种:开发的时候时间即从0到1的时间,后期维护的时间即从1到1.5的时间,在后者无特别大的差别的情况下(不论用哪个框架修改表结构的需要对代码进行调整)开发时间越少框架优势越大。

没有思想性的重复的动作应该交给工具去做

如果框架本身不完美那么就给他配一个能令他完美的工具(比如eclipse当中无尽的插件),这样可以避免不必要的错误。人和计算机比起来计算机还是比较靠谱得,毕竟人的核心是靠激素,计算机的核心是二进制。

人类进步的标识之一就是社会分工越来越明确。很多人写代码的时候纯粹靠自己手写,比如在写spring配置事务的时候(那个表示类中方法的字符串)不知道有多少小白浪费了多少时间,其实这些东西应该让计算机来做,因为这不包含思想,纯粹的是体力劳动。很多人感觉自己能手写出一个jdbc连接字符串很厉害,的确你非常的(神)厉(经)害(病)。有工具为什么不用工具呢?想到中国的小孩能珠心算,能背诵圆周率,天哪,我已经无力吐槽了。

是否能为公司节约成本是鉴定框架优秀是否的唯一标准

如果一个框架可以让开发人员快速掌握,如果一个框架在使用的过程中避免开发者犯低级错误,如果一个框架在后期维护的时候可以快速修改原有的代码……。归根结底如果一个框架能为公司节约成本(人员成本,时间成本,开发成本,维护成本等等)那么这就是一个优秀的框架。

拿Hibernate与Ibatis来说同样的一个insert语句笔者坚信后者会给开发人员更多的机会犯错,同理拿JSF和SpringMVC来说笔者依然坚信后者会让开发人员在细节上浪费更多的时间。

别跟我说你是高手,犯低级错误的概率极低,试问多少公司能雇佣的起成群的高手。框架的选择一定要和公司利益挂钩一定要公司的成本。

别跟我扯效率,100个公司80个公司不需要特别考虑性能,彩票还没买就考虑500万怎么花是不是有点儿自欺欺人了。

Dota中一直有人说“没有最牛X的英雄,只有最牛X的玩家”但是不可否认有些英雄天生就是做后期的料

每次类似这种框架比较的文章最后为了避免被无辜地吐槽总免不了说那么一两句留后路的话,例如:“框架没有好坏之分啊”,“任何技术都有其优缺点啦”,“没有最好的技术,只有最适合的技术啦”等等吧。这里换换说法,“对于高级开发人员框架没有好坏之分”,“对于高级开发人员任何技术都有其优缺点”,“对于高级开发人员没有最好的技术,只有最适合的技术”,aha这样就好多了。

技术选型注意事项,布布扣,bubuko.com

时间: 2024-10-27 18:12:14

技术选型注意事项的相关文章

【JavsScript】JavaScript MVC 框架技术选型

你很喜欢Gmail和Trello之类的单页面应用,但是不太确定该从何开始.也许你的JavaScript代码是如此的杂乱无章,以致于你很想在下一个项目上尝试下JavaScript MVC库和框架,却苦于没有头绪?我正在撰写一本单页面应用的书,所以我阅读了大量网上的相关资料.在这里我尝试提供一些看法,希望可以帮助你下决定. 简介 这里讨论的是时下最热的框架,AngularJS.Backbone.Ember和Knockout.同时提到了Batman.CANjs.Meteor和Spine,但是没有详细展

移动开发主流框架的选取以及技术选型方案解析

传统的移动开发模式主要分为三种,Native App,Web App 和 Hybrid App,对于目前微信端比较火爆的开发平台小程序,或者其他厂商推广的流应用.轻应用等开发方式,基本都离不开H5的支撑.目前App前端开发主流框架RN,Ionic,Vue都发展得不错.但是业务需求的快速发展,有些框架并不能够满足他们的需求,在不同的业务场景,受诸多约束因素的影响,研发团队应该如何在前端框架上做好选型? 根据目前51CTO社群(群号312724475)中大部分移动开发领域的开发者实际项目经验,我们邀

创业公司的技术选型

技术选型对创业公司至关重要,好的选型会让你少走弯路,产品更快推向市场,比竞争对手更快赢得客户,获得更多融资,有更多资源投入产品研发和市场扩展 … 如此往复形成良性循环.相反,每一个错误选型都会带来巨大的技术债务,我知道一些创业公司把 demo 时的选型一直用到 A 轮甚至 B 轮,然后不得不停下业务花几个月时间去重构整个系统. 可以说,对初创团队的技术 leader,最重要的事情就是选择正确的技术体系. 下面是我们技术选型的三个原则: 一.利用好创业公司技术选型的后发优势 大公司的基础设施往往超

atitit.技术选型方法总结为什么java就是比.net有前途

#----按照不同的需要有不铜的法... 一般有开发效率,稳定性上的需要.. 作者 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected] 转载请注明来源: http://blog.csdn.net/attilax #-----常规选型..一般还是java+php比较好.. 长期性:把需要都罗列出来,然后把那些在长期还用得到的标出来. 一般来说.console是最稳定性的...前端gui/web是不稳定性的...后端就是更好.. 查看历史:: 会晓得,为什么php会

技术选型--因地制宜、量体裁衣

——摘自<HTML5移动Web开发实战> c12  12.2 1.技术成熟度 一项技术是否成熟,决定了你的应用是否稳定.特别是新的技术通常意味着缺乏稳定性,在需要保证正确性和稳定性的场景(比如面向金融或者面向数量巨大的最终用户的应用),选择新技术时一定要慎重再慎重,对于一些不关键的容错性高的场景(比如内部系统),选择新技术的风险就会小很多. 2.文档 由于程序员基本都是由人类构成,因此文档好坏基本上制约着程序员的工作效率.无论你看到某项技术吹的再天花乱坠,请一定记得看看它的文档是否健全优雅,示

企业开发技术选型

http://blog.csdn.net/jwdstef/article/details/23767033 企业级开发我们在开发前需要进行技术选型,选择合适的技术,会让我们事半功倍,这就是为什么站在巨人的肩膀我们会看的更远.下面是3年前写的,过了3年出现了很多新的技术和框架,我会尽快更新出最新的技术选型,希望对大家有所帮助. 2.1. 基础架构 IOC Container: Spring, Guice 我们需要IOC Container的依赖注入作为胶水,把其他工具包粘在一起.还需要它的AOP,

JavaEE 技术选型建议,服务器配置,部署策略

基础设施环境 # 整体采用 centos6.5 + nginx + tomcat7.0 负载均衡:nginx 配置,使用 nginx 作为负载均衡,权重配置, 在web层做到水平扩展. 以及配置日志格式,支持db.cache调用次数,响应时间,做全站的监控. 支持对应参数的配置,方便日后做大数据营销的规划,对应的hive表,做分析使用 web层:采用一主一备. 建议内存16G,cpu 8 core,硬盘其它特殊要求,优化tomcat的jvm参数项. db层 :数据部署建议采用一主一备,建议内存1

基于cocos2dx的2D手游美术资源制作技术选型(2)--动作编辑器选择

Cocostudio是cocos2dx官方提供的游戏制作工具,其中包含了动作编辑器,其编辑好的动画导出的文件有三种:Atlastexture,json的AtalasTexture描述文件和plist动画描述文件,可以使用LibExtension Amature加载和播放. 但Cocostduio的动作编辑器也有一些不足的地方: 1. Cocostduio的崩溃率较高,很容易造成编辑过程中的数据丢失 2. Cocostudio的动作编辑方式对美术来说学习成本大,使用上也多不方便,美术对此非常抗拒

AutoLayout技术选型和应用

前言:这篇文章是笔者在项目中对布局技术进行技术选型和应用的相关介绍,供大家参考. Question1:什么是autoLayout? Answer1: autolayout是苹果从iOS6开始推出的旨在优化.简化UI布局相关工作的新框架,其理念是抽象出约束的概念,将其作用于view,而不再需要手动设置其frame. 个人理解其中的分别就好像面向对象编程和面向过程编程之间的分别:能够体会面向对象编程的好处,我们也不难领会autolayout带来的变化:我们唯一需要处理的,就是约束.其后的一切工作,苹