前面介绍了创业型软件公司的工作模式,这里详细介绍下如何实施,第一步是先要搭建环境,有了环境才能开展工作。
整个软件项目分为四个环境 开发本地环境、开发环境、测试环境、IDC环境。和传统C++开发不一样的模式是多了第一个开发本地环境。这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发。对于mac和linux下直接使用软件并且开发的中国开发者还是少之又少,这套架构就这个现状做出来的。如下是环境搭建架构图:
从环境来说:
一、开发本地环境、开发集成服务器搭建。 前端开发者、后台开发者。
前端开发用的最多的是photoshop和dreamweaver。在做psd之前大部分是不会协同开发的,只有整个文件传递过来过去。html切割的时候可能就会多个人协同开发了。这个时候需要一个集中ftp服务器、svn服务器。svn服务器用于保存版本代码库,用于保存历史修改的版本和开发人员协同。ftp服务器适用于及时修改时保存上传到预览服务器进行预览。看到这里有人也许会问,我直接合并svn和ftp不行吗?其实有这样的问题,如果直接提交svn,后台开发人员就会从svn看到。本来是前端的集成协同开发预览,结果影响到后台容易引起版本混乱。
后台开发怎么搭建环境?用eclipse在本地环境搭建开发环境,通过tomcat插件或者jetty启动调试class、jsp。之前看过很多公司都通过打成war包发布到集成环境再调试。集成环境大家都去集成容易引起版本混乱。即使不发布到集成环境,在本地就算修改个小的class文件也要重启war包有点浪费时间。最好就是利用tomcat的热部署,修改小功能直接生效。现在我们就是这样做的,用maven管理jar包依赖,ant本地打包、拷贝包,用eclipse的tomcat插件热部署快速开发。等到所有功能开发好了。把分支版本发布到开发环境进行集成测试。
开发环境涉及的软件有:nexus 、maven、tomcat服务器、mysql、ftp、jenkins、svn、jira、fisheye、eclipse、dreamweaver、photoshop、nginx。
软件的作用:
nexus作为集中仓库管理,因为每个工程如果都有一堆jar包,很难管理。加上svn上传、分支、合并耗费网络带宽、空间。如果有个地方把这些浪费空间的jar集中管理起来,所有工程合用岂不是很好。
maven是软件生命周期、依赖管理,有了集中管理jar包,就需要有个东西把jar包仓库和工程连接起来。
tomcat服务器是本地开发使用和集中测试服务器。
mysql就没必要每个开发机器都装一个了,放在一个开发环境就可以。
ftp作为前端开发上传文件使用。
jenkins是持续集成,开发和前端都把代码弄好,怎么融合集成在一起测试呢,总需要有个人来把所有的文件合并在一起吧?这个软件就起到这个角色,把所有文件集成、编译、打包、发布到tomcat服务器。如下图:
svn代码版本管理,大家都知道协同作用。
jira用于需求、bug等管理。
fisheye用于代码统计、审核等。
eclipse、dreamweaver、photoshop不用说啦。
nginx主要用于做虚拟主机和静态资源管理。因为我们可能同时开发多个网站,nginx可以根据不同的域名转发到不同的web服务器。
二、测试服务器。开发、测试。
开发集成测试环境通过后,这个就可以转测试了。通过持续集成,测试部署好环境就开始测试。测试环境同样依赖于集中仓库、maven、持续集成等软件。也就是集成测试环境、开发集成环境、开发本地环境都是用的一套jar包,是不是很cool。如果测试不通过,就要转回开发,开发好再转测试。怎么保证开发的质量和测试的质量,还有大家的协作性,这个过程涉及到软件工程和绩效考核,后面再说。测试通过一些测试,测试通过后就可以发布到外网了。这个时候需要提供发布列表、操作步骤、数据库操作脚本给到运维审核,审核通过后才能发布。
怎么发布到外网IDC呢?运维可以根据发布列表去操作,开发和前端一起等着熬夜啊熬夜。没有效率!这里提出了一个增量发布版本的方式,通过发布列表,我们的发布程序会自动检测到发布的文件和发布的机器,发布到对应的服务器。如果发布失败了还可以回滚文件,基本上是一键操作。未来还会把服务器重启、日志输出等集成起来。
三、IDC服务器。
外网的真实服务器,后台和前台。大家能够访问到的网站服务器。业务人员在版本发布后查看。整个流程就做好了。大家在每一次版本开发完了,可以很好的协同、开发、测试、发布。
扩展话题:
1、photoshop能否和html互转并且有版本管理功能,这个做好是个革命性的标志。
2、css、js等静态文件是否也能够纳入自动依赖管理里。这样不用我们发布一个页面文件时发现还有些依赖的js没有发布。
原创文章,转载请注明: 转载自Lanceyan
本文链接地址: JAVA敏捷开发环境搭建
相关推荐
敏捷开发环境的搭建是提升开发团队效率的关键步骤,它涵盖了多个工具和技术的集成,包括项目管理、代码构建、质量检查和版本控制等。在本文中,我们将深入探讨如何搭建一个基于SUSE 11 SP2 x64系统的敏捷开发环境,...
JeeWeb是一款基于SpringMVC+Spring+Hibernate的敏捷开发系统;它是一款具有代码生成功能的智能快速开发平台;是以Spring Framework为核心容器,Spring MVC为模型视图控制器,Hibernate为数据访问层, Apache Shiro为...
【Eclipse开发环境搭建】 Eclipse是一款广泛使用的集成开发环境(IDE),尤其在Java编程领域中备受推崇。本文将详细介绍如何在Windows操作系统下搭建Eclipse的开发环境,包括JDK的安装与配置、Tomcat服务器的安装与...
《Java测试驱动开发》介绍如何将各种TDDzui佳实践应用于Java开发,主要内容包括:用Java语言进行TDD会用到的各种工具和框架,所需环境搭建;通过实际应用程序,展示TDD优点及开发中应注意的主要问题;TDD是如何通过...
在IT行业中,敏捷框架是...总之,这个压缩包提供了一个完整的移动端敏捷开发环境,包括必要的工具、源码和指导,有助于开发者高效地构建和维护应用程序。对于想要学习或使用力软敏捷框架的人来说,这是一个宝贵的资源。
- **Ruby**:Ruby on Rails 框架极大地简化了 Web 开发流程,特别适合敏捷开发。 - **Java**:尽管学习曲线较陡峭,但其强大的生态系统、高并发处理能力和稳定性使其在大型企业级应用中占有一席之地。 - **Node.js**...
开发者可以创建自定义模块和函数,满足特定需求,同时支持与其他编程语言(如C、Java)的集成,进一步增强了其在敏捷开发中的适应性。 进行Python的敏捷开发,可以遵循以下步骤: 1. 采用基于迭代的开发过程,利用...
- 系统环境:了解Docker容器化部署,能够独立配置开发环境。 6. **其他软技能** - 软件工程方法论:敏捷开发、持续集成等实践。 - 项目管理:具备一定的项目管理能力,能够有效推进项目进展。 - 沟通协作:优秀...
整个项目可能还包括了Dockerfile和docker-compose.yml文件,以便于开发者通过Docker容器化部署应用,实现快速、一致的环境搭建。这样的项目结构有利于团队成员之间协同工作,快速响应需求变化,提高整体的开发效率和...
- **环境搭建**:介绍如何安装JDK(Java Development Kit)并配置系统环境变量。 - **第一个程序**:编写Hello World程序,了解Java程序的基本结构。 - **数据类型**:熟悉Java中的基本数据类型如int、double、char...
综上所述,这个压缩包提供的资源可能包括了项目结构模板、配置文件、示例代码等,帮助开发者快速搭建一个基于Spring+SpringMVC+Mybatis的分布式敏捷开发环境,并实现微服务的集成。通过学习和实践这些资源,开发者...
在本文档中,"4-1_SpringBoot敏捷开发技术.pdf",我们将深入探讨Spring Boot这一强大的Java框架,它是现代后端开发中的重要工具,特别适合敏捷开发。Spring Boot以其简洁的配置、快速的启动时间和集成众多流行库的...
- 他熟悉敏捷开发方法,具备多年的Java开发和架构管理经验,这使他能够灵活应对快速变化的开发环境。 - 他熟练运用SSH/I等主流开源框架,这对于构建高效、可扩展的Java应用程序至关重要。 - 对Oracle、Sql Server...
高效率的轻量级低代码敏捷开发平台旨在提供一个用户友好的环境,让开发人员能够迅速创建和修改应用程序。这种平台通常具备以下特点: 1. **可视化编程**:通过拖放式组件和预定义的逻辑,开发者可以快速构建应用...
2. **开发环境搭建**:包括安装Java开发工具包(JDK)、配置环境变量、集成开发环境(IDE)的选择与使用(如IntelliJ IDEA或Eclipse)。 3. **基本语法**:掌握Java的基本语法结构,例如变量定义、数据类型、运算符...
SpringBoot是一个由Pivotal团队维护的Java框架,它旨在简化Spring应用程序的初始搭建以及开发过程,通过内置的默认配置,可以快速创建独立运行的应用。 描述中的“界面简洁美观”意味着该系统设计注重用户体验,...
- **技术领导力**:拥有PMP认证,具备管理Java团队的经验,熟悉敏捷开发,有多年架构管理经验。 - **技术栈广泛**:熟练掌握SSH/I等开源框架,对Oracle、Sql Server、Mysql等数据库设计有深入了解。 - **业绩显著...
- 他熟悉敏捷开发方法,拥有多年架构管理和Java开发经验,这使他能应对高并发访问、大数据量处理和性能优化等挑战。 - 在项目中,他不仅负责开发,还进行过多次功能重构,例如使用Redis优化静态数据存储,提高了...