学习目的:
对软件公司和软件开发有一定成都的了解
了解CRM项目的核心业务
能够独立完成CRM项目核心业务开发
对所学技术回顾、熟练、加深和扩展。
掌握互联网基础课:linux,redis,git。
软件公司的组织结构
研发部:
程序员 三四十个程序员公司就已经很有规模了。以项目组为单位开展工作。项目经理-组长-组员。
美工 PS 前端 一个项目组一个ps 一个前端。
DBA 数据库管理员 比程序员工资高 数据库底层。市场需求不高。一个公司一两个。
测试部
测试工程师 程序员:测试员 5:1 bug系统会记录程序员名下的bug。 工资还可以,没有程序员高。有一定的技术含量。黑盒测试:不看代码 只看功能。白盒测试:看代码 代码不合理也算bug。国内白盒测试比较少。
实施部
实施工程师: 服务器、网络环境搭建、打包部署。应用服务器、数据库服务器。一个公司1-2个人。一般在客户现场。
产品部
对业务精通、对行业内软件产品了解。传统项目的项目经理工资不多。
运维部
客户现场解决问题,小问题解决,大问题报研发。技术含量较低。
市场部
开拓市场。标书。市场部的人也不多。
软件开发生命周期
1.招标
甲方招标
乙方投标----标书
2.可行性分析
技术方面是否可行,经济方面可行性----可行性分析报告。
3.需求分析
产品经理分析客户需求,到客户现场展开需求调研(产品、程序员)----需求文档。
客户自己要什么自己都不是很清楚,如何快速完成需求调研?项目原型:都是静态网页(美工),程序员开发项目时作为jsp网页。
4.分析与设计
写代码占整个项目周期的三分之一。
架构设计:架构师 物理架构设计:
1.应用服务器:tomcat(轻量 小)、weblogic(bea-->oracle)、websphere(ibm) java ee:13种协议:servlet jsp xml jdbc mq....
2.数据库服务器:mysql、oracle、DB2、sql server、达梦(慢)、
逻辑架构设计:代码分层 视图层-->控制层-->持久层-->数据库
技术选型:java .net(java一生之敌)
项目设计:物理模型设计、那些表、哪些字段、字段的类型和长度,以及表和表之间的联系。
逻辑模型设计:需要创建哪些类,有哪些属性和方法。方法的参数和返回值。
界面设计:产品经理设计
算法设计:复杂业务处理的高效处理。
5.搭建开发环境
1.创建项目,添加jar包,添加配置文件,添加静态页面,添加公共工具类。正常启动运行。
6.编码实现
小组为单位进行开发
7.测试
测试与开发并行
8.试运行
买服务器 搭建环境 项目组成员基本撤了
9.上线
程序员最累的时候
10.运维
2-3年 甲方运维