В приложении, использующем Hibernate, мы имеем несколько классов сущностей, которые сопоставляются таблицам в схеме базы данных. Я видел объекты, которые кажутся бесполезными JavaDoc-комментариями и не могут не задаться вопросом, есть ли там какая-либо полезность.
Есть ли ценность для этих комментариев с мозгом? А если нет, можете ли вы сделать аргумент для его удаления?
/**
* MyClass entity.
*/
@Entity
@Table(name="my_class")
public class MyClass {
// Fields
/** The id. */
private Integer id;
/** The name. */
private String name;
...
// Constructors
/**
* default constructor.
*/
public MyClass() {
}
...
// Property accessors
/**
* Gets the id.
*
* @return the id
*/
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return this.id;
}
/**
* Sets the id.
*
* @param id
* the new id
*/
public void setId(Integer id) {
this.id = id;
}
...
}
Неважно.
Аргументы для удаления:
Делает код более длинным, чтобы больше прокручивать. Я бы предпочел увидеть код режима на моем экране сразу, чем бесполезные комментарии, принимающие 50% экрана.
Как только вы увидите, что комментарии просто пух, вы, вероятно, просто привыкнете пропускать комментарии. Даже те, которые не пух. Поэтому они фактически обесценивают любые полезные комментарии.
Хотя я действительно думаю, что некоторые из них могут быть бесполезными, я, как правило, добавляю похожие комментарии в свой код. Цель состоит в том, что становится легче определить общую компоновку кода, и там, где нет необходимости читать и интерпретировать сам код. Например, в моих классах я склонен структурировать это следующим образом:
class Foo{
/************************
* Variable Declaration
*/
//Define some variables here
/************************
* Constructors
*/
//Put some constructors here
/************************
* Methods
*/
//Put some methods here
/**
* @return A description of what the variable is, not just that you are returning it
* so the user doesn't have to find the variable definition above and look for
* a description there.
*/
void exMethod(){
return var;
}
}
Таким образом, если у меня действительно длинный класс, и я просто прокручиваю его, маркеры для разных разделов легко видны и создают приятный разрыв. Но это только мое предпочтение. Другие могут считать это излишним и не хотят включать их в код.