为什么新来的技术很难接手维护一个系统

为什么开发功能变得越来越慢?

 

某天来一个技术,他跟老板说:这个系统太臃肿了。很乱,我很难开展工作下去,至少很难按照我的经验和设想来实施。如果想让我顺利干下去,办法就是对系统进行重构一次(重构代码,或者开发新的系统替代原来系统)。

 

 

我们让项目变得可维护性有很多。对公司,对接手的技术,都是有利而无害的。

 

自己做的成果没法让下一任衔接。就像官员上任,任期满了后。这个烫手的山芋丢给下一任去解决。我这一任期内,维护稳定不出事情就可以。

 

片面追求gdp指标,就好像片面追求功能的完成,不管功能完成的质量。外行也没法评价功能完成的质量,他们只能说:这个功能达到我的预期了。就是质量好。

 

这就好比,gdp达到预期指标了。就是质量好。可是会忽略掉一些重要的东西。

 

 

我发现非常像系统一样:只要保证我在这公司干这段时间内,系统是稳定的,可以继续加功能完成上面的任务即可。至于定时炸弹什么时候爆发,只要不在我任期内爆发就可以了。

于是我在任期内,明明知道这里是一个坑,都懒得去做代码优化,做重构了。干嘛要浪费自己时间做这种事情。

 

 

 

为什么招聘经验丰富的技术投入和产出很值得。避免了很多坑,留给以后的技术债务。

 

我觉得,至少要招聘经验丰富的技术作为领头羊带领下面的人,有一个正面的能量。

 

俗话说,上梁不正下梁歪,下面的人都是看领导是什么水平的。领导是一个什么样技术思想,下面的人就能够很好的施展开来。

 

 

 

 

命名是可维护性的第一步,代码的功底倒是其次,因为每个人的技术经验不一样。

用拼音命名带来接手人员的阅读成本。比如用拼音命名变量或者程序文件

zhuanti
pt
其实是拼音的缩写,看不懂在干嘛

我们第一眼看不出这个要表达的意思,维护一个系统只能靠看代码来沟通了

好的命名,就是减少误解、减少沟通


比如,以前有code,后来有app跳转到网页时也有一个code,但是是app_code

命名上没有区分开,造成了一些沟通障碍。

开源组件amqp扩展,一个函数原来用的命名是:AMQPConnection::setTimeout():设置超时时间?读还是写,还是连接超时时间?

后来他们就改为了:AMQPConnection::setReadTimeout() ,好的命名看到就知道,噢,这是设置读的超时时间


哪怕是刚毕业的技术,没啥经验。这种风格也是很容易学的。这样他写的代码,就可以让别人好接手维护。

 

转载于:https://www.cnblogs.com/wangtao_20/p/4781785.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Warning: mysqli::__construct(): php_network_getaddresses: getaddrinfo failed:

原来数据库的配置是这样的 DB_CONNECTIONmysql DB_HOSTlocalhost DB_PORT3306 修改成如下: DB_CONNECTIONmysql DB_HOST127.0.0.1 DB_PORT3306 再次执行OK:

ztree 获取当前选中节点的子节点集合

功能:获取当前选中节点的子节点id集合。 步骤:1.获取当前节点 2.用ztree的方法transformToArray()获取当前选中节点(含选中节点)的子节点对象集合。 3.遍历集合,取出需要的值。 treeNode&#x…

Project facet Dynamic Web Module version 3.1 is not supported.

修改Web Module version 3.1 is not supported.问题 http://uule.iteye.com/blog/2052680 <host id"localhost" root-directory"${resin.root}/webapps/15newIIMS"> <web-app id"/" document-directory""><path-mappin…

不用第三方插件如何统计自己wordpress的访问量

很多wordpress博主都很在乎自己的访问量&#xff0c;使用第三方统计插件又会拖慢自己博客的响应速度&#xff0c;下面就交给大家如何自己写代码统计自己博客的访问量。 工具/原料 wordpress站点 自己站点的各种权限 方法/步骤 登录自己博客的后台&#xff0c;输入正确的用户…

笔记本安装win7和arch linux双系统+xfce4桌面

参考&#xff1a;Archlinux 2015.07.01 和 Windows7 双系统 安装教程http://www.cnblogs.com/fangying7/p/3803290.html 关于Archlinux 的安装 http://blog.csdn.net/ispeller/article/details/9327389 Archlinux安装和使用技巧 http://www.cnblogs.com/vachester/p/5635819.ht…

该Tiled地图制作拿到项目~~这是偷懒,为了直接复制后写来

1.现在&#xff0c;.h声明private:cocos2d::CCSprite* ninja;cocos2d::CCTMXTiledMap* tileMap; 然后.cpp中增加tileMap CCTMXTiledMap::create("MyTileMap.tmx");CCTMXLayer* backLayer tileMap->layerNamed("Tile Layer 1");CCAssert(backLayer, &…

用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:4不能在第三位,3与5不能相连。...

最近在看算法&#xff0c;看到这个题&#xff0c;觉得挺经典的&#xff0c;收起。 分析&#xff1a; 1 、把问题归结为图结构的遍历问题。实际上6个数字就是六个结点&#xff0c;把六个结点连接成无向连通图&#xff0c;对于每一个结点求这个图形的遍历路径&#xff0c;所有结点…

WordPress导航菜单函数register_nav_menus() 和 wp_nav_menu()

导航菜单是每一个WordPress主题必须的元素&#xff0c;如果你要制作一个WordPress主题&#xff0c;那就必须熟悉WordPress导航菜单注册函数 register_nav_menus() 和 导航菜单调用函数wp_nav_menu() &#xff0c;这两个参数一般都是配合使用的。今天我们就一起来解释一下这两个…

LeetCode 16 3Sum Closest(最接近的3个数的和)

翻译 给定一个有n个整数的数组S&#xff0c;找出S中3个数&#xff0c;使其和等于一个给定的数&#xff0c;target。返回这3个数的和&#xff0c;你可以假定每个输入都有且只有一个结果。例如&#xff0c;给定S {-1 2 1 -4}&#xff0c;和target 1。那么最接近target的和是2。…

基因重组

1s / 32M 【问题描述】目前,科学家们正致力于对生物基因的重组进行深入研究。基因的物质载体是脱氧核糖核酸(DNA)。DNA 是一种仅由 A、T、G、C 四种基元构成的双螺旋结构的有机分子。DNA 的两条单链上,同一位置的两个基元是互相对应的。A 对 T,G 对 C,因此,我们只需用任意一条链…

Ubuntu下apache2启动、停止、重启、配置

Linux系统为Ubuntu 一、Start Apache 2 Server /启动apache服务 # /etc/init.d/apache2 start or $ sudo /etc/init.d/apache2 start 二、 Restart Apache 2 Server /重启apache服务 # /etc/init.d/apache2 restart or $ sudo /etc/init.d/apache2 restart 三、Stop Apache 2 …

day6笔记

一、上节回顾 list&#xff1a;li [1,2,3,5,a]增加&#xff1a;append&#xff1a;末尾加入追加 insert&#xff1a;插入&#xff0c;在任意位置&#xff0c;insert&#xff08;index,内容&#xff09; extend:迭代着加入&#xff0c;asc ----> ‘a’,‘s’,‘c’ [1,2,3] …

Android手游《》斗地主完整的源代码(支持单机和网络对战)

Android手游《斗地主》完整的源代码&#xff08;支持单机和网络对战&#xff09;下载。一个很不错的源代码。斗地主掌游是一个独特的国内社会斗地主棋牌游戏&#xff0c;之后玩家可以下载网上斗地主和全世界。掌游斗地主特点&#xff1a;1、只有一个主要的社会斗地主棋牌游戏。…

昨天的补给

2014-04-22 09:37 昨天主要改变了之前的布局。采用的是单选按钮。避免逻辑上需要判断。 2014-04-22 09:38 晚上给媳妇买了奶茶和德芙&#xff0c;她很开心。网易订购的项链到了&#xff0c;就是定制的文字多了&#xff0c;不是太好看。 转载于:https://www.cnblogs.com/jsRunne…

jQuery判断当前点击的是第几个li的代码

使用$(this).index()取得li的下标&#xff0c;下面是一个样式替换的例子&#xff1a; $("#aa li").click(function(){ $("#aa li").removeClass("class名字&#xff0c;多个class用空格分开"); $(this).addClass("class名字&#xff0c;多个…

条款46:需要类型转换的时候请为模板定义非成员函数

看看下面这个例子&#xff1a; 1 template<typename T>2 class Rational{3 public:4 Rational(const T & numerator, const T & denominator);5 const T numerator()const;6 const T denominator() const;7 };8 template<typename T>9 const R…

Wordpress菜单函数wp_nav_menu各参数详解及示例

https://blog.csdn.net/qq_37296622/article/details/82633833 注册菜单 首先要注册菜单&#xff0c;将以下函数添加至function.php函数里 register_nav_menus(array( PrimaryMenu>导航, friendlinks>友情链接, footer_nav>页脚导航)); add_theme_support(nav_menus)…

page对象

page对象指的是页面本身 查看当前page对象的字符串描述 转载于:https://www.cnblogs.com/liuliuyiming/p/7731704.html

Memcached总结三:Memcached常用命令及使用说明

一、存储命令 存储命令的格式&#xff1a; 12<command name> <key> <flags> <exptime> <bytes><data block>参数说明如下&#xff1a; <command name>set/add/replace<key>查找关键字<flags>客户机使用它存储关于键值对…

mysql.zip免安装版配置

MYSQL ZIP免安装版配置 1. 下载MySQL 选择自己想要的.本次安装.我使用的是mysql-5.6.17-winx64 地址:http://dev.mysql.com/downloads/mysql/ 2. 解压zip 文件. 在mysql 的根目录下找到 my-default.ini 复制出一个 my.ini 文件, 根据你需要的位置修改 my.ini 文件 a&#xf…