`
zcz123
  • 浏览: 158804 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类

作为软件工程师,你必须知道的20个常识

 
阅读更多

作为一名优秀是软件开发工程师,以下的这些常识你知道吗?在实际工作中有没有总结过呢?小编就带大家一起分享这20个软件开发常识。

1.针对面向对象的设计与分析:为了让软件有更好的可维护性,重用性以及快速开发,简短的OOAD与它的SOLID原则对于每一个软件工程师来说都是该牢记的。

2.软件品质因素:软件工程的好坏与软件的品质因素是绝对关联的。请在开发过程中深刻的理解这一点。

3.数据结构与算法:深刻理解像数组,列表,栈,树,图,集合等这样的基本数据结构,并在软件开发过程的关键部分使用好的算法。这样整个软件逻辑就会很清晰了。

4.Big-O符号来标记算法复杂度:在开发过程中,请务必使用Big-O符号来比较两个代码段或者不同算法所消耗的时间复杂度,这在开发高性能软件项目中是非常重要的。

5.UML图:UML图已经是一个通用的软件设计与分析的语言。如果你们在开发软件的过程中还没有做UML图,那么给人的感觉就是这压根就不是软件工程。 

6.正确的衡量软件开发进度

7.设计模式:设计模式是前人在解决各种各样问题的过程中总结出来的一套标准对策,在绝大部分情况下,使用这些模式肯定是利大于弊的。如果你不想在开发过程中重新造轮子,那么就直接使用它吧。

8.理解操作系统的基本原理:因为所有的应用程序都是直接运行在操作系统这个层级的,学习操作系统的基本原理能让我们对应用程序的底层以及性能有更好的把握。

9.学习计算机组成原理:几乎所有的应用程序甚至是OS都需要与物理硬件打交道的,所以学习计算机组成原理与理解操作系统原理一样都可以让你对于应用程序有更深刻的理解。

10.网络基础:网络与计算机组成,操作系统以及传输流程都是紧密关联的,理解网络基础能让你在开发过程中得心应手。

11.需求分析:对于软件工程来说,需求分析是项目的起点,也是整个项目最最重要的部分。如果这玩意你搞错了,整个项目的方向也就错了。

12.软件测试:在软件工程中,测试也是非常重要的。单元测试,黑盒测试,白盒测试,TDD,集成测试等等都是我们必须知道的。

13.独立管理:主要是说类库(JAR,DLL等等)的管理,熟悉使用一些类似Maven,Ant,lvy这样的知名工具对于大型项目的类库管理是非常有用的。

14.持续化集成:持续化集成能让测试大型模块与组件更加简单与自动化,关于这一点,你可以去了解Hudson这个工具。 

15.ORM:了解Hibernate这种将对象与数据库表映射工具是非常有好处的,它可以减少你的代码量并节省你的代码维护时间。

16.DI(独立注入):DI或者IoC(Inversion of Control)的具体实现框架Spring能让你创建对象时更加轻松,对于大型企业级项目更是如此。

17.版本控制系统:VSC工具(SVN,TFS,CVS等)对于团队合作开发以及版本控制都是非常重要的。熟练使用这类工具算得上是必备技能。 

18.国际化:通过i18n来将不同语种的字符串存储在其他文件是让软件支持多语种最好的方法。所以i18n在不同的IDE上使用的方法我们应该了解。 

19.架构模式:理解类似MVC,MVP,MVVM这样的架构模式非常关键,这能让你写出易维护,简洁以及方便测试的代码。

20.编写干净的代码:你的代码仅仅只是能够正常运行是远远不够的,它必须让编程人员轻易看懂来方便后续维护,所以,代码格式以及编写易读的代码技术都是我们需要了解的关键点。

分享到:
评论

相关推荐

    软件工程师面试评价表.pdf

    在当今这个信息化飞速发展的时代,软件工程师作为一种专业技术职位,是众多科技企业争相招聘的人才。为了选拔出最适合企业发展需要的软件工程师,企业往往会采用一系列严格的评价标准和流程。《软件工程师面试评价表...

    高级软件工程师简历模板

    在当今这个信息化的时代,软件工程领域的发展日新月异,高级软件工程师作为这一领域的精英力量,他们的简历需要准确而全面地展示自身的优势和经验。一个精心制作的简历模板不仅能够帮助求职者系统化地整理信息,还能...

    日志:每个软件工程师都应该知道的有关实时数据的统一抽象-20150828150309.pdf

    ### 日志:每个软件工程师都应该知道的有关实时数据的统一抽象 #### 一、日志的概念与重要性 日志(Log)是计算机科学中的一个重要概念,尤其在分布式系统和实时数据处理领域扮演着核心角色。文章《日志:每个软件...

    软件工程师简历模板20篇

    在IT行业中,软件工程师是需求量大且至关重要的职位,其职责涵盖了软件设计、编码、测试、维护等多个方面。为了在众多应聘者中脱颖而出,一份精心制作的简历至关重要。本资源"软件工程师简历模板20篇"正是为满足这一...

    软件工程师之路

    作为软件工程师,了解并掌握各种架构模式如单体架构、微服务架构、SOA(面向服务架构)等至关重要。架构的选择直接影响到软件的可扩展性、可维护性和性能。例如,微服务架构能将大型应用拆分为独立的服务,每个服务...

    软件公司研发中心软件工程师岗位说明书.pdf

    在当今快速发展的信息技术时代,软件工程师作为软件公司研发中心的核心技术力量,其作用与责任日益凸显。《软件公司研发中心软件工程师岗位说明书》详细阐述了软件工程师在职业道路上的职责、要求以及成长路径,旨在...

    高级软件工程师教程资料

    【高级软件工程师教程资料】 本教程资料集合了高级软件工程师在职业发展过程中所需掌握的关键知识点,旨在帮助读者全面了解并提升软件开发的各个环节...通过系统学习和实践,你将成为一个全面且专业的高级软件工程师。

    2022年成都地区高级软件工程师职位薪酬调查报告.pdf

    同时,随着成都作为西部重镇和科技中心的发展,其IT行业的繁荣也可能会推高高级软件工程师的薪酬水平。 总体而言,《2022年成都地区高级软件工程师职位薪酬调查报告》不仅揭示了当前的薪资状况,也为个人职业规划和...

    软件测试工程师基础教程

    对于想要成为软件测试工程师的读者,本书还列举了测试人员应具备的职业素养,包括技术技能、沟通能力、问题解决能力等,为读者描绘了一个合格软件测试工程师的形象。 #### 软件测试流程 软件测试流程被细分为需求...

    L1软件工程师必备

    根据文件中的描述,L1软件工程师的基本要求主要包括以下几个方面: 1. **通信协议与网络技术**:熟悉各种通信协议及网络技术,包括但不限于GSM/EDGE、WCDMA、TD-SCDMA、CDMA2000、FDD-LTE、TDD-LTE等主流移动通信...

    软件工程师学习笔记大全

    《软件工程师学习笔记大全》是一份综合性的学习资源,涵盖了软件开发中的多个核心技术和框架,旨在帮助软件工程师系统性地提升自己的技能。这份资料集合了从基础编程语言到高级应用框架的广泛知识,是软件工程师成长...

    高级软件测试工程师.ppt高级软件测试工程师.ppt

    * 软件测试应该贯穿整个软件开发过程,而不应该作为一个独立的阶段。 * 测试用例应该由测试输入数据和预期输出结果组成,并且应该考虑合理和不合理的输入条件。 * 软件测试应该注意群集现象,以避免疏漏或重复无效的...

    java软件工程师简历模板——应届生.rar

    Java软件工程师是IT行业中一个非常重要的职位,尤其对于应届毕业生来说,找到一份合适的简历模板至关重要。这份名为"java软件工程师简历模板——应届生.rar"的压缩包文件,旨在为即将踏入职场的Java编程新手提供一份...

Global site tag (gtag.js) - Google Analytics