Это копия, сохраненная 7 марта в 02:19.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Что за долбаебская шапка? ОП сишарпер что-ли?
Перекатывай сам в следующий раз.
Да
Ебануться!
Лицуха не говорит, что нельзя закрыть сайт.
Пиздец...
Хуль те не нравится?
TOTAL.JAVA.DEATH
я пользовался блин :-(
Причём здесь Россия? Проблема не в джаве, и не в России, лол, а в жидовском оракле.
https://peps.python.org/pep-0675/
Отставить панику!
Компания Bellsoft предлагает новейшие версии JDK 6 & 7. Возможен лизинг. Оптовикам скидки.
https://bell-sw.com/pages/6-7-java-support/
Пиздак стяни,чепуш
Бери отсюда импортозамещенную: https://axiomjdk.ru
В sdkman еще можно глянуть, вроде последний раз когда смотрел, все через него качалось.
Странно, там же полно русачков в инженерах. Почему они не пролоббировали отказ от этого идиотизма? Такие же соевики, как и струемозглые?
Как ты себе это представляешь?
Есть закон, и все корпораты, находящиеся под американской/европейской юрисдикцией, обязаны ему следовать. Если в каком нибудь U.S. Trade and Export law сказано - не поставлять услуги в Крым, Иран и Кубу, значит github в Крыму работать не будет. Так же и с санкциями.
Что касается русачков в их штате - ты серьезно? Этож русскоговорящие либерахи, камон. Обоссаные ничтожества, позорящие свои же идеалы. Когда они вообще хоть что-то пролоббировали в своей никчемной жизни? О чем ты вообще?
>Когда они вообще хоть что-то пролоббировали в своей никчемной жизни? О чем ты вообще?
Да и к тому же зачем им это делать? Каждая кринжовая неудача России, каждая хуевая законотворческая инициатива, каждое резонансное событие в стране с привкусом гурятины, каждая успешная санкционная блокировка для них - максимально желанное событие, которое придает смысл их существованию.
>>Этож русскоговорящие либерахи, камон.
Разве Белсофт либерахи? Вроде не слышно было от них высказываний и действий в стиле яндекса или жидбрейнса.
Смотря какой. Насколько я понял, вышеупомянутый Axiom JDK щас находится под владением той части беллсофта, которая осталась в стране. А другой bellsoft, который съебал - вредничает. Первым лоббировать нет нужды априори. Вторым лоббировать - нет смысла.
Но могу ошибаться, со свечкой рядом не стоял.
Надо сделать ограничение на время и не допускать исполнение потенциально вредоносного кода. Так вот. Как?
Нет, сказал же, таймаут + вайтлист. Вайтлист я уже придумал как реализовать, вот нашёл либу https://github.com/msx80/WiseLoader , даже придумал что можно через асм прогонять загружаемые джарки и маппить полузапрещённые классы на безопасные обёртки. Вот таймаут пока не могу понять как реализовать. Thread.stop(), зачем-то, забанили нахуй.
Тьюринг полные настройки нужны чтобы решить config hell. Вместо того, чтобы ебаться с подробностью конфигов, можно просто заставить пользователей самим себе конфигурировать что надо.
И каким образом тьюринг полнота решает эту проблему? Вот как я не открываю градл - говно говна и каждый пишет какую-то поеботу. Про cmake вообще вспоминать не стоит. Хуйню придумал и героически с ней борешься.
>>53449
>Thread.stop(), зачем-то, забанили нахуй.
Че ты несешь? И его, кстати, можно обойти. Вот Thread.suspend, нет.
>вайтлист
И зачем? У тебя шиза какая-то, то ты хочешь дать пользователю свободу, то такой, а вот этим пользоваться низя.
Ну и вообще можно взять и получить группы потока, заморозив твой observer и так обойти таймаут.
Самый нормальный способ - это киллить всю жвм сразу. Т.е. запускать ее в контейнере и как только слишком дохера себе позволяет - килл.
1. Ты пишешь какую-то хуету.
2. Этот класслоадер не сможет переопределить FileOtputStream и прочий Runtime.exec() просто потому что классы уже загружены и вообще они системные.
3. Если уж так надо, бери ObjectWeb ASM и модифицируя байт-код при загрузке класса. Так можно модифицировать обращения к не безопасным методам и вставить в код методов останова.
> Че ты несешь? И его, кстати, можно обойти. Вот Thread.suspend, нет.
Суспенд, как и стоп, выпилены в джаве 1.2.
> И зачем? У тебя шиза какая-то, то ты хочешь дать пользователю свободу, то такой, а вот этим пользоваться низя.
Я хочу дать свободу писать интеграционный код, а не выполнять rm -rf / на сервере.
Я честно сказать не понимаю нахуя их выпиливать. Пометить вот как депрекейтед и норм. Что б неофиты не юзали, а так ты в жабе никак не сможешь сделать то же, что делает суспенд.
Да так видимо и собирались, но со временем джаву проела соя, что совершенно не понимает, что делает, и, увидев депрекейтед, решила нахуй выпилить метод.
> 2. Этот класслоадер не сможет переопределить FileOtputStream и прочий Runtime.exec() просто потому что классы уже загружены и вообще они системные.
Нихуя не понял. Зачем ему что-то переопределять?
> 3. Если уж так надо, бери ObjectWeb ASM и модифицируя байт-код при загрузке класса. Так можно модифицировать обращения к не безопасным методам и вставить в код методов останова.
Либы-то есть для этого? Я не хочу велосипедить своё говно и потом в одно прекрасное утро понять, что мне всё снесли, потому что я допустил какую-то уязвимость.
используй кеширование.
один раз проверил код своими проверками
загрузил в кеш грувиенжайна
и вызывай передавая входные параметры
хули не так то?
> хули не так то?
Ну наверное перформанс скриптодинамикодрисни, к тому же натянутой на разработанную под компилируемый статически-типизированный язык jvm.
Виртуализация-шмиртуализация... нахуя, в джаве есть литералли все для того, чтобы подгружать левый код на своих условиях.
Заюзай кастомный класслодинг, через кастомный класслодер грузи весь байткод от пользователей. Доступ к классам, компрометирующим систему, запрети там же. Оставь там только доступ к ограниченной песочнице. Предложил бы OSGi в качестве референса того, как это обычно делается, но местная спрингокультистская соя неадекватно реагирует на эту аббревиатуру.
Если тебе надо не просто грузить, но и компилять код из стринги, заюзай Java Compiler API.
Для таймаута, запускай пользовательский код отдельным тредом и прибивай процесс по таймауту.
> и прибивай процесс по таймауту.
Вот с этим возникли проблемы. В джаве нельзя убить поток с некоторых пор.
мда
то то в пыньков банке эта скриптодинамикодрисня используется для сбора данных с интеграций партнеров
то то в сбербанке эта скриптодинамикодрисни используется для работы с налоговой и казначейством
но манянимус с двощей лучше знает
Обычно банкам вообще поебать на производительность, кхм.
>Предложил бы OSGi в качестве референса
бгг. да тут от обычных контейнеров сервлетов половину треда трясти начнет. а ты им осги предлагаешь.
работал с бандлами в одном "проектике", там караф + кемел тянули всю интеграцию + бпм(для стейтмашин управляемых с гуйни)
ни все равно я бы делал на груви лучше)))
Ха. Я до сегодняшнего дня тоже думал, что не пользовался. А сегодня обнаружил, что там javadoc'и самого JDK хостятся, и через гугл гуглить документацию для классов стало не так удобно как раньше.
Вот ведь вредные сучки
Блиин, ну можешь в тг написать. Не тут же рассказывать...
Ну а тут я максимум жаватуториал от оракла могу посоветовать почитать, но он закрыт для россиян, к сожалению. https://docs.oracle.com/javase/tutorial/
А, еще книжечки. JCIP, effictive java и пр.
Попробуй нагуглить джавадок какой нить коллекции - ссылка в топе будет с этого домена.
у тебя есть исходник.
ты можешь его проверить.
без импортов нихуя работать не будет - можешь начинать с них проверку. проверять что импортится например.
затем уже можно уже строить аст по коду и прогонять по нему анализатор какой
Компилировай
Ну допустим то же самое я могу сделать и на джава-коде перед тем как отправить его в compiler API. Причем на джаве это будет даже проще за счет того, что синтаксических выебонов меньше.
да можешь.
а вообще такую хуйню надо делать на языке умеющем метапрограмирование.
я когда то баловался эликсиром - и там вот делал дсл движок перегружаемый в рантайме внутри otp
было прикольно
ну и например глянуть как реализуются контракты на блохчленах. например на кефире.
сам я в это не лез никогда. но лучше смотреть как делают лучшие - и повторять самому
Строго говоря в жабе не было киллов тредов. Суспенд морозит их. А stop работает через прокидываение Error, что легко можно поймать try/catch.
Так-то если поискать, то способы все еще есть https://stackoverflow.com/questions/11610902/how-to-kill-a-java-thread-using-visualvm-or-using-a-unix-command
Во. https://docs.oracle.com/javase/8/docs/jdk/api/jpda/jdi/com/sun/jdi/ThreadReference.html#suspend--
Должно работать.
>>53731
Хуйню он делает, давно уже сказали. Кто в здравом уме будет писать конфеги на жабе?
Хотя вот думаю, suspend это жи огрызок от stw, который работает через сейфпойнты. Теперь вопрос, можно ли убрать их все, чтобы при вызове суспенда нихуя не происходило?
Ну он типа ж чужой код вызывает. Еще гетц писал, что при кооперативной многопоточности - это практика порочная.
Типа даже случайно можно сделать код, который ты хуй остановишь.
> Хуйню он делает, давно уже сказали. Кто в здравом уме будет писать конфеги на жабе?
Какие ещё конфиги? Конфигурация как действие и конфиг это разные вещи.
Че ты душишь-то? Он же сказал, что решает проблему config hell. Да и честно сказать вообще не понял, в чем твой тезис.
>Нихуя не понял. Зачем ему что-то переопределять?
Основная опасность идёт от системных классов: доступ к диску, сети, запуск процессов, загрузка нативных библиотек. На чистом джава коде, ты ничего опасного не напишешь. Поэтому перекрывать надо доступ именно к ним.
>Либы-то есть для этого? Я не хочу велосипедить своё говно и потом в одно прекрасное утро понять, что мне всё снесли, потому что я допустил какую-то уязвимость.
Повторю ещё раз: ты делаешь какую-то херню, эта задача должна решаться не так. Если бы нормально написал, что надо сделать можно было бы более предметно разговаривать.
SecurityManager был для этого, но его больше нет. Те проекты сэндбоксов что я нашёл, очень старые и не решают проблему останова. В принципе это не так уж и сложно проверить доступ к паре ключевых пакаджей. Коду который """конфигуриет""" что-то не нужен доступ к рефлексия, класслоадерам, io, поэтому если нет проблем с порезать лишнее, то обрубить опасные вещи можно достаточно легко.
Задача:
String result = userFunction.call(something1, something2);
userFunction должен получаться из кода с уровнем надёжности /b/.
Не понимаю как ты для мапперов в тесте делаешь @Autowired и без @SpringBootTest(classes = ...) ?
1. Ты дурак, который не может понять что никакая бизнес задача не форулируется как: написать функцию которая.... Написать функцию это то как ты понял задачу и какое придумал решение.
2. Если говорить про вариант с песочницей, то реализовывать песочницу на уровне JVM это только один из вариантов. Другой вариант отдельная JVM, отдельный докер контейнер.
>@SpringJUnitConfig(MapstructConfig.class)
Эта хуйня именно спринг поднимает, а не спринг бут. Причем только мапперы в конеткст попадают.
Глянь для начала https://youtu.be/7mZqJShu_3c?si=AHJKgbC-PX667knV
У меня спринг бут раз в 100 больше времени поднимается. Если у тебя есть все время мира для тестов - вперед.
Совсем ахуел? Ну иди нахуй тогда.
Ля, я в свое время пять раз эту бурду посмотреть попытался. Этот доклад - как шутка какая то абсурдная нахер.
Николай, ты?
А мне понравилось. Няшно объяснили как конфеги ищуца и сканирование идёт. Да и примеры дали какие никакие.
Не, не я. Я так и не досмотрел этот доклад, у меня мозг просто отказывался воспринимать эту шизофазию вперемешку с душниной. Но какбэ без бузы - о вкусах не спорят. Если те понравилось, значит ты попал в целевую аудиторию, а я - нет.
Пиши компоненты с инжекцией через контроллеры.
Тогда и контекст в юниттестах поднимать не нужно будет. Хватит простых моков
Ты че бедный что ли? Купи оперативы и хдд на сервер. Оверхеда много. Вот время на еблю-то конечно нихуя не стоит, да?
Это оно и есть. Сколько тебе раз повторить, что на жабе кооперативная многозадачность и ты не властен над потоком?
Не, хуйня. Шедулер все равно будет выдавать кванты времени, даже с таким приоритетом. А прекинь у тебя тысячи таких потоков?
>В ос-то вытесняющая многозадачность и никаких проблем нет.
Типо в джаве потоки обычные не лумовские не вытесняющие.
Да даже убить тред не проблема, через JNI делается в пару строк. Но код легко может запустить десяток новых потоков. А если запретить это, можно заюзать системный форк-джоин пул, а если запретить к нему обращаться, то можно через паралел стрим заспавнить кучу тасок. Вариантов масса, предусмотреть всё очень тяжело.
Настоящая проблема в том, что этот дурак ломается как девка и не может толком объяснить в чём заключается задача. А аноны вместо того чтобы объяснить ему что он дурак, начали фонтанировать идеями.
Про мавен ты правильно сказал, мучаться с градлопарашей не заслуживают даже питухонщики.
>через jni делается в пару строк
Поделился бы хотя бы знанием о том, как. Потому что мне гугление ничего не даёт.
>предусмотреть всё очень сложно
Зачем предусматривать? Сделать по принципу вайтлиста + маппить всякие .parallel() на .sequential() автоматически, чтобы можно было код внешних либ без изменений использовать. Форк-джойн пул очевидно можно просто не добавлять в вайтлист или отмаппить на что-нибудь однопоточное.
>толком объяснить, в чём заключается задача
Я уже сто раз объяснял. Я могу сказать, что я хочу сделать сервер в копрокубах с дуэльками с кастомными китами и кастомными условиями пвп, например, чтобы игрок мог написать код чтобы каждую секунду выдавать двум участникам пвп 1 эндер-кристалл (вот то зачем код нужен), но это мало что поменяет в технической задаче.
Возникла необходимость прописать бек для вебприложения на спринге. Как его использовать? В плане, я посмотрел\прочитал кучу гайдов. Все говорят "открываем идею, создаем мавен проект, прописываем зависимость, вы великолепны". Но я был бы не я если бы все заработало сразу
Как пофиксить пики? Я уже и мавен накатил отдельно, хотя как понял он и идее изначально есть, и разные проекты потыкал. 0 результатов
Подскажите пожалуйста и посоветуйте что-нибудь прям для чайников, если не сложно
Похоже, что оче древняя версия Spring context (4.1, тогда как spring core 6.1)
https://mvnrepository.com/artifact/org.springframework/spring-context
При любой проблеме в мавене открывай и смотри страничку зависимости в репозитории
Может ты просто сам будешь ревьюить эти правила? Ну типа не надо будет йоба правил, кучи перфоманса и прочего. Сам все прочекал и норм.
Кстати помимо проблемы с тредами, можно выделять кучу кучу памяти. new int[10000000000] например. Не будешь же ты массивы запрещать, да?
если сделать System.exit() в трай кэтч блоке, то файналли не отработает. Можете ловить вкатунца на собесе таким вопросом.
Кнопку обновления мавена-то нажимал?
Короче проверил время старта.
Вручную - до 10 мс.
С avaje-inject и avaje-config - около 200.
Со spring без boot - секунда.
> если сделать System.exit() в трай кэтч блоке, то файналли не отработает.
Да ты че... БЛЯЯЯЯЯЯЯЯЯЯЯ
Не ебу что это,уверен что васянских аналогов свинг хватает
Если нужон qt, то используй его в естественной среде обитания - c++. А на жабе есть только полумертвый jfx и окончательно мертвый свинг, который используют жидбрейнсы.
>С avaje-inject и avaje-config - около 200.
Погуглив что это я увидел ответы, что это штука с кодогенерацией, что-то между даггером и микронавтом.
Почему не они? Почему не какие-то другие реализации jsr 330? Трогал еще что-то?
Может почему они? Потому что они спиздили идеи для нескольких своих проектов у меня из головы и с тех пор я за ними слежу. С другими реализациями не работал, я думаю там примерно те же цифры будут, а спринг окажется самым медленным. Но 1 секунда это норм, пойдет для моей задачи.
А какие идеи? Не сильно популярная библиотека, но вроде не прям совсем васянка.
Разве удобно вот прям такую кучу сгенеренных исходников иметь?
В чем преимущество перед генерацией байткода?
Сгенеренные исходники нигде не хранятся. Преимущество в том что работает стандартный джавовый механизм генерации исходников (Annotation Processor) и их можно спокойно посмотреть глазами.
>В чем преимущество перед генерацией байткода?
Так то много преимуществ. Можно дебажить в идее привычным способом, можно прочесть че там нагенерирось без дизассемблирования. Если что-то пойдет не так, с байткод-инструментацией ты об этом узнаешь только когда класс попробуешь загрузить и огребешь ошибку верификации (по которой еще пойди распарсь че пошло не так), в то время как косяк в сгенерированном коде просто приведет к фейлу компиляции. Ну и наконец - возня с опкодами несравнимо геморройнее, нежели генерация сорцов высокоуровнего языка.
Я бы сказал: байткод-инструментация - это совсем уж крайняя мера, к которой от хорошей жизни не прибегают.
Мимо владелец одного байткод-инструментатора на байтбадди.
На стековерфлоу, в видосах, в статьях читал. Когда хотел разобраться насчет аргументов за jooq и за hibernate.
Ну и в mapstruct vs modelmapper тоже.
Ну и там везде был в комментах аргумент, мол не люблю генерацию сорцов.
Хз. Моя версия - потому что пориджи не любят кодить Qt на плюсах, а альтернатив паритетных вебу по возможностям верстки - не завезли.
Что почитать о Джаве, чтобы примерно понимать код на ней? Есть какие-то небольшие книжки по синтаксису и стандартным приемам (паттернам?), которые активно применяются в бэкенде?
Выбирай любую из 20 тысяч книг https://www.amazon.com/s?k=java&i=stripbooks-intl-ship&s=relevancerank
Пользы не будет никакой, джавовый-спринговый подход к бэкенду мягко сказать на любителя. Лучше почитай код на голанге, там супер минималистичный язык и все пилят на стандартной либе с минимумом абстракций.
База база. Но даже если захочет, пусть катица. Тут как бы своя сосичная пати, новых не принимают.
В шарпе просто не было пространства, для такой магии. Всю ветку можешь почитать: https://2ch.hk/pr/res/2920885.html#2925951 (М)
Нихуя непонятно что они там говорят и почему там нельзя навернуть cglib, а поверх него спринг.
То ли из-за отсутствия стирания типов, то ли нет.
А на других языках может быть что-то похожее на спринг?
Кроме шарпа остаются динамикодрисня(пыхеры говорят, что их экосистему с каждым годом пытаются сделать все более похожей на джавовую), гоха, плюсы.
>А что максимально похожее на спринг на других стеках?
Этот, как его ебать... nest.js ебучий https://nestjs.com/
>вкатиться в бэкенд, но не в Джаву.
>хотелось бы понимать код проектов на Джаве, поскольку немалая часть бэкенда делается на ней
Будешь переписывать джавовый бэк на другие языки дабы лишить джавистов работы? Хитрый план.
Кек, стелс-шарпей спалился)
>>Ну и в mapstruct vs modelmapper тоже.
тут просто
mapstruct генерирует код который легко посмотреть самому + самый быстрый из маперов.
modelmapper - неявная магия с рефлексией на дженериках, с которой разобраться и подебажить сложнее. По скорости на дне.
По удобству они примерно одинаковы.
>>jooq и за hibernate
Тут разницы больше, жук это по сути sql на стероидах, а хибернейт - ОРМ.
Больше всего либ и инструментов тырпрайзного уровня для тырпрайзных задач.
Считаю, что на этом преимущества исчерпываются.
Пока ты был стелс, ты был интереснее. Щас ты тупо толстишь. Обтекай.
Ты предвзят насчет моделмаппера.
Для простого маппинга он удобнее. Хотя с кастомным маппингом ебли больше. Как в приципе и хибер проще под капотом у спрингдаты для совсем простых крудов.
Про жук
>это по сути sql на стероидах
Это фраза ничего не значит. Жук это билдер запросов. С возможностью сильной типизации внутри джавы на основе кодогенерации из схемы бд.
А привел я эти 4 библиотеки из-за противопоставления подходов с рефлексией и когенерацией.
И хотя очень много хейтеров рефлексии, которые говорят, что кодогенерация это хорошая альтернатива - по факту кодогенерация менее популярна.
>И хотя очень много хейтеров рефлексии, которые говорят, что кодогенерация это хорошая альтернатива - по факту кодогенерация менее популярна.
Она менее популярна потому, что более сложна в разработке. Кроме того, через кодогенерацуию не все проблемы впринципе решаемы. К примеру, через кодогенерацию ты можешь генерить код, но менять его - уже не можешь без ректальных подходов аля ломбок, но ломбок - перл достойный отдельного обсуждения. Хочешь менять - инструменти байткод, но с инструментацией вылезают свои трейдоффы.
Плюс - есть еще исторический момент. К рефлективной магии джава не вчера пришла - магия существовала всю дорогу со времен Java EE 5 (а может и дольше). Многие современные кодо/байткодогенеративные штуки могут давать сегодня лучший результат, но режутся на корню синдромом утенка.
Ну а что вот мы нерешим жуком, что решим хибером? кеши?
Или что мы не решим мапстрактом, но решим моделмаппером?
Или ты про spring vs di-контрейнеры основанные на когенерации? Там наверно многих фишек по манипулированию контекстом без рефлексии не сделаешь.
Жукоеб, а че мы не решим ассемблером, что решим жуком? А что мы не решим коболом, что не решим жуком? А что мы не решим jdbc, что решим жуком? Че за идиотский вопрос?
Культошиз чтоли?
>Там наверно многих фишек по манипулированию контекстом без рефлексии не сделаешь.
Фишка фишке - рознь. Например: спарсить конфигурацию контекста по бинам - рефлексия. Класспаф сканнинг - рефлексия. А вот аспекты, к примеру - уже байткодоинструментация. Генерация проксей - фича proxy из джавы, хз считать ли ее за рефлексию или нет. Кроме того, можно пересмотреть идею вокруг какой нить фишки и получить другой расклад. Перенеси конфигурацию контекста из кода бинов в отдельный конфиг - и нету больше рефлексии, есть лишь чтение конфига. Откажись от класспаф-сканнинга - и нету рефлексии.
>Ну а что вот мы нерешим жуком, что решим хибером? кеши?
Да все решим, епта. Благо что на тьюринг-полном языке кодим. Если хошь культистский срач, можем щас мнениями начать мериться. Я например считаю, что хибер - кривая абстракция, которая плодит проблем больше чем решает, а джавистам на самом деле нужен не столько ОРМ, сколько просто какая нибудь адекватная обертка над неадекватно старым и небезопасным API JDBC, который как писался по лекалам 4й джавы, так и остался на том уровне. И вангую что какой нить шиз щас придет с религиозной миссией накидать мне-неверующему хуев в панамку - как будто мне не похуй.
>какая нибудь адекватная обертка над неадекватно старым и небезопасным API JDBC, который как писался по лекалам 4й джавы, так и остался на том уровне
Например? Че те в ждбц не нрав?
Да все нравится. Мож я и погорячился, сказав про "неадекватную старость", но ты же не станешь спорить с тем, что ждбс слишком низкоуровневый для прикладного использования?
Ну вот что бы ты улучшил? Что ты имеешь ввиду под адекватной оберткой? Все бд библиотеки это обертки над jdbc.
Колбеки строго говоря - не из числа изначальных задач di-контейнера, просто так вышло что их оказалось соблазнительно удобно описывать аннотациями. Ну а их сканнинг - задача того же толка что и сканнинг бин дефинишенов в целом.
>эвегьы
воистину фгхтагн.
>экзотические скоупы бинов
Со скоупами основная проблема, это корректно проинжектить бин с меньшим скоупом в больший. На самом деле, скоуп и лайфсайкл менеджмент наверное - единственная задача, которая в di-контейнерах нерешаема иным способом, кроме как проксями. Разве что петлю на весь контекст в старший бин прокидывать, или вообще запрещать такие отношения между бинами, но это - читерство.
Лично я бы ничего не улучшал - меня целиком и полностью устраивает в качестве обертки Jooq. В отличие от хибера Jooq - именно что тоненькая обертка вокруг JDBC, которая умеет ровно то что нужно, и не более: маппить кортежи на структуры данных, и генерить сорцы структур данных по схеме БД. Без нерелевантной лабуды типа персистенс контекста, жизненного цикла энтитей, ленивоинициализируемых коллекций или JPQL.
>эвенты всякие
Отвлекся, пока печатал, извиняюсь.
>не из числа изначальных задач di-контейнера
Ну это хотя и не изначальная задача, а все таки возможность именно di-контейнера, дополнительная.
Что я вспоминаю еще из еба адвансед возможностей. Перегрузка пропертей в рантайме, кручение контекста через spel, работа с кастомными класслоадерами. Наверно есть еще всякие фишки, я не большой знаток спринга.
Ну а аспекты. Такой подход к управлению транзакциями, где все декларативно делается есть в фреймворках без рефлексии? Там как раз аоп используется.
Слышал много положительных отзывов на форчане пару лет назад.
Ну слушай, ты уже упоролся, и пошел пихать вообще все подряд под тезис без разбору. Я не буду спрашивать про связь нижеперечисленного с понетием "DI-контейнер", хотя вопрос на самом деле напрашивается, ибо это все - нифига не дополнительные фичи DI-контейнера как ты утверждаешь, а маркетинговые приблуды конкретно спринга. Но каким раком ты связал рефлексию со spelом, который всего лишь DSLчик, или с класслодерами, которые вообще не про рефлексию, мне остается только догадываться.
Я сам люблю жук.
Вот слышал на конфах от экспертов по хиберу их защиту от нападков с вопросами насчет жука.
Типа они говорят что из-за жука во главу угла становится именно схема в базе. А главными должны быть энтити потому что они отвечают за бизнес-логику, ближе к ооп и всякое такое.
Ну и еще сам Лукас Эдер говорил, что если нужно сохранять граф объектов, то нужно использовать орм, типа хибера. Не очень понятно что имеется ввиду. Я понял это если ты сохраняешь граф, где больше десятка вложенных сущностей одной транзакцией, то в хибере можно просто все засетить в самую верхнеуровневую сущности и разом сохранить. А в жуке придется писать десять методов репозитория.
>связал рефлексию со spelом, который всего лишь DSLчик, или с класслодерами
Ну я не знаю как они работают под капотом. Просто предположил может без рефлексии их не реализовать.
Если ты знаешь как работают, скажи пожалуйста. Самому лезть разбираться долго.
>нифига не дополнительные фичи DI-контейнера как ты утверждаешь, а маркетинговые приблуды конкретно спринга
Ты просто предвзят. Дополнительные фичи и маркетинговые приблуды это одно и тоже, просто с разным эмоциональным окрасом. Если бы я был настроен с тобой ругаться, мог бы обвинить тебя в "нинужнизме".
>Типа они говорят что из-за жука во главу угла становится именно схема в базе.
Как будто в schema-first есть что то плохое.
>А главными должны быть энтити потому что они отвечают за бизнес-логику, ближе к ооп и всякое такое.
Хз че на это ответить. Наверное они апеллируют к DDD, и может в будущем я изменю свое мнение когда увижу, что DDD работает. Но пока что мне не везло.
>Если бы я был настроен с тобой ругаться, мог бы обвинить тебя в "нинужнизме".
Так и не надо со мной ругаться - смысла в этом все равно нет. Просто давай вещи своими именами называть: если ты рассуждаешь о возможности накатать убийцу спринга с полным паритетолм по фичам без рефлексии, так и говори - убийцы спринга без рефлексии не бывает даже в теории. Если же ты говоришь о di-контейнерах без рефлексии, изволь не примешивать в дискуссию нерелевантные вещи, иначе будешь не так понят.
Так я и не знаю возможно это или не возможно. Я не настолько компетентен.
Просто хотелось бы сперва понять какие фичи без рефлексии не решаются. А потом можно решить, что из этого реально необязательно. Возможно на этих маркетинговых приблудах работают какие-то более высокоуровневые спринговые библиотеки. А ты сразу многое заметаешь под ковер, как нерелевантное.
Ну наберись компетенции, я не знаю, а то иной раз непонятно о чем ты вообще.
Перегрузка пропертей в рантайме, к примеру. В теории она возможна через вархендлы, которые по скорости равны обычному доступу к полю в рантайме. Считаем ли мы вархэндлы за рефлексию?
>работа с кастомными класслоадерами
Про что ты здесь вообще говоришь? Класслодеры - это класслодеры, а рефлексия - это рефлексия. Эти две вещи вообще не взаимосвязаны.
>кручение контекста через spel
Вот это про что? Какое еще кручение контекста? SpEL - это просто DSLчик небольшой. Парсеры для любого DSLя спокойно пишутся генераторами сорцов, ANTLR не даст соврать.
Ну вот эти возможности дсл-я.
Лично я вызывал в спрингкафке @KafkaListener(topics = "#{someBean.someProperty}"), где список топиков брался из бина.
> альтернатив паритетных вебу по возможностям верстки - не завезли.
А JavaFX чем не паритетная? Там вся та же верстка с блекджеком и CSS, насколько правильно понимаю.
>Потому что мне гугление ничего не даёт.
Когда-то давно манипулировал тредами через JNA+Win32, но сейчас и правда ничего толком не гуглиться.
>Я уже сто раз объяснял. Я могу сказать, что я хочу сделать сервер в копрокубах с дуэльками с кастомными китами и кастомными условиями пвп, например, чтобы игрок мог написать код чтобы каждую секунду выдавать двум участникам пвп 1 эндер-кристалл (вот то зачем код нужен), но это мало что поменяет в технической задаче.
Разумеется меняет. Если у тебя есть некая функция которую ты вызываешь и получаешь результат - это одно, а если тебе надо что-то менять в текущей живой JRE это другое.
>Зачем предусматривать? Сделать по принципу вайтлиста + маппить всякие .parallel() на .sequential() автоматически, чтобы можно было код внешних либ без изменений использовать. Форк-джойн пул очевидно можно просто не добавлять в вайтлист или отмаппить на что-нибудь однопоточное.
То что ты предлагаешь не будет работать. Ты предлашаешь именно блеклист на небезопасные операции типа .parallel(), но ты реально все не предусмотришь. Arrays.parallelXXX() с кастомной функцией и у тебя executor, Arrays.copyOf() - аллокатор. Ты никогда все не перекроешь.
Лучше просто запрети весь доступ к стандартной библиотеке и разрешай по мере необходимости, ну там для начала доступ к примитивам, к коллекциям проверь нет ли там небезопасных методов. Проблему останова решать: добавлением в начало и конец любого мелода и цикла вызова твоего метода, который будет проверять таймаут и если он превышен кидать твой кастомные Error. Если есть catch(Throwable), то туда тоже твою логику надо вставить.
Они явно не могли поддержать весь css в том же объеме что и в браузере. Когда я интересовался, у них там вообще только кастомные свойства поддерживались.
>>без ректальных подходов аля ломбок, но ломбок - перл достойный отдельного обсуждения
То как они реализовали @SneakeThrows достойно уважения. Вот бы этот хак еще в лямбдах работал.
Берешь какую-нибудь легаснопарашную либу типа ApachePOI - а там дохуя этих чекед эксепшенов и код в стиле джава7.
Сап жавач. Хочу сделать jwt аутентификацию и авторизацию, нашел две статейки, но я хз как оценивать их качество кода, помимо того что он "работает". Дорогие мои оценит плез, какой из них лучше а какой кал
https://www.geeksforgeeks.org/spring-boot-3-0-jwt-authentication-with-spring-security-using-mysql-database/
https://www.bezkoder.com/spring-boot-jwt-authentication/
>То как они реализовали @SneakeThrows достойно уважения.
Эм, а что там уважать-то? Это типа то, что было сделано намеренно ораклом, а не гениальное решение лобка.
Всем.
>Ты предлашаешь именно блеклист
"+" не просто так написан был. Основа — вайтлист, маппинг для удобства самих пользователей, чтобы им самостоятельно не надо было ничего менять. Если я что-то не предусмотрю будет максимум ложнопозитивное срабатывание защиты.
> Вот бы этот хак еще в лямбдах работал
С небольшим пердолингом работает. https://github.com/ancap-kun/AncapCommons/tree/master/src/main/java/ru/ancap/commons/exception/uewrapper
>>а что там уважать-то? Это типа то, что было сделано намеренно ораклом
Это скорее проеб оракла, который нашли и воспользовались в благих целях. Если б так и было задумано это не считалось бы хаком и было в каждом первом фреймворке уровня спринга.
Так фреймворк уровня спринга только один. Ломбок и рядом не стоит и кстати любой кто использует эту аннотацию из лобка - уеба, твёрдо и чётко. Так-то в кишках спринга всегда учитывается, например InterruptedException. То, что лямбды не могут поддерживать явные исключения - это цена отсутствия монад. Пиздуйте в фп языки, если так надо.
Ебал тебя и твою клоаку в рот, я спрашивал какая статья нормальная, сын ты js-ной шлюхи
Долбаеб ты читать что-ли разучился, что ты не понимаешь в сказанном "я спрашивал какая статья нормальная"
Иди нахуй, а. Я тебе дважды нормально ответил. Не можешь разуметь, ну и не надо, вали к своей спидозный матери и отцу алкашу безногому. Все профессии важны, особенно если ты общаться не умеешь.
А какой поддержки чекед эксепшенов в лямбдах не хватает? Запилил функциональный интерфейс который throws Exception, и все - юзай внутри любые чекед эксепшоны.
>То, что лямбды не могут поддерживать явные исключения - это цена отсутствия монад
Нихуя себе заява.
>Вот бы этот хак еще в лямбдах работал.
Он и работает. Просто не через аннотации. Зырь секцию vanilla java в https://projectlombok.org/features/SneakyThrows. И заодно - https://github.com/projectlombok/lombok/blob/master/src/core/lombok/Lombok.java#L49
Хак то к ломбоку не имеет никакого отношения - просто есть в джаве такой вот бэкдор в спецификации, который позволяет перешвыривать чекед эксепшон без проверок компилятором. Вот и все. Ты и без ломбока можешь нга коленке запилить декораторов на свои чекед лямбды и обмазываться ими. Все в твоих руках.
Ну запиили епта интерфейс с таким контрактом, когда Thread by default использует Runnable.
1. Отсутствие вычислений на этапе компиляции.
2. Невозможность убить поток.
3. Отсутствие двойного свитча.
4. Отсутствие лямбда-синтаксиса для анонимных классов с более чем одним методом.
5. Отсутствие проброса проверяемых исключений там, где есть работа с лямбдами через дженерики. Брайан Гётц говорил, что он пытался сделать такое для стримов, но что-то у него там не получилось, я так и не понял, что именно, вроде просто меняешь Consumer на аналог FailableConsumer из апач коммонс и всё работает. Возможно тут нужно объединение типов, которое не завезли, чтобы не приходилось ебанутые цепочки строить. А возможно проблемы более фундаментальные.
>1. Отсутствие вычислений на этапе компиляции.
Дженерики тьюринг полные.
>2, 3
Нахуй не нужно.
>4. Отсутствие лямбда-синтаксиса для анонимных классов с более чем одним методом.
Лямбда это эрзац аналог указателя на функцию, никаких более одного метода, там быть не может.
> лямбда-синтаксиса
> лямбда
Надо объяснять, что это не одно и то же?
> Дженерики тьюринг полные.
И что?
> Нахуй не нужно.
Ну напиши тогда систему безопасности для запуска ненадёжного кода на джаве без потери перформанса. Или физзбазз без повторения кода и оверхеда в перформансе на флаги.
>Ну напиши тогда систему безопасности для запуска ненадёжного кода на джаве без потери перформанса.
Что такое потеря перфоманса?
Оверхед. Работа системы безопасности не должна увеличивать время выполнения кода или нагрузку на процессор в сравнении с небезопасным запуском.
Ну поздравляю. Такого просто нигде блять нет. Безопасность не бывает бесплатной. Иди поплачь, хз.
>Ну напиши тогда систему безопасности для запуска ненадёжного кода на джаве без потери перформанса. Или физзбазз без повторения кода и оверхеда в перформансе на флаги.
Так это не отсутвствие фич виновато, а ты не прост вывозишь, лалка.
>Надо объяснять, что это не одно и то же?
Синтаксис лямбд придуман для одной конкретной вещи, а ты хочешь его использовать для совсем другой хуйни. При этом раздуваешь такую проблему, будто анонимные классы не существует.
>И что?
Твоё утверждение неверное.
>Ну напиши тогда систему безопасности для запуска ненадёжного кода на джаве без потери перформанса.
Это нахуй не уперлось 99% разработчиков, а тем кому это надо хватает докера или виртуалки.
Ну так
> напиши тогда систему безопасности для запуска ненадёжного кода на джаве без потери перформанса. Или физзбазз без повторения кода и оверхеда в перформансе на флаги.
если дело в том, что я не вывожу.
Нет нельзя. Убивая тред, как ты безопасно очистишь память, что он зарезервировал, гений? А мониторы и прочая параша, ты вообще точно читал, что ораклы предоставили как причину отказа от этого?
>Или физзбазз без повторения кода и оверхеда в перформансе на флаги.
А какой язык это вообще позволяет-то?
> Твоё утверждение неверное.
Потому что тыскозал или что?
> Синтаксис лямбд придуман для одной конкретной вещи, а ты хочешь его использовать для совсем другой хуйни.
Ну допустим. В чём проблема?
> При этом раздуваешь такую проблему, будто анонимные классы не существует.
Во-первых я никакую проблему не раздувал, я просто отметил, что такого нет. Во-вторых это да, проблема, так как создание анонимного класса очень загрязнено бойлерплейтом и если приходиться это делать, всё выглядит очень грязно.
> Это нахуй не уперлось 99% разработчиков, а тем кому это надо хватает докера или виртуалки.
Как отменяет сказанное мной?
> Нет нельзя. Убивая тред, как ты безопасно очистишь память, что он зарезервировал, гений? А мониторы и прочая параша, ты вообще точно читал, что ораклы предоставили как причину отказа от этого?
Что значит "зарезервировал память"? Память у всех тредов общая и это куча. Стек просто стирать вместе с тредом. В конце концов на уровне ОС можно убить процесс и всё работает. И работало на уровне джавы, пока не выпилили от туда Thread#stop.
> А какой язык это вообще позволяет-то?
Понятия не имею. Я просто отметил, что в джаве такого нет. А хотелось-бы.
>пока не выпилили от туда Thread#stop.
Ты дегенерат и не понимаешь, как работал этот метод. Ничего общего с pkill у него нет.
> В конце концов на уровне ОС можно убить
Потому что она действительный владелец памяти. Ты же на уровне приложения находишься и можешь лишь просить у ос ее предоставить или забрать.
> А хотелось-бы
Эх, вот бы методы придумали, чтобы код-то не повторять. Жааль не додумались. Вот ток таких свитчей нам и не хватает
> Ты дегенерат и не понимаешь, как работал этот метод. Ничего общего с pkill у него нет.
Причём здесь pkill? Тред Thread#stop завершал? Завершал. Что не так?
> Потому что она действительный владелец памяти. Ты же на уровне приложения находишься и можешь лишь просить у ос ее предоставить или забрать.
Ну а jvm единственный владелец выделенной ей памяти, внутри которой и работают потоки ей принадлежащие. К тому же я не особо понял причём тут вообще единственное владение памятью и как оно чему-то мешает.
> Эх, вот бы методы придумали, чтобы код-то не повторять. Жааль не додумались. Вот ток таких свитчей нам и не хватает
Ну так сделай физзбазз на методах без повторений, если всё так просто. Опустим даже тот оверхед в перформансе на сам вызов метода, потому что jit его может успешно аннулировать.
FizzBuzz должен собираться из Fizz и Buzz, соевая рыгота с хуй пойми что за языком программирования. Такое и на джаве никто не мешает сделать.
>Потому что тыскозал или что?
Потому что ты дебил, у тебя есть тьюринг полный язык выполняемый на этапе компиляции.
>В чём проблема?
В том что не получится ясного и лаконичного синтаксиса. И уж лучше ничего, чем какой то франкенштейн.
>Как отменяет сказанное мной?
Отсутствие нахуй не нужной фичи, это не недостаток, наоборот это преимущество.
Он у тебя-то блять со свитчом каким ты хочешь не собирается.
Дегенерат майнкрафтовский, боже. https://2ch.hk/pr/res/2874645.html#2887404 (М)
Хотя тут можно сделать и то, что ты хочешь
У меня емакс, но даже с lsp тяжеловато ковырять жабакопролиты. Так что там по положняку с IDE-шками?
_, X
X, _
Если будет X, X - то всегда будет выбираться первый. С чего ты решил, что будут выбираться оба, решительно непонятно. Мечтатель, хули.
> Потому что ты дебил, у тебя есть тьюринг полный язык выполняемый на этапе компиляции.
Тьюринг-полный язык на этапе компиляции != вычисления на этапе компиляции. Начиная с того, что тьюринг-полнота не доказывает то, что, например, не получится такой ситуации, когда из-за огромного количества кастов не получится ещё большей нагрузки в рантайме, чем та нагрузка, что можно попытаться сэкономить, заканчивая тем, что, блядь, дженерики не предназначены для того, чтобы ими что-то вычисляли.
> В том что не получится ясного и лаконичного синтаксиса.
И из чего это следует? Из того что тыскозал? У меня даже файлик есть в котором написано, как можно было бы лаконично это реализовать, с сохранением обратной совместимости и без изменений в jvm (т.е. на уровне компилятора и на основе существующих фич).
> Отсутствие нахуй не нужной фичи, это не недостаток, наоборот это преимущество.
Не подменяй тезис. Мнение 99% разработчиков != объективная действительность.
А, ну и еще оно оно основано на побочных эффектах, что вообще говно говно и фу фу.
С чего ты решил, что здесь только один должен выбираться решительно непонятно. Мечтатель, хули.
>нафантазировал, что я предлагаю ввести аналог фичи из петухаскеля
>увидел, что в петухаскеле оно работает не так
>сделал какой-то вывод о чём-то из предложенного мной
Прикол в том, что в жабе оно работает ровно блять также. То, что хочешь ввести ты, твои маняфантазии, которые вообще нигде не реализованы. И пусть там и останутся. Вообще в тред не изливай, идиотина
Так ты может объяснишь, причём тут паттерн матчинг? Или ты хочешь сказать, что возникает диссонанс данной конструкции с паттерн матчингом? Никто не мешает назвать эту конструкцию вместо switch как-нибудь на манер multi-if или check.
Т.е. она чисто на Bool работает или че?
Не, просто прикол в том, что ты никак не уплощишь(flat) столько значений. Скажем вот у нас кортеж из четырех int. Это 2^128 вхождений. Это вот как надо сделать за O(1)? Хэшем? Ну там коллизии. Молчу, если у нас там 4 String или че похуже. Я вот представляю как инженерам оракла делать нехуй, как ради одного еблана делать вот эти все оптизмизации. Угу угу.
Энивей количество полей можно нахуярить любое. Хоть 128, хоть 512 вплоть до 65к. 2^(2^16)) эт сильно, конечно.
>>59319
И вот судя по этому, они даже начальную часть не сделают. Ну т.е. детект, что вхождение возможно в два бранча и как нибудь их запустить. Это работать не будет ни в каком виде.
Но как я и говорил, похуй икс похуй.
> Энивей количество полей можно нахуярить любое. Хоть 128, хоть 512 вплоть до 65к. 2^(2^16)) эт сильно, конечно.
Тебе лишь бы высрать, или чё? Что это вообще значит? Что это из сказанного мной отменяет?
Байткод свитча не знаешь что ли? Ну например один из https://docs.oracle.com/javase/specs/jvms/se6/html/Instructions2.doc14.html
У тебя тут диапазон улетает в небеса и просто в него не влезает. Или ты байткод предлагаешь расширить? Ну там немного места осталось вообще говоря.
И причём тут свитч? Вроде бы я изначально показал, что такое должно раскрываться в обычные ифы. Но я так понимаю ты говоришь про проблему того, что добавление any в кейс умножает размер этого кейса на 2 в худшем случае. Только это претензия вообще не ко мне. Тейк про то, что данной конструкции нет, хоть она и может быть полезна.
Так может по делу что-нибудь скажешь?
> что такое должно раскрываться в обычные ифы
А ну это не за О(1)? Тогда хуйня и не интересно. Я думал что-то уровня пик должно быть.
>У меня даже файлик есть в котором написано, как можно было бы лаконично это реализовать, с сохранением обратной совместимости и без изменений в jvm (т.е. на уровне компилятора и на основе существующих фич).
Ну показывай свой файлик, поржем вместе.
>Мнение 99% разработчиков != объективная действительность.
Все дураки, ты один у мамы молодец.
> Ну показывай свой файлик
https://snippet.host/hmftkq
>поржем вместе.
Могу максимум поржать над могилой твоей сифозной свиноматухи.
> Все дураки, ты один у мамы молодец.
Причём здесь я? Ты вообще понял смысл текста?
нет. пашел нахуй)
>середине-конце 2022
Вот, тогда ещё не слышал о такой блокировке с их стороны. Я даже на одной конференции перекинулся парой слов с их инженером, вполне адекватным он показался. Думал убедить свою контору использовать их JDK, хотя у нас всё равно Temurin. А тут на́ тебе.
>>53332
Кто упакует? Кого упакует? ФБР? Европол?
>>53346
>американской
Так давно пора дать Америке понять, что их юрисдикция ограничена их границами. Можно же выбрать Бразилию или ЮАР, которые плевали на эти санкции.
> в Крыму работать не будет
Зато в Косове типа никто международное право не нарушил, чужую территорию не отжимал. Doublethink as is.
>>53351
>Вроде не слышно было от них высказываний и действий
И я о том же.
И чо
Не нравится жидбрейн - используй вскод. Для него вроде даже официальный плагин запилили. А эклипс че там живой еще?
У нас довольно куколдский суд. Да, санкции, коллективный западный враг, но ПО у вас нелицензионное - извольте соснуть хуйца и заплатить штраф. И ладно я бы понял себе в карман - еще и отдадут его.
Хз, мне его интерфейс не нравится, я просто новую идею скачал. А На эклипс просто больно смотреть.
>Так давно пора дать Америке понять, что их юрисдикция ограничена их границами. Можно же выбрать Бразилию или ЮАР, которые плевали на эти санкции.
Ты ща звучишь как чел с /po/раши какой то. "Дать Америке понять..."
Формально, США и действует в пределах своей юрисдикции, так как пушит свои юрлица. Это гитхаб, как юрлицо США, будет огребать по шапке, если разрешит хостить крымскому васе пупкину его пет проект, а не Крым и не вася пупкин.
>Можно же выбрать Бразилию или ЮАР, которые плевали на эти санкции.
Да дохуя чего можно. До конца даже не ясно - как оно щас. Я вот после того диалога попытался все таки погуглить судьбу этого юрлица, и все равно до конца не понял - чей щас белсофт и либерика. Есть axiomjdk, который лицензированн как отечественное ПО, правообладатель - ООО "Беллсофт". Кто знает - может он еще российский, просто проебал права на либерику и тот домен. Может распался на две части, одна из которых осталась в РФ. Хуй его знает.
>Зато в Косове типа никто международное право не нарушил, чужую территорию не отжимал. Doublethink as is.
Опять параши вьебал. Че с этой инфой ща делать в этом треде? Посокрушаться над несовершенством и несправедливостью мира? Сделать из джава-треда филиал /po/раши? К чему это все?
А че кроме ебли с триалами никак? Кряков никаких нет, как по старинке? Я-то честно хотел продлить, но эти фашисты мне запрещают.
А в чём проблема раз в месяц триалку оформлять?
Мыло можно вообще без телефона регать.
Стирай пару файликов. Получишь вечный триал
Юзаю гитхаб из крема без всяких проксей.
Город прописан севастополь.
Хотя я там больше ищью и пр на впоненсор делаю, чем что то свое
Ну, здОрово если так. А то одно время было дело - банили тупо за сам факт засвета аккаунта с крымского апи.
Ну и как мне тогда динамически подкладывать реализацию без написания своей фабрики?
Никак.
По разным контекстам разводи. Не пользуйся квалифаером. Не пользуйся автоварями вне классов конфигураций. Не пользуйся спрингом. Не пользуйся джавой. Не пиши код.
Обмажь стереотипами еще, как вариант. Хуйня, хороше, выбор между говной и мочем
Короче поебень,а разговоров то было. Интересно бы посмотреть как в проде такую задачу решают
>@Qualifier разве не прибивает гвоздями реализацию(конкретный бин) ? Получается весь смысл инверсии управления теряется.
В проде тупо не задают такие вопросы
Ну вот у тебя задача,в рантайме прокидывать реализацию,можешь не задавать вопросы. Как такое решается?
>Ну вот у тебя задача,в рантайме прокидывать реализацию
На практике у прикладных разрабов такая задача никогда не стоит. Задача стоит - "сделай микросервис, сделай продукт, сделай фичу". А дальше приспосабливайся как хошь в рамках, данных тебе твоим стеком.
Автовайрингом List<Impl> и собиранием их в мапу по какому-то признаку в классе-фабрике. Выбор реализации затем делается через эту фабрику.
Хули ты душный такой,я тебе предлагаю поразмышлять над решением а ты мне своим НИНУЖНО отвечаешь
Мне кажется спринг тут лишний. Точно также можно написать свою фабрику и по какому-то иф елсу выдавать реализацию. Здесь тоже самое только объект создаем не мы а ди контейнер
Ну если те прям мое мнение нужно, я те так отвечу - спринг хуйня, DI-контейнеры переоценены. Но согласись - врядли тебя такой ответ устроит? Таким ответом я только шизов в свой адрес стриггерю.
Можно фантазировать. Например, собрать все имплементации одного контракта в мапку, и в рантайпе резолвить конкретику по ключу. Или проинжектить спринговый контекст и лукапить в нем нужный бин по критериям. Или как ты сказал - фабрику заебенить.
Че значит лишний? У тебя на нем все приложение написано, используется спринг дата и вебмвц. Ты предлагаешь его выкинуть из-за ровно одной задачи которую он не умеет делать? Почему?
Почему сразу выкидывать? Делай на нем то, что на нем делается - вебмвц и слой данных. А что не далется, делай иначе.
Я об этом и написал.
Это ЕДИНСТВЕННОЕ не костыльное решение на спринге.
Нет. Кондишены работают на уровне контекста, а не на уровне рантайма. Как только контекст развернется - все, динамика на этом заканчивается.
Какой самый правильный способ замерить время выполнения сегмента кода?
Шипилев же рассказывал... https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#nanoTime--
Там еще гранулярность важна, поэтому он также говорил, что это как граната в руках у бибизьяны
Так это не к джаве претензия.
Мне нужно будет сдать экзамены (в МухГУ), где вопросы уровня: приведите пример кода, отражающий особенности наследования в ооп. Я знаю, че такое наследование в ооп, но из языков я знаю только js, у которого с джавой общего, вроде, чуть больше, чем нихуя. Вопрос: дохуя ли времени займет научиться вот так "приводить примеры" на джаве?
Если под ООП там подразумевается наследование, а не шиза Бугаенко — то не долго.
>Мне нужно будет сдать экзамены (в МухГУ), где вопросы уровня: приведите пример кода, отражающий особенности наследования в ооп.
А вне ООП бывает наследование?
Алсо я уже лет 8 практически не пользуюсь наследованием. Как правило заменяю композицией или просто по-другому проектирую систему классов. В самом наследовании ничего особо полезного нет, оно немного помогает полиморфизму, но там начинается ебля с виртуальными методами которая всегда выливается в кучу богов. Поэтому для полиморфизма есть интерфейсы и дженерики.
Я примерно так бы и ответил на этот вопрос на собеседовании.
Да, когда я с телефона, то принимаю его религию, а андроиды, как мы выяснили, не только об электроовцах мечтают, но и верят только в rA9.
В жс наследование прототипное и методы и свойства добавляются в прототип класса (который на самом деле не класс, а функция). Есть синтаксис class extends class для красоты. В java есть строгая иерархия классов, синтаксис похож. В чем разница? В том, что класс может наследовать от других классов и переопределять их методы, а в жс для этого методы нужно добавлять в прототип? Если вопрос дурацкий - соре, я начинающий
Ну жаба ж. Пройдут сотни лет, а она все также будет с нами. Профилировать всякое, судя по всему.
Книга Лафоре - 2013 год, две другие - 2018 год.
Вот епта, читай: https://docs.oracle.com/javase/tutorial/
Говорят у шилдта есть перевод этого всего.
Ну хз, вон >>2948163 → до сих пор актуально. Меняется там не так много. Вот добавляться может дохера.
Это скорее добавления, чем изменения.
Var - похую, рекорды - похую.
Можно до сих пор писать код на 7 лвл и он в 21 ждк отлично работает.
Ввод лямбд и функциональных интерфейсов а так же стримов никак не запретил использовать форич по коллекции.
Это просто сахарок как и вар с рекордом.
Давно ли? Чет ты придумываешь. Просто вон сам же пишешь, что спец символов мало, ну вот, мало - поменяй. Вроде есть даже готовые.
Так чево, владеешь или нет?
Я не брайан гётц на пару с гендиректором логитека чтобы мог добавить новый символ в язык программирования.
Ну соси активнее и может станешь кем-то выше даже
Я сказал что нет никаких ломающих изменений.
По идее в 21 ждк будет работать код с векторами/хештейблами и вайлами по итераторам.
Ничего из самых первых версий жявы не сломано.
Имеет смысл вкатываться с перспективой на становление мидлом и сеньором в дальнейшем? Для себя понял, что интересует бэкенд как такая квинтэссенция computer science. Хочется выбрать стек технологий и в нем развиваться до уровня профессионала.
Знаю Python и JS на уровне базовых курсов, но с этими ЯП бэкендером устроиться сложно, как я понимаю. Есть хайповый Go, но там непонятно с вакансиями. C# что-то не привлекает. А Java такой фундаментальный язык, хоть и сильно отличающийся от знакомых мне Python и JS.
Повторить его много раз, и замерить истекшее время в миллисекундах. Потом поделить на количество раз.
В нано - не надо, будет фуфло, я думаю.
JMH.
Ну разве не так? Бэкендеру надо знать языки программирования, ООП, алгоритмы и структуры данных, параллелизм, компьютерные сети, распределенные системы, базы данных, Linux и т.д. Это же программа нормального факультета компьютерных наук, что на Западе, что у нас в СНГ.
Да нет.
То есть вместо вообще не заёбного продления раз в месяц ты хочешь выбрать какой-то сомнительный васянский кряк старой версии?
А давайте что-то интересное, жабовское обсуждать. А идешки. Это вроде вообще тема для /s/
У жабы будущее точно есть и ни в каком ближайшем будущем она не уйдет с топов. Но твоя работа скорее всего будет с легаси говном, да
Легаси это старый и сложный код, в котором трудно разобраться, но надо продолжать писать в таком же стиле?
Почему такое не воспринимают с интересом, как экспедицию к племенам на далекие острова. Живешь среди туземцев, смотришь на их обычаи и традиции, изучаешь язык. Или расшифровываешь кодовую базу как манускрипт Войнича.
Да ты совсем дурачок.
Джава - промышленный стандарт. Куда же она денется?
И легаси-говно (кстати, что это? EJB?) тут ни при чём.
И что, по-твоему, не-легаси? Нодэ ЖС? Или питухон?
Нет, не так. Промышленная айтишка, включая бэкенд - это давным давно коммерция, а не наука.
>Это же программа нормального факультета компьютерных наук, что на Западе, что у нас в СНГ.
Это программа уровня ПТУ, на самом деле. Но так как ПТУ - это не солидно, его роль пыжатся занять курсы айти. Впрочем, коммерциализация системе образования никогда не шла на пользу, поэтому курсы айти сосут. И вкатуны сосут.
Компьютерные науки не совсем науки.
>Это программа уровня ПТУ, на самом деле
А что в программах хороших вузов по-твоему?
Погугли отличие высшего профессионального образования от среднего профессионального, и попробуй сам ответить на свой вопрос.
Ты чет хуев щас пососал. Щенок-салага, походу.
Отучись, устройся на первую работу, поработай пару-тройку лет на проекте, и возвращайся обратно - тогда возможно будешь выкупать уровень дискуссии, а не заниматься демагогией.
Ты пишешь хуету.
>>экспедицию к племенам на далекие острова.
Экспедиция это про изучение нового языка. Котлина там или кложура. Или даже хачкеля, но там живут канибалы.
А легаси это как командировка в Читу, где когда то была цивилизация, но потом случился катаклизм и теперь там живут злобные аборигены, которые последние 30 лет активно уничтожали все что осталось.
>>расшифровываешь кодовую базу как манускрипт Войнича.
Нашел автобиографию Васьки-Три-Пальца о том как он работал на заводе и бухал с пациками на раёне по пятницам. Написано в стиле шизофреника и с таким количеством грамматических ошибок, что приходится расшифровывать.
720x1280, 0:55
Первые 2-3 курса - общие предметы типа математики и философии
На 4-5 про то что было в айти в 90-х: рсубд, сети, устройство процессора. Все это очень поверхностно.
>Почему такое не воспринимают с интересом
Потому что лицемеры.
Порождает легаси код разраб и только разраб. Причем легаси от разраба это такой же естественный продукт жизнедеятельности, как говно, моча или пот. Глупо ожидать найти что то интересное в говне, который ты же и насрал, но разрабы же - свиньи, вся их житуха это трудоустроиться туда, где чисто (новый проект), насрать там, уволиться, и повторить. В легаси у разраба виноваты кто угодно - язык, процессы, методологии, меняющиеся требования, тупые коллеги, но никогда не он сам.
Вопрос такой. Есть какие-нибудь задачники, сайты с практикумом по отработке задач не только на самые основы (строку задом наперёд вывести, найти в массиве / к-нибудь коллекции максимальный элемент и т. п.), но и на ООП, на потоки, на графику, ... ? Желательно и примитивного уровня, и посложнее.
>Вкатун в треде
Тебе стоит начать со школьной математики.
Дано: конкурс на джун вакансию в джаве 1к человек, количество вакансий 10 штук
Найти: шанс вката, если ты не самый смышленный
Напиши, пожалуйста, решение задачи.
Ух, ну я б тебе помог вкатиться. Задачки вместе б порешали, кодек поревьюил... Но бля, и без тебя кунчег уже имеется. Дажи не знаю что и делать. Может кто еще захочет.
А без ментора сложновато вообще говоря, но можно тут или на форумах каких людей заябывать в принципе-то.
Извините пожалуйста.
Ничего страшного, найду себе ещё фембоя-джависта, борда большая
>>В легаси у разраба виноваты кто угодно - язык, процессы, методологии, меняющиеся требования, тупые коллеги, но никогда не он сам.
И все что ты перечислил тоже.
Этот код может и был идеальным 10 лет назад, но с тех пор бизнес требования 100 раз поменялись, попутно отвалились и были заменены несколько либ, часть кода написали по требованию поднажать.
Учитывая что писали это 10 человек и каждый в своем стиле - получается нечто трудночитаемое. Как читать роман, местами переходящий в твердый сайфай и дарк фентези, с вкраплениями картинок из манги.
Лечится непрерывным рефакторингом, но не все это умеют и хотят. ты и дома то убраться не хочешь
>>без ментора сложновато вообще говоря
Ментор нужен когда ты мидол и стремишься стать сенькой, джуну то он зачем? Гугл его заменяет легко.
>И все что ты перечислил тоже.
Все иное не имеет смысла перечислять. Требования всегда будут меняться, либы всегда будут отваливаться, этим процессам просто нечего особо противопоставить. Поэтому абсолютно любой код - это легаси, либо сегодня, либо завтра. И вот это вот презрительное отношение кодерков к легаси - "не хотим", мол, "иметь дела с легаси-кодовой базой" - на самом деле признак полной несостоятельности разраба как профессионала своего дела.
>Лечится непрерывным рефакторингом
В целом - да, но есть нюансы
Ну хуй знает, гугл не ответит на вопрос, как правильно/принято делать. Не можит я конечно дохуя сеньерские вопросы задаю, но типа по сути-то я могу сделать что-то N путями. Какой из этих путей верный, а хуй его знает. Без опыта ты никак это не определишь.
>Ментор нужен когда ты мидол и стремишься стать сенькой, джуну то он зачем?
Ты ебу чтоли дал? Или не работал в айти ни разу? Все с точностью до наоборот, bruh - ментор для масленка жизненно необходим. У масленка тупо нет никакого понимания состояния дел в айтишке чтобы адекватно анализировать выдачу гугла и отделять зерна от плевел. В отличие от миддла, который хочет стать сенькой.
Тыб еще ляпнул что бредогенераторы на базе чатгопоты вкатуну ментора заменят.
Нуу, я до сех пор ответа не получил. Я даже уже не могу посчитать сокльких людей я заебал этим вопросом... https://2ch.hk/pr/res/2905153.html#2905307 (М)
Единственное че сказали, не ну в принциииииипе-то ноорм. Только в аргументах пиздец, но а так, ноооорм. Ахуенно в общем.
Да НЕТУ в интернете никакого положняка. В интернете крупица базы размыта тоннами дерьмовых мнений, инфоповодов и холиваров. И этот факт легко прослеживается по повадкам маслят, их вопросам и заблуждениям. А ты - если отрицаешь нечто настолько очевидное, скорее всего просто предвзят.
Сука, да первая вешь, через которую проходит вкатун - это онбординг с ментором. О чем тут спорить вообще...
>Для джунов на стековерфлоу разжеваны все вопросы какие они только способны сформулировать.
А к стековерфлоу отсылка - вообще анекдот. Да новичек тупо не сможет на стековерфлоу свой вопрос задять, его обоссут и забанят. Кто думает что стековерфлоу - дохуя выход для новичков, сам никогда на нем ничего не спрашивал.
>>новичек тупо не сможет на стековерфлоу свой вопрос задять
>>его обоссут и забанят
И правильно сделают, его вопрос уже задавали, надо просто в поиск его вбить. Я не понимаю нахуя там вообще что то спрашивать и ждать ответ неделю, если такая же тема рядом.
>>сам никогда на нем ничего не спрашивал.
я там даже не регистрировался
>>64493
тебе ж ответили
- нахуя такая вложенность. 2 точки в названии, ты че ебанутый?
- на ревью я бы доебался что ты в мапер засунул здоровенный кусок кода, а не просто посчитал и передал в маппер готовую переменную.
>>Единственное че сказали, не ну в принциииииипе-то ноорм. >>Только в аргументах пиздец, но а так, ноооорм.
Ну и чем ты недоволен? Я б точно также ответил. Если код работает и прочитать можно - то пойдет. У меня коллеги такое же иногда пишут.
>>Типа дтошки на уровень сервисов, нормально ли их туда пропихивать... В идеале бы проектик какой-то. Я б глянул как белые люди архитектуры делоют. Или книжка какая мб есть, типа вот суем дто тогда-то и тогда-то. Что есть сервис определяем по тем-то критериям...
Погугли курсы на торентах, там где код пишут. Или там летскод какой нибудь на ютюбе посмотри. Там же тебе наглядно показывают как типовое приложение выглядит.
Последние три года занимаюсь доработкой и рефакторингом легасятины.
Это охуеть когда видишь в заголовке дату создания файла 2005 год.
И код на 5 лвл в лучшем случае.
У меня легасятина в варники под 9 томкат собирается. Потому частично переписываю на 7 лвл.
Часть кода из jsp выношу в либы. Их на 8 лвл с флагом сборки на 1.7 делаю.
Часть функционала отпиливаю в спринговые микросервисы - там 11 жявка. Наверное на 17 потом кто то их перепишет.
Но основная проблемка легаси не в лвл языка. А в некротехнологиях.
Много вас модных молодежных знают про дескрипторы развертывания, про сервлеты и их свойства на уровне конфигов, про евентлистнеры томката.
Много из вас использует xslt преобразования xml-ок как бизнеслогику?
А это тащит дропнутые давно либы.
Переписать хслт на ифы? 5 мегабайтные xslt-шки с неебовым уровнем вложенности и кейсов? Мне сразу сказали - при рефакторе оставить, тратить на это время нерационально.
Что еще. Соап? Ну это полулегаси. Но например в легаси соап реализован или на axis2 или на cfx. Охуеных либах. Которые никто больше не использует, бгг.
В спрингах же убогий springws который и половину их функционала не умеет.
> если такая же тема рядом.
Когда меня обоссали и забанили там никакой темы рядом не было. Вопрос уникальный был, просто слишком сложный и локальный для местных кармодрочерских петухов, составляющих 100% активной аудитории.
мимо
>Много вас модных молодежных знают про дескрипторы развертывания, про сервлеты и их свойства на уровне конфигов, про евентлистнеры томката.
Н-ну я-я...
джава 5 кун
соси хуек залетуш
Чтобы только через чат общаться?
Нельзя, да и оно не нужно.
А кто будет кабана михалыча радовать своим присутствием, м?
Как же похуй, в работе все это хуйня без задач.
>Много вас модных молодежных знают...
Да в целом ничего такого не услышал чего бы не знал. Хотя, могу представить масштабы бедствия - мейнтейнить xslt трансформации может быть действительно больно.
Говно, но похуй.
0 или отрицательную.
Если нужен джун - дадут 50-100к. Если не нужен - не возьмут даже если доплатишь.
>А вне ООП бывает наследование?
Есть фичи, визуально-похожие на наследование, но с совершенно иной идеологической подоплекой. Например, в хаскеле можно наследовать тайпклассы.
Тут надо понимать, что не так с наследованием в ООП. Так получилось, что наследование класса B от класса A в джаве, к примеру, неизбежно порождает связь между типами этих классов - тип B теперь подтип А, и может быть подставлен в любой код, который ожидает на вход A. Но при этом наследование не дает вообще никаких гарантий тому, что тип B - реально подтип А, что сабтайпинг-связь для этих двух типов вообще легальна. Более того, сложившаяся школа ООП никогда не учила разрабов думать об иерархии в терминах типов данных - вместо этого ключевую роль получили классы как мешки с полями и методами, а наследование позиционировалось и воспринималось людями как просто инструмент реюза кусков базового. Бывшие коболисты все переврали.
pentium gold 7505 + 12 gb ram
Читай жеп, там все написано.
Тьюринг полные настройки нужны чтобы решить config hell. Вместо того, чтобы ебаться с подробностью конфигов, можно просто заставить пользователей са среньк мим себе конфигурировать что надо.
Чего? Причём тут это?
Эйсид предполагает блокировки. Лум это про распараллеливания,а не про реактивность
>Эйсид предполагает блокировки
Это деталь реализации. Хуйню несешь.
>Лум это про распараллеливания,а не про реактивность
Каво... У тебя путаница с терминами. Покури там гайды, хызы.
Ну ты тупое хуйло просто. Еще тебе отвечать блять нормально. Тебе задали четкий вопрос, каким блять образом реактивность мешает ACID, ты же даже не понял, почему то, как бд реализуют эти принципы, не имеет никакого блять значения. Реально, заткни пасть и пиздуй нахуй. Еще мне что-то указывать будет. Вон в шарпотред можешь. Или почитай, что единственное когда принципы нарушаются, так это в распределенных системах. Например https://en.wikipedia.org/wiki/PACELC_theorem
Бхахаха, дурачек раззалупился! Мало того что буквально в каждом слове своем спизданул хуйню какую то, так еще и в залупу на анона залез. Давно так не смеялся - тирада про асид и блокировки просто шедевр какой то.
2 ядра, 3 гига, лол.
А если у тебя чето тормозит - ну так пошел нахуй. Сиди и оптимизируй пока не перестанет.
Тредом чтоли ошибся?
моего английского пока мало, не тяну
Кстати, че эта за хуйня? Не хочу я регаца в этой параше.
Шилдт 13 издание выдавил, там 21 джава есть. Но на русский не переведено и вероятно не будет.
На i5-4460 у меня идея, открывая баелдунгоский мавен-проект дико тормозила. И ждал я это просто пиздец долго.
На работе ноут на i5-1134g7. Пободрее, но притормаживает.
Год назад обновился на пеку на i7-12700. Теперь идея индексирует большой проект с комфортом в то время, пока открыто пару докер-контейнеров под всл, другой проект в идее, в котором поднята спринг-бут приложуха и хром с полусотней вкладок.
Для игр, для адобовского софта. Линупс поставил в дабл бут. Но так и не использовал. Вообще не знаю нахуя он нужон. Всла с докером пока хватало для всего.
Может я правда чего-то такого не трогал, где реально линупс нужен. Если подскажешь - буду благодарен, мне нужна мотивация начать пользоваться линупсом.
Переключение раскладки по капсу. Нормальные виртаульные столы, тайлинг не через жопу. Хз, zfs, а не жопошная ntfs. Еще не индусская кодировка бай дефолт.
>Для игр, для адобовского софта.
Ну первое вроди благодаря вульве кое как работает. А второе да, страдай.
>Переключение раскладки по капсу. Нормальные виртаульные столы, тайлинг не через жопу. Хз, zfs, а не жопошная ntfs. Еще не индусская кодировка бай дефолт.
Тебе делать нехуй что ты такой хуйней страдаешь на работе? Еще небось вим напердолил под себя?
Из всего только про кодировку интересно. Но и это не то чтобы прям большое неудобство на машнине для проработки петиков.
На работах давали и линупс и винду. Вообще пофиг в большинстве случаев. Разве что на линуху было больно 2 года назад поставить криптопро и расширения для браузеров.
Слава богу мне это больше не нужно и знакомые говорят, что теперь это не так больно.
> Переключение раскладки по капсу.
Пару месяцев назад сделал так на шинде с помощью программы от какого-то пидора с синего двача. Switchy, что-ли, называется.
Есть ли что-то, что им надо знать, а они не изучают это?
Не работает в ряде пограм, к сожалению. Есть способы и лучше... Но энивей это костыли ебаные.
Надо в автозагрузку от имени админа добавить. Через какой-то таск шедулер что ли делается это.
Щемите пидора
Надо всем перекатываться в эти языки в срочном порядке
На джаве пишут банковские приложения, а не хелло ворлды. Чтобы привыкали сызмальства.
Вот выйдет вальгалла, будем писать на джаве оборонный софт. Ракеты, дроны будем программировать. Нужно только потерпеть.
для js, python, rust и elixir норм
Безыдейным тут не место.
И еще вопрос: Java Spring + React - это нормальный стек?
В том плане что работы на нем много?
Или Java Spring - это в основном бэкенд-разработка в банках?
>самый лучший курс на ютубе
Немчинский.
>это нормальный стек?
Лучший в мире.
>В том плане что работы на нем много?
ДАХУЯ
>Или Java Spring - это в основном бэкенд-разработка в банках?
Нет.
>Немчинский
Он хороший мужик, но некоторые обзорные видосы сняты немного на отъебись. Половина ролика про книги по Джаве посвящена тому, какие неподходящие книги ему предложили помощники. А там Шилдт и Хорстман вроде были. Пол видео критикует, под конец свое предлагает. А мог бы в 2 раза больше посоветовать нормального.
Надо посмотреть, есть ли его контент на торрентах.
Пыня сосоет у навальногь
Хотя у тебя спринг. Вроде у них тоже дока есть, ну по крайней мере я видел. Качество там конечно хуже чем у оракла, но терпимо.
у пидерашек оливье за год подоржало на 40 процентов лош
Какой? Самый лучший среди всех языков? Потому что джава самый лучший язык среди всех языков.
В каких это?
Я когда пошел на них, все было ок. Несколько знакомых успешно с них устроились, но из-за разных обстоятельств я ппц затянул курс. Сейчас не знаю как быть. Какие варианты ?
Там нет фреймворков.
>>69599
>Немчинский.
Дрочую этого деда, покупал у него консультацию, по его советам получил оффер. Ещё есть Заур Трегулов, Наиль Алишев и уголок сельского джависта
>это нормальный стек?
Я чаще вижу Java Spring + Angular, но не принципиально. А так Java + Spring это лучшее что человечество создавала априори
>В том плане что работы на нем много?
Как говна под забором
>Или Java Spring - это в основном бэкенд-разработка в банках?
No
Че нахуй?
>анноташек маппинга
Feign на самом деле - смешной феномен. Это тот случай, когда анноташкозадроты попытались натянуть сет анноташек, проектировавшийся под одну задачу (описание REST-эндпойнтов), на другую, несовместимую с первой (описание и генерация REST-клиентов). Обсер был очевиден еще в эпоху Java EE 7, когда оный работал на JAX-RS анноташках и был просто вирусной хуетой, паразитирующей на спеке, вообще не про их честь написанной. Но спрингосоя все схавала как всегда.
>Я чаще вижу Java Spring + Angular
говорят ангуляр это закос под джаву
а нестжс закос под ангуляр и джаву
>ангуляр это закос под джаву
Ранний ангуляр (который angularjs) - да, закос натурально под джаву. Поздние вроде уже были не настолько джавистскими - все таки во фронте компоненты и их композиция - более привычный и естественный подход, нежели сервисы и их инжекция как в джаве.
>А так Java + Spring это лучшее что человечество создавала априори
Это тоже ирония?
Бывает Spring без Java?
Так мне вместо string вылезет object. System.out.prinln() это пример, как и сам String.
С котлином или груви
Ну ты видимо да. Че тебе блять надо-то? Сокращение кода в switch? Или че?
По поводу diamond, оно работает только в new, какого хуя ты сюда приплетаешь его? Тем более, что там все достаточно просто, тут же надо ебать какой анализатор нахуярить, чтобы... Слушай, а это не ты вот хуету напридумывал с примитивами в свитче? Тогда сразу пошел нахуй.
> По поводу diamond, оно работает только в new, какого хуя ты сюда приплетаешь его?
Потому что можно было бы и не только в new его сделать, лул.
> Че тебе блять надо-то? Сокращение кода в switch? Или че?
Даймонд оператор нужен для свитча.
А причём тут вообще я?
Диск очень, очень медленный. Поэтому буферизация хорошо оптимизирует.
https://2ch.hk/pr/res/2973076.html (М)
В чем разница между жабовскими и шарповыми тасками?
Это копия, сохраненная 7 марта в 02:19.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.