PM下场写代码




上面的图片不少同学之前应该看到过,在IT这一行当一个程序员干活,一堆人指挥并不鲜见,而我的角色就是外围中的一份子,不过今天的剧情却反转了一下,我作为一个业余的程序员竟然帮专业的程序员解决了他工作上面的一个小难题,事情的背景并不复杂,办公室一位开发的同学需要将之前写的代码进行一些重构。原来的代码工程里面有不少类似的代码,现在需要把这些代码提取成一个公共的方法,从而将这些重复的代码精减掉。
匹配的规则大意是这样的,首先找到相同的代码,然后把这些代码进行删除,同时在文件的顶部引入公共方法,在vscode的编辑器当中可以进行单文件和多文件的批量替换,但是却存在一个问题,首先要进行一些判断,只有满足了特定的条件之后,才需要进行后续的替换和追加操作。按道理这种应该是相对通用的需求,可是他花了一些时间也没有找到这样通用的插件,当他把这个需求跟我说了之后,我结合自学Python的经历评估,如果用Python来处理应该是比较简单的,于是我考虑了一下用了不到半个小时帮他解决了这个问题,这件事让我想起了我去年的经历。
在同样的背景下有两个项目经理,一个是懂技术的,一个是不懂技术的。如果我们的开发人员对两个项目经理说,你看我需要在几百上千个文件当中找到特定的文件,并且进行手工的替换和修改动作,这个工作量非常大少说也要好几天,然后他当着你的面给你演示了一下实际的工作,对于不懂技术的项目经理来说这确实是客观事实,对于几天的评估只能接受。然而如果你具备一些代码技能的话,就像我今天遇到的这个事情一样,我确实没有想到作为一名项目经理,竟然有这么一天亲自下场帮助开发人员来写代码解决问题。
当然在解决这个问题的过程当中,还是使用到挺多的一些知识点的。第一个知识点就是要使用正则,在他第一次给我讲述需求的时候,我以为他需要查找的字符串内容是固定的,因此直接写死了代码,后来发现有一些相似内容没有完全替换完整,此时才发现它需要替换的内容并不是完全一致的,只是符合某些特定规则,这种情况下就需要用到正则来进行匹配。关于正则我之前有学过一些但确实没有完全记住,我认为对于正则我们也没必要去死记硬背,很多时候我们可以把正则当做字典一样放在我们的手边,当我们需要查找正则来解决特定问题的时候,去直接去查这张速查表就可以了。
第二个关键点就是进行文件的遍历,因为这个工程里面有几十上百个文件夹,存在着好几层嵌套关系,因此我需要进行逐层遍历。这个过程中还有一些小的技术注意事项如不同的操作系统对于文件的路径表示是不一样的,所以我们就需要适当的方法来处理文件路径的问题。还有关于文件的读取写入注意事项等等。





我很庆幸,上面提到的这些知识点我平常在自学Python时有意识地进行过积累(并进行了较为详细的笔记记录),因为这些是高频的操作,而今天一下子全都派上了用场,这种感觉就像在考场上拿到试卷后发现题目全是自己做过、整理过的错题集那样兴奋。

Comments
Write a Comment