`
qiujiayu
  • 浏览: 174103 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

开发中的那点事--技术选择

阅读更多

     昨天一同学问我现在开发中用哪些技术?有些惭愧,虽然我一直有去学习或了解一些新技术,但真正用到项目开发的比较少,我的习惯是学习它们的一些思想,它们的架构。
       现在Spring很流行了,但我一直只用它的最基本的功能,IOC,别的没用过,什么AOP我也只是了解过,一些社区也不少人说它很好用。但我至今也不为 之动心,我觉得现在用它的人还是比较少的,如即使我把它用好了,但如果哪天我的代码交给别人来维护时,如果他们没有接触过的话,对他们来说就增加了维护难 度了。
      现在ORM技术也是一个非常热门的话题,这方面的框架也很多,这些框架给程序员带来了些方便,但同时也带来些学习压力,这些框架都不是一两天能学好的。而 且也不一定能真正用好它,最后造成很多问题,可又不知道问题出在哪里,如何去解决它,因为这些是开源的框架,也无法得到一些技术支持,只能自己到网上找些 同僚们是怎么解决的。此时只能耐心地google了。我原来一家公司就用hibernate,经常出现内存泄露,公司集中了大量的人力(找了高好几个高手 去找问题)和物力(给服务器加内存),可到最后还是没有解决这个问题,最后的办法是,定期重启一下JBoss。像hibernate之类的技术,听说在外 包企业中用得比较多,因为它确实可以提高开发效率,而我这人比较追求系统的稳定,所以我自己负责的项目,我从来不用它。
       我觉得我们工作不是为了”追时髦“,看到别人用了新技术后,就去跟风。我们一定要去深入了解它,最后再做决定。如果你确实认可它,那就使用它,也是不错的”拿来主义“。我就很喜欢Log4J,它可配置性强,使用起来简单方便,而且学习起来也很容易。
       在ORM方面,我一直还是喜欢自己能过SQL语句来操作数据库,因为我们在一个系统中,对一个表的操作一般也就是一些简单的CURD,这些语句完全可以只 写一遍,然后复用它。而遇到一些统计报表用的SQL语句时,也没有ORM可以帮助你,索性还不如不用ORM。
      有的人说,ORM在实现数据库移植方面很有帮助。确实它在这方面做得挺不错的,但是在我们实现项目中出现更换数据库的可能是非常之小的,至少我没有遇到过 这样的项目。如果确实有这方面的需求,我们也不用考虑太多种数据库,三种以内就足够了,所以如果是我们手工写SQL语句也不会增加太多的工作量,我们只有 在以下两种情况下要考虑区分SQL语句:
     一、insert into 时,如果要返回主键值时;
     二、使用非通用函数时。

      经常这几年的经验积累,在数据库操作方面我也已经开发了一套自己的框架,为了提高开发效率,我也针对这个框架开发了一个代码生成工具。
     最后总结一下,我们要选择一种技术一定要考虑以下几点:
     一、学习曲线,尽量选择学习周期短的技术。如果学习同期长,有那个学习时间,估计自己都已经开发一套餐更适合我们自己需求的框架来了。以后系统维护的工作指不定会交给谁来做,所以如果选择的技术 学习曲线长,那就会提高维护成本。
     二、易用性,如果不容易使用,不但不能提高开发效率,反而影响我们的项目进度。
     三、稳定性,一个系统最重要的是稳定,如果经常出问题,谁都不想用的。


    最近一直在学习《走出软件作坊》,作者的一想做法确实很值得学习。

    最后为了说明我的想法,在我的博客中的《在JDK 1.5中实现真正面向对象形式的SQL语句3 (含有源码,代码生成工具)》 是有实践中行动之一。。。

0
0
分享到:
评论
1 楼 form_rr 2009-08-20  
楼主道出了心语啊!呵呵!
我现在的项目,struts不用,hibernat不用,spring不用。
只用最基础的东西。

相关推荐

    计算机软件开发规范_GB_8566-88

    ### 计算机软件开发规范_GB_8566-88 #### 一、标准概述 《计算机软件开发规范_GB_8566-88...同时,选择合适的开发模型也是至关重要的,不同的模型适用于不同类型和规模的项目,合理选择可以帮助项目更加顺利地进行。

    火星人敏捷开发手册 2012-12-31(修正了页眉)

    - **迭代计划会(Sprint Planning Meeting)**:每个Sprint开始时进行,团队与产品负责人一起讨论即将进行的Sprint的目标,并从产品待办事项列表中选择合适的工作项。 - **每日立会(Daily Stand-up Meeting)**:每个...

    论文研究-自然人造复合系统的开发原理与途径------以区域大中型沼气能源工程系统开发为例.pdf

    以井冈山西部萍乡市泰华养殖场区域大中型沼气能源工程为例,针对其中沼气能源工程系统开发系列实际问题,通过表函数和选择函数等多种形式函数的结合, 建立系统动力学仿真方程,用沼气开发和应用子仿真模型逐步建模法对...

    嵌入式Linux系统开发技术详解--基于ARM(完整版)

    嵌入式Linux系统开发技术是IT领域中的一个重要分支,尤其在物联网、智能家居、自动驾驶等前沿技术中占据核心地位。基于ARM架构的嵌入式设备因其高效能和低功耗特性,广泛应用于各种嵌入式系统中。本篇将对嵌入式...

    Jeecg-Boot+技术文档_2.0.pdf

    Jeecg-Boot是一款高效的基于...总而言之,Jeecg-Boot是一个强大且全面的低代码开发平台,集成了众多流行的技术,为Java项目提供了快速开发、流程管理、报表设计等多方面的解决方案,是现代企业级应用开发的理想选择。

    uni-app开发介绍PPT

    uni-app框架的开发介绍中,使用uni-app开发的前置条件是,开发者需要具备小程序和Vue.js的开发经验。如果开发者没有接触过小程序和Vue.js,可以查看官方文档,然后回来学习uni-app。uni-app的开发需要遵循Vue单文件...

    基于LabVIEW的ARM Cortex-M3嵌入式开发宝典---STM32F103

    综上所述,《基于LabVIEW的ARM Cortex-M3嵌入式开发宝典---STM32F103》是一本全面且实用的手册,旨在帮助读者掌握STM32F103系列微控制器的嵌入式开发技术。通过详细介绍软件工具、硬件资源以及各种模块的驱动实现...

    Google官方Android开发教程-入门篇-中文翻译

    标题和描述中提到的知识点主要包括: 1. Google官方Android开发教程的翻译版本: - 这些教程是根据Google Android开发者官网的Training教程翻译而来,目的是为了帮助那些英文阅读能力有限的开发者更好地理解和学习...

    泛微E-CODE前后端开发相关资料

    开发者需要掌握Hybrid App或原生App的开发技术,如React Native、Ionic或Swift/Objective-C,以实现跨平台的用户体验。 7. **测试与调试**:开发完成后,对软件进行充分的测试是必不可少的。开发者应了解单元测试、...

    Cortex-M4技术参考手册

    - **软件开发工具**:选择合适的IDE和编译器,充分利用Cortex-M4的硬件特性。 ### 结论 Cortex-M4作为一款高性能的微控制器内核,在众多领域都有着广泛的应用前景。通过对本技术参考手册的学习,开发者能够更好地...

    ARM-Cortex-M底层技术

    ARM-Cortex-M底层技术是关于ARM公司Cortex-M系列处理器的深入探讨,涵盖了半导体工艺、集成开发环境(IDE)、工具链、分散加载、启动代码以及硬件设计等方面。Cortex-M系列处理器是专为嵌入式应用设计,具有低功耗、...

    开发技术的选择四部曲教程

    ### 开发技术选择四部曲教程 #### 一、引言 在当今快速发展的IT行业中,选择合适的开发技术对于项目的成功至关重要。一个错误的技术选择可能会导致项目延期、成本增加甚至是失败。因此,开发者需要掌握一套有效的...

    Cortex-M0技术参考手册

    ### Cortex-M0技术参考手册知识点解析 #### 一、Cortex-M0处理器概述 Cortex-M0是一款由ARM公司设计的精简指令集计算(RISC)微控制器内核,适用于低成本、低功耗的应用场景。它具备了ARM Cortex系列处理器的一些...

    嵌入式软件开发流程----很好的流程资料

    总的来说,嵌入式软件开发需要综合考虑硬件和软件的协同,选择适合的开发工具和环境,并掌握交叉编译和调试技术。这一领域涉及到多方面的专业知识,包括处理器架构、操作系统、编程语言以及调试技巧,是IT行业中的一...

    Cortex-A7官方技术手册

    作为ARMv7-A架构的一部分,Cortex-A7旨在提供高效能计算能力,同时保持极低的能源消耗,使其成为低成本和电池寿命敏感应用的理想选择。 Cortex-A7的设计采用了多级缓存系统,包括L1数据缓存、L1指令缓存和L2缓存,...

    UG585 - Zynq-7000 SoC Technical Reference Manual (ver1.12.2)-技术参考手册.pdf

    ### UG585 - Zynq-7000 SoC 技术参考...通过这份技术参考手册,用户不仅可以深入了解Zynq-7000 SoC 的内部架构和特性,还能获得宝贵的实践指导,这对于从事嵌入式系统设计与开发的专业人士来说,无疑是一份宝贵的资源。

    NC-UAP客户化开发培训实例教程V5.X

    ### NC-UAP客户化开发培训实例教程V5.X ...以上内容概述了《NC-UAP客户化开发培训实例教程V5.X》中的关键知识点,涵盖了从产品入门到高级功能建模的各个方面,旨在帮助读者全面掌握NC-UAP开发的核心技术和实践方法。

    iOS开发进阶-完整版

    通过以上这些知识点的介绍,《iOS开发进阶》这本书旨在帮助初级开发者快速掌握iOS应用程序开发的核心技术和最佳实践,并能够通过实战项目进一步提升自己的技术水平。无论是对于想要深入了解iOS开发细节的专业人士...

Global site tag (gtag.js) - Google Analytics