Стандартная может не подходить, например, из-за того, что нужно к существующему решению с блекджеком сокетами и дамами легкого поведения бинарными данными, прикрутить систему администрирования. Ну не умеет один прекрасный сервер написанный, допустим на C++, общаться через http. А с ним надо общаться. И быстро.
Иногда бывает нужно, например если необходимо сериализовать\десериализовать объект. Тут уж либо вручную писать, либо автоматизировать. Рефлекнш очень уж медленный — можно использовать лишь там, где производительность сильно не пострадает, но когда мне нужно было граф из 150-300 объектов превращать в xml, использовать, к примеру dom+reflection было очень накладно.
Но в целом через какое-то время все свелось к кодогенерации: на проперти something в доки добавляем @Seriazable something, ну или просто @Serializable, если не нужно название менять в сериализованном виде, или на методы (потому что иногда состояние объекта необходимо вычислять, как например количество предков) @Serialize length / @Deserialize length
И после по этим классам проходились тулзой которая генерила мапперы умеющие сериализовать и десериализовать, в которой например в методе serialize было что-то вроде $this->out->write(«something», $instance->getSomething());
Ох тыж смешной. По твоему если я перестану создавать объекты, что в яве практически ничего не стоящая операция, по сравнению с некоторыми другими, а уж тем более по сравнению с достаточно жирной бизнес логикой в некоторых местах… у нас от этого 450к юзеров подвалит, и будет каждый день заходить в нашу чудную игру?
Второй абзац ты наверное даже и не читал, там кратко описано на фоне чего это 50к получаются.
Ах да, кстати, с людьми, которые пишут сервера на плюсах, долгое время сидел в одной комнате. Так что отлично представляю что и как там у них, и на сколько (нинасколько вообще после трех минут работы сервера) ява медленнее чем те же си.
~9 месяцев аптайма (правда вместо нетти — мина), от 1к юзеров на сервере, от 50к дейли актив юзерс, сотни тысяч минорных сборок мусора, и десяток полноценных.
Кушает много цп? Если на графике можно было увидеть более 3-х процентов cpu-тайма это была пичалька. Много памяти? 4 гигабайта иногда кушало да. Нагибает бд? Какое из 8 приложений которое стучится на тот же сервер в соседний инстанс постгреса?
Первый раз я уперся в то, что мне нужно было протестировать метод который делает некоторые вещи на основе аннотаций. На j.l.Class Мокито, как оказалось натянуть моки не в состоянии…
Подтверждаю, игрался как с JMock и EasyMock, но как увидел Mockito сразу же забыл о первых двух. Если по возможностям не могу сказать что-то конкретного (первые два уже не стал глубоко изучать и писать «продакшн тесты», то по синтаксису dsl от Mockito приятнее: docs.mockito.googlecode.com/hg/org/mockito/Mockito.html
Угу, учитывая какими темпами циферки в версиях наращивает мина и нетти… переход на последнюю становиться все более и более очевидным — благо в ней и плюшек больше (к примеру тот же http)
Думаю Camel сюда не лучший вариант, какое-то оверкилл решение с еще заранее неизвестной производительностью. Хотя быть может все дело в том, что я не смог за неделю изучить все тонкости роутинга в камеле и связки его c миной, но по сравнению с кодом на руках который у меня был, производительность скакала у меня очень сильно (хотя была в пределах в 12-15 (точно уже не помню) раз меньше самописных экзекьютора и роутера и енкодеров-декодеров).
Хотя вообще у нас весь код роутинга и енкодинга генерился при проходе apt-ом и быстрее врядли можно было бы его написать (прямые вызовы нужных методов вроде out.writeInt(message.getSomething())
я сова, стопроцентная сова. Если я не лягу спать в 2 ночи, то спать сейчас мне захочется только к 5 или 6 утра, на следующий день я проснусь ну никак не раньше двух а отойду только к пяти. В итоге через неделю у меня будет 28 часовой день и шестидневная неделя (пробовал и не раз, знаю...)
Я просто нашел для себя замечательный график и начал спать по 6:30-7 часов в день.
2 часа ночи, а то и полтретьего — это не так рано, 7 часов сна для меня вполне хватает что бы в воскресенье не отлеживаться а всю неделю не клевать первую половину дня носом
В жизни есть еще более 9к вещей кроме «Что? Где? Когда» и спортивных трансляций, и большинство из них ночью осуществить практически нереально.
Меня например, очень прет, когда я просыпаюсь, даже в морозную погоду, в субботу, в 8:45 выползаю с одной из своих кабелин на занятия, возвращаюсь обратно я примерно в три. Голодный, уставший, довольный и… что самое важное полон энергии, от осознания того, что я сегодня уже сделал кучу вещей и то, что на часах всего лишь три часа — я могу сделать еще большую кучу вещей (хотя мог проснуться бы в 12-13 часов, почитать почту понежиться под одеялком...)
Мне нравится встречать рассвет. Раньше я встречал его и ложился спать — и очень жалею, очень плодотворное состояние для всяких клевых мыслей и идей, сейчас я встречаю его и понимаю что у меня есть день что бы хотя бы некоторые из них осуществить.
Утренний секс не менее крут нежели ночной, особенно с любимым человеком. Утренние тренировки — к сожалению то, чего мне сейчас иногда не хватает. читаю из гораздо более плодотворными нежели вечерние и после них нет состояние убитого овоща который не может уснуть до трех ночи а потом проснуться с пятым будильником.
Опять же, сейчас я могу позволить ходить на работу пешком, вечером уже лень, утром — самое то.
Это что касаемо жизни, повседневной.
Что касаемо обучению и программированию — вот реально плевать когда учиться и программировать, главное что бы голова работала и никто не отвлекал. Все. Я могу хоть в час, хоть в три ночи сидеть над двумя строчками кода и ловить мысли если моя лежит на диване и отвлекает меня какими-нибудь глупыми вещами.
То есть жить полдня как не выспавшийся овощ — это лучше чем проснутся с утра бодреньким и начать жить с первых минут после того как пятая точка поднята с дивана?
Я все никак не дождусь пока рассвет опять будет раньше девяти (просыпаться когда за окном еще ночь — это против моего организма), что бы снова ходить пешком на работу
А, простите, куда следует пялиться сидя, допустим в вагоне метро? В телефон? В книгу? В пузо или затылок стоящего рядом?
Да, когда ты раз в неделю вылезаешь на природу то сидеть и там пялиться в электронный девайс — ну совершенно не правильная жизненная позиция, но про метро\наземный транспорт (если едишь этим маршрутом не в первый раз), то можно и книжку достать, и птиц покидать и прототип чего-нибудь на коленке собрать.
Согласен что не застрахован, однажды возвращаясь уже за полночь домой в достаточно подавленном состоянии (а жил я тогда в пяти минутах ходьбы от ст. Петровско-Разумовская) был кинут тремя выходцами близлежащего зарубежья — в итоге ноут с йотой, телефоном и усилком для наушников ушли в неизвестном направлении, почему у меня не взяли пакет где еще всякого добра было навалом — я даже не знаю.
Но теперь на работе допоздна не задерживаюсь, и в любом из состояний активно верчу головой в разные стороны выбирая более подходящий маршрут.
блекджекомсокетами идамами легкого поведениябинарными данными, прикрутить систему администрирования. Ну не умеет один прекрасный сервер написанный, допустим на C++, общаться через http. А с ним надо общаться. И быстро.Не пробовали поучаствовать в битве экстрасенсов?
Но в целом через какое-то время все свелось к кодогенерации: на проперти something в доки добавляем @Seriazable something, ну или просто @Serializable, если не нужно название менять в сериализованном виде, или на методы (потому что иногда состояние объекта необходимо вычислять, как например количество предков) @Serialize length / @Deserialize length
И после по этим классам проходились тулзой которая генерила мапперы умеющие сериализовать и десериализовать, в которой например в методе serialize было что-то вроде $this->out->write(«something», $instance->getSomething());
А что касается умником и общения с ними — может следует научиться общаться с людьми и тогда не придется ждать по часу что бы кому-нибудь ответить?
Второй абзац ты наверное даже и не читал, там кратко описано на фоне чего это 50к получаются.
Ах да, кстати, с людьми, которые пишут сервера на плюсах, долгое время сидел в одной комнате. Так что отлично представляю что и как там у них, и на сколько (нинасколько вообще после трех минут работы сервера) ява медленнее чем те же си.
Кушает много цп? Если на графике можно было увидеть более 3-х процентов cpu-тайма это была пичалька. Много памяти? 4 гигабайта иногда кушало да. Нагибает бд? Какое из 8 приложений которое стучится на тот же сервер в соседний инстанс постгреса?
Yо в планах посмотреть на него поближе нежели «кусочек экземпла», есть люди которые уверяют что он гораздо круче мокиты.
Думаю этот момент наступит когда упрусь в возможности мокиты
Хотя вообще у нас весь код роутинга и енкодинга генерился при проходе apt-ом и быстрее врядли можно было бы его написать (прямые вызовы нужных методов вроде out.writeInt(message.getSomething())
Я просто нашел для себя замечательный график и начал спать по 6:30-7 часов в день.
2 часа ночи, а то и полтретьего — это не так рано, 7 часов сна для меня вполне хватает что бы в воскресенье не отлеживаться а всю неделю не клевать первую половину дня носом
Меня например, очень прет, когда я просыпаюсь, даже в морозную погоду, в субботу, в 8:45 выползаю с одной из своих кабелин на занятия, возвращаюсь обратно я примерно в три. Голодный, уставший, довольный и… что самое важное полон энергии, от осознания того, что я сегодня уже сделал кучу вещей и то, что на часах всего лишь три часа — я могу сделать еще большую кучу вещей (хотя мог проснуться бы в 12-13 часов, почитать почту понежиться под одеялком...)
Мне нравится встречать рассвет. Раньше я встречал его и ложился спать — и очень жалею, очень плодотворное состояние для всяких клевых мыслей и идей, сейчас я встречаю его и понимаю что у меня есть день что бы хотя бы некоторые из них осуществить.
Утренний секс не менее крут нежели ночной, особенно с любимым человеком. Утренние тренировки — к сожалению то, чего мне сейчас иногда не хватает. читаю из гораздо более плодотворными нежели вечерние и после них нет состояние убитого овоща который не может уснуть до трех ночи а потом проснуться с пятым будильником.
Опять же, сейчас я могу позволить ходить на работу пешком, вечером уже лень, утром — самое то.
Это что касаемо жизни, повседневной.
Что касаемо обучению и программированию — вот реально плевать когда учиться и программировать, главное что бы голова работала и никто не отвлекал. Все. Я могу хоть в час, хоть в три ночи сидеть над двумя строчками кода и ловить мысли если моя лежит на диване и отвлекает меня какими-нибудь глупыми вещами.
Я все никак не дождусь пока рассвет опять будет раньше девяти (просыпаться когда за окном еще ночь — это против моего организма), что бы снова ходить пешком на работу
Да, когда ты раз в неделю вылезаешь на природу то сидеть и там пялиться в электронный девайс — ну совершенно не правильная жизненная позиция, но про метро\наземный транспорт (если едишь этим маршрутом не в первый раз), то можно и книжку достать, и птиц покидать и прототип чего-нибудь на коленке собрать.
Но теперь на работе допоздна не задерживаюсь, и в любом из состояний активно верчу головой в разные стороны выбирая более подходящий маршрут.