软件维护工作经验总结

  • 工作背景:2014年至2018年,在大企业维护一个2005年上线的集团OA项目,数据库和代码偏大,文档缺失。维护期间又不断开发OA新的子项目。
  • 【工作方式篇】
  • 被动式工作(没事不找事,有问题解决问题。这不是消极对待工作,而是因为维护岗位的核心原则是稳定压倒一切。)。
  • 日常维护工作流程 “接到问题 -> 通过IDE调试再现问题 -> (收集资料)分析问题 -> 解决问题 -> 反馈问题”
  • 接手一个新业务系统要对其全面了解,具体了解方面是
  • 了解业务逻辑(用户需求分析手册、通过代码反推、请教他人),如果业务复杂可以通过多角度、多维度、多侧面、多层次去理解你的业务。
  • 了解代码(系统三层概览及列出各层资源清单(业务类及其方法、工具类、js、dll等);了解项目组编码规范及项目组运作流程;系统中大量使用的技术点;常用代码段等)
  • 了解数据库(表(表关系、表字段)、存储过程、函数、视图、数据库设计规范)--可以借助相关SQL语句通过上帝视角全面了解
  • 系统部署信息
  • 每天记录工作日志(自己建个excel即可)。
    • Excel模板sheet有:
1、工作排序(特忙时启用);
2、“2018-1 ~ 2018-6;2017-7 ~ 2017-12;2017-1 ~ 2017-6;......”;
3、资料(存放供其他sheet引用的文字) ;
4、C#代码段;
5、js代码段;
6、SQL代码段

各sheet介绍:
1--特忙时启用此sheet。主要是对要办的工作根据轻重缓急排序。标题有“日期、编号、来源、反馈人、任务全文、任务摘要、耗时(h/天)、今天完成否(完成/等待/待评估/冻结)、解决方案、备注”
2--每天的工作日志。半年建一个sheet,日志标题有“日期、工作内容、备注、日志(批注:给自己看的日记)”。加班调休备注标题“加班日期(批注:具体到分钟)、合计(h)、请假日期、已用”
3--各sheet不适宜放大段备注,在本处可放大段文字供它们引用。
4、5、6--整理日常工作遇到代码段,方便日后重用。标题“代码段名称、代码段内容、时间戳”

  • 【代码篇】
  • 策略:重视基础知识、重视代码重构、建立代码评审机制
  • 代码要写的少做的多,写的代码从外在到内在要有品位。保证他人花最小的时间就能理解。
  • 写代码技巧:先从项目的相应层中找需要的方法 → 没有,则从网上找优秀的Helper类(或插件)→ 万不得已才自己去实现一个方法。总之,是尽量自己少写代码(避免重复造轮子),只写业务方面的代码。网友整理的相关Helper类很多,如:数据库、上传下载、导入导出excel、json转换、文件操作、压缩解压缩、xml操作等。
  • 把常用的代码段整理到工作日志中。
  • B/S架构系统,建议用富客户端技术,美观前卫,更重要的省不了精力(尤其对全栈开发者)。有些时候又必须兼容旧版本浏览器,造成了技术选型困难,对于这样情况富客户端技术的使用策略:考虑到admin人少,普通用户人多,建议前卫技术在admin页面大规模使用,普通用户则保持不变。用layui不错,门槛低,拿来即用,兼容IE8+。
  • 一定要重视业务。这里可以通过多个维度多个侧面去多画UML图,加快加深了解。画UML图(流程图、时序图、用例图、状态图等)以及其他你想画的图。工具:在线wps的流程图功能。
  • 【数据库篇】
  • 策略:一边工作一边整理自己的数据库字典。这个整理工作是落实在每次与数据库有关的维护工作中,前脚刚解决问题后脚就及时把有价值的碎片知识整理到EZDML里。
  • 使用工具:EZDML(表结构设计器)
  • 新人怎么了解某个表与其他表关系?看文档,看代码,问人,或看与它有关的存储过程或SQL。
  • 【技能篇】
  • 对技能最低要求是能满足开发工作,能解决客户的问题。js学习历程就是这样一个过程,先通过简单学习,能写出简单表单验证(基本上能解决工作中八成问题),然后学jQuery和bootstrap、jquery easyUI。最偷懒的技术提升方式是采用拿来就用的方式,类似于会用excel但是会用vlookup这样的功能是通过去百度掌握的,通过在遇到问题和解决问题过程中不断提升水平。
  • 巩固基础:时不时的学习基础知识,温故而知新。
  • 补齐短板:对开发过程中遇到的技术短板,要利用业余时间补齐。
  • 技术储备:了解学习未来可能用到的技术(或是学习能更好地解决工作中问题的技术)。
原文地址:https://www.cnblogs.com/anjun-xy/p/10589031.html