Task #5039
closed
[verilog][parser][cfg] Неправильное оформление кода
Added by Alexander Kamkin over 10 years ago.
Updated over 10 years ago.
Description
- Оформление кода не соответствует соглашениям Google (настройки есть в проекте -
eclipse-java-google-style.xml
).
- Вместо пробелов встречаются символы табуляции.
- Отсутствует единообразие в именовании полей (
conditionBlock
, cfgtoremove -> cfgToRemove
; tmp
, temp
).
- Нет коментариев - коментарии к полям, методам и к коду внутри методов нужно писать сразу.
- Много лишнего кода - методы принтера.
ru.ispras.verilog.parser.model.Activity.Type
=> Activity.Type
.
- Вместо
System.err.println("MACROMODULE is not supported")
нужно использовать функции логирования.
P.S. В целом код небрежный.
- Status changed from New to Open
Сделал улучшения по замечаниям. Исключение составили лишний код - он отпадет по мере завершенности парсера (тоже касается и некоторой небрежности), логирование (аналогично, вывод почти не нужен будет), и комментарии внутри методов (по мере прогресса). r733
- Status changed from Open to Resolved
Сделано все кроме методов принтера, которые исчезнут по окончании разработки парсера.
- Status changed from Resolved to Open
- Соглашения Google не выполняются (скобки должны быть на той же строке, между if, while, for и условием должен быть пробел).
- Комментариев мало (даже шапки в некоторых файлах отсутвуют).
- Alexander Kamkin -> Mikhail Chupilko.
- Встречается лишний код (например, Storage - это обычный стек; в Java есть класс java.util.Stack).
- Имена типа arg0 - плохая практика.
- Комментарии "// TODO Auto-generated method stub" должны быть удалены.
- Классы NodeVisitor и VerilogNodeParser лучше сделать внутренними классами VerilogCfgBuilder.
- Классы NodeVisitor и VerilogNodeParser лучше переименовать в ExprVisitor и VerilogVisitor.
- Встречается странный код, например,
public final class VerilogCfgBuilder extends VerilogBackend {
protected CfgModel cfgModel; // Какой смысл в protected-поле в final-классе?
}
или
public Result onPortConnectionBegin(final PortConnection node) {
...
NodeVariable var = new NodeVariable(new Variable(portName, DataType.BIT_VECTOR(64)));
var.setUserData(new VariableData(VariableType.INOUT));
// Переменная var нигде не используется!
Это только примеры.
Предлагаю при создании строк из нескольких кусочков использовать метод format
:
AS IS:
"Variable " + rangedVariable.getVariable().getName() + " is not a variable in module " + getCurrentModule().getName() +"!"
TO BE:
String.format("Variable '%s' is not a variable in module '%s'!", rangedVariable.getVariable().getName(), getCurrentModule().getName());
- Status changed from Open to Resolved
Комментарии добавляются по ходу пьесы (а так, вообще, они дополнены), остальное - сделано.
- Status changed from Resolved to Closed
Also available in: Atom
PDF