25日 周五
1、查看并处理缺陷编号为5976的缺陷 完成
2、给刚写好的HTML引入CSS样式,在此过程中熟悉CSS,回顾本周自学结果。 未完成
3、完成领导安排的Python学习任务。 完成
4、处理测试机上的问题。 完成
5、处理福建省公司现场临时发来的问题 完成
6、处理德州调控中心现场出现的问题 完成
使用Regex.Match(string,string)时,后面的匹配样式如果含有(),需要先进行处理,()在正则表达式中另有含义,类似于字符串中出现"需要进行 \" 处理。
Linux上在终端运行C#写的程序,可以通过Mono + 程序绝对路径 的方式。
vs2010上断点调试器的命中条件检测效率大大低于直接在程序中加入If(相应的判断条件)
————————————————————————————————————————————————————————
26日 周六
1、给写好的HTML引入CSS样式 完成
不跟项目靠自学感觉没有明确的方向感,先一点一点来吧,把基础熟悉好再找点项目实例来做。
————————————————————————————————————————————————————————
28日 周一
1、处理四个产品缺陷 完成
2、处理信号分析系统临时反馈的问题 完成
3、处理福建省公司客户新需求 讨论中
4、给测试人员和工程人员讲解相关程序配置项配置方法 完成
5、继续完成我的网页 完成
哎,当时写配置项的注释的时候,我把配置实例都写上了,就怕别人看了不知道怎么配,结果说我写的太详细了,给改成了笼统的描述。现在好了,大家配的五花八门,又说写的不具体,我太难了。
————————————————————————————————————————————————————————
29日 周二
1、处理程序中存在的时间窗关闭间隔与文档描述不一致的问题 完成
2、修改以前的程序 完成
3、配合他人调试 完成
4、继续学习前端知识 完成
今天上班楼下那个卖吃的的小店肉夹馍直接从五块涨到了七块,是时候告别肉夹馍了。
温故而知新,很多前几天不太明白的知识点像后代选择器什么的今天再看总算知道是个什么概念了。BootStrap不太会用,还需要多练练。
今天坐我旁边的研究生时隔两个月终于又来实习了,签了一份地点在天津的与军工有关的事业单位,挺不错的。校招和社招的区别还是挺大的,现在我也能感受到为什么有的同学工作了一年又辞职考研去了,跳槽好的公司要求达不到,一般的又不愿意去,有一种看不到希望的感觉,虽然说工作经验都是一点一点积累的,但是现在就是改一改程序,没什么新的项目,总感觉现在在工作中的提升很小了。传统软件行业感觉对技术这块要求并不是特别高,主要还是看销售的人脉吧?
————————————————————————————————————————————————————————
30日 周三
1、联调程序 完成
2、与工程部头头沟通,听他们现场的需求,改程序。 完成
3、改需求 完成
4、开了个JavaScript的头 完成
奇了怪了,头疼,下班之后就开始了。也不发烧其他也不难受,就是头疼。说不定是没买肉夹馍的后遗症,嗯,有道理,今天早睡吧。
————————————————————————————————————————————————————————
31日 周四
1、现场第一次出现了奇怪的问题,都在查,暂时还复现不了该问题
2、优化守护进程程序 完成
3、学习bat批处理命令的编写,给工程部写出杀死程序并启动的批处理文件。 完成
4、解决使用C#程序调用批处理文件出现的问题。 完成
现场反馈回来一个问题,很奇怪,大家都复现不出来,日志也看不出来哪里出问题了。而且现在是第一次出现这个问题,还需追踪。
没想到守护进程这个程序从一开始只有一个定时重启功能,到现在已经又添加了两个新的功能模块,不知道再往下会不会再添加,毕竟是我负责的写的,代码现在虽然只有几百行,功能也不复杂,但是跟自己的孩子一样。实现过程中也是有挺多需要注意的细节,Linux上查找进程一开始用的是ps - ef | grep 进程名,虽然也能查到,但是显示的信息不固定,所以导致不容易取到想要的信息,改成ps - aux | grep 进程名 出来的就是运行的进程,都是固定的信息。这样可以很方便的判断进程是否在运行。
C#写的程序在Linux上运行需要 mono 执行命令,ps -aux | grep 显示的信息是启动命令,也就是说检测的时候需要检测mono 进程名,而C++写的程序在Linux上需要前面加上 ./ 表示当前目录启动(当然这么做的前提是守护进程与要启动的程序在同一目录下),而系统本身的比如火狐浏览器这种,是直接全路径即可启动,这样的话就存在配置项的配置问题,一种方法是写shell脚本,守护进程只绑定脚本,另一种方法是在程序中关于Linux检测进程是否启动的地方,添加一个
List<string> processNames = new List<string>();
processNames.Add("mono " + processName + ".exe");
processNames.Add("./" + processName);
processNames.Add(processName);
processName为配置项中配置的进程名,这样的话下面检测就循环该List,只要有一个符合条件的就说明进程正在运行。最终采取的就是第二种方法。
批处理文件这块也遇到了问题,写的功能很简单,就是杀掉三个进程,间隔几秒钟,然后再重启这三个进程,鼠标点击直接运行可以运行,但是通过程序调用就出了问题,提示脚本错误,网上找了找也没有什么有效的解决方案,原因可能是鼠标点击执行所处的环境与程序调用所处的环境不一样。
一开始想到的解决方法是使用守护进程调用批处理A,批处理A调用批处理B,批处理B来杀进程并且重启。试了试倒是可以,只不过这样太麻烦了。后来通过逐段分析,定位了问题是在脚本中隐藏控制台那块代码,一开始想换一种脚本隐藏控制台的写法,但是找了找没找到,换了种思路,既然脚本不好写,那么在程序中试一试。果然,找到了解决方法。
Process p = new Process();
p.StartInfo.FileName = process; // process 是配置的绝对路径或者相对路径
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; // 调用这个隐藏控制台
p.Start();
这么一搞,就好了。完美_(:з)∠)_
现在对Linux不怎么熟悉,看到它总有一种抗拒的想法。这样不好,不好。这星期删点东西再把虚拟机装回来学学Linux的相关知识。