Actions
Task #5039
closed[verilog][parser][cfg] Неправильное оформление кода
Start date:
07/09/2014
Due date:
% Done:
0%
Estimated time:
Detected in build:
svn
Published in build:
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. В целом код небрежный.
Updated by Mikhail Chupilko over 10 years ago
- Status changed from New to Open
Сделал улучшения по замечаниям. Исключение составили лишний код - он отпадет по мере завершенности парсера (тоже касается и некоторой небрежности), логирование (аналогично, вывод почти не нужен будет), и комментарии внутри методов (по мере прогресса). r733
Updated by Mikhail Chupilko over 10 years ago
- Status changed from Open to Resolved
Сделано все кроме методов принтера, которые исчезнут по окончании разработки парсера.
Updated by Alexander Kamkin over 10 years ago
- 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 нигде не используется!
Это только примеры.
Updated by Alexander Kamkin over 10 years ago
Предлагаю при создании строк из нескольких кусочков использовать метод 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());
Updated by Mikhail Chupilko over 10 years ago
- Status changed from Open to Resolved
Комментарии добавляются по ходу пьесы (а так, вообще, они дополнены), остальное - сделано.
Updated by Alexander Kamkin over 10 years ago
- Status changed from Resolved to Closed
Actions