Re[17]: Новости C#12
От: · Великобритания  
Дата: 17.04.23 20:47
Оценка: 8 (1)
Здравствуйте, Философ, Вы писали:

Ф>·>Да и вообще неясно насколько необходимо проверять abrt после каждого readmeml, наверняка это можно сделать после всех чтений.

Ф>Это правда необходимо: любое чтение — потенциальное исключение, которое может закончится командой halt.
Ну это можно в readmem запрятать или для такого исключения — бросать исключение. В общем, неважно, мой поинт в том, что очень часто необходимость выравнивать код по вертикали говорит о том, что code smells и его можно улучшить.

Ф>>> ((SP + 4) & 0xFFFF))

Ф>·>Тут явно напрашивается что-то вроде "extract_something(SP + 4)", документации ради как минимум, и не потребуется вертикальное выравнивание.
Ф>Зачем????? Посмотри на название функции — это opPOPA, т.е. команда, которая вычитывает регистры, используя ss и ESP. Что тут ещё документировать???!
Я имею в виду наложение маски "& 0xFFFF". Полагаю это извлечение значения для 16-битных команд. Ну так сделай метод с таким названием вроде use16bit.
Или сделать два метода readmeml16 и readmeml32 и там эту маску запрятать. В эту же пару методов можно и SP += 4 / ESP += 4 запрятать чтобы всю эту твою копи-паст арифметику не писать.

Ф>А вот производительность эмулятора ты вот такими необдуманными действиями легко можешь просадить.

Если вы пишете на яп, который в тривиальнейшие оптимизации не умеет, вы явно выбрали неподходящий инструмент.

Ф>·>Обычно авто-форматтеры позволяют помечать специальными маркерами фрагменты кода, для которых автоформатирование отключается. Что-то типа "// formatter=off".

Ф>необычно.
Студия умеет, Райдер умеет, vscode умеет, clion умеет. Какой необычный форматтер вы используете?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.