已有一个多月没有发帖了,自从出差回来,这段时间一直在处理期间积攒的工作,感觉公众号里头的朋友走的差不多了,实在抱歉。
虽然这段时间没办法花功夫在公众号上,不过还是蛮有兴趣分享一下前些日子在工作上一件特别令我欣喜的事,就是Hao系列的第二款工具HaoFind前不久在公司内部发布了。
不过相信每一个工作的朋友,在平时的项目工作过程中,都有自己公司内部的文件管理平台。所以,今天我想分享一下,我为什么开发HaoFind,以及工具开发的过程,给有兴趣的朋友一个思路。
说出来你们可能不相信,事实上,我只是一个系统工程师,平时基本上不和代码打交道,更多的是Concept Design。
前不久在一场非正式会议中,我们几个工程师之间有过一次很深入甚至可以说是很激烈的探讨,是关于团队协作的问题。在合作过程中,是否有责任有义务回复合作者的每一封邮件,回答每一个问题。
事实上,在我看来,这个问题并不容易回答,从利己角度而言,容易产生双标的答案。然而,在HaoFind的发布演讲中,我给出了我的观点。
我通过三个场景的动图,解释了为什么我的答案是否定的。
通常情况下,在一个项目中,是有工作文档共享、协作平台的,而不同的公司,使用的平台不尽相同,不过最终的目的却是一致的,为了使项目更高效的运行。
如果只有少数人问我,测试报告在哪?或许并不觉得回复问题是一件麻烦的事。可是,如果每天总有不同的人问我不同的文件在哪,而我上一秒还在思考如何设计上下电,等回复完邮件之后又要重新捋一遍思路。然而,这些文档全都是在项目平台上可以搜索到的。
正因为这类令人抓狂,且明显不高效的现场,让我萌生了开发HaoFind的想法。
从最开始草稿纸上的想象
到最终HaoFind工具的成形
在最初的设计手稿上能够看出,HaoFind设计的初衷,是为了能够同时加载数十个项目数据库,实现跨项目的文件检索,因为许多文件是能够在不同项目中复用的。除此之外,还可以实现多个关键词组合搜索、按作者或者项目搜索,同时能够实现按时间进行排序。
而在演讲的最后,我表达了迄今为止最为喜欢的一句话,“Work Anywhere Efficient”
帖子的最后,由于GUI工具编写原理的相通性,我不再赘述具体的代码细节,不过将通过以下几点简单的聊一下具体实现的方法。
1.数据库的实现,还是以我最为喜欢的Excel形式进行加载
2.多个项目的文件加载,以Cell叠加的形式汇总
3.关键字、项目、作者组合搜索,是通过字符串正则法进行筛选,详情参考regexpi的用法
4.时间排序是通过datenum函数将日期转换进行排序
5.打开文件功能,是将文件链接通过
actxserver('internetexplorer.application')的形式打开
6.为了便于公司中非MATLAB用户的使用,建议通过mcc –m HaoFind.m生成独立exe文件
除此以外,别无其他
以上
打浦桥程序员
汽车行业的工程师
更喜欢用MATLAB看世界
更多联系方式
❶知乎:打浦桥程序员
❷ 知乎专栏:MATLAB如何
领取专属 10元无门槛券
私享最新 技术干货