Одиночные операнды и заключение в фигурные скобки. Структура пакетов. Названия переменных, методов, классов, HTML страниц, JSP

Страницы работы

Содержание работы

КОД

  1. Названия переменных, методов, классов, HTML страниц, JSP должны точно указывать на предназначение данной сущности что облегчит в будущем поддержку данного приложения. Избегать использования сокращений и аббревиатур типа aaa, bbb, getCr(), не использовать латиницу например getKolichestvoStudentov();
  2. Имена классов всегда с большой буквы: Book, Action. Если имя состоит из двух и более слов, то ВСЕ слова пишутся с большой буквы: MatrixFactory, FindCommand.
  3. Имена переменных и методов всегда должны начинаться с маленькой буквы: сount, age, type; find(), delete(), execute(). Если имя состоит из двух и более слов, то  первое слово с маленькой, все остальные с большой: nameActor, typeCourse; getCount (), movePointRange().
  4. Использование констант вместо захардкоданых значений. Если константа используется по всему приложению, то ее определяют в отдельном классе (например: com.epam.resources.Constants). Если же данная строка используется только в данном классе то ее можно определить здесь же. Имена констант содержат только символы верхнего регистра.

public static final String PAGE =“jsp\\main.jsp”;

Если имя константы состоит из двух слов, то они разделяются символом «подчеркивание»

public static final int MAX_VALUE =71;

  1. Структура пакетов должна согласовываться с областью применения приложения и именем фирмы-разработчика. Первый пакет либо com, либо код страны ru, by, es, fr, en … далее пакет с названием фирмы разработчика epam, sun, carefirst… потом может идти разделение по бизнес направлению insuarance, auto, finance… пакет с названием приложения client, broker… и внутри уже приложение разбивается на пакеты database, resources, utils, model и т.д. Названия пакетов содержат только символы нижнего регистра и никаких других символов не должно быть.

package com.epam.auto.common;

  1. Любой повторяющийся код классов и JSP должен быть вынесен в отдельные вспомогательные методы, классы, страницы, для избежания эффекта copy & paste, после чего затруднена поддержка общей функциональности.
  1. Проверка на пустую строку должна осуществляться с помощью функции str.length() = = 0 а не str.equals(“”).  В Java 6 использовать метод isEmpty()
  1. Для избавления от лишней проверки на null в случаях

if(str != null && str.equals(“test”)){

}

Переменную поменять местами с константой:

if(“test”.equals(str)){

}

  1. При складывании строк в цикле использовать StringBuilderилиStringBufferвместо String

String s = "";

for (int i = 0; i < count; i++) {

    s += array[i];

}

return s;

Использовать

StringBuilder sb = new StringBuilder(estimatedCount);

for (int i = 0; i < count; i++) {

    sb.append(array[i]);

}

return sb.toString();

  1. В Java 1.4 использовать конструкции ifelse в случаях использования многократных проверок типа:

if(“white”.equals(name)){

}else

if(“black”.equals(name)){

}else

if(“gray”.equals (name)){

}

В Java 1.5 и выше заменять лесенку if-else на взаимодействие перечисления (enum) и оператора switch-case

enum Mono { WHITE, BLACK, GRAY }

String str = "WHITE";

Mono mono = Mono.valueOf(str);

//

switch (mono) {

case WHITE : //

break;

case BLACK : //

break;

case GRAY : //

break;

default :

throw new

EnumConstantNotPresentException(Mono.class, mono.name());

}

  1. Одиночные операнды также должны быть заключены в фигурные скобки

if(n == 0){

     a++;

}

  1. Не использовать вызов многих методов в одной строке, что затрудняет нахождение проблемы. Код типа:

String path1 = getServlet().getServletConfig().getServletContext().getRealPath(“1.txt”);

String path2 = getServlet().getServletConfig().getServletContext().getRealPath(“2.txt”);

int version = getServlet().getServletConfig().getServletContext().getMinorVersion();

должен быть переработан в вид:       

ServletContext servletContext = getServlet()

.getServletConfig().getServletContext();

String path1 = servletContext.getRealPath(“1.txt”);

String path2 = servletContext.getRealPath(“2.txt”);

int version = servletContext.getMinorVersion();

Причем значения, которые не изменяются во время работы приложения такие как, например realPath должны вычисляться один раз и вынесены в статические переменные.

  1. При использовании JDBC Connections, Statements должны быть закрыты:

Connection con = null;

PreparedStatement preparedstatement = null;

Resultset resultset = null;

try {

con = db.getConnection(true);

preparedstatement = con.prepareStatement("SELECT xxx  WHERE ID = ?");

resultset = preparedstatement.executeQuery();

}

catch (Exception e)

{

    // Do error handing here

}

finally {

    if (resultset != null)

try {

resultset.close();

} catch  (SQLException e) {}

    if (preparedstatement != null)

try {

preparedstatement.close();

} catch  (SQLException e) {}

if (con != null){

db.releaseConnection(con);

}

}

  1. Все места в коде, которые требуют разъяснений, должны иметь комментарии.
  1. Старый код должен быть удален!!!

XML

§  Названия элементов XML не должны содержать данные самого XML.

§  Названия элементов должны быть записаны в нижнем регистре? н-р <student>

§  Если название состоит из двух слов, то в качестве разделителя следует использовать дефис: н-р: <servlet-mapping>

§  Избегать ненужных вложенностей.

<shop>

     <products>

           <product>…</product>

                …

           <product>…</product>

     </products>

</shop>

XSD

§  Правила для элементов, атрибутов  XML должны задаваться как можно точнее, избегая тем самым возможности на ошибку пользователя.

§  Стараться описывать типы отдельно избегая большой вложенности XSD элементов.

web

§  Проверки значений web приложения, которые не требуют серверной обработки, должны осуществляться на клиентской стороне посредством JavaScript. Сообщения об ошибках должны точно указывать на проблему и формат вводимых данных на той же самой странице редактирования. Confirmation также должен содержать недвусмысленный текст так например вопрос Are you sure? не содержит основания вопроса.

§  Стили и Javascript код должны быть вынесены в отдельные файлы css, js , которые кэшируются браузером, тем самым уменьшая объем передаваемой страницы и повышая возможность поддержки кода в дальнейшем.

§  Страницы редактирования данных должны содержать кнопки Cancel в то время как простой просмотр информации для возвращения на предыдущую страницу должен содержать кнопки Back. Back должен обрабатываться на серверной стороне избегая использование history.back.

Похожие материалы

Информация о работе