项目总结--实现Linux下的find命令

一、项目背景

这是我工程师第一年第二学期的系统课的项目,要求用C语言在Linux下实现find命令。

二、项目要求

1.实现谓词式 ex: -name “*.c”
2.实现执行动作的功能:-exec -print -ls
3.实现表达式的计算, -o , -a , -not , (ex1,ex2)

三、实现过程

1.架构设计
根据所给的资料,设计一个大体的结构。实际在执行的过程中,一直在不断地修改纠正最初的想法。最初的想法被证明是错误的。
2.为项目建立文件夹进行管理
去实现这个命令,需要熟悉Linux的文件结构。这也体现出了现在项目开发(课程内项目作业)的一个特点,就是通常涉及很多不知道的东西,需要很强的自主学习能力,如何制定开发计划,如何高效执行,让自己不要轻易钻牛角尖,这些都是知识之外至关重要的因素。这次我发现了一个很好的习惯:通常我会为每个项目建立一个文件,然后把所有的源代码放在一个codes文件中,把presentation的资料放在一个文件中,把所有开发过程中进行自主学习参考过的资料全都放在一个命名为knowledge的文件中。对codes中的源代码,我是通过命名的方式来进行版本控制,如1.0,2.0等等,保存不同时期的版本对于开发很重要,因为很有可能你一改会导致系统崩溃,之前的努力会付之东流。网上很多用github实现版本控制的,我想可能非常方便,而且我们老师也很多次提到,不过我一直还没学习。
3.学习笔记
很多时候,我们在编程的时候往往执拗于自己最初的想法,觉得自己这样做就是对的,马上就能调出来了,结果发现死活调不出来,整个人钻在那个牛角尖里出不来。自己的效率下降,情绪受到影响,思路狭隘。这次我把我这个开发的思路,过程记录在了纸上,有利于以后再次回顾总结经验教训,使自己更快地成长。
其实,就算是这次我详细记录自己的开发过程和思路,但是现在我自己在回顾总结的时候发现,最初的代码版本几乎是面目全非,早已不见了踪影,所以也很难去总结。

四、收获与进步

1.这次采用Google打印保存pdf的方法将所有网页查询过的知识性的资料留在了专门的文件夹里,方便反复查阅,加深自己对知识点的理解。以往总是忙于应付作业,想着赶快查出来怎么用然后把代码堆砌好,然后去忙其他事情,我对技术本身缺乏热爱,这个问题也不知道怎么解决,我想可能是因为我太浮躁,沉不下心在技术里,而整天做自己的白日梦。
2.很难去承认自己的想法是错的
我起初的思路是错的,不过我发现却不愿意去听取别人的想法和意见,反而试图给自己找借口和理由去解释。
3.经验教训要促成习惯的养成
刚才我查找我之前的项目总结的笔记,我发现,上次我就提出了用github进行版本控制的方案,但是还是仍然只是局限于一纸空谈。而且上次也提出了使用全局变量的好处,这次也没有印象,只是觉得就像是刚总结出来的经验一样,其实之前就已经深有感触,可是长期不用,都忘了,没有形成习惯,显然,这样的总结也是没有意义的。
4.项目开发以目的为驱动
项目开发应以最后的目的为驱动,开发过程一定要有针对性,针对需求,而不是说为了学习,为了锻炼。它的目的很明确,所以所有的查找和学习过程都应该紧紧围绕需求展开。

猜你喜欢

转载自blog.csdn.net/fegnkuang/article/details/46571041
今日推荐