弱类型还真是弱啊
终于开始干点正式的活儿了。最近在写一个开发组用的小工具,用来读取设备的设置信息文件的内容,用来分析设备的状况什么的。设置信息是用二进制存储的,上边要求我把每个字节对应的设置的意思显示出来。而得到这些字节含义的唯一途径就是一大堆的头文件。头文件里有存储这些信息的一个大结构体,通过变量名和enum的定义,再根据数据,大概就知道设置的情况。
问题就来了。设备的设置情况都存储在一个大的结构体里,如何把它和它在头文件中的定义结合起来,显示出它的设置情况。考虑了一下决定用一个中间文件,把头文件中这个结构体的内容用一定的形式表示出来,我写的工具通过读取这个文件,再结合存储的数据文件就可以完成任务了。
搞了2天工具倒是做出来了。也能显示个大概了。问题是中间文件怎么生成了。手写肯定是不可能,太低级。全自动似乎不太现实,读那么多头文件,每个人写的风格又不一样,岂不要疯掉。于是开始做半自动的生成程序。上边建议我用脚本语言,那我就用呗。python学了半天,开始搞。一直没用过脚本,刚开始真被糊住了。弱类型真 是弱啊,弱到我自己也分不清是string还是list还是dict了。。。而且当时似乎应该选用perl来做,那个处理文本确实比较强,内部支持正则表 达式。不象python好像是用c的库来支持的吧。做了2天,半自动脚本出来了,也能正常运作,但是需要用户自己输入很多东西。
最恼火的问题来了:现在小组开发的设备的版本有10多个了,每个版本有10多个这样的设置文件,每个都不一样。同时还有2种设备也想用这个程序,也就是再乘以3 。。 这样的话半自动也要死人了。于是开始全自动的干活。。
由于我学日语啊什么的技术可以说是荒废了半年啊。脑子也有点秀逗了。做东西的时候总是喜欢完美主义。要么就偷懒,要么就完美。似乎和现在的环境不符合了。折中的思维太重要了!!! 要把这个贯彻到底!!! 不然产品怎么延续?不然社会怎么进步? 要留有空间啊。 或有说回来,我们还不具备做完美的条件,没那个本事啊。世界本来就是不完美的。
最近开始用cvs提交代码了。跟我一起开始工作的那位兄弟被叫去debug一个小错误,做完之后叫他check in他的代码,就在按enter键的时候,前辈一句话他楞是由于了半天。他说,你确定好了么?你按下去全球的机器就要跟着改变了哟。我听了之后心里很兴奋:)
问题就来了。设备的设置情况都存储在一个大的结构体里,如何把它和它在头文件中的定义结合起来,显示出它的设置情况。考虑了一下决定用一个中间文件,把头文件中这个结构体的内容用一定的形式表示出来,我写的工具通过读取这个文件,再结合存储的数据文件就可以完成任务了。
搞了2天工具倒是做出来了。也能显示个大概了。问题是中间文件怎么生成了。手写肯定是不可能,太低级。全自动似乎不太现实,读那么多头文件,每个人写的风格又不一样,岂不要疯掉。于是开始做半自动的生成程序。上边建议我用脚本语言,那我就用呗。python学了半天,开始搞。一直没用过脚本,刚开始真被糊住了。弱类型真 是弱啊,弱到我自己也分不清是string还是list还是dict了。。。而且当时似乎应该选用perl来做,那个处理文本确实比较强,内部支持正则表 达式。不象python好像是用c的库来支持的吧。做了2天,半自动脚本出来了,也能正常运作,但是需要用户自己输入很多东西。
最恼火的问题来了:现在小组开发的设备的版本有10多个了,每个版本有10多个这样的设置文件,每个都不一样。同时还有2种设备也想用这个程序,也就是再乘以3 。。 这样的话半自动也要死人了。于是开始全自动的干活。。
由于我学日语啊什么的技术可以说是荒废了半年啊。脑子也有点秀逗了。做东西的时候总是喜欢完美主义。要么就偷懒,要么就完美。似乎和现在的环境不符合了。折中的思维太重要了!!! 要把这个贯彻到底!!! 不然产品怎么延续?不然社会怎么进步? 要留有空间啊。 或有说回来,我们还不具备做完美的条件,没那个本事啊。世界本来就是不完美的。
最近开始用cvs提交代码了。跟我一起开始工作的那位兄弟被叫去debug一个小错误,做完之后叫他check in他的代码,就在按enter键的时候,前辈一句话他楞是由于了半天。他说,你确定好了么?你按下去全球的机器就要跟着改变了哟。我听了之后心里很兴奋:)
blog comments powered by Disqus