Это копия, сохраненная 13 февраля 2024 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Что тут у нас:
🔮 LOOM: Потоки без швов, словно магия!
🧩 Pattern Matching: Проверки данных на стероидах.
📚 Sequenced Collections: Теперь .getLast() доступен всем!
В превью:
🌟 Structured Concurrency - контроль над асинхронностью.
🔑 Scoped Value - гибкий ThreadLocal.
✨ String Interpolation - вставка переменных просто как ABC.
🚀 Unnamed Classes и Instance Main Methods - для хелло-ворлда в одну строчку!
Java 21 - это как праздник для программистов, только без торта (но с мороженным)! 🍰🍦💻🎉
Вики по вкатыванию в джаву🎓: https://github.com/java2ch/java-thread/wiki
Предыдущий: >>2889352 (OP)
>без швов
Хрень какая-то.
>только без
>но с
Двойное отрицание, хуй пойми зачем.
>>05161
Пупуни помочь ни в чем не могут.
>только без, но
Вполне себе осмысленная фраза. На праздник торта не завезли (когда обычно праздник ассоциируется с тортом), но зато завезли морожение.
Где я сказал, что оно не осмысленное? Мне непонятна цель такой перегруженности. Убери любую часть этого предложения и нихуя не поменяется.
Ууу, манипулятор. Сложно с тобой отношаться, наверное.
Еще непонятно, как одновременно сохранять в консольку в plaintext и собирать файлбитом(логстеша в елк нету).
Только добавить аппендер, который сохраняет логи в файл и этот файл прокидывать вольюмом из контейнера в хостовую машину, а оттуда собирать файлбитом?
Ну типа https://2ch.hk/pr/arch/2023-10-05/res/2756391.html#2814842 (М) ....
С того времени, конечно, все раз десять поменялось, но вопрос тот же. Типа дтошки на уровень сервисов, нормально ли их туда пропихивать... В идеале бы проектик какой-то. Я б глянул как белые люди архитектуры делоют. Или книжка какая мб есть, типа вот суем дто тогда-то и тогда-то. Что есть сервис определяем по тем-то критериям...
Вот блять тока не надо предлагать стажировку найти. Нет у меня такой возможности.
Дтошки это объекты уровня контроллера,я раньше прокидывал их и в уровень сервиса,но на работе пояснили что это хуево. Сервис должен принимать параметры,которые ему необходимо,а не объекты из которых он должен их доставать. В итоге если у тебя в контроллер приходит дто с полями возраст и имя,то метод сервиса у тебя принимает возраст и имя. Вложенные дто делать не надо
Я иногда дто даже в репошки прокидываю, если там раскатистый запрос с кучей джойнов.
Но если он сервис будет возвращать не дто, то возможно распространение persistence context. Причем не всегда понятна, какие там данные можно забрать, а какие нет.
Входные данные в виде дто, в основном, чтобы не было раскатистой фигни, по типу name, age, и пр. Если принимать модельный уровень, будут проблемы выше.
Персистент контекст это кеш хибернейта,в нем хранятся энтити. Какое отношение это имеет к дто?
У тебя метод сервиса выглядит следующим образом:
{
Entity entity = repo.find();
return mapper.toResponse(entity)
или
return dto.toResponse()
}
В чем проблема? В идеале конечно для каждого слоя свой трансфер обжект,но рассмотрим эту ситуацию.
Теперь по поводу контекста. Контекст это кеш,можешь его как мапу представить или как лист. При инсерте у тебя значение кладется,при селекте забирается,при делите удаляется. Если сущность есть в контексте,она не изменялась и ты делаешь селкт,то нет смысла лезть в базу,это для этого сделано.
>Entity entity = repo.find();
Так, а проверки @Authorize закинуты в уровень репа в этом случае?
>return dto.toResponse()
Понял, значит по крайней мере return значение норм.
>Сервис должен принимать параметры,которые ему необходимо,а не объекты из которых он должен их доставать. В итоге если у тебя в контроллер приходит дто с полями возраст и имя,то метод сервиса у тебя принимает возраст и имя. Вложенные дто делать не надо
Вот это шизофазия. А если у меня 10 полей в дто? Делать метод с 10 параметрами? А value object-ы если? Нельзя?
А так да,сервис принимающий 10 полей,жизнь тяжелая штука
Вот эти вот.
>Понял, значит по крайней мере return значение норм.
Вообще развивая этот вывод. Я обощил это до почти всех сервисов. Так почти все методы у меня возвращали дто. И возник вопрос, каким обрзом мне сделать взаимодействие сервисов. ~ https://2ch.hk/pr/res/2816575.html#2819640 (М)
Т.е. мне пихают какой-то дто, мне его надо как-то возродить в модель, что-то сделать с ней и причем еще сохранить как-то.
В итоге я вообще отказался от @OneToMany аннотации и создавал дто, которые можно было восстановить в модель таким образом, чтобы repository.save(mapper.toModel(dto)); сохранил их в ту модель, которой они были. Но без persistence context.
По сути, на данный момент, у меня сервис присылает дтошку, я из нее делаю модель, что-то там меняю и сохраняю в реп.
Це норм практика? Или взаимодействие сервисов делают принципиально иным образом?
Эти вешаются только на контроллер. Твое приложение же в внешним миром связано через эндпоинты
Внешний мир тут причем? У меня внутренние сервисы друг с другом общаются...
Общаются посредством...
Блядь,нахуя вешать преавторайз на сервисы,ты блядь к другим классам жвт токену обращаешься,наркоман?
Я могу этот токен превратит в нормальный объект и по suid что-то сравнивать.
Я надеюсь на скрине фасад и у тебя не все сервисы принимают тысячу дто. Они используются где-то ещё? Почему не объединил в одно?
>Почему не объединил в одно?
Не видел смысла. Да и сейчас не особо вижу. Так-то каждый дто мне гарантирует, что там точно есть значение и оно точно не хуевое.
Хотя честно не помню уж зачем я и в аргументы запихивал дто. Наверное логика была, не ну раз возвращает, то почему и принимать не может?
То что объекты не хуевые гарантирует валидация,а будет она в нескольких местах или в одном разницы нет. Представил это ебанутое тело запроса в постмане и мне аж поплохело
>Value objects are one of the building blocks of domain-driven design (DDD). They represent immutable and self-contained concepts that have no identity and are defined by their attributes. Examples of value objects are money, date, or address
У нас на проекте помидорчик всё обмазывал такой дриснёй. Ну типа там я не знаю есть поле с длиной хуя в сантиметрах а он заворачивал её в PenisLengthCm. Смысл этого по-прежнему сокрыт от меня. Возможно я ещё не дорос
Не могу на практике представить себе ситуацию, когда кто-то запихивает ИНН туда, где должен быть ОКАТО, и при этом всё это работает, никто не замечает, это доходит до прода и потом все охуевают. Хуйня короче. Такты тратить на кал
Ссылку. Наверняка там тесты хуевые. Кидали тут уже перфомансые тесты, где жеба даже не в 10
ms
У петушарпа не нормальное, это дырка в апи, дырка, которая абсолютно нечитаемая. Что оно делает? Хуй знает. Чтобы понять, что оно делает, нужно читать документацию метода.
Так потому что больше нечем хвастаться.
Йеп. Ну давай, обзови как-нибудь~
Ты еще не видел, как они реализованы...
Чет гитхаб тупит, не слетели бы мои коммиты таким макаром...
Блядь ты еще кастомную аноташку написал? Ты совсем ебанутый? Это же буквально мартышкин труд
Во первых,аннотация нот емпти заменяет нот бланк и нот нал,во вторых тебе ничто не мешает валидировать поле
>Во первых,аннотация нот емпти заменяет нот бланк
Ок и? Мне твоим знанием восхититься или че? Ноннал она не заменит, потому пофег.
>валидировать поле
4 раза придется. И вообще тут @Length чет нет. Пометочка, получается.
Ааа, да где я толщу-то? Нот бланг заменяет нотнал и проверяет, что строка не пустая. Нахера мне писать нот емпти... Еще в толстоте обвиняешь, хотя я искренен блин.
Причем она полезнее в этом случае... В чем прикол вообще?
В PenisLengthCm можно засунуть методы isМикропенис() или isBigEnoughToFuckUrMom(Mom mom).
В PenisLengthCm можно как-то по-хитрому реализовать equals/hashcode.
PenisLengthCm можно отвалидировать.
Если потом в проект добавятся членодевки, то ты четко будешь знать, что PenisLengthCm у кунов и PenisLengthCm у членодевок это одна и та же хуйня с ожидаемым контрактом. А не два инта, у которых хз какой там инвариант.
Если бизнесь скажет, что еще роляет толщина хуя, но толщина важнее длины, то можно расширить PenisLengthCm до ПараметрыПениса и научить этот велью обжект всему вышеперечисленному.
Следующий программист, который придет на проект, сразу увидит, что вот у этой вот энтити не просто какие-то два инта "толщина" и "длина", а есть выраженная кодом проперти ПараметрыПениса, на которой завязана бизнес-логика.
>можно засунуть методы
Помню засовывал, мне сказали, не ну ты че творишь-то. https://2ch.hk/pr/res/2847268.html#2850513 (М)
Ты дверью ошибся. Клуб кожевенного ремесла двумя досками вниз.
Надеюсь ты не слился с диалога как обычно...
Да хуета это все. Если бы было легко и просто абстрактно проектировать апи, не отталкиваясь от текущей реализации сервиса и бд - просто можно было перейти на api first.
По факту добавление/изменение апи проектируется исходя из того, чтобы не перелопачивать ради этого всю реализацию и не делать ебовые трансформации, чтобы скрести ежа текущей реализации с ужом абстрактно спроектированного апи.
К тому же классический тест-дривет с тест ферст может нести просто ебовые нагрузки, если апишка жирная и на входе и выходе json из 500 строчек.
Так, чтобы поток А вызывал поток Б, а тот вызывал поток С и все имели одни и те же данные в тредлокал. По завершению задачи очищались данные в тредлокале.
Это уже 21+. Мне бы на хоть 17 перекатиться.
This indicates that the subclasses (which, presumably, know their ancestor well) can be trusted to use the method correctly, but other classes cannot.
Это означает, что в методах подклассов, предшественники которых известны изначально, можно вызвать защищенный метод, а методы других классов - нельзя.
Когда дотянет хотя бы до уровня нетбинса
>чтобы не перелопачивать уже существующие реализации
Ты только что api-last. Api-first это как раз когда апи до реализации, и перелопачивать ничего не надоб
Тут дело не в том, анальники переводили или нет. Просто с точки зрения самого языка перевод проебан и смысл искажен.
Читай в оригинале, хули ты.
Ну я к тому, что большинство проектов это легаси, где нет никакого api-first. И туда докидывать новые апишки по методу api-first если и выйдет, то это дико трудозатратно будет. Ну и с классическим tdd c red-green-refactor будет получаться на самом деле еще сложнее.
В любом случае даже с легаси кодом ты сначала думаешь, что хочешь приделать, а потом уже реализовываешь. Удобнее сразу написать на это тест.
Это если апишка милипиздрическая(входные и выходные данные небольшого объема) и существующий код не будет мешать писать такую абстрактную апишку.
На этапе красный очень сложно будет из требований собрать входные и выходные параметры на несколько сотен строк.
На этапе зеленый ты можешь увидеть, что очень долго адаптировать код к написанному тесту только по требованиям. Например, если бы ты посмотрел какие есть дтошки на уровне контроллера или на уровне сервисов - то ты мог бы их переиспользовать в своем новом апи и уже отталкиваясь от них выбрать формат апи. Или например моки. Ты заранее не знаешь, что тебе придется мокировать в тестах. Поэтому на зеленом этапе тесты придется все равно менять, дописывая моки.
На этапе рефакторинг просто придется потратить кучу времени.
Без тредлокала говно получится. К примеру, это нужно чтобы трассировки писать в запросы. Тебе прилетает запрос, его ловит интерцептор твоего сервера, записывает в тредлокал сразу, далее идет бизнес-логика. Думаю, тебе понятно, что поток там тот же самый. Интерцептор на хттп-клиент при каждом исходящем запросе берёт идентификатор трассировки из тредлокала, добавляет к нем спан и прокидывает в заголовок запроса
А можно поменьше баззвородов? Я нихуя не понимаю, и не хочу.
Конкретно у тебя shared данные между несколькими потоками, неважно, что они из одной группы, смысл тредлокала теряется.
> поток А вызывал поток Б, а тот вызывал поток С и все имели одни и те же данные в тредлокал
Да, у меня shared данные между тредлокалами разных потоков. И хотелось тредпул иметь такой из коробки, а не писать свой.
По поводу смысла тредлокала не понял, в чем проблема? InheritableThreadLocal ведь существует, который шарит данные
>в чем проблема?
Ты хочешь сделать не тред локал, а трепуллокал. Ну как я понял
>InheritableThreadLocal ведь существует
Он не создает общий контекст, просто данные при создании дублирует. И вообще предполагается, что там иммутабельные будут, сколько ж гонок будет, если туда мутабельное пихать...
>иметь такой из коробки
Хуй пососи. Тебе это говно нужно - ты и пиши. Или вот это жди https://openjdk.org/jeps/429
Че там писать то, взял класс с volatile полями захуячил и передаешь между потоками.
Из коробки лучше этого тебе никто не сделает, потому если это мутабельные обжекты - только тебе и задавать правила через synchronized и locks.
Не понимаю чего ты еще хочешь.
Ебать его со 132 миллисекунд разворотило.
Это не то немного, данные в нем после выполнения задачи сами не очищаются. Речь про тредпул, а не тредлокал
Тредпул хочу из коробки
Из-за out-of-thin-air safety черт его знает, как такое достичь. Лонги с доаблами разве что на 32 битной машине считать...
Там thread-safety коллекция, которая хранит иммутабельные объекты :)
Хм, а мне в джавараше объясняли, что синхронизация нужна как раз для защиты от такого. Напиздели значит. Только зачем volatile тогда нужен?
>Лонги с доаблами разве что на 32 битной машине считать...
Насколько я помню, там всё работает, jvm корректно все 64-битные операции на 32-битных машинах выполняет, просто медленно очень.
Я не учился в этом вашем джавараше
Синхронизация от гонок спасает. Но та гарантия из воздуха говорит, что значения могут быть только теми, что записали потоки. Бреда там не будет. Вот если кто-то хуйнет туды значение большое, то да.
>>06713
Плохо помнишь. https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.html#jls-17.7
Дебилизм какой-то. Не могли в 32-битных машинах все long и double расценивать как volatile?
Волатайл семантика очень жесткая. Проще просто выкинуть поддержку 32 битных машин. Очень жду этого, конечно.
А хуй знает. В спеке ничево не меняли же.
Да и поговаривают злые языки, что большинство на 8 сидит...
А как же обратная совместимость?
Подход "отбросить 32-битные машины" на большем сроке расширяется до "сразу отбрасывать старые процессоры, как только выходят новые". Что будет, если появятся 128 бит? Заставлять всех выбрасывать свои 64-битные процессоры в мусорку? Так это создаст прецедент поломки обратной совместимости и цикл обратной связи, когда два динозавра будут сидеть на старых процессорах, но ради них будут пыжиться авторы библиотек, не пользуясь фичами новых джав, и получим java 8 2.0 в 2028 году, и потому динозавры не будут видеть мотивации мигрировать куда-то.
То, что сейчас не лучше, это буквально "заставлять тех, кто ни в жизнь 32 бита не потрогает лепить волатайл везде, где требуют 32 бита и самое главное даже на 64 битах от этого ловить понижение перформанса там, где значения из воздуха неприемлимы, но на гонки в целом похуй".
Гораздо правильно при появлении новых процессоров добавлять новые типы беспрепятственно, но загружать на этих машинах все 64-битные типы в режиме обратной совместимости. И это не сложно, с тем же asm такое делается в 10 строчек.
> Подход "отбросить 32-битные машины" на большем сроке расширяется до "сразу отбрасывать старые процессоры, как только выходят новые".
Никто не говорил "сразу", все делается через продолжительное время. Смотри, вот последние же JDK только на 64-битные системы уже можно поставить, билды под 32-битные больше не делают, может кроме разве что коммерческой поддержки индивидуально.
>То, что сейчас не лучше, это буквально "заставлять тех, кто ни в жизнь 32 бита не потрогает лепить волатайл везде, где требуют 32 бита и самое главное даже на 64 битах от этого ловить понижение перформанса там, где значения из воздуха неприемлимы, но на гонки в целом похуй".
Ну вон шипилев говорит, что в принципе с некоторым падением перфоманса на армах можно и для этих двух динозавров вм написать. https://youtu.be/noDnSV7NCtw?t=7m24s
Это 9 лет назад, хз какая сейчас ситуация, конечно.
Пишу на богоподобной джаве, на которой то, что выполняется на петушарпе за 132 миллисекунды выполняется за 5 мс, а что?
А газпром цпс это че такое?
Работал в Газпромбанке, там были Java и Kotlin. Но не прошел испытательный срок.
Цель какая? Программирование ради самого программирования? Должна быть какая-то цель, например улучшить качества продукта, скорость например. А тут ты просто хочешь переписать, чтобы просто проект был на другом языке. Это не имеет никакого смысла.
Нет. Учи шарп.
Да, лучший способ выучить новый язык это переписать свое приложение на новый стек.
Если язык изучаешь то лучше с нуля писать, а то получится что ты взял проект на джанге, переименовал классы и подогнал под джаву, а структура и бизнес логика особо не изменились.
>>10605
всем похуй на петы, их смотрят довольно редко
джун все равно напишет говно, мидлу их писать некогда, сенька напишет переусложненную поебень
Да. Голой жавой тоже никто не пользуется.
В коробке есть хттп клиент и даже сервер. Но они такое говно, что лучше бы не было.
О, ты в наш уютный тредик пришел. Оставайся, я разрешаю.
Когда архитекторы языка думают о том, что действительно требуется конечным пользователям и разработчикам, вместо того, чтобы напихивать кор ненужными пользовательскими либами - это очень даже заебись.
Как ты, пупунь? Все ли у тебя хорошо?
Ну конкретно с апи обжекта они конкректно так проебались. Финализаторы, мьютексы и еще куча поебение, что теперь исправляется разного рода проектами.
Ну петы и гитхабы уже давно никто не смотрит. Если только для себя. Но айти сдохло и вката в принципе больше нет. Поэтому рекомендовал бы заняться чем-то реальным, а не за кудахтером просиживать, как мама в детстве говорила.
> мьютексы
Ты вообще понимаешь значение слов, которые высираешь или просто говоришь всё что вспоминаешь?
У нас есть божественный мавен, с которым любой, наиболее понравившийся из сотен json сериализаторов может быть подключен за минуту. Нам не приходится жрать то, что скормили с лопаты разработчики языка.
Каждый объект в жабе может выступать в роли мьютекса. Может хуек пососешь, а? Долбоеб тупой
Нет, ты реально долбоеб?
> Each object has a monitor associated with it. The thread that executes monitorenter gains ownership of the monitor associated with objectref. If another thread already owns the monitor associated with objectref, the current thread waits until the object is unlocked, then tries again to gain ownership. If the current thread already owns the monitor associated with objectref, it increments a counter in the monitor indicating the number of times this thread has entered the monitor. If the monitor associated with objectref is not owned by any thread, the current thread becomes the owner of the monitor, setting the entry count of this monitor to 1.
https://docs.oracle.com/javase/specs/jvms/se6/html/Instructions2.doc9.html
Почему такие идиоты вообще работу имеют...
Нахуй этот даун продолжает высирать какую-то бессвязную хуйню? Кто-то спорил что-ли с тем, что у каждого монитора есть объект?
Нахуй спринг? Перепиши на голую джаву, точечно включая либы с теми фичами, что сожрал и запомоил спринг (например, вместо Spring Data можно взять ORMLite или Hibernate). Вот тогда это будет полезно.
Предвещая вскукареки про то, что спринг дата работает поверх хибернейта, который я предложил взамен поправлю: "можно взять ORMLite или голый Hibernate".
Ты путаешь ORM и средство отправки запросов к базе данных. Если ты спрашиваешь, почему я отбрасываю абстракцию спринга, но не иду дальше и не отказываюсь от ORM, то потому что я отбросил абстракцию спринга не по принципу "нахуй абстракции, даёшь ассемблер", а потому что спринг дата вообще нихуя полезного не делает, просто создаёт лишний интерфейс, который дублирует методы того же Dao из ORMLite и огромную нагрузку в рантайме на машинную реализацию его в том же рантайме.
>у каждого монитора есть объект
Что ты несешь...
Мьюетекс, типа взаимная блокировка - это как концепция, так и деталь реализации. Типа если я назову виртуальные треды зелеными, ты тоже прибежишь и как тупое ебланище кричать, аррря ты тупой?
Как деталь реализации:
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/runtime/mutex.cpp
Тут комменты для тебя, тупенького есть, почитай хоть: https://github.com/openjdk-mirror/jdk7u-hotspot/blob/master/src/share/vm/runtime/mutex.cpp
И боже, не пиши больше в этом треде, пожалуйста. Ты ведь не первый раз пытаешься кого-то "попустить" наверняка. В шарп вон иди, холиварь до бана.
Нахуй ты мне продолжаешь цитировать джавадоку? Ты что-то сказать хотел? Так скажи.
Может перестанешь серить под себя? Тут нет доки. Только спека.
Все это к этому >>11577
Каждый объект может иметь мьютекс, потому куча проблем возникает, оптимизатор там учитывать должен, еще из-за этого каждый объект должен иметь возможность идентификации, а значит внутри такой огроменный блоб. Вон виртуальные треды intisic lock не особо любят, наверное апи просто такое клевое, что зачем менять.
> хочу сделать свою либу для работы с БД
>для работы с бд возьму голый jdbc
А в чем твоя работа состоит?
>Тут нет доки. Только спека.
Да пожалуйста, хоть баелдунга или отрывок из поваренной книги по варкрафту от близзарда засунь, мало что поменяется.
>потому куча проблем возникает
Вот именно это и требовалось от тебя, когда твоё понимание того, что ты несёшь было поставлено под сомнение. А до этого ты на протяжении 3 постов рвонькал и чатгптил.
Так в смысле в чем, голый jdbc же возвращает только resultSet не? Вот моя либа должна сама преобразовать в нужный мне объект. А ну ещё и sql запросы хочу через джава код делать к примеру вот так:
query.select(здесь пишешь поля).from(пишешь откуда).execute(во что преобразовать резултсет)
>query.select(здесь пишешь поля).from(пишешь откуда).execute(во что преобразовать резултсет)
Ты только что Jooq.
Ну типа это маппер скорее, орм свою ты вряд ли осилишь. Хз, я прост думал ты там драйвер свой для жидибиси написать хочешь.
Бесишь
На такую хуйню сил точно не хватит. Я как-то полез смотреть исходники постгресового драйвера, я бля не знаю какими сумрачными гениями должны быть разрабы что такую работу осилить. Так что у меня от таких амбиций только жопа лопнет
Небольшая главная тайна всех мегапроектов: все они переусложнены в сотню раз и буквально любой проект в мире программирования может реализовать один человек и за вразумительное время.
Небольшая главная тайна всех философов на диване: у дурака все просто. Как говорится гладко было на бумаге, да забыли про овраги.
Я кода написал в 10 раз больше чем ты и только потому говорю, что ничего сложного в мегапроектах нет.
Если писать одноразовый неподдерживаемый код то в самом деле сложного ничего нет.
А когда начинаешь задумываться как эту хуету расширять, автоматически вырастают еще пару слоев абстракции
А на что тебе не похуй?
>Если писать одноразовый неподдерживаемый код то в самом деле сложного ничего нет.
Ага. А несколько человек типа сразу решают эту проблему автоматом. Это же не так что у тебя траты на проектирование улетают по экспоненте с количеством долбоебов в команде. А еще каждый по разному пишет.
Амазон,либерикавроде и опен ждк бесплатны для коммерческого использования. Есть реализации дот нета от компаний кроме майкрософта?
Ну поэтому все продукты для импортозамещения и пишутся на дотнете. Я листал реестр и там полно .NET софта. А джаву в рф вообще перестали использовать, ну кроме парочки банков.
Жирна
Ну знаешь,тут парочка банков,там парочка сотовых операторов,сям парочка предприятий, ещё вон там парочка парочек из финтеха,там же парочка стартапов,около них парочка соц сетей и месседжеров,где то рядом еще парочка парочек сервисов и в уголке валяются крупные магазы типо днса. В итоге получается что приходя в 90% компаний у них будут вакансии на джаве
Я хочу чтобы maven перешел со скуфхмл на ямл 🥹
> еще из-за этого каждый объект должен иметь возможность идентификации
Идентификация объектов идет по адресу в памяти по умолчанию, какую еще возможность идентификации он должен иметь?
> а значит внутри такой огроменный блоб
Внутри чего? Там объект 16 байт по умолчанию берет. Остальное - его поля.
> Вон виртуальные треды intisic lock не особо любят
С ReentrantLock все работает нормально, с synchronized скорее всего временно, если взять цитату из JEP 444 (Virtual Threads):
In a future release we may be able to remove the first limitation above, namely pinning inside synchronized.
>какую еще возможность идентификации он должен иметь?
Пик. Да и ссылка меняется постоянно.
>по умолчанию берет
Какому умолчанию блять? Это специфицировано. Может и 64 хуйнуть.
>С ReentrantLock все работает нормально
Так это explicit lock.
>Это специфицировано
Не.
Еще дополню, что каждый объект внутри хедера может содержать марк ворды, а там лока сидит с хэшем. И прочая поебень.
Ну что тут сказать. Легаси тоже нужно поддерживать.
Любой лид, который в 2024 году выбрал джаву вместо дотнета должен быть ПУБЛИЧНО признан профнепригодным необучаемым долбоебом и отправлен на завод. Явно человек не следил за рынком в последние 10 лет, он мертв как профессионал и несет угрозу для бизнеса и инженеров.
Хехе братик,никто не будет писать на дешёвой копии вместо оригинала,судьба шарпистов быть фуллстеками за зарплату джава джуна,тут уж рыночек порешал,ничего не поделаешь
Это почему? Потому что выбрал современную технологию вместо легаси параши, в которой нет ни оптимизации, ни нормального синтаксиса?
Вот бы ещё такую табличку на 21 жабе с новыми GC. Очень хотелось бы увидеть, а правда ли новые коллекторы так мало потребляют от общего перформанса.
Оракл еще более пидорская компания, чем микрософт.
Вместо оракла можно выбрать еще из десятка других реализаций.
А что там кроме микрософта в дотнете есть?
>>12622
>>продукты для импортозамещения и пишутся на дотнете
А потом микрософт запретит использовать дотнет в РФи придется все спешно переписывать на джаву, которая производится в том числе и в РФ
>А что там кроме микрософта в дотнете есть?
Зачем? Ну это жабе приходится извиваться и выпускать 100500 ждк с разнообразием багов в каждой. А у шарпа это официальный опенсорс поставщик, зачем клоны, когда сам владелец пилит все, просто бесплатно.
НИНУЖНО
>А потом микрософт запретит использовать дотнет
Или метеорит упадет, или инопланетяне прилетят?
15 лет жабья секта твердила, что вот вот вас посадят на кукан и будут доить патентами и лицензиями, но в итоге за 20 лет вышло ровно наоборот. Теперь мы имеем зоопарк ждк и одна официальная только закрытая и платная.
>А потом микрософт запретит использовать дотнет в РФи придется все спешно переписывать на джаву, которая производится в том числе и в РФ
Да, а еще удалит все клоны реп из сорсами дотнета с компов. Джавадебил, не трясись, это не Оракл.
>одна официальная
Официальная — OpenJDK. OracleJDK находится на одном уровне с, например, закрытой AxiomJDK.
Помолчал бы, умнее выглядел.
Не, просто ты, дурачок джавадебил, превращаешь в помойку оба треда. Вернись сюда и все будет хорошо.
Так, что шарпочане пришли не просто потому что. А потому что ты мудоебинь бегаешь и триггеришь легко возбуждаемых анонов.
По-хорошему, тебя и джаваны обоссать должны.
Стартап тайм и так неплохой. На крайняк, если эти миллисекунды запуска влияют не только на ожидание запуска тестов и единичных запусков приложений конечными пользователями, можно переиспользовать одну и ту же jvm.
Медленно запускается не джава, а прикладное говно типо спринга.
А, так ты подтверждаешь, что вас покорёжило от отсоса асинк/авейта и вы пришли мстить злым джавистам за раскачивание лодки. Пынямаю.
Ты типа джепы открыл впервые, или че?
Че они сразу не решили добавлять lazy-values? Такое ведь будет полезно и не только для статических полей.
>>Или метеорит упадет, или инопланетяне прилетят?
Или Россия с Украиной войну начнет.
>>но в итоге за 20 лет вышло ровно наоборот.
микрософт пыталась так сделать, но обосралась, пришлось в опенсорс выпускать, чтоб шарп совсем не сдох
>>Теперь мы имеем зоопарк ждк и одна официальная
Офицальная это openJDK? Она бесплатная официально и останется такой по условию покупки сан микросистемс.
А OracleJDK - васянка от оракл на уровне либерики или амозоновской версии. Можешь взять спеку и свою написать.
>>Да, а еще удалит с компов
>>это не Оракл.
А что оракл уже удалил все оркаклДБ с компов?
>>удалит все клоны реп из сорсами дотнета с компо
Просто перестанет обновлять бесплатную версию.
Щас она так не сделает только потому что все тут же перейдут на джаву.
Сначала нужно захватить монополию, а потом поднимать цены. Но с монополией обосрамс вышел.
Лол, пчел пытается доказать, что выход в опенсорс это падение, а проприетарная стрижка овец в 2019году, это развивающийся путь успешных джентльменов??
>Офицальная это openJDK?
monoJdk это любая васянская интерпретация, надо же было как-то спасать свой кобол-код, который уже не переписать, вот и высрали кто мог.
>monoJdk это любая васянская интерпретация, надо же было как-то спасать свой кобол-код, который уже не переписать, вот и высрали кто мог.
Ты шарп или джаву засираешь? Не могу понять.
Жаба стала платным проприетарным говном, шарп стал опенсорсным бесплатным продуктом.
Мир поменялся. Теперь жабёнки жрут свою версию "mono" хотя я уверен, у всех стоит оракловая jvm, многие даже не знали о лицензии
чел...
Блять, ну прекрати тролить тупостью. Оракоавская жвм идентична опенждк. Как можно хуйню нести на полном серьёзе..
Лол, а этот вообще не в курсе. Не пугать ньюфаню?
>>проприетарная стрижка овец в 2019году, это развивающийся путь успешных джентльменов??
Амазон с облаками так и делает, например. Подсаживаешься на авс, а потом оказывается что пересесть на другой хуй уже дороже чем продолжать платить.
Микрософт проебал вспышку, чтоб стричь бабло на своей джаве, пришлось с лицом лягухи выкладывать в опенсорс.
>>уверен, у всех стоит оракловая jvm, многие даже не знали о лицензии
Ровно наоборот. Большинство и не в курсе что есть оракловая и пользуются опенждк или либерикой.
ЖЕСТКО УНИЗИЛИ ASM
>Теперь мы имеем зоопарк ждк
Java круче всего что есть, и превосходит остальные языки. Можно код переиспользовать- фантастически, ни в одном языке такого нет. Написанные апплеты 20лет назад- легко запускаются в любом jvm, были бы .class файлы. Идеальная система разделения классов один файл- один класс. Интерфейсы- идея которая опередила все яп на десятки лет, и не раскрыта ещё до конца.
Остальные языки- это чехарда версий компиляторов, корявые-дырявые бинари, пердолинг и прыжки по граблям, и в сотни раз больше человеко- часов на разработку.
>придется все спешно переписывать на джаву
давно пора, без всяких шуток, всё писать только на java. Байткод он и есть байткод, можно на любом чипе микрухе системе запустить.
На любое новое железо- достаточно лишь небольшой системы, чтобы jvm запускалась, остальное всё java. Так можно добиться непревзойдённой переносимости софта. И смехотворные dll, exe elf и прочее устаревшее бинарное тряхомудие- благополучно исчезнут, как историческое недоразумение.
>апплеты 20лет назад
>Идеальная система разделения классов один файл- один класс
>Интерфейсы
Иновации!!! А мне говорили джава не развивается! Просто на острие индустрии.
>Мне нравится спринг.
Спринг говно. Потому что мейнстримовый говнокомбайн напичканный доверху магическими абстрактными фабриками билдеров и тд. Пытается казаться модным-молодежным, но если капнуть глубже то вываливаются древние гнилые потроха, когда это говно еще бины в XML конфижило.
>>13473
У меня тетка на коболе хуярила при живом Брежниве. Точнее на его версии переведенной ранним промтом и запущенный на спизженной IBM 360.
>>13492
Минусы в том что части комбайна очень быстро протухают и вываливаются вместе с прямой кишкой разрабов. Нужно очень осторожно подходить к тому какие компоненты спринга использовать. Чекани Spring Social, ACL и прочие. Они давно протухли и выкинуты на мороз.
1. Шаблонизаторы в принципе не нужны. И фримаркер нормально интегрируется со спрингом.
2. Про social слышу впервые. А если acl это spring security acl, то что с ним не так? Вполне живой, практически стандарт.
>🔮 LOOM: Потоки без швов, словно магия!
>🧩 Pattern Matching: Проверки данных на стероидах.
>📚 Sequenced Collections: Теперь .getLast() доступен всем!
>
>В превью:
>🌟 Structured Concurrency - контроль над асинхронностью.
>🔑 Scoped Value - гибкий ThreadLocal.
>✨ String Interpolation - вставка переменных просто как ABC.
>🚀 Unnamed Classes и Instance Main Methods - для хелло-ворлда в одну строчку!
Опять эмодзидаун засирает мою любимую тоску своими высерами. Пожалуйста, больше никогда не стартуй треды о жаве. Мне искренне жаль всех, кто здесь обсуждает этот мёртвый язык и искренне радуется фичам типа интерполяции строк, которые в других языках присутствовали уже по 30-40 лет, пиздец.
Мне совершенно не жаль дауна, который думает, что у интерполяции строк из джавы есть аналоги по качеству и проработанности, хотя стоило бы его пожалеть.
java лучший язык, по соотношению работающий код/количество человеко-лет на кодинг. Именно поэтому, корпорации напридумывали сотни говённых поделок, типа шарпа, питона, и прочих недоразумений. То что платформе java делается банально- у них требует чрезмерных ухищрений, кучу разработчиков и на порядки дольше. Универсальный переносимый байткод- это идея опредившая время, выгодная для всех позиций айти, от железа до софта и систем. Только подумать- однажды написанное, легко работает на всех системах, ез кододрочинга и компиляций, без чехарды версий и обновлений.
на java может работать вообще всё, от драйверов- до прошивок сотовых, причём кода написано на все случаи. Даже windows целиком была перенесена на java, и другие системы. Только лишь пидарастические корпоации, не афишируют такой ценный исторический капитал.
x86 платформа и все составляющие типа корп софта- изначально сделано хуёво, чтобы софт покупали. Если писать системы на java- весь софт станет банальным, уязвимости как класс- исчезнут, корпорации разоряться, а айти выйдет на новый уровень- надёжного долгоживущего софта.
Вот это он приложил весь джаватред! Но есть одна загвоздка — забыл добавить про шапочки из фольги и плоскую землю.
долбоёб, сраный даун пошутил про сериализатор. Их сотни блядь написано, всех сортов. Вы просто дауны ёбаные, исходники гуглить не умеете. Пошутить- значит знать тонкости java, а не пидорасится насчёт http. Ну и впрочем, пшёл нахуй долбоёб.
>Даже windows целиком была перенесена на java, и другие системы
Шта?
>уязвимости как класс- исчезнут, корпорации разоряться, а айти выйдет на новый уровень- надёжного долгоживущего софта.
Ой, вот не надо. Джава конечно не си с указателями, но и на ней дырок наделать можно только в путь. Есть языки и посекурней.
Так не пользуйся комбайном под названием бут.
Я вообще считаю что использование бута - признак дегенерата, который не годен к работе.
Явно используй лишь необходимые компоненты спринга с явной настройкой.
Разумеется заебись.
У нас этих жсон сериализаторов - тыща, на любой вкус и потребности. А изкоробочкодауны навеки прибиты к одному. Завтра мода с джсонов уйдет, и у них в их из-коробочке +1 депрекатнутая легасятная залупа, которую хуй выпилишь из-за миллиона скаплившихся на нее хомяков.
Так о чем и речь, чел. Я ж не говорил что в джаве изкоробочкидаунов нет. Были, и дохрена.
Насхорн еще тот же можно вспомнить, который в отличие от awt просуществовал меньше пяти лет. Можно еще порофлить с того факта, что DOM/SAX парсеры XMLя, если мне память не изменяет, тоже часть рантайма. Хорошо что хоть щас одумались, попилили весь бардак на модули, и шлют изкоробочкодаунов нахер.
>Шта?
то что пердолят в ноде и питоне, шарпе- в сто раз было сделано на java лучше ещё в 2000х годах.
Сделать весь софт на java- и проблема обновлений и переносимости исчезнет как таковая, достаточно поставить jvm и софт будет одинаково работать на любой системе, от старья до самых современных.
Именно по этой причине, были внедрены говно-языки и методологии в разработку софта.
Любую ос можно упростить в сотни раз, вместо корявых, дырявых бинарей dll или so просто используя классы java.
>но и на ней дырок наделать можно только в путь.
нет, сама архитектура исключительно безопасная. Поэтому в старых телефонах в j2me в принципе не было вообще уязвимостей, они физически невозможны. Так как каждая приложуха в отдельной jvm песочнице выполнялась.
то есть обычные телефоны из 2000х годов на j2me- по безопасности на порядок лучше, чем современные смартфоны, со всем многоумным айти пердолингом в жопу.
О мастер, а покажите мне как без бута явно использовать только необходимые мне компоненты спринга как актуатор, логи, yaml, @SpringBootTest, профили, стартеры, messages.properties и так далее и так далее.
И как не повеситься, по новой настраивая увлекательную и неповторимую инфраструктуру в каждом новом микросервисе.
> логи,
>yaml,
>стартеры
Ммммм. Хороший детектор дегенерата...
> И как не повеситься, по новой настраивая увлекательную и неповторимую инфраструктуру в каждом новом микросервисе.
Так и скажи что ты крудошлепомакака с микромозгом.
Забавно, что к сандбоксингу вне джавы вот недавно только-только начали приходить — в жопаскрипте.
Почему не jdbc в таком случае?
Чем логи и ямл плохи?
Если что-то не устраивает, лучше просто пойти на прогулку и подумать об этом в спокойной обстановке. 😉
>Минусы в том что части комбайна очень быстро протухают и вываливаются вместе с прямой кишкой разрабов. Нужно очень осторожно подходить к тому какие компоненты спринга использовать. Чекани Spring Social, ACL и прочие. Они давно протухли и выкинуты на мороз.
Таки да. Spring Cloud Sleuth самый последний пример. Теперь типа надо использовать Micrometer, а там старых абстракций нет нихуя.
Нахуй тебе тогда спринг понадобился?
Тебе в по
Пупуни звереют к концу недели,они хотят разрушать
андроид ос десятки лет пердолят целой корпорацией, и до сих пор их смехотворные потуги и на 1% не имеют защищённой безопасности, как j2me на одном по сути контроллере, которые были в массовых телефонах в 2000х годах
Не нужны сложные ос, вообще. нужна просто vm. А со стороны производителей железа и гаджетов- точно такая же vm, только со стороны железа. Тогда написание драйверов, ос и чего угодно, становится просто банальной вещью, прикладной софт не требует вообще ни компиляторов ни сложных проверок, а байткод- можно набрать хоть с листочка на клавиатуре, безопасность систем выйдет на недостижимый, никогда ранее уровень.
Сейчас концепция сандбоксов на мобилках нахуй не нужна.
Современные приложения хотят пользоваться данными друг друга и устройства.
Высылаем вам пупуню,ожидайте к вечеру пятницы
>данными друг друга и устройства.
это не так, современные смартфоны- дырявое решето, потому что везде используются дырявые уязвимые прошивки бинарные, на каждом чипе предзагрузчике и прочем барахле, на каждой сраной флеши- внутри мутный никому не понятный бинарь работает.
Чем проще- тем надёжней, вместо простого и надёжного- делают сложное и ненадёжное. Для запланированного устаревания.
Используя java, код вообще не устаревает, легко переносится на любую систему, где можно запустить jvm.
Губами ты разьеб устроил?
И?
Алсо
>одноразовый неподдерживаемый код то в самом деле сложного ничего нет.
не всегда работает. Часто даже без расчёта на дальнейшее расширение легче сделать с абстракцией, за счёт привычки нейронных связей, отвечающих за код, писать абстрактный код, и за счёт некого совпадения множеств "сухого (недублирующего себя) кода" и "лёгконаписуемого кода".
>>DDD не знаете что такое?
Слышал о таком, видел какие то схемы со стрелками, ни разу не видел объяснения как это должно работать ИРЛ, особенно когда аналитики ставят задачи вроде "если дернуть Х должно вернуться У", а где там домен, юзкейсы и прочее сам ебись.
> Вы психически отсталый? Такой тупости ни один программист- не напишет. Откуда вас столько конченных долбоёбов вылезло?
По делу что-нибудь высрешь?
Джаваны, вы чего заскучали? Срочно расскажите про свой крутой современный язык и новые модные фичи. Почему я должен хотеть программировать на классном языке Java? ака вонючая протухшая жаба
Почему? Я хочу хотеть программировать на языке программирования Java. Расскажи мне что-нибудь, чтобы я хотел.
Такие слова только отталкивают желающего изучать Java. Разве ты этого не понимаешь?
Оно даже на примерах выглядит как говно, какое то ООП разводят с логикой внутри дто, а каждый метод сервиса надо выносить в отдельный класс. Представляю какая там помойка из файлов образуется в коде. Двже не могут схемц нарисовать нормальную как это выглядит.
Если нахуя нужно ТДД я вроде понял после Хорикова, то с ДДД такого пока не случилось.
>>Срочно расскажите про свой крутой современный язык и новые модные фичи.
для этого есть шарпотред
>>Почему я должен хотеть программировать на классном языке Java?
уебывай в гойду или петушарп, нахуй ты мне в джаве не нужен
Так я и не хочу сраться, я хочу учить язык программирования Java. Джава или джаба как правильно?
>The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
Спасибо. А если я хочу учить новую крутую жабу, о которой мне рассказали?
потому что ты чат бот долбоёб.
Я не понимаю, подожду когда Шипилев объяснит что это такое и нахуя нужно.
Уходи.
Бля, выглядит так, как будто кишки винтерхальтовского байтбадди спиздили.
Нахуй это нужно в ждк?
С идеями DDD так или иначе знакомы все, кто писал что-то сложнее пет клиники.
Все явным или неявным образом понимают что такое баундед контекст, ubiquitous language, агрегаты, сервисы, фабрики, репозитории, домен, слои архитектуры и т.д.
>>14881
>ООП разводят с логикой внутри дто
А ты точно не путаешь dto и value objects?
Это семантически разные вещи.
>каждый метод сервиса надо выносить в отдельный класс. Представляю какая там помойка из файлов образуется в коде.
Wut.
сап джавагоспода, я тот шиз который хотел сделать эту шляпу >>11738 . Уважаемые люди подсказали что уже есть такая вот фигня >>11739 jooq. Посмотрев как в jooq строятся запросы, я прям загорелся им, по сравнению с spring data jpa и hibernate, это манна небесная, но генерация энтити что-то нихуя не зашло. Хочу объединить эти две либы, для сущностей взять hibernate а для запросов использовать jooq, и вот собсна вопрос, насколько адекватен такой подход и занимаются ли люди такой шнягой?
А ты точно хорошо хибер понимаешь? Там как бы несколько кэшей, есть евент система и проста взять и вкорячить туды жук... Может используя Work API вполне и можно, но чет это на хуйню если честно похоже. Поскольку уже есть hql.
>но чет это на хуйню если честно похоже
А от hql ещё большей гавной воняет анончик, ну я не поверю что на реальных проектах юзают hql, бля это реально выглядит мягко говоря не айс..
>ну я не поверю что на реальных проектах юзают hql
Можно, конечно, его через критерия апи генерить, но так или иначе используют и куда активнее чем жук.
Бля какой же я лох, анонче подскажи что это за шляпа и как её гуглить?
>Можно, конечно, его через критерия апи генерить
согласен, поэтому я без работы сижу
За все время что работаю жявапидором (5+ лет) поработал на 6 проектах. И только на одном чуханском микросервисном говне была спринг дата, и даже в ней не было хуйбернейта.
Кто вообще этот обоссаный жпа юзает в спринге?
ёбаный пидор, этот тред про java, а не про вас пидорасов.
1. Вместо sql строки хочу сделать некий билдер с которым буду собирать запрос.
2. Маппер хочу доработать так, чтобы ему на вход передавать ResultSet и класс к которому нужно смаппить, без такой шляпы
Вспоминая, мне тут https://2ch.hk/pr/arch/2023-11-05/res/2816575.html#2819632 (М) modelMapper рекомендовали. Авось он уже и решил все, что ты хочешь сделать.
Почему о жуке достаточно много разговоров в сообществе, но вакух с ним мало?
Бля, как заебался искать в этом коде маппинг
https://github.com/apache/commons-dbutils/blob/master/src/main/java/org/apache/commons/dbutils/BeanProcessor.java#L466
Короче воть.
Почему везде говорят про паттерны проектирования, но нигде их не применяют?
У меня на проекте жук, в соседних командах тоже. Че там в вакухах я не знаю, их херки наверное пишут или копипастят из старых "вакансия на джава 2010"
Ну почему!? Я вам не нравлюсь?
Ну я могу подобным образом назвать. Что ты мне сделаешь, а?
Хекс Формат оф... что блядь? Оф что? Чего? СУКА ЧЕГО БЛЯДЬ?
Оф делимитер стринг делимитер... БЛЯДЬ ТАК ВОТ ЧЕГО ОФ! А ПОЧЕМУ СУКА НЕ ОФ А ОФ ДЕЛИМИТЕР???
Я короче хочу взять подобный анализ линеаризуемости отсюда https://github.com/JetBrains/lincheck плюс совместить его с анализом кода на po/sw/hb отсюда https://youtu.be/C6b_dFtujKo?si=idVUSkUGUD6vTfZw&t=1441
Пока думаю, каким образом этот анализ вообще проводить. Аст генерить похоже и вот что-то на его основе делать. Плюс еще надо подумать какого вида будет визуализация, хотелось бы прям наглядное изображение жабовской конкурентности. В идеале б прям плагин для идешек, нооо эт вряд ли.
Еще в видосе шипилев в конце сказал, что мол студентота вполне осилит прувер, знаете похожие проекты? Не занимаюсь ли я велосипедостроением... Я вот в туториалах ток чет подобное нашев https://sourceforge.net/projects/javaconcurrenta/
Почему бы не взять современную живую платформу с активным комьюнити вроде дотнета? На жабе только поддерживают легаси бэкенд из нулевых, всем похуй на твое красноглазие.
>На жабе только поддерживают легаси бэкенд из нулевых, всем похуй на твое красноглазие.
В ФААНГЕ только отсутсвующая М пишет внутренние системы на шарпе, больше никто его не юзает
lincheck проверяет что при любом* переключении потоков финальное значение памяти будет соответствовать желаемому. Он тупо проверяет многопоточные алгоритмы полагая что JVM реализация сооветствует JMM. Это никак не поможет визуализировать реальные треду.
Ну я хотел оттуда взять как минимум анализ на линелизируемость. Я пока вообще не представляю как мне это сделать. Похоже реально с нуля придется делать аст анализ. И с какими-то ограничениями, по типу только один pure наследник Runnable.
Дальше уже вот то, что у шипилева и как-то запускать их в особой среде, чтобы прям все это красивенько было.
>Я пока вообще не представляю как мне это сделать.
По моему у тебя проблемы с представлением того "что это":
- визуализировать живые треды в работающей JDK
- визуализировать все возможные варианты исполнения
- что-то ещё
> современную живую платформу с активным комьюнити
>дотнета
Выбери что-то одно. Ну или покажи, как на петушарпе композицию с наследованием совместить без перепечатывания методов.
Ну я хочу код, который мне вставили, обрисовать стрелочками, мол вот это hb/sw.
Дальше у меня уже есть небольшой класс, который может делать что-то типа импульсно тактного генератора. Так, я могу наставлять в данный мне код что-то типа break point и интерактивно управлять тредами. Пока это только концепт, в будущем я хочу как можно больше сократить метауровень ну и хоть что-то сделать в итоге...
Оф нихуя. Но вообще да, совершенно ненужная пародия на неожиданные последствия единственного названия любой операции в языках программирования вне зависимости от аргументов этой операции.
Петушарп какой-то, лучше в это дерьмо не лезть
Аллокатор в любом случае пометит этот блок памяти как свободный и может заискпользовать его для аллокации объекта похожего размера.
Дефрагментации памяти не существует.
> Аллокатор в любом случае пометит этот блок памяти как свободный и может заискпользовать его для аллокации объекта похожего размера.
А если новый объект не помещается?
> Дефрагментации памяти не существует.
В Java это как раз решается релокацией (то же самое, что дефрагментация по сути).
ОП свитчнулся в сишарп
Я немного подумал и придумал только случаи, где ты из пула выдаёшь экземпляры.
Но это же просто ёбаный конвертер чисел в строку.
Жыр
У статического метода есть имя. Классический пример
> ByteBuffer.allocate()
> ByteBuffer.allocateDirect()
По имени сразу ясно, какой буфер ты создаешь.
> new ByteBuffer(true)
Без документации не поймешь, что значит true.
Статический метод может возвращать разные классы, как например делает ByteBuffer, там разные классы для буферов в хипе и директ.
>Статический метод может возвращать разные классы, как например делает ByteBuffer, там разные классы для буферов в хипе и директ.
Ну так и кто мешает просто конструкторы разных классов вызывать?
И вообще, мы всё ещё говорим про сраный конвертер чисел в строки.
Тут все понятно по названию метода: он не просто создает новый объект, но и выбирает его класс. А вот of с нулем аргументом говорит только о том, что автор еблан.
Пока не введены.
Умоляю,разреши мне загуглить за тебя
Искаропки 8, потому что гугл позаботился о том, чтобы джава не обновлялась. Но можно поставить свою.
>45 часов в неделю
>30к в месяц
Джун-френдли, хуле
И ладно бы просто жава core был в реквесте, так им еще и спринг с SQL подавай. Может нам свое очко ещё для них вазелином отпидорить заодно ?
Джава для всех ориентаций.
Требования как на мидла, зарплата как на стажера. Сразу нахуй, лучше на завод или кладовщиком.
А на шарпе джуны начинают от 70к и там вакансии есть, в отличии от мертвой джавы :3
Ты считай учишься, тебе ещё и ментора и дают и реальные практические, ещё и приплачивать, хули ебало скрючил.
Поправка "в отличии" на "в отличие" это один из примеров граммарбесия. Оба варианта имеют смысл и не имеют ошибок.
>Ну так и кто мешает просто конструкторы разных классов вызывать?
Нафиг не надо пользователю библиотеки лезть в детали реализации. Если снаружи API одинаковый, то пусть и точка входа будет одна.
>>17747
>Тут все понятно по названию метода: он не просто создает новый объект, но и выбирает его класс. А вот of с нулем аргументом говорит только о том, что автор еблан.
Ты тут усираешься уже хрен знает сколько, но так и не заглянул внутрь of() - там вообще ничего не создается, там возвращается статический инстанс. Максимуми что тут можно доебаться, нейминг функции.
>Ну я хочу код, который мне вставили, обрисовать стрелочками, мол вот это hb/sw.
Ты понимаешь, что у тебя при однопоточном исполнении любые два куска кода связаны HB? Кто синтаксически первый, тот и HB. А если сюда добавить еще тредов, то даже в простейшем коде будет количество взаимосвязей которые не поддаются подсчёту. Девэксперты говориличи, что они не все варинаты перебирают, а только те где есть взаимодействие с общей памятью.
>Дальше у меня уже есть небольшой класс, который может делать что-то типа импульсно тактного генератора. Так, я могу наставлять в данный мне код что-то типа break point и интерактивно управлять тредами.
Это реализуется достаточно просто, достаточно в код вставить вызовы твоего контроллера который будет усыплять/будит потоки. Можно прям в байткоде шарашить.
>Пока это только концепт, в будущем я хочу как можно больше сократить метауровень ну и хоть что-то сделать в итоге...
А вот это ключевая проблема, ты не знаешь что ты хочешь сделать. У тебя нет конкретной проблемы, которую ты хочешь решить.
> что у тебя при однопоточном исполнении любые два куска кода связаны HB?
Это PO, ну или по другому within-thread as-if-serial semantics.
>то даже в простейшем коде будет количество взаимосвязей которые не поддаются подсчёту
А вот это не очень очевидно, если честно. Вот в том же видео, шипилев делает доказательство от обратного, т.е. все возможные случаи рассматривает. Так что ну в принципе там не просто конечное число взаимосвязей, а даже человек простой вполне может в этом разобраться.
>Можно прям в байткоде шарашить.
Моожно. Но тут надо подумать над тем, не будет ли таким образом задета изначальная семантика и связность. Если будет, то наверное, надо смотреть в сторону апишек для дебага. Там вроде можно прям стек треда смотреть, но там главная проблема, что похоже next step работает через сейв пойнты из-за этого кучу всего можно пропустить.
>У тебя нет конкретной проблемы, которую ты хочешь решить.
Визуализировать конкурентные процессы хочу. Мне бы хотелось чтобы хотя бы в простейшем коде я мог следить за всеми потоками сразу шаг за шагом, а не так, что хуяк и куча тредов что-то сделала под ковром. Или опираться на ненадежные способы логгирования.
-обед
>там вообще ничего не создается, там возвращается статический инстанс.
Значит метод ДОЛЖЕН называться getInstance
Мы хотим, мать его, про формочки и ВПФ говорить и причмокивая обсуждать новые фишечки 12 шарпа, которые скоро завезут, а не сраться с жавой.
Он уже заебал. Ну серьезно.
Он не уйдет пока не уронит вам прод,к сожалению мы не можем его контролировать,он стал слишком опасен
У нас и без него шизов хватает. Кыш
Нет, мы всем тредом перекатываемся в дотнет, ведь сишарп гораздо лучше чем жаба.
Это пупуня?
Если кто-то считает иначе - он еблан.
>Значит метод ДОЛЖЕН называться getInstance
getInstance() он должен называться если это в его контракте записано, что он возвращает один и тот же инстанс. А тут это просто оптимизация, но явно это не проговаривается.
А вообще ты заебал бомбить из-за не очень удачного названия.
Когда шарподебилы срали у нас тут, никто своих дебилов забирать не торопился.
Иди в шарпотред и бомби там. Мне лично похуй на нейминг, это больше говорит о тебе, как о специалисте. Вместо работы, обращаешь внимание на ебаные имена.
Вот побомби тут над именами.
Ок, с мамой решили. Теперь градл весит больше чем моя мама. Как решить проблему с ним?
>>Как решить проблему с ним?
Поставить мавен и не вспоминать больше про скриптоговно для андроида.
И тебе добрый день.
1. Юзер решил выйти
2. Токен удаляется из редиса
3. Когда вышедший юзер пытается с этим токен ещё что-то сделать, то сервис проверяет на наличие этого токена в хранилище
4. Если его нет, то динамим пользователя
Как вам моя идея? Или есть уже адекватные решения этой говнопроблемы?
Как в шарпе
Не надо
>1. Юзер решил выйти
У тебя стейтлесс, скотина. Если юзер решил выйти, он просто забывает токен и все. Этим фронт управляет.
Как этим управляет то блеать мудила? Просто удаляю токен из localStorage в браузере и все?
Да блядь нахуй,стираешь блядь и куки или где он блядь нахуй хранится. Удаляешь к хуям и юзер остаётся без токена в пизду нахуй полностью
Я ЧЕ ТЫ ТАК БАЗАРИШЬ БЛЯ ПОТИШЕ БУДЬ ЕПТА Я ТЕБЕ ПО РУССКИ НАХУЙ БЛЯ ТОЛКУЮ ТЫ БЛЯ НИХУЯ НЕ ПОНИМАЕШЬ ЕПТА БАШКОЙ СВОЕЙ НАХУЙ ДАВАЙ БЛЯ ПИЗДУЙ БОРОЗДУЙ БЛЯ ВАЛЕНОК
ТЫ БЛЯ НА ТИМЛИДА БАТОН СУКА КРОШИШЬ Я ТУТ СМОТРЯЩИЙ ЗА ПРОДОМ ЕПТА УВАЖАЙ МОИ КОМПЕТЕНЦИИ УВАЖАЙ МОИ ТОКЕНЫ УВАЖАЙ МОЮ ВЛАСТЬ НАХУЙ БЛЯ
какие же тимлиды дегенераты пиздец просто...
> Я ТУТ СМОТРЯЩИЙ ЗА ПРОДОМ ЕПТА
О, а я его роняю переодически. Приятно познакомица, няша моя.
Пользуете эту хуйню?
Какая-то хуйня, если честно
>>This document defines a "problem detail" as a way to carry machine-
>>readable details of errors in a HTTP response to avoid the need to
>>define new error response formats for HTTP APIs.
Проблема какая то надуманная. Все нужные детали указываются в резолверах. Непонятно зачем для этого васянку подключать.
Ты не до конца понимаешь проблему. Тут есть 2 аспекта:
1. То как написан код с т.з. корректности изменения общих данных. Линчек проверяет пытается, что при любом возможном и валидном с т.з. JMM сценарии переключения потоков, финальное состояние будет корректным. При этом совершенно не учитываются особенности конкретного железа и реализации JVM у Шипилёва в расказе про шенанду есть момент, когда они в фазе concurrent GC могут читать старые данные, потому что так быстрее и это соответвует JMM.
2. То как конкретный код будет работать на конкретном железе в конкретной реализации JVM. Это уже тестирует JCStress, там тупо запускается много потоков и много итераций, в надежде что будет найдено такое исполнение которое будет не корректным. И опять же у Шипилёва были примеры когда на x86 тест проходит, а на ARM падает. Потому что у x86 есть total store order, а у ARM нет.
Т.е. ты в любом случае не сможешь узнать как в конкретном исполнении работали треды. Возможно что через Intel Processor Trace можно восстановить трейс выполнения команд, но состояние кешей ядер врядли. Но на практике это и не нужно, на практике нужно чтобы у тебя при любом исполнении код работал корректно.
То про что говорит Шипилёв в https://youtu.be/C6b_dFtujKo?si=idVUSkUGUD6vTfZw&t=1441 это формальное доказание корректности. В принципе это можно автоматизировать. Но это не просто и есть вопрос в постановке гипотезы, это должен делать человек или программа.
Нахера?
Да, хуйню написал, глобал экксепшен хендлеры конечно же.
А ведь эту хуйню затащили в спринг. Вот и думайте.
как ?
Что за хуйня? Как правильно?
>Ну я поменял название CompileBall.java на другое, на это джава упала с ошибкой компиляции, ссылаясь на то, что название исходника должно быть такое же, как имя класса.
Ты, видимо, поменял название только у файла, а надо еще внутри файла само название класса поменять.
Бля, что за наименования? argPos, kv? У тебя что, длина строки в среде разработки по карточкам? Или религия мешает нормально и внятно без сокращений называть переменные? Где комменты, почему надо догадываться о сакральном смысле написанного?
>Где комменты, почему надо догадываться о сакральном смысле написанного?
Если непонятно, что делает код, без комментариев, значит код говно и его надо переписывать.
In-Out, Input-Output.
>Зацените код.
>>22374
>значит код говно и его надо переписывать.
Вперед.
Map<Object, Object> - вообще идиотизм.
Еще вроде вот так "-arg=true" не принято аргументы писать.
Ну и зацени вроде как стандартный код для этого https://github.com/apache/commons-cli/blob/master/src/main/java/org/apache/commons/cli/Parser.java#L144
--zaebis
Вот что это за хуйня? Так и задумано, что современный инструмент должен ломать проект? Эклипс за 5 лет себе такой хуйни не позволял
Жидбреинсов здесь нет и не было
linkedList()+= userInputtedLineFromCP866EncodingSupportedWindowdPseudoTerminal
> показывает только гитигнор, пом и еще какую-ту мелочь
Насколько я помню, решается нажатием ПКМ по пустому месту в окне директории и нажатием кнопки импортирования Maven.
> Так и задумано, что современный инструмент должен ломать проект?
Может быть и да, а может быть и просто дебилы напортачили какую-то хуйню, а может быть дебилы решили наоборот подтереть говно и тем самым испортили билд без идеи. Собирай консолькой ну или настрой идею так, чтобы она сама собирала с прослойкой в виде консоли.
Но ведь если они будут одинаковые, будет
>error: class CompileBall clashes with package of same name
Стандартные обозначения, если что-то непонятно - вон из профессии.
>>22348
Мне нужно было.
>>22446
>Map<Object, Object> - вообще идиотизм.
Зато могу класть именованные и позиционные аргументы в один и тот же контейнер.
>Еще вроде вот так "-arg=true" не принято аргументы писать.
Версию джавы давно проверял? А про го что-нибудь слышал?
>Ну и зацени вроде как стандартный код для этого
Сам-то читал его? Не код, а залупа.
Название файла, класса и пакета это три разных строки, которые можно менять. Файл и класс должны иметь одно и то же название, но они не должны пересекаться ни с каким из пакетов.
А как в идее сташить? И ещё вопрос я один, этими кнопками пользуюсь? Настоящие специалисты в терминале гит юзают?
Тернарник в путе,какой пиздец
Слив принят.
>А как в идее сташить?
Гугли, наверняка идея это умеет. Я - не умею, я в консоли все делаю.
>И ещё вопрос я один, этими кнопками пользуюсь? Настоящие специалисты в терминале гит юзают?
За всех не скажу. За себя скажу, что в идее я пользуюсь только диффами и поиском по истории, остальное мне тупо неинтересно.
>Зато могу класть
А еще можешь положить объекты, которую твою мапу нахуй сломают. Удобна удобна.
>Версию джавы давно проверял? А про го что-нибудь слышал?
А ты жаба что ли стандартный гну синтаксис менять? Тем более в жабе это properties. Тонкая разница, жаль что в наше время...
>Не код, а залупа.
Что лучше говна.
Да, позови меня вместо себя.
И куна тем более!
Логика у вкатунов конечно...
Ну вот дропнешь ты этот проект, найдешь другой - один хер тебе будет там все ново и непонятно. Смысл?
Дропаться из айти уж тогда сразу.
Во-во. Меня даж на собесы не пускают, хоть я и не пробовал, а они дропают сразу. Ну и люди
Ну на прошлом проекте, так не было. Я много коммитов в него влил. А тут, уже пару недель сижу дизморалюсь. Что ещё делать то? Заебывать синьеров своей тупостью? Я итак всех заебал уже. Ждать пока меня сами рп какие-нибудь выпилят?
Вот легко сказать... Это резюме нада, сопроводительное письмо, о том какие же рога и копыта уховая компашка и как я блятб к ним хочу. Еще б опыт работы неплохо бы придумать. Заебно как-то и пока нет времени для такого...
>>22706
>Я итак всех заебал уже.
Ну хуй знает, по такой логике меня тут игнорить должны давно уже. Хотяя, мб по разному заебывают люди.
Ну так тебя жиза и дальше будет ебать, если ты чуть что сразу в дизмораль уходишь. Возьми перерыв, проветрись сходи, и на свежую голову садись дальше грызть легасятину. Превозмогая, научишься чему нить.
Ну по знаниям не джун. По зп джун. По должности не джун. По навыкам понимания размытых тз и чужого кода джун. По опыту работы не джун. По навыкам выбивать офферы из собесов далеко не джун. Кто по твоему я? Как определить?
Хули ты перед этим гондоном оправдываешься? На словах они все синьоры, а как доходит до дела - тупые шлюхи-лычкодрочеры все как один.
>А еще можешь положить объекты, которую твою мапу нахуй сломают.
Ну я же не еблан сам себе в кашу гадить? Этот код никуда наружу не попадает, я все здесь контролирую.
>Тем более в жабе это properties.
Че?
>Что лучше говна.
Ок, специалист по говнам и залупам.
Нахуй ты мне это скидываешь? Ты блять джава или твоим говном будут в опеждк пользоваться? Меня просто вымораживает, что жаба не может версию через -v показать. У них этот говноподход во всем.
Тем более и тут нет равенства. Вообще : используется.
Зато вот хелп пожалуйста. Уебаны, одним словом.
>Ты не до конца понимаешь проблему.
Пасиба, несколько дней подумал над концептом.
В общем думаю перевести код программы в абстракции по JMM. Ну т.е. скажем у нас есть такая ветвящаяся структура в виде PO и вот по ней идут потоки. Далее любые записи, если они произошли в shared данных, я хотел бы обозначить стрелочками, мол это значение мы увидели потому, что SW/HB и начало скажем в потоке, которые сделал запись, а ее кончик в потоке который увидел.
Т.е. я хочу визуализировать модель JMM, она же дает гарантию as-if-serial, значит я такую визуализацию вполне могу сделать. А вот как там на самом деле байтики летают меня особо не волнуют.
>В принципе это можно автоматизировать.
Пожалуй прувер я делать не буду. Я думаю и без меня уже сделаны.
Расскажите, как раньше работала Java ME?
Это что-то типа библиотеки, которая встраивалась в прошивку телефона и позволяла запускать java-программы? Принцип примерно такой же как у десктопной java?
А если java ME на пк портировать, то игры, приложения с мобилок и эмбеддеда будут запускаться точно также на пк?
А она и сейчас работает. До сих пор обновы на ME 8 выходят.
Базовая база была. Джава на 20 лет опередила своё время. Все фичи там уже были, от которых сейчас текут соевики из смузи языков. Мы могли бы получить джаву как универсальный язык для всего, но капиталистические корпоративные войны погубили эту мечту.
>Базовая база была. Джава на 20 лет опередила своё время. Все фичи там уже были
А потом они куда-то пропали так, что теперь приходится пиздить фичи из шарпа с отставанием в 10 лет?
>пиздить фичи из шарпа
то что индусы из майкрософта срут в язык всеми возможными фичами без особой надобности не делает ему чести. Потом получаются всякие асинк/эвейты или просто ломают обратную совместимость. Я уже не говорю, что за весь сахарок могут спросить на собесе, а там талмуды документации уже как с++ стали.
И так пупуни, требую от вас пояснения про эти две зависимости. В чем разница между ними? Почему я не могу взять просто spring for kafka и сверху заебашить стримами? Что умеет кафка стримс чего не умеет остальные?
До тысячи постов
Я специально пишу такой сложный код, чтоб ты нихуя не понимал и не мог меня заменить. Я код соседнего мидла тоже нихуя не понимаю. Хотя мне это не сильно мешает пилить фичи, я если что могу рядом написать метод который делает тоже самое, но назвать по-другому.
мимо мидл
>я если что могу рядом написать метод который делает тоже самое, но назвать по-другому.
Суука, что б ты.... Без кунчика остался, поганец
Это копия, сохраненная 13 февраля 2024 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.