Комментарии 4
Можно, я покритикую код и дам советы по улучшению? Раз уж вы его опубликовали.
Код пишется для людей, и надо стараться, чтобы он был простой и логичный, легко читался. У вас это требование не выполняется.
Во-первых, код раскособочило, то ли из-за отсутствия выравнивания, то ли из-за использования табуляции. В первом случае стоит отформатировать код средствами вашей IDE либо вручную, во втором — сделать замену табов на пробелы
Во-вторых, переменным надо давать понятные, осмысленные имена, вроде:
Смотрите, как читабельно: прибыль равна доход минус расход. Хороший код так и выглядит, как читабельный текст.
У вас же названия переменных ничего не говорят:
— data_arr — любая переменная хранит данные, потому слово data ничего не значит. arr тоже не добавляет смысла. Советую взять осмысленное название, вроде memory или virtual_memory
— pzf — вообще хрен расшифруешь. Если это флаг, то стоит подумать над названием получше и добавить подробный комментарий с описанием перед переменной.
Избегайте ничего не говорящих слов вроде var, val, tmp, data, array.
Названия i и j не годятся, так как у вас большой объем кода и надо постоянно прокручивать его в начало, чтобы посмотреть, что они значат.
Также, вместо портянки if/else лучше использовать switch().
Комментариев в коде явно не хватает, хотя бы для переменных.
> while(str_arr[i] != '}' )
> i++;
Тут ошибка, возможен потенциально бесконечный цикл с крашем программы при выходе за границу выделенной вирт. памяти.
Этот код встречается часто и стоит вынести его в отдельную функцию seek_char() с проверкой на конец строки.
Пока, к сожалению, код нечитабелен. Вы потратили много времени на подготовку и написание статьи, будет жалко, если из-за плохого кода ваши усилия пропадут зря. Советую исправить.
Код пишется для людей, и надо стараться, чтобы он был простой и логичный, легко читался. У вас это требование не выполняется.
Во-первых, код раскособочило, то ли из-за отсутствия выравнивания, то ли из-за использования табуляции. В первом случае стоит отформатировать код средствами вашей IDE либо вручную, во втором — сделать замену табов на пробелы
Во-вторых, переменным надо давать понятные, осмысленные имена, вроде:
int profit = income - expense;
int mem_used = thread.owner_process.memory_table.get_total_size();
Смотрите, как читабельно: прибыль равна доход минус расход. Хороший код так и выглядит, как читабельный текст.
У вас же названия переменных ничего не говорят:
— data_arr — любая переменная хранит данные, потому слово data ничего не значит. arr тоже не добавляет смысла. Советую взять осмысленное название, вроде memory или virtual_memory
— pzf — вообще хрен расшифруешь. Если это флаг, то стоит подумать над названием получше и добавить подробный комментарий с описанием перед переменной.
Избегайте ничего не говорящих слов вроде var, val, tmp, data, array.
Названия i и j не годятся, так как у вас большой объем кода и надо постоянно прокручивать его в начало, чтобы посмотреть, что они значат.
Также, вместо портянки if/else лучше использовать switch().
Комментариев в коде явно не хватает, хотя бы для переменных.
> while(str_arr[i] != '}' )
> i++;
Тут ошибка, возможен потенциально бесконечный цикл с крашем программы при выходе за границу выделенной вирт. памяти.
Этот код встречается часто и стоит вынести его в отдельную функцию seek_char() с проверкой на конец строки.
Пока, к сожалению, код нечитабелен. Вы потратили много времени на подготовку и написание статьи, будет жалко, если из-за плохого кода ваши усилия пропадут зря. Советую исправить.
+1
Названия i и j не годятся
Также, вместо портянки if/else лучше использовать switch().
Согласен, но для шаблона я использовал код интерпретатора Brainfuck из Википедии.
> while(str_arr[i] != '}' )
> i++;
Тут ошибка, возможен потенциально бесконечный цикл с крашем программы при выходе за границу выделенной вирт. памяти.
Но тут программист сам уже должен следить за тем, чтобы скобки/переходы были правильно расставлены.
Спасибо.
0
Предыдущие части почему то не открываются…
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Эзотерический язык LMC