用结构化的方法来建模嵌入式linux开发技术的学习过程

上传人:w****i 文档编号:108502005 上传时间:2019-10-24 格式:PDF 页数:14 大小:322.50KB
返回 下载 相关 举报
用结构化的方法来建模嵌入式linux开发技术的学习过程_第1页
第1页 / 共14页
用结构化的方法来建模嵌入式linux开发技术的学习过程_第2页
第2页 / 共14页
用结构化的方法来建模嵌入式linux开发技术的学习过程_第3页
第3页 / 共14页
用结构化的方法来建模嵌入式linux开发技术的学习过程_第4页
第4页 / 共14页
用结构化的方法来建模嵌入式linux开发技术的学习过程_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《用结构化的方法来建模嵌入式linux开发技术的学习过程》由会员分享,可在线阅读,更多相关《用结构化的方法来建模嵌入式linux开发技术的学习过程(14页珍藏版)》请在金锄头文库上搜索。

1、 久联技术(JulianTec) 您在 arm 架构下学习嵌入式 Linux 的上佳指导 Copyright 2010, JulianTec Atelier ? Windows 中伴随 ADS/RealView 等工具的帮助文档; ? 所使用到的各种 IC 器件的 DataSheet; ? 各种标准化了的接口标准及总线规范文档; 这些是最权威也最准确的材料,同时对于初学者来说,也是最难的。但是,若想成 为一个成功的研发工程师,那你必须冷静下来,好好的阅读它们。有时间的话多读 几遍,直到差不多弄懂为止。 各种开源项目的源代码 托 GPL 的大福,我们在 Linux 上做开发的芸芸众生才能有机会浏

2、览到包括内核在 内的所有系统程序的源代码, 我们可以从这些代码中学到不少东西。 可以毫不夸张 地说,研发中所碰到的一切软件问题,我们都可以从这些代码中找到解决的办法。 所以,阅读这些代码将是你的终极选择。 对于那些做嵌入式 Linux 系统构建的工程师来讲,阅读某些系统程序(比方 uboot/busybox 等)的代码是命中注定要做的事情,因为我们的工作就是要将它们组 装成一个可用的嵌入式 Linux 系统。 假如你的目标只是做某一个应用领域的应用程序开发, 那你需要看的, 就不是这些 系统程序,而是和你所面对的应用领域相对应的开源项目的代码。阅读它们,将使 您很快的成为该领域的专家。 5.3

3、. 把您的发现和设计说给朋友们听把您的发现和设计说给朋友们听 前面有说,您在对知识的归纳、类推和演绎过程中,将会发现新的知识。那么您最好将 这些新的发现说给您的朋友们听一听。一方面,这将有助于检查是您的发现是否正确;另一 方面,也有助于拓展您自己的思路,以借此发现更多的东西。 作为研发型的工程师,我们将会花大把的时间在技术研发工作上,出现在我们面前的, 尽是些诸如电脑屏幕、印刷电路板、示波器之类的东西.与这些东西打交道,并不要求你张 嘴说话。所以,渐渐的,你似乎会发现自己变得不如原先那样愿意说话了,有时甚至说起话 来似乎也是词不达意。 这是一个值得思考的问题。如果这种情况发生了,也许我们还可以

4、找出一句“有所得, 久联技术(JulianTec) 您在 arm 架构下学习嵌入式 Linux 的上佳指导 Copyright 2010, JulianTec Atelier & http:/www.juliantec.info 10 必有所失嘛! ”来欺骗自己。但是我相信,你我都不愿意看到它的发生。那有什么办法来阻 止这种情况的产生呢?一个好办法就是你在学习/工作过程中,经常把自己的设计想法和对 问题的理解说给周围的朋友听。这么做,一方面能有效阻止这种情况的发生,另外一方面, 还能促进你沟通交流能力的提升,可谓一举多得。 为什么有的人,自己一个人写文章或做设计的时候,是信手拈来、文思如泉涌。

5、但在台 面上众人面前说话,却是顿觉语塞,连一句完整的话也讲不出来。这不是什么他脑袋笨啊之 类的原因所致的, 就是因为太缺少这方面的锻炼了。 如果你有机会坐在久联的课堂里听老师 讲课,那我们将特别注意你这方面的能力培养。因为我们始终相信,久联培训出来的学生不 应该做那种一只钳子特别发达的寄居蟹, 而是要做技术能力和非技术能力两只钳子同样发达 的梭子蟹。 5.4. 以您的知识为基础,来尝试做开发以您的知识为基础,来尝试做开发 作为嵌入式 Linux 研发人员, 开发各种各样的软硬件产品将是你转换所学得知识的最主 要方式。另外一方面,参与实际的公司开发产品也是你学习嵌入式 Linux 开发技术的最根

6、本 目的。 根据我们之前的教学以及开发的经验,在这里你需要注意以下几个问题: ? 把每次练习的机会都当做实际的开发; 之前,我们有同学只希望做大的项目,却对平常老师布置的练习视若无睹,就好象 只有稍微大点的项目才是真正的开发一样。 这其实是非常错误的认识, 你应该知道 即使是再大的项目, 那也是由许多小问题组成的, 你平常都不在意这些小问题的解 决,哪那来做大项目的基础? ? 开发之前,切忌急于动手; 当你在收到一个练习题目或者面临解决一个问题时, 你最好先考虑一下, 在脑子里 过一遍解决这个问题的方案,再行动手敲代码,这样比较有效率,也能养成从整体 上把握系统需求的习惯。对于程序设计的初学者

7、来说,你可以先尝试写写伪码 (pseudo-code)。 ? 像一个真正的工程师那样去做开发; 一个真正的工程师在实际做开发的时候,会遵循下面几个习惯,或者说原则; a) 以大家容易理解的方式去写代码; 你在写代码的时候, 必须注意编码风格问题。 要评论一个软件工程师是否足够 专业,通常从他写的代码中就能看出端倪来。不仅如此,具备良好风格的代码更能 久联技术(JulianTec) 您在 arm 架构下学习嵌入式 Linux 的上佳指导 Copyright 2010, JulianTec Atelier & http:/www.juliantec.info 11 帮助你或你团队的研发工作顺利进行

8、。 在很多公司里面,通常都有一个传统,那就是“谁开发,谁维护” 。试想,假 如有一天,用户使用你在一个月之前开发的软件系统时,发现了一个严重的 bug。 那么根据这个传统,这个 bug 将会由你来负责修改。到时候,如果你的 code 写的 乱七八糟,而且又没有一点注释,那么你将头痛不已。这会严重影响你去维护旧有 系统的积极性,而且同时会因此花大量时间而耽误你眼前的研发工作。 更为严重的是, 如果要求你的同事来维护你写的代码, 那么他们会由于理解不 了你那乱七八糟的代码而对你怨声载道。届时,你将面临被团队抛弃的风险。出现 这种情况时,你不能去怪他们,只因为你没把自己的工作做好,没有按照大家都能

9、够理解的方式去写代码。 b) 与代码相比,写适量的文档注释同样重要; 基于以上的原因, 你在做开发时, 也需要写适量的文档注释。 需要提醒你的是, 请你注意在修改代码以不同的策略来解决问题时,也需要同步更新你的注释。 很多公司都会使用如 cvs/svn/git 等 SCM 工具来管理代码及各种文档,那么在 每次提交(submit)时,你也需要养成写“提交注释”的习惯。 c) 注意确保你自己编写的代码能正常工作; 很多做开发的人都不注重自己写的代码到底能否像预期那样工作, 他们只管哼 哧哼哧的写完了事。这在团队协同工作过程中,是一个大问题。 当你开发完一个函数库的时候,你将它以*.a 或者*.s

10、o 的形式交给你的同事去 使用,但是你的同事在他自己的代码中调用了你库导出的函数接口后却乱象百出。 想想看,他会是什么样的反应,我想多半会表现除抓狂的样子。出现这种情况,我 想这将又会是你被团队所抛弃的征兆。 那如何来避免这种情况的发生呢?根据我们的研发经验, 你需要在开发代码的 过程中, 做比较严格的测试。 这种测试不是让你用肉眼看看程序貌似能正常工作就 行了,而是要求你写测试用的代码,用代码去测试代码。这在开发实践中,被称为 单元测试。实际操作过程中,你可以选用某些专做单元测试的工具,比方 CUnit 或者 CuTest 之类的。 在你开发完你的模块并做过严格单元测试后, 你应该将测试代码

11、连同你开发的 模块代码一并提交到 SCM 工具所管理的代码库中。 作为初学者,你在学习嵌入式 Linux 技术或做相关开发的过程中,应该使用像上面 说的那些正确的、被开发业界所认可的开发方式。 这里也许没有办法列出全部你需要使用的习惯或者原则, 但若您想真的参与研发事 久联技术(JulianTec) 您在 arm 架构下学习嵌入式 Linux 的上佳指导 Copyright 2010, JulianTec Atelier & http:/www.juliantec.info 12 业, 那也许最好的办法是找到一个学习型的开发团队并与之保持久联, 在学习具体 开发技术的同时养成正确的习惯。 在您

12、的学习过程中, 我们可能会使用某些技术手段来帮助您养成这样的习惯, 但是, 至少, 您需要在自己的潜意识里面刻意的培养相关的意识。 就像一个得了重病的病 人一样,如果想在医生的帮助下转危为安,那作为配合,病人首先必须拥有无比强 大的生存欲望才行。 5.5. 写写技术文章写写技术文章 当你的学习进行到一定程度的时候,你就可以自己动手进行 hacking 了。这个时候,也 许周围的人懂的东西并不会有你的多。 到了这种程度, 我们认为你除了做好自己的日常开发 之外,还有义务抽出点时间向整个 Linux 开发社区回报一点贡献。毕竟,你从这个社区里面 得到了很多。 那如何向社区回报自己的贡献?一来,你可

13、以直接参与Linux相关开源项目的开发;二 来,你可以写写各种技术文章,投放到社区里面(比方投放到我们为您建立的blog服务平台 JulBlog上)。 虽然写文章很辛苦, 但是当你看到有那么多人从你的文章中受益, 你还是会觉得无比幸 福。:) 6. “学习学习“过程的概念模型过程的概念模型 为了使你对学习过程有一个整体的把握, 也是为了本文章进行结构化分析的完整性, 我 们这里将“学习“过程的概念模型集成出来,如图五所示。 久联技术(JulianTec) 您在 arm 架构下学习嵌入式 Linux 的上佳指导 Copyright 2010, JulianTec Atelier & http:/

14、www.juliantec.info 13 图五: 嵌入式 Linux 开发技术“学习“过程的概念模型 7. 选择好适合您自己的学习之路选择好适合您自己的学习之路(IPO链链) 正如上面我们建模时所多次强调的,对于嵌入式 Linux 开发技术的学习,不仅是将众多 知识记忆到你的大脑里。更重要的,是将你学到的知识用出来。能用出来多少,就说明了你 的学习有多少程度的成功。 上面的建模表面,嵌入式 Linux 的学习是由一系列 process 组成的 IPO 链,从知识的获 取开始,到将大脑里的知识进行归纳、类推和演绎,再到通过各种途径来使用你的知识作为 结束。 你注意到没有,这条IPO链可以由多种

15、方式作为开始,也有可以由多种方式作为结束(除 了开发是每个人必须要做之外,另外两种使用知识的方式是可以二选一的)。所以你可以针 对自己的实际情况,选择不同的方式来走完这条IPO链。 虽然你能选择, 但我们更希望你能在自己没选中的那种方式上多下功夫。 因为没选中的 方式恰恰就是你的短处所在。比方你平时就擅长说话,口才不错,讲起话来滔滔不绝,那么 你就在动手写代码等需要静下心来的实际操作上多下点功夫。 相反, 如果你平时就不太善于 言辞,那么你就多找机会锻炼锻炼说话表达的能力(经常和朋友说说你的发现和设计)。总之 还是那句话,我们需要你成为梭子蟹,而不是寄居蟹。 久联技术(JulianTec) 您在 arm 架构下学习嵌入式 Linux 的上佳指导 Copyright 2010, JulianTec Atelier & http:/www.juliantec.info 14 注意 1. 实际上,在开发实践中,是你自己经常需要将你的代码提交到某个用 SCM 工具管理的库中,而并不是你的老板跑来问你要。 不过,老板或者项目经理经常跑过来“关心”你的工作进度倒是真的。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号