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 после того, как она станет модна в хипстерских язычках, в которых тоже до сих пор рест-параша.