黑马程序员技术交流社区

标题: 【石家庄校区】 写代码时应当牢记的事情 [打印本页]

作者: hfy198701    时间: 2019-9-4 18:24
标题: 【石家庄校区】 写代码时应当牢记的事情
在如今这个时代,每个人都在努力提升资源能力。

在Web应用程序方面,我们有Spring、Play和Struts等框架,这些框架可以帮助我们构建具有可扩展性和可管理性的软件。这些框架提供了许多样板代码,所以你无需在应用程序中再写这些代码。

不过,写代码并不难,但是写高质量的代码却很难。

作为开发人员,在日常工作中我们也应该遵循相同的基本原则。我们应该将工作完成得尽善尽美,不能将任何错误留给客户。很多时候,迫于压力开发人员会编写管理不善或复杂的代码。为了编写高质量的代码,有一条经验法则是写出的代码应该让所有人都能当作短语一样阅读。

写代码时应当牢记的事情


public void doSomething ( ) {
    Line1 ....
    Line2 ....
    Line3 ....
    Line4 ....
    Line5 ....
}


如果你想抽取1-4并创建一个单独的方法。常见的做法是:复制,创建一个方法,然后将复制的行粘贴到该方法中;总共需要3-4步。在做这样的任务时,你可以使用IDE的重构工具(而无需复制粘贴)。推荐阅读:Google 出品的 Java 编码规范,强烈推荐,权威又科学!

重构工具有许多重要的功能,包括:


编写类


已存在
新创建
AppUtil
ApplicationUtil
ConfigutationUtil
ConfigurationHelper
LoggerUtil
LoggerHelper


不恰当的类名
恰当的类名
PersonRestApi
PersonController
PersonRest
PersonController
PersonImplementation
PersonService


编写方法


public Long createPerson(PersonVO personVO) {
    1.Appointment appointment = trying to getting an appointment from DB.
    2.then performing if else over the result of appointment.
    .
    .
    .
    .
    14.then updating something on the basis of some condition.
    15.then finally creating person.
}


很多时候方法都超过了这个限制,开发人员在一个方法中编写100-300行代码,最后只会让代码面目可憎且难以理解。这篇666:如何写出让同事无法维护的代码?

引发的问题包括:


解决方法:


所以,这段代码应该像下面这样:

public Long createPerson(PersonVO personVO) {
  appoitnmentValidation();
  updatingSomething();
  creating person code;
}



编写变量


编写常量


/**** Cache ****/
public static final String CACHE_NAME = "personCache";
/**** Attributes ****/
public static final String NAME = "name";
public static final String MOBILE = "mobile";
/**** Configuration ****/
public static final String APP_NAME = "PersonDemo";
public static final String APP_VERSION = "1.0";


如此可以方便搜索整个文件。


编写逻辑


什么是“通用代码”?

在很多项目重构的时候,我们都会发现一些本不应该存在的冗余代码。

假设我们有一个邮件草稿的POJO类,它的成员会在发送邮件时被使用。那么,发送邮件所需的步骤有哪些?


那么最终的代码行数为:

对象创建——1行:

MailDraft mailDraft = new MailDraft();


设置数据——3行:

mailDraft.setTo();
mailDraft.setBody();
mailDraft.setMessage();


发送邮件的逻辑至少需要4行,所以总共有9-10行代码。

如果我们需要在多重条件或事件中发送邮件,那么情况会怎样?我们需要相同的逻辑,而且通常我们会发现开发人员在每个地方都重复了相同的步骤,并创建一个拥有某些特定代码的方法,于是冗余开始层层叠加。

但是,如果我们将创建草稿和发送邮件的代码提出来,放到另一个方法中,那么每个方法都可以调用这段代码,于是每个方法都省却了10行代码,我们就无需一次又一次地重复这段代码了。

不要匆匆忙忙地赶代码。如果情非得已,那么也要记得加注释:

TODO:需要重构。








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2