什么是企业级项目开发

  "企业级项目"、企业级项目开发,Java也是企业级项目开发,这个我们到处说、听,每天被我们挂在嘴边,可是到底什么项目才算是"企业级"?自己一直做的小项目或者大项目到底算得上企业级吗?也就GXPT算是企业级项目吧,接下来和大家交流学习!

1 . 项目开发的现状

  一直以来,大小项目在咱们提高班做了算是不少的了,我们都在不停得做项目,赶项目。相信从大家开始做项目到现在,做过了很多大大小小的项目,或多或少也有让自己很引以为豪的成功了的项目。现在大家回头想想,我们的项目一般是怎么做出来的!即便是每个开发小组是不同的,但是在项目的期限、客户需求变更中、各个督促下,我们的起码的实现、整体的设计还是差不多的,大同小异吧,拓展性、灵活性差了些。

  每次项目到来,几次会议之后,项目就开始了,开始分配人员,开始分析一些从客户那里拿来的需求,然后一些骨干的开发人员就开始为项目搭架子。于是一个项目就算是进行起来了。谈到了为项目搭架子,专业点说就是做架构了,说是做架构,其实就是把项目按照惯例分割为几个逻辑层,至于说这个架构好不好,有什么风险,是否可以适应以后的变化,采用的技术的风险和可行性分析,这些很少考虑,原因很简单:一般的都是这么开发的,应该没有什么大的问题。确实,很多的项目也确实是这样的开发的,而且很多也成功了。这些无可厚非,至于说什么标准不标准,是否遵循了什么开发的原则,没有多少人在乎,不管怎样,项目是成功了。

  项目开发中,很多的原则我们是很清楚:什么单一职责,依赖反转,什么可测试性,维护性.....很多时候,在coding的时候,这些原创反倒成了多余,项目最后成为了功能代码的堆积,特别是在赶项目的过程中,代码堆积的效果就更加明显了:只要把功能搞定,其他的以后再说。可以往往这个"以后再说"就成为了"永不再说"、凑合着能实现就行了,这个也无可厚非。

  就这样,一年又一年,开发项目,做项目,赶项目。主键的很多人随着项目的进行对做软件开发后期会变得没有那么多兴趣:原本以为软件开发是一种高智商的活动,现在发觉有点像是体力活。一年一年,一月月的,我们为一个个不同的客户开发出一个个不同的系统。

通过资料表明:公司中……

  相信很多公司也常常提出很多很"诱人"的口号:通过做大量的项目,积累和开发通用组件,组件越多,以后开发就是仅仅只是堆积木了....但是真正的项目中,客户不停在催,上头也在催,最后就没有人顾及什么通用不通用了。项目开发是越做越累,相信这也是很多开发人员转行和转型的原因之一吧。

  

2. 什么是企业级项目

  学Java这个接触的越来越近了,时常思考这个问题?企业级项目是什么? 为一个企业,机构,客户公司开发的项目就算得上是企业级项目了吗?一个很大的项目就是企业级项目吗?一个小的项目就算不上是企业级项目?一个代码成千上万上十万的代码是企业级项目吗?茫然!

  其实,一直以来,我个人也对什么是"企业级"的概念不是很清晰。只是天天是在这么说,米老师也给我灌输这样企业级开发的思想,刚开始还是真有点满然,听着听高深哈。

   说到企业级项目,随着而来的有很多概念:企业级架构,企业级开发。

  但是不管怎么说:企业级这个概念和项目的大小是没有什么很大的关系的,甚至可以说是几乎没有什么关系。

  其实企业级项目其实就是一带着一种"企业级"的思想来做项目。

  在文章中的第一部分,我们到了现在我们做项目的方式:代码的功能"堆积"。通过这种堆积出来的代码就仅仅只是用于这一个项目,对于以后其他的项目几乎是没有什么用处的,也就说代码的重用行不够,而且往往在一个项目中,很多的代码都是杂七杂八的,很多相似的功能都是各自搞出一套代码。诸如之类的问题,导致项目越做越类,很多美丽的口号化为泡沫。

  企业级的项目起码有以下几个特征:

  稳定性

  灵活性

  隔离性

  重用性

  维护性

  相信这些特性大家都不陌生,这些特性我就不具体的解析,大家都清楚。说了这些多,可能大家认为我说的是废话,但是有一点可以说的:现在我们开发项目确实很多的时候忽略了这些东西,因为这个忽略,确实使得项目项目的开发加快,但是从长期的来看,项目开发还是越来越累的。如果在开发的时候,每次带着一点点这样的思考,尽量写出符合那些特性的代码,慢慢的,一种"企业级的心智"就慢慢出来了,一个很类似的比喻:在项目中,遇到了一个很难的技术问题,我们往往花很多的时间来攻克,最后终于搞定。确实这个攻克的过程我们从思维上可以这样分析:我们思维和问题的答案之间隔了一道墙,我们一次次的尝试各种解决方案去攻克问题的时候,我们的思维一次次的在撞击这道墙,最后墙被撞破,我们也得到了问题的解决方案。

  同理,我们在项目中带着"企业级"思维,我们就在一点点的撞击那道"墙",最后的结果就是:通用的功能被封装为了通用的组件,为以后的项目的留下积累。

总结

  这里我自己的感触,本人的"企业级的心智"也没有,逐步的积累吧,但是因为带着这个思想作项目,在人事的维护、永和的维护、善良公社的开发、考试系统中出现问题的修复都深刻体会到了,企业级的思想可以很好地解决实际中遇到的代码重复修改、网站重新发布、功能的灵活、组件的灵活添加,通过通用性网站网站米老师也是一遍一遍耐心的给我深化这种开发的理念,个人认为思想有了提升,而且还真的得到了不少通用的组件,虽然说组件善待完善,但是已经有了些甜头。对系统后期的维护的成本也是大大的降低,企业级开发思想在Java学习中面面俱到啊,GXPT中师哥们也利用这种企业级开发的理念在大显身手啊。

  

  今天只是简单谈谈自己的心得,接下来大家可以探讨探讨,欢迎踊跃评论啊!

 

J2EE学习从菜鸟变大鸟之八 企业级项目开发的思考的更多相关文章

  1. J2EE学习从菜鸟变大鸟之九 深入浅出理解 Servlet-----实例解析

    关于Servlet的基础内容在前面已经和大家分享过了,参考J2EE学习从菜鸟变大鸟之七 Servlet,现在结合到DRP中学习,深刻的体会Servlet起到了枢纽中转的作用,控制逻辑(到MVC中更像是 ...

  2. J2EE学习从菜鸟变大鸟之六 EJB(Enterprise JavaBean)企业级Java组件

    EJB (EnterpriseJavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准.其特点包括网络服务支持和核心开发工具(SDK).其称为Java 企业Bean,是 ...

  3. J2EE学习从菜鸟变大鸟之四 JNDI(Java Naming and Directory Interface)

    掌握 J2EE 是件不是很轻松的事哈,但是很有意思,抽象抽象哈哈,因为它包含的技术和缩略语在不断地增长.Java 命名和目录接口(Java Naming and Directory Interface ...

  4. J2EE学习从菜鸟变大鸟之七 Servlet

    Servlet现在自己的理解是一个控制器,简单的可以理解为不同的JSP页面由用户发送过来的请求可以由Servlet控制器来控制其向下调用的方向(结合三层好理解),但它比较特殊,因为它通常会从外界接收数 ...

  5. J2EE学习从菜鸟变大鸟之五 JDBC(Java Data Base Connectivity)

    JDBC刚开始学习这个的时候看到了,以为是ODBC呢,很是相似啊,总的来说还是基本上一类的东东,但是还有一些细微的区别,下面和大家一起分享学习. JDBC(Java Data Base Connect ...

  6. Java学习从菜鸟变大鸟之一 hashCode()和equals()的本质区别和联系

    在学习java,根据视频做实例的过程中,对equals和hashcode两个方法理解稍微深刻一点,主要是它们两个很容易混淆,容易出错,自己又通过网上的资料学习,和大家分享 equals()方法 equ ...

  7. Java学习从菜鸟变大鸟之三 多线程中Thread 和Runnable的区别与运用

    多线程机制是java中的一个特点,掌握它对后面的知识的理解至关重要,是java工程师的必备知识,多线程指在单个程序中可以运行多个不同的线程执行的不同的任务,线程是一个程序内部的顺序控制流.进程是静态的 ...

  8. Java学习从菜鸟变大鸟之二 输入输出流(IO)

    在软件开发中,数据流和数据库操作占据了一个很重要的位置,所以,熟悉操作数据流和数据库,对于每一个开发者来说都是很重要的,今天就来总结一下JavaI/O. 流 流是一个很形象的概念,当程序需要读取数据的 ...

  9. NET中小型企业级项目开发架构系列(一)

    前端时间我们开发了基于Net的一套搭建sprint.NET+NHibernate+MVC+WCF+EasyUI等中小型企业级系统开发平台,现在把整个开发过程中的步步进展整理出来和大家分享,这个系列可能 ...

随机推荐

  1. ubuntu上的附件-终端和用快捷键ctrl+alt+f1 有啥区别

    ctrl +alt +Fn 打开的是模拟终端,简单说来,linux系统一开机会自动打开6个模拟终端,然后自动切换到其中一个(一般来说是切换到图形界面的那个也就是说窗口管理器是在这6个模拟终端中运行的) ...

  2. Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录区别

    Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统级的目录,可以理解为C:/Windows/, /usr/lib理解为C:/Windows/System32./ ...

  3. AQS简简单单过一遍

    前言 回顾前面: 多线程三分钟就可以入个门了! Thread源码剖析 多线程基础必要知识点!看了学习多线程事半功倍 Java锁机制了解一下 只有光头才能变强! 本来我是打算在这章节中写Lock的子类实 ...

  4. 面向对象+canvas 倒计时

    效果参照网上的,用面向对象改写了一下,只写了自己需要的部分. 1.效果: 实现: //html <canvas id="canvas" width="800px&q ...

  5. eclipse中创建完整的maven项目

    使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 ...

  6. centos 7 安装nvidia显卡驱动

    How to install Nvidia drivers in CentOS 7 - Tutorial :  http://www.dedoimedo.com/computers/centos-7- ...

  7. PHP MySQL 插入数据

    PHP MySQL 插入数据 使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据. 以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 ...

  8. 安卓高级 WebView的使用到 js交互

    我们先来学习 怎么使用再到用js和安卓源生方法交互 WebView简单使用 此部分转载并做了补充 原博客 原因:比较简单不是很想在写,我只要写js交互部分 WebView可以使得网页轻松的内嵌到app ...

  9. Useful command for Docker

    Copy file from Container to Host: docker cp <containerId>:/file/path/within/container /host/pa ...

  10. Dynamics CRM2016 Web API之获取查找字段的text及选项集的text

    本篇再来介绍个web api的功能,关于lookup的text这里只是略带,因为有expand,现有的web api就能实现,主要提的是选项集的text,我们通过基本的查询api查出来的字段值只带有v ...