Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ? A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна. Сейчас все советуют Hyperskill. Более продуманный план обучения. Но, как и любой %COURSENAME% не гарантирует тебе успешного вката. Выучиться можно и самостоятельно, не отдавая свои кровные васянам-наставникам.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом? A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред. Но в последнее время увеличивается количество вакансий на удаленке в связи с ковидом. Но, возможно, как вся эта мракобесия закончится, всех обратно загонят в стойло.
Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать? A: Книги: https://libgen.is
Q: Хули все книги на английском? A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо? A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко объявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять раз скопипасти этот кусок кода и выведи в консоль". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут. A: Не все конторы дрочат на подход Яндекса который спиздил подход гугла. Но для крупных фирм знать алгоритмы маст хев уже на уровне джуна/трейни, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Как же у меня бомбит с переиначивания смыслов слов. >Последний из управляющих операторов — return. Его используют для выполнения явного возврата из метода Что значит возврата? Что значит метод возвращает значение? Это значение кто-то спиздил? Оно блять ушло куда-то, чтобы его возвращать? Сука, и уже кучу сайтов посмотрел - везде такая же непонятная чепуха написана. Ебучие копирайтеры и друг друга пиздят. Неужели это так сложно объяснить нормальным человеческим языком? Это что квантовая физика, задачки Перельмана? Вроде читаю русский язык, а смысл слов другой, ни как у людей.
>>1980926 Ты когда функцию пишешь, то указываешь что ты ПЕРЕДАЕШЬ на вход и что ожидаешь ПОЛУЧИТЬ на выходе. Функция после окончания работы обязана ОТДАТЬ что-то на выход. То есть функция ПОЛУЧАЕТ что-то на вход и ВОЗВРАЩАЕТ что-то как результат результат своей работы. Спешу заметить, что ты можешь передать в функцию ничего, а еще ожидать, что функция вернет ничего (оно же void).
>>1980927 Вызова куда, чего? Пиццы к двери или что? ЧТо ты несешь? Научитесь блядь выражать мысли понятно. Почему функцию команды нельзя нормально объяснить? Вы ваще сами понимаете что кодите там, программисты мамкины? Вот че делает этот код? Он что создает переменную по имени метода, которому присваивается значение ретёрном? public String getStatus() { return "Dead"; } А какого хуя не написать по-нормальному? String x = "dead"
>>1980935 Вызов твоей мамки, пидор тупой. Никаких переменных твой метод не создает. По имени метода он возвращает строку, в которой содержится некий статус. В конкретной реализации возвращает строку "Dead". Написать String x = "dead" нельзя, потому что я, как сторонний разработчик, не хочу думать что твоя больная бошка подразумевает под полем с именем "х".
>>1980945 Это не терминология, это англицизм чистый. Я себе голову сломал пока понял что понимают под : классом, объектом (экземпляром класса), методом и тд. Очевидно что на инглише это так и написано Class object method. Но эти уроды вместо объяснения через логику: что есть множество и в нём есть подмножества; просто повторяют как сектанты "нууу эээ классы это как схема для объекта нууу эээ а объект типа что-то делает и это метод". Это как я буду объяснять русскому из 20-го века что означает LOL Батхерт Тролинг используя только эти слова.
>>1980958 Думаешь, на инглише эти термины сильно понятнее для простого Джона? Да нихуя, это узкоспециализированные смыслы, и знание самого популярного значения не помогает, разве что слово знакомое. Точно так же мучаются с циклически взаимосвязанными понятиями A -> B -> C -> A, и логика тут не поможет.
>>1980958 >>Я себе голову сломал пока понял что понимают под : классом, объектом (экземпляром класса), методом и тд. Может тебе литературу попроще почитать типа пикрелейтед? >>это англицизм чистый Там половина терминов с советских времен, многие термины из математики. Может тебе еще и бинарную систему в целковые перевести? Умерь свой батхерт и учи терминологию или иди нахуй.
Если я делаю извлечение метода в данном же классе, правильнее передавать ему весь объект или только те параметры, которые ему нужны? А если извлекаю в другой класс?
>>1980802 (OP) Как же хорошо что сдохла Sun Microsystems. Как же плохо, что до того как сдохла Sun, она породила недоязык Java. Но всё же плохо, что умер Sparc - было всё же что-то хорошее у Sun. Лучше бы Java сдохла вместе с Sun, а Sparc бы жил.
>>1980935 > А какого хуя не написать по-нормальному? String x = "dead" Пиздуй в паскаль тред и пиши на здоровье function myParabola(): string; begin result := "dead"; end;
Подскажите, как в IDEA создать Maven файл (pom.xml) в уже существующем проекте (в котором нет Maven в корне) и конкретной папке? А ту я нашел только на корень (через Add framework...) ко всему проекту, но мне нужно только к одной директории.
Ну например / /somefolder /folder /folder/src
Вот нужен maven, относящийся и работающий только в /folder/pom.xml
И именно через GUI IDEA чтобы потом там же запускать всякие clean, build и т.д.
>>1981110 >>не могут определиться с тем, как правильно отсчитывать время? Консервативные слишком. Инкубатор жерминаля 10 жерминаля им видите ли не нравится, им 30 марта подавай с ебанутой длиной месяцев.
Что вы делаете с блядскими .iml файлами, насранными Idea? Если сама папку .idea я добавил в гитигнор, то он срет ими еще возле pom файлов :/ Их принудительно что ли добавлять?
>>1981366 Хороший вопрос. Я думал об этом долго. Предлагаю их хранить отдельно. Насчёт типа данных идей не имею. хорошо бы время представлять в пикосекундах, но не помещаются в 32 бита. Короче, время меньше секунды это тема для обсуждания.
Блиа, такую интересную тему мусолим в треде про Java. Нехорошо это.
Аноны подскажите плиз в чего щас лучше вкатываться, в какой язык программирования?сам в этом ноль,хотел бы найти учителя который будет вести,буду ему % от зп платить и в дальнейшим тоже
>>1981491 Лок это персонаж из сериала остаться в живых. Монитор это куда смотреть чтобы кодить. Мьютекс это презервативы вроде, не знаю, не пользовался.
И вот еще говорят, что в джаве сделали такие вот дженерики, чтобы сохранить бэквард компатибилитю. Якобы чтобы скомпиленный класс из java 1.5 мог быть запущен в java 1.1 Но ведь если я сейчас возьму программу на java 11, скомпилирую, и попытаюсь запустить на java 8, то бросится UnsupportedClassVersionError Application has been compiled by a more recent version of the Java Runtime
Мне кажется их сделали такими, чтобы не изменять саму jvm на уровне байткода, чтоб наоборот скомпиленные классы из 1.1 работали в 1.5 жвм, а не наоборот. Иными словами, чтобы в .class файле все было как раньше: CAFE BABE и вся остальная его структура.
>>1981940 >Мне кажется их сделали такими, чтоб наоборот скомпиленные классы из 1.1 работали в 1.5 жвм, а не наоборот Поздравляю, ты только что понял значение словосочетания "обратная совместимость".
>>1981459 Вот так время хранит LocalTime, в LocalDate аналогично. А LocalDateTime - комбинация LocalDate и LocalTime. Понятно, что подход не байтоебский, но зато не будет никакой хуйни.
>>1982038 Если в проекте уже используется мапстракт, то даже для 5 ебано писать руками маппинг. Если еще не используется, то ради 5 его ебано прикручивать.
>>1982046 >он просто делает один объект таким же, как другой. Даладно? Я вижу что он делает, я спрашиваю КАК он это делает. Я раньше только всякие String и int в параметрах писал. А тут ссылка на класс и переменная y, она чего делает? Если бы я просто написал x = y мне бы выбило что разные типы данных, а если через точку то норм. Это что?
Сап. Делаю первый раз SpringMVC CRUD приложение. Просто веб страница users, которых можно создавать, добавлять, извлекать и получать весь список. Юзеры будут отображенны таймлифом и хтмл. Я делаю без CrudRepository, на хибернет. Как должно все быть по уму? Я правильно понимаю, что должен быть сервис слой, который просто обертка над DAO, в DAO я создаю EntityManager em = entityManagerFactory.createEntityManager(); дальше, там же в DAO я делаю транзакцию, а вот тут я путаюсь. Как связать дао с контроллером? Может что-то можно читнуть на эту тему?
>>1982270 Ты из контроллера вызываешь нужный метод в дао а ещё лучше сделать сервис, который вызывает метод дао,а метод этого сервиса вызывается из контроллера
>>1981110 Очевидно - потому что время используется для разных целей. Кому-то нужно зафиксировать момент времени и потом его отобразить в привычном человеку формате. Кому-то нужна календарная дата кстати в мире используется не только григорианский календарь. Кому-то локальное время. Кому-то дата-время в конкретном часовом поясе.
Есть экзотика типа год-месяц/час-минута, но тоже встречается.
>>1982070 Так вроде определились, <=7 полей - делаешь внутренний класс, как только больше, сразу подключаешь мапструкт, удаляешь внутренний класс и срешь аннотациями на сущность.
private final native public volatile static transient synchronized protected abstract class FactoryFactoryFactoryFacade extends AbstractBuilderIteratorBeanDecoratorInterceptorFactoryFactory implements AbstractFactoryStrategyIteratorProxy, AbstractFactoryFactoryListener {
SingletonDecoratorAdapter singletonDecoratorAdapter = new SingletonDecoratorAdapter();
AbstractFactoryFactorySingletonBuilderProxy abstractFactoryFactorySingletonBuilderProxy = new AbstractFactoryFactorySingletonBuilderProxy();
VisitorBeanSingletonProxyAdvisorBuilderFactoryFactory visitorBeanSingletonProxyAdvisorBuilderFactoryFactory = new VisitorBeanSingletonProxyAdvisorBuilderFactoryFactory();
IteratorListenerBean iteratorListenerBean = new IteratorListenerBean();
AbstractAdvisorBuilderIteratorInterceptorSingletonFacadeStrategyDecorator abstractAdvisorBuilderIteratorInterceptorSingletonFacadeStrategyDecorator = new AbstractAdvisorBuilderIteratorInterceptorSingletonFacadeStrategyDecorator();
return new AbstractListenerFactoryFactoryDecoratorAdapterProxyInterceptorObserverFacade(); }
volatile static transient public native protected AbstractListenerBuilderAdvisorProxyVisitorFacade abstractListenerBuilderAdvisorProxyVisitorFacade(DecoratorSingletonAdvisorFactoryInterceptorListenerBuilder decoratorSingletonAdvisorFactoryInterceptorListenerBuilder, AbstractDecoratorBuilderBeanListenerSingletonObserver abstractDecoratorBuilderBeanListenerSingletonObserver) { AbstractObserverAdvisorBuilderIteratorFacadeFactoryFactoryFactoryAdapter abstractObserverAdvisorBuilderIteratorFacadeFactoryFactoryFactoryAdapter = new AbstractObserverAdvisorBuilderIteratorFacadeFactoryFactoryFactoryAdapter(); adapterAdvisorDecoratorFacadeProxy.setAbstractAdapterBeanDecoratorStrategySingletonFacadeListenerFactory(this.abstractAdapterBeanDecoratorStrategySingletonFacadeListenerFactory);
return new AbstractListenerBuilderAdvisorProxyVisitorFacade(); }
private final public static volatile transient synchronized protected InterceptorSingletonVisitor interceptorSingletonVisitor(AbstractDecoratorStrategyProxyObserverInterceptorBuilder abstractDecoratorStrategyProxyObserverInterceptorBuilder, AbstractVisitorAdvisorFacadeListener abstractVisitorAdvisorFacadeListener, VisitorFactoryFactoryBuilder visitorFactoryFactoryBuilder, VisitorProxyFacadeFactoryFactorySingletonAdvisorDecorator visitorProxyFacadeFactoryFactorySingletonAdvisorDecorator, AbstractAdvisorBuilderDecoratorInterceptor abstractAdvisorBuilderDecoratorInterceptor) { AbstractProxyAdvisor abstractProxyAdvisor = abstractFactoryFactoryDecorator.getListenerInterceptorFactoryFactory().getAbstractProxyAdvisor(); AbstractVisitorAdvisorListenerStrategySingletonIteratorAdapterFactory abstractVisitorAdvisorListenerStrategySingletonIteratorAdapterFactory = new AbstractVisitorAdvisorListenerStrategySingletonIteratorAdapterFactory(); abstractBeanAdvisorSingletonInterceptor.setAbstractFactoryFactoryAdvisorFacadeStrategy(this.abstractFactoryFactoryAdvisorFacadeStrategy); AbstractAdvisorProxyStrategyIteratorVisitorObserver abstractAdvisorProxyStrategyIteratorVisitorObserver = new AbstractAdvisorProxyStrategyIteratorVisitorObserver();
if (abstractSingletonFacadeFactoryObserver.isInterceptorListenerFacade()) { iteratorProxyListenerFacadeBean.setAbstractStrategyBean(this.abstractStrategyBean); AbstractFactoryDecoratorBeanFacadeAdapterProxyAdvisorVisitor abstractFactoryDecoratorBeanFacadeAdapterProxyAdvisorVisitor = abstractBeanInterceptorIteratorListenerFactoryFactoryStrategyProxyObserver.getAbstractObserverFacadeListenerSingletonProxyAdvisorStrategyVisitor().getAbstractFactoryDecoratorBeanFacadeAdapterProxyAdvisorVisitor(); abstractProxyBuilderVisitorSingleton.setIteratorAdvisorProxySingletonAdapter(this.iteratorAdvisorProxySingletonAdapter);
if (abstractDecoratorAdapterVisitorProxyObserverIteratorBuilderFactory.isDecoratorFactoryFactoryFacade()) { visitorIteratorObserverProxyAdvisor.setAbstractObserverSingletonProxyAdvisorBuilderDecorator(this.abstractObserverSingletonProxyAdvisorBuilderDecorator); singletonFacadeAdapterListenerFactory.setAbstractIteratorInterceptorSingletonListenerAdvisorDecoratorBuilderFactoryFactory(this.abstractIteratorInterceptorSingletonListenerAdvisorDecoratorBuilderFactoryFactory);
while (abstractFactoryAdapterSingletonFactoryFactory.isAbstractStrategyFactory()) { abstractAdapterBeanStrategySingletonAdvisorBuilderListenerFactory.setAbstractStrategyFactoryFactoryFacadeBuilderFactoryIteratorProxyObserver(this.abstractStrategyFactoryFactoryFacadeBuilderFactoryIteratorProxyObserver); abstractObserverAdapterFactoryFacadeDecoratorBuilderInterceptorFactoryFactory.setAdvisorIteratorFactoryProxyDecorator(this.advisorIteratorFactoryProxyDecorator);
Спасите, Помогите! Пытаюсь сконфигурировать СпрингМВС с Хибернетом, и создать EntityManager. Томкат выбрасывает исключение 500. Failed to instantiate [web.dao.UserDaoImpl]: Constructor threw exception; nested exception is javax.persistence.PersistenceException: No Persistence provider for EntityManager named web. Я делаю все как вот здесь https://www.baeldung.com/the-persistence-layer-with-spring-and-jpa меняю только базу данных, в одном месте на фото я не понимаю, только что надо писать там где я обвел, я пишу просто "web" это папка в которой все пекеджы у меня. Там же на Баелданге они фиксят эту ошибку (третий скрин), но опять же не понятно куда они все это прописывают. Я все делать пытаюсь в классе с аннтоацией @Configuration. Они пишут просто , we must also override the getPersistenceProviderClassName() method, а что это и где это?
>>1982709 На баелдунге очень много мелочей упущено, о которых ты сам должен догадаться. Я очень классно поебался с этим в другой их статье, где надо было свой КРУДик написать.
>>1982669 Нет. Поменять пяток енумов. Создать пару десятков классов евентов, линстенров и прочех экшонов. Десяток конфигов. Поменять десяток контроллеров заинкрементив версию. Ну и смазать все тестами.
Потсаны, а вы знали что в assertj юзаются рекурсивные дженерики? Именно поэтому там такое красивое api, например assertThat(obj.getField()).isEqualTo("boobs")
А вы на работе такое пишете? Где <SELF, E> ? Я боюсь такое писать.
>>1982688 catch (final Exception e) { RuntimeException ex = new RuntimeException("some info"); ex.initCause(e); throw ex; } А я так делал. Значит можно и в конструхтор.
>>1982721 >Охуеть от отсутствия тестов, ты хотел сказать. Тут уж где как. В том проекте с количеством тестов все было более менее. Да были окаменелые куски которые были не покрыты тестами и их старались не трогать даже мертвые куски когда боялись выбрасывать. Но свежие наслоения функционала тестами покрывались и достаточно хорошо. И пайплайн гонялся на каждый мерж в релизный бранч. Но тесты проходили не стабильно и часто были красные, тогда QA ручками прогоняли упавшие тесты.
По ощущениям легаси, это как старая тачка, вроде едет. Но в пороге дырка, одна лампочка перегорела и третья включается через раз. Все можно починить, но денег уйдет столько что проще новую купить. Вот и латают в ожидании момента, когда скопят на новую.
>>1982761 >потому что стримы уродует а вот меня калит, что с этими блядскими стримами отрабатывается только самый оптимистический сценарий. При негативном в лог ничего не пишут, ошибок не кидают. Дебажить - ебанёшься разворачивать эти 10 уровней лямбд
>>1982774 Их скипают только пока пилят фичу, ибо слишком долго каждый раз пересобирать с тестами, а хотсвап не всесилен. Когда фича готова, можно собрать с тестами, пофиксить сломанное и пушить. Но часто либо лень, либо забивают.
>>1982873 >Написать тесты по времени и усилиям может занять столько же, сколько саму фичу с нуля написать. Два чая. А еще проблема легаси - тесты это спецификация поведения класса или сервиса или эндпоинта или вообще сервиса в целом. Когда все это дело разрабатывается - спецификация ясна и ясно какие тесты надо писать. Но для легаси спецификация не ясна, непонятно какое поведение надо тестировать. Что баг, а что фича.
Заинтересовала вот такая фиговина https://dhabits.ru/, называют себя цифровыми привычками, отзывов нормальных не нашел, кто что слышал? Не кидалово ли это, что потом за работу предлагают... В общем стоит ли тратить время (о деньгах вроде речи не идет)?
>>1982790 Ну ты сам же написал: где как. Зависит от компании сильно. У нас прям хардкорное легаси. Но пару лет назад мы начали распиливать один монолит на микросервисы. В новых сервисах все красиво. Да, это дорого. Но сейчас это вопрос выживания уже. Пользователи начали бежать из-за устаревшего интерфейса. И оказалось что написать интерфейс с нуля, с рестами и жс фреймворком, внезапно дешевле, чем воротить тоже самое на старом JSP. В итоге вложив сейчас, компания сэкономит в долгосрочной перспективе, плюс лояльность пользователей. >>1982801 >>1982873 В нормальных конторах тесты руками не гоняют, как уже правильно написали. Есть пайплайны, которые запускаются на МРе. У нас все тесты минут 20-30 идут. Ебанешься ждать. Ну да, я вот в понедельник пилил фичу, а весь вторник делал тесты на нее. Затратно, зато потом окупается сполна. И не страшно потом этот код трогать. А то у нас реально есть ебанутый код, ещё и без тестов. И вот его трогать откровенно страшно. Можно легко ошибиться, а потом пизды за это получать.
>>1982925 >Но для легаси спецификация не ясна, непонятно какое поведение надо тестировать. Что баг, а что фича. У меня прямо эта проблема сейчас в написании тестов для старого кода.
>>1983009 Ну и нахуй шли тогда. Нет документации - нет кода. Я сначала тоже парился, а теперь забил. Пускай ПМ думает, документацию ищет, у заказчиков выясняет что надо. А то пиздец. Сделай то не знаю что
>>1983230 В одну строчку точно нет, но опущенные скобки в 2021 некоторые допускают. Хотя, поскольку 95% джавы держится на дедах, то тебя обоссут без скобок. И даже со скобками обоссут.
>>1983000 >У нас прям хардкорное легаси. Лол, давайте меряться у кого легаси хардкорней. У нас система пережила 3 пеерезда системы контроля версий CSV -> SVN -> GIT, а в GIT еще и историю в какой-то момент убили, потому что репа весила неприлично много. На момент смерти проекта репка снова разрослась до 25 гигов и чекаут с нуля занимал пару часов нет, бинарные файлы там не хранились. Билд без тестов занимает 5-10 минут, с юнит тестами 30-40 и там покрытие где-то 30% было.
>У нас все тесты минут 20-30 идут. Ебанешься ждать. 40к тестов, 4-8 часов, поэтому кто сломал билд не всегда ясно. В лучшем случае можно 2 раза за день прогнать пайплайн. Так что процесс подготовки релиза занимал 1-2 недели.
>>1983012 >у заказчиков выясняет что надо Тебе с вероятностью 99% ответят, что надо так как сейчас работает.
Нахуя нужна прокладка RegistrationForm c первого пика? Полез в другой гайд, там спокойно юзера передают. Такое ощущение что вложенность ради вложенности.
>>1983428 Помню я попробовал взять эту книгу с наскока и жестко был обломан тем, что нигде не пояснялось оформление таймлифа в штмлке, а именно th:object.
Методом тыка удалось выяснить, что надо писать тип объекта с маленькой буквы, а не его имя внутри метода. И так много всяких интересностей по всей книге. Зато навсегда запомню теперь.
>>1980975 Thread и stream разные понятия. Правильный перевод thread - нить (по аналогии с ткацким станком), но лучше вообще не переводить и читать доку на английском.
Java/Kotlin Developer в компанию ARRIVAL – создаем электрический транспорт и инфраструктуру к нему; по ссылке видео на результат и наш канал на YouTube https://www.youtube.com/watch?v=nxMwbap2bwM&t=19s
Формат работы: можно офис, можно полностью удаленка. Нам неважно в каком городе Вы живете.
Языки: English В1-В2
Новый проект – Traceability, этап MVP: оцифровка, отслеживание, сбор и хранение всех данных каждой физической детали и набора событий цифровых объектов транспортных средств. Нагрузка системы 80 млрд активных записей и до 1000 запросов в минуту.
Чем предстоит заниматься: – участвовать в разработке проекта: написанного кода очень мало сейчас; будет возможность обсуждать и влиять на разработку; – предлагать и использовать современные инструменты и технологии для решения задач: нет ограничений по инструментам, если их использование оправдано.
Stack: - Microservices, event-driven architecture styles - Kotlin/Java for core modules, other languages can be used if needed (e.g. NodeJS for BFF pattern) - General instruments of JVM-stack: Maven, Gradle, JUnit, Mockito, Quarkus/Spring Boot, JPA - SQL (CockroachDB, Postgres) and NoSQL (Redis, HBase, Cassandra) - AWS, Kubernetes (EKS), Helm, Istio.
Perks: – работаем строго по ТК РФ, полность "белая ЗП", оплачиваем отпускные и больничные 100% – ДМС со стоматологией, страхованием жизни с 1 рабочего дня, после испытательного срока – можно включить семью, близких родственников и детей – fix сумма на год для расходов на спорт, обучение, покупку книг, прохождение сертификатов, посещение конференций, курсов – новое оборудование (Mac/Thinkpad)
Что забыл в РФ Эррайвал и почему они хайрят русню, а не индусов? Индусы же дешевле.
>>1983624 >>Индусы же дешевле. Индусы очень любят строить бюрократию. Вместо 3 программистов наберут 3 полных отдела и будут перекидывать таски друг на друга. В рашке опять же хорошее образование и много хороших и недорогих айтишников остальные профессии рыночек порешал Да и русня культурно гораздо ближе азиатских чурок.
>>1983856 Надо требовать зарплату в юанях? А то доллар тоже как то не кажется супернадежным с этими вашими блм, штурмовиками трумпа и дедушкой педофилом у власти.
Шалом, анон. Решил написать простенький интернет магаз. Но мне кажется у меня пробел в знаниях. Я пропустил изучение сервлетов и юзал спринг бут. Имеет ли смысл потыкать сервлеты, чтобы посмотреть как там на более низком уровне?
>>1980802 (OP) Блядь, как можно запомнить все популярные аннотации спринга? Читаю туториалы и бошка взрывается. Тут такая аннотация, тут такая. Каждую вторую можно несколькими способами использовать, плюс обязательные/необязательные атрибуты. И если гибернейтовские/жпашные как то логично устроены, спрингоКоровские тоже туды-сюды, то спринг Ммвц/спрингДата/спрингСекьюрити мне мозг взрывают. Дохожу до реста - там вообще пиздец.
>>1984033 >А то доллар тоже как то не кажется супернадежным с этими вашими блм, штурмовиками трумпа и дедушкой педофилом у власти Забавно, что хорошо в России работает только пропаганда.
>>1984094 Согласен. Плюс если зеленую бумажку начнет лихорадить, как рубль например это будет следствием пиздеца уровня третьей мировой и приведет к таким последствиям, что нормальной мировой денежной системы вообще не будет на какое-то время и никак ты эти риски не уравновесишь. А если пиндосики будут медленно сдавать позиции, как англичане 100 лет назад, то с долларом ничего страшного не случится, как с фунтом за эти 100 лет.
>>1984102 Ну я посмотрел несколько туториалов по одним и тем же темам - начал по ним же пилить с нуля собственный круд с авторизацией. И потом смотрю на некоторые аннотации, как на новые ворота, хотя я вроде в них немного копался неделю назад.
>>1983624 >Что забыл в РФ Эррайвал и почему они хайрят русню, а не индусов? Индусы же дешевле. Дешевле всякие отбросы, а грамотные индусы нефига не дешевле. Потому что если Агарвал не дурак, то он и на США/Европу может работать, да и по L1B/H1B свалить в штаты.
Ну и да, курс решает. Я в 2014 работал в крупной международной компании и когда рубль рухнул, мне начальник сказал, что для компании мы стали дешевле китайцев, и сейчас стоим наравне с индусами.
>>1984109 > стали дешевле китайцев, и сейчас стоим наравне с индусами. И что типа сразу штат российского отделения стали расширять и давать ему больше проектов?
>>1984165 Изначально вопрос то был >Что забыл в РФ Эррайвал и почему они хайрят русню, а не индусов? Индусы же дешевле. Очевидно, что у Arrival другие приоритеты. У них нет многомиллиардных контрактов на десятки лет вперед, кучи компаний которые получили вендор лок и теперь не рыпаются. Так что Arrival более дешевая рабочая сила важна. И в России они нашли хороший баланс стоимости разработчиков - их компетентности.
Есть таблица юзеров, которая выводиться таймлифом. Как сделать редактирование одного из полей? Одного юзера? Чтобы вся строка таблицы стала, какой-то формой ввода, одно поле менеям жмем эдит, и таблица поменяна. Сейчас есть таблица и кнопка справа.
>>1984646 >contenteditable А как значения из этих полей получить? Я их меняю в хтмл, а в контроллер передать не получается. Сейчас вот так у меня. <input type="hidden" name="id" th:value="${item.getId()}" />
<input type="hidden" name="name" /> Если во второй строке написать "number", то это поле можно редактировать, но справа появляется полоса/поле ненужное..
>>1984751 <td> <form th:action="@{edit}" method="post"> <input type="hidden" name="id" th:value="${item.getId()}" /> <input type="hidden" name="name" /> <input type="hidden" name="lastname" /> <input type="hidden" name="age" /> <input type="submit" value="Edit" class="btn btn-danger" /> </form> </td> Это обработчик кнопки Edit, он не работает, я не очень хорошо знаю html, что сюда надо дописать?
>>1980802 (OP) >Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ? >A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна. Тем временем, собеседования в Яндекс на помидора: 1000 заданий по выводу в консоль оторванного от жизни говна. https://habr.com/ru/post/550088/
>>1985107 Копался я тут на досуге в исходниках одной из смежных систем, это просто эпик. Там несколько модулей, одни билдятся антом, другие мавеном, мавен запускается антом, который в свою очередь запускается батником. Часть зависимостей лежит просто жарниками, а часть вообще распакована, будто это просто один из пакетов проекта. EJB, JAAS, JMS ещё ладно. В корне лежит doc-файл с инструкцией, как всё собирать, там нужно сначала скопировать руками какие-то файлы, установить несколько переменных среды и запускать. БД там DB2, итоговый ear-ник нужно заливать на вебсферу, похоже, вручную. Пишется на 7 жабе (я про SE). Пакеты из 50-100 классов, всё в кодировке windows-1251.
>>1985096 >>1985101 >>1985150 Фриланс есть и сейчас, не для джунов, это да. Но для людей с опытом - есть. Мне лично в прошлом году, писала контора из штатов, предлагая удаленку на $80k. Да это не совсем фриланс, но очень близко.
>>1985255 Да просто нет ничего весёлого или лампового в древних технологиях, мир не от хорошей жизни от них отказывается. Легаси - это хоть и необходимое, но зло. Наверное, правы те, кто так любит всё самое новое и модное.
>>1985270 Появляется десяток новых технологий - 9 из них оказываются говном, десятая улучшает жизнь. Со временем те 9 забываются и кажется, что все, что новое - хорошее.
Пасаны, учу жаву. Как в intellij idea уменьшить уровень подсказок, а то совсем однокнопочное программирование, она сама код за тебя пишет, я нихуя не запоминаю. Раньше это делалось в правом нижнем углу, был значок "мужика в кепке (похожий на марио)" и там можно было уровень выбрать, высокий, низкий, и отключено сейчас мужика убрали. Хочу чтобы подсказки появлялись по требованию ctrl + пробел.
JPA spring boot Есть класс сущность. Нужно воткнуть поле экземпляр обычного класса. Можно конечно просто обычные поля использовать, но я хочу вынести их в отдельный класс. Как это огранизовать или как правильно загуглить, чтобы нормально работало?
>>1986407 А зачем тебе это? Поля, которые не пишутся в базу, помечаются @Transient, но обычно их существование говорит, что ты обосрался где-то в архитектуре.
>>1986446 >обосрался где-то в архитектуре. Тут такой момент, что в плане архитектуры я даже как срать не знаю и обосраться было бы результатом.
>А зачем тебе это? Ну вот например https://market.yandex.ru/offer/5kcx-5h7XE8rqK8A4ugOaA/spec Тут десятки характеристик для удобства сгруппированы по классам. Хочу узнать как правильно такое представить в виде сущности. Делать сущность в которой 100 полей или сгруппировать часть полей в отдельных классах? Я хотел попробовать второе, но не знаю как правильно это организовать
Идея короче такова: У меня есть абстрактный класс Article и большое количество его наследников и их наследников и конца там нет. Все на одном столе. @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
Хочу чтоб с фронта по одному на всех маршруту "/update_article" прилетал json конкретного вида и апкастился в Article. Как такое провернуть?
Нормальная ли это идея или я делаю говнокод?
И доставь какой-нибудь годноты про проектированию, чтобы я не задавал тупых вопросов.
>>1986780 но если серьезно, посоветуйте что-то для понимания ООП на очень примитивном, базовом уровне. пилю кулстори, уже пару лет копаюсь во всём этом, обмазываюсь джавовскими библиотеками, что-то пилю, вроде никаких проблем. Но я до сих пор не понимаю весь этот дрочинг на тему ООП, вообще не знаю с чего начать, слишком много теории (наверное сказывается недостаток опыта), много воды в материалах, примеры также очень абстрактны. Как перестать думать функционально? Я понимаю, что в больших приложениях, со сложными взаимодействиями тысяч классов, наверное без ООП наступила бы жопа, но дальше этой мысли пока не продвинулся. С шаблонами тоже не очень. Анон, посоветуй что-нибудь. Не хочу быть быдло-макакой, которая только умеет настраивать базы на спринге.
>>1986814 Если серьезно, то большинство макак в ооп доростает только до транзакционных скриптов. На понимании, что бизнес логику нужно выносить из контроллеров в сервисы их развитие останавливается. Дальше в проекте идет тупое наращивание фич и постоянное переписывание, пока все время возрастающие трудозатраты на выполнения тасков не заставят кабанчика сказать, ну нахуй. Кабанчик увольняет всех и нанимает самых дешевых разработчиков, чтобы поддерживать получившееся говно.
>>1986838 Так это уже задача архитектора или хотя бы опытного сеньора, а кабанчик не хочет нанимать архитектора. Макаки вон каждый день фичи пилят, а этот бездарь неделю там уже свои диаграмки рисует и никакой пользы бизнесу еще не принес.
Где канонично проверять, что сущность "принадлежит" другой сущности (например, пользователь -> его сообщения)? Делать свой voter или в сервисе проверять?
Господа джависты, учу программировать по пайтону на степике и читаю немного книги, интересно пиздец и вроде все понимаю, хотелось бы вкатиться в мобильную разработку или энтерпрайз, ну мб веб, выбрал сделать упор на джаву => котлин. Читаю гайд по вкату и сразу 2 вопроса : >A: Без английского ты не нужен и можешь смело идти нахуй. >Q: Я не могу в книги. Уровень англюсика ~ B2, читать могу, но больше простые статейки, и то процентов 20% слов или устоявшихся конструкций необходимо гуглить, с техлитературой просто немного нудновато и мозг просит попроще, чтобы сосредоточился на кодинге, а не языке. Никаких волшебных таблеток и нужно задрочить тех.английский? Думал, чтобы какие-нибудь курсы на рутрекере купить да книжек.
И как быстро и насколько анально сложно вот так вот с нуля почти освоить джаву до уровня джуна гуманитарию?
>>1987179 >техлитературой В душе не ебу какой у меня английский. Говорить вообще не умею, но техлит понимаю и какой-нибудь стек оверфлоу переводить мне не нужно. Статьи и доки понимаю почти полностью, ютуб по автосабам. Этого должно хватить, это тебе не художественный текст. Ты главное на незнакомые слова не забивай и вбивай их в гугл переводчик. Ты постоянно будешь натыкаться на одни и те же незнакомые слова и постепенно запомнишь.
И гугл переводчик на самом деле совсем не плох. Но если будешь все им переводить, ничему не научишься
>>1987179 >>Без английского ты не нужен и можешь смело идти нахуй. Английский нужен чтоб с барином разговаривать, больше актуально если ты хохол. Книги для уровня джуна и так давно переведены, а чтоб читать статейки уровня баелдунга или доки спринга много ума не надо.
>>1987614 На жаве только интелидж идея и градл (на груви). И то и другое не имеют прямого отношения ни к андроиду, ни гуглу, ни к ораклу. В андроидах ART, который ваще не jvm. Оракакл судился только из-за апи, типа апи это интеллектуальная собственность.
>>1987617 Логику не размазывают, а сосредотачивают в наборе сущностей. Ето ты на своей первой работе будешь размазывть права доступа по сервисам которые рандомно сперва наваяешь, охуевая от счастья что тебе дали проект с нуля писать.
>>1987620 у пользователя есть аккаунт, в котором есть деньги. Как ты через ооп это будешь выражать? Сделаешь пользователя, в пользователе объект "деньги"? Логику изменения денег в бд будешь в пользователя пихать? Или в деньги? Если у тебя появяться 2 разных видов пользователя, будешь наследование и перегрузку делать?
>>1987622 1) Как там в бд хранится это вапще к бизнес логике не имеет отношения. Логику твой заказчик каждый день придумывает. Его не ебет что там у тебя в БД. БД инструмент, переферия забудь про него. 2) Две сущьности пользователь и аккаунт с полем деньги. Если у тебя бизнес процес затрагивает две сущьности, то обычно делают доменный сервис. Такая штука, которая тоже не зависит от проектируемой системы, как и сущности, но естественно зависит от сущностей. Система (юзкейсы) зависит от сущностей и доменных сервисов. Никакого наследования, только композиция.
>>1987639 Ну какнул же ты, когда сказал что ооп == наследование, а по тому ооп сосет. Хотя каждый школяр знает что наследуются в нормальном (идеальном, а не хуяк-хуяк) коде только от интерфейсов и абстрактных классов. И то основная цель наследования это инверсия зависимостей между абстрактной частью и более конкретной, а не переиспользование кода. Абстракция и полиморфизм, это вообще от языка зависит, как оно паботает. От этого язык менее ооп не становится, чтобы преподы не говорили. ООП это взаимодействие объектов через сообщния, модель предметной области. В хороших проектах используется как связующее звено между заказчиком и кодером, потому что модель в таких проектах отражает хотелки заказчика, а не особенности БД или еще какую частную хуйню.
>>1987615 >В андроидах ART, который ваще не jvm. Оракакл судился только из-за апи, типа апи это интеллектуальная собственность. 1. Когда суд начинался, никакого ART не было, была модифицированная Apache Harmony. 2. Суд признал, что API это тоже собственность Oracle, еще 5 лет назад. 3. Сейчас суд признал, что 9 ядрдов это слишком дохуя и мистер Ларри обойдется одной яхтой.
Добрый день, 300к/наносеки. С первого моего устройства у меня появился фетиш на залезть в устройство туда, куда нельзя. Этакое нездоровое влечение отредактировать, поменять, оптимизировать что-нибудь в системе. Постаянно нужно раскопать всю операционку изнутри. И вот изучаю я значит сейчас Java, доволен. Интересная среда мира программистов. Изучу - смогу писать под свою любимую ОС - Android. Но вот ВСТАЛ БОЛЬШОЙ вопрос: А смогу ли с помощью Java писать программы для работы с системой/железом? Умеет ли Java залезать туда, куда люблю лазить я? В интернете я искал ответ на свой вопрос, но ключевой инфы так и не нашел. Собственно вот и вернулся на родной оранжевый сайт. Так что передаю свой вопрос вам анончики. P.S. Не гоните меня в C++ тред пожалуйста, мне нравится Java, но я хочу узнать про вышесказанное.
>>1988222 моргать светодиодами - вобщем нет, не может. Моргание светодиодами, 32кб оперативной памяти, самописные операционные системы - это си, область называется эмбеддед
>>1988222 Не умеет, джава - это безопасный высокоуровневый язык, максимально изолированный от системы, и непосредственно через джаву ты не то что до железа не достучишься - функции винапи не дёрнешь. Можешь обмазаться биндингами к нативным либам, то это почти ничем не отличается от того, чтобы сразу писать на сишке. На Андроиде то же самое, там джава только для высокоуровневых приложений, сама система, книга работает с ядром, не на джаве.
>>1988222 Глянь ансейфы и байтбуферы, по крайней мере байты ебать минуя ждк сможешь. Проще действительно запускать на жаве плюсокод, а не делать жаву плюсами.
>>1988236 >>1988267 >>1988393 Спасибо за ответы, анончики, благодарен. Теперь буду знать как это устроено. Хорошо что хотя бы с костылями ещё можно что-то запускать)))
Сап мужики. Я не особо в курсе сегодняшних зарплатных рынков, поэтому поищу ответа тут. Допустим у меня год опыта автоматизации тестирования на джаве в крупном проекте сбербанка. Стек дефолтный, selenium, rest assured, sql и все сопутствующие. И плюс опыт составления ТК, работа в жире, алм и бла бла бла Какая зарплата у меня должна быть?
>>1988426 Вряд ли здесь много автоматизаторов, но у них зарплаты не сильно от кодерских должны отличаться. Год опыта - это опытный джун, зп где-то 80-120.
>>1988684 В смысле подключить? Сделать этот енум бином? Это не я придумал. В одном из туториалов увидел. Даже удивился, потому что сложные енамы видел только в задачках на енамы. Так не используют такое в проде?
Пилил свой HttpMessageConverter и решил глянуть какие там изначально спринг бут создаёт. На пиках два одинаковых джексона. Почему так?
Мой конвертер тоже с джейсоном работает, но только для специфичных сообщений, их можно отличить по содержимому. Как сделать так, чтобы для этих запускался мой конвертер, а для остальных стандартный? в контроллере какой-нибудь кастомный MediaType поставить?
>>1989297 https://pastebin.com/NsdD1gq3 я все вычисления сам проводил, но там и делать особо нечего. Вычисляешь точки, пишешь в pixels, потом отображаешь:
>>1980802 (OP) Привет ебланы, какой нахуй смысл оборачивать ваш говнокод в стотыщ интерфейсов, это такая подсознательная обфускация говна, чтобы оно казалось конфеткой на первый взгляд? какая глубинная мысль оверинженниринга ваших говновысеров?
Горит жопа с кодировок. Почему нужно ебаться, чтобы вывести строку "Привет мир"? На некоторых сайтах пишут, что это Майкрософт виновата, потому что в cmd использует кодировку-866, хотя системной указывает 1251. Но этот же "Привет мир" отображается такими же ебаными иероглифами и в окне Swing. Вот я значит создаю хелловорлд в NotePad++ с кодировкой UTF-8, то есть юникод. Родная кодировка для джавы - тоже юникод. Казалось бы - ничто не предваещает беды. Но я запускаю этот хелловорлд и получаю ебучие иероглифы вместо русского текста. КАК НАХУЙ?
>>1989698 Да ты еблан. VS Enterprise это лучшая IDE всех времён и народов. В ней уже нечего улучшать, она достигла совершенства. Всё остальное - жалкие тени, которые никогда даже близко не приблизятся ни по одному параметру.
Единственное, что можно поставить в укор Visual Studio Enterprise, это то, что она overblow. Но тут ничего не поделаешь, такой сейчас мир - всем похуй на компактность.
Но вышесказанное не относится к VS Code. Видел я её как-то сбоку. Мой вердикт простой - насколько VS Enterprise идеальна, ровно настолько же VS Code это мусор, который не заслуживает даже упоминания. Ни в каком контексте. Похоронить и забыть.
>>1989707 >Но все шарписты с хоть какой-то зп покупают JetBrains Rider Ха ха ха. Мне бы так - пиздеть и не краснеть. Или сам веришь в эту хуйню? Тогда у меня для тебя плохие новости.
package com.test; import org.junit.Test; public class UnitTest { @Test public void test(){ Project.test(); }
В командной строке пикрил.
Что ему еще нужно от меня? Как скомпилировать это не внеся изменений в UnitTest.java? Причем самое забавное, когда я пропускаю его через Maven, он каким-то чудом все компилирует.
>>1990234 Раз прожекта нет в импортах, то он лежит в том же пакете. И джавак его не находит из-за того, сто ты не указал его -cp, мавен это делает сам.
>>1990319 Я тоже хеллоуворлды со спрингбутом пишу в виме, а то идея слишком жирная, не хочу закрывать браузер и другие процессы, запускать идею и ждать 15 минут, пока запустится.
>>1990339 Это я понимаю, но синтаксис то какой должен быть? Если я просто укажу один cp с папкой, содержащей Project.java, он будет ругаться на junit...
Аноны, помогите, пожалуйста, разобраться: Когда URLClassLoader делегирует загрузку классов родителю? Пишу специфичный метод, который позволяет грузить классы с одинаковыми именами от разных классоадеров, и заметил, что когда вычитываю URLClassLoader'ом классы из ресурсов из папки ресурсов мавена, на локальной машине, то он, походу, не делегирует их родиетлю, хотя я ожидал обратного эффекта. То есть, получаю на тестах: java.lang.AssertionError: expected: java.lang.Class<class plugin1.PluginA> but was: java.lang.Class<class plugin1.PluginA> При загрузке одного и того же класса разными URLClassLoader'ами. Выходит, он ничего не делегирует родителю, и грузит класс исключительно самостоятельно? А в каких случаях он вообще что-то делегирует наверх? Я хотел при загрузке новых классов и загрузках копии классов из одной и той же директории грузить всё URLClassLoader'ами, в надежде на то, что он заберет дубликат у родителя из их кэша, а повторы в разных директориях уже грузить своим кастомным класслоадером и переименовывать, что даст провернуть такой финт ушами и использовать все классы в одной системе. Но по итогу у меня и дубликаты из одной и той же директории не equals, потому что, по видимому, URLClassLoader ничего не делегирует родителю.
>>1990350 Понимаю, лень, ну продолжай жрать говно тогда, если у тебя комп даже браузер открыть не может, не выронив кал. Вопросов к себе не возникает никаких?
>>1990324 Если ты такой крутой и хочешь делать из консоли, то почему не юзаешь мавен? Ты реально будешь скачивать джарники в lib/ и прописывать вручную?
>>1990502 у тебя мавен собирает жарник без либ? Там есть плагин, чтобы оно все либы к тебе в жарник закидывало, и получался итоговый жирный самодостаточный жарник
>>1990506 Идея очень зависит от этого. Они даже внаглую написали в рекомендуемых системных требованиях - ССД. Это дурное требование на мой взгляд, даже ААА игры такое не пишут.
Как писать пета? Решил написать простой сервис уровня онлайн библиотеки с минимальным функционалом, ну там регистрация, авторизация, загрузка книжек в пдф, просмотр этого дела, и т. д. В итоге приходится изучать кучу всего по фронту примерно нихуя по спрингу. Иначе все выглядит как полнейшая параша. Кто знает как это фиксить? Изучить фронтенд на уровне хтмл цсс основы жс жквери бутстрап?
>>1990557 Хватит хтмл, цсс и фримаркера. > В итоге приходится изучать кучу всего по фронту примерно нихуя по спрингу. Иначе все выглядит как полнейшая параша. Твоя цель спринг выучить, или чтобы было красивенько-модненько-SPA?
>>1990755 Никому не всралась Windows fot ARM вот им и пришлось самим делать порт JDK. Плюс у них есть свое облако, там они тоже делают свою сборку JDK.
правильно ли я понимаю, что теперь гугл не будут ебать за использование джавовских jdkшек, и тем самым получается что и котлин им уже нахер не всрался, можно продолжать пилить \ улучшать нативную экосистему андроид?
Привет ребята,делаю тут програмку с запросами в базу данных и отображает данные в таблице и вроде бы все работает,но я понимаю что реализация ужасная и вообще недопустима. Подскажите пожалуйста,как бы мне более изящно реализовать удаление
Дублирую вопрос... Как вообще для вката jetbrains academy + leetcode + petprojectы какие-нибудь? Плюс ещё Кормена наебнуть и что-нибудь по проектированию рестухи. Из опыта в ит стажировочка по системной АНАЛитике и 3 курс вузика по прикладной информатике. Плюс пара хаков выигранных. Хватит такого чтобы каким-нибудь джуном пойти или ещё чего-то наебнуть?
>>1991089 Ну вообще если знаешь sql, там на литкоде что-то можешь решить обсираясь не сильно жидко, основы джавы и спринга, то можешь ходить по собеседованиям. Как правило на работу берут тех, кто ходит на собесы, а не дрочит до посинения кормена или документацию спринга.
Мой одногруппник вообще пошел работать скала джуном, зная скалу около недели и не имея за плечами никакого опыта/хакатонов/олимпиад.
Студент 2 курс на связи. Вроде что-то знаю про джава кор, коллекции, многопоточку и стримы. Писал простейшие круды на спринге. Иногда решаю задачи на литкоде, жидко обсираюсь, но простейшие алгоритмы и структуры данных вроде знаю. Еще в шараге учил sql, ну и в крудах через ждбс общался с базой данных.
Планирую прямо сейчас подавать на всевозможные места для студентов, лохов, стажеров, говноедов, и т. д. Какие подводные? Меня хоть куда-нибудь пригласят на собеседование с таким подходом? Хочу получить струю мочи в лицо, чтобы был стимул дальше развиваться. Ну или понять, чего я не знаю, чтобы в краткие сроки что-то получить и снова на собес. Как вам план?
>>1991220 В принципе с точки зрения CQRS выглядит так 1) Для Query используем фасад за которым квери билдером делаем запросы к БД 2) Для Command используем ORM (для DDD в агрегате)
Но делаешь удаление и твоя оптимизация выглядит необоснованно. Тем более у тебя не bulk операция. С точки зрения правильного использования БД вообще избегают удалений. Тем более прямо из комманды пользователя
Да похоже у тебя десктопный helloworld и рассуждения что ORM тормозит на отдельной операции удаления еще смешнее
>>1991395 >Делаю тут програмку с запросами в базу данных и отображает данные в таблице и вроде бы все работает,но я понимаю что реализация ужасная и вообще недопустима. Подскажите пожалуйста,как бы мне более изящно реализовать удаление
Что в моем сообщении не относится к твоему воросу? Спросил как нормально - ответил как нормально
>>1991425 It depends В простых случаях не избегают В более сложных нужно умное удаление вместе с отношениями или нужен аудит. Чтобы реализовать софт делит нужна нормальная архитектура иначе, ты утонешь в багах связанных с проверкой удалена ли запись в бд или только помечена как удаленная В совсем сложных случаях используется event sourcing
>>1991425 1) Это тяжелая операция 2) Трудно не накосячить с каскадным удалением 3) Могут быть нужны всевозможные архивные данные или отчёты 4) Никто для тебя не будет хранить и накатывать бекапы
Поэтому делают либо булеан is_delete, либо таймстамп удаления
>>1991994 Жаба - это не C++, в ней нет овердохуяллиона тонкостей, которые нужно обязательно знать. И нужды в таких книгах нет. Есть несколько популярных книг, пойдёт любая.
Сап Джавач. Понадобилось состряпать форму на свинге, в Идее. Есть какие-то гайды как пользоваться встроенным туда менеджером компоновки? Таскаю эти чертовы кнопки и спейсеры туда-сюда, какая-то бесячая хуйня происходит, какие-то разделы на форме появляются и исчезают, все своей жизнью живет. Бесит пиздец. Помогите, плиз, пока я ноут не разъебал.
>>1992042 что за ебаный пиздец в этом вопросе вообще, почему все так сложно? В вижуал-студии на шарпе когда накидываешь компоненты, их можно как угодно таскать, как в фотошопе, почему здесь такой пиздец.
>>1992060 Ну, сама IntellijIDEA с тобой бы не согласилась, максимально красивое приложение (она насколько знаю запилена не только на жабе, но еще и на Свинге) У меня и нет желания сделать что-то красивое. Уверен, дело в крайне хуёвой интуитивности, и стоит понять как все работает, запилить что-то не составит уже труда.
Хотя, бля... походу я поспешил сказать что надо разобраться. Че это нахуй блять вообще, даже значки листенеров отваливаются нахуй от кнопок и живут хз как. Может что идея ломаная. В рот ебал такие рисовалки
>>1992054 >>1992066 Лучший визуальный конструктор для свинга был в нетбинсе. Вот там реально как в фотошопе кнопки передвиигаешь. А идея полностью ручками написана.
>>1992096 Избавиться бы от моды на SOAP для начала. А так GraphQL-параша доберётся до жабы лет через 5 после того, как она станет модна в хипстерских язычках, в которых тоже до сих пор рест-параша.
Есть один @Component бин. Есть другой @Component бин, у которого также есть аннотации @Profile("profile1") и @Primary. Мое ожидание, что когда активен профиль profile1, во все место будет автовайрится второй бин, а если профиль не активен, то первый. Почему это работает не так?
>>1991938 >>Поэтому делают либо булеан is_delete, либо таймстамп удаления А почему просто автовакуум не отключить/сделать отложенное очищение, а в аудите хранить что конкретно удалялось? Мб переносить в отдельную базу удаленные данные, если что то критичное? Это ж ебанешься is_delete добавлять к каждой таблице, а потом еще и логику всю переделывать?
>>1992190 А зачем жаба пыталась долгие годы завоевать десктоп-нишу? Свинг и апплеты в конце 90-ых еще ладно, но JavaFX выпустили в 2008 непонятно зачем. К тому времени основной юзкейс был в jEE на серверах.
>>1992214 Специализированный энтерпрайз-софт тоже на мобилках?
>>1992220 Частично завоевать всё же получилось. Тогда пилить кроссплатформенный десктоп было почти не на чем, либо невъебенно сложные и небезопасные кресты, либо умирающий тогда делфи, либо жаба. Не то чтобы такого софта много, но попадается. Мне вот в универе на разных предметах по проектированию/моделирования всякой хуйни нужно было делать лабы в специальных программах, и достаточно много из них было на жабе.
Сап двач,есть одна таблица,в ней указывается насколько забронирован объект из таблицы reservation_objects,так вот,как мне сделать так чтобы на один объект можно было сделать только одну резервацию?
Пользователь вводит с клавиатуры функцию от одной переменной возможно с использованием класса Math, например x*Math.sin(x/2), и мне нужно чтоб у меня в программе появилась аналогичная функция. Как это реализовать?
>>1992426 > Почему? Потому что это бизнес-логика в БД, работающая к тому же неочевидно, все привыкли к значению по умолчанию только для ID. > Я персистшу ентити менеджером. Тогда в сервисе делай.
>>1992214 Смузи-долбоеб закукарекал, у которого верх понимания о программном приложении - это прогноз погоды и справка о котировках биткойна. Всякие убер-сложные пакеты, типа САПРов, сред трехмерной графики, движков разработки игорь, и вообще все то что юзает на 99% только локальный контент, еще лет 30 вряд ли переедут на веб, а то и никогда, по крайней мере пока каналы связи еще так на порядок не подрасширятся, и не изобретут интернет реально доступный всегда и везде. Нахуя делать в вебе то что на 100% локально по данным?
>>1992350 Хуй знает, зачем такое вообще нужно. Разве что для тех, кто сам дизайнит виртуальные машины, или оптимизирует какие-то мегатонны легаси-говен. Если обычному разработчику захочется такой глубины, то он скорее всего вообще не будет смотреть на джаву как на рабочий инструмент, а будет вариться где-то в сях
Вот еще насчет спринга. Смотрю один туториал/книгу. Там типа вот обмен данными с клиентом, подключение к базе, секьюрка - все по шагам расписано. И в шагах они собирают конструкторы из аннотаций, классов и методов. Причем больше половины всяких классов-прослоек не комментируются. Ну что-то ясно, но зачем нужна часть прослоек не ясно. Пытаюсь посмотреть другой тутор, чтобы закрепить и заполнить пробелы. Из плюсов - шаги примерно те же самые. Но там для той же самой задачи используются другие классы-прослойки. Причем тоже не особо комментируются. Короче сделать каждое действие есть по 10 способов. И это как-то запутывает. Короче научите курить доку. Реально нужно от корки до корки Reference Doc по всем часто встречающимся кускам спринга читать(оценил размер и 7 html-страничек по кускам с которыми я постоянно сталкиваюсь это где-то на две тыщи страниц)? Потому что пробовал по именам классов из середины читать и не очень понятно.
>>1992523 >>САПРов, сред трехмерной графики, движков разработки игорь, и вообще все то что юзает на 99% только локальный контент Дохуя популярных движков на джаве видел, маня? >>Нахуя делать в вебе то что на 100% локально по данным? Думаешь банковский софт локальный по данным, долбаеб? Бекенд ммо тоже локальным по данным? Иди дальше байты свои еби, если не понимаешь где джаву вообще используют.
>>1992560 Ну так вообще десктоп девелопер это жалкие проценты от всего рынка труда разработчиков. И по тенденции их доля ещё сократится. А джава десктоп это жалкие проценты от жалких процентов. Такие вакансии днём с огнём будешь искать.
Десктоп нужен только если вы взаимодействуете с хардварью, либо если вам нужна охуенная производительность сложных вычислений (игры, фотожопы). Для остального есть нод жс
>>1992698 Нет, unique не на revervation.id или revervation_objects.id, а на revervation.object_id. При инсерте/апдейте будет выполняться проверка, что в reservation нет других записей с таким же object_id, и двух записей с ссылкой на один объект не будет.
>>1992773 Хуй знает, зачем тебе докер, для твоей задачи он, может, и не нужен. Предполагается, что у тебя будет питоний скрипт с http-сервером (например, flask или bottle), который будет получать список твоих ссылок, дёргать "сетку" и результаты возвращать в виде ответа. Или есть способ с питоним подпроцессом и общением с ним через пайп, но это сложнее.
>>1992834 > извините, изучаю жаву и средства жавы Пиши сетку на жаве, обрабатвай картинки и генери жсон на жаве, замени pom.xml на pom.java, бд пусть будет Apache Hive.
>>1992557 >Дохуя популярных движков на джаве конечно же нет. ведь на ней не пишут десктоп почти. Но при чем тут джава, душный долбоеб? ты (или какой-то дебил вроде тебя) высрал своё говно касательно десктопа вообще, а не роли в нем джавы. и при чем тут банки вообще, хуесос? банки потому и на вебе, потому что юзают сетевые данные. иди таблетку прими, выпиздок, чтоб в шары не долбиться.
Какая разница между @bean и @component? Там где я пишу компонент, я его должен автоварить вручую @Autowired? А бин он как бы сам ныряет в апликейшн контекст? Я могу написать @Bean и сделать автоваред его? Я не до конца понимаю, поясните пожалуйста!
>>1993622 Если у тебя бут, положи свой хтмл в src/main/resources/public, а в mvc-контроллерах делай return "index.html", либо в пропертис добавь "spring.mvc.view.suffix=.html" и возвращай просто "index". В пом.хмл должна быть зависимость spring-boot-starter-web. И будет работать без шаблонизаторов, зотя хуй знает, зачем тебе это.
>>1993637 @Bean вешается на метод, который должен создать объект бина, спринг вызовет метод и положит результат в контекст. Это так называемый java config. Обычно юзается с классами, которые ты пишешь не сам, а юзаешь готовые, создаёшь объект, настраиваешь нужным тебе образом и возвращаешь. @Component и его производные вешаются на класс, спринг создаст объект этого класса сам и полодит в контекст. Это annotation config. Обычно для классов, которые пишешь сам. Оба автовайрятся через @Autowired.
>>1993366 Пошел нахуй, дебил ёбаный. Будто в треде по джава любой контекст предполагает неявное наличие джавы в утверждении. Насрал тебе в рот так что из ушей полезло, чмо. Соси.
Сап, джавач. Подскажи, может ли быть проблема с запуском приложения, собранного в Intellij, из-за того что IDE ломаная с торрента? Собираю артифакт jar, при запуске он выдает пикрил ошибку, следом вторую, про эксепшен. Из самой ИДЕ все отлично запускается и работает. Все уже перепробовал - и джаву обновил, и в переменных среды указал ссылки на ту самую JDK, на которой идея работает, и в самом конфигураторе джавы оракловском нашел и подключил эту же ЖДК. Что не так может быть?
>>1994021 А что, никаких версий кроме той, дилетантской, что я сам выдвинул насчет ломаности, нет? >>1994024 Я не юзаю идею профессионально, я можно сказать учусь но сам а не в учебном заведении чтоб вписываться во всякие там программы >>1993971 олсо, по сабжу, когда в настройках проекта в модулях указываю 8 версию (а не 14 которая по дефолту), то все собирается и работает. Проблема только в том что у меня по проекту напихано всяких фич 14 версии, типа switch-экспрешенов, и перепиливать все под восьмую версию просто потому что я, долбоеб, не знаю как виндовс заставить запустить это все на 14 jre, я бы не хотел пока что
Есть простая круд форма, таблица юзеров, а справа кнопка edit. По нажатии появляется окно в нем три поля, я их заполняю и хочу, чтобы данные мпредались в контроллер, как это сделать, если написать input submit, то ничего не происходит. Помогите, я уже дней 10 не могу решение найти
>>1994040 В треде html программистов, мне не смогли помочь, там обсуждают реакты какие-то, вуе, я вообще хуй знает что это. У меня должен быть простой html и thymeleaf
Пипл, хелпаните кто, СrudRepository.save(T t) выбрасывает постоянно 'java.lang.IllegalArgumentException' -argument type mismatch. Причем только с той сущностью, в к-ой есть отношение ManyToOne. Остальные 2 сохраняются и извлекаются нормально. Может кто сталкивался?
>>1994292 StreamAPI - это комплекс инструментов внутри дефолтной джавы, который для работы юзает лямбда-выражения. Сами по себе лямбда-выражения - это просто вариант синтаксиса (вне стрим-АПИ и даже любого конкретного языка), который позволяет реализовать функциональный подход к программированию. В джаве например лямбдавыражением можно инициализировать объекты функциональных интерфейсов или пихать их в любое место, где ожидается аргумент такого типа. StreamAPI задизайнен таким образом, что все его методы принимают как аргументы функциональные интерфейсы, и возвращают либо снова объект стрима, либо целевой результат (если метод терминальный). Это позволяет пихать в аргумент лямбды (ну либо ссылки на статик методы, что делает синтаксис еще короче) Все это позволяет писать краткие лаконичные вещи.
День добрый, Двощ. Проработал пару лет в ETL и вполне хорошо разбираюсь в том как Oracle субд работает, но что-то меня начинает напрягать узконаправленность скиллсета. Хочу нормальный ентерпрайз ЯП знать и вообще программистом стать. Немножко хобби проектов на Шарпе делал в прошлом, но особо не продвигался, опыта software development считай нет.
Сижу и думаю, Жава или Шарп? Душа вроде больше к Шарпу, но по факту и там, и там нихуя не знаю толком. Вопрос следующий: насколько ценными для разработчика Жавы будут глубинные знания работы Оракла? Или это больше незначительный бонус, и не должно оказывать значительное влияние на выбор языка?
Привет. Есть Фрагмент на нем кнопка. Есть 1 поле для ввода на этом же фрагменте. Как сделать ПРАВИЛЬНО так, чтобы на эту кнопку при нажатии я заполнял одну переменную, потом еще раз нажимал и заполнял вторую, и так 5 раз. т.е. 5 переменных, заполняются по очереди при нажатии на эту кнопку текстом который введен в окно ввода. Вот как?
>>1994512 Храни вместо пяти переменных один массив и текущий индекс в нём, сначала 0. Пр жмакании на кнопку записывай массив[индекс] = значение и инкремегтируй индекс. Разумеется, со всеми проверками.
>>1980802 (OP) Отговорите вкатываться в вашу хуйню. Почему-то именно джава для меня выглядит привлекательно, хотя я не сильно углублялся и дальше лямбда выражений нихуя не видел.
>>1980802 (OP) Что там нынче используют в эпоху микросервисов? Всякие MIcronaut/Helidon/Quarkus слишком сырые и глючные? Vert.x слишком низкоуровневый. Spring слишком тормозной и жрет память как в не себя.
>>1994635 Будешь бд-рабом, интересных задач чуть менее, чем нихуя, запредельный порог вхождения, заебешься на собесах разворачивать красно-черные деревья, как-то так... достаточно отговорил?
>>1994715 Сейчас жабистам вообще похуй на память, держу в курсе. У нас на продакшене есть часть кода, где в цикле создаётся объект для работы с вещественными числами и всем па ху ю
Пиздец,как же я ненавижу ебучий свинг,будь проклят создатель этого дерьма.Когда я нажимаю на плюсик в табе Customers все нормально,но когда я делаю тоже самое в табе Reservation он кидаем мне исключение. Богом молю помогите пофиксить это говно
Анон подскажи как правильно логи писать в спринге. Достаточно ли логировать только входные/выходные параметры + сообщения об ошибках? Не покрывать же код логами через строчку? Не получится ли что эти логи мешают читать собственно рабочий код? Может надо все это через АОП и аннотации писать?
>>1995673 Если именно по щелчку мышкой, то addMouseListener() и там в mouseClicked() методами rowAtPoint и columnAtPoint узнаешь куда кликнули и делаешь свои грязные дела.
>>1996356 > Незаконные изготовление, переработка, приобретение, хранение, перевозка или пересылка в целях сбыта, а равно незаконный сбыт сильнодействующих или ядовитых веществ, не являющихся наркотическими средствами или психотропными веществами, либо оборудования для их изготовления или переработки Хм, я даже не знал, что за это есть статья.
>>1995610 На практике с вероятностью 99,9% это будет одно и то же на уровне исполняемого кода. Сам компилятор и среда выполнения десятилетиями отлаживались уберквалифицированными людьми. По этой причине, любые твои велосипеды скорее всего будут проигрывать встроенным в стандартную библиотеку инструментам.
IDEA-спецы, вы тут? Что-то сбилось в настройках редактора, теперь когда я нажимаю Backspace, находясь в начале строки с отступом (или несколькью отступами), редактор сразу удаляет все до ближайшего сверху код-фрагмента, на предыдущей строке. Раньше он удалял по одному пробелу, или хотя бы по одному отступу. Где настраивается?
Что происходит, почему я не могу сделать простой input в IDEA? Код пикрелейтед. Когда build жму, выдает ошибку про null. Про это я в целом вроде нагуглил, пишут что так и должно быть. Потом я открыл Groovy Console, вбил там другой пикрелейтед, и у меня ничего не происходит. Внизу вылезает эта консоль, но ввода НЕТ, текст НЕ набирается. Я нагуглил, что нужно в VM прописать, но и это не помогает (даже с ребутом).
Было ли у вас такое, что читая книжки по алгоритмам, вы узнавали в них многое из того к чему вы уже приходили, еще до прочтения их книг? Каждый раз когда такое происходит я чувствую себя гением каким то, думаю ''Ну нихуя себе, я ведь тоже раньше оказывается придумывал хэш таблицы, нихуя я гений!''
>>1996785 Всегда так. Никакой ты не гений, угомонись. Почитай еще про паттерны, и выяснится что почти любой возможный пердежь кодом - это какой-нибудь неебаться умный шаблон проектирования.
>>1996799 >т.к сделать все по паттернам никто не сможет) не пизди, фабрика и синглтон частенько используются ну и всякие рода MVC и миддлвейры (АОП) тоже своего рода паттерны.
Сап, джавач. Подскажите такую вещь, плес. Если я пишу консольное приложение, то я всегда могу просигнализировать себе о какой-то особой ситуации в коде тупо через System.out.print. Но что делать, если я переношу всю логику в GUI? Я не увижу там сообщений из исходящего потока. Есть вариант выбрасывать Эксепшен, ловить его в UI и выводить там ex.message. Но это коряво, потому что при любом раскладе после броска исключения исполнение метода больше не идет, и я не получаю результат. Как надо поступать?
>>1996804 >>1996802 Че вы тут распизделись, молодежь. Я имел ввиду что большая часть этих т.н. "паттернов" это настолько очевидные вещи, что любой у кого есть мозги сам их будет использовать, без всяких учебников, даже не зная что использует их. >фабрика вот как раз типичный случай. даже долбоебу очевидно то, что собой представляет этот шаблон
>>1996805 Если тебе для отладочных целей, то это делается через логгирование, там у тебя пишутся сообщения в файл построчно, и можно потом прочитать. Если для юзера - не кидай эксепшены, вместо этого показывай диалоговое окно или придумай какое-нибудь окошко с уведомлениями в углу.
>>1996821 Как я выведу окошко, если тот код, который является логикой, понятия не имеет о UI-оболочке? Например я парсю какой-то кириллический текст, и обнаруживаю что по ошибке в него закрался иероглиф. Класс парсера написан отдельно от UI, и прямо в нем нельзя сделать что-то типа showMessage("pizdets!") (он тупо не знает ничего о том, кто его вызовет). Можно выбросить эксепшен, который ловит UI, но тогда я остановлю парсинг на иероглифе. Как сделать что-то вроде эксепшена, но не обрывающего дальнейшее исполнение?
>>1996817 Вот я и говорю, что ты не понимаешь суть паттернов. Это не какие-то алгоритмы, придуманные умными дядями и тётями и обязательные к изучению, а всего лишь распространённые способы решения архитектурных задач, когда кодеры сами придумывают решение, и наиболее популярные имеют название. Паттерны не придумывают, их обнаруживают. Конечно же они очевидные.
>>1996826 Как вариант, во время обработки ничего не выводить, записывая ошибки в некий объект-результат обработки, из логики этот объект вернуть гую, а гуй уже по факту покажет, были ли ошибки. Но это смотря что за задача.
>>1996830 Нет, это ты просто долбишься в шары похоже. Я и не говорю что это алгоритмы выдуманные дядями-тетями и обязательные. Я говорю что это все очевидно и так, в основном. И потому обнаружение того что ты чего-то там допер до того как узнал что это умный паттерн/алгоритм обозначает только то что ты не конченный овощ на питании через трубочку
>>1996840 Я же тебе описал конкретную задачу. Нельзя что-то вернуть ГУЮ, кроме как через аутпут метода или эксепшен. Потому что тот кто работает на классом логики не знает ничего о том, что ГУЙ будет с этим работать. Поэтому хотелось бы иметь нечно, подобное механизму исключений, но не прерывающее выполнение. Например какой-то абстрактный Контейнер, который тоже можно бросить и поймать, но он не имеет семантики ошибки, выражающейся в том, что все обрывается в момент throw.
>>1996850 Ничего подобного в джаве нет, тебе придётся юзать существующие механизмы. Либо кидай эксепшен в конце логики, забив на семантику, либо добавляй возможность аозврата гую. Логика как не знала про гуй ничего, так и не будет, просто вернётся строка с сообщением, которую хоть передавай в гуй, хоть в out, хоть игнорируй.
Анонсы, можете подсказать какие у вас бест приктикс по организации кода? Допустим вот пишу блокнот на свинге, да? Просто отдельно класс вида, отдельно класс с листенерами? А если я например простенький круд пишу?
>>1996883 Сложно было бы читать код, где кроме вызова методов и возврата из них ещё и постоянные прыжки туда-сюда по стеку вызовов. Некоторые даже на эксепшены из-за этого жалуются.
Почему не компилится выделенная строчка?? У нас есть нестатический nested класс и в нём разрешены константы (static final), так почему это работает для примититвных типов и String, но не работает для Object и классов обёрток?
>>1996895 Ну, это были бы не прыжки, а как бы второй служебный слой исполнения поверх основного, который бы никак не влиял на основной. Прыжки у эксепшена как раз из-за того, что в любом месте откуда эксепшен прелетел, программа как бы разворачивается и больше не продолжится (кроме разве что блока финнали) вплоть до точки обработки. Опять же, в отличие от механизма исключений, перехват такого сообщения мог бы не быть обязательным - хочешь лови, хочешь игнорь. В итоге придется сделать дополнительный аргумент в сигнатуре, int-код ошибки, либо строку, куда буду пихать лог. Опять же, дефолтный джава-String не подходит из-за иммутабельности, придется или делать оболочку, или юзать стрингбилдер. Почему нельзя было как в шарпе сделать дополнительный канал аутпута через модификатор вроде out. Джава местами каличная, короче.
>>1996948 Я не особо вникал, но у меня твой dev запустился, правда пришлось немного с конфигурацией поковыряться
во-первых твоя конфигурация для flyway просто не читалась, потому что для неё нужен префикс spring (на имя базы и пароль не обращай внимания, я свой поставил, что б запустить)
во-вторых, в pom.xml рекомендую в зависимостях использовать стартер для jpa , а не писать с версией, как у тебя было, потому что ты используешь spring boot и его менеджмент зависимостей (но это так, придирка больше)
в-третьих, у меня не запускалось приложение, пока я не закомментил твой тест в Main классе, запустил 1 раз приложение чтоб смигрировать flyewayем и не запустил снова раскомментировав мне кажется, что оно первый раз не поднималось просто потому что твой тест лез в базу, которая еще не была создана Я сейчас скажу банальность, но тесты лучше писать в папочке test отдельно, а не в Main классе.
Хэй, я сделал многое для коммьюнити, теперь ответьте на мой вопрос!!>>1996970
>>1997052 Получилось решить проблему? Если да, то я рад.
> твою проблему решить не могу, так как еще совсем зеленый Да не, к тебе претензий нет. Это больше для сидящих тут дофига синьёров помидоров. Часто вижу, что люди являются гуру фреймворков, но когда что-то их спросишь по фреймворку, то сразу нуу ээ сереньк и всё
>>1997042 >теперь ответьте на мой вопрос А что тут особо необычного? Инстанс нестед-класса в принципе нужен для того, чтоб быть привязанным только к инстансу аутер-класса, и для него обычная семантика статика в принципе неприменима (разве что в каком-то особом случае, когда общей могла бы быть переменная для всех инстансов, принадлежащих одному внешнему инстансу). А то что модификатор static допустим для примитивов никак не нарушает "межобъектовой изолированности" по данным, потому что примитив все равно финальный, и изменить его нельзя. А вот внутреннее состояние любого объекта, кроме стринга, который тоже магически финальный в Java, можно менять, не меняя саму ссылку. Короче, примитив хоть и static, он как бы избыточно статик, все равно у каждого он как бы свой собственный исходя из того что менять его нельзя. Разница только в том, что даже если такой примитив объявлен публичным, его все равно нет в доступе у инстанса. Может быть это позволяет экономить немного памяти, храня всего одну константу, хотя абсолютно никакого отличия от ситуации когда у каждого инстанса она своя - нет.
>>1996850 Заворачивай ответ во врапер да и все. При вызове метода гуем проверяй врапер, есть ли там ошибки, если нет - то показывай результат выполнения. Все как в вебе. А работа на исключениях - плохой выбор. А если тебе нужно выводить ошибки в процессе без прерывания - наверни асинхронности. Просто в другой поток засылай сообщения об ошибке и выводи их по мере появления.
по исключениям на гуе 1) На клиенте тоже можно делать лог и тоже можно в него писать. В свинге наверняка что-то стандартное есть. В javaFx точно есть. 2) На клиенте все вызовы бека оборачиваешь в обработчик, обработчик смотрит ответ, в случае ошибки показывает алерт с аккордеоном. В аккордеоне подробности или стектрейс. Не будешь же ты тётушек из бухгалтерии заставлять искать файл лога? А так нажали на подробности и отправили тебе скриншот
>>1997158 Потому что это и не надо. Ведь очевидно, что своего рода статиком для любого иннер класса являются нестатические поля объекта-владельца. и так до любой глубины вложенности. Так что явная статик-семантика тут нахуй не нужна.
>>1997210 Да ето все очевидно, просто это требует слегка более нетривиальной доработки как принимающей так и отсылающей стороны. С эксепшенами что легко, так это то что тебе сама среда подскажет как их прокинуть по цепочке вызовов до самого гуя. Ну а что они плохой вариант для организации стандартной работы это да.
>>1997321 вроде как тут джава, не? Вообще нихуя не знаю про груви, да и вообще я не программист, но то что ты просишь это вообще какой-то малосовместимый с жизнью пиздец. Ты хочешь чтобы язык считал фрагменты кода объектами первого класса, то есть мог манипулировать ими как данными. Даже поддержка функций как объектов первого класса в потомках Си реализована через костыли - функциональные интерфейсы, делегаты, и подобное. Сам подумай, любой код-фрагмент должен быть откомпилен, а у тебя он появится уже в рантайме, когда пить боржоми поздновато. И каким хуем он, справшивается, должен пройти компиляцию? Вообще что-то такое есть, вроде на лиспах и прочих подобных, там код порождает код, порождающий код и так далее, но на то он и интерпретируемый. Короче, вангую что это невозможно с вероятностью 99,5%
>>1997337 Груви - скриптоввй язык, в них невозможное распространено повсеместно. Да и сделать такое вполне аозможно хоть на си, сами компиляторы же как-то компилируют "в рантайме". Достаточно притянуть компилятор в качестве библиотеки.
>>1997343 >>1997345 Это хуёвое, внеязыковое, решение. В языке нет средств таким способом оперировать такими сущностями. Подключение всякой внешней хуйни - это не часть языка. Пусть даже в его стандартной поставке есть готовая библиотека для таких развлечений. Я надеюсь ты различаешь средства языка и решения которые можно на нем реализовать вообще?
>>1997336 Очевидно мне не 5+5 надо будет в итоге складывать, а обрабатывать как минимум что-то типа 5+(102-2)5... >>1997337 В целом вроде та же джава, но я тебя понял, боялся что так и есть. По сути рили сперва надо будет типа скомпилировать код, потом его декомпилировать и скомпилировать заново, звучит как бред. Накрыло меня чет, придется логику все таки прописывать, массивы, if else и т.д.
>>1997354 И что, что оно внеязыковое? Косинус тоже нельзя вычислять, потому что это часть стдлибы, а не встроенный оператор? У тебя есть задача и есть инструмент, который эту задачу решает. И больше ничего не важно, часть это синтаксиса или не часть.
>>1997358 Чел, ты реально дегенерат? >Очевидно мне не 5+5 надо будет в итоге складывать, а >обрабатывать как минимум что-то типа 5+(102-2)5... def result = "5+(102-2)5..." assert Eval.me(result) == ТВОЙ ОТВЕТ ДЕГЕНЕРАТИВНОЕ ХУЙЛО
>>1997332 >>1997365 Да мне этот ответ получить надо, зачем мне его самому считать? Я считываю вводимые пользователем данные ОДНОЙ СТРОКОЙ и решаю их. Пользовател ввел (24+5)*3, должен получить ответ. Причем тут assert?
>>1997357 >>1997362 ну ты и дебил блять ёбаный. Что, правда не видно разницы тебе между простым вызовом библиотеки, и запуском абсолютно левого рантайма, который никак не связан с запускающим?
>>1997378 > запуском абсолютно левого рантайма, который никак не связан с запускающим? И что, в чём проблема? Числа и арифметика везде одинаковое. ОПу не нужно работать с данными запускающего рантайма, а если бы и нужно было, он бы их передал туда.
>>1997383 идиот-кукаретик, ты хэлоу-ворлдов переписал что ли? Пиздец у тебя все просто. Ну напиши тогда прямо сейчас здесь программу, которая принимает листинг программы, вычисляющей пусть решения квадратного уравнения, компилит и запускает его в этой вашей ёбаной груви-песочнице, потом закинь туда объект уравнение и получи оттуда аутпут. Минут 10 хватит тебе написать? А потом спиздани еще мне что это охуеть какие штатные средства, все равно что вызвать Math.pow в джаве. Приступай, сучёнок
>>1997423 >>1997408 Да в итоге убрал нахуй оттуда все эксепшены, просто классу добавил публичное поле List<String> warningLog (у меня он не статический, каждый запуск бизнес-логики создает инстанс инструмента), и все месседжи ошибок туда записываю. Это никаких обязательств со стороны ГУЯ не создает (как было бы, если бы поменялась сигнатура метода с добавлением оболочки под лог). В итоге, после прогона метода тупо вывожу лог, записанный в объекте, через showDialog и порядочек, предварительно проверив obj.warLog.size() > 0
>>1996822 Спасибо. Что-то я начинаю подозревать, что именно такой вариант как у меня и есть дефолтный. Я просто на довольно долгое время переезжал в VisualStudio, и похоже у меня какие-то рефлексы сбились. По крайней мере, в новоустановленной идее на другой машине поведение точно такое же. Хотя мне почему-то кажется что иногда раньше я вручную удалял влево по одному табу бэкспейсом
Вообще, посидев в этом треде, понимаешь что далеко не каждого погромиста-анальника можно понять, о чём он вообще говорит, у каждого свой понятийный аппарат, поэтому блджад описывайте подробнее вашу задачу. Вроде один язык, но каждый о своей хуйне думает.
Есть 1) Groovy 2) Структура: src main groovy Hello.groovy 3) Сам код: class Hello { static void main(String[] args) { println "Hi" } } 4) Maven, у которого в pom.xml: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <mainClass>Hello</mainClass> </manifest> </archive> </configuration> </plugin> 5) Я жму в Maven кнопку package, создается jar 6) Но при запуске jar ебанная ошибка: Error: Could not find or load main class Hello Caused by: java.lang.NoClassDefFoundError: groovy/lang/GroovyObject
Почему он найти не может этот Hello класс? Я так понимаю, что он по умолчанию ищет в src/main/java, как ему прописать путь то до main/groovy?
>>1997854 Не шарю за груви, но наверняка jvm класс Hello нашла, но не видит классы самого груви. Нужно сделать так называемый fat jar, в котором все либы будут упакованы.
>>1997876 Угомонись, обчитался я их гайда, заюзал GmavenPlus. Компилит он нормально. Но вот jar не хочет. >>1997861 Как ч могу это проверить? Как-то включить более расширенные логи?
>>1997650 >Какие классы идентичны? Статический и не статический классы.
>И в чем тут ограничение? Ограничение в том, что не статический внутренний класс не может иметь статических мемберов кроме psf полей. статический класс может
>Зачем вложенному классу иметь статик-поля? Например фэктори метод для создания объекта.
Почему результат не 1, а -6??? public static void main(String[] args) { int[] arr = {1,5,2,3,4,8,6}; int result = Arrays.binarySearch(arr,5); System.out.println(result); }
>>1998334 >Это даже не UB. Могли бы добавить ассершн в начале метода, но тут видимо производительность важнее. Ахуенный план! И вместо O(log(n)) получить O(n)!
Да тут никакой бинарный поиск не нужен, простой перебор уже получается.
>>1998224 В метод передается копия ссылки. Но ты можешь передать ссылку на объект с полем и поменять это поле. Так будет работать
public class Main{ public static void main(String[] args) { Name nameObject = new Name("Nikolay"); nameObject.change(); System.out.println(nameObject.nameField); } static class Name { String nameField; public Name(String name) { this.nameField = name; } public void change() { nameField = "Artem"; } } }
>>1997695 хули тут непонятного-то? Если у гуя где-то есть вызов что-то вроде doSmth(someObj) а ты поменяешь сигнатуру на doSmth(Obj obj, StringBuffer errLog) то у тебя незамедлительно все развалится, потому что вызов больше не является допустимым. А если ты просто добавишь в класс Class, где объявлен doSmth какой-нибудь public errLog, то не теряя способности ГУЯ работать здесь и сейчас, ты хоть через 5 лет в нем можешь написать в конце showMessage(clazz.errLog) >свитчер-юрист... чего блять?
>>1998429 >> может дело в том, что String не изменяемый? >name = "Artem"; тоже самое что и >name = new String("Artem"); поэтому стринг или любой другой класс не имеет значения - все равно ничего не выйдет.
>>1998434 Ты передал методу копию ссылки на объект, после чего привязал эту копию к новому объекту. А тебе надо воспользовавшись этой ссылкой манипулировать самим объектом. car = new Car("Mercedes"); car.brand = "Mercedes";
>>1998435 Для этого враперы и делают. doSmth(Dto) А что там внутри этого дто хоть каждый день меняй. Сегодня внутри есть лог, завтра нет. Сигнатура не изменится. И это называется Слабое зацепление (Low Coupling)
>>1997962 >не статический внутренний класс не может иметь статических мемберов Нет. Иметь он их может, просто неявно. Любое поле Класса-владельца по своей семантике - то же статик поле. Оно общее для любого объекта не статик иннер-класса, принадлежащего данному объекту. У класса верхнего лвла просто нет явного "владельца", потому ему нужно специальное объявление статика (которое помещает это поле в неявного владельца - объект класса Class, доступный через рефлекшн). Так еще раз - в чем ограничение? >> фэктори метод для создания объекта Хуектори. В чем проблема? Ну пусть тебе надо хуячить карточки разных банков под одного овнера: Owner outer{ Name name; BankCard getCard(name, Bank){ return this.new BankCard(name, Bank); } BankCard inner{ //constructor } }
>>1998224 Потому что в джаве НИЧЕГО не передается по ссылке. Только по значению. Ты просто записал в name новую ссылку на "Артём", с внешним объектом ничего не стало. Надо либо возвращать из метода новое значение через return, либо юзать мутабельную строку вроде стрингБаффера (только само собой без =new внутри метода. для дуракоупорности передавай его как финальный, тогда он тебе тупо не даст сменить ссылку, а литералом ее инициализировать и так нельзя)
>>1998463 Деланье враппера это тоже определенный геморой. К тому же его делают если изначально несогласованы интерфейсы. А если исходить из того что что-то уже написано и работает без врапера?
>>1998491 Со вторым все и по названию понятно. А вот насчет первого я сначала не понял, что он про то же самое, затащил и теперь бугурчу. А ведь мне всего лишь хотелось писать список кафка топиков в application.properties, чтобы спринг сам их создавал...
>>1998434 Так что то я не пойму, все таки по ссылке или по значению передаются параметры в метод? Выходит что копируются по значению. Только в случае с объектным типом копируется ссылка на объект.
>>1998541 Есть такой кодстайл - делать всё final, даже небо, даже Аллаха, и только в тех случаях, когда значение меняется, final убирать. Теоретически должно защищать от некоторых ошибок.
>>1998464 >Нет. Иметь он их может, просто неявно. Любое поле Класса-владельца по своей семантике - то же статик поле. Оно общее для любого объекта не статик иннер-класса, принадлежащего данному объекту. У класса верхнего лвла просто нет явного "владельца", потому ему нужно специальное объявление статика (которое помещает это поле в неявного владельца - объект класса Class, доступный через рефлекшн). Так еще раз - в чем ограничение? Нахуя ты пиздишь про вещи в которых не разбираешься, а? Ну завали хлебало, за умного сойдешь! Открываешь Java Virtual Machine Specification: Chapter 4. The class File Format и обнаруживаем, что по спеке нет никаких статических и не статических классов, все разлииче в одном атрибуте класса, но он ни на что не влияет. Что же касается твоего высера >общее для любого объекта не статик иннер-класса Мудило, пойми - иметь доступ к полю и быть классом в котором это поле определено - это две большие разницы. Хотя что еще ждать от человека который пишет >У класса верхнего лвла просто нет явного "владельца"
>>1998651 Если говорить не про легаси, джакарта, конечно же, полностью не умрёт, чтобы вот прям как апплеты. Хоть кто-то да будет её юзать. Это скорее будет как со всякими микронаутами и кваркусами, они же всерьёз нахуй никому не всрались, когда есть спринг, хотя отдельные хипсторки юзают, вот примерно так и будет с джакартой.
>>1998663 Чел... Микронаут и Кваркус это будущее Джейвы. Кому нужен тормозной спринг, который падает в рантайме, когда есть проверенные временем фреймворки, которые используют грааль. Твой спринг на старте отжирает по 600 мб, когда кваркус ест 20 мб. Фреймворки с компайл тайм DI и граалем - будущее клауд нейтив джейвы.
>>1998561 Иди свою блядюгу-мать поучи, сын дрисни. Тебе никто не утверждал что статики там есть на уровне JVM или вообще как-то утвержденные каким-то атрибутом. Я тебе сказал, тупой ты высерок, что есть очевидный способ реализовать их по смыслу просто отдав внешнему классу. И это, мудак ты безмозглый, идеально реализует семантику статика, как поля общего для всех инстансов. >У класса верхнего лвла нет явного владельца Так опровергни это, мразь. Во что вложен любой созданный тобой класс?? Надеюсь ты не настолько безмозглое хуйло, чтоб не отличать наследование и владение, и не начнешь тут сейчас пиздеть про Object своим молокососным ртом.
>>1998497 >А ведь мне всего лишь хотелось писать список кафка топиков в application.properties, чтобы спринг сам их создавал... Это, кстати, был тонкий реквест.
>>1998778 1. Надо признать что ты пиздоглазое мудило, которое нихера не знает но лезет со своим никчемным мнение. 2. На уровне байткода внутренний класс отличаеься только InnerClasses attribute. Все остальное в том числе доступ к приватным полям магия компилятора. 3. Вложе и владелей это разные вещи, в спецификации вообще нет понятия владельца, это твоя больная фантазия выдумала.
>>1998989 нет... ты просто тупой пидор-кукаретик. не думаю что стоит с тобой разговаривать. Я ему про практическое применение того смысла, который закладывается в статик, он мне про спеки и байт-код. Густо и вонюче насрал тебе в рот напоследок, а теперь иди нахуй. предпочту чтоб ты больше мне не отвечал, сын больной шлюхи. хорошего тебе дня.
Почему для написания апектов надо знать какой-то всратый синтакс и заучивать возможные аргументы методов? Почему до сих пор нет какой-то библиотеки, которая предоставляет нормальные параметризированные интерфейсы для всего этого говна?
>>1999098 Фу, чмо ёбаное обосранное. Стриггерилось. Так и знал что слезешь сразу, только лазейку учуешь. На всякий случай досрал на тебя, обтекай, опущ.
>>1999203 >>1999171 Да это наверное одно из первых обсуждений непосредственно самого языка в треде, а не какой-нибудь крудошлепской хуйни типа "как мне влить говна в жопу в спринге, я уже и так и так а оно ну никак"
>>1999212 Обсуждения крудошлёпской хуйни более близки к реальности, язык в чистом виде никому не нужен. На работе скорее столкнёшься с несработавшими аннотациями из спринга, чем с проблемами из-за статика.
>>1999247 Ты ещё скажи, что тебе нравятся эндофункторы и монады. >>1999251 Треды про пролог и смоллтолк раз в год тоже появляются и тонут после пары десятков постов.
>>1999252 По твоему лингвисты естественных языков, которые изучают саму суть механизмов языка, и математики например, занимающиеся тем же самым над абстрактными объектами любой природы - все аутисты? А всякое офисное говно которое делает магазины на диване - ебать сверхлюди?
>>1999255 >нравятся эндофункторы и монады. О да, тащусь от всего этого. От всякой ко/контравариантности производных типов, различных вариантов систем типов, лямбда-исчислении, мммм...
>>1999261 Ну что тут сказать... я бы пожалуй порекомендовал тебе "вон из профессии". Ибо любой программист который хотя бы немного не математик - это скам и мусор, и его судьба быть на задворках движухи. Вроде как уборщица в больнице тоже "в медицине", а бич который подметает аэродром тоже "в авиации"
>>1999285 Две ошибки в синтаксисе - конструктор без знаков контейнера аргументов, и необязательный в нем же параметризующий тип, который можно заменить даймонд-оператором начиная вроде с 8 версии. Вывод - рисовал какой-то залетный бездарь.
>>1999303 На всякий случай напомню важное правило: 1) Если ты троллишь в тематике, на всякий случай проверь, что ты не пытаешься прикрыть этим свою обосранную жопу
>>1999554 Я не говорил, что сложно. Я не понимаю, нахуй он нужен, когда все это можно выразить в виде джава интерфейсов, чтобы все возможности были зафиксированы и задокументированы.
>>1999640 Многие популярные либы/фреймворки создают объекты через пустой конструктор, который находят с помощью рефлексии в рантайме. Если такого конструктора нет, они кидают эксепшены.
>>1999569 AspectJ может обрабатывать любые классы, в том числе и те куда у тебя нет доступа. Например у тебя есть йоба REST библиотека и ты хочешь на каждый вызов добавлять в thread local - trace id, можешь спокойно обернуть ее в аспект.
>>2000271 Вместо них пакеты. Если у тебя в двух разных пакетах определяется один и тот же класс, для разрешения неоднозначности имя класса везде в коде пишешь с указанием пакета: new java.lang.String();
>>2000397 В основном, всем лучше, кроме того что джава простая как медный таз, а в шарпе хуиллиард всяких мелких фич. Разве что VS без решарпера сосёт у Intellij. Но давно уже есть Rider, так что это не плюс. Только у райдера нет комьюнити эдишена, но кого в этой стране когда это ебло? Мимо и то и то
>>2000253 Тебе оно очень надо? Из практики: примерно половину форичей в итоге переделываю на классический for(;;), потому что заранее не всегда удается понять что тебе нужен будет индекс, а заводить внешний индекс и вручную его дергать туда-сюда - впадлу и чревато ошибками по причине затупи.
>>2000454 Может быть, он ко мне прилетал чисто под решение некоторых задач (работа с SDK кое-каких гигантских шиндошс-приложений), да еще я немного кодил инди-игрули на Unity. Если ты джавоблядь, то тебе практически никакого труда не будет туда свичнуться на простые вещи. Я сказал что он лучше, потому что практически все, что можно написать в джава, без изменений синтаксического "порядка" (с точностью до мест операндов, разделителей, етц) можно написать в шарпе, но не наоборот. Например в шарпе ты можешь объявить и реализовать метод прям внутри другого метода, в джава же ты будешь городить гроздья приватной нахуй ненужной прямо в теле класса служебной хуйни, которую дергают только паблик-члены. И даже если тебе в шарпе захочется сделать именно так, ты там можешь объявить #region и скрыть в нем вс. эту поебень. Для реализации функциональщины там есть не только лямбды, но еще и делегаты, для быстрой встроенной тасовки коллекций не только возможность подтянуть аналог Stream API (я хз как оно там зовется, не юзал), но и встроенный прям в язык псевдо-SQL (LINQ). Короче, там пездец всего, но можно и не знать и не юзать это, а писать как на джава.
>>2000488 Мне всем нравится, просто тот хэлоуволдщик-вкатыш 146% имел ввиду классический циклообразный форич. Ну и Stream это прямая как пиздец последовательность операций, на нем нельзя ничего такого сделать, что предполагало бы использование индексов, доступ к более раннему и более позднему члену потока "прямо сейчас"(get(i+1), get(i-1)). Короче, более узкоспециальная вещь
>>2000494 >>имел ввиду классический циклообразный форич. Просил форич - получил форич, который перебирает элементы, как и положено форичу. Циклы, индексы - это уже к вайлу, ну или его сладкому аналогу.
>>2000956 При чем тут лямбда-то? Сам интерфейс при всем желании нельзя спрятать внутри метода, он будет либо вложен в классе, либо вообще отдельным файлом. Если только у тебя там не что-то настолько элементарное, что стандартные функциональные интерфейсы встроенные в джаву подойдут
>>2000962 >Если только у тебя там не что-то настолько элементарное, что стандартные функциональные интерфейсы встроенные в джаву подойдут Скорее всего так и будет. Если в метод функционального интерфейса надо передавать сотню аргументов, то ты с большой вероятностью что-то делаешь не так.
>>2001034 По-моему, ты читаешь проблему как-то не так. Я тебе сказал, что бывают ситуации, когда какой-то метод нужен ТОЛЬКО для того чтоб вызвать его другим методом того же класса, и в этой ситуации вполне логично чтоб он лежал внутри этого самого вызывающего метода. При этом внутренний метод может быть гораздо сложнее метода-оболочки. Например, мне надо переработать какую-то коллекцию элементов, которая передается на обработку классу, пусть попарно. Тогда я сначала напишу приватный метод private process (El el1, El el2), А потом метод public process (List <El> elList){foreach.... process(el(i), el(i+1))}. И такая цепочка вызова может тянуться не на два метода даже, а на несколько. Писать специально функциональный интерфейс и лямбду просто для того чтоб это организовать как ты сказал - это какое-то вливание говна в жопу, а не решение.
>>2001075 Не знаю, о чем ты, я не тот анон, с которым ты начал диалог, но что касается функциональных интерфейсов, то для твоего private process (El el1, El el2) есть BiFunction или BiConsumer.
>>2001125 Хуямпшен. Так и знал что ты это скажешь сейчас. Там может быть еще хуиллиард аргументов-флагов и так далее. >>2001144 Если не считать что это уже не джава, то норм
Подключение к базе данных через JPA: private static final EntityManagerFactory entityManagerFactory; ... entityManagerFactory = Persistence.createEntityManagerFactory("wsbackup"); ... EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); ... // работа с @Entity объектами БД ... entityManager.getTransaction().commit();
Что за хуйня тут написана? Где JDBC параметры подключения к базе, где имя пользователя и пароль? Как мне узнать, под какой именно учеткой подключается к базе данных?
Что это значит <jta-data-source>jdbc/__ora8</jta-data-source> как мне, блядь, логин-то узнать?
Тимлид сказал "сиди и разбирайся", я вообще не вдупляю.
>>2001207 >Там может быть еще хуиллиард аргументов-флагов и так далее. >Если в метод функционального интерфейса надо передавать сотню аргументов, то ты с большой вероятностью что-то делаешь не так.
>>2001347 Потому что ты доебал уже. Либо вникни в то о какой вообще проблеме речь, либо не пизди всякую хуйню еще и с менторским видом "задумайся может ты что-то делаешь не так"
>>2001409 Потому что аннотации снимают с программиста необходимость самостоятельно хуярить бойлерплейт. За счет этого повышается скорость разработки и снижается стоимость продукта. Заказчик рад, программист рад, все рады, кроме тех, кто не окунался в кровавый энтерпрайз.
>>2001567 Синтаксически это больше не джава, там внедряются новые ключевые слова и принципы. Если отключить этот лобок, то код даже не будет компилироваться.
>>2001625 Написан то он на джаве. Процессор аннотаций, который дописывает код и наебывает компилятор. Если отключить процессор аннотаций, будь то ломбок или любой другой - то код не будет дописываться и компиляр соответственно выдаст ошибку. Почему ты считаешь использование инструментов встроенных в джаву не джавой?
>>2001658 потому что это не встроено в джаву >>2001662 ну конечно про принципиальную новизну пиздежь, но то что это не просто подключаемая библиотека а сорт оф препроцессора, и до препроцессинга этот код с тз джавы не валидный - факт.
>>2001694 >>потому что это не встроено в джаву даже слф4ж и логбэк не встроен в джаву, а ломбок к тому же не самая стабильная библиотека. >>сорт оф препроцессора рефлексия - это кор джава.
>>2001694 >а сорт оф препроцессора Это не сорт оф, это и есть препроцессор аннотаций.
>и до препроцессинга этот код с тз джавы не валидный - факт. AspectJ может менять поведение кода, так что оно не будет соответствовать тому что в коде написано, ну и ничего всем норм.
>>2001759 Вкатываться правильнее всего именно с легаси, чтобы потом не было разочарования "пидорасы, вы нахуя мне хмл суёте, я курсы по буту не для этого проходил!". Интересно, много ли тут анонов, которые реально вкатились сразу на современный стек?
>>2001770 >Интересно, много ли тут анонов, которые реально вкатились сразу на современный стек? Я пытался вкатываться через хмлы, но когда просил помощи здесь - меня посылали, в итоге психанул и пошел сразу в бут.
>>2001770 Ну я можно считать так вкатился. Сначала пришел в контору с легаси-говном в продукте 20 летней давности. Съебался в ужасе через месяц и через пару недель потом нашел нормальную работу.
>>2001770 >Интересно, много ли тут анонов, которые реально вкатились сразу на современный стек? Я. И в целом вообще не представляю себе, что меня сейчас бы заставило копаться в говне мамонта, хмл в глаза не видел.
Какие есть НИИ (или другая говноработа в ит) в москве, куда можно устроиться студенту на неполный рабочий день? В принципе похуй куда, лишь бы какой-нибудь опыт нарисовался в резюме.
Умею в java core, spring на базовом уровне, sql, немного C++
Вопрос чисто по языку - есть ли возможность при создании энама (enum) как-то "отложить" вызов его конструктора, а не делать это в первой строке как это обычно делается? Например базовый способ создать enum такой: enum someEnum{ FIRST("First"), SECOND("Second"); public String number someEnum(String number){...} } Все заебись, но что если мне нужно в энам через конструктор передать что-то не настолько простое, как строку? Хотелось бы где-то ниже создать эти объекты для каждого энама, а в конструкторе передать их уже готовыми. Вроде того:
enum someEnum{ FIRST(list1), SECOND(list2); //хуй! в этот момент аргументов еще нет public List<String> numberList someEnum(List<String> numberList){...} List list1 = new... List list2 = new... }
Нет конечно никакой проблемы созавать что-то прям внутри вызова конструктора, но выглядит это по-уёбищному если создание сложное
>>2002085 да, мне нужно как-то обновлять инфу об актуальных объектах и следить за добавлением новых в бд. Поэтому посоветовали либо лонг-полингом через тригеры в бд, либо через вебсокет.
Какая ваша любимая IDE или текстовый редактор для программирования на Java? Я думаю что большинство скажет сейчас, что IDEA от жидбрэинс и я ей тоже пользуюсь. Но хотелось бы попробовать сменить IDE на текстовый редактор. А из текстовых редакторов все топовые на лагучем электроне, если не брать во внимание Sublime Text, который бесплатный 30 дней. Хотя IDE Eclipse вроде прикольный, но там чёт совсем нет такой же приятной чёрной темы, как у IDEA. Кстати, тоже самое и про текстовый редактор Notepad++ под винду можно сказать. Чёт как будто нет совсем альтернатив кроме продуктов от жидбрэинс. Только если вим или емакс, но я хз...
ArrayList<PersonInterface> persons = new ArrayList<>();
PersonInterface john = new Person("John", 44); PersonInterface tyron = new Person("Tyron", 54);
persons.add(john); persons.add(tyron);
for (Iterator i = persons.iterator(); i.hasNext();) { Object p = i.next(); // Какого хуя я не могу здесь написать PersonInterface p = i.next() ? System.out.println(p.getClass()); // Person как и должно быть }
>>1980802 (OP) Аноны, нужен совет. Есть вакансия программиста с требованиями: >Требуемый опыт работы: 1–3 года Сразу говорю, что опыт у меня 4 месяца верстальщика, но говорили, что >Полная занятость, полный день
Высшее профильное образование; Базовые знание Java или Delphi; Опыт работы с Spring Boot, Hibernate приветствуется; Опыт работы с СУБД PostgreSQL или FireBird; Знание HTML, CSS, JavaScript, Angular приветствуется; Знание языка SQL, умение писать и оптимизировать запросы; Умения работать самостоятельно и в команде; Умение читать и понимать чужой код; Желание учиться и развиваться.
Короче из всего это у меня знания HTML, CSS. Еле как JS. Знаю основы SQL. Два с половиной года назад делал диплом на Java *там говнокод) и больше не программировал, следовательно Java забыл. Вопросы: 1) Стоит рисковать и пытаться подготовиться к этой вакансии, если вакансия закроется 8 апреля? 2) Что нужно знать, чтобы быть уверенным, что ты знаешь Java на базовом уровне? 3) С такими требованиями они могут спросить алгоритмы? 4) Вообще Java программистам нужно знание математики и алгоритмов?
>>2002959 Анон. Сейчас я тебе всё поясню, потом спасибо скажешь. 1. Нихуя не готовься. 2. Посылай собеседователя нахуй, если будет заставлять крутить деревья. 3. Доминируй @ Унижай
>>2003202 Очень уж этот ваш грейдл любит ломать обратную совместимость, и заметно это даже не хеллоуворлдах. Иногда пытаюсь его тыкать, там если делаешь всё по туториалам, которым полгода, будут варнинги про депрекейтед, а если год, то и вовсе упадёт с ошибкой. Если тырпрайз на него и перейдёт, почти наверняка выберет какую-то конкретную версию и сидеть будет на ней 100500 лет, как с джавой 8. Ещё и отсутствие нужных плагинов, из-за них везде куча кастомных тасков, будто вернулись во времена анта, но с груви вместо хмл. По мне так хвалёные модули не стоят таких бед. И не осилил, да.
Cап. Короче работаю в провайдере питономакакой, я тут единственный, кто хоть как то пишет код. Сейчас зашел начальник и предложил переучиться на джависта, потом набрать еще пару долбоебов ко мне и начать делать серьезное дерьмо. Короче он предлагает мне оплатить курсы. Сказал чтобы я сам поискал, но я хуй знает что там менее зашкварное. Я бы конечно и сам переучился, но если барин платит, то нахуй надо. Посоветуйте курсы по жабе, короче. Спасибо
>>2003230 >Если тырпрайз на него и перейдёт, почти наверняка выберет какую-то конкретную версию и сидеть будет на ней 100500 лет Так и делают, ни разу не видел грейдл билда без врапера.
Почему в джава вайлдкарды <? extends Sometype> могут воспринимать как тип только абстрактные классы, хотя белые люди предпочитают интерфейсы? Что мешает позволить юзать там интерфейсы наравне, или хотя бы расширить синтаксис до чего-то вроде <? implements Sometype>
>>2003525 Я не отрицаю, что это говнище ебаное, но стандартом оно уже стало. >>2003534 Клиент отдельным приложением сейчас мало кто хочет делать, их сложно обновлять и сложно поддерживать. А для вебни достаточно установленного браузера.
>>2003500 Буквально неделю назад хуярил на Swing. Полет норм. Что такое вообще блять "актуален"? Это интерфейс ввода-вывода для глаз и кривых рук юзера. Если ты хочешь выступить с этим на соревнаваниях по визуальному дизайну - то отсосешь, если тебе надо чтоб просто работало - почему бы нет.
Вопрос такой - как инстанциировать объект класса с непустым конструктором? Само собой речь не про new а про рефлекшен. Искать что-ли метод по имени, предварительно получив имя у класса?
>>2003552 Ну, мне понадобился. Правда работа у меня несколько особенная, я просто решаю проблемы на пустом месте, без всяких там легаси и корпоративного стека. А если про мейнстрим то наверное неактуален. Кому нахуй нужна джава в десктопе, ты че хоть.
>>2003598 >>по сетям модель оси, чем отличается хттп от хттпс, что происходит с момента ввода адреса в строке браузера до входа на сайт - при желании все это с кишочками каждого шага.
>>2003534 ДА, жавафх очень проста в эксплуатации, можно юзать контракты жавабинс, довольно-таки быстро запилил на ней небольшой пет-проект с многопоточкой, блекджеком и шлюхами.
Кстати анон, я уже спрашивал в мобайл ветке, но думаю здесь более помидорная публика, которая что-то слышала про компиляторы. Можете объяснить как Kotlin будучи на JVM исполняется под Андроид, который вроде как на ART? Каким образом код исполняется на Ведроиде?
>>2003761 Котлин компилится в class-файлы, которые потом вместе с либами конвертируются в dex, dex пакуются в apk, попадают на андроид, а ART уже знает, что с этим dex делать.
>>2003937 Какой же ты еблан блядь сука. В спринге не Google Java Style, уебок тупой. И идея под спринговый стиль не автоформатирует никак. И эти ебланы изобрели свой мавен плагин, который также нихуя не форматирует, только сыпет ошибками в лог.
>>2003940 К примеру, многие стандартные методы принимают только ссылочные типы, типа методов коллекций, которые хранят только объекты. В обертках ещё есть всякие полезные методы, для работы со своим типом.
Сап, джаваны. Есть такой вопрос: Есть несколько классов, у каждого из которых непустой конструктор, принимающий некоторое - разное - количество однотипных аргументов, пусть double. Например один класс принимает 2 аргумента, другой 3 и так далее. Все они маркнуты одним и тем же интерфейсом, чтоб можно было манипулировать ими как одним типом. Так вот, можно ли через Reflection как то создать экземпляр произвольного из этих классов "общим способом", не меняя сами классы? В методе-генераторе я легко могу получить конструктор любого из них, но как его вызвать универсальным способом, если newInstanse() принимает аргументы именно так же, по одному, как это делается через new? То есть нельзя написать, например inst = constr.newInstance(double1, double2) потому что у рандомного класса аргумента может быть и не два, и нельзя передать туда массив, потому что нет такой перегрузки метода. Как можно сделать? Только повторюсь - не меняя классы напрямую. Так-то понятно, что можно добавить конструктор MyClass(double[] values). Может через рефлексию можно внедрить новый конструктор как-то?
>>2004083 Если уж уже написал гору текста, такой еще вопрос: может как-то через интерфейс можно указать необходимость реализовать потомкам конструктор определенного типа? Если пихать в интерфейс что-то вроде <T extends MyInterface>T(int arg); он нахуй меня посылает, говорит что нужен возвращаемый тип, думает что T это имя требуемого метода.
>>2004083 А сами аргументы ты откуда собрался брать? Если у тебя есть все нужные параметры и можно модифицировать сами классы, я бы сделал так. https://pastebin.com/zYQsvt0G
Ребята. Я посмотрел немножко про асинхронность в жс/питоне/шарпе и вот подумал, почему на джаве непопулярен гуй. Потому что нет простой асинхронности без многопоточки. Тупая мысля или не очень?
>>2004592 Гуй на жабе непопулярен, потому что он медленный и прожорливый. На питоне тоже, поэтому питон не начали юзать для гуя после появления в нём асинка.
И какая разница, многопоточный асинк или нет? На питоне и жс убогие потоки, поэтому там асинк олнопоточный. На шарпе хз, вроде там задачи раскидываются по пулу потоков, а не в одном и том же.
>>2004367 Спасибо, конечно, что нахуевертил целый проект, но я наверное не зря сказал, и дважды, что нет, классы нельзя менять. Если можно менять было бы, ничто б не мешало впилить им всем конструктор на 2 строчки, принимающий массив, и вызвать в нем свой же конструктор через this(arg[0], arg[1], arg[2]) (сколько нужно столько и аргументов).
>>2004429 Пидорские как раз форичи. Если кто-то юзает итераторы то он понимает как это внутри работает, а не просто дергает мейнстрим-хуйню для долбоебов.
>>2004708 Тогда или писать руками эти Function что не большая проблема, если все классы заранее известны или тупо создать такой массив кодом - благо и количество и типы аргументов известны. Первый вариант быстрее и безопасней все проверки выполняются во время компиляции, второй универсальней и не требует переписывания если какой-то класс поменяется.
Вообще это выглядит так, будто ты пытаешься доморощенный DI запилить.
Действительно, нахуя использовать супер удобные и современные форичи когда можно где то в интернете услышать хипстерскую хуйню итераторы и юзать их, скрепя жопой
Итератор старый век, зашквар Форич более современный, не зашквар Стрим апи уже для гениев
>>2004756 Нет, это просто своего рода фабрика разнородных примитивов. Все они принадлежат примерно одной предметной области, но все конструируются из разного количества однотипных аргументов. >тупо создать такой массив кодом да его как раз не надо создавать. от поставщика данных они и приходят упакованными в массив. Еще там же приходит тип, который надо сконструировать. Так вот, я не хочу свитчиться по всем возможным типам и для каждого вызывать именно его конструктор, потому что, как минимум, это предполагает ручное расширение этого свитча для новых типов. Я бы предпочел получить у пришедшего типа конструтор, и его вызвать. Массив данных по длине будет энивей точно подходить к типу, но будет всегда разным. Потому я и говорю, что мне надо либо в каждом возможном типе иметь конструктор, который будет принимать массив (а такого контракта я даже через интерфейс не могу создать - я так понимаю, в джава интерфейсы никак не могут принудить создавать конструкторы определенной сигнатуры), либо как-то что-то еще найти в рефлекшене, чего я не знаю. Я автор всего этого, и мне не сложно добавить в классы-примитивы нужный конструктор, это вопрос принципиального интереса исследовательского, можно сказать
Почему идеа ругается на классы, которые должны импортироваться по дефолту? Сама программа нормально компилируется и работает, но то что доступные методы и поля не показывает - заеабло. Пробовал сносить, менять jdk - нихуя. В переменные окружения тоже дописана
>>2004930 проверь, что в project structure выбран корректный jdk и language level (или как там его). в 99% случаев причина такой проблемы как раз в этом
>>2004891 Constructor.newInstance() принимает массив Objekt[] в котором и передаются все аргументы по порядку класс не должен принимать массив аргументов, их развернет JDK. Но рефлексия это медленно и не надёжно, лучше фабрики.
>>2004432 Статистку прям по дням сложно собрать, для этого пришлось бы в течение нескольких месяцев каждый день мониторить счётчики. Построил за последние 5 тредов (если перекатили недавно, самый новый не учитывался), что не совсем верно, какие-то треды более активны, какие-то - менее, какие-то перекатывают после 500, а какие-то - после 1000, причём от случая к случаю перекатить могут то раньше, то позже. Странная статистика получилась.
>>2005067 У них так поддерживается активность тредов, больше вкатывальщиков видят тред на первой странице, заходят и задают вопросы о выводе фибоначчи в консольку.
>>2004958 Да, именно так. Но почему-то если скармливать ему аргументы по одному, как в конструкторе указано, то все нормально. А если массивом, то он выбрасывает эксепшен какой-то там (то ли wrong count of arguments, то ли wrong type, че-то такое).
>>2005035 Да нихрена не так. try { Constructor<? extends Component> constr = this.representationDataClass.getConstructor(double[].class); Constructor<?>[] constructors = this.representationDataClass.getConstructors(); //component = (Component) constructors[0].newInstance(argums[0], argums[1], // argums[2]); component = constr.newInstance((Object) argums); } catch (SecurityException | InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { e.printStackTrace(); } то что под комментом - работает если конструктор содержит ровно 3 аргумента. То что без коммента - работает только если есть конструктор принимающий массив, в остальных случаях - нет.
>>2005169 олсо, вторая запись с поиском конструктора, возвращающая ВСЕ конструкторы, была сделана раньше, чтоб найти уж точно все какие есть, если запись (double[].class) не являлась бы корректной. И единственный найденный конструктор не стартует с массивом.
Поясните простыми словами, что такое DispatcherServlet и какова его роль в Спринг? Servlet это термин вообще из какого-то каменного века, как я понимаю, времен jsp.
>>2005508 DispatcherServlet занимается маршрутизацией запросов которые приходят к веб серверу. Если к классическом JEE WEB приложении - ты сам писал сервлеты и процессил запросы, то в Спринге ты создаешь ресурсы с помощью Спринга, а DispatcherServlet занимается тем что принимает входящие запросы, находит нужный ресурс и вызывает его попутно делая кучу магии
>>2005508 Сервлеты придумали хоть и давно, но это фундамент, на котором всё работает, не думай, что они устарели. Спецификация сервлетов - это просто описание того, как должно выглядеть низкоуровневое API для работы с HTTP - хедеры, куки, чтение и запись байтиков из сокета. В спринге же предлагают не ебаться с этим вручную, а использовать специальные обёртки, и DispatcherServlet - их основа, это единый сервлет для всего, он инициализирует application context, ловит все запросы, передаёт их твоим контроллерам в соответствии с маппингами, разбирается с view и прочее.
>>2005551 Про лобок не я писал, не юзаю его. >куда надо выгнуть ну на вот выгни https://pastebin.com/GpuHmMmx Срать кодом с работы не особо хочу, поэтому замутил микроаналог. Надо было про шлюх, здесь же принято на тему шлюх делать примеры
>>2005531 В таком виде, разумеется, все работает: https://pastebin.com/Cg2b1B7B переопределил еще там туСтринг, чтоб было видно в консоли факт что сработало
>>2005691 Потому что когда ты в newInstance() передаешь double[], то он конвертируется в Object[] {double[]} и значит первый аргумент конструктора должен быть double[]
А стрим возвращает Object[] {Double, Double, Double} - что интерпретируется как 3 аргумента типа Double или double.
Если там был не vararg метод, то проблему было бы сразу видно.
>>2005727 Потому что нет универсального стандарта, который бы описывал всё, что есть в современных СУБД. Есть только более общие стандарты, они описывают небольшую их часть, причём ни одна СУБД полностью эти стандарты не реализует, там много спорных мелочей. Приучаться надо к постгресу, но на хеллоуворлдах радницы не заметишь.
>>2005730 Я так понимаю, компилятор не может определиться, требуется ли вызов vararg будто это массив элементов, либо это единственный аргумент-массив, и предпочитает считать что я передаю массив массивов с одним элементом? Окей, но как ты понял, что он то же самое не сделает с аутпутом стрима? не обернет весь его в один объект? Пусть даже это как-то ясно, но стримАПИ это просто библиотека, как сделать то же самое на голом языке?
>>2005772 Не совсем. double[] не приводим к Object[], только к Object. Поэтому у компилятора единственная опция это считать его первым элементом в создаваемом Object[]. Вот если бы вместо double[] был бы Double[], тогда бы компилятор считал бы его как массив аргументов, а не первый аргумент.
Конвертануть кодом можно так Object[] arguments = new Object[ingredients.length]; for (int i = 0; i < arguments.length; i++) { arguments = ingredients; } return dishType.cast(constructor.newInstance(arguments));
>>2005790 Странно. Я вроде бы пробовал это когда-то раньше, заменить примитивные типы оболочками, и ничего не вышло. Попробую еще раз. Ладно, спасибо анон, все стало примерно ясно в этом вопросе.
>>2005790 Попробовал заменить везде на оболочки и все завелось. Я, дебил, наверное первый раз как-то на отъебись заменял, только в некоторых местах, не особо думая, что там как боксится и анбоксится. Все теперь понятно. Чая тебе и задач интересных.
>>2005790 И такой уж тогда вопрос. В целом, для реального проекта, делать так нормально или это тормозное говно и лучше через ветвление по типам? Я просто пока что кто-то вроде стажера, не особо понимаю как надо предпочитать в таких вещах.
>>2005912 Нет универсальных решений, везде свои плюсы и минусы.
Рефлексия универсальный подход, но он медленней и менее надежный - не проверяется во время компиляции. Надо делать обработку случаев когда конструкторов больше одного и искать подходящий. С другой стороны новые классы сразу начнут из коробки работать если им правильные аргументы дать.
С другой стороны тот метод который я вначале показал с фабриками - требует их писать на каждый новый класс. И при добавлении нового класса, надо его писать. Зато у тебя все проверяется на этапе компиляции.
И еще момент: делать так как в примере это плохая практика, когда у тебя передается в конструктор несколько даблов или любых других однотипных параметров - это прямой путь к ошибкам. Перепутал порядок water и alcohol и у тебя не коктейль для девочек, а ёрш для мальчиков. Используй микротипы или билдеры.
Почему в джаве потоки очень по гейски реализованы?
Вот скажем есть пара способов сделать поток : наследовать класс от класса тхреад или же имплементировать интерфейс раннабле
В первом случае если мы унаследуем наш класс от тхреад ну и оверрайдим там метод ран, то при создании двух потоков одинаковых и запустив их Thread1.start(); Thread2.start(); (Это обьекты одного и того же нашего класса) То они будут выполняться поочередно. Сначала будет работать тхреад1 а дальше уже после окончания заработает второй Разумеется это хуйня какая то
Но есть второй способ, мы наследуем наш класс от раннабле и также оверрайдим метод ран. Далее создаются опять же два разных потока, только создаются они от класса тхреад и мы засовываем туда в качестве аргумента наш класс который имплементирован от раннабле. Мы запускаем эти 2 потока также как и в 1 случае и вот они уже работают корректно. То есть поочередно/одновременно
>>2006070 Там задача специфичная - парсинг данных, которые всегда упорядочены правильно (их не человек генерирует). А все даблы там просто потому что это околоматематика.
>>2006104 > То они будут выполняться поочередно. Сначала будет работать тхреад1 а дальше уже после окончания заработает второй > Разумеется это хуйня какая то Конечно хуйня, потому что неправда. Оба треда будут работать одновременно. С чего ты вообще взял, что поочерёдно? Только не говори, что у тебя в тредах принт в консольку и ты смотришь на порядок вывода.
>>2006156 Попробуй в первом треде перед принтом воткнуть Thread.sleep(100), чтобы сделать небольшую задержку, тогда вывод сначала будет из второго треда, а потом из первого, это покажет, что второй тред не дожидается окончания работы первого. Почему именно с наследованием от Thread первый тред всегда начинает выполняться раньше второго - хз, скорее всего, это какие-то тонкости реализации. Это не настолько важно, главное что треды работают одновременно, как бы они ни запускались.
У меня в методе ран был просто цикл который выводил от 1 до 10
И когда я запускал оба треда одновременно без всяких задержек то вывод был такой 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
Но вот когда я создавал тред с интерфейсом раннабле то вывод был примерно такой 1 1 2 2 3 4 3 4 5 5 6 6 7 8 9 7 8 9 10 10 Ну не прямо так но близко кароче
Было видно что в 1 случае не одновременная работа а во втором одновременная
>>2006188 По какой логике? Может у них там в ОС как-то разный приоритет или еще что-то, только заметно это на микромасштабах. Создай им нормальные условия для оценки, чтоб задача была реально объемная, на секунды, и там смотри. Я сам не шарю за модель потоков, но зато знаю по опыту насколько трудно нормально что-то бенчмаркнуть на таких масштабах времени, да и вообще.
>>2006107 Ну тогда рефлексия норм. Разве что стоит создать класс, для каждого типа, где как минимум закешировать конструктор, чтобы JIT смог это дело заоптимизировать.
>>2006241 >создать класс, для каждого типа так и есть, и общий интерфейс для них всех. >закешировать конструктор мм... а что это значит? ну, там есть у каждого свой конструктор, с фиксированным количеством аргументов. вчера еще я замаркировал его аннотацией, которую сам запилил, чтоб уж точно не промахнуться при поиске (юзать всегда "нулевой" мне кажется очень ненадежно, а как получить простым способом "конструктор, принимающий как аргументы некоторое количество double", я так и не сообразил, разве что получать все аргументы и в цикле проверять, что они все дабл, но это громоздко, и я решил что маркерная аннотация лучше)
>>2006499 Речь идет о том, что когда ты делаешь dishType.getConstructors() ты каждый раз получаешь новый объект Constructor. Поэтому я и сказал, что надо его закешировать и не создавать каждый раз. Помимо того, что ты избегаешь лишнего выделения памяти, так еще JIT умеет оптимизировать такие вещи и черен несколько вызовов заменит рефлексию на сгенерированный код. https://pastebin.com/4Mb53R7L
Сап. Что почитать по джаве, если есть небольшой опыт в другом яп с динамической типизацией и интерпретируемомзнаю что пиздонистов тут не любят Head first показалась слишком простой, для совсем нюфагов. Effective Java базовые какие то языковые фишки не рассматривает. А про Шилдта где то видел что его не советуют читать, типа говнокода дохуя.
>>2006853 Учился именно по Шилдту. Точнее, полировался после всяких детсадовских ХэдФёрстов. У него все нудно, зато исчерпывающе. Хз насчет говнокода, я не воспринимал никогда книжки как примеры заебатого кода, типа делай как мы, и будет заебись. Это вообще отдельная дисциплина. Код в книге для другого: описал какую-то языковую особенность - показал как работает. Все. Насколько знаю, обычно все тут дрочат на 2-томник хорстмана. Сам не читал.
>>2006967 Пиздец... ролики 3...5 часов. Они там че делают все это время? За столько времени можно собаку научить плюсам и машкоду всех процессоров мира, заодно и схемотехнике цифровой.
Поясните что не так в спринг-бут-секьюрити хелло ворлде?
@PostMapping( "/user") public String pageAllUsers (Principal principal, Model model){ User user = userService.findByUsername(principal.getName()); model.addAttribute("user", user); return "user"; } В этом методе, если я меняю @PostMapping на @GetMapping, он выводит то что я хочу, если оставляю так то http - 405 error. This application has no explicit mapping for /error, so you are seeing this as a fallback. There was an unexpected error (type=Method Not Allowed, status=405). help
>>2006967 >>Хорошие курсы Это курсы уровня гикбрейнс и им подобных. Только тут еще и технологии десятилетней давности. Эклипс, свинг, авт и спринг на хмл в 2к20. >>2007014 >>Они там че делают все это время? Разговоры за жизнь, живое написание кода иногда с ошибками, тупые шутки препода - все как в говновузике. Это хорошо хоть на ютюбе х2 смотреть можно, а вживую это ж пиздец мучительно слушать. анонимный пользователь подключиться пытался......правильно?......вот.......а метод защещен.....видите?......вот.....ребят понятно?
>>2006865 Понял, попробую и Шилдта и Хортсмана. Хорстмана кстати пишут что лучше в оригинале читать, всё так? Говорят перевод на русский там более чем уебищен
>>2007125 Если речь про какой-то конкретный ПК, надо на него поставить прогу (скорее всего, её тебе придётся писать самому), которая будет обрабатывать событие вставки флешки и искать на ней твою прогу. А если любой ПК - надо, чтобы на нём был установлен Windows XP, и тогда можно через autorun.inf.
Посоны, куда можно задеплоить сервак? Чтобы дёшево или бесплатно. Хероку не предлагать. У aws вроде были какие-то бесплатные варианты, но боюсь что снимут с меня миллион потом невзначай. В идеале нужно хранить 100-200gb. Что посоветуете?
С нихуя перестал собираться проект в идее через (maven clean package), с ошибками компиляции типа cannot find symbol. При этом если отдельно собирать мавеном, то все норм. Что за хуйня? Кеши удалял, .iml файл удалял, два раза уже.
>>2007412 Небось, на строчке про Hikari Pool долго висело? Хуй знает, что это, мне помогало изменить версию бута. > 162.985 seconds У меня на работе жирный монолит на вебсфере быстрее запускается.
>>2007372 Так, короче ломбок отвалился. В новых проектах все ок, в этом даже после полной очистки хуйни, которую генерит идея, нихуя не работает. Пиздец.
>>2007582 Пиши бойлерплейт руками, всем на тебя похуй. Алсо, я не стал бы работать в проекте, в котором мне пришлось бы руками писать какую-нибудь хуйню вроде геттеров/сеттеров или конструкторов для final полей.
Вкатился я на етот ваш как его джавараш, и внезапно в релаксной лекции про коллекции меня заставляют писать свой двусвязный список. Я протупил весь день, но чето высрал (пик 1), ради интереса посмотрел готовое решение (пик 2), и оно кажется более громоздким каким то. Знатоки, можете пояснить в чем я не прав? алгоритмы в своей шараге еле-еле сдал
При работе программы работают одновременно все классы, или только те, которые вызываются? Например если я напишу все классы в одном .класс файле и там же будет меин, насколько это будет хуже чем если просто создать кучу .класс файлов под каждый класс?
>>2008738 У тебя какая-то путаница в терминах. Один class-файл всегда соответствует одному классу, не может быть такого, что class-файлов много, а класс один, и наоборот. Джава-машина загружает классы при первом обращении, пока не обращаешься к классу, он не будет загружен в память с кастомными класслоадерами это не так, но неважно.
>>2008756 Ты можешь даже независимо от "основного" класса добавить любой класс в конце (за закрывающей скобкой первого класса). Но такой класс не может быть объявлен как публичный, и извне пакета ты не сможешь иметь к нему никакого доступа.
>>2008871 Двачую firstvds, сейчас на нем сижу. Ранее в этом треде советовали ruvds, потому что там есть тариф за 240, но по факту на этом тарифе не хватит ресурсов, если будете настраивать нормальный автоматический деплой гитлаба со сборкой градлом. А вот тариф firstvds за 470 полностью закрывает все мои потребности.
>>2009090 Экеля не читал (спасибо за наводку, кстати), а Хорстманн очень прост, если есть опыт программирования на других языках. Сейчас как раз дочитываю первый том
Чтобы просто взяли на работу надо им блять за бесплатно целое приложение в одно рыло сделать?
Я даже не могу представить лоха который это напишет. Лол они просто скажут ему мы вам перезвоним, а сами просто заберут приложение себе. Допилят его для своих нужд за вечер и все
>>2009107 Да никому нахер такое не уперлось, воровать его.
Там ничего сложного, просто трудоемко, напилить классы и таблички, нашлепать крудов, написать доку и т.д. Ну и все эти, GoF шаблоны, кастомные JSP теги, MVC во все поля. Тут реально несколько дней на фултайм сидеть надо.
Имеется контроллер, который выводит всех юзеров. В html с помощью th:each Я вывожу их всех. У меня ниже написано модальное окно в котором я могу отредактировать юзера(рядом с именем кнопка)
Есть вот такая кнопка, для удаления юзера, ее логика примерно такая же как мне нужна, для edit, в edit на данный момент я пишу все также и есть функция onclick, для модального окна, которое остается на экране, только если type="button", но id всегда одинаковый.
Так вот проблема в том, что мне нужно в модальное окно передать id юзера. Как поступить? Спасибо за любые советы
Помогите найти библиотеку для работы с BLUETOOTH для Java SE. Такую чтоб НЕ БЫЛА ЗАБРОШЕНА в году эдак 2010-м или того раньше. Запарился искать по всему интернету..
Не могу арзобраться с checked и unchecked исключениями, из книги и гугла нихуя не понятно. Может кто нибудь просто в двух словах пояснить нахуя в checked исключении нужно в сигнатуре метода выбрасывать это исключение
>>2009607 Нужны ли чекед эксепшены - достаточно старый срач. Чекед изначально задумывались для ошибок, которые в теории можно обработать на месте вызова, то есть ты ждёшь, что может произойти ошибка, и должен сразу её обработать, и из-за этого в чекед всё явно: ты либо сразу пишешь try-catch, либо указываешь, что твой метод кидает чекед, и нужно его обработать. а если забыл что-то из этого сделать - компилятор напомнит. Анчекед же наоборот пишутся в предположении, что данные пришли откуда-то сверху, и на месте их вряд ли обработаешь, поэтому компилятор и не заставляет. Но со временем многие поняли (часть дедов до сих пор сопротивляется), что и для чекед данные часто приходят извне, и обработать на месте их невозможно, ибо причина где-то далеко. Из-за этого в try-catch чекед просто ловят, оборачивают в анчекед и кидают, чтобы компилятор не ругался.
>>2009615 Вроде понял, но не совсем. Как лучше делать тогда? IDE помечает метод в котором может возникнуть исключение, и предлагает либо выкинуть исключение в сигнатуре, либо обернуть его в try-catch. Как лучше делать?
Начал учить жиэс, чтобы самому на буте делать учебные\пэт круд проекты с модным спа. Задумался дальше брать реакт или вью. За вью: 1. Анон или несколько тут его форсили. 2. По обзорным статьям проще, быстрее вкат. 3. На ютубе на русском есть разбор проекта спринг-бут/реакт, который можно будет форкнуть За реакт: 1. В три раза больше вакансий 2. У меня есть приятель-реактодебил. Какие еще есть аргументы? Что посоветуете? В их тред не пойду. интересует мнение джависта.
Еще один тупой вопрос про чекед исключения, сорян. Прочитал в интернетах, что многие делают так: ловят чекед эксепш в try-catch и вместо него выбрасывают какое нибудь анчекед. Так правда делают?
>>2009716 >>Прочитал в интернетах >>2009615 >>Из-за этого в try-catch чекед просто ловят, оборачивают в анчекед и кидают, чтобы компилятор не ругался. Ты это 5 постами выше прочитал, додик
Есть платные стажировки (то есть плачу за них я) по джаве на удаленке или в ДС? Готов потратить 150к. Из имеющихся на данный момент знаний: джава кор, коллекции, базовое знание многопоточки, основы спринга, спринг mvc, sql + алгоритмы и структуры данных на посредственном уровне
>>2009983 Можно скринить и отправлять в /b/ с комментарием "айти В С Ё". Напомнило, как один чеченец рассказывал, что у него тётка купила себе рабочее место фармацевта за эквивалент будущей годовой зарплаты.
>>2009842 Я не знаю, байты не ебал. Предполагал что интерфейсы возможно для тестов, но ведь все рвано там все можно просто замокать, да и хуевая какая то идея писать тонну говнокода только ради тестов. Неужто это просто ради того чтоб показать что ты уважаешь паттерны и ООП?
Где можно почитать про всяческие побитовые операции в джаве и как это нагуглить?
Вот супер простой пример: у меня в инт записано какое то число допустим 7. Это в двоичной системе ....00111 Я хочу сдвинуть все биты влево, то есть получить ...01110. и это будет 14.
Аноны как на серваках обычно хранятся какие нибудь mp3 или видосы ? В облачном хранилище можно хранить или обязательно нужно какие то физические носители делать типо емких жестких дисков ?
>>2010530 >>работает супер медленно 305мс вместо 301мс, из которых 300мс - время доступа к базе? >>занимает кучу памяти? несколько байт в гигабайтах хипа
Ебать твои байты обойдется куда дороже, когда в нагромождении скобочек ты сделаешь ошибку и вывалившись за пределы инта/лонга.
И так, хочу вкатиться в бекенд, чтобы, не поверите,через работу укатиться в Японию, лет через 5-10. Знания минимального синтаксиса джавы есть. Что посоветуете. Посмотрел вакансии, везде требуют спринг, спринг, спринг и SQL конечно.
>>2010646 начни с коры (любая книжка из трех - шилдт, хорстманн, thinking in java), потом concurrency in practice, потом алгоритмы и шаблоны проектирования, потом охуеешь сколько всего нужно прочитать нужно по спрингу и энтерпрайзу и забьешь.
Анончики, помогите пожалуйста: необходимо выучить Java EE, просмотрел несколько ютубных роликов, не могу понять какой годный, какой нет. Стал искать книги, опять же выбор совершенно разный, где то информация дается не "с нуля", либо не совсем как гайд для вкатывальщиков.
Пособите пожалуйста источниками (ютубы, книги), где можно будет хотя бы для старта выучить базу по EE Если будет с примерами на эклипс, будет лучше конечно
Как мне сгруппировать несколько бинов, относящихся к одному из знчений енума? То есть, например, есть в енуме три значения. Для каждого из них я создаю бин типа 1 с определенной логикой, бин типа 2 с определенной логикой и т.д. Потом из какого-то сервиса дергаю. Как это лучше всего устроить?
>>2010714 > необходимо выучить Java EE Беги оттуда.
https://metanit.com/java/javaee/ - самая базовая мурзилка, там только сервлеты и JSP. Дальше книги, хотя сам читал только первую, она для начинающих: - Java EE 6 и сервер приложений GlassFish 3 - Изучаем Java EE - есть две книги с таким названием. - EJB 3 в действии Ну и всякие плейлисты на ютубе по запросу "уроки java ee"
Почему в ArrayList вызовы set(index, null) и remove(index) - это разное? null в ячейке array-листа тоже что ли считается значением? Там же просто упакован массив с фиксированным размером, во всех ячейках которого по дефолту установлен нулл. Или просто set-null не сдвигает значения?
>>2011078 Вакансии надо искать со спрингом. Если там пишут про EE, это почти всегда древний монолит на древнем стеке и с засильем xml. Хотя всякое бывает.
>>2011115 Монстр - это не сама ЕЕ, а проекты на старых её версиях. Есть современная джакарта, которая чуть ли не проще бута, но почти не юзается, и под ЕЕ обычно понимают говно мамонта с EJB/JMS/JNDI/JAAS/LTPA/Axis на вебсфере.
>>2011059 При чем тут джаваскрипт? Хуёвость в том, что если ты например сделаешь чтото вроде: list.add(0, item); list.add(0, item2); list.remove(0); list.remove(0); то size будет равен нулю. А если ты занулишь те же самые объекты через set(i, null) то получишь size == 2, хотя состояние листа в точности такое же, как в первом случае. Логики в этом не очень много. Было бы норм, если бы он за size принимал индекс последнего объекта не равного null +1
>>2011167 хуёвая логика. потому что .size уж точно не должно возвращать разный результат для одинакового состояния листа. тогда уж надо все нулы считать до самого конца зарезервированного в памяти массива
>>2011501 > потому что .size уж точно не должно возвращать разный результат для одинакового состояния листа И не возвращает, потому что состояния разные. Внутренний массив - это ещё не всё состояние, size - тоже часть состояния. Не надо путать внешний интерфейс и реализацию, тебя вообще не должно волновать, что там во внутреннем массиве хранится, ты даже не должен знать о его существовании. > тогда уж надо все нулы считать до самого конца зарезервированного в памяти массива А я хочу знать, сколько у меня нуллов реально используется, а не бесполезную инфу о том, что там arraylist себе нарезервировал.
Немного не понимаю как работают стримы. Например, когда я создаю экземпляр инпутстрима с файла, он где то повисает в памяти? Что будет если он будет открыт в течении всей программы и я никуда не буду его записывать? И как лучше к примеру копирывать файлы, по байту, или создавать массив байтов? Какой размер тогда оптимальный? К книгах вообще про стримы мало, на ютубе тоже хуйня какая то
>>2011992 > когда я создаю экземпляр инпутстрима с файла, он где то повисает в памяти? Этим уже ОС занимается. Инпутстрим просит ОС открыть файл, та его открывает, сохраняет состояние где-то у себя и возвращает число-дескриптор, в дальнейшем можно вызывать функции чтения или записи, передавая туда этот дескриптор, ОС поймёт, для какого файла его возвращала, и будет работать с этим файлом. Сам инпутстрим хранит только этот дескриптор, остальным занимается ОС. > Что будет если он будет открыт в течении всей программы и я никуда не буду его записывать? Ничего не будет, просто открыт файл, и всё. Единственное - надо следить за количеством открытых файлов, если одновременно открыто слишком много файлов, при попытке открыть ещё один тебя пошлют нахуй. Но с разумным числом файлов такого не будет. > И как лучше к примеру копирывать файлы, по байту, или создавать массив байтов? Какой размер тогда оптимальный? Не принципиально, всё под капотом оптимально буферизуется и периодически само записывается. > К книгах вообще про стримы мало, на ютубе тоже хуйня какая то Потому что это достаточно низкоуровневые байтоёбские темы, про это скорее напишут в книгах по C/C++.
Чому в консоли нельзя никак использовать кейлисенеры?
Если я хочу сделать консольную мини игру чисто на ascii символах, то мне придется после каждой нажатой клавиши еще и энтер нажимать чтобы оно принималось?
И можно ли скажем парой строчек проецировать консоль на jframe какой нибудь? Тогда все трудности уйдут. Даже можно будет очишать все окно, в то время как консоль полностью и без костылей не очистишь
>>2012116 Подобные фокусы с консолью очень сложно сделать кроссплатформенными, всё сильно зависит от используемых ОС и эмуляторов терминалов, где-то это вообще не поддерживается. Из-за этого в большинстве языков нет подобных средств. Если так хочешь консольку, пиши обёртки над winapi/posix api, но лучше бы сделать всё через гуй.
Есть хорошо знающие за Свинг и АВТ? Такой вопрос, может ли графическое содержимое как-то получено из панели и дполонено? если я делаю panel.add(graphComponent); то он отрисовывает компонент, но если второй раз вызываешь с другим компонентом он не дополняет первый, а заменяет его целиком. пытался получать у компонента Component член типа Graphics и пихать в методы панели типа paint и paintComponent - ничего не отрисовывается, видимо не то делаю.
>>2012694 Он шуткует так, типа вместо обычного веб-приложения ты должен юзать rest-клиент для ручного дёрганья эндпоинтов, который генерирует swagger. Это как предложить юзать curl, postman или soapui.
>>2012702 Ну постман я трогал, когда видос по спринг секурити смотрел. Норм инструмент промежуточный, но прям видно что на электроне написан. Но я хочу сделать проект самому. Пока пет не заебашу даже ссусь начинать ходить по собесам. Точнее можно сказать - если я его сделаю и не сблюю, только тогда у меня появится уверенность, что это не просто хобби. Я типа конечно пидор-вкатывальщик, которых тут презирают. Но основная мотивация, что бы мне не было отвратительно заниматься работой, как на предыдущих трудоустройствах. А для этого нужен фронт с фреймворком и еще и деплою потом научиться. Там как раз подруга хотела попробовать интернет магаз с хендмейдом замутить.
>>2012772 Честно говоря после этого треда этот пост считай вода и трюизмы. Кстати смотрел борисова у них в подкасте. Пиздец он душный и защищает галеры.
>>2011709 На ютубе есть полные курсы разной степени подробности, они как раз для вкатунов. Найди какой-нибудь, который сможешь посмотреть полностью. Можешь посмотреть несколько. Самые простые книги, известные мне - Head First Java (K.Sierra) и Java Beginner's Guide (Schildt). Вторая достойнее. Если получится, то лучше прочитать книгу, чем читать/смотреть васянов с ютуба и жавараша. Если не получится - наверни васянов и попробуй ещё раз.
В общем недавно я писал свою мини говнопрогу и в одном месте я отправлял гет и пост метод на кое какой ресурс, но мне в ответ присылалась ошибка от cloudflare. Загуглив на их сайте, эта ошибка означала что мой коннекшн заблокирован.
Прикол в том что когда я через браузер захожу на ту страницу, все нормально. Я даже посмотрел через браузерную консоль свойства того запроса который отсылает мой браузер и скопировал request headers, но ошибка не пропала.
То есть по сути я отсылал literally тот же самый запрос что и мой браузер, но лично я получал ошибку а браузер нет.
К слову это было лишь с одним ресурсом, я проверил на другом и все было нормально
Я использовал библиотеку джава.нет и класс HttpUrlConnection
>>2013103 Для начала удали все данные в браузере, запусти инструменты разработчика и открой страницу. И посмотри, что там происходит.
В некоторых случаях еще и капчу надо вводить. Но в целом, если браузер откроет страницу без необходимости ручками что-то делать, то просто возьми браузерный движок и отправляй запрос им. Погугли java webpage scraper на предмет какую библиотеку использовать.