Цитата:
Сообщение от GabberBaby
Я имел ввиду, чем ты измерял что hikaricp медленнее dbcp. Или это просто "на глазок", что есть очень тупо ?
А быть "enterprise разработчиком" значит работать с кучей легаси говна и всё.
|
Это утверждение спорно. Например, WS - это легаси? SOA будем пилить на уровне io/nio и разбора XML на уровне "if node.equals("requestBody")"?
Вот уж где правда куча легаси и хардкода, так это, например, здесь:
Код:
case 2: // Установка уже взятого саба (см case 5)
html.append("<br>Переключить саб-класс:<br>");
final int baseClassId = activeChar.getBaseClassId();
if(playerClassList.size() < 2)
html.append("У вас нет саб-классов для переключения, но вы можете добавить его прямо сейчас<br><a action=\"bypass _bbscareer;sub;1\">Добавить саб.</a>");
else
{
html.append("Какой саб-класс вы желаете использовать?<br>");
if(baseClassId == activeChar.getActiveClassId())
html.append(HtmlUtils.htmlClassName(activeChar.getActiveClassId())
+ " <font color=\"LEVEL\">(Базовый)</font><br><br>");
else
html.append("<a action=\"bypass _bbscareer;sub;5 " + baseClassId + "\">"
+ HtmlUtils.htmlClassName(activeChar.getActiveClassId()) + "</a> "
+ "<font color=\"LEVEL\">(Базовый)</font><br><br>");
for(SubClass subClass : playerClassList.values())
{
if(subClass.isBase())
continue;
int subClassId = subClass.getClassId();
if(subClassId == activeChar.getActiveClassId())
html.append(HtmlUtils.htmlClassName(activeChar.getActiveClassId()) + "<br>");
else
html.append("<a action=\"bypass _bbscareer;sub;5 " + subClassId + "\">"
+ HtmlUtils.htmlClassName(activeChar.getActiveClassId()) + "</a><br>");
}
}
break;
А вот, к примеру, другой подход:
Код:
<tr>
<td>
{{ stringHolder.getNotNull(player, "community.career.subclass.control.can.switch.desc") }}
</td>
</tr>
<tr>
<td height="15"></td>
</tr>
<tr>
<td>
<center>
<table>
<tr>
{% for subclass in sortedSubclasses %}
{% if player.getActiveClassId != subclass.getClassId %}
{% set subcId = ["class.name.", subclass.getClassId]|join %}
<td>
<center>
<button value="{{ stringHolder.getNotNull(player, subcId) }}"
action="bypass _bbscareer:subclass:switchto:{{ subclass.getClassId }}"
width=150
height=25
back="L2UI_CT1.Button_DF_Down"
fore="L2UI_CT1.Button_DF">
</center>
</td>
{% endif %}
{% endfor %}
</tr>
</table>
</center>
</td>
</tr>
Есть разница кода в плане читабельности и рефакторинг-пригодности? Вот ровно то же самое можно сказать про многие моменты. Почему вы так сразу отрицательно отзываетесь о более высокоуровневых решениях? Конечно, смотря что понимать под Enterprise.
По моему сугубо личному мнению, заниматься Enterpise - это не только пользовать какие-то стеки технологий и фреймворки. Это и тип мышления. А нахардкодить if-else блоков на 100500 случаев может каждый. Да и вообще я бы не делил Enterprise / не Enterpise, не совсем это верно. Можно вообще все на plain java сделать, вопрос только сколько вы времени потратите и сколько выграете в оверхеде? А главное, как вы потом это будете сопровождать? Очень любопытно посмотреть как сделать без фреймов SOA/WS/WS-Security, например, да еще и накрыть СКЗИ сверху. С учетом сегодняшнего развития аппаратной части этот вопрос очень спорен. Мы же не под микроконтроллеры и какие-то кастомные платформы пишем код, где каждый байт на счету.