企业级软件开发需要什么样的框架?

简介:
1)领域建模
  分析领域特定的问题。比如赶集网这一分类信息网站,她的定位是解决都市人寻求房屋出租、二手房、二手车、二手物品交易、求职招聘等生活信息的需求的。在领域建模阶段要解决的就是这个软件的定位问题,做什么不做什么。这一阶段由高层领导,市场销售及系统分析师等完成。
  2) 平台技术选择
  技术选型,比如用什么平台/架构(.net,j2ee,php,python等等)开发,采用什么服务器托管等。这一阶段由系统高层领导,系统分析师及系统架构师等完成。
  3) 解决方案
  根据选定的平台技术等给出一个可行的解决方案,说明系统会使用什么样的部署结构等。这一阶段由系统分析师及系统架构师等完成。
  4) 需求分析
  市场技术的可行性已经确定,接下来就是把做什么具体化了。把每一个功能模块及非功能性需求罗列出来。这一阶段由市场销售,系统分析师,产品经理,用户体验师,测试工程师等完成。
  5) 技术实现
  需求已经明确,接下来就是设计与实现了。除了实现系统的特定功能外,我们还要实现系统用户的验证与授权,系统日志与异常处理,发邮件与用户交互等。这一部分就是企业级软件开发中可以复用的切入点,也是和我们系统架构师,软件工程师的工作密切相关的部分。这一阶段由系统架构师,开发经理,软件工程师等完成。
  6)集成测试
  在预设的软硬件环境下,测试系统是否很好地满足了用户的需求。
  这一阶段由软件工程师,测试工程师等完成。
  7) 验收测试
  将系统交由用户或用户代表使用。可能会根据反馈进行一定的修改等。这一阶段由产品经理,用户或用户代表,软件工程师,测试工程师等完成。
  8)交付
  实际交给用户运营与使用。这一阶段由市场销售,技术代表,用户等完成。
  9) 维护
  根据用户实际使用中给出的反馈或提出的新需求等修改系统。
  这一阶段几乎是上面1-8的迭代过程。
  什么是框架?
  一个框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现。
  框架中要包含什么?
  框架中应该提供通用的功能与实现,比如用户验证与授权,日志与异常处理,缓存策略与实现,发送邮件,定时数据处理(Jobs),数据访问策略与实现,多语言支持,通用UI组件等。
  为什么要开发框架?
  较大的软件开发公司都有自己的框架,因为框架中积累了很多通用的功能,可以直接复用。采用框架可以规范开发人员的设计与代码,有利于在一个项目内多人协同工作,一致性好,可维护性好。这样就可以提高质量,缩短开发周期,进而也就提高了生产率,降低了开发费用。
  我如何做框架?
  我的经验告诉我,开发框架一定要遵循简单封装,决不能过度设计。


最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
4月前
|
自然语言处理 监控 编译器
修改电脑机器码工具一键,破解一机一注册码软件, 机器码解除工具
机器码的定义与特征 机器码(Machine Code)是计算机CPU能直接识别和执行的二进制指令集
|
缓存 Java Maven
如何在 Java 镜像构建过程中免重复下载依赖包
利用镜像构建缓存机制来加速 Java 镜像构建过程,免重复下载依赖包。
3648 0
如何在 Java 镜像构建过程中免重复下载依赖包
|
7月前
|
人工智能 JavaScript 前端开发
Vue 性能革命:揭秘前端优化的终极技巧;Vue优化技巧,解决Vue项目卡顿问题
Vue在处理少量数据和有限dom的情况下技术已经非常成熟了,但现在随着AI时代的到来,海量数据场景会越来越多,Vue优化技巧也是必备技能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
缓存 JavaScript 前端开发
「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
该文章全面覆盖了Vue.js从基础知识到进阶原理的48个核心知识点,包括Vue CLI项目结构、组件生命周期、响应式原理、Composition API的使用等内容,并针对Vue 2与Vue 3的不同特性进行了详细对比与讲解。
415 13
「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
|
Dubbo 关系型数据库 MySQL
Seata常见问题之serviceA方法无法注册分支事务到Seata如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
|
11月前
|
机器学习/深度学习 人工智能 测试技术
探索AI在软件开发中的应用:提升效率与创新
【10月更文挑战第25天】本文探讨了AI在软件开发中的应用,包括自动化测试、代码生成与优化、智能项目管理等方面,介绍了TensorFlow、PyTorch和GitHub Copilot等实用工具,展望了AI在未来的潜力,并强调了AI对提升开发效率和创新能力的重要性。
|
存储 监控 数据库
IoTDB控制台工具Workbench
IoTDB控制台工具Workbench
1354 0
|
存储 Cloud Native Apache
深度剖析 Apache EventMesh 云原生分布式事件驱动架构
深度剖析 Apache EventMesh 云原生分布式事件驱动架构
1586 0
|
缓存 监控 Java
从零到一构建完整知识体系,阿里最新SpringBoot原理最佳实践真香
Spring Boot不用多说,是咱们Java程序员必须熟练掌握的基本技能。工作上它让配置、代码编写、部署和监控都更简单,面试时互联网企业招聘对于Spring Boot这个系统开发的首选框架也是考察的比较严苛,如果你不是刚入行,只是停留在会用的阶段,那是远远不够的。 虽然Spring Boot易上手,但很多小伙伴也是时不时会跟我反映,Spring Boot技术体系太庞杂了,包含了太多的技术组件,不知道到底该如何高效学习,建立起全面且完整的Spring Boot技术体系和实践技巧,这个时候站在巨人的肩膀上学习就变得非常有必要了,汲取大佬们的学习经验,避免工作面试踩坑,轻松构建Spring Bo
|
Java 开发工具
SpringBoot2.x基础篇:配置文件的加载顺序以及优先级覆盖
`SpringBoot`约定了配置文件,默认为`application.properties`,通过该文件可以修改很多默认的配置,当然我们还可以在该配置文件内添加自定义的配置,该文件通过`key=value`的形式进行配置。