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

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

4 страницы (Word-файл)

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

КОД

  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.

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

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