Остаться работать в сбере джава 8 легаси моноблок за ~320к/мес + премия ~650к/год или новая компания джава 17, сотни рпс, свистелки-перделки, кликхаузы, сыкулее и ноу сыкулее, но за 250к/мес без премии
я просто мидоль и на синьора меня не зовут, да я и не знаю особо ничего, 4 год уже сижу в легостане этом. Деньги или крутой опыт? Конвертнется ли крутой опыт в еще большие деньги в РФ?А? Пишем Ваши мнения, это важно, потому что январь это месяц нереста сберунов, после годовой премии в декабре.
>>2995224 >Остаться работать в Сбербанке параллельно ища работу где бы платили бы столько же Если так подумать, то это очень разумно. Но я боюсь я потом никуда не устроюсь, потому что у меня опыт только с монолитом и задачи которые я решаю однотипные и скорее для кодерка, чем программиста. Что на это скажешь? Или типа циферки в стаже везде меня пристроят, сейчас 4 года опыта, станет 5, 6 я то понимаю, что это только циферки и все равно дадудт 300к+ и в коммерции? Пездец сложно, почему просто нельзя во всех компаниях использовать нормальный стек
>>2995307 Опасно, в один момент все перейдут на го и вместо переписывания монолитов сразу начнуть писать микросервисы на гохе, для этого дела естественно позовут тех кто держал нос по ветру, кто не успел еще все на котлин переписать и уже переписывает на го, а мне и тебе скажут сиди пока на поддержке, а потом укажут на выход >>2995315 На последнем курсе вуза
>>2995380 Да пофиг если честно. Ну, уволят и уволят. Деньги счастья не принесли, чего за них сильно держаться. 100 к, 300 к, 500 к - однохуйственно. Лишь стены квартир меняются на посвежее, да всякую фигню не заморачиваясь покупаешь. При этом просто взять и уйти денег не хватает и никогда не хватит. Ловушка Джокера. Хочется просто, чтобы мозги поменьше трахали и работы поменьше подкидывали.
>>2993747 → >>2993851 → Ну так, спиай, хуйпиай мастер что нибудь ответит? Как нам обустроить Россию JDBC?
А то сейчас, когда подключаешь к последней JDK старый драйвер и пытаешься использовать новое API получаешь NoSuchMethodError. Всё из-за дурацких интерфейсов! А вот был бы полноценный API&SPI вот бы житуха была!
>>2995428 Ответит, но не сегодня и не завтра, надо таски закрыть. Твой вопрос помню, мне самому выгодно понять не хуйню ли я делаю, так что будет свободное время разобраться отвечу
>>2995446 17 джава приближает меня к грин потокам в 21, и спринг буту 3. А еще там более понятный стектрейс, наллпоинтер пишется не в какой строке, а в какой переменной. Да и вообще, в 11 есть вары и куча всего
>>2995457 Спринг вообще не нужен, ни бут, ни ебут. Это дичайший bloat. Когда я вижу, во что превратилась современная джава, то вижу только 2 пути - или продолжать сидеть на 8-й, или перекатиться в Go.
>>2995443 Ох уж эти мамкины достигаторы, которые говорят, что основывают все свои действия на выгоде, но при более близком рассмотрении классические пидорюндели с принципами. Правда извращёнными уж слишком.
>>2995457 > к грин потокам в 21 У меня есть подозрение, что лум как реализация провалился. Переключение контекста всё ещё дорогое, кал беки быстрее. Более правильным подходом была бы глубокая автогенерация методов с калбеками по любому байткоду, бьющихся по тем местам, где сейчас стоят лумовские блокеры + дать возможность самому ставить синтаксические блокеры и читать их для кастомной реализации разбивалки методов. Не так, как сделано в петухлине, с оверхедом в 10 раз, а по джавовски. И не как в шарпоговне, а чтобы все синхронные библиотеки разом стали асинхронными.
>>2995493 >>2995645 То что вы дрочите на го сразу показывает что вы ни строчки на нем не написали. Это недоязык на котором невозможно приличную систему писать
>>2995909 >>Это недоязык на котором невозможно приличную систему писать А я тебе что написал? Для хуйни энтерпрайз уровня - жаба/шарп на фреймворках. Для примитивных вещей - го и питухон. Если б на го хотели писать что то сложное - то там появился бы свой спринг.
ку, аноны подскажите имеются ли какие-то бест практисы для следующего кейса: имеется микросервис, который принимает жсонину, и на основании данных в этой жсонине отправляет запрос на другой микросервис, по сути гейтвей такой. каким лучше образом определять, что за жсон прилетел, через некий json path/spring expression language? очевидно, хочется, чтобы не уходило дохуя времени на определение типа жсона, всякие regexpы наверное будут сжирать много проца, да и если огромный пейлоад, то будет только хуже
>>2995952 ну типа того, да. допустим, жсон на регистрацию пользователя нужно отправить на юзер-сервис, а жсон на получение хуй его знает его кредитной истории на какой-нибудь пейментс-сервис. очевидно, что эти два жсона абсолютно разные
>>2995958 Вообще задача интересная,сейчас глянул,у нас используется зуул для таких целей. Абсолютно не знаю как он работает,но в гейтвее даже контроллера нет,там пишешь класс фильтров и прописываешь роуты в ямлике
>>2995961 ну он по сути облегчает саму настройку роутов, куда конкретно пробрасывать, сам же механизм определения как и куда в любом случае придется писать самому, о чем, собственно, и был вопрос - юзать какие-то json path или есть что-то более производительнее/удобнее
>>2995930 >Если б на го хотели писать что то сложное - то там появился бы свой спринг. Это не говей. На Го просто пишут много кода, а если проект сложный то очень много.
>>2995951 >имеется микросервис, который принимает жсонину, и на основании данных в этой жсонине отправляет запрос на другой микросервис А схуяли все шлют запросы на один и тот же урл? По нормальному надо разные урлы для разных запросов.
>>2996091 Потому что HTTP это транспортный протокол, и роутинг должен делать веб-сервер. Так как веб-сервер не умеет в динамический роутинг, то все такие запросы должны должны приходить на один и тот же url. А ещё надо всегда 200 возвращать.
>>2996111 При чём здесь транспортный протокол? Я думаю, там дело в том, что клиенты просто не знают (не могут или не должны знать), куда это должно пойти. Именно для этого и нужен тот сервис, который знает, и, после анализа контента, маршрутизирует это туда или сюда.
>>2996106 >потому что такие требования Чел, не может быть бизнес требований всё слать на один и тот же урл. Это какой то не очень умный техлид придумал. И это говно надо менять.
>>2996442 роутинг это транспорт, значит возвращаешь http коды. Если мессага дошла куда надо и была успешно обработана (даже если сработала бизнес-валидация) - возвращаешь 200
>>2996001 >>Это не говей. На Го просто пишут много кода Они поэтому туда пыхеров берут, чтоб те не были испорчены фремворками, архитектурой и прочими бест практисами?
В прошлом треде мне никто не ответил, поэтому переспрошу. Как правильно обновлять сущности? Сейчас обновляю путом со всеми полями. Ну или дтошкой с почти всеми полями. Ну то есть фронт читает гетом все поля, что ему доступны, меняет те, что поменял пользователь, а какие не поменял - передает без изменения. И я обычно все без каких-то проверок, кроме валидаций апдейчу в бд. Ну или иногда там что-то есть в дто, но обновлять это в некоторых случаях нельзя. Ну и тогда или игнорирую поле или эксепшон выкидываю. Но мне кажется это тупо, особенно если в дто 30-50 полей, а измениться может только одно или два. Гонять туда-сюда лишние сотни килобайт не ясно зачем. Особенно если некоторые поля могут быть побольше. Не огромные, но пару тысяч знаков. Но патчем это надо по одному полю передавать? 50 эндпоинтов это тупо. На первой ссылке в гугле нашел вот такую статью на баелдунге: https://www.baeldung.com/spring-rest-json-patch У этого подхода есть даже стандарт: https://datatracker.ietf.org/doc/html/rfc6901 И свой Content-Type: application/json-patch+json Выглядит неплохо: - Получаем список операций. Меня интересует replace. Ну и remove, чтобы занулять поля, потому что вроде бы в replace null запрещены. Список операций лежит в JsonPatch - Достаем сущность по ид и иерез apply делаем мердж нужных полей с нужными операциями. - Полностью сохраняем сущность в бд. Но вот вопросы: 1. Реально ли таким подходом пользуются? На гитхабе у библиотеки https://github.com/java-json-tools/json-patch всего 700 звездочек и <groupId>com.github.java-json-tools</groupId> какой-то васянский. 2. Норм все будет с валидациями? У меня на 50 полей 40 валидаций раскидано, чисто с содержимым связаны, не просто ненулевое. Ну вот допустим они будут применяться во время apply. И так же все схватится адвайсами и выкинется правильная ошибка. Но валидации они не на сущности, а на дтошки, потому что в разных эндпоинтах валидации могут быть разные. Это получается нужно мапииь сущность в дтошку и уже ее мерджить и потом обратьно мапить? 3. В бд все сохраняется все равно скопом. И нужно делать предзапрос с селектом по ид. Чтобы сделать upate запрос с произвольным количеством полей через jdbc эта библиотека не подойдет, придется самому что-то похожее на список ReplaceOperation городить. Самому валидировать есть ли все пришедшие поля, самому доставать валидации на поля, а потом уже строить запрос.
>>2997059 Проблемы спрингодебилов. Новые поля в нормальной архитектуре устанавливаются дефолтным значением/инициализатором, удалённые отбрасываются/передаются в сокращатель.
>>2997082 Причем тут новые поля? Я о том, как лучше и правильнее частично обновлять значения полей. Там где я работал/стажировался/читал чьи то проекты всегда обновляли все полностью. Или писали эндпоинт для одного поля. Да, пример на баелдунге на спринге, но на жаваее или на микронафте будет все тоже самое.
на собесе прозвучал следующий вопрос: сколько потоков стоит использовать для системы с четырьмя ядрами? что вы бы ответили, учитывая, что нужен конкретный ответ?
>>2997287 По задачам. Если там числодробилка то 4, если дохуя конкурентного I/O то десятки-сотни грин тредов, если скрипутха какая-нибудь то один поток, если программа состоит из нескольких подсистем то можно сделать по одному потоку на подсистему, ну или на какую-нибудь подсистему несколько потоков выделить а на остальные по одному. В чём не прав?
>>2997287 >колько потоков стоит использовать для системы с четырьмя ядрами? потоки создаются под конкретные задачи, а ты должен был рассказать что будет при создании малого колва потоков и большого, поэтому мы тебя и не взяли джун
>>2997287 Если это все условия и вопросов больше задавать нельзя, то ответ: один. Если можно задавать вопросы, то конечно же: для какой конкретной задачи?
>>2997287 >>на собесе Если это простые ядра с гипертредингом - то 2n-1 Если это всякая ебала с разными ядрами типа экономичных - то хз как оно там распределяться будет на практике, наверное 2n-1 + k
виляние жопой - "по задачам" - принимается как незнание
>>2997484 >виляние жопой - "по задачам" - принимается как незнание А что не так? Если потоки загружены на 100% задачами от контролируемого кода то равное количеству логических процессоров. Если есть взаимодействие с чужим кодом, если часто блокируется на I/O, и т.д. то цифры (и подход) будут различаться. А ты вообще программист, уважаемый?
>>2997287 Дебильный вопрос. Это ты в епам ходил, что ли? На десктопе нужен один поток для гуи и по потоку на каждую тяжелую задачу уровня проверить орфографию или скомпилировать и показать ошибки. Для серверов нужны асинки, а количество потоков в пуле задается параметром в настройках.
>>2997608 Это стандартный вопрос, на который ожидается стандартный ответ. В лучшем случае уточнят что это числодробилка, в худшем - поставят крестик и пойдут к следующему вопросу. >>А ты вообще программист, уважаемый? Тебя это ебать не должно.
>>2997829 Чтобы поумнее чем 2n формула выглядела. Нашёл кого спросить за базар, это же школота голимая. Он даже не знает что в джаве ничего умножать не надо, потому что рантайм сразу логические процессоры возвращает.
>>2997287 Четыре. Предполагается равномерная непрерывная нагрузка на потоки. Больше - толко если задача этого явно требует, т.к. увеличения скорости это не даст. Смысл такого вопроса - понимает ли человек, как это вообще работает. И что если сделать 100 параллельных потоков, это не будет работать в 100 раз быстрее.
>>2998302 Гипертрндинг не про физические потоки вычислений. У тебя остаётся один армфметически-логическмй блок в ядре, но дублируется всё остальное, что нужно для работы с потоком. В итоге переключение контекста потоков занимает минимальное время, но инструкции продолжаются выполнятся в одном калькуляторе.
>>2998302 И дополню, твой ответ и ответы остальных про 2n неверные, потому что у вас всё также остаётся 4 физических ядра даже с гипертредингом, то есть выигрыша в производительности вы не получите при условии отсутствия IO операций. Если в алгоритме есть IO операции, то тут вопрос уже как часто они вызываются.
>>2998387 >>2998407 Школьник опять поясняет за вещи, в которых не имеет ни малейшего понимания. Переключение контекста блядь минимальное время занимает, охуеть просто.
>>2998733 1. Никто не мешает дальше слои инкапсуляции наращивать. Почитай про слои в протоколе mtproto у телеграма. Сколько их там. 2. Эта RFC не про написание поддерживаемых программ. Поэтому буквально ограничиваться ей невозможно. Иначе у тебя клиент будет слишком много знать как устроен сервер приложения.
Transport component: defines the method for the client and the server to transmit messages over some other existing network protocol (such as HTTP, HTTPS, WS (plain WebSockets), WSS (WebSockets over HTTPS), TCP, UDP).
>>2998772 Вспоминаем схему CPU. Вот у тебя ALU стоит (в центре, красная штуковина, которая занимается выполнением инструкций), вот файл-регистр, вот кэши, вот блок управления и где-то там главная память.
Каким образом дублирование контекст-релейтед блоков, но не дублирование ALU даёт большую производительность для параллельного алгоритма без IO операций?
Никак, потому что блять калькулятор как был один так и остался
>>2999809 По умолчанию в пустом документе ворда нес стиля для ссылок. Он появляется, как только в документе появляется ссылка. Стиль называется Hyperlink. Если вставить ссылку и тут же ее выпилить - стиль останется
>>2995254 Анон, у меня аналогичный опыт, я решил перейти на современный стек и более сложные задачи(надеюсь осилю). В банке уже несколько лет делаю однотипные бизнес задачи, деградирую. Правда на новой работе зп повыше хоть и не сильно, при уходе предлагали контоффер по которому я получал бы больше. Решил, что сам я учиться не буду (учусь только для собесов), а на новой работе придется. Если б мне платили 650к в месяц ,я б наверное не дёргался, с премиями получаю меньше 400
>>2999906 Прочитал в доках, вроде никак это не обойти. Ну ок, сделал синий текст с подчеркиванием, пойдет. Еще вопрос: когда я открываю сгенерированный документ, он начинает перестраиваться на ходу. Там большая таблица, которая начинает сжиматься, как я понял из-за того что что ворд расставляет переносы строк в ячейках. С этим можно что-то сделать?
Как же меня заебали некомпетентные хуесосы, которые лезут своим свиным рылом туда, где ничего не понимают, и еще имеют наглость иметь "свое" мнение. Животные блядь.
>>3001651 Котлин - не нужен. Груви - просто охуенен для скриптования джавы, для тестов, для утилит. Можно встроить груви веб-консоль прямо в свой сервер, и пилить скрипты, дёргая бины, выполняя запросы к бд и т.п. прямо на живом сервере. Писать большие программы на нём вместо джавы не нужно.
>>3001651 Ну, если синтаксис жабы тебе нравится больше чем синтаксис котлина, то кажется ты переболел ковидом. В остальном, та же байда только в профиль.
>>3001651 Потому то программистишки, когда разговор заходит о стоимости поддержки, техническом долге и легаси, как правило за деревьями леса не видят.
Вместо того чтобы честно уже признать, что единственная обьективная причина существования легаси - это прокладка между сиденьем и монитором, они сваливают вину на язык, технологии - что угодно. Ложные суждения ведут к невменяемым потугам - программистишки бросаются переписывать "все с нуля(тм)", с закономерным итогом. Обнуляют язык, обнуляют коммьюнити и экосистему, и все равно получают среду, где бывшие джависты пишут такое же легаси, как и раньше.
Работали ли вы на багованном говно копролите, где максимум что есть это спринг бут? Бывало ли у вас чувство, переписать все с нуля и никто в принципе не против, но при этом вам платят мизерную зп? Как вы побороли это чувство, как задушили в себе желание сделать как надо и просто съебали на нормальный стек?
>>3002107 Какая разница что делать? Если тебе интересно этим заниматься, то идёшь к тим лиду и говоришь, что теперь вместо фич, хочешь заниматься рефакторингос, но тебе для этого нужно, например, 1-2 месяца выделить и не трогать другими тасками.
Если тим лид согласен, будешь делать то что нравится. Если он против, будешь искать работу в новом месте.
>>3002116 Так они только двумя руками за, лид, продукт, потому что постоянно все падает, работы больше чем на 2 месяца. Но есть один существенный ньюанс - зп маленькая и бюджета на повышение нет.
>>3002181 >A normal class type can be converted to a null-restricted type, and vice versa, much like the type Integer can be converted to and from the type int. When converting to a null-restricted type, a null check occurs at run time.
Хотя да, я наебался. >A null-restricted type is a reference type expressed with the name of a value class followed by the ! symbol. It asserts that the value of a given variable or expression will not be null.
>>3002162 Сервера? На котлине? Это язык для gui. От оттуда появился. И поэтому он так популярен на андроиде. Зачем писать на нём серверы? Их надо писать на Go, лол.
>>3002102 Ты так говоришь, как будто подавляющее большинство релизов, которые ты пофейлил в своей жизни по срокам, пофейлились из-за того, что какой то чел тебе обратную совместимость в языке сломал.
То что делают разработчики ЯП с обратной совместимостью языков, на фоне пиздеца, творимого прикладными даунами под ярмом кабанов в конечных продуктах - детская хуйня.
>>2994733 (OP) Как объяснить уважаемому Кабан Кабанычу, что команде нужна подписка на Intellij IDEA? Кабан Кабаныч говорит санкции и что платежи не проходят, а у всей команды идея краснит код...
>>3002207 Да что ты говоришь. А может это вы просто идеей пользоваться не умеете нихуя? Равно как и обосновывать перед кабанычем нужду в дополнительных расходах?
>>3002187 Её можно делать в компайл тайм, как делает тот же Котлин. Т.е. в твоем коде у тебя будет null safety, а как начинаешь вызывать библиотеки - все гарантий нет. прям как дженерики
>>3002208 Мальчик, бесплатная идея - это только джава, груви и котлин. Если тебе нужен фронтенд или энтерпрайзные фреймворки - ты соснёшь. Но, как уже заметили выше - ты школьник, и это тебе пока ещё рано.
>>3002200 Нет, не говорю так, хоть я и немало говна из-за отсутствующей обратной совместимости поел. Ты сказал, что проблема только в конечных программистах, я объяснил тебе, что это не так.
>>3002251 Например - зайди на сайт jb, и посмотри отличия ultimate от community. Там довольно много всего. Включая возможность через плагины иметь в одной идее весь зоопарк - пичарм, голенд, вебшторм и т.д. И деньги они берут не просто так.
>>3002310 А ты каждый 29 день видишь списание в 100 долларов за говно? Почты можно на разных сайтах создавать, если ты не знал, на некоторых (мыло.сру) не нужен телефон.
>>3002310 >Да и почты вроде по номеру создаются Я не знаю ни одной почты где нельзя было бы использовать один и тот же номер для всех почтовых ящиков. Можно прям так и писать имена почт и аккаунтов jetbrains.free.ebka.january2024@
>>3002343 Я не ворую, просто использую пробную версию. Да и вообще они ушли из рф и напрямую вроде купить нельзя, а значит воровством это быть не может.
>>3002383 Я не помню уже, это год назад было. Он переписал один из серверов на него и после этого сказал, что конечно интересно, здорово, но пожалуй мы остаёмся на жабе/котлине.
>>3002394 Эм, сейчас бы джависту давать переписывать сервисы на гоулэнге, чел... Идиоматичный код на год можно научиться писать минимум лет за 5-7. Вчерашний джавист, который всю жизнь круды лепил на спрэнг фримверке и настраивал муппинги в хубирнейте, чтобы запрос правильно собрался, в принципе не может называться инженером.
>>2994733 (OP) А посоветуйте хороших книг и ресурсов, чтобы привести знания к структурированному виду и посмотреть на так сказать лучшие практики, плез. Как не приду на проэкт, то вижу одну и ту же картину - деление на контроллер, сервис, репозиторий. Тонкий контроллер, раздутый донельзя сервисный слой где насрано по 2.5-3к строк и репозиторий в виде интерфейсов через спрэнг дэйту. По итогу это нихуя не покрыто тестами, а связи между сервисными слоями образуют огромный комок грязи.. Или это нормальный подход в джэве?
>>3002407 Я так себе и представляю. Приходит тех лид к менеджменту и говорит: "Мы решили дальше писать на го. Но так как на го надо учиться писать 5-7 лет, мы на это время приостанавливаем выпуск фич, а будем писать экспериментальные штуки на выброс. Приходите через 5-7 лет."
>>3002464 Все проще. Нанимаются уже готовые спецы, а скуфидоны-джависты идут на мороз. Полно молодых ребят, которые заменяют целые отделы таких скуфов. Современная разработка это тебе не круды на спринге лепить, старичок, кхе-кхе
>>3002484 Меня не интересуют хобби-подделки вроде vertx. Речь шла об индустриальном стандарте для бэкенда в 2024 - голанге, я и пошел его по твоей ссылке сравнивать с используемыми в реальности фреймворками в мире JVM.
>>3002449 есть ещё вариант ActiveRecord - где вся логика по сущности складывается в эту сущность, в том числе доступ к бд. А разделение на слои это база. В твоём случае в тестах надо поднимать базу и дёргать методы сервисов или контроллеров по максимуму
>>3002452 Это ты как-то неудачно набросил. Ну что такое хуяндекс, в самом деле? Это троечники.
Я буквально только вчера разрулил одну проблему, которая была вызвана тем, что один из самых известных их сервисов сделан с грубейшим нарушением общепринятых соглашений. Причём, сделать по стандарту - ничего не стоило бы, вообще ничего. Просто они тупые мудаки. Нет, подробностей не будет.
Что касается скалы - то на ней, вообще-то, Акка написана. Это и надо было привести в пример. Если ты, конечно, знаешь, что это такое. И это совершенно не отменяет того, что это академический язык И что те, кто лет 10 назад ввязался в разработку реальных систем на нём, эпично соснули в итоге. Вот как хуяндекс.
>>3002452 лол, алгоритмических секций уже одна, как же ебут яндексоидов, скоро как все конторы будут осуществлять найм за 1 собес в 1-1,5 часа с одной задачкой уровня изи
>>3002452 >Затем решим задачку на кодинг. Для подготовки подойдёт LeetCode. >Никаких хитростей и вращения деревьев не будет, но мы ожидаем, что кандидат знает, что такое асимптотическая сложность, умеет ее оценить, и может написать примерно рабочий код без IDE. Отказываюсь. Код писать буду только в идее, в ней же и работаю. Сложность только по циклу в биг О, никаких тета и подсчет по действиям +-= и */, а также никакой теории про сложность алгоритмов, p np проблему и прочую фигню ненужную в работе на джаве, МЯУ?
>>3002555 Эти дурачки продолжают нанимать олимпиадников. Совершенно не понимая, что это немножко другое программирование. И что олимпиадник в принципе не понимает, как делать реальную энтерпрайзную систему.
Собираюсь уволиться со своей экономической хуйни, за 3 месяца подготовиться к собесам по жабе кор когда-то учил и устроиться на 200к. Там делать все с гпт, пока не догоню обучение
При запуске отдельно GUIFrame всё работает корректно, но если я запускаю весь проект, или создаю JAR файл - запускается просто серый прямоугольник 640:480. Как я понимаю, это из-за отсутствия указания что надо подтянуть данные из GUIFrame. Лучший результат что у меня вышел - GUIFrame и MainFrame запускаются при запуске проекта, но в разных окнах. Как заставить это говно работать?
Алсо дайте пожалуйста сурс по НетБину, чисто чтобы узнать самую базу, ибо в общем-то он мне нахуй не нужен, но придётся сдавать экзамен по этой залупе в скором времени. Английский понимаю, но в идеале на русском.
>>3003074 Тогда увольняйся с финансовой подушкой. У тебя должны быть деньги, чтобы прожить всё время обучения и время поиска работы. Учитывая твои требования (0 лет стажа и 200 к зарплата), то времени ты можешь потратить очень много. >>3003110 Офигеть, кто-то ещё требует знать NetBeans? Да я про него только в книжках читал мол был такой фреймворк, да сгнил уже.
>>3003110 Чувак, NetBeans тут вообще не при делах. Хотя, было бы лучше тебе использовать IDEA community. Хотя, родной GUI дизайнер в нетбинсе, наверное, получше. Но, ещё лучше использовать JFormDesigner, в виде плагина или как отдельное приложение. Он, правда, платный, но его можно крякнуть самому. Или найти кряк в интернетах.
По поводу твоего кода - такое ощущение, что ты вообще не понимаешь, что делаешь. Ну с какого хуя твой main должен что-то показать, по-твоему? Ты радуйся, что он тебя ещё нахуй не посылает.
В запускающем классе тебе надо создавать экземпляр GUIFrame. А твой MainFrame тебе просто не нужен вообще, удали его.
Другой подход - форму в дизайнере надо делать не на JFrame, а на JPanel. А затем вставлять её в contentPane твоего MainFrame. Так будет более правильно. Но, в любом случае, два JFrame тебе не нужно.
>>3003162 1. Будет неламповое спрингоговно если не будешь знать куда именно тебе надо перекатываться. 2. Выкатишься и не сможешь вкатиться из-за текущего состояния рынка, став безработным.
>>3003483 Не в тамбове, лол. И не галера. И не 30к, хотя и не 300. Но, суть в том, что везде людей не хватает. Потому, что всех хотят очень много денег, а работать не хотят совсем. Соискатели - просто охуевшее быдло, которое ведёт себя так, как будто делает тебе одолжение. При этом видно, что человкек не умеет почти ничего. А денег хочет как в яндексе. Волки позорные, лол.
>>3003490 Дай угадаю: вы требуете тестовое задание, на собесе ебете мозги литкодом и душните про сборку мусора и конкаренси, будто ваша сраная фирмочка пишет свою джава машину, а не перекладывает джейсоны.
>>3002864 Эта хуйня чисто для серверов, для десктопа не нужна. Суть в том, что в типичной микропенисной архитектуре код 95% тупо висит на сокете и ждет ответа от другого сервера. В то же время поток нехило так отжирает память. Если создавать по потоку на каждый реквест, можно легко заддосить сервер, у него тупо закончится память и пиздос. Поэтому придумали асинки, там таски не занимают по потоку каждая, а лежат кучкой и ждут, пока их обработают.
>>3003203 >ты вообще не понимаешь, что делаешь Так и есть. Мне просто нужно сдать экзамен по этому говну и забыть как страшный сон.
Вообще я уже и сам разобрался, сделал MainClass как на пике. А изначально у меня MainFrame и GUIFrame раздельно, ибо делал по видосу индуса, ибо это было первое что я нашел на понятном мне произношении ангельского и с использованием JFrame Form, что является обязательным условием для сдачи экзамена.
Пик2 - то что мне нужно сделать. Просто пару пара полей ввода для имени и фамилии, выпадающий список выбора должности, а слева поле ввода количества знаков при генерации пароля, и чекбоксы касательно того, какие символы использовать. Нажимаешь генерировать пароль - высвечивается отдельное окно с паролем, нажимаешь "Подтвердить" - получаешь окно со всеми введёнными данными. Из этого мне непонятно следующее: 1. Как сделать белую обводку с закруглёнными углами для двух блоков? 2. Как сделать генератор пароля? Могу только на питухоне через библиотеку рандома. Важно учесть, что это должно быть реализовано на Java with Ant, ибо интернета на экзамене не будет. 3. Как сделать всплывающее окно при нажатии кнопки?
Пишите репорты в /d/ на шарподаунов. Пока же поссу на них уже проверенными средствами:
1. Семантика. 1.1. Неймспейсы. Полный пиздец. Рассинхрон с пакетами, лишние отступы, проблемы с уникальностью названий - полный пиздец. 1.2. Перенос { на новую строку. Это уродливо. Читать код с кучей не пустых, а заполненных одним ебучим символом строк - неудобно. 1.3. Наследование интерфейса через :. Бесполезное сокращение. 1.4. IZalupa как название интерфейса по дефолту. Убивает семантику полиморфизма. Когда ты обращаешься в джаве к интерфейсу, ты чувствуешь, что обращаешься к живому объекту, а не к гондону между объектом и тобой. 1.5. Названия методов с большой буквы. В джаве после прочтения первого символа сразу понятно, что это не операция делегирования, а уже непосредственно вызов.
2. Функционал. 2.1. Наличие бойлерплейта (в джаве есть ломбок, который наглухо разъёбывает уродские попытки в избавление от бойлерплейта в петушарпе с помощью get; set;.). 2.2. Отсутствие record'ов (позорные структуры ни в какое сравнение с рекордами не идут). 2.3. Отсутствие виртуальных тредов. 2.4. Прибитость гвоздями к винде. 2.5. Отсталые енумы. 2.6. Отстутствие модулей. 2.7. Отсутствие системы сборки. Нугет/мсбилд - это посмешище, которое даже с антом сравнивать без смеха нельзя.
3. Экосистема. У петушарпа позорная экосистема.
4. Свобода и распределённость. На петушарпе половину всего кода пишут майки, водя за ручку петушарповых детишек и говоря им, что и как делать. Следствием из этого является пункт 3 и ограниченность петушарпа ровно на том, что нахуевертили майки. Пока на джаве ты волен, как барин, воротить нос и выбирать лучшую библиотеку под твои задачи, на петушарпе ты жрёшь то, что тебе с лопаты майки скормили. Пока на джаве ты выбираешь между жуком и queryDSL, на петушарпе ты жрёшь огромную кучу говна, слепленную из несовместимых вещей, что в здоровом Java мире даже никак не пересекаются, под названием LINQ.
5. Поддержка кода. Пока код с Java 1 работает на Java 19 и будет работать вплоть до Java 119, на петушарпе каждую версию ломается обратная совместимость, нельзя просто взять и заюзать библиотеку, в которую не было завезено апдейтов за последние несколько лет.
>>3003700 1. Это реально сложно. Надо делать свой субкласс Border, со своим пайнтингом. Ты не сможешь, судя по тому, что ты тут пишешь. Хотя, можешь попробовать загуглить. 2. Это достаточно просто. Если не сможешь - иди крутить хвосты bydlu. Потому, что такие программисты не нужны. 3. Это зависит от того, какое окно. В общем случае - гугли JDialog.
>>3003505 Не угадал. Постоянно попадаются вот такие вот деятели, как этот: >>3003700 Которым просто надо 300KK/ns, а "это говно" они хотят "забыть, как страшный сон". Причём, у многих ещё и хватает наглости бычить и качать права, и приходится жёстко озалупливать в прямом эфире.
>>3003505 >душните про сборку мусора и конкаренси В смысле душите? Я мимокрокодил и ты знаешь мне знание как работает gc и какой для проекта выбрать, как его затюнить очень даже пригождается. Про многопоточку я вообще молчу, я не веру в существование реального проекта без нее. Вывод: ты жулик.
У меня появилась такая мысль, что спринг необязательно хейтить. Вот что конкретно из говна он сделал, кроме уёбищного перформанса? Или этого достаточно? Вопрос направлен, кстати, в том числе сидящим тут шарподебилам, интересно и ваше жужжание послушать.
>>3003957 Странно, что ваш техникум не выбил бесплатную учебную лицензию у jetbrains. А community, видимо, из каких-то соображений использовать не хотят.
А то, что у вас NetBeans - это благо. Было бы в разы хуже, если бы была Eclipse. Вот это говно так говно. И оно вовсе не считается устаревшим, а регулярно дорабатывается и обновляется. Но, при этом, идеологически - это древний как говно мамонта IBM VisualAge for Java (на базе него сделано). Вот такой вот пердимонокль.
>>3004080 Ну, если коротко - в идее код на кончиках пальцев. А в эклипсе - код отдельно, а пальцы - отдельно.
Я же сказал - идеологически это основано на ide, которой четверть века, и которая сделана таким монструозным сумрачным гением, как IBM. Это пиздец просто. Да, они там многое доработали, но, идеологию никуда не денешь.
Идея тоже появилась 20 лет назад. И тогда она была как глоток свежего воздуха после IBM VisualAge и Borland JBuilder. И до сих пор остаётся.
>>3004116 > которой четверть века, и которая сделана таким монструозным сумрачным гением, как IBM Это максимум причина. Ты мне конечную разницу покажи. В чём эти кончики пальцев выражаются.
>>3004374 >Ты мне конечную разницу покажи. Нихуя ты дерзкий, щенок. Мне вообще похуй, в чём ты там будешь писать свой говнокод. Нравится эклипса - пиши в ней, лол.
>>2994977 >Деньги или крутой опыт? >Пишем Ваши мнения В первую очередь всё зависит от того на что ты свои сотыги тратишь. Если ты хорошо какашечку откладываешь или ипотеку почти закрыл, то добивай то красивой суммы/закрывай ипотеку и тогда спокойно перекатывайся на нужный тебе стек и на меньшие деньги. Если же ты дебил, который спускает такие денжища в нулину в день зарплаты, то перекатывайся прямо сейчас, так как всё равно на говно тратишь. Сам обдумываю вариант вкатиться в банк на гавно за дорого, лет 10 отработать складывая всё под матрас (как вариант прыгать из банка в банк для поднятия зэпки) и потом в вечный гэп дауншифтить.
>>3004587 Где ты собрался в банке так работать, лол? Может где-нибудь в провинциальном бандитском банке где будешь пахать за копейки. Современный финтех двигают упругие зумеры и там поганому скуфиндяю не место. Он лишь будет затягивать сроки и выбивать время чтобы "тщательно ознакомиться с техническим заданием", пока зумеры будут выкатывать сервис за сервисом, принося кабану вэлью
>>3004716 >Современный финтех двигают упругие зумеры и там поганому скуфиндяю не место. Сижу в банке с 40летними скуфами и скуфихами. Зумера видел один раз в соседней команде, но он съебал через два месяца потому что СЛОЖНА мимо скуф 30 лвл
Ящитаю неправильно привязывать точку входа именно к входу через консоль. Надо делать что-то типа extends CommandLineEntryPoint для мейн класса и абстрактный метод run(args).
Вот смотрите этот ролик https://www.youtube.com/watch?v=WGwECgPmQ-8 . Обратите внимание на цветовую схему. А потом посмотрите на цветовую схему в своей идее. Они отличаются. Как сделать такую же как на видео? Дарк слишком блеклый, даркула это просто старая схема натянутая на новое уи, всё остальное это вообще другое. Так где?
>>3004784 Я таких скуфов регулярно вижу в ленте линкедина где они плачутся что "внезапно" закончили работать на позиции сеньки, лида или хэд оф департмент, лул. Открываешь профиль, а там - ба! лысенькое говно в пинджаке и обвисшим ебалом)) Прямо сладко на душе)))
>>3005201 >зелёные потоки — это потоки выполнения, управление которыми вместо операционной системы производит виртуальная машина. Green threads эмулируют многопоточную среду, не полагаясь на возможности ОС по реализации легковесных потоков. Управление ими происходит в пользовательском пространстве, а не пространстве ядра. Так что и горутины, и виртуальные треды, и процессы эрланга это всё зелёные потоки.
>>3005154 >>3005223 Нет. Горутины это _не_ грин треды. Это то, что работает поверх грин тредов: Go’s mechanism for hosting goroutines is an implementation of what’s called an M:N scheduler, which means it maps M green threads to N OS threads. Goroutines are then scheduled onto the green threads. When we have more goroutines than green threads available, the scheduler handles the distribution of the goroutines across the available threads and ensures that when these goroutines become blocked, other goroutines can be run. We’ll discuss how all of this works in Chapter 6, but here we’ll cover how Go models concurrency. Цитата из известной книги Concurrency in Go.
>>3005284 Ну пришла тебе коллекция с n элементами, каждый из которых является входными данными для одной и той же подзадачи. Ты просто запускаешь n подзадач, каждую на своём зеленом треде, и ждёшь пока они все закончатся. С обычным тредами тебе придётся писать дополнительный код, который берёт треды из тред пула и ждёт, если нет свободных. С зелёными тредам это всё за тебя делает рантайм, причём лучше, чем если бы ты это написал.
>>3005340 А если мне нужно выполнить работу только на двух ядрах, потому что они мощные, а остальные слабые (Big little architecture)? Рантайм будет таким умным, что догадается об этом или как?
>>3005346 >В моём очень специфическом случае этот инструмент бесполезен, поэтому он не нужен вообще Так? Подавляющее количество кода исполняется на x86 и arm с равноправными ядрами. Но я даже про твой случай могу сказать, что подзадачи не поровну делятся на ядра, а по мере освобождения. В этом случае мощные ядра просто сделают гораздо больше подзадач. Специфика планирования, конечно же, от рантайма зависит.
>>3005374 Хм, а это единственное преимущество использования зелёных потоков? Я имею ввиду то что мне не нужно будет писать код по дозагрузке данных в поток когда он отработал предыдущие? Звучит как большая работа разработчиков этих потоков ради маленького эффекта.
>>3005428 Ещё есть плюс в том, что неактивный зелёный тред (в котором вызван sleep) снимается с активного треда, а вместо него загружается работающий, а реальный тред в слипе просто висит и ничего не делает. Это может значительно увеличить пропускную способность, когда много IO операций.
Ну и это хорошо работает в шарпе, где уровень абстракции ещё выше и ты просто можешь у коллекции написать .AsParallel() или сделать .Select(x => Task.Run(...)), что экономит кучу кода, в то время как джаве тебе всё равно надо ебаться с бойлерплейтом создания тредов.
>>3005527 >>экономит кучу кода >И делает то, не знаю что. Я тебе про любой ЯП такое могу сказать, даже про машинные коды x86, которые внутри в risc преобразуются. Я лично знаю, что там под тасками происходит, и там ничего особо сложного нет. >Вам, детишки, надо просто печатать научиться всеми пальцами, а не только хуем. И проблема экономии кода отпадёт сама собой. Длина кода важна для чтения, а не для набирания. Когда у тебя бизнес-логика вперемешку с бойлерплейтом, её сложнее вычленять.
Если ты хочешь продолжать дискуссию, пиши в холивар-тред, а то опять всё потрут.
>>3005480 Хочешь сказать я могу совершать блокирующие IO операции на одном реальном треде не блокируя реальный тред и на нем же вычисления на CPU для другой задачи если используется зелёные потоки? Я правильно понял?
>>3005250 >Нет. Горутины это _не_ грин треды. Это то, что работает поверх грин >тредов: Тред это наименьшая единица исполнения команд и в го это горутина. Поскольку горутины управляются рантаймом го, а не ос то это самый обычный грин тред. А то что там в низу, рантайм создаёт свои Грин треды на которые мапит горутины, это особенность конкретной реализации.
>>3005346 >А если мне нужно выполнить работу только на двух ядрах, потому что они мощные, а остальные слабые (Big little architecture)? Рантайм будет таким умным, что догадается об этом или как? В обычной джаве у тебя будет пара нативных потоков которые молотят как не в себя и планировщик ос должен понять, что надо бы этих ребят перевести на big ядра.
>>3005792 А понял, что ты имел ввиду. Я имел ввиду что если использовать для алгоритма больше тредов чем больших ядер, то тогда сработает закон Амдала и мы получим падение производительности из-за вовлечения медленных ядер в работу
>>3005653 У тебя странное написано. Видите, господа, какая путаница возникает, когда у вас треды поверх тредов?
Если ты запускаешь код в зелёных потоках, то когда у тебя планировщик увидит, что первый тред уснул, он сохранит его состояние до того, как он проснётся, а тем временем загрузит второй тред, который не спит.
>>3005809 Супер, спасибо, я понял теперь. Но чем это поведение отличается от использование обычных тредов? Я тоже могу создать 10 потоков и когда один уснет, то другой начнет выполнятся на физическом CPU, которое ранее было занято тредом, который уснул.
Хм, это видимо аналог корутин в котлине. Такая же идея, что можно создать миллион корутин, кинуть туда какие-то задачи и идти пить пиво. При этом реальных тредов будет штук 20 существовать и штук 8 работать (по количеству физических ядер) единовременно.
Окей, если зелёные треды это как корутины, тогда я понимаю в чем смысл их использовать.
>>3005998 >Опять шарподауна обоссали на его же высерах. Это уже не классика, это уже теорема. Опять ты вылез, болезный? Это всё не отменяет того, что Task.Run и штуки типа Task.WhenAll короче, чем аналогичные штуки с фьючерами в джаве. И опять же, если ты хочешь спорить, пошли в холивар тред.
>>3006013 С чего ты взял, что краткость сама по себе ценна? Шарп - мусорный язык. С кучей "оптимизаций" на каждый пук. Нормальных людей воротит от такого говна. Плюс - этот стойкий запах микрософта с изрядным душком дельфи ничем не перебить.
>>3006013 >Task.Run и штуки типа Task.WhenAll CompletableFuture.supplyAsync() и CompletableFuture.allOf() ? Ну на несколько символов короче, да, тут не поспоришь
>>3006075 Нет, в решётках Task.WhenAll(Task<T> []) возвращает Task<T[]>. То есть я могу написать Data[] result = await Task.WhenAll(smallTasks); и иметь массив их результатов, а в джаве тебе придётся собирать эти результаты руками.
>>3006088 Ну как правило, когда у тебя n тасок, это одна функция с разным инпутом. Эти WhenAll и allOf не нужны, если у тебя 3 разных функции с разными типами, можно просто сделать им всем await/get(). Они нужны, чтобы цикл не писать.
>>3004116 >таким монструозным дык это идея такая. Понапихано говна телега, и работать в ней не возможно блять.
Ебал Идейку. На 8ой яве кодирую на НетБинсе, на 17ой - Эклипс. Я ж не соевое гомочмо лизать марку. Мне для работы, а не по тому что какой-то говноютубер нализывает очелло ЖопоБрайнзу.
>>3005804 >Я имел ввиду что если использовать для алгоритма больше тредов чем больших ядер, то тогда сработает закон Амдала и мы получим падение производительности из-за вовлечения медленных ядер в работу С чего бы это? Лучше чтобы работали 2 больших и 2 маленьких ядра, чем только 2 больших. На каком нибудь Интеле с турбобустом, может быть ситуация когда лучше 2 ядра на 4 ГГц, чем 4 на 2 ГГц. Но тут надо бенчмарки гонять. Гадать смысла нет.
>>3005946 >Ты на ходу сочиняешь правила и терминологию. >Я тебе процитировал авторитетный источник, но, тебя даже это не останавливает Мудило пиздоглазое, просто загнули определение потока, там будет ± то что я написал. А то какая-то книжка хер пойми кого, у него авторитетный источник.
>>3006363 Ебать вы смешные. Это точно темя про Java? Если у вас на Java пара потоков жестоко конкурируют за процессорное время, то с вероятностью близкой к единице вы выбрали не тот язык для своих задач или решаете не те задачи. В тех областях, где требухается Java, задач, которые постоянно грузят CPU, практически нет. Это задачи вычислительной математики. Там до сих пор живёт и здравствует Fortran и деды с большим индексом Хирша. Изредка туда пробиваются плюсовики. И остальные по мелочи.
В обчных же приложениях многопоточость позволяет оптимально загрузить ядра и позволяет во многих случаях писать более простые приложения, когда часть работы за вас сделает ядро ОС. Но это явно не средство выжать из процессора максимум. Я имею в виду многопточность.
>>3006363 > бенчмарки Да, на практике так. На уровне теории же большое ядро выполняющее за 1 секунду задачу лучше чем 1 такое же большое ядро и одно маленькое выполняющее задачу за 10 секунд.
Например задач 5 штук. На одном большом ядре они будут обработаны за 5 секунд. На большом и малом за 10 секунд, потому что одна задача пойдет в малое ядро и будет обрабатываться 10 секунд.
Это закон Амдала, применимый для параллельных алгоритмов без IO операций.
>>3006373 Иксперт, спокуха! Помимо вычисления 100500 числа Фибоначчи есть другие практические задачи, которые CPU intensive. Например та же криптография, или архивация, да тупо агрегация данных в памяти. Не все задачи которые грузятся проц числодробилки.
>>3006376 >На большом и малом за 10 секунд, потому что одна задача пойдет в малое ядро и будет обрабатываться 10 секунд. Ты опять гадаешь. Планировщик может и будет перекидывать задачи с ядра на ядро. Когда первая завершится на большой ядре он перекинет туда вторую задачу но это не точно, но при этом у неё уже будет некий прогресс.
>>3006574 > не про это Он про то что если в программе есть последовательный участок, то общее время выполнения в параллельной системе этой программы не может быть быстрее выполнения этого участка.
Да, возможно моя трактовка его на ядра некорректна. > он перекинет её с малого ядра на большое Перефразировал как понял твою мысль. Разве такое возможно? На ходу выполнения перекинуть выполнение треда на другое ядро?
>>3006013 Какие ещё таск ран? Ты высрался про AsParallel(), который в джаве выглядит короче, как parallel(), и даже он не обязателен, ведь можно сразу любую коллекцию превратить в параллельный поток данных через parallelStream(), и тебя обоссали, показав аналог в джаве.
Хочешь быть обоссаным ещё и по таскам? Показывай код на петушарпе, который якобы на джаве будет длиннее.
>>3006598 >Разве такое возможно? На ходу выполнения перекинуть выполнение треда на другое ядро? А в чём проблема? Планировщик останавливает тред, сохраняет состояние, восстанавливает на другом ядре, запускает тред. Это абсолютно нормальная ситуация, вот заставить его на одном ядре исполнять задачу, как раз требует специальных усилий.
>>3007073 Интересно какая потеря производительности из-за того, что нужно загружать из главной памяти состояние треда на другое ядро. Наверное небольшие.
>>3007306 Прошу прощения, это конечно не такая интересная тема, как сраться с шарпистами у которых есть await. Но попробуй объяснить, покажи свои познания.
>>3007334 >Есть ли между ними что-то общее? С помощью них можно обмениваться бинарными данными >Логично ли их сравнивать Ну ты же не знаешь какую задачу я выдумал под их использования. Для чего стоит использовать gRPC а для чего Kafka streams?
>>3003726 >деятели, как этот Ну вот зачем ты так? Подумаешь лично мне конкретно жаба не нужна. Я вообще попал не на то направление что хотел, и мне остался последний курс перед выходом в мир. Программировать учусь для себя, чтобы в свободное время игры делать, чем в общем-то и занимаюсь. Алсо 8 лет музыкального образования, и 6 хуйдожки, так что мне в кайф делать арт и саунд. А копаться в вебе или легаси энтерпрайзе меня и за 300ккк не затащишь (максимум кнопки красить, но там средняя зп по региону).
>такие программисты не нужны Да чего тебя трясёт то так? Все с чего-то начинали, в том числе и ты. Я задавал вопрос не с позиции что это неебаться сложно. Просто спросил, ибо что б не спросить, раз уже пишу в тред.
>>3007265 Кафка - это как RabbitMQ, а gRPC - это как REST, грубо говоря. Одно - это очередь, другое - протокол обмена данными. Кафка стримс - это вообще потоковая обработка, она не нужна для связи между компонентами. Конечно можно использовать очереди для связи между компонентами, но для простых случаев это перебор, оверинжинеринг и андерперформинг.
>>3007434 А, ну раз ты просто случайный пассажир на нашем корабле, тогда ладно.
Про генерацию пароля - мне кажется, это элементарно вообще. У тебя есть списки: буквы, буквы + цифры, буквы + цифры + знаки. Ты генеришь случайное целое число в диапазоне от 0 до последнего индекса списка, и получаешь очередной символ пароля. Список выбираешь в зависимости от выбранного типа пароля. Конечно, можно не делать явные списки, а просто работать с кодами символов, они идут подряд. Но, мне кажется, тебе с явными списками будет проще.
>>3007451 >Кафка - это как RabbitMQ Но кафка это журналируемый реплицируемый лог, а раббит это протокол AMQP. >а gRPC - это как REST А почему тогда там соединение не сбрасывается как у сокетов и вместо вопрос ответ можно слать стрим ответов и обрабатывать стрим запросов? >можно использовать очереди для связи между компонентами, но для простых случаев это перебор, оверинжинеринг и андерперформинг. А если у меня лимит на соединение и мне нужно асинхронно получить ответы из нескольких внешних систем рестом, мне доставать кучку комплитаблфьюч и отправлять?
>>3007468 >Но кафка это журналируемый реплицируемый лог, а раббит это протокол AMQP. Нет, кафка - это сообщения Avro, а рэббит - это брокер сообщений. >А почему тогда там соединение не сбрасывается как у сокетов и вместо вопрос ответ можно слать стрим ответов и обрабатывать стрим запросов? А ты думаешь там не сокеты используются? >А если у меня лимит на соединение и мне нужно асинхронно получить ответы из нескольких внешних систем рестом, мне доставать кучку комплитаблфьюч и отправлять? Да
>>3007468 >а раббит это протокол Чувак, раббит - это не протокол. это кролик
>А почему тогда там соединение не сбрасывается как у сокетов
Я же говорил тебе - ты просто ничего во всём этом не понимаешь. Тебе сначала надо разобраться, в чём разница между протоколом и системой, его реализующей, а потом уже вопросы задавать.
>>3007465 >случайный пассажир на нашем корабле Так и есть, спасибо за понимание.
>генеришь случайное целое число Дк не особо разница, выбрать рандомное значение из диапазона чисел, или из диапазона букв. Непонятно только как именно сделать этот выбор рандома. Писал такое в питоне через randint, а как на джаве да ещё и без интернета не знаю. ...или падажы, неужели импортируемые библиотеки вшиты в язык, и для импорта не требуют интернета? Во всяком случае не знаю как такое на жабе делать. Впрочем в гугле меня всё ещё не забанили, так что да.
>>3007542 Коллега, от твоих ответов зависит судьба проекта из двух трени и одного джуна уровня трени, завтра это может оказаться уже на проде, отнесись серьезней. Дана ручка посчитать и ручка получить расчет, жмем посчитать и обращаемся в 8 разных сервисов рестом, запросы в сумме минут на 10, а ручка получить расчет вызывается раз в 30 секунд, пока не посчитается. Есть идея возвращать ничего, а когда посчитается вернуть сумму того что надо, реализовать это можно несколькими способами, какой сам выберешь?
>>3007551 Очевидно как только первый раз дернул ручку посчитать - кладешь результат в тайник в памяти и продолжаешь возвращать его пока не будет готов следующий результат, который ты опять кладешь в тайник.
>>3007569 >пока не будет готов следующий результат Но ведь можно отправить эти 8 запросов сразу асинхронно, это ведь сократит время расчета? Проблема только в том, что это 8 потоков из комон пулла, я конечно моку сделать бин с еще одним тред пуллом, но в арр их уже прилично. А сделать меньше я очкую, потому что по ощущением они все в работе в разных задачах. С другой стороны расчеты производятся ну раз 5 в день и выделять под них отдельный тред пулл жирновато... Коллега?
>>3007640 Дошло. Я как-то упустил из виду, что эти вещи называются rest api handler.
Но, я бы заметил по этому поводу, что, на мой взгляд, это немножечко деградация. Ибо когда-то давно, ещё до появления node.js и до набега в индустрию полчищ долбоёбов, по-русски такие вещи так и назывались хендлерами. Но, видимо, зумерам современным инженерам такое непонятно.
>>3003203 Есть ли в NetBeans какой-то встроенный гайд/мануал доступный без интернета? Давеча сдавал экзамен по MySQL, так там некоторый синтаксис подсмотрел непосредственно на самом сайте через код элемента, да и встроенный мануал помог. Так что бы мне очень пригодился таковой, если имеется в NetBeans.
>>3007667 >доступный без интернета? Ты имеешь в виду чтобы смотреть во время сдачи экзамена? Насчёт NB - я его последний раз трогал лет 15 назад, примерно. Но, я думаю, что там если что и есть (по F1) - то это подсказки по самой IDE, а не учебник по джаве.
Но, в любой IDE есть отображение JavaDoc - встроенной документации по классам, методам и т.п. из стандартной библиотеки, которые ты видишь в написанном коде. Например, тот же JFrame. Но, даст ли тебе это что-нибудь, я не уверен. В NB это отображается для выбранного объекта (где курсор) по Ctrl + Shift + Space. Или по правой кнопке, наверное, тоже должно быть в меню.
>>3007709 Сам в ахуе. Благо при переводе из прошлой шараги годы засчитали так, что пошел на предпоследний курс (алсо мне так и так 2 года оставалось, так что ничего не потерял). Похуй, всего несколько месяцев этого цирка с конями осталось, если не завалю этот экзамен
Впрочем я выкрутился из ситуации добавив дополнительный Panel, и растянул на весь экран. Не думаю что кто-то реально полезет в код, во всяком случае надеюсь
>>3007635 Согласен с тем что жирновато, во всех смыслах. С другой стороны чего ты мнешься как девочка, редко используешь - общий тред пул, боишься за производительность - смотри профайлером.
>>3002529 >Так джавистов же заменили молодые спецы котлинисты еще несколько лет назад, переписав все на котлин-убийцу джавы Котлинисты уже соскуфились, а котлин уже протух. Так что теперь Go и gRPC. Колесо хайп-дривен-девелопмент сделало оборот.
>>3008520 Просто не хватило хайпа прорваться в мейнстрим. По моему опыту его сделали слишком гибким и люди в попытках использовать все фишки языка превращали код в не читаемое месиво.
>>3008560 Да, у меня такое же мнение. Именно - нечитаемое говно. Причём, в отличие от той же Скалы - с не очень понятным профитом. Вообще, это не "гибкость", это показатель плохой архитектуры. Потому, что, как говорят умные люди, архитектура - это, прежде всего, ограничения.
>>3008520 >Типа просто постепенно поутих энтузиазм и стали меньше использовть? Меньше хайпа, плюс в джаву немного улучшений завезли. Плюс то что хайп утих просто означает, что стали меньше переписывать существующие проекты. Но те что уже на Котлине, продолжают на нём пилить.
>>3008607 Ну, там есть удобная работа с монадическими конструкциями, например. Это очень большое дело. Есть нормальные литералы коллекций. Есть возможность делать развитые DSL. В котлине ничего этого нет. И вообще, скала выглядит как достаточно продуманный самостоятельный язык (в отличие от котлина).
Серьёзный минус скалы в том, что Одерский и Ко её с самого начала позиционировали как полную замену джаве, как вещь в себе. А надо было - как дополнение. Потом они переобулись, где-то к версии 2.13, примерно, и начали петь другие песни, но, было уже поздно. Короче - проблема скалы - в недостаточной интеграция с джавой, не позволяющая эффективно использовать скалу в гетерогенных проектах. А без этого она не нужна. В котлине это сделано гораздо лучше. Но, котлин - безблагодатное говно, которое, кроме андроида (и внутренних проектов jet brains) нигде не нужно. Он, в общем-то, даже и полноценным языком не является.
>>3008691 >Но те что уже на Котлине, продолжают на нём пилить. Это известная проблема. Называется sunk cost fallacy. Можешь погуглить. По русски это "ошибка невозвратных затрат" или "ловушка невозвратных затрат".
Я, например, этой зимой перестал так делать, и переписал один свой большой проект с перла на питон. Проект был не старый, года 3 всего. На перле был написан совершенно сознательно, но, потом выяснилось, что это себя не оправдало, и, при этом, затрудняет доработки. Так вот - котлин - это сильно хуже, чем перл. Перл, хотя-бы, очень практичный и довольно забавный.
>>3008707 Как я тебе это объясню в рамках коммента на дваче? Это вот как раз тот самый случай - если надо объяснять, то не надо объяснять. Подрастёшь - сам поймёшь, лол.
>>3008703 >Это известная проблема. >Называется sunk cost fallacy. Можешь погуглить. >По русски это "ошибка невозвратных затрат" или "ловушка невозвратных затрат". А нахер тебе переписывать работающий проект, с вполне нормального языка? У котлина нет никак фатальных недостатков: на нём удобно разработывать, поддержка ide и всех основных туловище есть, библиотеки есть и свои и все джавовские. У котлина нет убер фишки, чтобы на него переходить в существующем джава проекте. Но и недостатков чтобы переходить с него на джаву, тоже нет.
>>3008694 Минус скалы, что Одерский хотел одной жопой усидеть на двух стульях. Он хотел, и better Java, и haskell for JVM. Как итог и то и то вышло не очень. ООП часть была переусложнена для среднего разраба, а функциональная часть была слабовата для хардкорных функциональщиков.
Помню когда учил скалу, натыкался на моменты когда нужно было явно писать типы и объяснение было, что система вывода типов не очень хорошо работает с ООП наследованием.
>>3008750 Ну, не знаю. Вот, допустим, писали (фронтенд) на джаваскрипте. Потом придумали кофе-скрипт. И довольно много на нём написали. Было много хайпа. Учитиля и гуру учили и гурили. И где он сейчас? И где те проекты? А бэк живёт подольше. 20 лет - вообще не срок для энтерпрайзного проекта. Джава никуда не денется, как никуда не делся джаваскрипт. А вот насчёт котлина я совсем не уверен.
Да вы достали тут уже, разумничались. Раз такие умные отвечайте: Я могу в джава проекте сделать сервис на котлине и написать в рюземе что я джава/котлин разработчик вызвать его в контроллере написанном на джава и чтобы все это вместе работало? Я могу сделать дто на котлине и передавать в джавовские сервисы и наоборот? Вот отвечайте теперь, раз такие умные.
>>3008876 >Вроде бы да? Зачем ты у меня спрашиваешь, я ни одной строке на котлине не написал, только стремлюсь накакать им в проект. Ждем опытного. Еще интересует как работают корутины, они привязываются к основному потоку джавы или что вообще с потоками, жвм там их рулит сама
>>3008832 Да нет, на самом деле, я не думаю, что он куда-то денется. Даже руби никуда не делся, и даже типа "развивается".
Но, у котлина есть одна очень серьёзная проблема - она называется "too much language". И чем дальше - тем больше, это идёт по нарастающей. Такое не бывает успешным в долгосрочной перспективе. Язык - для людей. И если он игнорирует человеческую природу - он исчезает. См. тот же руби, скалу, кложуру. Да тот же перл - где он сейчас? А ведь был популярнейшим языком в своё время. Или тот же C++ - сдулся на несколько порядков. А джава - цветёт и пахнет. Потому, что простой язык. И именно поэтому мне не нравятся современные тенденции напихать в неё побольше разного говна.
>>3008874 Такое можно сделать даже на Clojure. Причём, несколькими способами. И на любом другом jvm-языке, включая jruby и jpython. А уж на котлине - без проблем вообще.
Про корутины - хз, я не залазил в эту клоаку так глубоко. Но, думаю, что этим рулит рантайм котлина. Который тебе придётся подвязывать к своему проекту, если ты будешь так делать. То же касается и любого другого jvm языка.
>>3008891 >The Kotlin plugin also bundles a Java to Kotlin converter (J2K) that automatically converts Java files to Kotlin. To use J2K on a file, click Convert Java File to Kotlin File in its context menu or in the Code menu of IntelliJ IDEA. Ну все прод тобi пизда, я начинаю эксперемент
>>3008882 >Или тот же C++ - сдулся на несколько порядков. > То что в стандарты с++ несут всякую хуйню, это без_порно. Но никто не завставляет пользовать всю новую чушь. И по закону больших чисел некоторая часть "чуши" оказывается годной. Сдулся С++? Это вряд-ли, просто он для решения специфических задач. Он не для всех. Это Си с классами и шаблонами. А ещё его синтаксис перекочевал в вашу Яву и Сишарп. Не в стиле Паскаля вы пишите, и не в стиле пролога. Если бегло издалека смотреть, Яву можно плюсами спутать. В первое мгновение.
>>3008901 >просто он для решения специфических задач. Он не для всех. Вот вот. А был - для всех. На нём делали всё то, что сейчас делают на джаве. Которую, собственно, и придумали, чтобы заменить это говно. И это получилось на все 100.
>>3008912 Это хорошо, но мне зададут вопрос: НАХУЯ ТЫ ТУТ НАПИСАЛ НА КОТЛИНЕ?. Что отвечать на это, есть какие-то аргументированные ответы (вариант для резюме и прост)0 не подойдет), я могу как-то козырнуть, что мол котлин делает Х лучше, чем джава, вот пруф?
>>3008935 Дарю: Maintaining poor legacy code, interpreting cryptic comments, and writing the same boilerplate over and over can suck the joy out of your life as a Java developer. Fear not! There's hope! Kotlin is an elegant JVM language with modern features and easy integration with Java. The Joy of Kotlin teaches you practical techniques to improve abstraction and design, to write comprehensible code, and to build maintainable bug-free applications.
"Это из аннотации Амазона к книжке The Joy of Kotlin, которую написал автор книги FP in Java. А ещё Рунар Бьярносон (который FP in Scala) тоже разродился книжкой FP in Kotlin. В общем - всё просто охуенно. Пока сам в это не нырнёшь, лол.
>>3008940 >меньше кода пишешь? Это не пойдет, мне кабаныч пезды вломит, скажет и так на наши копейки идут работать только долбоебы такие как я, а ты еще котлин в него занес, теперь дурачков в команду искать станет еще сложнее. Тут нужно техническое обоснование, должно же оно быть, потому что писать часть кода на котлине только ради того чтобы строчек было меньше это тупо и отмазка что из-за одного сервиса из тысячи проект стал на долю секунды собираться быстрее не прокатит
>>3008958 Не, ну безопасность - это основная идея котлина. Остальное уже потом намотали. А исходным было null safety, контракты и вот это вот всё. Цитата, возможно, неудачная. Надо было из предисловия в самой книге взять.
>>3008965 >Безопаснее это про нуллабл сейфти надо затирать? >легче поддерживать ну тут нет, теперь помимо джава разработчика нужен еще тот кто знает синтаксис котлина >future proof это еще что? кабаныч не дурак, он прочитал про голанг
Короче неубедительно, попробую лучше с джавы 11 на 21 или 17 перейти, тут хотябы можно будет пездеть про сверх оптимизацию жвм, надеюсь она есть, а то пеально будет если работать станет хуже
>>3008992 >много крутых фич для программистов я не буду пользоваться рекордами, новыми свитчами, sealed классами. А больше там ничего в 17 нового нет, ну еще npe по перемееной. А в 21 вроде только грин потоки не?
>>3008998 > новыми свитчами, sealed классами Вот это всё в 21 только из превью вышло.
А вот вошло:
🌟 Structured Concurrency - контроль асинхронности. 🔑 Scoped Value - гибкий ThreadLocal. ✨ String Interpolation - вставка переменных как ABC. 🚀 Unnamed Classes и Instance Main Methods - хелло-ворлд в одну строчку!
>>3009004 >Structured Concurrency - контроль асинхронности. Надо будет глянуть что это, а я думал у нас и так есть котроль асинхронности комплитаблфьючами, видно это какой-то другой контроль, более расово верный. Все остальное выглядит как юзлес, разве что понять зачем мне Scoped Value
>>3008923 > И это получилось на все 100. Я пишу на С, С++, C#. Могу читать код на Java, но не пишу на ней.
Твоё мнение мне интерсно только с точки зрения статистики - в индустрии я 30 лет и забыл больше языков программирования, чем помню сейчас. Поэтому мне не интересно холиварить.
У меня так - С++ для души, C# - для прокорма. Конечно бы я мог найти высокооплачиваемую работу и для С++, но это не язык для зарабатывания денег. А вот Сишарп и, вероятно, Ява - это чтобы деньги зарабатывать. Ибо при одинкаовом вложении труда результат у Явы/Сишарпа достигается быстрее и проще, чем на плюсах. Напрягать мозги ради дяди - ой, да ну нвхуй.
>>3008956 >>Ты буквально на 10 % кода сможешь написать больше за год. Это тоже хуйня для кабана? Может ему курсы слепой печати пройти, тогда он еще на 30% больше кода напишет, как думаешь?
>>3008988 >>попробую лучше с джавы 11 на 21 или 17 перейти Это скучно, там ничего не ломается. Апни лучше спринг бут до 3.2, чтоб у тебя полпроекта отвалилась из за сломанной обратной совместимости.
>>3009419 Этот мусорный код на скорость разработки не влияет. Или ты прям 8 часов в день код пишешь и опшионалы хз что там еще сократишь в типичном сервисе тебя сильно тормозят?
>>3009717 Так довольно мало кода сокращается. И чем дальше джава развивается - тем меньше разница. Выгода от его внедрения в бэкенд не превышает издержек на его изучение (не только себя, но и других разрабов).
>>3008949 >Maintaining poor legacy code, interpreting cryptic comments, and writing the same boilerplate
Все таки любят анальники перекладывать ответственность за свое говно на кого то другого. Неееет, это не вася-пупкин-пидарас наговнокодил - это все джава. Ну конечно.