项目开发流程 | 学习笔记

简介: 快速学习项目开发流程

开发者学堂课程【Scala 核心编程 - 进阶项目开发流程】学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9103


项目开发流程


内容介绍

一、课程任务

二、Scala 核心编程-项目

三、可走线路


一、课程任务

课程任务分为两大块,一是学完Scala功能一直没有去写一个项目,这个项目不管大小都应该写一下,用一用。

二是讲解一下AKKA,AKKA是Scala里面底层通讯,支持大并发的一个框架,用的非常多,所以会讲AKKA同时还讲的比较细致。


二、Scala 核心编程-项目

项目虽小,但是代码很多,动手量会大一些,希望大家多动手。

1.Scala 客户信息管理系统

完成的功能一步一步讲解,其实就是增删改查,带点结构。

(1)项目开发流程

①第一步是需求分析

准确的讲需求分析前面还有一步是可行性分析,但一般可行性分析与大家没有关系,了解一下对大家非常好。

前期公司会进行可行性分析,可行性分析指分析这个项目做什么,谁来做,会做出什么东西,干什么的目的是有没有市场,谁来做由市场部和销售部来做,销售部门知道市场的具体情况,甚至有些公司还给市场部销售部一个任务,定时告诉市场需要什么。

市场部和销售部完成这个任务,最后出一个可行性报告,有些报告给公司老总,有些是 CEO。

需求分析有一个职位是需求分析师,需求分析师要懂技术更重要的是要懂业务。要挖掘客户真正的需求因为有些客户说不出来真正需要什么所以就需要需求分析师进行挖掘。然后做一个需求分析报告,需求分析报告是白皮书是一个模板,就出来以后交给下一步流程

②第二步是设计阶段

有些公司是项目经理来做,有些公司是架构师来做。严格来说两个职位是有区别的,项目经理一般来说对项目整体负责任,架构师更关注技术层面,以技术为主的公司会以架构师为主。

项目经理要决定使用什么技术,例如使用 Java 还是 Scala 类型,使用 go 语言还是PHP。以及决定使用什么架构是用 ssm 还是用 ssh 是用 Linux 还是 UNIX,包括数据库。

项目经理还要选人因为项目组做完一个任务就解散。最后作为一个项目经理或者架构师要出一些设计图,设计图最经典的是类图、时序图、部署图、用例图、数据库,一般来讲要事先将数据库设计好,设计图设计好后设计文档。还有一个重要的点是界面,原型开发,

③第三步是实现阶段

由软件工程师来做,要看懂文档,实现各个模块,设计功能模块,模块代码。

④测试阶段

测试阶段与实现阶段不是完全独立的,是一个螺旋递增的模式。一边在进行开发,一边测试进行循环,由测试工程师进行,要测试用例,完成对软件的测试包括对底层的测试,包括白盒测试、黑盒测试、灰盒测试。黑盒测试点击出现问题告诉你有问题,白盒测试高级一点,要写用例测试代码进行测试。

下一步进行找 bug,标准 bug 第一步怎么做第二步怎么做第三步这么做出问题,要重现,如果找了一个 bug 出现过后按照你的流程去做没有错,这就不是一个有效 bug,是你没有找到 bug,这种 bug 最难调。

如果有测试工程师和你说有 bug,一定要他讲给你怎样才能复现,如果不能复现可以不理他。如果按照他说讲述的流程确实能够出现,那必须去调

⑤实施阶段

由实施工程师来做,项目做好后要部署到系统,并匹配好参数,能够正确运行。

实施工程师可能对编程能力要求不高,但是至少有两点要求很高,第一个是对系统很了解对产品本身了解,第二个是身体素质好,因为要经常出差

⑥维护阶段

维护阶段不一定由专人负责,因为维护阶段项目即使经过了非常严格的测试也抵不过有bug

image.png

(2)时间分配

分配的时间取决于项目的大小,如果是小项目无所谓一个人全部搞定,大项目例如是一个500w的项目,需求分析就显得尤为重要,一般要达到30%左右,设计阶段至少不能低于20%,时间阶段不能低于20%,也就是在前期需求设计实现要拿到70%的时间,余下的时间交给剩下三个,如果项目很重要测试阶段也不会低于20%。剩下10%交给他们就行了。


三、可走线路

理论上讲每一个阶段都需要专人,需求需要需求分析师,设计需要项目经理或架构师,实现需要软件工程师,测试需要测试工程师,实施需要实施工程师。理论上各司其职,但是我们的国情是很多公司都是初步的创业型的公司,更喜欢从头到尾全部做完。

1.技术型

大家现在处于实现阶段,如果要走技术层面建议大家先向设计阶段走可以向项目经理或架构师方向发展,如果项目经理或架构师完成的差不多可以在向上发展到CTO,CTO就是技术长官,当下面几个软件组长或者程序员对一个技术实现有疑问时,CTO就要出面解决,CTO在向上走就是技术合伙人,可以在实现阶段做1-2年但是要快速成长,不要每天重复性的增删改查。要主动积极的去做项目经理。

2.全面发展平衡发展型

了解整个项目流程,例如对项目管理能力较强,就做管理型的人才

3.专攻需求分析和市场

4.实施维护

这条线路不建议大家选择,第一年纪大了太累,且不利于家庭和睦

5.专攻测试

很多测试工程师不懂编程,大家会编程就形成了优势加上会做开发可以直接应聘测试经理

相关文章
|
9月前
|
机器学习/深度学习 数据采集 自然语言处理
基于Python的情感分析与情绪识别技术深度解析
本文探讨了基于Python的情感分析与情绪识别技术,涵盖基础概念、实现方法及工业应用。文中区分了情感分析与情绪识别的核心差异,阐述了从词典法到深度学习的技术演进,并通过具体代码展示了Transformers架构在细粒度情感分析中的应用,以及多模态情绪识别框架的设计。此外,还介绍了电商评论分析系统的构建与优化策略,包括领域自适应训练和集成学习等方法。未来,随着深度学习和多模态数据的发展,该技术将更加智能与精准。
598 1
|
前端开发 UED 开发者
React 选项卡组件 Tabs:从基础到优化
本文详细介绍了如何在React中构建一个功能丰富的选项卡组件,包括基础实现、样式美化、常见问题及解决方法。通过逐步讲解,从简单的选项卡组件结构开始,逐步引入样式、性能优化、动态内容加载、键盘导航支持和动画效果,最后讨论了自定义样式的实现。旨在帮助开发者在React项目中高效构建高质量的选项卡组件。
409 18
|
11月前
|
存储 固态存储 应用服务中间件
阿里云服务器租赁价格:实例配置、预留实例券、块存储、带宽、快照最新收费标准
阿里云服务器收费项目有实例价格、预留实例券、专有宿主机、块存储价格、存储容量单位包、带宽价格和快照服务价格,收费模式有包年包月和按量付费模式。2025年阿里云继续推出各种云服务器优惠,本文为大家汇总了2025年阿里云服务器各个收费项目的最新收费标准与云服务器的最新活动价格,以供参考和了解。
949 24
|
算法 数据可视化 数据挖掘
C# | DBSCAN聚类算法实现 —— 对直角坐标系中临近点的点进行聚类
聚类算法是一种常见的数据分析技术,用于将相似的数据对象归类到同一组或簇中。其中,DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,能够有效地识别出不同形状和大小的簇,同时还能标识出噪声数据。本篇博客将介绍聚类算法的概念、DBSCAN算法的原理,并通过提供的C#代码逐步解析DBSCAN算法的实现过程。
963 0
C# | DBSCAN聚类算法实现 —— 对直角坐标系中临近点的点进行聚类
|
运维 NoSQL 前端开发
介绍一下Redis的优缺点
【10月更文挑战第19天】介绍一下Redis的优缺点
|
机器学习/深度学习 人工智能 测试技术
探索AI在软件开发中的应用:提升效率与创新
【10月更文挑战第25天】本文探讨了AI在软件开发中的应用,包括自动化测试、代码生成与优化、智能项目管理等方面,介绍了TensorFlow、PyTorch和GitHub Copilot等实用工具,展望了AI在未来的潜力,并强调了AI对提升开发效率和创新能力的重要性。
|
存储 弹性计算 安全
云计算服务选型与成本分析
【7月更文挑战第2天】云计算服务选型与成本分析聚焦企业如何在IaaS、PaaS、SaaS间抉择,考虑云提供商的技术实力、服务范围、成本效益和支持。成本分析涉及硬件、软件和服务成本,通过简单回收期、投资回报率和净现值法评估效益。优化资源配置、弹性伸缩和合理计费是成本控制关键,助力企业高效利用云计算。
|
存储 监控 Cloud Native
云原生数据仓库AnalyticDB产品使用合集之如何添加索引
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
604 2
|
物联网 持续交付 开发工具
RT-Thread 学习-Env开发环境搭建(一)
RT-Thread 学习-Env开发环境搭建(一)
486 0
RT-Thread 学习-Env开发环境搭建(一)
|
Cloud Native 安全 Linux
Linux备份策略:保证数据安全
Linux备份策略:保证数据安全
168 0