下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、硬件工程师的十个软件技巧这些建议是在我从过渡至软件工程师期间,曾经希翼得到的建议。系统设计不仅要求了解硬件,还要求了解软件的作用方式,以及如何与之交互。设计硬件需要的某种范式可能与设计软件彻低相反。当从硬件设计转向包含软件的设计时,硬件工程师应铭记以下十个技巧。技巧1:流程图第一,实现其次当工程师首次迈入软件开发领域时,会有种剧烈的诱惑力促使他们立即投入工作并开头写代码。这样的定式思维就等同于在规律图还未完成前就试图设计印刷电路板()。在着手开发软件时,抑制一上来就想写代码的冲动是至关重要的,应首先用流程图制定一个软件架构图。这样的办法会使开发人员对应用所需的不同部分与组件形成一个概念,就像电
2、路规律图可以告知工程师需要哪些硬件元件一样。这样可确保程序整体建立在良好的组织和沉思熟虑之上,削减程序调试时光,从长久看,这样做还可以节约时光、省去棘手。技巧2:用法状态机控制程序流程状态机是20世纪最宏大的软件发明之一。某应用程序往往可被分为多个状态机,每个状态机都控制该应用程序的特定部件。这些状态机都拥有自己的内部状态和状态转换,从中可看出软件如何与各种激励互相作用。用状态机来设计软件,可简化软件的开发,使之模块化、可维护,并易于理解。目前拥有的广泛资源可演示状态机的理论和算法。技巧3:避开用法全局变量在函数式编程的年月,函数要先于形式,程序员的唯一目标是尽可能地让程序按预期方式迅速运行,
3、而不用考虑程序结构或可重用性。这种编程范式会毫无顾虑地用法全局性变量,程序中的任何函数都可能修改它。其结果就造成了变量被破坏的几率增强或变量被误用。在新推举的面对对象范式中,应在最小的范围内定义变量并封装它们,以防止其他函数的误用或破坏。因此,建议您限制全局范围用法的变量数量。可在中用外部关键字标识这些变量。技巧4:利用模块性的益处无论问哪一名工程师,项目的哪部分最有可能延迟交付并超出预算?答案都是软件。软件往往是复杂的,且难以开发和维护,尤其是当囫囵应用都存在于单一文件或松散关联的多个文件中时。为了缓解可维护性、可重用性及复杂性,剧烈建议程序员充分利用现代编程语言的模块化特性,将常用功能分解
4、成模块。以这样的方式分解编码,程序员就能着手建立函数与特性库,然后在一个接一个的应用中重用它们,从而通过延续测试而充实代码质量,同时也削减了时光,降低了开发成本。技巧5:保持中断服务例程的容易性中断服务例程用来中断处理器对当前代码分支的执行,从而处理刚刚触发中断的外围设备。无论何时执行中断,都需要一定数量的开销,用于保存当前程序的状态、运行中断,然后将处理器回来原程序状态。现代处理器要比多年前的处理器快得多,但仍需要考虑此花销。普通状况下,程序员都想把中断运行时光降至最低,以避开干扰主代码分支。这意味着中断应当短而容易。中断中不应调用函数。此外,假如中断开头变得过于复杂或耗时,则仅应在须要时利
5、用中断做最少量的工作,例如,将数据装入缓冲区并设置一个标记,然后让主分支处理输入的数据。这样做可保证大多数处理器周期被用于运行应用,而不是处理中断。技巧6:用法处理器示例代码做外设的试验设计硬件时,做原型测试电路总是有益的,这样可确保工程师对电路有正确的理解,然后再做电路板布局。此点对设计软件也同样适用。硅片创造商通常都有示例代码,可用来测试微处理器的各个部分,这样工程师们就可判定该部分的工作状况。此办法使人们洞察到软件体系架构的应当组织方式,以及可能造成的任何潜在问题。在设计初期阶段认清潜在的障碍,比在产品交付前最后几小时才发觉它们要好。这是预先测试代码片段的一个很好的办法,但需提示的是,创
6、造商代码往往不是模块化的,未经大的修改不便利用于实际应用。这一局限已随着时光的进展而转变,大概某一天芯片供给商会给出可用于生产的代码。技巧7:限制功能复杂度工程学中有一个旧词叫“kiss”保持容易和挺直。无论在处理何种复杂工作时,最容易的办法就是把它分解为更小、更容易、更易处理的任务。随着工作或功能变得越来越复杂,人们要精确无误地记录全部的详情也变得更困难。在写一个函数时,其复杂度在当初看似适中,然而要考虑到,一名工程师如何在六个月的维护时光内查看代码。测量函数复杂度(如循环的复杂度)的办法无数。现在有工具可以自动计算某个函数的循环复杂度。阅历法则建议,函数的循环复杂度保持在10以下是最抱负的
7、。无论在处理何种复杂工作时,最容易的办法就是把它分解为更易处理的任务。技巧8:用法源代码存储库并频繁提交人都是会犯错误的,写代码时也会犯错。这就是为什么开发人员用法源代码存储库是如此重要。源代码存储库可使开发人员“记下”一个好的代码版本,并描述对该代码基所做的修改。该步骤不仅使得开发人员可以恢复或追溯到代码的旧版本,还可以比较旧版本之间的不同。假如开发人员做的一系列转变破坏了系统,只需点击一下即可复原好的代码版本!请谨记,假如不频繁提交代码,存储库就不会达到预期目的。假如做了不行逆的修改,两周后才提交代码,然后再复原,就会造成大量工作和时光的损失!技巧9:代码做具体解释在软件开发的激烈战争中,
8、开发人员很简单把注重力集中在编写和代码上,因此会忽视具体说明的需求。在压力之下,解释工作往往是项目的收尾工作,由于开发人员认为它是最后的一项工作。然而,当代码仍在你脑中新奇热火时就做出具体说明是至关重要的,这样做可使开发人员或你自己读懂注释,理解代码的工作方式。假如开发人员做的一系列转变破坏了系统,只需点击一下即可复原好的代码版本!技巧10:用法一种agile开发流程无论做何种类型的工程工作,都建议您先设定并遵守一项流程。这样的结果应有全都的质量和成本,并能按时交付。软件开发人员已胜利用法agile开发流程来开发高质量软件。这一流程可按需求的优先等级做开发。优先级别最高的工作在限定的时光段内首
9、先开展,这被称为迭代。这种办法的益处是它可使软件开发流程保持顺畅,还可以按照结果和客户所需,在每次迭代中适应并修改需求和任务。技巧10a:站在开发技术之巅要学习嵌入式软件开发所用法的最新工具和技术,最好的一个场合是嵌入式系统研讨会(embedded systems conferences)。该会议每年召开两次,地点分离位于加利福尼亚州圣荷西(san jose)()和波士顿()。会议吸引了来自全世界的工程师,他们可以开展互动、参与研讨会,并举行实际操作,以促进对软件开发的理解。此外,edn.com社区还提供了与软件和硬件相关的一系列网站(),工程师们可通过不断的参加和学习,为了将最尖端技术应用于他们将来的进展项目而做好预备。10大技巧 读者心得“我不支持关于中断程序的建议。用法像(ti)的低功耗微控制器时,主代码常常只用于将处理器置于睡眠状态。当处理器处于激活状态时,全部工作都在中断程序中完成。”dickb“从我的阅历看,大概这篇文章的标题应为软件工程师的10大技巧。我曾经在面试一个新职位的软件工程师时问了这样一个问题:如何为一个新项目写软件?回答是:着手写软件代码!我以为他会说阅读规范,然后将软件分解成小模块并为它们设计流程图或类似的话。他没能得到这份工作。”the real dr bob“全部的都很好。想增强10b:让组织剩余成员(管理层)学习agile(和与其他开发流程相关的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024中国电信吉林延边分公司校园招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国建筑股份限公司岗位招聘1人易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国华能集团限公司所属在京单位招聘92人易考易错模拟试题(共500题)试卷后附参考答案
- 2024东航合规风控经理助理东方航空产业投资限公司合规风控主办招聘(上海)易考易错模拟试题(共500题)试卷后附参考答案
- 2024上海康桥镇人民政府下属公司公开招聘工作人员6人易考易错模拟试题(共500题)试卷后附参考答案
- 2024“才聚齐鲁成就未来”山东种业集团限公司权属企业招聘2人易考易错模拟试题(共500题)试卷后附参考答案
- 2024年度电商与快递企业绿色物流合作合同
- 2024年度桥梁工程施工现场安全合同
- 2024年度农业科技创新项目研发合同
- V-ed分词作状语课件
- 《装配式钢结构》课件
- 人教新目标八年级下册英语全册教案
- 造价-人员配备方案1
- 中学教代会代表选举办法
- 化学中考模拟测试卷5份含答案
- 医院药房二维码溯源管理
- (完整版)A4作文格纸可直接打印使用
- 四川省凉山州2023-2024学年七年级上学期期末检测历史试卷
- 《简述公平理论》课件
- 打地鼠游戏的设计与实现实验报告
- 物流管理专业人才需求分析与预测调研报告(2020年)
评论
0/150
提交评论