在校大学生 linux 软件动手项目精选(序)

来源:互联网 发布:淘宝商城耐克女鞋 编辑:程序博客网 时间:2024/05/02 00:02

转载时请注明出处和作者联系方式:http://blog.csdn.net/mimepp

作者联系方式:YU TAO <yut616 at sohu dot com>

大学毕业,自己动手写的代码没超过百行,是不是大有人在?看了不少代码,但一动手,处处出错。

为了在大学学习结束时,能给自己积累些实际的软件开发经验,对很多同学来说真正动手写一些代码,并按一定的品质要求做出来的东西,会给你今后的工作巨大的帮助。

但一般你又没有一个明确的目标要去做什么事情,从何开头。

这里会列举一些能供你动手的项目,如果你真的实现了这些项目里面的功能,那么国内中上公司的大门基本就是为你敞开的了。

一、面向的对象:

对 linux 软件开发或者是嵌入式系统 linux 开发有兴趣的同学。

linux + C 语言。

二、代码规范:

1、遵循 linux kernel coding style:

http://lxr.linux.no/#linux+v3.0.4/Documentation/CodingStyle

2、代码编译前,仔细阅读,尽量保证一次编译成功

反复这样练习,你能做到这一点。

别把你的代码编辑错误交给编译来检查。

代码编译前多花十几分钟,让逻辑在你大脑中运行看看,有哪些例外没有检查到。

出现问题后,调试所费的时间要比这个时间大得多。

如果你写的代码,能达到和用 Lindent 格式化出来的效果一致,那么就很 OK 了。

Lindent 参考:

http://blog.csdn.net/mimepp/article/details/2224814

写一手优雅的代码很重要。

3、提交代码时用格式模板

代码提交 svn check in 格式模板,参考:

http://blog.csdn.net/mimepp/article/details/6838545

三、项目如何管理:

1、在 google code 上注册你自己的项目

用 open source 的方式来管理你的项目,如 svn, wiki, bug report 等。

所做的事情都会留下记录,别搞“踏雪无痕”。

2、在 google code 上写 wiki,记录你的设计思想,开发技术点,写 memo

好的代码是设计出来的,不是调试出来的。

memo 可以包括:问题描述,问题分析,问题解决,所做的测试,TODO list

写 memo 有助于培养你的表述能力,并留下记录。好记性不如烂笔头。

3、用 UML 工具画出你的整体框架图,主要模块的序列图,贴在你的各个 wiki memo 里

UML 是工程师之间交流的语言,你能很专业的画出这些 UML 图,对以后的工作会有很大帮助。

可用的 UML 工具如 JUDE :

http://blog.csdn.net/mimepp/article/details/2058170

4、项目上,每周给自己设立一个功能目标,并努力在这个时间点一定要完成

以后的工作上,你的 credit 就是这样能按时按质完成 task 建立起来的。

要知道实际工作中的开发都是有时间压力的。

目标确定后,在这个时间点之前,不要走到其他无关的模块上去,也就是说不要跑偏了。

5、事情都在 linux 下做

可以用ubuntu linux,不是让你用虚拟机里跑一个 linux 哟,而是直接在你的机器上只装 linux,而没有其他。

坚持在 linux 下做事。

你如果想真正成为一个 linux 开发人员,你需要用 linux 下的方式来思考问题。

可别老是用 windows + source insight,这个不合格。

四、调试工具:

1、gdb

x86 下用 gdb 调试你的代码中的 crash,这个应该一定会发生。

2、valgrind

x86 下用 valgrind 来检查你的代码的内存泄露问题,这个也一定会发生。

可以参考:

http://blog.csdn.net/mimepp/article/details/4197340

3、gdb server

学着用用。

五、态度

足够认真,足够耐心,测试足够多。

可能一个具体的动手项目会花你几个月甚至一年的时间,但花费时间真正做好一个项目,并把它坚持做到极致,会有意想不到的收获。

所谓做得完,做得好,还要做得漂亮。

要知道工作后,在开始的头几年里,你可能都是在维护老的代码,修修补补,都没机会自己设计一个完整的功能或者模块。

代码写到一万行,你就能看到自己的变化了。

原创粉丝点击