Страницы

Поиск по вопросам

вторник, 8 января 2019 г.

Можно ли увеличить лимит конструктора JAVA?

Код очень объемный, из-за чего столкнулся с лимитом: The code of constructor Window(String) is exceeding the 65535 bytes limit. Можно ли как-то увеличить этот лимит, если нет, то что делать в таком случае?


Ответ

Нет, этот лимит увеличить нельзя. Это ограничение виртуальной машины, закреплённое в спецификации
Размеры методов надо сокращать. Особенно конструкторов. И для этого всегда есть возможность. Вот что по этому поводу пишет авторитетный Роберт Мартин в своём знаменитом труде "Чистый код":
Первое правило: функции должны быть компактными. Второе правило: функции должны быть еще компактнее. Я не могу научно обосновать свое утверждение. Не ждите от меня ссылок на исследования, доказывающие, что очень маленькие функции лучше больших. Я могу всего лишь сказать, что я почти четыре десятилетия писал функции всевозможных размеров. Мне доводилось создавать кошмарных монстров в 3000 строк. Я написал бесчисленное множество функций длиной от 100 до 300 строк. И я писал функции от 20 до 30 строк. Мой практический опыт научил меня (ценой многих проб и ошибок), что функции должны быть очень маленькими. В 80-е годы считалось, что функция должна занимать не более одного экрана. Конечно, тогда экраны VT100 состояли из 24 строк и 80 столбцов, а редакторы использовали 4 строки для административных целей. В наши дни с мелким шрифтом на хорошем большом мониторе можно разместить 150 символов в строке и 100 и более строк на экране. Однако строки не должны состоять из 150 символов, а функции — из 100 строк. Желательно, чтобы длина функции не превышала 20 строк

Комментариев нет:

Отправить комментарий