Друзья, готовьтесь к веселому Java-шоу! 😎 Мы - настоящие Java-волшебники, ведущие вас в удивительный мир абстракций и оптимизации! 🚀 Здесь каждая строка кода - это сияющая звезда, каждая клавиша клавиатуры - волшебная палочка, а наш код - это билет в галактику Java, где каждый день - новое приключение! 💫🌌😜
Что тут у нас:
🔮 LOOM: Потоки без швов, словно магия! 🧩 Pattern Matching: Проверки данных на стероидах. 📚 Sequenced Collections: Теперь .getLast() доступен всем!
В превью: 🌟 Structured Concurrency - контроль над асинхронностью. 🔑 Scoped Value - гибкий ThreadLocal. ✨ String Interpolation - вставка переменных просто как ABC. 🚀 Unnamed Classes и Instance Main Methods - для хелло-ворлда в одну строчку!
Java 21 - это как праздник для программистов, только без торта (но с мороженным)! 🍰🍦💻🎉
>>2905249 >только без, но Вполне себе осмысленная фраза. На праздник торта не завезли (когда обычно праздник ассоциируется с тортом), но зато завезли морожение.
Джаваны, как убедить лида, что логи для elk нужно структурировать в json и делать это именно на сервисах, а не на битсах или логстеше? Еще непонятно, как одновременно сохранять в консольку в plaintext и собирать файлбитом(логстеша в елк нету). Только добавить аппендер, который сохраняет логи в файл и этот файл прокидывать вольюмом из контейнера в хостовую машину, а оттуда собирать файлбитом?
>>2905292 Ну типа https://2ch.hk/pr/arch/2023-10-05/res/2756391.html#2814842 .... С того времени, конечно, все раз десять поменялось, но вопрос тот же. Типа дтошки на уровень сервисов, нормально ли их туда пропихивать... В идеале бы проектик какой-то. Я б глянул как белые люди архитектуры делоют. Или книжка какая мб есть, типа вот суем дто тогда-то и тогда-то. Что есть сервис определяем по тем-то критериям... Вот блять тока не надо предлагать стажировку найти. Нет у меня такой возможности.
>>2905307 Дтошки это объекты уровня контроллера,я раньше прокидывал их и в уровень сервиса,но на работе пояснили что это хуево. Сервис должен принимать параметры,которые ему необходимо,а не объекты из которых он должен их доставать. В итоге если у тебя в контроллер приходит дто с полями возраст и имя,то метод сервиса у тебя принимает возраст и имя. Вложенные дто делать не надо
>>2905317 Но если он сервис будет возвращать не дто, то возможно распространение persistence context. Причем не всегда понятна, какие там данные можно забрать, а какие нет.
Входные данные в виде дто, в основном, чтобы не было раскатистой фигни, по типу name, age, и пр. Если принимать модельный уровень, будут проблемы выше.
>>2905331 Я его тоже прокинул до уровня репов... >>2905341 Если я буду возвращать модели, а не дто, то будет этот контекст. И данные будут зависеть от него. Придется продлять транзакции. Ну это как я рассуждал...
>>2905344 У тебя метод сервиса выглядит следующим образом: { Entity entity = repo.find(); return mapper.toResponse(entity) или return dto.toResponse() }
В чем проблема? В идеале конечно для каждого слоя свой трансфер обжект,но рассмотрим эту ситуацию.
Теперь по поводу контекста. Контекст это кеш,можешь его как мапу представить или как лист. При инсерте у тебя значение кладется,при селекте забирается,при делите удаляется. Если сущность есть в контексте,она не изменялась и ты делаешь селкт,то нет смысла лезть в базу,это для этого сделано.
>>2905356 >Entity entity = repo.find(); Так, а проверки @Authorize закинуты в уровень репа в этом случае? >return dto.toResponse() Понял, значит по крайней мере return значение норм.
>>2905317 >Сервис должен принимать параметры,которые ему необходимо,а не объекты из которых он должен их доставать. В итоге если у тебя в контроллер приходит дто с полями возраст и имя,то метод сервиса у тебя принимает возраст и имя. Вложенные дто делать не надо
Вот это шизофазия. А если у меня 10 полей в дто? Делать метод с 10 параметрами? А value object-ы если? Нельзя?
>>2905378 Вот эти вот. >Понял, значит по крайней мере return значение норм. Вообще развивая этот вывод. Я обощил это до почти всех сервисов. Так почти все методы у меня возвращали дто. И возник вопрос, каким обрзом мне сделать взаимодействие сервисов. ~ https://2ch.hk/pr/res/2816575.html#2819640 Т.е. мне пихают какой-то дто, мне его надо как-то возродить в модель, что-то сделать с ней и причем еще сохранить как-то. В итоге я вообще отказался от @OneToMany аннотации и создавал дто, которые можно было восстановить в модель таким образом, чтобы repository.save(mapper.toModel(dto)); сохранил их в ту модель, которой они были. Но без persistence context. По сути, на данный момент, у меня сервис присылает дтошку, я из нее делаю модель, что-то там меняю и сохраняю в реп. Це норм практика? Или взаимодействие сервисов делают принципиально иным образом?
>>2905436 >Почему не объединил в одно? Не видел смысла. Да и сейчас не особо вижу. Так-то каждый дто мне гарантирует, что там точно есть значение и оно точно не хуевое. Хотя честно не помню уж зачем я и в аргументы запихивал дто. Наверное логика была, не ну раз возвращает, то почему и принимать не может?
>>2905449 То что объекты не хуевые гарантирует валидация,а будет она в нескольких местах или в одном разницы нет. Представил это ебанутое тело запроса в постмане и мне аж поплохело
>>2905389 >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
>>2905501 У нас на проекте помидорчик всё обмазывал такой дриснёй. Ну типа там я не знаю есть поле с длиной хуя в сантиметрах а он заворачивал её в PenisLengthCm. Смысл этого по-прежнему сокрыт от меня. Возможно я ещё не дорос
>>2905521 Не могу на практике представить себе ситуацию, когда кто-то запихивает ИНН туда, где должен быть ОКАТО, и при этом всё это работает, никто не замечает, это доходит до прода и потом все охуевают. Хуйня короче. Такты тратить на кал
>>2905379 >>2905521 Тяк, а у меня-то норм схема получаеца? >>2905407 Просто отказ от OneToMany кажется чем-то неправильным... Да и вот эти переходы из модели в дто и обратно по несколько раз странные, наверное. Я уж от безысходности шарпомухов заебываю ирл...
>>2905588 Френдлифаер, пупуньк. Вон, кстати, как я и отмечал, почти все готовы признать, что жвм тупо лучший оптимизатор. >>2905584 Бля, вы че сереьзно через стрим делали? Вон даже у шарпа что-то нормальное, но как 5мс вышло? Чет мне подсказывает, что тут вообще вырезаны циклы, аля мертвый код.
>>2905602 У петушарпа не нормальное, это дырка в апи, дырка, которая абсолютно нечитаемая. Что оно делает? Хуй знает. Чтобы понять, что оно делает, нужно читать документацию метода.
>>2905714 >Ты совсем ебанутый? Ой, не не льсти :3 >>2905712 Не очень понял, что именно зачем. А вообще может в лс? Я бы тебе стока своих идей рассказал.. Вроде частенько в тредике пересекаемся
>>2905730 >Во первых,аннотация нот емпти заменяет нот бланк Ок и? Мне твоим знанием восхититься или че? Ноннал она не заменит, потому пофег. >валидировать поле 4 раза придется. И вообще тут @Length чет нет. Пометочка, получается.
>>2905735 Ааа, да где я толщу-то? Нот бланг заменяет нотнал и проверяет, что строка не пустая. Нахера мне писать нот емпти... Еще в толстоте обвиняешь, хотя я искренен блин.
>>2905516 В PenisLengthCm можно засунуть методы isМикропенис() или isBigEnoughToFuckUrMom(Mom mom). В PenisLengthCm можно как-то по-хитрому реализовать equals/hashcode. PenisLengthCm можно отвалидировать. Если потом в проект добавятся членодевки, то ты четко будешь знать, что PenisLengthCm у кунов и PenisLengthCm у членодевок это одна и та же хуйня с ожидаемым контрактом. А не два инта, у которых хз какой там инвариант. Если бизнесь скажет, что еще роляет толщина хуя, но толщина важнее длины, то можно расширить PenisLengthCm до ПараметрыПениса и научить этот велью обжект всему вышеперечисленному. Следующий программист, который придет на проект, сразу увидит, что вот у этой вот энтити не просто какие-то два инта "толщина" и "длина", а есть выраженная кодом проперти ПараметрыПениса, на которой завязана бизнес-логика.
TDD это не ещё один культ чистого кода, а единственный способ создать годное API, а для остального кода способ очень сильно облегчить разработку, который имеет позитивные последствия не только в краткосроке, но и в долгосроке. Любой программист, не знакомый с ним должен прийти к нему сам. Сознательно отказываться от TDD это дебилизм.
>>2905769 Да хуета это все. Если бы было легко и просто абстрактно проектировать апи, не отталкиваясь от текущей реализации сервиса и бд - просто можно было перейти на api first. По факту добавление/изменение апи проектируется исходя из того, чтобы не перелопачивать ради этого всю реализацию и не делать ебовые трансформации, чтобы скрести ежа текущей реализации с ужом абстрактно спроектированного апи. К тому же классический тест-дривет с тест ферст может нести просто ебовые нагрузки, если апишка жирная и на входе и выходе json из 500 строчек.
А в джаву не завезли еще тредпулы с контекстом? Так, чтобы поток А вызывал поток Б, а тот вызывал поток С и все имели одни и те же данные в тредлокал. По завершению задачи очищались данные в тредлокале.
Мне казалось, что Хорстманн непонятный, но я открыл оригинал и понял, что это перевод непонятный, там в каждом пункте написана какая-то хрень. Эти книги переводят не программисты?
This indicates that the subclasses (which, presumably, know their ancestor well) can be trusted to use the method correctly, but other classes cannot. Это означает, что в методах подклассов, предшественники которых известны изначально, можно вызвать защищенный метод, а методы других классов - нельзя.
>>2905796 >чтобы не перелопачивать уже существующие реализации Ты только что api-last. Api-first это как раз когда апи до реализации, и перелопачивать ничего не надоб
>>2905900 Тут дело не в том, анальники переводили или нет. Просто с точки зрения самого языка перевод проебан и смысл искажен. Читай в оригинале, хули ты.
>>2905935 Ну я к тому, что большинство проектов это легаси, где нет никакого api-first. И туда докидывать новые апишки по методу api-first если и выйдет, то это дико трудозатратно будет. Ну и с классическим tdd c red-green-refactor будет получаться на самом деле еще сложнее.
>>2906008 Это если апишка милипиздрическая(входные и выходные данные небольшого объема) и существующий код не будет мешать писать такую абстрактную апишку. На этапе красный очень сложно будет из требований собрать входные и выходные параметры на несколько сотен строк. На этапе зеленый ты можешь увидеть, что очень долго адаптировать код к написанному тесту только по требованиям. Например, если бы ты посмотрел какие есть дтошки на уровне контроллера или на уровне сервисов - то ты мог бы их переиспользовать в своем новом апи и уже отталкиваясь от них выбрать формат апи. Или например моки. Ты заранее не знаешь, что тебе придется мокировать в тестах. Поэтому на зеленом этапе тесты придется все равно менять, дописывая моки. На этапе рефакторинг просто придется потратить кучу времени.
>>2905835 Без тредлокала говно получится. К примеру, это нужно чтобы трассировки писать в запросы. Тебе прилетает запрос, его ловит интерцептор твоего сервера, записывает в тредлокал сразу, далее идет бизнес-логика. Думаю, тебе понятно, что поток там тот же самый. Интерцептор на хттп-клиент при каждом исходящем запросе берёт идентификатор трассировки из тредлокала, добавляет к нем спан и прокидывает в заголовок запроса
>>2906252 А можно поменьше баззвородов? Я нихуя не понимаю, и не хочу. Конкретно у тебя shared данные между несколькими потоками, неважно, что они из одной группы, смысл тредлокала теряется. > поток А вызывал поток Б, а тот вызывал поток С и все имели одни и те же данные в тредлокал
>>2906261 Да, у меня shared данные между тредлокалами разных потоков. И хотелось тредпул иметь такой из коробки, а не писать свой. По поводу смысла тредлокала не понял, в чем проблема? InheritableThreadLocal ведь существует, который шарит данные
>>2906288 >в чем проблема? Ты хочешь сделать не тред локал, а трепуллокал. Ну как я понял >InheritableThreadLocal ведь существует Он не создает общий контекст, просто данные при создании дублирует. И вообще предполагается, что там иммутабельные будут, сколько ж гонок будет, если туда мутабельное пихать... >иметь такой из коробки Хуй пососи. Тебе это говно нужно - ты и пиши. Или вот это жди https://openjdk.org/jeps/429
>>2906687 >Лонги с доаблами разве что на 32 битной машине считать... Насколько я помню, там всё работает, jvm корректно все 64-битные операции на 32-битных машинах выполняет, просто медленно очень.
>>2906594 >>2906594 В продуктовых задачах, как правило, никакой сложной многопоточки и оберток писать не приходится. Так что не придумывайте такие не релевантные кейсы
Подход "отбросить 32-битные машины" на большем сроке расширяется до "сразу отбрасывать старые процессоры, как только выходят новые". Что будет, если появятся 128 бит? Заставлять всех выбрасывать свои 64-битные процессоры в мусорку? Так это создаст прецедент поломки обратной совместимости и цикл обратной связи, когда два динозавра будут сидеть на старых процессорах, но ради них будут пыжиться авторы библиотек, не пользуясь фичами новых джав, и получим java 8 2.0 в 2028 году, и потому динозавры не будут видеть мотивации мигрировать куда-то.
То, что сейчас не лучше, это буквально "заставлять тех, кто ни в жизнь 32 бита не потрогает лепить волатайл везде, где требуют 32 бита и самое главное даже на 64 битах от этого ловить понижение перформанса там, где значения из воздуха неприемлимы, но на гонки в целом похуй".
Гораздо правильно при появлении новых процессоров добавлять новые типы беспрепятственно, но загружать на этих машинах все 64-битные типы в режиме обратной совместимости. И это не сложно, с тем же asm такое делается в 10 строчек.
Как настроить HTTP/HTTPS соединение через прокси (тор)? Нагуглил решения, которые не работают, потому что нет метода createProxy с такой сигнатурой (Socket, String, String, Boolean).
>>2907238 > Подход "отбросить 32-битные машины" на большем сроке расширяется до "сразу отбрасывать старые процессоры, как только выходят новые".
Никто не говорил "сразу", все делается через продолжительное время. Смотри, вот последние же JDK только на 64-битные системы уже можно поставить, билды под 32-битные больше не делают, может кроме разве что коммерческой поддержки индивидуально.
>>2907287 >То, что сейчас не лучше, это буквально "заставлять тех, кто ни в жизнь 32 бита не потрогает лепить волатайл везде, где требуют 32 бита и самое главное даже на 64 битах от этого ловить понижение перформанса там, где значения из воздуха неприемлимы, но на гонки в целом похуй".
>>2907238 Ну вон шипилев говорит, что в принципе с некоторым падением перфоманса на армах можно и для этих двух динозавров вм написать. https://youtu.be/noDnSV7NCtw?t=7m24s Это 9 лет назад, хз какая сейчас ситуация, конечно.
>>2910341 Цель какая? Программирование ради самого программирования? Должна быть какая-то цель, например улучшить качества продукта, скорость например. А тут ты просто хочешь переписать, чтобы просто проект был на другом языке. Это не имеет никакого смысла.
>>2910341 Если язык изучаешь то лучше с нуля писать, а то получится что ты взял проект на джанге, переименовал классы и подогнал под джаву, а структура и бизнес логика особо не изменились.
>>2910605 всем похуй на петы, их смотрят довольно редко джун все равно напишет говно, мидлу их писать некогда, сенька напишет переусложненную поебень
>>2911129 Когда архитекторы языка думают о том, что действительно требуется конечным пользователям и разработчикам, вместо того, чтобы напихивать кор ненужными пользовательскими либами - это очень даже заебись.
>>2911575 Ну конкретно с апи обжекта они конкректно так проебались. Финализаторы, мьютексы и еще куча поебение, что теперь исправляется разного рода проектами.
>>2910341 Ну петы и гитхабы уже давно никто не смотрит. Если только для себя. Но айти сдохло и вката в принципе больше нет. Поэтому рекомендовал бы заняться чем-то реальным, а не за кудахтером просиживать, как мама в детстве говорила.
>>2911129 У нас есть божественный мавен, с которым любой, наиболее понравившийся из сотен json сериализаторов может быть подключен за минуту. Нам не приходится жрать то, что скормили с лопаты разработчики языка.
>>2911683 Нет, ты реально долбоеб? > 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
>>2910341 Нахуй спринг? Перепиши на голую джаву, точечно включая либы с теми фичами, что сожрал и запомоил спринг (например, вместо Spring Data можно взять ORMLite или Hibernate). Вот тогда это будет полезно.
>>2911704 Предвещая вскукареки про то, что спринг дата работает поверх хибернейта, который я предложил взамен поправлю: "можно взять ORMLite или голый Hibernate".
>>2911708 Ты путаешь ORM и средство отправки запросов к базе данных. Если ты спрашиваешь, почему я отбрасываю абстракцию спринга, но не иду дальше и не отказываюсь от ORM, то потому что я отбросил абстракцию спринга не по принципу "нахуй абстракции, даёшь ассемблер", а потому что спринг дата вообще нихуя полезного не делает, просто создаёт лишний интерфейс, который дублирует методы того же Dao из ORMLite и огромную нагрузку в рантайме на машинную реализацию его в том же рантайме.
>>2911714 Может перестанешь серить под себя? Тут нет доки. Только спека. Все это к этому >>2911577 Каждый объект может иметь мьютекс, потому куча проблем возникает, оптимизатор там учитывать должен, еще из-за этого каждый объект должен иметь возможность идентификации, а значит внутри такой огроменный блоб. Вон виртуальные треды intisic lock не особо любят, наверное апи просто такое клевое, что зачем менять.
Сап джавовый! Пришел к вам идеей уровня /b/, а если конкретно то хочу сделать свою либу для работы с БД. То есть, для пул соединения возьму hicari cp, для работы с бд возьму голый jdbc, и приправлю все это hibernate для сущностей. Собственно в библиотеке будут мои костыльные методы для ddl, dml и т.д. В чем я не прав?
>>2911721 >Тут нет доки. Только спека. Да пожалуйста, хоть баелдунга или отрывок из поваренной книги по варкрафту от близзарда засунь, мало что поменяется.
>потому куча проблем возникает Вот именно это и требовалось от тебя, когда твоё понимание того, что ты несёшь было поставлено под сомнение. А до этого ты на протяжении 3 постов рвонькал и чатгптил.
>>2911724 Так в смысле в чем, голый jdbc же возвращает только resultSet не? Вот моя либа должна сама преобразовать в нужный мне объект. А ну ещё и sql запросы хочу через джава код делать к примеру вот так: query.select(здесь пишешь поля).from(пишешь откуда).execute(во что преобразовать резултсет)
>>2911742 На такую хуйню сил точно не хватит. Я как-то полез смотреть исходники постгресового драйвера, я бля не знаю какими сумрачными гениями должны быть разрабы что такую работу осилить. Так что у меня от таких амбиций только жопа лопнет
>>2911748 Небольшая главная тайна всех мегапроектов: все они переусложнены в сотню раз и буквально любой проект в мире программирования может реализовать один человек и за вразумительное время.
>>2911844 Если писать одноразовый неподдерживаемый код то в самом деле сложного ничего нет. А когда начинаешь задумываться как эту хуету расширять, автоматически вырастают еще пару слоев абстракции
>>2912008 >Если писать одноразовый неподдерживаемый код то в самом деле сложного ничего нет. Ага. А несколько человек типа сразу решают эту проблему автоматом. Это же не так что у тебя траты на проектирование улетают по экспоненте с количеством долбоебов в команде. А еще каждый по разному пишет.
>>2912558 Ну поэтому все продукты для импортозамещения и пишутся на дотнете. Я листал реестр и там полно .NET софта. А джаву в рф вообще перестали использовать, ну кроме парочки банков.
>>2912622 Ну знаешь,тут парочка банков,там парочка сотовых операторов,сям парочка предприятий, ещё вон там парочка парочек из финтеха,там же парочка стартапов,около них парочка соц сетей и месседжеров,где то рядом еще парочка парочек сервисов и в уголке валяются крупные магазы типо днса. В итоге получается что приходя в 90% компаний у них будут вакансии на джаве
>>2911721 > еще из-за этого каждый объект должен иметь возможность идентификации Идентификация объектов идет по адресу в памяти по умолчанию, какую еще возможность идентификации он должен иметь?
> а значит внутри такой огроменный блоб Внутри чего? Там объект 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.
>>2912883 >какую еще возможность идентификации он должен иметь? Пик. Да и ссылка меняется постоянно. >по умолчанию берет Какому умолчанию блять? Это специфицировано. Может и 64 хуйнуть. >С ReentrantLock все работает нормально Так это explicit lock.
>>2912928 >Это специфицировано Не. Еще дополню, что каждый объект внутри хедера может содержать марк ворды, а там лока сидит с хэшем. И прочая поебень.
>>2912750 Ну что тут сказать. Легаси тоже нужно поддерживать. Любой лид, который в 2024 году выбрал джаву вместо дотнета должен быть ПУБЛИЧНО признан профнепригодным необучаемым долбоебом и отправлен на завод. Явно человек не следил за рынком в последние 10 лет, он мертв как профессионал и несет угрозу для бизнеса и инженеров.
>>2913049 Хехе братик,никто не будет писать на дешёвой копии вместо оригинала,судьба шарпистов быть фуллстеками за зарплату джава джуна,тут уж рыночек порешал,ничего не поделаешь
>>2912844 Вот бы ещё такую табличку на 21 жабе с новыми GC. Очень хотелось бы увидеть, а правда ли новые коллекторы так мало потребляют от общего перформанса.
>>2912558 Оракл еще более пидорская компания, чем микрософт. Вместо оракла можно выбрать еще из десятка других реализаций. А что там кроме микрософта в дотнете есть?
>>2912622 >>продукты для импортозамещения и пишутся на дотнете А потом микрософт запретит использовать дотнет в РФи придется все спешно переписывать на джаву, которая производится в том числе и в РФ
>>2913167 >А что там кроме микрософта в дотнете есть? Зачем? Ну это жабе приходится извиваться и выпускать 100500 ждк с разнообразием багов в каждой. А у шарпа это официальный опенсорс поставщик, зачем клоны, когда сам владелец пилит все, просто бесплатно.
>>2913167 >А потом микрософт запретит использовать дотнет Или метеорит упадет, или инопланетяне прилетят?
15 лет жабья секта твердила, что вот вот вас посадят на кукан и будут доить патентами и лицензиями, но в итоге за 20 лет вышло ровно наоборот. Теперь мы имеем зоопарк ждк и одна официальная только закрытая и платная.
Я так понимаю шарпобляди пришли накидывать уже сто раз обсуждённое говно про сборки на вентилятор после того, как с проглотом отсосали по теме асинк/авейта в собственном треде?
>>2913353 Стартап тайм и так неплохой. На крайняк, если эти миллисекунды запуска влияют не только на ожидание запуска тестов и единичных запусков приложений конечными пользователями, можно переиспользовать одну и ту же jvm.
Медленно запускается не джава, а прикладное говно типо спринга.
>>2913215 >>Или метеорит упадет, или инопланетяне прилетят? Или Россия с Украиной войну начнет.
>>но в итоге за 20 лет вышло ровно наоборот. микрософт пыталась так сделать, но обосралась, пришлось в опенсорс выпускать, чтоб шарп совсем не сдох
>>Теперь мы имеем зоопарк ждк и одна официальная Офицальная это openJDK? Она бесплатная официально и останется такой по условию покупки сан микросистемс. А OracleJDK - васянка от оракл на уровне либерики или амозоновской версии. Можешь взять спеку и свою написать.
>>Да, а еще удалит с компов >>это не Оракл. А что оракл уже удалил все оркаклДБ с компов?
>>удалит все клоны реп из сорсами дотнета с компо Просто перестанет обновлять бесплатную версию. Щас она так не сделает только потому что все тут же перейдут на джаву. Сначала нужно захватить монополию, а потом поднимать цены. Но с монополией обосрамс вышел.
>>2913378 Лол, пчел пытается доказать, что выход в опенсорс это падение, а проприетарная стрижка овец в 2019году, это развивающийся путь успешных джентльменов??
>Офицальная это openJDK? monoJdk это любая васянская интерпретация, надо же было как-то спасать свой кобол-код, который уже не переписать, вот и высрали кто мог.
>>2913399 >monoJdk это любая васянская интерпретация, надо же было как-то спасать свой кобол-код, который уже не переписать, вот и высрали кто мог. Ты шарп или джаву засираешь? Не могу понять.
>>2913399 >>проприетарная стрижка овец в 2019году, это развивающийся путь успешных джентльменов?? Амазон с облаками так и делает, например. Подсаживаешься на авс, а потом оказывается что пересесть на другой хуй уже дороже чем продолжать платить.
Микрософт проебал вспышку, чтоб стричь бабло на своей джаве, пришлось с лицом лягухи выкладывать в опенсорс.
>>2913408 >>уверен, у всех стоит оракловая jvm, многие даже не знали о лицензии Ровно наоборот. Большинство и не в курсе что есть оракловая и пользуются опенждк или либерикой.
>>2913215 >Теперь мы имеем зоопарк ждк Java круче всего что есть, и превосходит остальные языки. Можно код переиспользовать- фантастически, ни в одном языке такого нет. Написанные апплеты 20лет назад- легко запускаются в любом jvm, были бы .class файлы. Идеальная система разделения классов один файл- один класс. Интерфейсы- идея которая опередила все яп на десятки лет, и не раскрыта ещё до конца. Остальные языки- это чехарда версий компиляторов, корявые-дырявые бинари, пердолинг и прыжки по граблям, и в сотни раз больше человеко- часов на разработку.
>>2913167 >придется все спешно переписывать на джаву давно пора, без всяких шуток, всё писать только на java. Байткод он и есть байткод, можно на любом чипе микрухе системе запустить. На любое новое железо- достаточно лишь небольшой системы, чтобы jvm запускалась, остальное всё java. Так можно добиться непревзойдённой переносимости софта. И смехотворные dll, exe elf и прочее устаревшее бинарное тряхомудие- благополучно исчезнут, как историческое недоразумение.
>апплеты 20лет назад >Идеальная система разделения классов один файл- один класс >Интерфейсы Иновации!!! А мне говорили джава не развивается! Просто на острие индустрии.
>>2913486 >Мне нравится спринг. Спринг говно. Потому что мейнстримовый говнокомбайн напичканный доверху магическими абстрактными фабриками билдеров и тд. Пытается казаться модным-молодежным, но если капнуть глубже то вываливаются древние гнилые потроха, когда это говно еще бины в XML конфижило.
>>2913473 У меня тетка на коболе хуярила при живом Брежниве. Точнее на его версии переведенной ранним промтом и запущенный на спизженной IBM 360.
А ну и да. Их шаблонизатор thymyleaf - кончелыжное говнище. Чтобы блять просто вкинуть текст из переменной в текст, не вкидывая его в говнотеги, нужно обносить аж двумя квадратными скобками. Null может обрабатывать безопасно через ?. но только в POJO. Если это мапа и там нет ключа, то ты получишь экспепшн в еблет. Только Apache Freemarker - только хардкор! В нем проще: ${foo.bar.govno!'empty'} никогда и нигде не упадет. Даже если null будет на любом из трех уровней. Даже в мапе.
>>2913492 Минусы в том что части комбайна очень быстро протухают и вываливаются вместе с прямой кишкой разрабов. Нужно очень осторожно подходить к тому какие компоненты спринга использовать. Чекани Spring Social, ACL и прочие. Они давно протухли и выкинуты на мороз.
>>2913498 1. Шаблонизаторы в принципе не нужны. И фримаркер нормально интегрируется со спрингом. 2. Про social слышу впервые. А если acl это spring security acl, то что с ним не так? Вполне живой, практически стандарт.
>>2905153 (OP) >🔮 LOOM: Потоки без швов, словно магия! >🧩 Pattern Matching: Проверки данных на стероидах. >📚 Sequenced Collections: Теперь .getLast() доступен всем! > >В превью: >🌟 Structured Concurrency - контроль над асинхронностью. >🔑 Scoped Value - гибкий ThreadLocal. >✨ String Interpolation - вставка переменных просто как ABC. >🚀 Unnamed Classes и Instance Main Methods - для хелло-ворлда в одну строчку!
Опять эмодзидаун засирает мою любимую тоску своими высерами. Пожалуйста, больше никогда не стартуй треды о жаве. Мне искренне жаль всех, кто здесь обсуждает этот мёртвый язык и искренне радуется фичам типа интерполяции строк, которые в других языках присутствовали уже по 30-40 лет, пиздец.
>>2913510 Мне совершенно не жаль дауна, который думает, что у интерполяции строк из джавы есть аналоги по качеству и проработанности, хотя стоило бы его пожалеть.
>>2913510 java лучший язык, по соотношению работающий код/количество человеко-лет на кодинг. Именно поэтому, корпорации напридумывали сотни говённых поделок, типа шарпа, питона, и прочих недоразумений. То что платформе java делается банально- у них требует чрезмерных ухищрений, кучу разработчиков и на порядки дольше. Универсальный переносимый байткод- это идея опредившая время, выгодная для всех позиций айти, от железа до софта и систем. Только подумать- однажды написанное, легко работает на всех системах, ез кододрочинга и компиляций, без чехарды версий и обновлений.
>>2911129 на java может работать вообще всё, от драйверов- до прошивок сотовых, причём кода написано на все случаи. Даже windows целиком была перенесена на java, и другие системы. Только лишь пидарастические корпоации, не афишируют такой ценный исторический капитал. x86 платформа и все составляющие типа корп софта- изначально сделано хуёво, чтобы софт покупали. Если писать системы на java- весь софт станет банальным, уязвимости как класс- исчезнут, корпорации разоряться, а айти выйдет на новый уровень- надёжного долгоживущего софта.
>>2913524 долбоёб, сраный даун пошутил про сериализатор. Их сотни блядь написано, всех сортов. Вы просто дауны ёбаные, исходники гуглить не умеете. Пошутить- значит знать тонкости java, а не пидорасится насчёт http. Ну и впрочем, пшёл нахуй долбоёб.
>>2913498 Так не пользуйся комбайном под названием бут. Я вообще считаю что использование бута - признак дегенерата, который не годен к работе. Явно используй лишь необходимые компоненты спринга с явной настройкой.
У нас этих жсон сериализаторов - тыща, на любой вкус и потребности. А изкоробочкодауны навеки прибиты к одному. Завтра мода с джсонов уйдет, и у них в их из-коробочке +1 депрекатнутая легасятная залупа, которую хуй выпилишь из-за миллиона скаплившихся на нее хомяков.
>>2913541 Так о чем и речь, чел. Я ж не говорил что в джаве изкоробочкидаунов нет. Были, и дохрена.
Насхорн еще тот же можно вспомнить, который в отличие от awt просуществовал меньше пяти лет. Можно еще порофлить с того факта, что DOM/SAX парсеры XMLя, если мне память не изменяет, тоже часть рантайма. Хорошо что хоть щас одумались, попилили весь бардак на модули, и шлют изкоробочкодаунов нахер.
>>2913531 >Шта? то что пердолят в ноде и питоне, шарпе- в сто раз было сделано на java лучше ещё в 2000х годах. Сделать весь софт на java- и проблема обновлений и переносимости исчезнет как таковая, достаточно поставить jvm и софт будет одинаково работать на любой системе, от старья до самых современных. Именно по этой причине, были внедрены говно-языки и методологии в разработку софта. Любую ос можно упростить в сотни раз, вместо корявых, дырявых бинарей dll или so просто используя классы java.
>>2913531 >но и на ней дырок наделать можно только в путь. нет, сама архитектура исключительно безопасная. Поэтому в старых телефонах в j2me в принципе не было вообще уязвимостей, они физически невозможны. Так как каждая приложуха в отдельной jvm песочнице выполнялась. то есть обычные телефоны из 2000х годов на j2me- по безопасности на порядок лучше, чем современные смартфоны, со всем многоумным айти пердолингом в жопу.
>>2913533 О мастер, а покажите мне как без бута явно использовать только необходимые мне компоненты спринга как актуатор, логи, yaml, @SpringBootTest, профили, стартеры, messages.properties и так далее и так далее.
И как не повеситься, по новой настраивая увлекательную и неповторимую инфраструктуру в каждом новом микросервисе.
> И как не повеситься, по новой настраивая увлекательную и неповторимую инфраструктуру в каждом новом микросервисе. Так и скажи что ты крудошлепомакака с микромозгом.
>>2913498 >Минусы в том что части комбайна очень быстро протухают и вываливаются вместе с прямой кишкой разрабов. Нужно очень осторожно подходить к тому какие компоненты спринга использовать. Чекани Spring Social, ACL и прочие. Они давно протухли и выкинуты на мороз. Таки да. Spring Cloud Sleuth самый последний пример. Теперь типа надо использовать Micrometer, а там старых абстракций нет нихуя.
>>2913649 андроид ос десятки лет пердолят целой корпорацией, и до сих пор их смехотворные потуги и на 1% не имеют защищённой безопасности, как j2me на одном по сути контроллере, которые были в массовых телефонах в 2000х годах Не нужны сложные ос, вообще. нужна просто vm. А со стороны производителей железа и гаджетов- точно такая же vm, только со стороны железа. Тогда написание драйверов, ос и чего угодно, становится просто банальной вещью, прикладной софт не требует вообще ни компиляторов ни сложных проверок, а байткод- можно набрать хоть с листочка на клавиатуре, безопасность систем выйдет на недостижимый, никогда ранее уровень.
>>2914106 >данными друг друга и устройства. это не так, современные смартфоны- дырявое решето, потому что везде используются дырявые уязвимые прошивки бинарные, на каждом чипе предзагрузчике и прочем барахле, на каждой сраной флеши- внутри мутный никому не понятный бинарь работает. Чем проще- тем надёжней, вместо простого и надёжного- делают сложное и ненадёжное. Для запланированного устаревания. Используя java, код вообще не устаревает, легко переносится на любую систему, где можно запустить jvm.
Алсо >одноразовый неподдерживаемый код то в самом деле сложного ничего нет. не всегда работает. Часто даже без расчёта на дальнейшее расширение легче сделать с абстракцией, за счёт привычки нейронных связей, отвечающих за код, писать абстрактный код, и за счёт некого совпадения множеств "сухого (недублирующего себя) кода" и "лёгконаписуемого кода".
>>2912008 DDD не знаете что такое? >>2914463 >и за счёт некого совпадения множеств "сухого (недублирующего себя) кода" и "лёгконаписуемого кода". Вы психически отсталый? Такой тупости ни один программист- не напишет. Откуда вас столько конченных долбоёбов вылезло?
>>2914532 >>DDD не знаете что такое? Слышал о таком, видел какие то схемы со стрелками, ни разу не видел объяснения как это должно работать ИРЛ, особенно когда аналитики ставят задачи вроде "если дернуть Х должно вернуться У", а где там домен, юзкейсы и прочее сам ебись.
>>2914532 > Вы психически отсталый? Такой тупости ни один программист- не напишет. Откуда вас столько конченных долбоёбов вылезло? По делу что-нибудь высрешь?
Помню как год назад евангелировал в этом треде за DDD. Я даже помню, что я прекрасно понимал суть DDD с технической точки зрения. А теперь не могу вспомнить ни идеи из этого DDD.
>>2914708 Джаваны, вы чего заскучали? Срочно расскажите про свой крутой современный язык и новые модные фичи. Почему я должен хотеть программировать на классном языке Java? ака вонючая протухшая жаба
>>2914695 Оно даже на примерах выглядит как говно, какое то ООП разводят с логикой внутри дто, а каждый метод сервиса надо выносить в отдельный класс. Представляю какая там помойка из файлов образуется в коде. Двже не могут схемц нарисовать нормальную как это выглядит. Если нахуя нужно ТДД я вроде понял после Хорикова, то с ДДД такого пока не случилось.
>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.
Спасибо. А если я хочу учить новую крутую жабу, о которой мне рассказали?
>>2914695 С идеями DDD так или иначе знакомы все, кто писал что-то сложнее пет клиники. Все явным или неявным образом понимают что такое баундед контекст, ubiquitous language, агрегаты, сервисы, фабрики, репозитории, домен, слои архитектуры и т.д.
>>2914881 >ООП разводят с логикой внутри дто А ты точно не путаешь dto и value objects? Это семантически разные вещи.
>каждый метод сервиса надо выносить в отдельный класс. Представляю какая там помойка из файлов образуется в коде. Wut.
>>2905153 (OP) сап джавагоспода, я тот шиз который хотел сделать эту шляпу >>2911738 . Уважаемые люди подсказали что уже есть такая вот фигня >>2911739 jooq. Посмотрев как в jooq строятся запросы, я прям загорелся им, по сравнению с spring data jpa и hibernate, это манна небесная, но генерация энтити что-то нихуя не зашло. Хочу объединить эти две либы, для сущностей взять hibernate а для запросов использовать jooq, и вот собсна вопрос, насколько адекватен такой подход и занимаются ли люди такой шнягой?
>>2915291 А ты точно хорошо хибер понимаешь? Там как бы несколько кэшей, есть евент система и проста взять и вкорячить туды жук... Может используя Work API вполне и можно, но чет это на хуйню если честно похоже. Поскольку уже есть hql.
>>2915298 >но чет это на хуйню если честно похоже А от hql ещё большей гавной воняет анончик, ну я не поверю что на реальных проектах юзают hql, бля это реально выглядит мягко говоря не айс..
>>2915304 >ну я не поверю что на реальных проектах юзают hql Можно, конечно, его через критерия апи генерить, но так или иначе используют и куда активнее чем жук.
>>2915298 За все время что работаю жявапидором (5+ лет) поработал на 6 проектах. И только на одном чуханском микросервисном говне была спринг дата, и даже в ней не было хуйбернейта. Кто вообще этот обоссаный жпа юзает в спринге?
Анонисы оцените код. Насколько он будет эффективен в плане целостности данных, производительности и расширяемости если я доработаю следующие вещи:
1. Вместо sql строки хочу сделать некий билдер с которым буду собирать запрос. 2. Маппер хочу доработать так, чтобы ему на вход передавать ResultSet и класс к которому нужно смаппить, без такой шляпы
>>2915624 Ты как я решил позаебывать всех в этом тредике? Если ты будешь делать что-то как на пике, то это будет рефлексия. Сам решай, насколько это грязь. В жуке это обошли кодогенерацией. >>2915651 Пупуни злые какие~
>>2915704 У меня на проекте жук, в соседних командах тоже. Че там в вакухах я не знаю, их херки наверное пишут или копипастят из старых "вакансия на джава 2010"
>>2916253 Хекс Формат оф... что блядь? Оф что? Чего? СУКА ЧЕГО БЛЯДЬ? Оф делимитер стринг делимитер... БЛЯДЬ ТАК ВОТ ЧЕГО ОФ! А ПОЧЕМУ СУКА НЕ ОФ А ОФ ДЕЛИМИТЕР???
Знаю, что вы меня очень любите, потому буду держать в курсе по поводу новой идеи. Именно визуализация тредов. Я короче хочу взять подобный анализ линеаризуемости отсюда https://github.com/JetBrains/lincheck плюс совместить его с анализом кода на po/sw/hb отсюда https://youtu.be/C6b_dFtujKo?si=idVUSkUGUD6vTfZw&t=1441 Пока думаю, каким образом этот анализ вообще проводить. Аст генерить похоже и вот что-то на его основе делать. Плюс еще надо подумать какого вида будет визуализация, хотелось бы прям наглядное изображение жабовской конкурентности. В идеале б прям плагин для идешек, нооо эт вряд ли. Еще в видосе шипилев в конце сказал, что мол студентота вполне осилит прувер, знаете похожие проекты? Не занимаюсь ли я велосипедостроением... Я вот в туториалах ток чет подобное нашев https://sourceforge.net/projects/javaconcurrenta/
>>2916410 Почему бы не взять современную живую платформу с активным комьюнити вроде дотнета? На жабе только поддерживают легаси бэкенд из нулевых, всем похуй на твое красноглазие.
>>2916465 >На жабе только поддерживают легаси бэкенд из нулевых, всем похуй на твое красноглазие. В ФААНГЕ только отсутсвующая М пишет внутренние системы на шарпе, больше никто его не юзает
>>2916410 lincheck проверяет что при любом* переключении потоков финальное значение памяти будет соответствовать желаемому. Он тупо проверяет многопоточные алгоритмы полагая что JVM реализация сооветствует JMM. Это никак не поможет визуализировать реальные треду.
>>2916616 Ну я хотел оттуда взять как минимум анализ на линелизируемость. Я пока вообще не представляю как мне это сделать. Похоже реально с нуля придется делать аст анализ. И с какими-то ограничениями, по типу только один pure наследник Runnable. Дальше уже вот то, что у шипилева и как-то запускать их в особой среде, чтобы прям все это красивенько было.
>>2916621 >Я пока вообще не представляю как мне это сделать. По моему у тебя проблемы с представлением того "что это": - визуализировать живые треды в работающей JDK - визуализировать все возможные варианты исполнения - что-то ещё
>>2916465 > современную живую платформу с активным комьюнити >дотнета Выбери что-то одно. Ну или покажи, как на петушарпе композицию с наследованием совместить без перепечатывания методов.
>>2916643 Ну я хочу код, который мне вставили, обрисовать стрелочками, мол вот это hb/sw. Дальше у меня уже есть небольшой класс, который может делать что-то типа импульсно тактного генератора. Так, я могу наставлять в данный мне код что-то типа break point и интерактивно управлять тредами. Пока это только концепт, в будущем я хочу как можно больше сократить метауровень ну и хоть что-то сделать в итоге...
>>2916362 Оф нихуя. Но вообще да, совершенно ненужная пародия на неожиданные последствия единственного названия любой операции в языках программирования вне зависимости от аргументов этой операции.
>>2916808 Аллокатор в любом случае пометит этот блок памяти как свободный и может заискпользовать его для аллокации объекта похожего размера. Дефрагментации памяти не существует.
>>2916857 > Аллокатор в любом случае пометит этот блок памяти как свободный и может заискпользовать его для аллокации объекта похожего размера. А если новый объект не помещается?
> Дефрагментации памяти не существует. В Java это как раз решается релокацией (то же самое, что дефрагментация по сути).
>>2917515 У статического метода есть имя. Классический пример > ByteBuffer.allocate() > ByteBuffer.allocateDirect() По имени сразу ясно, какой буфер ты создаешь. > new ByteBuffer(true) Без документации не поймешь, что значит true.
Статический метод может возвращать разные классы, как например делает ByteBuffer, там разные классы для буферов в хипе и директ.
>>2917541 >Статический метод может возвращать разные классы, как например делает ByteBuffer, там разные классы для буферов в хипе и директ. Ну так и кто мешает просто конструкторы разных классов вызывать?
И вообще, мы всё ещё говорим про сраный конвертер чисел в строки.
>>2917541 Тут все понятно по названию метода: он не просто создает новый объект, но и выбирает его класс. А вот of с нулем аргументом говорит только о том, что автор еблан.
>>2917570 >Ну так и кто мешает просто конструкторы разных классов вызывать? Нафиг не надо пользователю библиотеки лезть в детали реализации. Если снаружи API одинаковый, то пусть и точка входа будет одна.
>>2917747 >Тут все понятно по названию метода: он не просто создает новый объект, но и выбирает его класс. А вот of с нулем аргументом говорит только о том, что автор еблан. Ты тут усираешься уже хрен знает сколько, но так и не заглянул внутрь of() - там вообще ничего не создается, там возвращается статический инстанс. Максимуми что тут можно доебаться, нейминг функции.
>>2916682 >Ну я хочу код, который мне вставили, обрисовать стрелочками, мол вот это hb/sw. Ты понимаешь, что у тебя при однопоточном исполнении любые два куска кода связаны HB? Кто синтаксически первый, тот и HB. А если сюда добавить еще тредов, то даже в простейшем коде будет количество взаимосвязей которые не поддаются подсчёту. Девэксперты говориличи, что они не все варинаты перебирают, а только те где есть взаимодействие с общей памятью.
>Дальше у меня уже есть небольшой класс, который может делать что-то типа импульсно тактного генератора. Так, я могу наставлять в данный мне код что-то типа break point и интерактивно управлять тредами. Это реализуется достаточно просто, достаточно в код вставить вызовы твоего контроллера который будет усыплять/будит потоки. Можно прям в байткоде шарашить.
>Пока это только концепт, в будущем я хочу как можно больше сократить метауровень ну и хоть что-то сделать в итоге... А вот это ключевая проблема, ты не знаешь что ты хочешь сделать. У тебя нет конкретной проблемы, которую ты хочешь решить.
>>2918823 > что у тебя при однопоточном исполнении любые два куска кода связаны HB? Это PO, ну или по другому within-thread as-if-serial semantics. >то даже в простейшем коде будет количество взаимосвязей которые не поддаются подсчёту А вот это не очень очевидно, если честно. Вот в том же видео, шипилев делает доказательство от обратного, т.е. все возможные случаи рассматривает. Так что ну в принципе там не просто конечное число взаимосвязей, а даже человек простой вполне может в этом разобраться. >Можно прям в байткоде шарашить. Моожно. Но тут надо подумать над тем, не будет ли таким образом задета изначальная семантика и связность. Если будет, то наверное, надо смотреть в сторону апишек для дебага. Там вроде можно прям стек треда смотреть, но там главная проблема, что похоже next step работает через сейв пойнты из-за этого кучу всего можно пропустить. >У тебя нет конкретной проблемы, которую ты хочешь решить. Визуализировать конкурентные процессы хочу. Мне бы хотелось чтобы хотя бы в простейшем коде я мог следить за всеми потоками сразу шаг за шагом, а не так, что хуяк и куча тредов что-то сделала под ковром. Или опираться на ненадежные способы логгирования.
Жаваны, заберите своего шиза из нашего няшного шарпо-тредика. Мы хотим, мать его, про формочки и ВПФ говорить и причмокивая обсуждать новые фишечки 12 шарпа, которые скоро завезут, а не сраться с жавой. Он уже заебал. Ну серьезно.
>>2919105 >Значит метод ДОЛЖЕН называться getInstance getInstance() он должен называться если это в его контракте записано, что он возвращает один и тот же инстанс. А тут это просто оптимизация, но явно это не проговаривается.
А вообще ты заебал бомбить из-за не очень удачного названия.
>>2919343 Иди в шарпотред и бомби там. Мне лично похуй на нейминг, это больше говорит о тебе, как о специалисте. Вместо работы, обращаешь внимание на ебаные имена. Вот побомби тут над именами.
Кароч, пришел к вам такой вот идеальной идеей, читаем и впитываем. Я начал изучать spring security + jwt токен, и как я понял, jwt токен нельзя отозвать, если его создали он будет существовать до той поры пока его время жизни не истечет, я посчитал что это залупа и придумал гениальную идею. Берем редис и при создании токена попутно и в редис пишем токен с айдишником юзера и логика будет следующей. 1. Юзер решил выйти 2. Токен удаляется из редиса 3. Когда вышедший юзер пытается с этим токен ещё что-то сделать, то сервис проверяет на наличие этого токена в хранилище 4. Если его нет, то динамим пользователя
Как вам моя идея? Или есть уже адекватные решения этой говнопроблемы?
>>2920366 Я ЧЕ ТЫ ТАК БАЗАРИШЬ БЛЯ ПОТИШЕ БУДЬ ЕПТА Я ТЕБЕ ПО РУССКИ НАХУЙ БЛЯ ТОЛКУЮ ТЫ БЛЯ НИХУЯ НЕ ПОНИМАЕШЬ ЕПТА БАШКОЙ СВОЕЙ НАХУЙ ДАВАЙ БЛЯ ПИЗДУЙ БОРОЗДУЙ БЛЯ ВАЛЕНОК
>>2920367 >>2920360 Ну вот я вот так сделал на фронте, когда пчел авторизуется его токен хранится в local storage, и оттуда берется при каждом запросе. Но я не знаю насколько эта реализация удачная, пришел сюда с этим вопросом, а на меня эта хуила накричала >>2920369
>>2920457 >>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. Проблема какая то надуманная. Все нужные детали указываются в резолверах. Непонятно зачем для этого васянку подключать.
>>2918835 Ты не до конца понимаешь проблему. Тут есть 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 это формальное доказание корректности. В принципе это можно автоматизировать. Но это не просто и есть вопрос в постановке гипотезы, это должен делать человек или программа.
У меня есть, пара тройка классов, которые я не хочу, чтобы апдейтились, когда я забираю изменения из удаленного репозитория. Как это сделать? Как убрать из отслеживаемых их, т.е. например при создании это можно сделать, файл будет красным, а когда уже есть файл, как отцепить его в идее?
Я пишу приложение под андроид на плюсах, в котором используется щепотка джавы. Есть один единственный исходник на джаве: {Project_dir}/android/src/com/huipizda/CompileBall.java. В этом исходнике есть public class CompileBall. В итоге джава не компилируется с ошибкой error: class CompileBall clashes with package of same name. Ну я поменял название CompileBall.java на другое, на это джава упала с ошибкой компиляции, ссылаясь на то, что название исходника должно быть такое же, как имя класса. Что за хуйня? Как правильно?
>>2922258 >Ну я поменял название CompileBall.java на другое, на это джава упала с ошибкой компиляции, ссылаясь на то, что название исходника должно быть такое же, как имя класса. Ты, видимо, поменял название только у файла, а надо еще внутри файла само название класса поменять.
>>2922329 Бля, что за наименования? argPos, kv? У тебя что, длина строки в среде разработки по карточкам? Или религия мешает нормально и внятно без сокращений называть переменные? Где комменты, почему надо догадываться о сакральном смысле написанного?
>>2922342 >Где комменты, почему надо догадываться о сакральном смысле написанного? Если непонятно, что делает код, без комментариев, значит код говно и его надо переписывать.
Ебаная идея сломала мне проект. Стоило мне воспользоваться ее умным импортом, как все полетело. Сама идея теперь вообще не открывает проект (показывает только гитигнор, пом и еще какую-ту мелочь), эклипс открывает нормально, но не компилирует Вот что это за хуйня? Так и задумано, что современный инструмент должен ломать проект? Эклипс за 5 лет себе такой хуйни не позволял
>>2922455 > показывает только гитигнор, пом и еще какую-ту мелочь Насколько я помню, решается нажатием ПКМ по пустому месту в окне директории и нажатием кнопки импортирования Maven.
> Так и задумано, что современный инструмент должен ломать проект? Может быть и да, а может быть и просто дебилы напортачили какую-то хуйню, а может быть дебилы решили наоборот подтереть говно и тем самым испортили билд без идеи. Собирай консолькой ну или настрой идею так, чтобы она сама собирала с прослойкой в виде консоли.
>>2922342 Стандартные обозначения, если что-то непонятно - вон из профессии. >>2922348 Мне нужно было. >>2922446 >Map<Object, Object> - вообще идиотизм. Зато могу класть именованные и позиционные аргументы в один и тот же контейнер. >Еще вроде вот так "-arg=true" не принято аргументы писать. Версию джавы давно проверял? А про го что-нибудь слышал? >Ну и зацени вроде как стандартный код для этого Сам-то читал его? Не код, а залупа.
>>2922499 Название файла, класса и пакета это три разных строки, которые можно менять. Файл и класс должны иметь одно и то же название, но они не должны пересекаться ни с каким из пакетов.
>>2922502 >Зато могу класть А еще можешь положить объекты, которую твою мапу нахуй сломают. Удобна удобна. >Версию джавы давно проверял? А про го что-нибудь слышал? А ты жаба что ли стандартный гну синтаксис менять? Тем более в жабе это properties. Тонкая разница, жаль что в наше время... >Не код, а залупа. Что лучше говна.
Что делать, если я через какое-то время перестал понимать проект. Я что-то вроде джуна и более сильные люди, нахерачили туда код, который непонятен. И я вроде как свои задачи должен делать, с этими изменениями. Наверное надо дропать эту работу. Я в тупике.
>>2922693 Ну на прошлом проекте, так не было. Я много коммитов в него влил. А тут, уже пару недель сижу дизморалюсь. Что ещё делать то? Заебывать синьеров своей тупостью? Я итак всех заебал уже. Ждать пока меня сами рп какие-нибудь выпилят?
>>2922702 Вот легко сказать... Это резюме нада, сопроводительное письмо, о том какие же рога и копыта уховая компашка и как я блятб к ним хочу. Еще б опыт работы неплохо бы придумать. Заебно как-то и пока нет времени для такого... >>2922706 >Я итак всех заебал уже. Ну хуй знает, по такой логике меня тут игнорить должны давно уже. Хотяя, мб по разному заебывают люди.
>>2922706 Ну так тебя жиза и дальше будет ебать, если ты чуть что сразу в дизмораль уходишь. Возьми перерыв, проветрись сходи, и на свежую голову садись дальше грызть легасятину. Превозмогая, научишься чему нить.
>>2922716 Ну по знаниям не джун. По зп джун. По должности не джун. По навыкам понимания размытых тз и чужого кода джун. По опыту работы не джун. По навыкам выбивать офферы из собесов далеко не джун. Кто по твоему я? Как определить?
>>2922760 > а как доходит до дела До какого дела? Ты этот, чел который постоянно пишет >ты слит? Пиздуй ка отсюда. Ты нам не нужен. >>2922756 >Ну по знаниям не джун. А кто? А так жун, похоже.
>>2922676 >А еще можешь положить объекты, которую твою мапу нахуй сломают. Ну я же не еблан сам себе в кашу гадить? Этот код никуда наружу не попадает, я все здесь контролирую. >Тем более в жабе это properties. Че? >Что лучше говна. Ок, специалист по говнам и залупам.
>>2922786 Нахуй ты мне это скидываешь? Ты блять джава или твоим говном будут в опеждк пользоваться? Меня просто вымораживает, что жаба не может версию через -v показать. У них этот говноподход во всем.
Тем более и тут нет равенства. Вообще : используется.
>>2920845 >Ты не до конца понимаешь проблему. Пасиба, несколько дней подумал над концептом. В общем думаю перевести код программы в абстракции по JMM. Ну т.е. скажем у нас есть такая ветвящаяся структура в виде PO и вот по ней идут потоки. Далее любые записи, если они произошли в shared данных, я хотел бы обозначить стрелочками, мол это значение мы увидели потому, что SW/HB и начало скажем в потоке, которые сделал запись, а ее кончик в потоке который увидел. Т.е. я хочу визуализировать модель JMM, она же дает гарантию as-if-serial, значит я такую визуализацию вполне могу сделать. А вот как там на самом деле байтики летают меня особо не волнуют. >В принципе это можно автоматизировать. Пожалуй прувер я делать не буду. Я думаю и без меня уже сделаны.
>>2905153 (OP) Расскажите, как раньше работала Java ME? Это что-то типа библиотеки, которая встраивалась в прошивку телефона и позволяла запускать java-программы? Принцип примерно такой же как у десктопной java?
Вот бы сняли фильм по книге Эрика Эванса про DDD. По той истории, где он за 3 недели отрефакторил Денежные Займы в Доли Пирога. И спас проект от злых непосильных требований. В условиях суровейших дедлайнов. Холодной Нью-Йоркской зимой. А пм прикрывал его жопу.
>>2923430 Базовая база была. Джава на 20 лет опередила своё время. Все фичи там уже были, от которых сейчас текут соевики из смузи языков. Мы могли бы получить джаву как универсальный язык для всего, но капиталистические корпоративные войны погубили эту мечту.
>>2923706 >Базовая база была. Джава на 20 лет опередила своё время. Все фичи там уже были А потом они куда-то пропали так, что теперь приходится пиздить фичи из шарпа с отставанием в 10 лет?
>>2923713 >пиздить фичи из шарпа то что индусы из майкрософта срут в язык всеми возможными фичами без особой надобности не делает ему чести. Потом получаются всякие асинк/эвейты или просто ломают обратную совместимость. Я уже не говорю, что за весь сахарок могут спросить на собесе, а там талмуды документации уже как с++ стали.
>>2923276 И так пупуни, требую от вас пояснения про эти две зависимости. В чем разница между ними? Почему я не могу взять просто spring for kafka и сверху заебашить стримами? Что умеет кафка стримс чего не умеет остальные?
>>2922682 Я специально пишу такой сложный код, чтоб ты нихуя не понимал и не мог меня заменить. Я код соседнего мидла тоже нихуя не понимаю. Хотя мне это не сильно мешает пилить фичи, я если что могу рядом написать метод который делает тоже самое, но назвать по-другому.