
编辑推荐
《软件是这样“炼”成的——软件架构设计实现》是《软件是这样“炼”成的——软件过程管理与软件测试过程》和《软件是这样“炼”成的——从软件需求分析到软件架构设计》设计的最后延续,同样用投核保系统为本书连贯性的案例解读软件架构设计。通过独特的场景描述、纪实性的记录手法,深入剖析了系统开发模式、各种工具的安装与配置过程、数据架构设计实现过程和软件架构设计实现等四方面的内容。本系列书是作者对自己多年的软件开发的工作和培训经验、技术要领和心得的总结和升华,以软件生命周期为主线,将各种软件开发相关的思想、方法、工具、技术点巧妙地穿插其中,图表详尽、案例难易适中、内容通俗易懂、语言严谨但不失活泼,真可谓是详实的软件“炼成”教学片,完整的软件“炼成”纪录片,每一位软件开发和管理从业人员必备的“软件修炼宝典”!
媒体推荐
《软件是这样“炼”成的——软件架构设计实现》是《软件是这样“炼”成的——软件过程管理与软件测试》和《软件是这样“炼”成的——从软件需求分析到软件架构设计》的延续,将投核保系统作为**的、连贯性的案例全程记录和解读软件架构设计。本书从文字组织到结构设计方面既不是以理论为主调的“学院派”编写风格,也不是以应用介绍为主调的“应用派”编写风格,而是采用了情景对话、场景再现、自然语言的叙述方式。本书是在解读投核保系统的详细设计、数据库设计和软件详细设计的基础上介绍了软件开发过程管理中应用的理论知识以及这些知识的应用,同时分析了这些理论知识的应用场景,然后以投核保系统为案例将软件开发过程中各个阶段的成果完整地展现给读者。本书包括四篇,即**篇“开发之旅起航”、第二篇“软件开发环境设计实现”、第三篇“基于Oracle的数据架构设计实现”和第四篇“基于Struts2.0+EJB3.0的软件架构设计实现”。本书可以让读者了解如何在解读架构设计的基础上完成企业软件开发的过程,适合于从事软件开发的软件开发管理人员、系统分析师、架构师、程序员阅读,也适合于计算机相关专业的毕业生在就业之前了解企业软件开发的过程,同时也可以作为大学计算机软件专业项目实训的参考教材。
作者简介
作者:王朔韬
王朔韬,1995年毕业于西安公路交通大学(现长安大学),从事软件开发工作将近20年; 2004年至今,主要从事软件企业管理咨询工作,咨询内容包括软件企业开发过程咨询及大型非软件企业的信息化建设规划等,咨询的客户包括南方航空公司、上海沪东中华造船厂等几十家软件企业及大型非软件企业; 2009年担任IBM高校师资培训主讲老师,也承担怀华学院计算机系部分课程的讲授工作,主要研究方向是软件企业开发过程改进和软件架构。作者目前已与清华大学出版社合作出版了《软件是这样“炼”成的——从软件需求分析到软件架构设计》、《软件是这样“炼”成的——软件过程管理与软件测试》,《软件是这样“炼”成的——软件架构设计实现》是前两本书的设计实现。
目录
系列书引言
第一篇开发之旅起航
第1章程序员辞职报告讨论
第2章设计实现过程讨论
第3章关于高素质程序员的讨论
3.1高素质程序员应该具有哪些职业素养
3.2讨论异常
3.3讨论高质量程序代码
3.4解读详细设计报告,编写程序代码
3.5小结
第4章投核保系统编码规范
4.1排版规范
4.1.1注释规范
4.1.2命名规范
4.1.3编码规范
4.2投核保系统的代码走查说明
4.2.1代码走查规则
4.2.2代码走查报告
第5章本书导读
5.1本书的编写思路
5.2本书结构说明及系列书关联说明
第6章开发模式选择
第二篇软件开发环境设计实现
第7章搭建项目组开发环境
7.1关于项目组开发环境的讨论
7.2解读配置图,绘制开发环境网络拓扑
第8章Oracle WebLogic介绍
8.1Oracle WebLogic概述
8.2Oracle WebLogic的安装
8.3创建域
第9章Oracle数据库介绍
9.1Oracle数据库概述
9.2Oracle数据库体系结构
9.2.1数据库存储结构
9.2.2内存结构
9.2.3实例体系结构
9.2.4实例进程结构
9.2.5数据字典
9.3Oracle产品介绍
9.3.1数据库服务器及投核保系统
9.3.2应用服务器
9.4企业管理器
9.5Oracle客户端工具的选择
第10章Oracle数据库开发环境的搭建
10.1解读数据库设计报告,规划数据库安装
10.1.1解读需求分析报告
10.1.2安装数据库的软/硬件要求
10.1.3投棱保系统数据库服务器开发时的参数
10.2安装Oracle软件
10.2.1Oracle 11g的下载
10.2.2Oracle 11g的安装
10.3使用DBCA创建数据库
10.4配置NetConfiguration Assistant
第11章投核保系统软件配置管理过程及工具选择
11.1关于软件配置管理过程的讨论
11.2投核保系统软件配置过程规范
11.3投核保系统配置库使用制度
11.4关于配置管理工具的选择
第12章解读配置管理计划,搭建配置管理环境
12.1投核保系统软件配置管理计划全文
12.2CVS配置管理工具介绍
12.2.1CVS简介
12.2.2CVS中的基本概念
12.2.3环境搭建的准备
12.3投核保系统软件配置管理服务器CVS的安装与配置
12.3.1安装及配置CVS服务器
12.3.2配置投核保系统的配置库结构
12.3.3CVS用户的权限分配
12.4投核保管理系统CVS客户端的安装与配置
12.4.1WinCVS客户端的安装
12.4.2WinCVS客户端的配置
第13章投核保系统开发环境配置手册
13.1投核保系统开发环境的配置
13.2开发环境配置表
13.2.1数据库开发组开发环境配置表
13.2.2业务逻辑开发环境配置表
13.2.3表示层开发环境配置表
13.3JDK7.0的安装与配置
13.4MyEclipse的安装
13.5部署EJB服务
13.6安装与配置JUnit
13.7安装与配置Ant
13.7.1安装Ant
13.7.2配置Ant
137.3Ant与JUnit的集成
13.8在MyEclipse中配置Oracle数据源
13.9安装Eclipse HTML Editor
第三篇基于Oracle的数据架构设计实现
第14章投核保系统数据库设计报告
14.1引言
14.1.1编写目的
14.1.2预期待和阅读建议
14.1.3参考资料
14.2数据库设计命名规范
14.2.1数据库设计字符规范
14.2.2数据库对象命名规范
14.3数据库实体关系设计
14.4数据库逻辑设计
14.5数据库物理设计
14.5.1投核保系统数据库物理设计图
14.5.2初始数据库大小
14.5.3数据库增长速度
14.5.4记录查找的类型和平均数量
14.5.5网络和共享访问需求
14.5.6性能
14.5.7安全性
14.5.8数据备份和恢复
14.5.9数据库及数据表空间设计
14.6数据库基本表设计
14.7索引设计
14.8视图设计
14.9授权设计
第15章投核保系统数据库实施讨论
15.1数据库实施过程讨论
15.2关于优化实例内存的讨论
第16章Oracle SQL简介
16.1SQL语言概述
16.1.1SQL语言的特点
161.2SQL语言的编写规则
16.2SQL语言的分类
16.3不同类型的SQL语言场景分析
16.3.1SQL查询语言应用场景分析
16.3.2DML语言应用场景分析
16.3.3TCL语言应用场景分析
16.3.4DDL语言应用场景分析
16.3.5DCL语言应用场景分析
第17章Oracle Enterprise Management介绍
17.1配置Oracle Enterprise Manager
17.2主目录
17.3性能
17.3.1CPU性能
17.3.2吞吐量
17.3.3I/O
17.3.4并行执行
17.3.5服务
17.4可用性
17.4.1高可用性控制台
17.4.2备份/恢复
17.4.3Oracle Secure Backup
17.5服务器
17.5.1存储
17.5.2数据库配置
17.5.3Oracle Scheduler
17.6方案
17.6.1数据库对象
17.6.2程序
17.6.3实体化视图
17.6.4用户定义类型
17.7数据移动
17.8软件和支持
17.9小结
第18章Oracle SQL Developer介绍
18.1创建数据库连接
18.2对象浏览窗口
18.3使用SQL Developer调试PL/SQL
18.4菜单栏
18.5小结
第19章QQL Plus介绍
19.1SQL Plus简介
19.2SQL语句、PL/SQL块和SQLPlus命令之间的区别
19.3SQL Plus的启动
19.4使用SQL Plus的编辑功能
19.4.1编辑命令
19.4.2保存命令
19.4.3加入注释
19.4.4运行命令
19.4.5跟踪语句
19.4.6环境参数的设置
19.5小结
第20章投核保系统表空间设计实现
20.1关于表空间的讨论
20.2Oracle表空间介绍
20.2.1Oracle数据存储模型
20.2.2Oracle 11g表空间类型
20.3解读数据库设计报告,规划表空间
20.4使用OEM创建数据表空间
20.5使用SQL Plus创建数据表空间
20.6管理表空问
20.6.1通过Oracle Enterprise Manager管理表空间
20.6.2通过SQL Developer管理表空间
第21章投核保系统数据表设计实现
21.1Oracle概述表概述
21.1.1数据表的数据类型
21.1.2数据表的分区
21.1.3创建数据表时的注意事项
21.2解读数据库设计报告,分析数据表
21.3使用SQL Developer创建数据表
21.4使用SQL Plus管理数据表
21.4.1管理表
21.4.2管理表分区
21.5关于优化数据表性能的讨论
第22章SQL SELECT语句研究
22.1SQL SELECT语句的格式
22.1.1SELECT语句的语法格式
22.1.2SELECT语句的编写规则
22.1.3Oracle SELECT的执行步骤
22.2使用WHERE子句限制条件指定行
22.3使用ORDER BY排序
……
22.5使用GROUP BY进行数据分组
22.6使用HAVING分组数据
22.7表的连接
22.7.1左外连接
22.7.2右外连接
22.7.3全外连接
22.7.4自连接
22.8输出目标INTO子句
22.9复杂SELECT语句的使用
22.9.1集合操作
22.9.2子查询
22.9.3CASE语句的使用
22.10关于SQL SELECT语句性能的讨论
第23章投核保系统索引设计实现
23.1Oracle索引概述
23.2索引类型及应用场景
23.2.1B*树索引
23.2.2反向索引
23.2.3降序索引
23.2.4位图索引
23.2.5函数索引
23.3索引分区
23.3.1全局索引的特点
23.3.2本地索引的特点
23.4解读数据库设计报告,分析数据表索引
23.5使用SQL Developer创建索引
23.6使用SQL Plus管理索引
23.6.1建立索引
23.6.2管理索引
23.6.3管理索引分区
23.7关于索引性能的讨论
第24章投核保系统视图设计实现
24.1视图介绍
24.1.1视图的概念
24.1.2视图的优点
24.1.3视图的分类
24.2解读数据库设计报告,设计视图
24.3使用SQL Developer创建视图
24.4使用SQL Plus管理视图
24.4.1创建视图
24.4.2更改视图
24.4.3删除视图
24.4.4查看视图
第25章存储过程与触发器设计实现
25.1存储过程介绍
25.1.1存储过程的概念
25.1.2存储过程的优点
25.1.3存储过程的语法格式
25.2触发器介绍
25.2.1触发器的概念
25.2.2触发器的语法格式
25.2.3触发器的组成
25.3解读数据库设计报告,规埘存储过程与触发器
25.3.1存储过程的规划
25.3.2触发器的规划
25.4使用SQL Developer开发触发器
25.5使用SQL Developer开发存储过程
25.5.1创建存储过程
25.5.2修改存储过程
25.6存储过程例程
第26章投核保系统数据库用户管理
26.1Oracle用户、角色、权限和模式
26.2解读数据库设计报告,规划角色
26.2.1DBA角色的规划
26.2.2开发者角色的规划
26.2.3公司管理层对象的操作授权
26.2.4部门管理的操作授权
26.2.5公司业务人员的操作授权
26.3创建和管理角色
26.3.1创建角色
26.3.2通过SQL Plus管理角色
26.3.3查看角色
26.4使用者组
26.5创建和臂理用户账户
26.5.1使用Oracle Enterprise Manager完成用户的创建
26.5.2使用SQL Plus管理用户
第27章投核保系统数据库安全性设计实现
27.1Oracle安全性设计要求
27.2解读数据库设计报告,管理用户资源
27.2.1用户资源的基本概念
27.2.2投核保系统用户资源配置表
27.3Oracle用户资源配置的设计实现
27.3.1使用Oracle Enterpeise Management配置用户资源
27.3.2使用SQL Developer创建概要文件
27.4Oracle数据库审计
27.4.1审计的概念
27.4.2投核保系统的用户角色审计说明
27.4.3使用Oracle Enterprise Management实现审计功能
27.5透明数据加密
第28章关于数据库设计实现总结
……
第四篇基于Struts 2.0+EJB 3.0的软件架构设计实现
后记
序言
前言
经过多年的积累以及整理和思考,“软件是这样‘炼’成的”系列书终于在艰难中“分娩了”,《软件是这样“炼”成的——从软件需求分析到软件架构设计》和《软件是这样“炼”成的——软件过程管理与软件测试》相继出版发行,读者数量也不错,有许多忠实的读者通过微信和QQ消息发来了最为诚恳的建议,这些读者给了我继续写下去的动力。本书书名为《软件是这样“炼”成的——软件架构设计实现》,这本书的出版完成了一个项目的全程记录,将投核保系统项目的全部过程展现给读者,让读者通过项目感悟项目开发过程中可能遇到的各种挫折及解决问题的思路。
本系列书的最大特点是将学院派和应用派的两大著书思想有效地结合起来,既没有专注讲空洞的理论,也没有专注于讲宽泛的应用,将理论与实践融合起来,能够给读者以新的感受和收获。在文字组织上,本系列书采取了场景再现、情景对话等方式,将软件企业开发过程中的软件过程改进、软件过程管理和软件测试过程全面展现给读者。本书自始至终使用保险公司的投核保系统作为案例,将软件开发的各个环节串连起来,使得读者能够系统地、完整地了解项目开发的全部过程。
本书由四篇共50章组成。第一篇“开发之旅起航”以投核保系统为案例,通过叙事方式分析软件编程设计过程中存在的问题,并且引出了投核保系统的开发模式; 第二篇以投核保系统配置图为设计依据,全面介绍了各种工具的安装与配置过程; 第三篇是以投核保系统为案例,以投核保系统数据架构设计为依据,介绍了基于Oracle的数据架构设计实现过程; 第四篇是以投核保系统详细设计架构为设计依据,介绍了基于Struts 2.0和EJB 3.0的技术方法将软件架构设计最终落实到具体的代码上。
《软件是这样“炼”成的——从软件需求分析到软件架构设计》和《软件是这样“炼”成的——软件过程管理与软件测试》两本书出版以后得到了广大读者的殷切关注和大力支持,并且提出了许多宝贵的意见,这里表示真心的感谢,希望各位继续提出宝贵的意见。
在本书的编写过程中得到了家人和朋友的大力支持,在此我要感谢我的妻子商莉和我的女儿王贝思给予我的最大的支持,同时感谢我的好朋友罗少木和姜伟给予我的帮助和大力支持。
由于作者水平有限,书中难免有疏漏和不足之处,恳请各位专家和广大读者提出宝贵的意见。如果读者在阅读过程中遇到问题,可以直接和本人联系。
作者2017年5月
文摘
第一篇开发之旅起航第1章程序员辞职报告讨论政企分不清必然导致官商勾结,官商勾结自然就会形成工程项目具有一定的政治色彩。有时候,政治风云变幻会导致企业变得人心动荡。与昂特拉软件公司签署投核保系统的天意保险公司尽管是一家民营企业,但是,保险公司必然要接受政府机构的管理,政府机构谈的就是政治,那么企业也必须关注政治了。 前一段时间,管理保险公司的某个政府官员因为经济问题被调查了,据说民营保险公司为了获取一定的市场份额不得不向此官员行贿。保险公司总经理因为行贿自然也被牵连进去了,已经在某个地方受控制了。新调来一位姓张的保险公司总经理,该经理名叫张强(化名),他是由政府指定的,据说张总经理曾经任职于国家某部主管旅游业。张强上任的第一件事就是对保险公司的人员进行大调整,信息中心原主任自然被“拿”下去了,新上任的信息中心主任据说是在政府机构有人,原信息中心主任据说要离开天意保险公司了,具体去向不太清楚。 对于昂特拉软件公司来说,这次天意保险公司的人事变动只能用“晴天霹雳”来形容了,尽管项目不至于停止,但与客户沟通存在问题。另外,昂特拉软件公司的软件过程改进也遇到了不少麻烦,来自架构师、程序员、市场经理、测试经理和质量部门的各种不良情绪以及对公司软件开发的焦虑使得总经理徐杰束手无策。今天在BCD商务中心的某个上岛咖啡厅徐杰与晨落就软件过程改进再次深度讨论。 今天徐杰总经理情绪有点低落,主要是最近的各类繁杂事情让他剪不断、理还乱。晨落坐下来后徐杰总经理说道: “最近遇到麻烦事了。” 晨落吃惊地问道: “徐总,你也会不开心啊?看来确实遇到困难了,我们可否共同分析一下呢?” 徐杰说道: “最近遇到麻烦了,投核保系统项目遇到麻烦了,我们客户的信息中心主任最近要辞职了,据说和原来的保险公司总经理是一批人马,现在新的总经理上任后将原来各部门的主管全部给替换了。” 晨落说道: “这与我们的投核保系统项目有什么关系呢?” 徐杰说道: “当然有关系了,因为现在刚刚上任的信息中心主任张强是新任总经理的嫡系,这个倒没有关系,但是,在我们签署投核保系统合同时遭受到张强的百般刁难,他极力推荐某个软件开发公司,我这里就不说具体名称了,这个软件公司经理刚好是现在新信息中心主任张强的同学。” 晨落说道: “嗯,现在合同签署了,难道他能终止合同不成?” 徐杰说道: “这个倒不会,但是在合同执行过程中不像原来那样好说话了,特别是项目进度问题,投核保系统项目从目前的进度来看没有办法按合同规定的时间完成任务了。” 晨落说道: “那你现在过虑的是如果不按照合同执行会导致张强按照合同的约定处罚违约金吗?” “是的”,徐杰低了低头说道。 晨落继续说道: “按照一般规律,张强也不能太过激,因为他毕竟要照顾信息中心其他成员的感受。” 徐杰接着说道: “问题是在签署投核保系统时张强极力把这个项目推荐给他同学的公司,在市场活动中,我们当时也没有照顾张强这个角色,在市场公关过程中没有给予什么搭点,估计他现在还心怀不满。” 晨落分析道: “一般情况下,一个管理者会有这么几种心态管理自己的团队,第一种是确实想把事情干好,也不考虑个人利益; 第二种是想把事情干好的同时考虑个人利益; 第三种是只考虑个人利益,不考虑事情做好的问题; 第四种人很少见,那就是既不考虑个人利益也不考虑事情做好的问题。根据你的了解,张强属于哪种类型的人?” 徐杰说道: “我不太明白您说的意思。” 晨落说道: “我是这样认为的,可以根据不同种类的人决定我们拓展市场的方法。对于第一种人,与他沟通起来是最理想的状态,他会更加关注项目的质量问题而不是进度问题,他也不会刁难客户的; 第二种人其实好说,那就是均衡利益了; 第三种人只考虑个人利益,我觉得从开发市场的角度来说其实并不难,给他足够的利益就行,反正羊毛出在羊身上; 第四种人估计不存在,他毕竟是需要做点什么事情的。” 徐杰说道: “在我看来,他有点像第三种人。” 晨落说道: “那你搞了这么多年市场了,凭你的经验你应该知道怎么处理这件事情了。投核保系统项目的进度尽管按照合同约定要延期了,但是,我觉得这是在我们计划之中和可控制中的,张强上任以后,我们需要加强与张强的沟通,争取获得他的支持。” 徐杰继续说道: “我所担心的是我们前面花了这么多的财力和物力,好不容易抢来的市场份额就这样白白地丢掉了。” 晨落安慰道: “我不这么认为,通过投核保系统项目,我们也锻炼了我们的团队。另外,如果我们的产品质量过关且功能能够完全满足用户的需求,我们就为后续其他保险公司的市场拓展提供了案例。还有,尽管张强这个信息中心主任不是干实事的人,但是他的员工总有一部分人想把事业搞好,我们的产品的使用者是保险公司所有员工而不是张强本人,所以,你不能这样悲观。” 徐杰说道: “那目前我们需要解决的是进度问题,也就是需要和张强协调延迟项目进度了。” 晨落问道: “中心主任现在办理离职手续了吗?张强上任了没有?” 徐杰说道: “刚刚任命,原中心主任还没有离职。” 晨落说道: “有个办法可以解决,在主任的离职手续没有办完之前,你可以考虑写一份项目延期申请报告,在主任离职之前让他签字和盖章,之后张强上任也没有什么可说的了,然后我们加强对张强的公关。” 徐杰说道: “好的,投核保系统的相关事宜就讨论到这里。另外一些事情是软件过程改进中遇到的问题,我这段时间陆续收到各部门写的电子邮件,表达了软件过程改进中的一些自己的看法,我今天选了几份具有代表性的邮件请你看看,然后我们共同分析一下,怎么样?” 晨落说道: “这个应该没有什么问题,有员工反映问题是件好事,说明大家开始执行并且关注软件过程改进了。我们可以共同讨论问题所在并且寻找解决问题的办法。” 徐杰挑选了几份具有代表性的辞职报告发给晨落,张杰的辞职报告全文如下:尊敬的徐总:您好!我是研发部程序员张杰,今天很遗憾向您提出辞职申请,对于我的辞职实属无奈之举。下面是我的辞职报告内容:我是毕业就过来公司,三年的编程经历,虽然使我在各方面都提高了不少,然而离我实际的目标还是有很大的差距,这个跟公司和我自己都有关系,我觉得在公司里短期内不能让自己满意。从目前的情况来看,在公司再待下去也不会有太大的改观。 第一点,自我感觉职业生涯发展遇到瓶颈。三年前我是个程序员,现在仍是程序员,虽然希望自己向技术管理方面发展,但是没有这样的机会。从目前情况来看,在公司继续发展也看不到下一步该如何走,可能仍是一个程序员。 第二点,我在技术上没有太大的提高。三年来我做了不少产品,但技术提高没有如自己所愿。三年前我独立做出了软件,现在仍在吃老本,只是稍微熟练而己。三年来我也在不断地学习,为公司的需要和自身的发展做着准备。从公司目前的产品发展方向来看,我下一步能在技术上有大的突破的机会也不多。 第三点,薪资待遇未能如我所愿。三年来我的薪资虽然上涨了一些,到现在也只是跟市场持平,但持平不是我想要的,薪资到了这个阶段应该有一个大的提高了,我更希望有一个质变,在公司再发展下去也不一定能涨多少。从公司现在的发展来看,现在需要的可能是经验和薪资要求都适中的程序员。 总之,辞职有多方面的原因,最主要的还是我自己的原因,现在我申请辞职,希望领导能够批准,我将尽最大努力做好交接工作。 辞职申请人: 张杰“还有吗?”晨落问道。 徐杰答道: “有,这是柳枝的辞职报告。”徐总:您好!我刚来到这个新环境,开始感觉还不错,真是想好好干下去。事实上也是如此,我很久没在一个公司干过这么长时间。我原来有很多项目,本想拉到公司来做,但是公司的很多事情和你的行为让我感到失望。我以为,跟随一个英明果断、有人格魅力的领导打工,我才有发展和前(钱)途。 在私企干了这么久,我非常了解老板的辛苦,老板也很难,所以我有利益上的不满很少说,当我无法忍受的时候就辞职。但我觉得有些事情不得不说给你听:1. 作为老总,有些琐碎之事,你不该过问。老总就应该做一些比较大、有水平的事情,整天盯着下边的员工毕竟让人不舒服。例如,哪台计算机给谁使用,怎么又迟到早退啦,关于报销之类的事,等等。小事虽小,却使老总的形象毁于一旦。我从没有见过老总亲力亲为计算每个员工的年薪,并亲自发到每个员工的手中。——这也太平易近人了吧? 2. 纠偏过正。办公开支是应该节省,网是不能无限制地上,车是不能随便地打,话费是不能随便地报,出差费用是不能太高,但是也不要太低,否则员工会怨声载道的。 3. 要讲公平。迟到扣钱,那么加班呢?工作要讲效率,而不能光看工作时间,能不能完成工作要看自觉性,何必非要上下班打卡呢?准时上班我却打瞌睡,有何用呢?比如你自己,迟到多少回了,能说你上班没努力吗?你给我上保险,我很高兴,但这件事情你干得没水平。为什么每个人的待遇不一样,有的人上,有的人却没有?这对别人是不公平的,你怎么能够留住人心呢?这种小把戏完全是个人行为,而不是公司行为。 4. 说话要算数。我来的时候,张磊明确说过: 今年年薪按照一年算。但张磊走了,也无据可循,你记得不记得我就更不知道了。我来公司已经卖了力气,交给我的工作我都完成了,而且×××的项目我已给公司赚回了我的年薪,而且今年会有更多的项目。公司网络和布线方面没什么利润,这和我没有任何关系,居然年终没有双薪和奖励,而且扣钱,这使我决定走人。 5. 总经理用个人行为来管理公司,认为公司是总经理的,管理公司可以说是随心所欲,将公司管理得一塌糊涂,全凭一个人说了算,狭隘的私有财产心理在作怪,这是典型的小农经济思维方式。 6. 我比较喜欢自由的工作,没有束缚,喜欢有施展自己能力的空间,公司不适合我。我与西北人的工作方法和思考问题的方式基本无法沟通。每次去客户那里做项目,都要求我们喝酒、请三陪、揣钱,这些事完全违心而做,甚至有时候以“用户至上”的名义接受用户的刁难,尊严何在?这样的工作环境令我无法忍受、忍无可忍,因此我在公司无用武之地。 九个月来,我像个打杂的,今天调试产品,明天与客户沟通,或对用户说一些不着边际的谎话,做了很多没有意义和受累不讨好的工作,也没学着什么东西,浪费了不少时间,却没有完成工作的满足感和成就感。 我所做的工作与我来公司预期想象的完全不一样,我想你至今也不知道我擅长什么,我喜欢什么工作、我厌恶什么工作吧! 7. 公司像个小作坊,当一天和尚撞一天钟,没有安全感,大家在一起有混的感觉。无论公司以前怎么辉煌,至少现在公司缺少生气,而且我们拿项目靠的不是技术实力。换句话说,公司舍得在搞关系上挥金如土,在技术上却一毛不拔,一年了,没有任何技术资金投入。这也许就是作技术的与商人的区别。 8. 公司问题太多,不写了,你也不一定爱看。 9. 总之,我之所以在公司提出辞职,是因为公司给我的发展空间有限,而且我表现出的能力,老板不懂得欣赏。我多年跳槽的准则是: 既然老板不给自己发展机会,自己也不会给老板机会——辞职走人。 10. 我觉得公司发展的好好的,开发人员也习惯了目前的工作方式,突然冒出个晨落先生在我们公司搞软件过程改进,比我们管理水平强的软件公司都不愿意搞这些工作,就凭公司目前的管理水平,我对软件过程改进没有足够的信心。另外,自从新的开发规范推广开始,我们整天纠缠在那无聊且毫无用处的文档编写当中,在我看来那就是废纸一堆。当然,我知道公司在这方面已经投入不少资金了,刹车也很难了。 10万年薪,你也许能够找到比我好的职员,但你千万不要以为仅仅靠这10万年薪就可以留住一个技术人员的心。本来现在就是一个双向选择、互炒鱿鱼的时代,少了谁公司都照样运转。我对公司实心实意,公司也要对得起我哦。 我辞职对公司不会有任何影响,高手有的是,祝愿公司兴旺发达! 辞职申请人: 柳枝
《软件是这样“炼”成的——软件架构设计实现》是《软件是这样“炼”成的——软件过程管理与软件测试过程》和《软件是这样“炼”成的——从软件需求分析到软件架构设计》设计的最后延续,同样用投核保系统为本书连贯性的案例解读软件架构设计。通过独特的场景描述、纪实性的记录手法,深入剖析了系统开发模式、各种工具的安装与配置过程、数据架构设计实现过程和软件架构设计实现等四方面的内容。本系列书是作者对自己多年的软件开发的工作和培训经验、技术要领和心得的总结和升华,以软件生命周期为主线,将各种软件开发相关的思想、方法、工具、技术点巧妙地穿插其中,图表详尽、案例难易适中、内容通俗易懂、语言严谨但不失活泼,真可谓是详实的软件“炼成”教学片,完整的软件“炼成”纪录片,每一位软件开发和管理从业人员必备的“软件修炼宝典”!
媒体推荐
《软件是这样“炼”成的——软件架构设计实现》是《软件是这样“炼”成的——软件过程管理与软件测试》和《软件是这样“炼”成的——从软件需求分析到软件架构设计》的延续,将投核保系统作为**的、连贯性的案例全程记录和解读软件架构设计。本书从文字组织到结构设计方面既不是以理论为主调的“学院派”编写风格,也不是以应用介绍为主调的“应用派”编写风格,而是采用了情景对话、场景再现、自然语言的叙述方式。本书是在解读投核保系统的详细设计、数据库设计和软件详细设计的基础上介绍了软件开发过程管理中应用的理论知识以及这些知识的应用,同时分析了这些理论知识的应用场景,然后以投核保系统为案例将软件开发过程中各个阶段的成果完整地展现给读者。本书包括四篇,即**篇“开发之旅起航”、第二篇“软件开发环境设计实现”、第三篇“基于Oracle的数据架构设计实现”和第四篇“基于Struts2.0+EJB3.0的软件架构设计实现”。本书可以让读者了解如何在解读架构设计的基础上完成企业软件开发的过程,适合于从事软件开发的软件开发管理人员、系统分析师、架构师、程序员阅读,也适合于计算机相关专业的毕业生在就业之前了解企业软件开发的过程,同时也可以作为大学计算机软件专业项目实训的参考教材。
作者简介
作者:王朔韬
王朔韬,1995年毕业于西安公路交通大学(现长安大学),从事软件开发工作将近20年; 2004年至今,主要从事软件企业管理咨询工作,咨询内容包括软件企业开发过程咨询及大型非软件企业的信息化建设规划等,咨询的客户包括南方航空公司、上海沪东中华造船厂等几十家软件企业及大型非软件企业; 2009年担任IBM高校师资培训主讲老师,也承担怀华学院计算机系部分课程的讲授工作,主要研究方向是软件企业开发过程改进和软件架构。作者目前已与清华大学出版社合作出版了《软件是这样“炼”成的——从软件需求分析到软件架构设计》、《软件是这样“炼”成的——软件过程管理与软件测试》,《软件是这样“炼”成的——软件架构设计实现》是前两本书的设计实现。
目录
系列书引言
第一篇开发之旅起航
第1章程序员辞职报告讨论
第2章设计实现过程讨论
第3章关于高素质程序员的讨论
3.1高素质程序员应该具有哪些职业素养
3.2讨论异常
3.3讨论高质量程序代码
3.4解读详细设计报告,编写程序代码
3.5小结
第4章投核保系统编码规范
4.1排版规范
4.1.1注释规范
4.1.2命名规范
4.1.3编码规范
4.2投核保系统的代码走查说明
4.2.1代码走查规则
4.2.2代码走查报告
第5章本书导读
5.1本书的编写思路
5.2本书结构说明及系列书关联说明
第6章开发模式选择
第二篇软件开发环境设计实现
第7章搭建项目组开发环境
7.1关于项目组开发环境的讨论
7.2解读配置图,绘制开发环境网络拓扑
第8章Oracle WebLogic介绍
8.1Oracle WebLogic概述
8.2Oracle WebLogic的安装
8.3创建域
第9章Oracle数据库介绍
9.1Oracle数据库概述
9.2Oracle数据库体系结构
9.2.1数据库存储结构
9.2.2内存结构
9.2.3实例体系结构
9.2.4实例进程结构
9.2.5数据字典
9.3Oracle产品介绍
9.3.1数据库服务器及投核保系统
9.3.2应用服务器
9.4企业管理器
9.5Oracle客户端工具的选择
第10章Oracle数据库开发环境的搭建
10.1解读数据库设计报告,规划数据库安装
10.1.1解读需求分析报告
10.1.2安装数据库的软/硬件要求
10.1.3投棱保系统数据库服务器开发时的参数
10.2安装Oracle软件
10.2.1Oracle 11g的下载
10.2.2Oracle 11g的安装
10.3使用DBCA创建数据库
10.4配置NetConfiguration Assistant
第11章投核保系统软件配置管理过程及工具选择
11.1关于软件配置管理过程的讨论
11.2投核保系统软件配置过程规范
11.3投核保系统配置库使用制度
11.4关于配置管理工具的选择
第12章解读配置管理计划,搭建配置管理环境
12.1投核保系统软件配置管理计划全文
12.2CVS配置管理工具介绍
12.2.1CVS简介
12.2.2CVS中的基本概念
12.2.3环境搭建的准备
12.3投核保系统软件配置管理服务器CVS的安装与配置
12.3.1安装及配置CVS服务器
12.3.2配置投核保系统的配置库结构
12.3.3CVS用户的权限分配
12.4投核保管理系统CVS客户端的安装与配置
12.4.1WinCVS客户端的安装
12.4.2WinCVS客户端的配置
第13章投核保系统开发环境配置手册
13.1投核保系统开发环境的配置
13.2开发环境配置表
13.2.1数据库开发组开发环境配置表
13.2.2业务逻辑开发环境配置表
13.2.3表示层开发环境配置表
13.3JDK7.0的安装与配置
13.4MyEclipse的安装
13.5部署EJB服务
13.6安装与配置JUnit
13.7安装与配置Ant
13.7.1安装Ant
13.7.2配置Ant
137.3Ant与JUnit的集成
13.8在MyEclipse中配置Oracle数据源
13.9安装Eclipse HTML Editor
第三篇基于Oracle的数据架构设计实现
第14章投核保系统数据库设计报告
14.1引言
14.1.1编写目的
14.1.2预期待和阅读建议
14.1.3参考资料
14.2数据库设计命名规范
14.2.1数据库设计字符规范
14.2.2数据库对象命名规范
14.3数据库实体关系设计
14.4数据库逻辑设计
14.5数据库物理设计
14.5.1投核保系统数据库物理设计图
14.5.2初始数据库大小
14.5.3数据库增长速度
14.5.4记录查找的类型和平均数量
14.5.5网络和共享访问需求
14.5.6性能
14.5.7安全性
14.5.8数据备份和恢复
14.5.9数据库及数据表空间设计
14.6数据库基本表设计
14.7索引设计
14.8视图设计
14.9授权设计
第15章投核保系统数据库实施讨论
15.1数据库实施过程讨论
15.2关于优化实例内存的讨论
第16章Oracle SQL简介
16.1SQL语言概述
16.1.1SQL语言的特点
161.2SQL语言的编写规则
16.2SQL语言的分类
16.3不同类型的SQL语言场景分析
16.3.1SQL查询语言应用场景分析
16.3.2DML语言应用场景分析
16.3.3TCL语言应用场景分析
16.3.4DDL语言应用场景分析
16.3.5DCL语言应用场景分析
第17章Oracle Enterprise Management介绍
17.1配置Oracle Enterprise Manager
17.2主目录
17.3性能
17.3.1CPU性能
17.3.2吞吐量
17.3.3I/O
17.3.4并行执行
17.3.5服务
17.4可用性
17.4.1高可用性控制台
17.4.2备份/恢复
17.4.3Oracle Secure Backup
17.5服务器
17.5.1存储
17.5.2数据库配置
17.5.3Oracle Scheduler
17.6方案
17.6.1数据库对象
17.6.2程序
17.6.3实体化视图
17.6.4用户定义类型
17.7数据移动
17.8软件和支持
17.9小结
第18章Oracle SQL Developer介绍
18.1创建数据库连接
18.2对象浏览窗口
18.3使用SQL Developer调试PL/SQL
18.4菜单栏
18.5小结
第19章QQL Plus介绍
19.1SQL Plus简介
19.2SQL语句、PL/SQL块和SQLPlus命令之间的区别
19.3SQL Plus的启动
19.4使用SQL Plus的编辑功能
19.4.1编辑命令
19.4.2保存命令
19.4.3加入注释
19.4.4运行命令
19.4.5跟踪语句
19.4.6环境参数的设置
19.5小结
第20章投核保系统表空间设计实现
20.1关于表空间的讨论
20.2Oracle表空间介绍
20.2.1Oracle数据存储模型
20.2.2Oracle 11g表空间类型
20.3解读数据库设计报告,规划表空间
20.4使用OEM创建数据表空间
20.5使用SQL Plus创建数据表空间
20.6管理表空问
20.6.1通过Oracle Enterprise Manager管理表空间
20.6.2通过SQL Developer管理表空间
第21章投核保系统数据表设计实现
21.1Oracle概述表概述
21.1.1数据表的数据类型
21.1.2数据表的分区
21.1.3创建数据表时的注意事项
21.2解读数据库设计报告,分析数据表
21.3使用SQL Developer创建数据表
21.4使用SQL Plus管理数据表
21.4.1管理表
21.4.2管理表分区
21.5关于优化数据表性能的讨论
第22章SQL SELECT语句研究
22.1SQL SELECT语句的格式
22.1.1SELECT语句的语法格式
22.1.2SELECT语句的编写规则
22.1.3Oracle SELECT的执行步骤
22.2使用WHERE子句限制条件指定行
22.3使用ORDER BY排序
……
22.5使用GROUP BY进行数据分组
22.6使用HAVING分组数据
22.7表的连接
22.7.1左外连接
22.7.2右外连接
22.7.3全外连接
22.7.4自连接
22.8输出目标INTO子句
22.9复杂SELECT语句的使用
22.9.1集合操作
22.9.2子查询
22.9.3CASE语句的使用
22.10关于SQL SELECT语句性能的讨论
第23章投核保系统索引设计实现
23.1Oracle索引概述
23.2索引类型及应用场景
23.2.1B*树索引
23.2.2反向索引
23.2.3降序索引
23.2.4位图索引
23.2.5函数索引
23.3索引分区
23.3.1全局索引的特点
23.3.2本地索引的特点
23.4解读数据库设计报告,分析数据表索引
23.5使用SQL Developer创建索引
23.6使用SQL Plus管理索引
23.6.1建立索引
23.6.2管理索引
23.6.3管理索引分区
23.7关于索引性能的讨论
第24章投核保系统视图设计实现
24.1视图介绍
24.1.1视图的概念
24.1.2视图的优点
24.1.3视图的分类
24.2解读数据库设计报告,设计视图
24.3使用SQL Developer创建视图
24.4使用SQL Plus管理视图
24.4.1创建视图
24.4.2更改视图
24.4.3删除视图
24.4.4查看视图
第25章存储过程与触发器设计实现
25.1存储过程介绍
25.1.1存储过程的概念
25.1.2存储过程的优点
25.1.3存储过程的语法格式
25.2触发器介绍
25.2.1触发器的概念
25.2.2触发器的语法格式
25.2.3触发器的组成
25.3解读数据库设计报告,规埘存储过程与触发器
25.3.1存储过程的规划
25.3.2触发器的规划
25.4使用SQL Developer开发触发器
25.5使用SQL Developer开发存储过程
25.5.1创建存储过程
25.5.2修改存储过程
25.6存储过程例程
第26章投核保系统数据库用户管理
26.1Oracle用户、角色、权限和模式
26.2解读数据库设计报告,规划角色
26.2.1DBA角色的规划
26.2.2开发者角色的规划
26.2.3公司管理层对象的操作授权
26.2.4部门管理的操作授权
26.2.5公司业务人员的操作授权
26.3创建和管理角色
26.3.1创建角色
26.3.2通过SQL Plus管理角色
26.3.3查看角色
26.4使用者组
26.5创建和臂理用户账户
26.5.1使用Oracle Enterprise Manager完成用户的创建
26.5.2使用SQL Plus管理用户
第27章投核保系统数据库安全性设计实现
27.1Oracle安全性设计要求
27.2解读数据库设计报告,管理用户资源
27.2.1用户资源的基本概念
27.2.2投核保系统用户资源配置表
27.3Oracle用户资源配置的设计实现
27.3.1使用Oracle Enterpeise Management配置用户资源
27.3.2使用SQL Developer创建概要文件
27.4Oracle数据库审计
27.4.1审计的概念
27.4.2投核保系统的用户角色审计说明
27.4.3使用Oracle Enterprise Management实现审计功能
27.5透明数据加密
第28章关于数据库设计实现总结
……
第四篇基于Struts 2.0+EJB 3.0的软件架构设计实现
后记
序言
前言
经过多年的积累以及整理和思考,“软件是这样‘炼’成的”系列书终于在艰难中“分娩了”,《软件是这样“炼”成的——从软件需求分析到软件架构设计》和《软件是这样“炼”成的——软件过程管理与软件测试》相继出版发行,读者数量也不错,有许多忠实的读者通过微信和QQ消息发来了最为诚恳的建议,这些读者给了我继续写下去的动力。本书书名为《软件是这样“炼”成的——软件架构设计实现》,这本书的出版完成了一个项目的全程记录,将投核保系统项目的全部过程展现给读者,让读者通过项目感悟项目开发过程中可能遇到的各种挫折及解决问题的思路。
本系列书的最大特点是将学院派和应用派的两大著书思想有效地结合起来,既没有专注讲空洞的理论,也没有专注于讲宽泛的应用,将理论与实践融合起来,能够给读者以新的感受和收获。在文字组织上,本系列书采取了场景再现、情景对话等方式,将软件企业开发过程中的软件过程改进、软件过程管理和软件测试过程全面展现给读者。本书自始至终使用保险公司的投核保系统作为案例,将软件开发的各个环节串连起来,使得读者能够系统地、完整地了解项目开发的全部过程。
本书由四篇共50章组成。第一篇“开发之旅起航”以投核保系统为案例,通过叙事方式分析软件编程设计过程中存在的问题,并且引出了投核保系统的开发模式; 第二篇以投核保系统配置图为设计依据,全面介绍了各种工具的安装与配置过程; 第三篇是以投核保系统为案例,以投核保系统数据架构设计为依据,介绍了基于Oracle的数据架构设计实现过程; 第四篇是以投核保系统详细设计架构为设计依据,介绍了基于Struts 2.0和EJB 3.0的技术方法将软件架构设计最终落实到具体的代码上。
《软件是这样“炼”成的——从软件需求分析到软件架构设计》和《软件是这样“炼”成的——软件过程管理与软件测试》两本书出版以后得到了广大读者的殷切关注和大力支持,并且提出了许多宝贵的意见,这里表示真心的感谢,希望各位继续提出宝贵的意见。
在本书的编写过程中得到了家人和朋友的大力支持,在此我要感谢我的妻子商莉和我的女儿王贝思给予我的最大的支持,同时感谢我的好朋友罗少木和姜伟给予我的帮助和大力支持。
由于作者水平有限,书中难免有疏漏和不足之处,恳请各位专家和广大读者提出宝贵的意见。如果读者在阅读过程中遇到问题,可以直接和本人联系。
作者2017年5月
文摘
第一篇开发之旅起航第1章程序员辞职报告讨论政企分不清必然导致官商勾结,官商勾结自然就会形成工程项目具有一定的政治色彩。有时候,政治风云变幻会导致企业变得人心动荡。与昂特拉软件公司签署投核保系统的天意保险公司尽管是一家民营企业,但是,保险公司必然要接受政府机构的管理,政府机构谈的就是政治,那么企业也必须关注政治了。 前一段时间,管理保险公司的某个政府官员因为经济问题被调查了,据说民营保险公司为了获取一定的市场份额不得不向此官员行贿。保险公司总经理因为行贿自然也被牵连进去了,已经在某个地方受控制了。新调来一位姓张的保险公司总经理,该经理名叫张强(化名),他是由政府指定的,据说张总经理曾经任职于国家某部主管旅游业。张强上任的第一件事就是对保险公司的人员进行大调整,信息中心原主任自然被“拿”下去了,新上任的信息中心主任据说是在政府机构有人,原信息中心主任据说要离开天意保险公司了,具体去向不太清楚。 对于昂特拉软件公司来说,这次天意保险公司的人事变动只能用“晴天霹雳”来形容了,尽管项目不至于停止,但与客户沟通存在问题。另外,昂特拉软件公司的软件过程改进也遇到了不少麻烦,来自架构师、程序员、市场经理、测试经理和质量部门的各种不良情绪以及对公司软件开发的焦虑使得总经理徐杰束手无策。今天在BCD商务中心的某个上岛咖啡厅徐杰与晨落就软件过程改进再次深度讨论。 今天徐杰总经理情绪有点低落,主要是最近的各类繁杂事情让他剪不断、理还乱。晨落坐下来后徐杰总经理说道: “最近遇到麻烦事了。” 晨落吃惊地问道: “徐总,你也会不开心啊?看来确实遇到困难了,我们可否共同分析一下呢?” 徐杰说道: “最近遇到麻烦了,投核保系统项目遇到麻烦了,我们客户的信息中心主任最近要辞职了,据说和原来的保险公司总经理是一批人马,现在新的总经理上任后将原来各部门的主管全部给替换了。” 晨落说道: “这与我们的投核保系统项目有什么关系呢?” 徐杰说道: “当然有关系了,因为现在刚刚上任的信息中心主任张强是新任总经理的嫡系,这个倒没有关系,但是,在我们签署投核保系统合同时遭受到张强的百般刁难,他极力推荐某个软件开发公司,我这里就不说具体名称了,这个软件公司经理刚好是现在新信息中心主任张强的同学。” 晨落说道: “嗯,现在合同签署了,难道他能终止合同不成?” 徐杰说道: “这个倒不会,但是在合同执行过程中不像原来那样好说话了,特别是项目进度问题,投核保系统项目从目前的进度来看没有办法按合同规定的时间完成任务了。” 晨落说道: “那你现在过虑的是如果不按照合同执行会导致张强按照合同的约定处罚违约金吗?” “是的”,徐杰低了低头说道。 晨落继续说道: “按照一般规律,张强也不能太过激,因为他毕竟要照顾信息中心其他成员的感受。” 徐杰接着说道: “问题是在签署投核保系统时张强极力把这个项目推荐给他同学的公司,在市场活动中,我们当时也没有照顾张强这个角色,在市场公关过程中没有给予什么搭点,估计他现在还心怀不满。” 晨落分析道: “一般情况下,一个管理者会有这么几种心态管理自己的团队,第一种是确实想把事情干好,也不考虑个人利益; 第二种是想把事情干好的同时考虑个人利益; 第三种是只考虑个人利益,不考虑事情做好的问题; 第四种人很少见,那就是既不考虑个人利益也不考虑事情做好的问题。根据你的了解,张强属于哪种类型的人?” 徐杰说道: “我不太明白您说的意思。” 晨落说道: “我是这样认为的,可以根据不同种类的人决定我们拓展市场的方法。对于第一种人,与他沟通起来是最理想的状态,他会更加关注项目的质量问题而不是进度问题,他也不会刁难客户的; 第二种人其实好说,那就是均衡利益了; 第三种人只考虑个人利益,我觉得从开发市场的角度来说其实并不难,给他足够的利益就行,反正羊毛出在羊身上; 第四种人估计不存在,他毕竟是需要做点什么事情的。” 徐杰说道: “在我看来,他有点像第三种人。” 晨落说道: “那你搞了这么多年市场了,凭你的经验你应该知道怎么处理这件事情了。投核保系统项目的进度尽管按照合同约定要延期了,但是,我觉得这是在我们计划之中和可控制中的,张强上任以后,我们需要加强与张强的沟通,争取获得他的支持。” 徐杰继续说道: “我所担心的是我们前面花了这么多的财力和物力,好不容易抢来的市场份额就这样白白地丢掉了。” 晨落安慰道: “我不这么认为,通过投核保系统项目,我们也锻炼了我们的团队。另外,如果我们的产品质量过关且功能能够完全满足用户的需求,我们就为后续其他保险公司的市场拓展提供了案例。还有,尽管张强这个信息中心主任不是干实事的人,但是他的员工总有一部分人想把事业搞好,我们的产品的使用者是保险公司所有员工而不是张强本人,所以,你不能这样悲观。” 徐杰说道: “那目前我们需要解决的是进度问题,也就是需要和张强协调延迟项目进度了。” 晨落问道: “中心主任现在办理离职手续了吗?张强上任了没有?” 徐杰说道: “刚刚任命,原中心主任还没有离职。” 晨落说道: “有个办法可以解决,在主任的离职手续没有办完之前,你可以考虑写一份项目延期申请报告,在主任离职之前让他签字和盖章,之后张强上任也没有什么可说的了,然后我们加强对张强的公关。” 徐杰说道: “好的,投核保系统的相关事宜就讨论到这里。另外一些事情是软件过程改进中遇到的问题,我这段时间陆续收到各部门写的电子邮件,表达了软件过程改进中的一些自己的看法,我今天选了几份具有代表性的邮件请你看看,然后我们共同分析一下,怎么样?” 晨落说道: “这个应该没有什么问题,有员工反映问题是件好事,说明大家开始执行并且关注软件过程改进了。我们可以共同讨论问题所在并且寻找解决问题的办法。” 徐杰挑选了几份具有代表性的辞职报告发给晨落,张杰的辞职报告全文如下:尊敬的徐总:您好!我是研发部程序员张杰,今天很遗憾向您提出辞职申请,对于我的辞职实属无奈之举。下面是我的辞职报告内容:我是毕业就过来公司,三年的编程经历,虽然使我在各方面都提高了不少,然而离我实际的目标还是有很大的差距,这个跟公司和我自己都有关系,我觉得在公司里短期内不能让自己满意。从目前的情况来看,在公司再待下去也不会有太大的改观。 第一点,自我感觉职业生涯发展遇到瓶颈。三年前我是个程序员,现在仍是程序员,虽然希望自己向技术管理方面发展,但是没有这样的机会。从目前情况来看,在公司继续发展也看不到下一步该如何走,可能仍是一个程序员。 第二点,我在技术上没有太大的提高。三年来我做了不少产品,但技术提高没有如自己所愿。三年前我独立做出了软件,现在仍在吃老本,只是稍微熟练而己。三年来我也在不断地学习,为公司的需要和自身的发展做着准备。从公司目前的产品发展方向来看,我下一步能在技术上有大的突破的机会也不多。 第三点,薪资待遇未能如我所愿。三年来我的薪资虽然上涨了一些,到现在也只是跟市场持平,但持平不是我想要的,薪资到了这个阶段应该有一个大的提高了,我更希望有一个质变,在公司再发展下去也不一定能涨多少。从公司现在的发展来看,现在需要的可能是经验和薪资要求都适中的程序员。 总之,辞职有多方面的原因,最主要的还是我自己的原因,现在我申请辞职,希望领导能够批准,我将尽最大努力做好交接工作。 辞职申请人: 张杰“还有吗?”晨落问道。 徐杰答道: “有,这是柳枝的辞职报告。”徐总:您好!我刚来到这个新环境,开始感觉还不错,真是想好好干下去。事实上也是如此,我很久没在一个公司干过这么长时间。我原来有很多项目,本想拉到公司来做,但是公司的很多事情和你的行为让我感到失望。我以为,跟随一个英明果断、有人格魅力的领导打工,我才有发展和前(钱)途。 在私企干了这么久,我非常了解老板的辛苦,老板也很难,所以我有利益上的不满很少说,当我无法忍受的时候就辞职。但我觉得有些事情不得不说给你听:1. 作为老总,有些琐碎之事,你不该过问。老总就应该做一些比较大、有水平的事情,整天盯着下边的员工毕竟让人不舒服。例如,哪台计算机给谁使用,怎么又迟到早退啦,关于报销之类的事,等等。小事虽小,却使老总的形象毁于一旦。我从没有见过老总亲力亲为计算每个员工的年薪,并亲自发到每个员工的手中。——这也太平易近人了吧? 2. 纠偏过正。办公开支是应该节省,网是不能无限制地上,车是不能随便地打,话费是不能随便地报,出差费用是不能太高,但是也不要太低,否则员工会怨声载道的。 3. 要讲公平。迟到扣钱,那么加班呢?工作要讲效率,而不能光看工作时间,能不能完成工作要看自觉性,何必非要上下班打卡呢?准时上班我却打瞌睡,有何用呢?比如你自己,迟到多少回了,能说你上班没努力吗?你给我上保险,我很高兴,但这件事情你干得没水平。为什么每个人的待遇不一样,有的人上,有的人却没有?这对别人是不公平的,你怎么能够留住人心呢?这种小把戏完全是个人行为,而不是公司行为。 4. 说话要算数。我来的时候,张磊明确说过: 今年年薪按照一年算。但张磊走了,也无据可循,你记得不记得我就更不知道了。我来公司已经卖了力气,交给我的工作我都完成了,而且×××的项目我已给公司赚回了我的年薪,而且今年会有更多的项目。公司网络和布线方面没什么利润,这和我没有任何关系,居然年终没有双薪和奖励,而且扣钱,这使我决定走人。 5. 总经理用个人行为来管理公司,认为公司是总经理的,管理公司可以说是随心所欲,将公司管理得一塌糊涂,全凭一个人说了算,狭隘的私有财产心理在作怪,这是典型的小农经济思维方式。 6. 我比较喜欢自由的工作,没有束缚,喜欢有施展自己能力的空间,公司不适合我。我与西北人的工作方法和思考问题的方式基本无法沟通。每次去客户那里做项目,都要求我们喝酒、请三陪、揣钱,这些事完全违心而做,甚至有时候以“用户至上”的名义接受用户的刁难,尊严何在?这样的工作环境令我无法忍受、忍无可忍,因此我在公司无用武之地。 九个月来,我像个打杂的,今天调试产品,明天与客户沟通,或对用户说一些不着边际的谎话,做了很多没有意义和受累不讨好的工作,也没学着什么东西,浪费了不少时间,却没有完成工作的满足感和成就感。 我所做的工作与我来公司预期想象的完全不一样,我想你至今也不知道我擅长什么,我喜欢什么工作、我厌恶什么工作吧! 7. 公司像个小作坊,当一天和尚撞一天钟,没有安全感,大家在一起有混的感觉。无论公司以前怎么辉煌,至少现在公司缺少生气,而且我们拿项目靠的不是技术实力。换句话说,公司舍得在搞关系上挥金如土,在技术上却一毛不拔,一年了,没有任何技术资金投入。这也许就是作技术的与商人的区别。 8. 公司问题太多,不写了,你也不一定爱看。 9. 总之,我之所以在公司提出辞职,是因为公司给我的发展空间有限,而且我表现出的能力,老板不懂得欣赏。我多年跳槽的准则是: 既然老板不给自己发展机会,自己也不会给老板机会——辞职走人。 10. 我觉得公司发展的好好的,开发人员也习惯了目前的工作方式,突然冒出个晨落先生在我们公司搞软件过程改进,比我们管理水平强的软件公司都不愿意搞这些工作,就凭公司目前的管理水平,我对软件过程改进没有足够的信心。另外,自从新的开发规范推广开始,我们整天纠缠在那无聊且毫无用处的文档编写当中,在我看来那就是废纸一堆。当然,我知道公司在这方面已经投入不少资金了,刹车也很难了。 10万年薪,你也许能够找到比我好的职员,但你千万不要以为仅仅靠这10万年薪就可以留住一个技术人员的心。本来现在就是一个双向选择、互炒鱿鱼的时代,少了谁公司都照样运转。我对公司实心实意,公司也要对得起我哦。 我辞职对公司不会有任何影响,高手有的是,祝愿公司兴旺发达! 辞职申请人: 柳枝
ISBN | 9787302463566 |
---|---|
出版社 | 清华大学出版社 |
作者 | 王朔韬 |
尺寸 | 16 |