项目维护开发:一个优秀程序员从接手到熟悉的智慧

2023-05-16


    最新在从事TOO基础选课系统的项目维护工作,除了调BUG外,偶尔还开发些新功能,在这段时间,自己总结了一些东西,相信对一些没有从事过项目维护的朋友会有一些帮助的。作为出初级程序员,有时候我们不能选择自己去从事项目开发或维护,但是如果你是刚开始IT生涯,那么项目维护是你必须经历的一个阶段,没有公司敢直接把你放到项目开发的第一线,你会从维护开始,从熟悉公司业务开始。所有这篇博客还是有些帮助的。        

  

    程序员和公司的矛盾:

    程序员:想要重构,不想维护;

    公 司:80%维护,20%开发;

  

    每个优秀的程序员都是孤傲的,对于别人的代码总是不屑一顾,但是却看不到自己存在的问题。当让你去看别人的代码、维护别人的”孩子“的时候,你总是显得不耐烦,在你看来谁家的代码都不如自己的代码好。在这种心态,尤其是你还就职在非技术型产品公司,他们的文档有效率几乎停留在10%-30%,这时候的你该怎么办?多数表现的很敷衍,工作积极性很低,发挥不出自己的价值。每个公司总是以盈利为目的的。对于公司来说,能跑的代码最好不要重构,因为重构意味着同样的产出却需要加倍的投入,会减少利润。尤其是非技术性公司,他不懂得如何延长产品的生命周期,短、快,粗的开发模式对他们来说是最好的发展方式,也最有效。也许他们意识到了不利于长远发展,但是并没有选择。

    这个矛盾在目前的中国是很普遍的,尤其是随着外包的流行,导致不合格开发人员拍拍屁股拿着钱潇洒走人,接手的维护人愁眉苦脸,喊爹骂娘。项目维护几乎是程序员的噩梦。不过办法总比困难多,这里有几个方法可以最大程度的医治维护项目程序员的死亡。

 

    核心原则:

    1.不要试图先搞懂整个项目; 

    2.注重“有效提交”;


    参加过项目维护的程序员应该都知道,项目维护其实就是让你做做后期的维护工作,项目的框架、结构已经完成,甚至主要你功能已经实现,甚至已经上线了,你要做的就是处理下客户邮件、调调BUG、修改下小功能,只有很个别的时候会让你去开发新的功能。所以对自己的定位很重要,参加了项目维护,不要着急整个框架的设计和理解,应注重”有效提交“。它的意思是及时完成PM交给你的任务,以任务为第一。让自己的价值先绽放出来,而不是自己的研究学习能力。否则,会出现,你研究了整个项目的框架结构,熟知了所有的技术要点,却被无情的踢了出来,因为你的价值并没有表现出来。先站稳,再向上爬。

 

    接手方法:不变应万变。

 

    1.项目维护有三宝:沟通 、文档 、代码跑。 

     目标:了解业务逻辑流。

 

    这三点很好理解,初步接手要请教前辈给你点一点业务重点、难点,让自己熟悉下;接着就是看系统的文档了,可以让自己迅速的了解整个项目的方方面面;最后就是走代码,因为前辈的指点可能有误,文档的书写可能有漏,作为一个优秀的程序员只相信自己走的代码,用自己的代码去验证文档,才是最正确的做法。文档只是给了你方向。走代码才能真实的了解具体的业务逻辑。

 

    2.重点攻击:数据结构+ER模型。

 

     目的:熟知项目的数据结构关系。


    其实从事多年的老鸟可以发现,不管是C/S或者B/S,怎样的开发最后都是无非是底层数据库的数据排列筛选好后传递到前台。所以对待一个新的项目,去研究它的数据结构和库表是很有效的。这就要求我们对数据结构这块进行深入研究。

       

    3.工具:Navicat Premium。

 

     目的:提高接手的效率,节省时间。

 

    所谓预先善其事,必先利其器,良好且功能强大的软件开发工具可以很好的给我们提供便利,可以让我们迅速的了解项目的基础结构。Navicat Premium是一款很强大的数据库可视化工具,可以让我们在对数据库操作中提供很多便利。具体到开发什么项目可以去搜搜看有什么好的工具,

          

    项目出活四部曲,跟、改、理、测要一起。

 

    1.跟:抓住一个功能点,深入的调试跟踪流程,分析代码直到弄明白为止。

 

    2. 改:修改源代码,编译运行,看修改前后有什么变化,这是感知代码用途的最佳途径。

 

    3. 理:尝试弄清整个项目的业务逻辑。


    4. 测:熟悉业务逻辑后,清库测试,测验是否符合自己所想。

 

    维护实用技巧:

 

    1.任何举动要备份;


    2.修改代码涉及到很多的依赖,所以新增代码相对而言风险较小。(时间充足:对方法进行包装或者重写,甚至是直接修改)。

 

    3.多和原设计人员交流;

 


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

项目维护开发:一个优秀程序员从接手到熟悉的智慧 的相关文章

  • 基于MATLAB的卷积神经网络车牌识别系统

    车牌识别是基于车牌照片的车牌信息的识别工作 xff0c 车牌识别技术对我们的实际生活至关重要 xff0c 例如交通违规行为的增加 xff0c 拦截非法车辆 xff0c 在速度上能够进行快速识别能够很好地解决这些问题 获得的照片的质量是影响车
  • 互连网络的定义

    原文 xff1a http julong com cn Service FAQview asp FAQID 61 15 互联网络是一通过中间网络设备连接多个独立网络的集合 xff0c 其功能是形成一个覆盖范围更广的网络 网络互联技术意指工业
  • Win11本地安装Ubuntu 22.04 双系统简易教程

    1 制作启动U盘 首先找到一个硬盘容量不小于4G的空U盘 xff0c 需要对其进行格式化 然后下载Ubuntu 22 04的iso文件到本地 Ubuntu 22 04 1 LTS 中国地区下载链接 下载 UltraISO并制作启动U盘 Ul
  • 图文详解VMWare Workstation安装Ubuntu20.04虚拟机

    图文详解VMWare Workstation安装Ubuntu20 04虚拟机 0 准备工作1 新建虚拟机并进行初始配置2 安装虚拟机系统 0 准备工作 在使用VMWare Workstation进行Ubuntu20 04虚拟机安装前 xff
  • 理解数据库中的undo日志、redo日志、检查点

    数据库存放数据的文件 xff0c 本文称其为data file 数据库的内容在内存里是有缓存的 xff0c 这里命名为db buffer 某次操作 xff0c 我们取了数据库某表格中的数据 xff0c 这个数据会在内存中缓存一些时间 对这个
  • Token原理

    Q xff1a 分布式场景下如何生成token以及使用token的流程 xff1a 在分布式场景下 xff0c 可以采用以下方式生成 token 和进行权限认证 xff1a 1 生成 token xff1a 使用JWT xff08 JSON
  • 红外遥控其实so easy-第2季第2部分-朱有鹏-专题视频课程

    红外遥控其实so easy 第2季第2部分 1521人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第2季第2个课程 xff0c 主要讲解如何用单片机进行红外遥控解码 红外遥控是家电产品常用的控制方法 xff0c 通过本课程
  • idea ctrl+左键找到方法引用,选择 All Places的方法

    有时候在idea里点击某个方法想找到该方法在所有地方的引用 xff0c 但是有时候会发现idea默认是在项目文件里搜索 xff0c 这样就搜索不到jar包里的引用 xff0c 如果没有搜到项目里的引用 xff0c 弹窗就会一闪而过 xff0
  • 优雅地解决NullPointException

    null的困扰 通过上面代码示例 xff0c 我们可以发现使用null可能会带来的一系列困扰 xff1a 空指针异常 xff0c 导致代码运行时变得不可靠 xff0c 稍不留神可能就崩了使代码膨胀 xff0c 导致代码中充斥大量的null检
  • springboot 如何配置tomcat信息

    前言 前两天面试的时候 xff0c 面试官问我 xff1a 一个ip发请求过来 xff0c 是一个ip对应一个线程吗 xff1f 我突然愣住了 xff0c 对于SpringBoot如何处理请求好像从来没仔细思考过 xff0c 所以面试结束后
  • Visio2013里面的大括号

    打开Visio2013 xff0c 在左侧的 形状 里面 xff0c 选择 更多形状 gt 其他 Visio 方案 gt 标注 xff0c 然后就会在下面看到大括号了 xff0c 这个括号可以调整方向的 xff0c 把括号拉进 Visio
  • CNN几种经典模型比较

    LeNet5 LeNet5 诞生于 1994 年 xff0c 是最早的卷积神经网络之一 xff0c 并且推动了深度学习领域的发展 自从 1988 年开始 xff0c 在许多次成功的迭代后 xff0c 这项由 Yann LeCun 完成的开拓
  • matlab用mkdir在指定的文件夹下创建新的文件夹,并把图像保存在该文件夹内

    for i 61 1 size query image index 2 mkdir 39 指定的文件夹 39 num2str query image index i 在指定的文件路径下以变量名为名字创建新的文件夹 C 61 imgNamLi
  • MySQL安装之后如何启动

    安装好MySQL之后 xff0c 在MySQL的安装目录下找到MySQL server 的目录 xff08 默认安装目录在 xff1a C Program Files MySQL MySQL Server 5 7 xff09 xff0c 如
  • mysql 密码输入正确,登陆失败的原因

    从命令行输入密码登录mysql 的时候 xff0c 当密码输入正确 xff0c 而且出现如下提示的时候 xff1a 可能是因为你的mysql没有启动的原因造成的 xff0c 解决方法 xff1a 鼠标右键 我的电脑 xff08 或者是计算机
  • vo和dto的区别

    下面转自百度知道里的内容 xff0c 感觉是把dto和vo说反了 xff0c 但是也不排除确实有项目这么做的情况 xff0c 欢迎大家发表自己的意见 xff0c 我个人认为两者说反了 xff0c 不过说的还是通俗易懂的 按照标准来说 xff
  • java日期去掉时分秒,只保留年月日

    public class Test public static void main String args SimpleDateFormat sdf 61 new SimpleDateFormat 34 yyyy MM dd 34 Cale
  • 51单片机也能玩TFT彩屏-第2季第3部分-朱有鹏-专题视频课程

    51单片机也能玩TFT彩屏 第2季第3部分 2125人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第2季第3个课程 xff0c 主要讲解TFT液晶显示器的原理和编程显示线条 文字 图片等 本课程的学习目标是对较复杂的TFT
  • 大数据hadoop hdfs 读写流程

    1 HDFS读流程 1 首先调用FileSystem对象的open 方法 xff0c 其实获取的是一个DistributedFileSystem的实例 2 DistributedFileSystem用RPC调用元数据节点 xff0c 得到文

随机推荐