`

提高程序员项目设计水平的11条建议

阅读更多
项目工程
                                 软件项目的设计过程如同搭建楼房一样

1.分析清楚你要面对的项目。

这是进行所有工作的第一步,如果你在这个地方都犯错了,那么后续所做的一切努力都是白费。比如,你要完成图书管理系统,那么你就应该明白这个系统主要是用于解决图书管理的问题。

 

2.考虑项目设计的方法。

在这个阶段,你要根据这个项目的特点考虑设计的工具和语言。比如,对于图书管理系统,它需要封装性好,这样有利于管理和维护。而这个系统开发周期较短,功能较简单。所以,根据其特点,选择Java作为开发语言会是一个不错的选择。

 

3.收集完整的需求。

花时间整理清楚你的用户群的基本需求有哪些,而你的产品最终功能有哪些。清晰的思维能够为你节省大量的时间。

 

4.编写全面的实施计划(或模型)。

  • 对于小型独立的项目,这可能只是一个基本的流程图或一个简单的函数模型。
  • 对于较大的项目,它有助于将工作分解成模块,并作如下考虑:
    • 每个模块的功能是什么
    • 模块之间的数据如何传递
    • 每个模块如何调用这些数据

虽然收集需求和编写计划比起写代码来得枯燥,甚至乐趣性比起花费几小时进行Bug调试还不如。但是,花时间对程序的正确流程和结构进行预先计划却能确保后续的程序设计的高效率。

 

5.为代码添加注释。

在你认为需要为代码进行解释说明的地方添加注释。最常见的注释会出现在函数说明,变量声明和返回值上,它告诉人们这个东西有什么用处以及为什么会这么做。

 

6.采用统一的命名规则来为变量命名。

它将帮助你跟踪每种类型的变量,并弄清楚每种变量的代表的是什么。比起简单的x = a + b * c,使用命名规则的命名的变量能够使代码更加易于维护和调试。最常见的命名规则为匈牙利命名法,变量名的前缀包含了它的函数型。比如,为整数变量命名的intRowCounter,以及为字符串型命名的strUserName。不管你采用的命名规则是什么,你必须确保命名规则的一致性,并且该规则能够对你的变量具有简单描述性。

 

7.对代码进行组织化编辑。

使用可视化的结构来表现代码结构。比如,在条件语句(if,else)或者循环语句(for,while)的代码块进行代码缩进。再比如,在变量和操作符中间加入空格。这样做能够使代码更直观优雅,程序流程一目了然。

 

8.进行全面的测试。

首先,在每个模块中测试常见的数据值,看是否和预期结果一样;再然后测试那些非常规的数据类型,用于排除隐藏的错误。测试是一门艺术,你能够在实践中丰富自己的技巧和见地。编写的测试用例通常会包含以下几种情形:

  • 极端值:包含极小值和超出预期的极大值,空字符串的文本值,每个参数都为空的情形等。
  • 无意义的值:假定用户会输入一些与输出要求无关的东西,看程序会对此有何反应。
  • 不正确的值:比如把零作为除数,把负数作为平方根,或者是在输入字符串的时候输入了一个数字。

9.实践,实践,再实践。

编程的工作是与时俱进的,你能够在实践中学到很多新的知识,同时以前学过的旧知识也能够被重新温习。

 

10.减小需求改变的风险。

在现实的工作环境中,需求的变化一直是一个令人头痛但又不得不去面对的问题。但是,假如你能够在项目开始阶段将需求和项目计划越发清楚地表现出来,那么在后续因为沟通的误解或理解力不够而导致设计的结果与需求产生偏差的问题就会得到有效的改善。 所以,在项目设计的阶段,请在编写代码之前清楚的展示你的需求文档和工作说明:系统需要什么东西,你正打算做什么,工作开展到了什么地步。

 

11.学会由简入繁。

假如你需要编程的东西很复杂,这样做能够帮助你更加顺利地开展工作。例如,有这样一个项目,窗口上有一个任意形状的图形,需要设计一个程序能够根据按住鼠标滑动的方向和速度而改变它的形状。

  • 首先,你可以设计完成一个正方形在按住鼠标滑动而产生形变的情形。换句话说,这一步主要是解决鼠标运动跟踪的问题。
  • 接着,将这个正方形的大小与鼠标的速度相关联起来。换句话说,这一步是解决鼠标速度与自身的形状的关联问题。
  • 最后,创建你想要的实际形状,并把这三个组件连接在一起。

这种方法有助于模块化项目的代码编写,其中每个组件都有它自己的独立的块。这对代码重用是非常有用的(例如你想使用鼠标跟踪新项目)并使得程序更容易调试和维护。

 

本文根据How to Improve your Skills as a Programmer整理改编,编译者为慧都控件网编辑回忆和感动(shoothao)

6
0
分享到:
评论
1 楼 wangtao731 2014-07-22  
我只能说连门都没入!

相关推荐

    历年程序员水平考试

    程序员水平考试,是一项旨在评估和验证程序员专业技能的重要测试,对于提升个人技术水平、求职应聘以及职业发展具有重大意义。本资料集包含了历年来的程序员水平考试试题及答案,旨在帮助考生全面了解考试内容,进行...

    软考资料(软件程序员,软件设计师)

    【标题】:“软考资料(软件程序员,软件设计师)”是指针对全国计算机技术与软件专业技术资格(水平)考试中的“软件程序员”和“软件设计师”两个级别的考试所准备的学习资源。这类考试旨在评估和认证参与者的...

    Java程序员面试宝典

    "JAVA程序员面试宝典"则是一个集大成的面试准备指南,它可能涵盖了Java核心技术、设计模式、并发编程、框架应用、数据库操作、算法与数据结构等多个方面的知识。在面试中,这些是评估候选人技术实力的重要标准。 ...

    程序员2009上半年下午试题及答案

    - **案例分析**:通常会给出一个或多个实际项目案例,要求考生根据案例需求设计解决方案、编写代码或者进行系统设计。 #### 2.2 具体知识点 - **数据结构与算法**:包括但不限于链表、栈、队列、树、图等基本数据...

    程序员修炼元婴期

    通过学习《程序员修炼元婴期》和阿里巴巴Java开发手册,程序员可以提升自己的技术水平,更好地理解和应用这些关键概念,从而在项目开发中发挥更大的作用。同时,了解并实践这些规范也有助于与其他开发人员的协同工作...

    程序员考试必备

    《程序员考试必备》资源...在实际学习过程中,建议结合实例和项目实践,以加深对理论知识的理解,提高实际编程能力。同时,不断关注行业动态和技术发展,保持学习的热情和敏锐度,将有助于程序员在职业生涯中持续进步。

    程序员学习建议

    掌握需求分析、设计、测试等环节的技能,可以帮助程序员提高项目的成功率。 - CMM(能力成熟度模型)是评估软件过程改进的一个标准,了解这一模型有助于提高个人和团队的整体开发水平。 7. **强烈的好奇心** - 对...

    作为一个程序员的最基本要求

    成为一个优秀的程序员并非易事,它需要的不仅仅是一两门编程课程的学习。以下是对成为一名好的程序员所必需的关键要素的详细解释: 首先,扎实的基础知识是程序员的基石。这包括理解计算机科学的基本概念,如数据...

    C语言程序员之路

    ### C语言程序员之路——高效学习与精通之路 #### 一、选择正确的学习资源 学习C语言的第一步就是选择合适的教材。正确的教材不仅能够让你更快地掌握C语言的基础知识,还能帮助你建立良好的编程习惯。 **避免使用...

    程序员教程(第三版、第四版)

    《程序员教程》是针对计算机软件水平考试(软考)中程序员级别的考生而编写的教材,主要涵盖了第三版和第四版的内容。这两版教程都致力于帮助备考者系统学习和掌握编程基础知识,提高解决实际问题的能力。在软考中,...

    2023程序员求职攻略(v2.0).pdf

    在技能描述上,建议适度使用“精通”等字眼,而更多地使用“熟悉”或“掌握”来更为准确地描述个人的技术水平。此外,编写简历时切忌提供不实信息,因为不准确的内容会增加面试时被问及的风险,反而影响求职效果。在...

    2018年上半年软考程序员试卷

    《2018年上半年软考程序员试卷》是一份宝贵的学习资料,主要针对想要参加软件水平考试,特别是程序员级别的考生。这份资源包含了两部分,分别是上午的综合知识试卷和下午的案例分析试卷,均为2018年上半年的真实考试...

    Java程序员面试笔试宝典-何昊pdf版

    根据提供的文件信息,我们可以推断出这...综上所述,《Java程序员面试笔试宝典》这本书旨在全方位地帮助Java开发者们提高自己的技术水平和面试成功率,无论是对于初学者还是有一定工作经验的专业人士都非常有参考价值。

    程序员简历模板11.doc

    【程序员简历模板11.doc】是一个专门为程序员设计的简历模板,用于展示个人的专业技能、项目经验和职业成就。在这个模板中,重要的是突出自己的技术能力、项目管理经验以及实际的工作成果,以便于求职者向潜在雇主...

    《内外兼修(程序员的成长之路)》

    总的来说,《内外兼修(程序员的成长之路)》是一本全面指导程序员成长的指南,无论你是新手还是资深开发者,都能从中汲取营养,提升自己的专业水平和综合素养。通过阅读并实践书中的建议,你将能够在激烈的竞争中...

    程序员日常开发工作培训方案

    本方案旨在通过系统化的培训机制,帮助新员工快速提升技术水平和业务理解能力,从而提高项目组的工作效率和沟通效果,并为人员的能力评定提供依据。 #### 二、培训目标 1. **技术能力提升**:使新员工掌握必要的...

    泰牛程序员 韩顺平 JavaEE全套 第05部分 轻松搞定网页设计视频教程

    根据给定文件的信息,我们可以提炼出以下几个重要的知识点: ...通过系统的学习,可以全面提高学习者的编程能力和网页设计水平。希望每位学习者都能够充分利用这些资源,不断进步,成为优秀的JavaEE开发者。

    程序员的十个层次

    这一阶段的重点在于提高软件架构设计能力,学会使用框架和技术栈来优化代码性能。此外,还需要不断跟进最新的技术动态和发展趋势。 #### 第四层:高级工程师 高级工程师不仅技术精湛,还能在团队中担任领导角色,...

Global site tag (gtag.js) - Google Analytics