Mantis优化改造(技术篇)
为什么要写这篇?
既然都过去这么久了,都回忆不起来了,为什么还要整理出来这篇文章呢?
这还要追溯到2018年3月份。
当时换工作,面试了国内某知名电视厂商。
简历上面写了我优化改造了bug管理系统mantis。
结果被面试官以打破砂锅问到底的方式,ko了。
我支支吾吾的完全答不上来,只能尴尴尬尬的笑一笑。
Q:你简历上面写了这个优化改造,说一下?
A:我是根据网上的开源代码,做了一些修改,然后引入到公司的
Q:具体修改了哪些代码?
A:大体上就是增加了一些代码,修改了一些代码,嗯,对,就是增删改查,差不多(尴尬笑)
Q:增加了哪些,修改了哪些?
A:恩,具体记不太清楚了,时间有点久了,两年前做的了,就是改了一些参数吧(尴尬笑)
Q:什么参数?
A:不记得了(尴尬笑)
Q:那你总有印象深刻的,到底改了什么?
A:有个日期控件的改动,记得当时折腾了挺久的
Q:具体改了什么?
A:好像是,实在是记不清楚了(尴尬笑+心虚)
整理结果
于是,
这次我不惜写了python脚本,
按最后修改日期筛选文件,
和原文件做了比对,
整理了如下这个关于“我到底改了哪些东西”的excel。
分析结论
结论很明显,我没有写过php!我也不会写!
如果非得和技术沾边的话:
阅读代码
删除代码、调整代码位置、修改代码等,都是基于阅读代码的前提来完成的。
虽然没写过,但是能读懂php!这很关键!
依葫芦画瓢
新增代码和修改代码,很多都是依葫芦画瓢的,根据类似的代码,适当修改一下其中部分变量。
照搬网上
也有按照网上教程来改造的,比如管理员可直接修改密码、导出文件格式等。
经过这次梳理,现在我已完全不虚:
Q:你简历上面写了这个优化改造,说一下?
A:我的博客上面有关于这块的两篇文章(神秘微笑)
鱼刺
当时面试被问到印象深刻的改动,我提到了第31行这个修改,
我说有个日期选择框,在改动的时候折腾了挺久的,
但追问具体内容的时候,我没有答上来。
通过今天的梳理,这根卡在喉咙的鱼刺,终于消解了。
原系统有问题:
1、默认日期下拉框灰显,“是否使用日期过滤”勾选上,才可选择日期。
2、选择日期查询后,第二次修改日期,日期下拉框又变成灰显的了。
3、需要去掉勾选“是否使用日期过滤”,再重新勾选上,才能编辑日期下拉框。
解决:一步步排查代码发现,是common.js里面有相关的判断代码导致,于是去掉了。
印象深刻的原因,应该是觉得,我居然一路排查,最后改了common.js这个文件吧。
Mantis优化改造(技术篇)的更多相关文章
- (功能篇)回顾Bug管理系统Mantis优化改造经历
共分为两篇,功能篇和技术篇. 时间大约是2016年冬天. 考虑搭一个用于Bug管理和追踪的系统. 综合比较下,选择了小巧的开源工具,Mantis. 在源码基础上,做代码修改,完成了定制版的优化改造. ...
- Mantis优化改造(功能篇)
共分为两篇,功能篇和技术篇. 时间大约是2016年冬天. 考虑搭一个用于Bug管理和追踪的系统. 综合比较下,选择了小巧的开源工具,Mantis. 在源码基础上,做代码修改,完成了定制版的优化改造. ...
- Activiti流程编辑器针对自定义用户角色表优化改造
本文目的: 针对自定义的用户.角色表,对Activiti的在线流程设计器进行优化改造,使之能直接在图形界面上完成对节点办理人.候选人.候选组的配置,不需要先去查数据库中的用户ID.角色ID等信息再填入 ...
- 对5月13号中BaseDao方法进行优化改造,更接近于框架的编写
/* * 通用查询.更新升级版 * */ public class BaseDao2 { static { try { Class.forName(ConfigUtil.getValue(" ...
- Netty实现高性能RPC服务器优化篇之消息序列化
在本人写的前一篇文章中,谈及有关如何利用Netty开发实现,高性能RPC服务器的一些设计思路.设计原理,以及具体的实现方案(具体参见:谈谈如何使用Netty开发实现高性能的RPC服务器).在文章的最后 ...
- MSSQL数据批量插入优化详细
序言 现在有一个需求是将10w条数据插入到MSSQL数据库中,表结构如下,你会怎么做,你感觉插入10W条数据插入到MSSQL如下的表中需要多久呢? 或者你的批量数据是如何插入的呢?我今天就此问题做个探 ...
- .net core实践系列之短信服务-架构优化
前言 通过前面的几篇文章,讲解了一个短信服务的架构设计与实现.然而初始方案并非100%完美的,我们仍可以对该架构做一些优化与调整. 同时我也希望通过这篇文章与大家分享一下,我的架构设计理念. 源码地址 ...
- 从细节处谈Android冷启动优化
本文来自网易云社区 Android APP冷启动优化,对于Android开发同学而言可能是个老生常谈的技优了. 之所以花时间写一篇冷启动优化的文章: 我想从另外一个角度来说冷启动优化,如题所述,从细节 ...
- 万亿级日志与行为数据存储查询技术剖析(续)——Tindex是改造的lucene和druid
五.Tindex 数果智能根据开源的方案自研了一套数据存储的解决方案,该方案的索引层通过改造Lucene实现,数据查询和索引写入框架通过扩展Druid实现.既保证了数据的实时性和指标自由定义的问题,又 ...
随机推荐
- LINQ解决依据某个字段去重
想要List结果反复 的数据非常easy.仅仅要.Dinstinct()就好了 可是假设想要依据某个字段去除反复的数据,上面的方法就帮不上忙了.我们须要重写一个方法.直接上样例吧 [Serializa ...
- [LightOJ 1018]Brush (IV)[状压DP]
题目链接:http://lightoj.com/volume_showproblem.php? problem=1018 题意分析:平面上有不超过N个点,如今能够随意方向划直线将它们划去,问:最少要划 ...
- BoW(SIFT/SURF/...)+SVM/KNN的OpenCV 实现
本文转载了文章(沈阳的博客),目的在于记录自己重复过程中遇到的问题,和更多的人分享讨论. 程序包:猛戳我 物体分类 物体分类是计算机视觉中一个很有意思的问题,有一些已经归类好的图片作为输入,对一些未知 ...
- for in 与for of
最近在项目中需要用到遍历对象,用ES6 for of对象后报如下错误 TypeError: [object Object] is not iterable!,网上查询阮大神的教程发现“ES6 的有些 ...
- subclassdlgitem
subclassdlgitem 该函数用来子类化一个控件. Subclass(子类化)是MFC中最常用的窗体技术之一.子类化完成两个工作:一是把窗体类对象attach到一个windows窗体实体中(即 ...
- 文件宝局域网传输/播放功能Windows10系统经验贴(感谢文件宝用户@卡卡罗特 和@24K 純情)
本文由文件宝用户@卡卡罗特 和@24K 純情 两位用户提供,感谢二位. 先分享一个软件开发者的博客,http://www.cnblogs.com/flychen/也许里面的说明就能解决你的问题. 以下 ...
- linux以及git和maven常用命令
maven常用命令: clean install -Dmaven.test.skip -Ptest-lx (注意:test-lx是pom文件名) 其他 https://www.cnblogs.co ...
- Lazy freeing of keys 对数据的额异步 同步操作 Redis 4.0 微信小程序
https://github.com/antirez/redis/blob/4.0-rc1/00-RELEASENOTES 数据缓存 · 小程序 https://developers.weixin.q ...
- 在Java中如何编写回调函数,以及回调函数的简单应用
import static java.lang.System.out; import static java.lang.System.err; import java.util.logging.Lev ...
- (linux)INIT_WORK和INIT_DELAYED_WORK详解
朋友,你相信,一只蝴蝶在北京拍拍翅膀,将使得纽约几个月后出现比狂风还厉害的龙卷风吗?看过那部经典的影片蝴蝶效应的朋友们一定会说,这不就是蝴蝶效应吗.没错.蝴蝶效应其实是混沌学理论中的一个概念.它是 ...