Прошлый >>1439678 (OP)Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?А: Нет, не поздно.Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?A: Да хуй знает, от тебя зависит насколько ты толковый и умеешь себя продать.Q: Хули все книги на английском?A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.Q: Что скажете за джавараш?Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. Если усидчивый, читай книги и делай тестовые задания. В любом случае решать тебе.https://github.com/qqqlll/Java-Thread/wiki
>>1471475 (OP)Лол, я умудрился скрыть прошлый тред и всё удивлялся, почему джависты не сидят на дваче.
Перекатываю свой вопрос из прошлого треда.Spring Boot, PostgreSQL, JPA/Hibernate.Нужно каким-либо способом максимально быстро впихивать сущности в таблицу, втихую игнорируя те, которые не удовлетворяют UNIQUE на несколько столбцов. Очень хочется использовать ON CONFLICT DO NOTHING, но native-запросы не катят, потому что ID для этих сущностей генерируется хибернейтом по последовательности + у этих сущностей достаточно много полей и есть OneToMany, велосипедить обработку всего этого я не собираюсь.Подробнее >>1471302
>>1471471Курс в вузике. Ходить я на него конечно же не буду, но разъебать хочу. Раст тоже собираюсь, аффинные типы сила.
>>1471510>>сохранение через хранимую процедуру>Тоже, насколько я понимаю, в обход хибернейта. Не катит.Я не помню, как хибернейт с хранимыми процедурами работает. Глянь. Может прокатить.Тебе зачем тут супер-хибернейт-то нужен?Тебе проинсерченные данные отдать надо?Или ты все равно перечитаешь перед выдачей на клиент?>>С другой стороны что тебе мешает трай/кетчем обернуть каждый персист>То, что эксепшн падает на флаше Да, его к персисту в трай, ясен хер.>И, если я не ошибаюсь, как только в транзакции происходит ошибка (даже если словить эксепшн), она пачкается и её больше нельзя закоммитить, только новую открывать.Ну, так-то да.Session's documentation states that If the Session throws an exception, the transaction must be rolled back and the session discarded. The internal state of the Session might not be consistent with the database after the exception occurs.1. Если у тебя вся транзакция заключается в инсерте этих данных (т.е. нет ничего дополнительного, что надо коммитить/откатывать), то можно было бы каждый инсерт делать транзакцией. Тогда у тебя бы отваливались только тх с дубликатами.2. Тебе анон уже дал правильный совет. Я этим никогда не пользовался, поэтому не воспринял его.Но ты-то мог бы и погуглитьТут сразу выйдешь на раздел.https://docs.jboss.org/hibernate/core/3.3/reference/en/html/batch.html#batch-statelesssessionа тут для современной версии то же самое найдешь, тут код подробнееhttps://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/chapters/batch/Batching.html
>>1471531>было бы каждый инсерт делать транзакцией.Ты ебанулся? По твоему транзакция это как int объявить?Хиберо батч вероятнее всего не поможет. >>1471510Если ты не хочешь марать ручки, то нахуй ты вообще полез? Хибер не подходит для хуйлоада, он удобен для доставать и маппить (и то не всегда), апсерт большого количества данных валит хибер к хуям. Бери jdbctemplate и юзай нэйтивы. Проще один раз разобраться с базой чем страдать и жрать кактус
>>1471546По твоему лексикону сразу видно, что ты горишь желанием помочь.Заодно видно, как много ты знаешь сам.Спасибо, о гуру.
>>1471550JdbcTemplate, я тебе уже помог. Ты считаешь, что есть волшебная аннотация которая поможет тебе сделать чудо, но это не так, потому что хибер - это фреймворк который призван упростить жизнь разработчиков, а значит там масса проверок и абстракций (вокруг jdbc внезапно, как по твоему, ты быстрее будешь бежать в трусах и майке или шубе?). Хибер хорош для чтения (и то не всегда). Так что сорян, бро, что у меня для тебя нет золотого молотка
>>1471510Entity S:>@Column(unique = true)Repo:>default S saveSilent(S ent) {>try {> return save(ent);>} catch(Throwable ex) {> return null;>}
>>1471546Двачую этого господина. Хибер - для не могущих/не успевающих базу. Если через него пытаются проектировать таблицы, получается лютый пиздос. Я сейчас устроился на проект. И знаешь что? Они там все ебанулись в край и пишут схему бд через хибер, чтобы потом под неё подстроить приложение. Как несложно догадаться, получается ебаный пиздец.
>>1471642Ну модель памяти например на шарю, не особо понимаю как у вас дела с женериками в 2019 обстоят, хз кароч, сложно так из головы что-то называть
>>1471676Потому что это класс из стандартной библиотеки, а не встроенный тип. В жабе не перегрузки операций, соответственно, и у ArrayList не может быть такой операции.
>>1471706Могли бы, да не стали. Решили, что это сильно усложняет язык, что противоречит его идеологии.
>>1471531>хранимыми процедурамиДа тогда уж проще нативными инсертами.>Тебе зачем тут супер-хибернейт-то нужен?Генерация ID по последовательностям с кэшированием полученных значений и OneToMany. Велосипедить всё это нет ни времени, ни желания (и техдир тоже против).>можно было бы каждый инсерт делать транзакциейНу это вообще пушка.>https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/chapters/batch/Batching.htmlПокопаю, спасибо, но подозреваю, что не спасёт.>>1471546>апсерт большого количества данных валит хибер к хуям>>1471562>там масса проверок и абстракцийБез необходимости проверять UNIQUE он вполне быстро и удобно умудряется напихивать.>>1471571>catch(Throwable ex)И придётся пересоздавать транзакцию на каждом конфликте.>>1471580>Они там все ебанулись в край и пишут схему бд через хибер, чтобы потом под неё подстроить приложениеВоистину пиздец.
>>1471741Создай интерфейс BaseMathService, заимплементь его и заинжекти в сервис, где это всё нужно. Делов-то. А, ещё напиши сущности для значений.
>>1471562Почему у тебя на пустом месте разрывает пукан?1. мне это вообще не надо было, я мимо проходил2. я тебе сказал "спасибо"Хули ты продолжаешь визжать пилорамой?молотки, какие-то, чудеса, какие-то непрошенные мнения для чего нужен хибер, а для чего не нуженТебе не с кем поговорить, ты приходишь излить душу на двач?
>>1471580>Они там все ебанулись в край и пишут схему бд через хиберК сожалению, распространенное явление.Хули, ООП учили, а про 3НФ - нет.Вообще с базой мало кто работать нормально умеет.Почти ни в одном чужом проекте не вижу скриптов, которые соберут пустую актуальную базу>Не, ну а чо, ща дамп сделаем, выкинем там актуальные данные блаблабла
>>1471736>>можно было бы каждый инсерт делать транзакцией>Ну это вообще пушка.Если у тебя там столько данных приходит от клиента, то1. возможно, у вас какая-то хуевая логика2. хибернейт в любом случае будет бутылочным горлышком из-за всех своих преобразований красивых объектов в простой ждбцхуярь этот кусок нативными инсертами, не мучай жопу
>>1471510Финита ля комедия, ваш покорный слуга обосрался.Для контекста, архитектура такая: два сервера, приёмник и основной.Приёмник максимально быстро ловит тонну данных с юзеров (те самые персисты без проверки уникальности), после чего основной себе их пачками перетаскивает к себе, откидывая дубликаты.Процесс перетаскивания состоит в "получить у приёмника очередную пачку, запихать себе, удалить пачку с приёмника" и оказался невероятно медленным для, вроде бы, не самых крупных пачек (256 основных элементов + 10-20 дочерних у каждого) - что-то около 40 секунд, что ни в какие рамки не лезет.Естественно, я сразу решил, что проблема именно в медленном запихивании и "временно" пофиксил через попытку просто запихнуть всё, а если ругнулось - откатываться на ручные проверки. Однако, как оказалось после профессионального профилирования через System.currentTimeMillis() и решения ребусов вида "какого лешего пачки на 256 через одну дублируются, а на 64 работают нормально", виноваты были получение и удаление. Получение (с локалхоста!) вроде бы ну совсем никчёмной пачки занимало 20 секунд - и, конечно же, виноват оказался Lazy-fetching на приёмнике, который был пофикшен через LEFT JOIN FETCH. Но вот каким образом удаление какого-то промежутка ID занимало ещё 20 лишних секунд - в моей голове уложиться не могло. Переписал на native-запрос - не помогло вообще ни разу.И, конечно, я и предположить не мог, до этого работав исключительно с MariaDB, что постгрес не делает индексы по внешним ключам.Таким образом, один индекс дал ускорение примерно в 40 раз и производительности на данном этапе полностью хватает.Всем спасибо, все свободны.
>>1471944Справедливости ради отмечу, что я только ответ написал, исходный пост был от другого анона. Не верь, мне пох
>>1471475 (OP)Объясните плз в чем прикол 2-ой пикчи. Где в итоге логика? Почему такое длинное наследование? и в чем смысл3-ей пикчи.80_АйКю_хтмл_програмист
>>1471994Вторая - типо в жабе принято бизнес-логику размазывать на кучу порой лишних абстракций (оверинжиниринг). Третья - сам хз.
>>1471994Куча оберток/абстракций над хуйней которая просто запросы в базу шлет. Тот случай когда йоба-спринг-суньёр-деволепер-хуйвжопе не может в sql сложнее select * from jopa.
>>1471651Про модель памяти есть хорошее видео https://youtu.be/iB2N8aqwtxc но это уже advanced level, но если модель памяти в С++ знаешь, то тут тоже все поймешь. Можно конечно спеку почитать, но там такой матан что лучше не надо. хотя если С++ 17 твоя любимая литература - это тебе тоже зайдетСложно что-то такое посоветовать, на конкретную тему можно дать конкретный совет, а тут х.з. Посмотри что https://stackoverflow.com/questions/1749217/rapid-switch-to-java-for-an-experienced-c-developer советуют.
>>1471706>Уже для своих библиотек могли бы снять ограничение В Python, Go - есть встроенные коллекции которые действительно поддерживают особый синтаксис, недоступный для сторонних реализаций. В Java другой подход, вся стандартная библиотека не привилегированна, использует только то, что доступно всем. Но и ты можешь взять другую реализацию List и использовать вместо ArrayList и весь код останется работоспособным.Например в Go - map не сортированный, а сторонний TreeMap - не поддерживает синтаксис встроенного map и так просто заменить его на TreeMap нельзя плюс там еще дженериков нет, что только добавляет радости.
>>1471736 >>1471938Я понял что горло этой бутылки ты нашел. Но хотелось бы предложить ещё вариант решения.[ /spoiler]>И придётся пересоздавать транзакцию на каждом конфликте.Таки да, а шо ты хотел? Хибер в плане использования более-менее недубовых запросов люто сосет, иных способов добавить сущность кроме как EntityManager.persist всего три с половиной на весь зоопарк юзкейсов. Гугл советует использовать над классом @SQLInsert. Разумеется если не пользоваться хваленой мобильностью этого говна между разными субд каждую пару часов. Энивей, идея с этой аннотацией хуевая - ибо так ты проебешь возможность использовать persist() нормальным образом.The only true way в данном случае это native query. А хули ты хотел, транзакционность ему в JPA подавай. Ещё и чтоб через PersistenceContext для каждой сущности insertы менять под конкретный случай. Тогда уж лучше сразу использовать JDBC с хранимыми процедурами, и не ебать себе мозг.
>>1472073>@SQLInsertО, вот за эту вот наводку вообще прямо от души. Выглядит очень интересно. Но что-то у меня есть некие сомнения насчёт того, как оно будет обрабатывать OneToMany в случае проигноренных строк.>так ты проебешь возможность использовать persist() нормальным образомЭто как? Поведение "игнорировать UNIQUE-конфликты при сохранении" для этой сущности ультимативно.
>>1472078Тогда это подходящее решение, да. Но все же, использовать native query предпочтительнее. Без того чтобы заглянуть в класс сущности, такое поведение является неочевидным и может привести к войне между командой и ветряными мельницами.
>>1472073>@SQLInsertThe parameter order is important and is defined by the order Hibernate handles properties. You can see the expected order by enabling debug logging, so Hibernate can print out the static SQL that is used to create, update, delete etc. entities.блядь блядь блядьшел 2019-годЯ привык, что в хибернейте есть всякое говно, но, блядь, это уж дальше некуда
Объясните, какие интерфейсы должна предоставлять ява-машина для кода? Какими системными функциями, самыми базовыми, каким самым минимальным набором команд она должна обладать?
>>1472105Гугли спецификацию JVM. Собственно, либо реализация реализует эту спецификацию, либо нет. Соответственно, либо она имеет право называться java-машиной, либо нет.
>>1472150Джамайка или Ямайка? )>>1472133А более конкретно? Например, ядро Линукс имеет вполне определённый набор функций. А ява? Я вроде в тематическом треде...
>>1472151>Джамайка или Ямайка? )Ямайка, Остров Ява это устоявшиеся исторические названия.Для Джавы такого нет, так что просто воспроизводишь английское произношение.
>>1472152Может мне и улыбаться, как у американцев принято? И ввв-наУкраину наведаться?>устоявшиеся исторические названияДа, история. Вполне достоЙная; и логичная. )[j] - это и-краткая, поди в МФА загляни. А "дж" - это [ʤ]. Криво и неудобно. То-ли дело Йавочка. )---Короче, ответь на вопрос лучше - где найти базовый набор функций jvm? На оф. сайте куча англ. текста и псевдоассемблер какой-то, а мне нужны системные вызовы..
>>1472155>Короче, ответь на вопрос лучше - где найти базовый набор функций jvm? На оф. сайте куча англ. текста и псевдоассемблер какой-то, а мне нужны системные вызовы.. https://docs.oracle.com/javase/specs/jvms/se8/html/Нет там никаких "системных" вызовов. Есть байткод, есть спецификация как каждая инструкция байткода должна выполняться, как должны классы грузится и т.д. А как ты будешь это реализовывать, интерпретатором, JIT, AOT или вообще железом - дело твоё.
>>1472163Блин, получается, эта байда платформозависимая? Я предполагал почему-то, что ОС абстрагирует код от своей реализации.
>>1472178>эта байда платформозависимая?Сама JVM? Конечно.Неожиданно, да?>ОС абстрагируетКакая ОС? Что ты несёшь?
>>1472209>да?Да. ) Я изначально почему-то думал, что кроссплатформенно всё целиком, а не только вычислительный модуль и язык. Всё, ухожу с ветки.
Что-о не нашел рекомендаций по IDE в ФАКе.Хорсман в книге ссылается на eclipse. Установил, но появился вопрос может что получше есть?
>>1472150Пидор, ты по-русски пытаешься говорить или на ебаном суржике?Если на ебаном суржике, то хоть через твердый знак Яву пиши, насрать.Насрать тебе врот, причем
>>1472152>Ява это устоявшиеся исторические названия.>Для Джавы такого нетПиздец, с таким уровнем интеллекта что именно тебе подсказало, что ты сможешь программировать?
>>1472155>где найти базовый набор функций jvm? Тебе уже сказали: нет никакого "базового набора". Есть спецификация. Там все написано.
>>14721831. Компилятор. Может проинлайнить, а может и нет.2. ЖВМ. Может проинлайнить, а может и нетhttps://www.oracle.com/technetwork/java/whitepaper-135217.html#method3. Двачер умеет гуглить? Очевидно, нет :(
>>1472281>может что получше есть"Получше" это решаешь лично ты.Поставил эклипс, поколупайся в нем.Рядом поставь идею, поколупайся в ней.Рядом поставь нетбинс (лично я не советую, но, вдруг, тебе понравится), поколупайся в нем.Никогда не слушай хуесосов, визжащих "Х - единственная ИДЕ". Внезапно, работать в ней тебе, а не хуесосам, так что выбирай сам.
Посоветуйте плиз хорошую серию каких-то уроков по созданию онлайн-магазина(что-то такое) на Java eeМожет, кто-то недавно в этом гавне колупался. Мне просто надо за неделю все успеть, чтоб взяли на весну, в которой я уже понимаю, лол.Для петухов, видео уже не смотрю особо, но когда смотрел - на всем очень годном и современном и тысячи просмотров нет и хуй откопаешь.
>>1472318Двачую адекватаМожно хоть на VSCode поставить плагины, хоть в виме писать флаг тебе в руки, лишь бы самому нравилось
>>1472321Старая пикча, второе кококо уже можно не писать, а NetBeans мало кто юзает. Давай что нить свежее
>>1472071>вся стандартная библиотека не привилегированна, использует только то, что доступно всемКроме Unsafe.
>>1471475 (OP)Наиболее общий, универсальный стак технологий на 2020 год по Java в разработке приложений уровня enterprise (имея какой стак технологий, можно будет в дальнейшем доучивать отдельные технологии, в зависимости от проекта)? Просвети, о великий анон!
>>1472393Ну да хотя Unsafe все же доступен для тех кто пикрилейтед, плюс там есть еще интризики, нэйтив методы и возможность курочить стандартную либу под свои нужды например ThreadLocalRandom.Но изначальный вопрос был про возможности синтаксические обращение к элементам листа по []. И тут сторонние библиотеки и стандартная библиотека равны.
>>1471510https://stackoverflow.com/questions/2893969/hibernate-constraint-constraintviolationexception-is-there-an-easy-way-to-ignor
>>1472481на hh залупа. Там объективности 0 (возвел в абсолют). Я же спрашиваю у тех, кто на самом деле занимается этим.
>>1472513Ну а ты как думал? В одночасье легаси не переписывается, да и новый функционал пилить нужно, на переписывание старого тупо нет времени. Новый проект на этом говне мамонта никто писать конечно не будет, да.
>>1472460Не рвутся, а безошибочно определяют уебка, которому отказывают на любом собеседовании, а в повседневной жизни ссут в ротТак что не сдавайсяНе усложняй нам задачу распознать в тебе мудака
Груви же скриптовый язык? А если написать на нем всю прогу, то ее и компилировать не надо, получается?
>>1472546Груви вполне себе компилируется в классы.И вообще, и со статической проверкой типов.Но, могут быть и просто скрипты на груви. Это отдельная тема.Они не очень годятся для сложных программ, но, что-то небольшое очень даже можно написать, и оно будет работать без компиляции - просто запускаешь скрипт, как питон, например.Или можно из груви/джава программы динамически вызывать скрипты.
>>1472536>java.lang.PukanBlowException: Джава - это обидно> at ru.tupoi.Mudak(Mudak.java:3681)Да у вас батенька эксепшн!
>>1472671могу лишь сказать, что в спринг уже встроен сервер приложений Tomcat. По крайней мере, если ты запускаешь со Spring boot
>>1472650Стек у них в целом аналогичен, но EE - это только набор спецификаций с кучей разных реализацией, а Spring - уже готовая реализация, которая гарантированно будет работать одинаково везде. Развивается спринг за счёт этого побыстрее. И у спринга есть удобные фичи вроде бута, которых у EE нет.
>>1472650Примерно во всем.Первое, "если есть сервер приложений", это уже плохо. EE-серверы не нужны, сама эта концепция - сплошная дырявая абстракция, от которой больше проблем, чем пользы. Так что даже просто иметь плюс-минус то же, что есть в EE, но управлять этим всем самому, без сервера, это уже хорошо.Второе, фич в спринге больше. Если брать только DI-контейнер, возможности сопоставимы, но помимо DI спринг дает еще много всякой всячины, облегчающей жизнь. Простую работу с конфиг-файлами, обертки над громоздкими API (JdbcTemplate, JmsTemplate и т.д.), легкий запуск контейнера из тестов, интеграции практически с чем угодно, Spring Data, много чего еще.
>>1472683>Первое, "если есть сервер приложений", это уже плохо. EE-серверы не нужны, сама эта концепция - сплошная дырявая абстракция, от которой больше проблем, чем пользы. Так что даже просто иметь плюс-минус то же, что есть в EE, но управлять этим всем самому, без сервера, это уже хорошо.Держи теоретика! Который даже не в курсе, что Спринг внутри себя поднимает Томкат. Единственное что Спринг делает сам - это DI. Все остальное он делегирует сторонним либам и занимается только интеграцией всего.Современный ЕЕ будет легче Спринга какая ирония, это просто набор спецификайий и если реализация позволяет их можно и по частям использовать.
>>1472695>Спринг внутри себя поднимает ТомкатА теперь давай подумаем, чем встраиваемый томкат или джетти отличается от Java EE application server'а, особенно в сугубо практическом смысле, чтоб не казаться теоретиками
>>1472695>просто набор спецификайийДа, и какие-то из них используются сами по себе (jpa, например), в том числе вместе со спрингом. Только вопрос был про сервер приложений, "голый EE на сервере приложений или спринг", и на практике выбор может выглядеть именно так и иметь конкретные ощутимые последствия, от которых тебя рассуждения о наборе спецификаций не спасут.
>>1472699>чем встраиваемый томкат или джетти отличается от Java EE application server'аНичем?Чувак, ты несёшь дичайшую хуйню, и дискутировать с тобой я, например, просто не вижу смысла.
>>1472713Что значит "в Веб"?Весь гуй на современном джава ее - это веб-интерфейс.Или ты имел в виду какие-то публичные сервисы для быдла?Государственные инф. системы, например, все на джава ее.Но, я там не работаю, и подробностей не знаю.
>>1472777>дискутировать с тобой я, например, просто не вижу смысла.А жаль, мог бы аргументированно расписать, чем EE ASы лучше и удобнее варианта спринг(бут)-томкат, ну или хотя бы почему не уступают. Глядишь, все бы с тобой согласились, бросили бы этот мерзкий спринг, и Джакарта EE зажила бы новой жизнью.
>>1472713Легаси говно жаба ее + жсф, новенькое спринг + реакт/вуе.Задачи брать с базы, писать в базу, отчеты и аналитика, разные интеграции, связь с оборудованием.
>>1472803Java EE - это, как тебе уже сказал другой анон (>>1472695), это большой набор спецификаций.Также, есть, например, Java EE Web Profie - сервлеты, jsp, etc.По сути - тот же томкат.Т.е. - нет никакого "EE AS", а есть куча разных вещей.Есть JBoss, а есть Resin, и это очень разные серверы. Но, оба - EE.Также, Spring успешно используется в EE контейнерах, несмотря на то, что в EE давно уже есть своя реализация DI контейнера.Поэтому, противопоставлять EE и Spring - не очень правильно.Собственно, это я и имел в виду, когда сказал, что дискутировать тут не о чем.В зависимости от кучи условий выбирается или то или другое, или даже оба сразу.
>>1472673>в спринг уже встроен сервер приложений Tomcat>если ты запускаешь со Spring bootНи разу не сомневался, что люди, пользующие бут, не понимают, что и как работает.
>>1472818Дружок, уебан - это твой папа, потому, что вынул невовремя, лол.Сервлет-контейнер - это и есть EE сервер, понимаешь?
>>1472814> а есть куча разных вещей.>Есть JBoss, а есть ResinСпасибо, я в курсе. Только это ты к чему, это что-то меняет? И да, спринг, бывает, используют в EE-серверах, только никакой практической, технической причины так делать нет. Часто так получается просто потому, что AS навязан "сверху", типа "у заказчика стоит вебсфера и ниипет", ну или это просто легаси, а дальше уже разработчики выкручиваются как могут и используют, что удобно. Ты бы новый проект начинал на EE-сервере?
>>1472827Зависит от проекта.И сервера.И многого другого.Понимаешь, такой взгляд на вещи, когда есть только 1 правильный ответ - он чисто российский. Это всё от неразвитости. Деревенщина, если совсем коротко.>>1472852Блядь, вроде каникулы кончились уже, хули ты тут делаешь вообще?
>>1472898Что, еще один уебок, считающий сервлет-контейнер ЖЕЕ-сервером, и искрометно шутящий про школьников и деревенщину?Бля, я не верю, что ява-треде может быть столько мудаков.Хоть, раз уж 10 раз башкой в говно мокнули, мог бы погуглить хоть пять минуточек, болезный.
>>1472898>Понимаешь, такой взгляд на вещи, когда есть только 1 правильный ответ - он чисто российскийОзначает ли это, что не бывает неправильных ответов? Бывают ли энтерпрайз-проекты, которые стоит начинать на фортране?Ты не мог бы чуть конкретнее, с примерами? В каких случаях ты бы начал новый проект на EE AS сервере (каком угодно), и какие у этого решения будут преимущества по сравнению с вариантом спринг (или другой фреймворк) + лёгкий сервер + любые, какие нужны, отдельные либы/фреймворки?
>>1472939Но, это же разные вещи.Генераторы - это про многопоточность и сопрограммы.Аннотации - метапрограммирование и т.п.
>>1472957Ну, питон - динамический язык. И декоратор - динамическая штука.В джаве именно так - нельзя. Но, есть AOP - в том же спринге, например.Довольно похоже.
>>1473009Персонаж забавный, то как будто про web profile начинает рассказывать, то совсем не в теме. Или это их двое?..
>>1472786Я задал этот вопрос, потому что меня одолевают большие сомнения по поводу энтерпрайза, облизывания легаси-кода и всего остального дерьма. Грустно всё это, вот и интересуюсь.
>>1473020Это ты за спринг топишь выше?Ты напоминаешь 1С-ника, которому вдруг сказали, что не весь энтерпрайзный софт пишут на 1С. И что в какой-нибудь Америке про 1С даже не слышали.Он примерно такие же вопросы начинает задавать. Типа "какой смысл изобретать все эти велосипеды, если в 1С уже всё есть" и прочее. С умным и важным видом. А попытки объяснить приводят примерно вот к такому вот диалогу.
>>1473022>Грустно всё этоГрустно что? То, чего ты даже не видел?Иди в модный и весёлый джаваскрипт или даже в го.В андроид иди, там, кстати, теперь модный импортозамещённый Котлин, и тут даже тред есть про это.И ты не ответил на вопрос, что ты имел в виду, когда сказал "в Веб"?Типа есть унылый энтерпрайз, а есть весёлый "веб"?Как по мне - ну его на хуй, такое веселье.
>>1473029>Типа есть унылый энтерпрайз, а есть весёлый "веб"?О каком веселье идёт речь? Это работа. Проблема в том, что в какой-то работе больше развития, а в какой-то меньше, либо его нет вообще.
>It is no longer possible to delete the mapping for a type. Instead you should delete the index and recreate it with the new mappings.Блядь, в эластиксерч наступил.
>>1473020Да он не знает ни хуяНе читал ни одной спецификации, даже ни одного ебаного балдунга или кто там для нубов разжевывает на примере бабочек и пчелокПытается взять напором из /бНа школьников, навроде его самого, может, и произведет впечатлениеВроде, их было двое, но, похоже на семена
>>1473041В любом случае какого-то отдельного от энтерпрайза веба на джаве нет,но энтерпрайз это не обязательно дремучее легаси.
>>1473044Ты уверен, что понимаешь, что такое netstat, и что такое spring boot?>>1473041Что такое "веб"? (ты снова не ответил)Что такое "энтерпрайз"?Что такое "легаси"?Что такое "развитие"?Думаешь ли ты, что серьёзный софт, от которого многое зависит, должен полностью переписываться заново при выходе очередной версии модного фреймворка?Является ли подобный мартышкин труд "развитием"?Не думаешь ли ты, что в промышленных приложениях могут действовать немного другие правила игры? Другие ценности, нежели просто "быть на переднем крае"?И т.п.
>>1473064>Ты уверен, что понимаешь, что такое netstat, и что такое spring boot?Да. Мне поверх pcap4j надо отслеживать соединения и их статус.
>>1473065Ну и предоставлять апи для просмотра статистики на данно интерфейсе, сохранение записей трафика в базу и прочие свистоперделки. Я думаю, проще не городить все абстракции, связанные с соединениями самому, а взять что-то готовое.
>>1473065А, так оно не pure java нихуя. Тогда понятно.Ну а спринг бут тут при чём?Почему не просто обычное приложение? Будет сильно дешевле.Или хочешь веб-интерфейс?
>>1472699>А теперь давай подумаем, чем встраиваемый томкат или джетти отличается от Java EE application server'а, особенно в сугубо практическом смысле, чтоб не казаться теоретиками Там была вполне конкретная цитата >Первое, "если есть сервер приложений", это уже плохо. EE-серверы не нужны, сама эта концепция - сплошная дырявая абстракция, от которой больше проблем, чем пользы.Томка это не полноценный EE, но наполовину ЕЕ.>>1472710>Только вопрос был про сервер приложений, "голый EE на сервере приложений или спринг", и на практике выбор может выглядеть именно так и иметь конкретные ощутимые последствия, от которых тебя рассуждения о наборе спецификаций не спасут. А что из EE тянет за собой Томкат кроме сервлетов?---------------------------------Я вообще не понимаю это современное гонево на ЕЕ сервера - плохо, тяжеловестно и т.п. Да вы посмотрите на ту же Ноду, там тоже самое - точно такой же сервер, со своим сервлет контейнером и прочим. Но надо хипстота, дрочит в присядку, а джаву гнобят за тяжеловестность, да еще высеры про перформанс пишут. https://www.tandemseven.com/blog/performance-java-vs-node/
>>1473070>посмотрите на ту же Ноду, там тоже Там не "тоже". Там всё сильно хуже. Натуральная деградация.> хипстота, дрочит в присядкуИменно.Широкие массы псевдо-интеллектуального быдла влились в бекэнд-разработку.Это вполне в духе левацкого курса на диверсити и прочее.То, что при этом происходит очевидная деградация технологий - никого не волнует, кроме белых супремасистов, лол.
>>1473070>Томка это не полноценный EE, но наполовину ЕЕ.Этот уебан за 10 постов так этого и не вкурил.Не говоря уж о том, что не половина, а просто какой-то кусочек.
>>1473056Поэтому ты каждый раз подрываешься жопой мне что-нибудь "умное" ответить.Но каждый раз получается, как-будто умственно отсталый Олег Попов выступает
>>1473060Конечно, лучше пусть конфиги возникают сами по себе, и ты не можешь их поменять, потому что ты тупой мудак, который доверил их буту, и который, зная, что ты тупой мудак, не дает их тебе подправить во всей полноте.
>>1473078Но ведь это ты не можешь поправить конфиги, потому что не понимаешь как работает спринг бут и говнишься на него из-за этого?
>>1473076Начнём с того, что ты не дал определения того, что есть "EE" в твоём понимании.Тебе на это тонко намекнули 2 человека. Ты проигнорировал.Формально, Томкат - EE сервер.А ты - баран.
>>1473070>Там была вполне конкретная цитатаА исходная цитата была>В чем преимущества Spring над голой javaEE, если есть сервер приложений?Не, ну мы конечно можем сделать вид, что странный анон интересовался преимуществами спринга перед одними только сервлетиками в томкате, но на самом деле нет, такая постановка вопроса подразумевает полноценный большой EE со всеми вытекающими.>Томка это не полноценный EE, но наполовину ЕЕ.Нет, никакого наполовину и близко, есть легкие сервлет-контейнеры, считай просто http-серверы, а есть JavaJakarta EE Application Servers, которые тащат с собой еще сто тонн барахла. Против первых я ничего не имею.>Я вообще не понимаю это современное гонево на ЕЕ сервера - плохо, тяжеловестно и т.п.Заметь, я про тяжеловесность ничего не говорил. Тяжеловесным сейчас модно и спринг называть, ага, в противовес молодежным микрофреймворкам.А ты лучше объясни, нафига тебе сервер, который тащит с собой, к примеру, реализации JSF и JPA и сервис очередей, если ты их использовать вообще не собираешься или хочешь использовать другие реализации.
>>1473085> ты не дал определения того, что есть "EE" Уебок ищет определений на двачеНайсНа докс.оракл зайти не может. Ясен хуй, там не по-русски написано.
>>1473070>А что из EE тянет за собой Томкат кроме сервлетов?Блядь, ну ты же не такой мудак, как этот хуесос?Что тебе мешает зайти на http://tomcat.apache.org/и в первой же строчке прочесть, что он тянет. Почти ничего. ЖСП и вебсокеты.Все гуглится за полминуты.И более полная реализация ЕЕ от апача, и Java EE Compatibility на текнетворке (удачи найти там томкет).Пиздец, школьники в яву ломанулись, развели срач на весь тред.
>>1473080Говинтся на тебя твоя мамка за то, что ты уроки не сделал, и побежал срать на двач.Мне на тебя насратьхочешь быть программистом за 300кб/нс и лидером митолгруппы, будь.хоть на буте, хуть на хуютепродолжай доказывать свою "правоту", надо же тебе хоть чем-то себя занять, раз программировать не умеешь
>>1471475 (OP)Скажите, на Джуна хватит задрочить только кор? Вообще судя по вакансиям для джунов нужно еще SQL, Spring и JavaScript знать.
Как думаете, начинать знакомство с джавой с JavaFX - хорошая идея?Просто писать соснольные хелловорлды как-то неинтересно, хочется сразу какую-нибудь йобу запилить.
https://youtu.be/4HJUX_BQgGIА почему он в перегрузке методов ничего не сказал про тип возвращаемого значения?
>>1473149Ты же не десктоп в дальнейшем собрался на джаве писать? Возьми лучше что-то более релевантное.
>>1473149FX - мертворожденная хуйня.Её мурыжат уже больше 10 лет, и она всё никак не взлетит.Даже нормального дизайнера интерфейсов не родили.И даже убрали с сайта Оракла то уёбище, которое у них было.А теперь весь fx вообще исключили из jdk и выкинули в опенсорс.Хочешь десктопный гуй - юзай свинг.Минимум 7 лет он ещё будет официально поддерживаться.
>>1473178> релевантноеЗначение знаешь?>>1473149Майнкрафт ещё можно поковырять.Но, это, наверное, не для начинающих.Вот это посмотри ещё:http://www.allitebooks.org/java-game-development-with-libgdx-2nd-edition/Там немножко FX (буквально совсем ничего), остальное - на libgdx, конкретные примеры игр, с нуля, практически.
Молю о помощи. Делаю регистрацию Java EEУ меня страница возвращается либо полностью пустая, либо ругается, что гет не определен.У меня в регистрационном сервлете только пост метод, и на jsp странице тоже определен пост метод - в этом случае просто 405 и ругается, что нет гета.Если я в сервлете переопределяю гет любым из миллиона интернетных способов - возвращает просто пустую страницу.Я и с веб.хмл и с анотациями и с путями ебусь - все равно бред какой-то.Помогите, пожалуйста.Мне надо и гет и пост определять в рег сервлете ? Что ложить тогда в гет? На jsp странице оставлять все равно только пост метод ?
>>1473200Делаю полностью по этому примеру.https://krazytech.com/programs/java-registration-page-using-servlet-mysql-mvc
>>1473200Можно просто в сервлете переопределить service(). Будет сразу и гет и пост и прочая хуйня.Но, у тебя там дело в чём-то другом. А местные телепаты сейчас все в отпуске.
>>1473201Не, ну если так писать на EE, то лучше спринг, лол.Зачем ты удалял web.xml? Причём тут index?Расставь, хотя-бы, println(...) в коде, чтобы видеть, где у тебя происходит затык. Выполняется ли doPost() вообще, и т.п.А лучше - просто используй отладчик.И idea вместо eclipse.
>>1473217Я на спринге и в идее писал и так. А чтоб пойти на работку, надо на этом базовом гавне написать.Не совсем понял про принты, у меня же все компилится и сервер стартует, а там уже либо одна ошибка либо пусто.Пробовал через сервис, вместо гета и поста - 500 ошибку дало
>>1473218>у меня же все компилится и сервер стартуетНу, если бы у тебя не компилилось или сервер не стартовал, это была бы вообще жесть.Принты - напечатают тебе в консоль, что пункт 1 выполнен, пункт 2 выполнен и т.п. И ты увидишь, что происходит. Или - чего _не_ происходит.Из jsp тоже можно печатать.А лучше - настрой remote debugger и делай точки останов прямо в серверном коде. См. инфу по эклипсе, я х.з. как там оно делается.>500 ошибку далоА стактрейс дало? Там всё написано.
>>1473218Или у тебя даже форма регистрации не выводится?Короче, опиши последовательность действий, в результате которых ты получаешь ошибку, а то одни причитания, лол.
>>1473229Да, именно форма регистрации не выводится, вообще ничего не отображается на сервере.Я запускаю проект, он компилится, билдится вар и сам открывает браузер. Там я пытаюсь перейти на страницу регистрации, и мне либо пишет, что до гет определен, либо, если я его переопределяю каким-то способом - выдает просто пустую страницу, без ошибок. Я гет пытался переопределять всеми возможными способами с инета - всегда ничего. Главная мысль - что я урлы в сервлете, хмл и джсп напутал и не то прописал, но я уже сотый раз все сверяю и пробую
>>1473236Т.е. ты пытаешься открыть Register.jsp (с большой буквы! дебилы, блядь), а оно не открывается? И ты лезешь в свой сервлет RegisterServlet.java и пытаешься его ковырять? Зачем?У тебя, скорее всего, не настроен JspServlet в web.xml.Я бы тебе советовал взять пример попроще - просто вывод hello world на jsp. И постепенно подключать остальное.Попробуй посмотри:http://www.wowebook.pw/book/core-servlets-and-javaserver-pages-volume-2-2nd-edition/http://www.allitebooks.org/java-ee-web-application-primer/Если коротко, это работает так:-Ты запрашиваешь http://localhost:808/zalupa/register.jsp. -Этот запрос обрабатывается JspServlet'ом, он находит код register.jsp (компилирует его при первом обращении)-Выполняется скомпилированный код в register.jsp-Результат возвращается в http response-Ты видишь страницу в браузере.Заполнил форму регистрации, отправил:- Вызывается твой сервлет, он должен быть сконфигурирован на url, указанный в html форме.- Делает то, что написано в doPost()- В конце делает форвард обратно на register.jsp- См. выше про register.jsp.- Ты видишь сообщение, что юзер зарегистрирован.
>>1473254>не настроен JspServlet в web.xmlПосмотрел тот туториал, там эту тему вообще обошли стороной.На самом деле, он должен быть настроен в конфиге сервера.Но, можно и в web.xml.Зависит от сервера, по идее, jsp должны сразу работать из коробки, вообще прозрачно. Но, в твоём случае это, почему-то, не так.
>>1473072>Это вполне в духе левацкого курса на диверсити и прочее.Страшно спросить, за что же топят ультра-правые? Я сейчас Rust учу, менея примут или это слишком умеренно?>>1473086>Нет, никакого наполовину и близко, есть легкие сервлет-контейнеры, считай просто http-серверы, а есть Java Jakarta EE Application Servers, которые тащат с собой еще сто тонн барахла. Против первых я ничего не имею.Да их практически и не осталось, WebLogic и WebSphere померли, остались лишь GlassFish как Reference Implementation и WildFly. Да и проекты на них доживают свои последние дни.>Заметь, я про тяжеловесность ничего не говорил. Тяжеловесным сейчас модно и спринг называть, ага, в противовес молодежным микрофреймворкам.>А ты лучше объясни, нафига тебе сервер, который тащит с собой, к примеру, реализации JSF и JPA и сервис очередей, если ты их использовать вообще не собираешься или хочешь использовать другие реализации.Если тебя не беспокоит тяжеловестность, то что тебе с того что Томкат идет с JSP? JSF и JPA в томкате нет
>>1473469>Да их практически и не осталось. Да и проекты на них доживают свои последние дни.И отлично, туда им дорога. Об этом я и говорил, отвечая на исходный вопрос о серверах приложений. Не о томкате, о EE серверах приложений. К томкату у меня вопросов нет.
>>1473528Как повезёт, сильно от галеры зависит. Где-то хватает Core Java, и сами всему учат (небольшая стажировка перед работой), где-то требуют весь стандартный стек: БД, JEE, Spring, Hibernate. Можешь по умолчанию готовиться к худшему варианту, живее будешь.
>>1473530Окей.Алгоритмы, деревья, сортировки всякие спрашивают?Какие самые топ галеры для вкатывальщиков без диплома в ДС?
>>1473532Спросить могут, да. Но если на собесе спросили 10 видов сортировох, 15 видов деревьев и 5 способов обхода графа - то лучше к ним потом не соваться, там точно ебанутые. Знать нужно основные алгоритмы и структуры данных, они потом реально понадобятся, но прям задрачивать все тонкости смысла нет.Что на рынке сейчас хз, для меня этот вопрос не сильно актуален. Полистай вакансии, они хоть как-то отражают реальность.
>>1473539Из-за их известности и статуса туда рвутся джуны со всего мира, поэтому такой ебанутый отсев.
Аноны, а в тырпрайзе надо создавать сервлет для главной страницы ? На ней нет никакой логики вообще. Просто смотрю на какого-то индуса, он создал и жсп и сервлет, и в сервлете просто принтит весь хтмл по кускам.Так и надо делать? Я в весне, просто, такой хуеты не видал
На java нет каких-то библиотек для просмотра tcp соединений? Я что-то ничего подобного не нагуглил. Придется запускать netstat и парсить вывод что ли?
>>1473653Не надо.Алсо, JSP - это и так сервлет с оговорками, но, это не важно.Делать главную страницу не статическим html может быть нужно для того, чтобы импортировать туда всякоге, например. Отображать сообщения и т.п.Что касается скорости обработки (на сервере) html или jsp без логики - jsp может быть даже быстрее (зависит от реализации сервера - кэш и т.п.).
>>1473682Это мой пост как раз. Pcap4j только захватывает пакеты, а отслеживать соединения, устанавливать их статус и прочее надо делать самому. А мне лень.
>>1473684Ну, вообще, делать такие вещи на джаве - не очень хорошая идея, мне кажется. На питоне было бы лучше, наверное (конкретно ничего не подскажу). Там проще подтянуть сишную либу, например. И вообще больше наработок на подобные темы, я думаю.Алсо, нет ничего плохого в том, чтобы делать это через netstat.https://stackoverflow.com/questions/18503485/how-to-monitor-tcp-stats-in-windows-with-java-program
>>1473702Давно уже _не_ поддерживает.В незапамятные времена мс хотел подмять под себя джаву, сделал свою реализацию. Несовместимую, естественно. Кончилось всё это ничем.Примерно в те же годы и джаваскрипт они тоже пытались делать свой - jscript. С тем же результатом.
>>1473590Ссука! 17 минут рассказывать разницу между overloading и overriding! И это вторая часть этой саги!
>>1473713Да, но нужно вначале настроить проект.https://code.visualstudio.com/docs/editor/editingevolved
>>1473716Всем. Там даже в строках можно к файлу перейти. Но это не значит, что мне не хочется попробовать что-то еще.
>>1473717Поверь, после идеи пробовать уже ничего не надо.По крайней мере, в ближайшие несколько лет.Онлайн-иде не в счёт, это другая тема.Собственно, VS Code написан на джаваскрипте, и многие онлайн-иде на нём основаны, насколько я понимаю.Но, юзать эту хуету на десктопе, и писать в ней на джаве - это лютое извращение. Ебля гусей, по сравнению с этим - просто пуританство.
>>1473733Есть же тред про андроид.Core больше, чем достаточно. Но у андроида свой API, который нужно учить отдельно. Также после вкатывания придётся изучить несколько библиотек, вроде Retrofit, RxJava и Dagger. Ещё понадобится SQL для использования sqlite. И ещё что-то по мелочи.
Java + GUI на Electron для desktop-приложения - это совсем дно, или кто-то так работает? На чем, вообще, в 2019 году стоит писать GUI? JavaFX жива?
>>1474026Свинг жив.И долго ещё будет.FX - и не жил никогда, а теперь - и подавно.>Java + GUI на ElectronНу, чисто технически, можно и собак ебать, например.
>>1474028>На Java не стоит писать GUIНе, ну раз ты говоришь, то конечно.Напиши в JetBrains - пускай перестают немедленно, скажи, что всё, хватит, теперь будет всё на джаваскрипте.
>>1474032И бля рили хватит. 100500 IDE для жабы, и все как одна на жабе, и все жрут ОЗУ как не в себя и тормозят. Хоть одну бы на крестах написали.
>>1474042Жрут озу они потому, что делают _очень_ дохуя всего в реальном времени, понимаешь?По той же причине занимают процессор.А тормозят они у нищебродов, на дешманских пк.И судя по тому, что ты предлагаешь java ide писать на крестах, тебе уже пора идти спать, потому, что завтра в школу.
Буду краток. В чём смысл существования метода _jspService? Что мешает сделать это всё внутри простого service, тем более если в jspbase ему не нужно ничем больше заниматься, кроме как отправкой ответа?Понятно, что вопрос на практике по большей части бесполезный, но мне это почему-то не даёт покоя. Кажется, что упускаю какой-то смысол.
Аноны, а как указывать путь к таблице, в которую надо пихать данные после регистрации в жаба ее? У меня есть бд, а в ней определенная таблица. Всякие аннотации хиберы и жпа нельзя использовать. Пытался прописывать путь бд/таблица - но что-то ничего
>>1473217>И idea вместо eclipse.АхахахахахаТак и думал. У суперпрограммиста-советчика всегда все из-за ИДЕВот если бы тот анон писал в идее, то у него бы заработало всеПиздец, вы тупые
>>1473200Прекрати кодить.Сиди и читай.Смотри в веб.хмл.Тебе все понятно, что там написано?Смотри хотя бы в тупой туториал про сервлеты.Тебе все понятно, что там написано?Зачем у тебя в этом проекже жсп есть, тебе понятно?Вот когда станет понятно, тогда возвращайся в свою ИДЕ, запускай, крути-верти.Здесь тебе не помогут. Максимум, что посоветуют - поставить жыдбрейн идею. Это максимум ява-программиста с двача, смирись
>>1473653>принтит весь хтмл по кускам.>Так и надо делать? Нет. ТАК делать не надо.Так делали при царе Горохе, когда сервлеты только появились.>надо создавать сервлет для главной страницы ?Никто не знает, что у тебя за главная страница, и чего ты от нее хочешь.Может, тебе статического хтмл хватит, как мы угадаем?
>>1474311>>1474327>>1474363Семён семёныч, вот нахера тут весь этот баттхёрт?Идея охуенна. И она давно уже есть бесплатная.
Чому многие просят PostgreSQL, чем им MySQL оракульский не угодил? Мы его как раз в быдловузике изучаем.
>>1474400Между>Идея охуеннаи>у тебя не работает, потому что ты на эклипсе кодишьцелая пропасть.Понятно, что уебок типа тебя не может этого осознать.У него на любой вопрос один ответ: "идея охуенна, все ставить идею"Короче, иди дальше хуи сосать
Это в этом треде или в прошлом идеедрочеры не смоги объяснить несчастному анону, как в идее запустить проект, где есть класс с ошибками (который ниоткуда не вызывается при этом)?Весь визг сводился к "ряяяяянинужна!"Да, идея охуенна, спору нет.
Как в Jackson десериалайзере в методе deserialize десериализовать вложенный тип правильно? Допустим у меня есть какой-то список SomeList<Something>, я внутри метода делаюJsonNode jsonNode = jp.getCodec().readTree(jp);Iterator<JsonNode> elements = jsonNode.elements();SomeList<Something> someThings = new SomeList<>();Каждый объект из elements надо преобразовать в Something, как это сделать, если класс Something неизвестен?
>>14740421. Eclipse отчасти на крестах - SWT, и это ему не сильно помогает.2. На тебе чисто на крестах http://www.jcreator.com/ только не блевани3. Если есть борода, гироскутер и джинсы с подворотами - можешь VS Code заюзать.
>>1474555Охуеть, не можете сделать простейшую хуйню на своей самой лучшей иде вы, а обсорался я.Ну ок.Такого упертого говноедства даже в жабоскриптовом треде не встретишь.
>>1471475 (OP)Изучил синтексис, понимаю ООП, но четко осознаю: меня можно завалить 2-3 вопросами не уровня "чем наследование отличается от печеньки?" и задачей сложнее, чем "реализуй интерфейс".Есть ли какой-нибудь годный хотя, другие не держат сборник задач по Жаве, чтобы получить отточить навыки в области ООП?
>>1475008никто не может. ООП никогда не работало и не работает, и никто не делает программы согласно классическому ооп
>>1475041А у анона выше его нет. Думаешь, твой высер для него хоть на йоту полезен?А, ну да, я же на мейлаче.
>>1475063Я редачу код в vim и параллельно проект открыт в какой-то IDE, обычно эклипс или вижуалка. Можно, конечно, на vim накатить костыли и собирать в командной строке, но нахуя.мимо
>>1475028Охуеть!Только сегодня написал class A extends BИ, ты не поверишь, заработало с первого раза.Про инкапсуляцию и говорить нечего.А уж полиморфизма в яве хоть жопой жуй.Тебе лучше в жс- и питоно- треды перебраться. Там тебя за своего примут, бля буду.
>>1475008Изучи, что такое параметрический и ad hoc полиморфизм, потом чекни, как он реализован в функциональных языках типа Haskell или Scala. После этого ООП станет для тебя интуитивно понятным и тебе не нужны будут упражнения.
>>1475702>И, ты не поверишь, заработало с первого раза.прямоугольник это потомок квадрата или квадрат это потомок прямоугольника?
Сап, Джава-бояре. Хочу потыкаться в какой нить микрофреймворк, но не спринг.Собственно есть три стула : sparkJava, Javalin, Ktor(опционально). Есть у кого опыт с ними, расскажите что зашло/не зашло. Буду благодарен
>>1475840>прямоугольник это потомок квадрата или квадрат это потомок прямоугольника?Зачем тебе это? Наследоваться нужно так чтобы было удобно использовать, а не так что на что больше похоже в реальном мире
>>1475837Правда?А что там с сервлетами, например?Надо различать data-классы и сервисы.Сервисы наследовать можно и нужно, данные - весьма нежелательно.>>1476006Лол. Я вместо "прямоугольник" прочёл "треугольник" извините.
>>1476006потому-что ты так сказал? Дух ооп позволяет и так и так и так. И какой из них правильный?>>1476009"чтобы было удобно использовать" появляется god object>>1476010наоборот. По данным ещё можно подумать о наследовании, но вот сервисы ни в коем случае. И боже упаси от развесистых условий с instance of
>>1476016>И какой из них правильный?Логически рассуждая, квадрат - частный случай прямоугольника, но не наоборот.> наоборотРечь шла об энтерпрайзе. Слова "данные" и "сервис" нужно понимать в этом контексте. Хотя, такое разделение можно провести где угодно.Например, HttpServlet наследует Servlet'у, или SomeDao наследует AbstractDao - чтобы вынести общий функционал в суперкласс.Наследовать же классы данных - это геморрой, т.к. они сохраняются в бд, и являются просто наборами полей.
>>1476016>появляется god objectТак зачекм ты собрался наследоваться? Ничего сверхестественного при таком наследовании ты не получишь же.Можно вернуть центр фигуры, посчитаь периметр и унаследоваться с одним полем данных.Ну раз уж играть по твоим правилам, то я бы наследовался от квадрата и прямоугольнику добавил ещё одно поле длинна.Но почему не наследоваться от абстрактной фигуры и? у которой будут метода центра и расчёта и периметра?
>>1475840если в твоем мире квадрат обладает некоторыми уникальными свойствами, которыми ты пользуешься, то квадрат потомок прямоугольникаесли нет - они не различимы на уровне абстракциив принципе, это еще в начальной школе проходят.
>>1475837>запрещено в энтерпрайзеахахахахахахахахахахане удивлюсь, если тебе вообще запрещают к компьютеру подходить, а разрешают только пол мыть в твоем энтерпрайзе
>>1476016>Дух оопТвои проблемы в том, что ты дрочишь на духовНормальные ребята просто пользуются. Делают. Создают. У них работает.А ты и твои одноклассники сперва подрочите не духов, потом на дваче будете сраться про какие-то теоретические аспекты, на которые всем насрать.Так что иди на хуй.
>>1476020>Наследовать же классы данных - это геморрой, т.к. они сохраняются в бдГемморой просто потому, что ты не умеешь это правильно делать>являются просто наборами полей.Ну, ок, как скажешь. Или это тебе "дух ооп" во сне нашептал?
>>1476022>длиннаОчень ценно мнение человека, который не умеет писать без ошибок простые слова на родном языке, которым пользуется пару десятков лет.О да. Он-то нам все расскажет про синтетические языки, парадигмы проектирования, да и вообще про жизнь.
>>1476020прямоугольник это квадрат с расширенными свойствами>у которой будут метода центра и расчёта и периметра?а если при этом надо будет общаться с базой данных, это общение делать прямо в сущностях? Как проводить транзакции через эти грозди наследований?
>>1476045>прямоугольник это квадрат с расширенными свойствамиЭто называется "хуёвый дизайн".В смысле - оно работает, и даже приносит выгоду, вроде-бы. Но, так делать не надо, ибо, в долгосрочной перспективе будут проблемы, скорее всего.И то, что хуёвый дизайн пропагандируется кем-то (от кого ты это услышал) - это дополнительное подтверждение того, что правило 95% никто не отменял.
>>1476022кстати само наследование противоречит инкапсуляции. При наследовании доступ к членам класса получает неограниченное количество потомков, в том числе с возможностью их модификации.В том числе благодаря наследованию возможен паттерн "паблик морозов"
>>1471475 (OP)В статье увидел, насколько охуенно Specification API: https://leaks.wanari.com/2018/01/23/awesome-spring-specification/Где можно подробно изучить Criteria и Specification API, чтобы писать так же как автор? Он еще и Vavr использует
>>1476054Это не я поднял этот вопрос. Мой первый (ошибочный) коммент по этой теме - >>1476006И я уже написал (>>1476020), что квадрат -> прямоугольник.Т.е. квадрат расширяет (специализирует) прямоугольник, т.е. явл. его потомком.При этом, тот, кто задаст такой вопрос на собеседовании, может иметь совершенно другое мнение - у квадрата одно свойство (длина стороны), а у прямоугольника - два (длина, ширина). Как (>>1476045), например. И такая точка зрения тоже имеет право на жизнь, наверное.Поэтому, на собеседовании лучше выдать оба варианта, с пояснениями.
>>1476059Есть и третий вариант, как заметил >>1476032.Это одно и то же - просто прямоугольник. Просто у квадрата длина и ширина равны.И не нужно выделять квадрат в особый случай, если на это нет действительно серьёзных причин.Более того, если даже это и имеет значение (где-то в коде), то часто можно обойтись просто сравнением сторон, и, если они равны, то делать someZalupa(rectangle). Т.е. отдельный класс не требуется в простых случаях.
>>1476055>членам класса получает неограниченное количество потомков, в том числе с возможностью их модификацииИ что? Почему они должны иметь к ним доступа?
>>1476054Тебе написали -> >>1475028В реальном проекте у прямоугольника будет метод isSquare, возвращающее true, если длина и ширина равны. Прямоугольник от квадрата наследоваться не может, потому что тогда в массив<квадрат> ты сможешь запихнуть прямоугольник, что неверно. Это самый плохой вариант.
>>1476066>Прямоугольник от квадрата наследоваться не можетНу так я и написал что нужно наследовать от абстрактной фигуры>>1476070Но всё же я тебе ответил в надежде на твоё прозрение
>>1476071Лол. Ну, прямо тут уже двое, как минимум - я и >>1476066Не нужно делать настолько контр-интуитивные вещи.Это design smell, понимаешь? Конкретно - Broken hierarchy.https://en.wikipedia.org/wiki/Design_smell
>>1476059Блядь, все твои рассуждения неправильны.Потому что ты идешь хуй знает откуда хуй знает куда.ООП нужно не для того, чтобы описывать объекты реального мира на собеседованиях или на дваче.ООП нужно, чтобы писать программы.Тебя не должны ебать придуманные тобой свойства (одна сторона или пять).Тебя должны ебать только те свойства, которые будут использоваться в твоей программе, в ее продолжениях, и, если не дай бог ты делаешь библиотеку, в программах, которые будут ее использовать.Надеюсь, что ты вообще не программируешь.Потому что, что у квадрата, что у прямоугольника ЧЕТЫРЕ ЕБАНЫХ СТОРОНЫ, а не одна, и не две.То, что длины каких-то сторон равны это частности.Уже говорил, повторяю для тупых:если у прямоугольника есть уникальные (разница длин смежных сторон не в счет, очевидно почему) нужные тебе черты, которых нет у квадрата, но не наоборот, то прямоугольник наследует квадратуесли у квадрата есть уникальные черты, которых нет у прямоугольника, то квадрат наследует прямоугольникуесли и у того,и у дргого есть непересекающиеся уникальные черты, они братья (пусть даже пятиюродные, не принципиально)если нет уникальных черт, то они - один классхули тут непонятного?при этом их уникальные черты вырастают не из учебника геометрии, а из принципов использования квадрата и прямоугольника в твоей программе.если такие простые вещи тебе надо объяснять, то воздержись от высказываний на тему ооп. тебе еще рановато.
>>1476080>ООП нужно, чтобы писать программы.ООП не нужно.Наследование нужно для НАПИСАНИЯ ПОЛИМОРФНОГО КОДА. А не для несуществующего ООП.>прямоугольник наследует квадратуБлядь, эта маня еще и падежи русского языка не знает.
>>1476080Но набор методов для работы с фигурой может изменится и что будешь делать? а вот писал бы от абстрактной фигуры и всё было бы заебись
Спешу обоссать спорящих: квадрат не связан с прямоугольником наследованием, иначе бы это нарушило принцип подстановки Барбары Лисков. А теперь идите на хуй.
>>1476066>В реальном проектеНо ты же никогда не участвовал ни в одном реальном проекте. Откуда бы тебе знать?
>>1476085Я не он, но отвечу.Абстрактная фигура в этом случае подразумевается, естественно, как предок одного из них.Просто речь тут не об этом.Васян где-то услышал про хитрый казус (квадрат<->прямоугольник) и решил блеснуть эрудицией.Когда его потыкали носом в его плохо пахнущие выделения, он ещё раз обильно просрался - >>1476080В итоге - адекваты, зажав нос, покидают тред, лол.
>>1476087Если строго следовать этому принципу, то наследование вообще нельзя использовать, так как даже перегрузка toString() ему противоречит.
>>1476084>маня еще и падежи русского языка не знает.О, еще один таджик рассказывает, как правильно программировать.В знач. сов. вида - осуществить право, в знач. несов. вида - иметь право на получение наследства после кого-н. Сын наследует отцу. Он наследовал своему дяде. А слушай, князь, ведь мы б имели право наследовать Феодору. Пушкин.http://www.endic.ru/ozhegov/Nasledovat-17498.html
>>1476092Если сделаешь что-то типа Square s = new Rectangle();s.setWidth(1);s.setWidth(2);То какое поведение ты ожидаешь? Сто стороны равны? Что они одинаковы и закостылишь в сеттерах приравнивание сторон? А если в результате костылирования ты вместо переданных в сеттеры 1 и 2 получишь геттерами 1 и 1 тебя такой результат устроит?
>>1476097>То какое поведение ты ожидаешь? У объектов с мутабельным стейтом по определению стейт может меняться так, как хочет объект. На то они и объекты с мутабельным стейтом.
>>1476085>Но набор методов для работы с фигурой может изменится Это характерно для кодеров с двача.Которые тратят силы на теоретические срачи на темы, в которых ни хуя не понимают, а не на проектирование своих систем.Им, очевидно, ООП не нужно, они следуют отсюда в жс-тред, им там уютно.
>>1476098Неработающие теоретические изыскания - хуйня. А реальное ООП вполне жизнеспособно, хоть и имеет кучу проблем.
>>1476096>О, еще один таджик рассказывает, как правильно программировать.>иметь право на получение наследства после кого-н.>квадрат имеет право на получение наследства после прямоугольникаНу так съеби в свой педвуз или откуда ты там.
>>1476097Это лишний раз напоминает нам, что нужно разделять данные и сервисы.И что данные должны быть иммутабельными.И что нужно использовать фабрики.И прочее подобное.Не стоит искать простых ответов на сложные вопросы.Это я к тому, что если очень надо, то можно делать наследование квадрат->прямоугольник (хотя, лучше этого избегать). Но, наоборот делать нельзя ни в коем случае.
>>1476093Я ж тебе написал, что надо ориентироваться не на учебник геометрии, а на то, как ты будешь использовать свои классы.Ты будешь задавать прямоугольник и квадрат не стороной/сторонами, а диагональю?Ты будешь вычислять площади?Или ты будешь рисовать на экране, в ЛЮБОМ случае задавая координаты ДВУХ углов?Или у тебя будет какой-то процессинг, который сможет принимать только квадраты, но никогда прямоугольники (или наоборот?)С какого хуя великие теоретики программирования с двача бросились рассказывать, что от чего должно наследовать, если не задали самых первых вопросов:1. определи квадрат и прямоугольник2. определи, какие функции с ними должна производить программа, и на хуя они вообще нужны (а то окажется, что в программе нужны только овалы и шестиугольники)3. каков бюджет проекта?
>>1476104>ррряяяя, ты не владеешь русским языком!>ах, сука, владеешь...>тогда, тогда, тогда...>ррряяяя, мы нинадиктанти, съеби в педвузпиздец, как теоретических программистов рвет на части тема квадратов и прямоугольников
>>1476104Добавлю, кстати, что этот хуй >>1476107 - живое доказательство того, что такое ООП.Это когда гуманитарии пришли в программирование и начали разводить свое типичное словоблудие. А давайте философски определим квадрат, и попилим при этом бюджет. Пиздец нахуй, и он это всерьез.
>>1476110>Я технарь!>Гуманитарии требуют определений!Пиздец, ты тупой уебок>философски определим квадратВидно, что ты ни дня не работал программистом.Видно, что как раз ты и есть гуманитарий, потому что не знаешь, что такое определение.Неудивительно, что программы теперь работают через хуй - программисты не знают, что вообще они программируют. Какие-то абстрактные квадраты и прямоугольники.>типичное словоблудие>ррряяяя, ООП нинужна, ООП ниработаитО, да.А ты чо не в школе-то?Уже домой пришел?А уроки что не делаешь?Мамка заругает, смотри.
>>1476114Нельзя конкретно ответить на незаданный вопрос.Нельзя конкретно ответить на мудацкий вопрос.Нельзя лично тебе конкретно ответить так, чтобы лично ты понял, потому что ты умственно отсталый.
>>1476107>геометрические фигуры>надо ориентироваться не на учебник геометрииВот именно для тебя, и для таких как ты, пишут статьи про design smell.Специально для тебя, понимаешь?Не пренебрегай.
>>1476107>Ты будешь задавать прямоугольник и квадрат не стороной/сторонами, а диагональю?И так, и так. Несколько конструкторов, перегрузка методов, не слышал? Вот тебе видос, для твоего уровня.https://youtu.be/4HJUX_BQgGI
>>1476120Мудака справшивают, что и как он будет делать в своей системе.Мудак рассказывает, как вообще бывает в жизни.Употребляет слабопонятные слова типа "перегрузка" и пр.Найс.Я теперь сколен согласиться с долбоебом про "ооп не работает".ВАМ, УЕБКАМ, к ООП даже на километр подходить не следует.
>>1476119Не удивлен, что ты ни хуя не понял из того, что я написал.Я тут паре имбецилов сказал, что им бесполезно что-то объяснять, они обиделись.Ты отличная иллюстрация безсполезности объяснения чего-либо имбецилам.
>>1476109На флоте тебя порвут за неправильное ударение в слове компас, например. Если ты не можешь в профессиональный сленг (а профессионалы пишут "квадрат наследует прямоугольник", подразумевая кальку с английского square inherits rectangle), то очень сильно палишь свою диванность.Но я тебя узнал, ты тот шизик из ньюфаготреда, только теперь ты не ставишь пробел после номера поста, чтобы не так сильно палиться.
>>1476126> определи квадрат и прямоугольник> ты ни хуя не понял из того, что я написал.Они уже определены. На уроках геометрии в средней школе.Если ты хотел это использовать просто как абстрактный пример, надо было подобрать соответствующие модели.А так - получилось, что ты несёшь хуйню с упорством, достойным лучшего применения.
Несмотря на попытки программистишков с этой доски противопоставлять себя заводчанам и бойцам скота, ООП это как раз подтверждений того, что работа программиста низкоинтеллектуальна, и больше похожа хоть и не на забой скота, но на починку автомобилей или приготовление еды (по словам одного из столпов ООП), чем на науку и ресерч. Современные тенденции типа ФП здесь не в почете. Слесари для собственного утешения даже придумали библиотеку vavr, чтобы подкапотное говно во время починки очередного мерседеса не так резало глаза.
Сами, блядь, авторитетные авторы книг про ООП пишут в них, что разработка софта похожа на приготовление еды. Ебаный стыд.
>>1476187>>1476179Неправда.Парни, я не могу светлую тему сделать, я дома в темноте сижу без света, будет глаза трахать.
>>1476135Заебись.Один задает охуительный вопрос, что из чего расти должно - квадрат из прямоугольника, или наоборот.Другой не вырос из уроков геометрии, но тоже зашел попиздеть.И везде им мерещится хуйня.Во что ява-тред превратили, пиздец просто.
>>1476119>>геометрические фигуры>>надо ориентироваться не на учебник геометрии>Вот именно для тебя, и для таких как ты, пишут статьи про design smell.Охуеть.В любой системе есть сущность Пользователь. В 99.999% случаев это человек.Очевидно, ты сперва заглядываешь в учебник биологии, наследуешь юзера от людей, тех от гоминид, и так далее до хордовых.Ну, удачи тебе, нюхатель дизайнов, удачи. Она тебе не помешает.
>>1476128>На флоте тебя порвутТы уже пофантазировал, что знаешь что-то про программирование.Теперь, вот, фантазируешь, что неебаться много знаешь про флот.Расскажи еще о своих фантазиях, давай, жги!
>>1476214>>1476217Гуманитарношизик упорно пытается вытащить из жопы дилдаки, напиханные целым тредом.
>>1476221Я не виноват, что всплеск фантазии. Но я правда thicc тянку представил, если что. Просто представь корабль в море и одна блондинка на команду негров.
>>1476224Ты самослился на фразе 'Употребляет слабопонятные слова типа "перегрузка" и пр.'То, что ты буйный и будешь еще весь вечер говорить о том, как ты не обосрался, а я нет, сути дела не меняет.
>>1476230До этого не я писал, но ты скатился до визгов о гуманитарияхТехническая победа у твоего оппонента и твоё очко уходит в зрительный зал.
>>1476230>слабопонятные слова типа "перегрузка"Просто ты ньюфаня затеял бой против кадрового офицера и потерял контроль
>>1476239Не надо, я не вниманиеблядь. Просто тут полтреда шитпостить начало, а чем я хуже. Но я может и не совсем нормис-натурал, мне не нравится вагина и вагинальный секс с тянками, не дрочу на такое. Все, не буду больше писать, не репортите
>>1476238>До этого не я писал, но ты скатился до визгов о гуманитарияхНу вот тебе предложение:>Или у тебя будет какой-то процессинг, который сможет принимать только квадраты, но никогда прямоугольники (или наоборот?)>но никогда прямоугольники (или наоборот?)Наоборот. Т.е. мы имеем функцию process(array<rectangle> yoba), которая упадет, если в массиве окажется прямоугольник с равными сторонами. Такую хуйню мог написать только гуманитарий, который в принципе не думает, что пишет.Собственно, в том посте я могу каждое предложение аргументированно разнести. У меня от каждого блядь предложения кринж. Начиная с непонимания того, что конструкторы не полиморфны, кончая претензией мани с проблемой со школьной геометрий к теоретикам программирования. Типа, нашелся такой великий практик, который несет кринжовую хуйню с серьезным лицом, а мы тут теоретики собрались.
>>1476250>которая упадет, если в массиве окажется прямоугольник с равными сторонамиты тупой? Как у него могут быть равные стороны? Это либо объект не имеющий отношения к реальному прямоугольнику либо ты обосрался и создал объект с недопустимыми параметрами.прекращай уже
Apache commons-configuration - норм штука или можно без нее обойтись? И кстати, почему apache сделали вообще ВСЕ? Разве что своего DI-контейнера нет, и то я не уверен.
>>1476250>>Или у тебя будет какой-то процессинг, который сможет принимать только квадраты, но никогда прямоугольники (или наоборот?)>>но никогда прямоугольники (или наоборот?)>Т.е. мы имеем функцию process(array<rectangle> yoba), которая упадет, если в массиве окажется прямоугольник с равными сторонами. Пиздец, ты тупой.Попроси мамку почитать тебе про курочку Рябу. Это твой интеллектуальны максимум
>>1476250>кринжовую Ух, бля, а чо ты про "токсичный" ничего не написал?Смотри ножки не отморозь в подвернутых штанишках.
>>1476256Это "программисты", которых вы заслужили.Вы не пиздите их ногами, не ссыте им за воротник. Вы здороваетесь с ними, и думаете про себя "ну, может, он поумнеет, а пока пусть веб-морду сверстает, пока мы на яве пишем".Вот они и прорываются сюда с "кринжовой хуйней", думая, что сейчас они всех научат нюхать дизайн.А раньше бы он пошел в ларьке пепси-колой торговать на третьем дне испытательного срока.Это, блядь, сейчас все добренькие.
>>1476274>>1476275>>1476277Гуманитарий, считающий, что прямоугольников с равными сторонами не бывает, тактически семенит, пытаясь перевести все в плоскость личности.
Уровень обсуждений в треде напоминает это видео >>1473590Мусолить очевидную на уровне подсознания хуйню про ооп - это уметь надо.
>>1476066>В реальном проекте у прямоугольника будет метод isSquareтак и вижу конструктор с десятком аргументов - isSquare, isTriangle, isCircle. Вот это как раз и есть ужасный дизайн. И ооп приводит именно к такому подходу
>>1476085>а вот писал бы от абстрактной фигуры и всё было бы заебиськак ты для абстрактной фигуры будешь писать метод например расчёта периметра?if (this instanceof Square) return width 4;else if (this instanceof Rectangle ) return (width + height) 2
>>1476101>А реальное ООП вполне жизнеспособно, хоть и имеет кучу проблем.>реальное ФП вполне жизнеспособно, хоть и имеет кучу проблем.
>>1476332>так и вижу конструктор с десятком аргументов - isSquare, isTriangle, isCirclehttps://v8docs.nodesource.com/node-0.8/dc/d0a/classv8_1_1_value.htmlче сказать то хотел
>>1476362>V8 is Google's open source JavaScript engineОпять сука хипстеры тред перепутали! Пошел нахуй отсюда!
энтерпрайз вей - public static double calculatePerimeterRectangle(double height, double width) {}легко писать, легко тестировать, потокобезопасно, расширяемоООП вей - анальный цирк с наследованием и попытками выяснить, кто чей предок. Почти сразу появляются грозди instanceof и ClassCastException. Появляется проблема потокобезопасности. Сложно тестировать. Любой потомок может наследовать метод и изменить его, благодаря полиморфизму это никто не заметит, и оно будет считать неправильно
>>1476373> гроздиГроздья, блять.Или кучи, тогда уже.И никакой связи с ООП, как таковым.Данные наследовать не нужно. Нужно наследовать сервисы.А ещё лучше - делегировать + интерфейсы.Анальный цирк - он в голове, а не в абстрактной методологии, которую как хочешь, так и реализуй.
>>1476099Принцип Лисков не про стейт, а про поведение объектов. Поведение наследника не должно противоречить поведению родителя. Но в примере с Square s = new Rectangle() или Ractangle r = new Square() имеем противоречие с тем, что ожидается, что сторона объекта будет удовлетворять одним условиям, а на самом деле все по-другому.
>>1476388>Поведение наследника не должно противоречить поведению родителятогда любое переопределение метода незаконно
>>1476256>Как у него могут быть равные стороны?Блядь, ебланы, заткнитесь. С какого хуя это у прямоугольника не могут быть равные стороны? Ой блядь вы здесь ролидовые. Вы же даже школьный курс геометрии не осилили. Вы, наверное, из тех идиотов, которые вечно бугуртят от комплексных числах и говорят про то, что в жизни пригодится, а что нет.
>>1476393Двачую. Когда его в очередной раз мокнули в чан с гавном он чуть выждав прибегает и начинает свои жирные набросы >>1476392
>>1476396Это ты тот ебанат, который уверен, что прямоугольников с равными сторонами не бывает? Наверное, в твоем убитом ООП умишке он сразу превращается с сущность с другим типом, ебанашка.
>>1476391Будет незаконно, если вместо сложения чисел метод выполнит, например, деление. Пока он делает то, что ожидается, переопределение законно.
>>1476388Твое "поведение" - это и есть смена стейта (либо объекта, либо мира). Принцип Лисков - про то, что потомок не должен менять инварианты предка.Проблема в том, что эти инварианты - вне языка. То есть если для тебя кодSquare s = new Rectangle();s.setWidth(1);s.setHeight(2);вызывает проблему, то это потому что ты выбрал то, что setHeight не может менять поле width класса. Хотя казалось бы, с хуя бы. setHeight - это метод, это не поле.В этом и есть самая большая проблема ООП - оно ни о чем.
>>1476403Rectangle rectangle = new Rectangle() { @Overridepublic double getPerimeter() {return super.getPerimeter() + 1;}}а так?
>>1476403Если базовый класс складывает обычные числа, то метод наследника для длинных чисел add должен выполнять сложение длинных чисел, а не какую-то другую операцию, которую придумал умник с двача. Проблема здешних долбоебов в том, что они за деревьями (языком) не видят леса (предметной области). Вы же не гуманитарии, чтобы какой-то нелогичной хуйней заниматься, вам нужна строгость, а лучше гост. И за отступление от госта увольнение.
>>1476407И да, все это касается того, что вне языка, как и предметная область, за работу в которой вы получаете деньги. Хотя с такой дискуссией начинаю сомневаться в том, что здесь кто-то работает.
>>1476412Ну если твои проекты ничего не моделируют и ничем не полезны, может тогда программирование это не твое?
>>1476439ДуркаСофт.Лучшие ОО проектировщики мейлача наследуют квадрат от треугольника.4 угла - это же больше, чем 3.
Блядь, ну что за хуйня - саганул 1 раз в другом треде, и сажа так и тащится дальше, пока руками не снимешь. Программисты хуевы.
>>1476282Легаси, заебок.Ничего нового знать не надо, надо уметь аккуратно копаться в говне мамонта.Зависит от человека, некоторым вполне нравится. А некоторые не могут вовсе.Деньги платят, и хули от них отказываться, если умеешь?
>>1476335Я закончил школу 25 лет назад.С хуя ли мне программировать прямоугольники?Это теперь ваше поле, молодежь, развлекайтесь!
>>1476362БВААХАХАХАХАХАХАХАХАХАХАJavaScript Ой-вей, думал, сегдоня уже ничего смешнее школьников, которые не знают, чем квадрат от додекаэдра отличается, не увижу
>>1476394Тут вообще никто ничего не читал.Школьники опять спутали яваскрипт с явой и пришли поучить всех жизни
>>1476409Им насрать на предметную область, они лучше заказчика знают, что такое квадрат, а что такое прямоугольник.Тут почти все миллиардеры, короче
>>1476412Прекрасно моделирует.Просто ты не умеешь.Да и ни в одной предметной области ты не разбираешься, чо уж.
>>1476268бля зайди попозже, тут сеньоры разбираются куда квадрат отнаследоватьНа самом деле я рад, что тред живой
>>1476268Какие задачи ты хочешь ей решить?Пропертис ты и так прочтешь, например.Хочешь ли ты, действительно, еще одну библиотеку себе в проект добавить?Да и вообще, посмотри, сколько классов в иерархии между Объектом и org.apache.commons.configuration2.XMLConfiguration.А тебе в треде уже сазали, что ООП не работает.
Посоны, нужна помощь. Есть некий объект с 50+ полями. Мне надо собрать статистику с 10-12 полей. Сильно упрощенный и приблизительный код:getStats(MyObject object) { MyStatistics stat = new MyStatistics(); if ( object.getAttribute1 != null ) { stat._stat1++; } if ( !object.getAttribute2.strip().isBlank() ) { stat._stat2++; } // ......}Вопрос: как сделать более правильно? Убрать кучу ифов чтоб в будущем можно было просто расширить. Поидее что-то типа мапы, где будут сопостовляться атрибуты. Но чет не догоняю что именно мне нужно и как это сделать.
>>1476598>07:35:27Вижу, перед школой зашел ответить. Молодец. Не опоздал на уроки-то? Сменку не забыл?
>>1476908На самом деле, ты делаешь что-то очень странное. Нет варианта хранить один Map вместо десятков полей и методов?Ну, если нет, рефлексию можно юзать в твоём случае так. Генерируешь название метода в виде строки, узнаёшь, как с помощью рефлексии получить объект класса Method, соответствующий нужному методу, а затем просто его вызываешь. Но трижды подумай, прежде чем так делать. Пожатый вебпаком js-код и то читабельней.
>>1476988Здраввствуйте друг.Меня зовут мистер Дурга.За немного рупий я научить вас программирование на Java и OOP.Кто если говорит что OOP не нужна тот пакистанский олень и Шива убьет его.Ждем вас в Durgasoft!
>>1477045>Я хватаюсь за все модные фишки, но не про одну я не знаю, зачем она.>Более того, я даже не могу понять, о чем меня спрашивают.>Но я знаю ответ на любой вопрос>Это: stream, lambda, closure и var
>>1477094Квадрат наследуется от прямоугольника и должен быть иммутабельным, setWidth и setHeight у квадрата должны возвращать новый прямоугольник.
Java — самая неприятная вещь, случившаяся с компьютерами со времен MS-DOS.Алан Кей, изобретатель объектно-ориентированного программирования
>>1476720Reflection - это способ динамически обратиться к методу или свойству объекта по имени.Можно получить список всех доступных методов или полей объекта, перебрать их, вызывать нужные и т.п.Вот тут написана хуйня: >>1476962 - к читаемости кода и даже к быстродействию это, само по себе, отношения не имеет. Зависит от того, как сделать.Можно делать очень интересные вещи с помощью reflection.Если ты впервые об этом услышал, то, возможно, тебе проще будет сначала взять Apache BeanUtils:http://commons.apache.org/proper/commons-beanutilsНо, я бы советовал разобраться с этой темой самому - оно того стоит.Также, если ты можешь использовать в этом проекте Groovy - используй. Это, всего-лишь, один лишний jar, хотя и большой. В Groovy просто можно вызывать методы по строковому имени, как в джаваскрипте, примерно. Рефлекшн юзается внутри. Гугол в помощь.Вообще - Groovy - охуеннейший инструмент для тестирования и прочих подобных задач. Если не пробовал - попробуй обязательно.И на этой доске очень нехватает Groovy-треда.В IDEA можно совершенно прозрачно делать комбинированные Java-Groovy проекты. Ничего дополнительно делать не надо. В том числе и в бесплатной идее.
>>1477094Здраввствуйте друг.Меня зовут мистер Дурга.В нашей очень прекрасной в мире школе программирование Дургасофт тебя научим наследовать многоугольников.Ты уже приобрел немного рупий?
Итак, есть include и есть jsp-include. Первый компилирует инклуды один раз, второй каждый раз. В каких случаях имеет смысл применять второй вариант вместо первого?
>>1477689>компилирует каждый разТы чего-то недопонял.Ничего не компилируется каждый раз.В первом случае включается _исходник_, и потом всё вместе компилируется. Это как сишный include.Во втором - импортируется некий ресурс во время выполнения.Точнее - результат запроса к ресурсу.Каждый раз, да. Соответственно, в этом случае можно юзать параметры для ресурса, например.Или просто шарить некий ресурс. И затем, когда ты его изменишь, не нужна будет перекомпиляция 1000 страниц.Первый - быстрее. Второй - экономнее.
>>1477737Главное отличие - во втором случае можно параметры передавать.Остальные отличия можно похерить.В laba2 они не сыграют.
>>1477779>>1477799Да тут поцаны хотели перекатить, но увлеклись рассказами, что четерыхугольники нельзя друг от друга наследовать.А потом их мамка ужинать позвала.Не до того, короче.
>>1478078И ведь все из-за того, что мне нравятся фабричные методы и не нравится передавать много параметров в вызове метода. Пиздос.
>>1478042О, бля, жабаскриптеры пожаловали.В яве есть любой формат даты. Какой ты способен придумать и описать с помощью нехитрых символьных констант, такие и есть.
>>1478081>И ведь все из-за того, что мне нравятся фабричные методы и не нравится передавать много параметров в вызове метода. Пиздос. Работал я в одной конторе, где была фабрика-фабрик, да еще с абстрактным суперклассом, интерфейсом и единственной реализацией.Но вообще надо смотреть по обстоятельствам. Например у нас был класс цена актива на бирже, у нее было порядка 50 полей. Часть актуальны для одного типа, часть для другого, часть для всех. И в результате ты передаешь в конструктор 34 параметра в основном числа - создается цена одного типа, 36 - другого - просто нечитаемый пиздей. Тут фабричный метод с явным указанием типа цены был бы лучше, а еще лучше билдер.С другой стороны если у тебя объект Point с двумя полями x и y, то такие изебы конечно не нужны.
>>1478086Есть и готовые константы и дефолтные установки для разных стран и языковhttps://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
>>1478087>>1478098Бля....Каждый хуесос теперь, сося хуй у Маги на Курском вокзале, называет это пет-проектом
>>1478095>50 полей. Часть актуальны для одного типа, часть для другого, часть для всехОхуенно. 1С-стайл.
>>1478159Не зная бизнес специфики легко пиздеть, про 1С-стайл.1. У тебя цена включает обе стороны BID/ASK считай все поля х22. Ценя включает в себя базовые цены (до 3-х штук), маржу сейлза, клиентскую.3. Инфо про ladder4. Инфо про forward leg если есть, сама посчитанная цена, forward points, spot price по которому все считалось5. Всякая служебная лабуда, типа типа цены, времени, айди.Можно конечно это все структурировать по канонам ООП, но тогда накладные расходы на создание всего этого начнут сильно бить по перформансу.
>>1478159Ясен хуй, что в laba3 тебе такое не встретится.А в реальном проекте за зарплату - очень даже.Когда ты перейдешь от прямоугольника и квадрата к реальным объектам из реального мира ты перестанешь пиздеть на двачах о каких-то теоретических хуйнях.
>>1478164>Можно конечно это все структурировать по канонам ООПМожно.Тут напрашивается композит или агрегат.ООП - это не обязательно наследование.>>1478171>А в реальном проекте за зарплату - очень даже.Я в курсе.И даже сам такое пишу.
>>1477737То есть, если мне не нужно часто изменять код расшаренных ресурсов и не нужны параметры, то лучше обходиться include?
>>1478198Наверное. Тебе виднее.Ещё раз:include - это включение исходного кода одной страницы в код другой страницы. Как копипаста.jsp:include - это вставка результирующего _текста_ другого (независимого) ресурса в текст этой страницы во время выполнения. С вызовом по url, включая параметры. Повторное использование в чистом виде. Как вызов библиотечной функции.Также, в include-части ты можешь обращаться к переменным страницы, в которую эта часть включается (и наоборот) - потому, что это, по сути, одна страница. В jsp:include - страницы полностью незваисимы.В jsp:include могут быть проблемы с правами доступа, например, если у пользователя есть права на страницу, но, нет прав на include-часть.
>>1478251Два чая! После 500 постов тред на нулевой не виден и в таком подводном положении начинается самое ламповое общение.
>>1478176>Тут напрашивается композит или агрегат.Это неважно.В любом случае НАРУЖУ будут торчать эти самые 50 полей
>>1478353Только торчать они могут из разных мест, а не из одного.Вообще, тут нечего обсуждать - без ТЗ это пустой разговор.>>1478360И то и другое не очень относится к теме разговора.
>>1478376Относятся напрямую. ((PriceType1) godObjectPrice).doPriceType1Stuff();((PriceType2) godObjectPrice).doPriceType2Stuff();Можно обойтись и без кастов, но так нагляднее.
>>1478381Возможно.Но, ему не надо одновременно использовать один объект как разные.Это именно разные объекты, просто в БД это хранится в одной куче - так удобнее.Поэтому я и вспомнил про 1С.
Чем оркестр из микросервисов в кубере лучше грамотно разбитого монолита на промышленном сервере приложений?
>>1478531> разбитого монолитаЧто это значит? Монолит разбивают на микросервисы же.Чем лучше? Чем монолит, лол.На самом деле - it depends.Микросервисы масштабируются гораздо лучше, чем монолит.Весь смысл - в том, что может быть неограниченное к-во инстансов конкретного микросервиса в облаке. Которые поднимаются и убираются по мере необходимости. И владелец платит только за то, что реально отработало.А сервер приложений работает всегда, и платить за него надо всегда.Т.е., без хостинга у облачного провайдера - это просто баззворд.И без соответствующих масштабов - тоже.И, надо понимать, что микросервисы - это не голден хаммер.Они создают проблем не меньше, чем решают.Поэтому, это просто перенос сложности из одного места в другое. Из не-очень-хорошо-масштабируемого в облаке в хорошо-масштабируемое в облаке. Ценой усложнения транзакций и прочего подобного.
>>1478572Кстати, таким образом уменьшаются накладные расходы на линковку классов, а так же уменьшается порог входа для новых сотрудников. Не надо рыскать по коду нескольких микросервисов, чтобы понять, что делает метод - достаточно воспользоваться Ctrl+F в одном единственном классе!
Аноны, а как часто вам приходится писать алгоритмы вида https://en.wikipedia.org/wiki/Steinhaus–Johnson–Trotter_algorithmтолько к примеру еще посложнее, там не одну строку пермутируем, а несколько, при чем количество и длина строк варьируется.Выслали тест в одну из java школ, а там такое гавно. Вот думаю рвать ли жопу ради этого, у меня от попыток придумать алгоритм рекурсивный который будет это разбирать, уже мозг плавиться, хоть окунай в таз со льдом. Сам то не думал даже на Java разраба учится, мне и qa чуханом норм, но вроде школа бесплатная одной известной конторы подумал, научат, покажут, а тут такое.Короче вопрос - это инопланетян из физмата набирают или я совсем долбаеб?
>>1478594А примеры рекурсивных алгоритмов до этого давали?Ханойские башни какие-нибудь?Это специфическая тема и требует вхождения.
>>1478600Это отборочный тур так сказать, в прошлый раз из ~1к человек отобрали 25.Суть примерна такова:Есть лист строк 123412341234И нужно вывести 111, 112, 113, 114, 211, 212, ... , 443, 444Только этих строк может быть и больше и длина строк может быть больше, и количество символов в строке тоже разное может быть.
>>1478604Замечу, что помощи в решении я не прошу, а просто пытаюсь определить степень собственного долбоебизма.
>>1478605У тебя во втором случае - по три цифры. Должно быть 4?>определить степень собственного долбоебизмаНу, степень долбоебизма этой школы уже можно примерно оценить.Если тебе такое не нравится - не ходи туда.К реальному программированию в среднестатистическом джава-энтерпрайзе это имеет весьма отдалённое отношение.Вообще, такие вещи в наше время надо учить уже после того, как научился писать рабочий код, понял ООП и т.д. А не до.Как они себя позиционируют? Что за программа? Кем ты должен выйти из этой школы?
>>1478614>У тебя во втором случае - по три цифры. Должно быть 4?Чтобы получить комбинацию берем по одной цифре из каждой строки, нужны все возможные комбинации.>Как они себя позиционируют? Что за программа? Кем ты должен выйти из этой школы?Ну судя по описанию там по выходу фуллстак с трудоустройством - фронт, бек, java, python, js (react) и др.
>>1478626>фронт, бек, java, python, js (react) и др.>и др.Как-то многовато всего, лол.И вот эти вот пермутации - они на фронте нужнее всего, конечно.Особенно - в реакте.Судя по тесту - отбирают людей с математическим складом ума.Какой после этого в пизду реакт, и зачем - я лично не понимаю.Но, возможно, это просто способ отсеять тупых по-максимуму.Это как требовать высшее образование на вакансию эникейщика за 40 тыр в ближнем замкадье.Очень по-советски.
>>1478594Вообще не приходится.С вероятностью 90% в коммерческом программировании тебе это не понадобится.Если будешь кодировать path-finding, вычисления, ии и прочую хуергу-оптимизацию, то даже тогда писать свои алгоритмы тебе не будет нужды, все уже придумали до тебя. Главное будет знать, где поискать нужную реализацию.
>>1478594Всё норм, такие алгоритмы всем кажутся ебанутыми. И обычно если их и юзают, то не особо вникая. Сверхразумов, которые реально в этом разбираются - мало. Реализовывать самому такое обычно не нужно, как правило уже есть готовое. Достаточно понимать, что какой-то алгоритм делает и когда его лучше использовать.Хотя, теоретически, может проводиться набор тех, у кого хорошо развиты алгоритмическое, аналитическое, хуическое мышления. Но это всё нужно только олимпиадникам, остальным это нахуй не всралось.
>>1478692Не, ну такая хуйня неплохо расширяет сознание, например.И ты потом будешь более лучшей макакой. Будешь видеть паттерны не ооп.Но, начинать обучение с этого - нонсенс.И это не единственный способ расширить сознание.Позадрачивать фп или сикп почитать - не менее полезно, а, может быть, и гораздо более.
>>1478702Я ради принципа пытаюсь это без рекурсии сделать, уже дошел до 4 строк и у меня помимо сознания не слабо так анус расширился, держу в курсе. Больше 5 вложенных циклов я делать наверное не буду, буду считать, что для себя я сделал это на столько, на сколько знания и мои 80 iq позволяют.
>>1478710Хвостовая рекурсия очень просто превращается в цикл.В этом суть TCO (TCE) - когда компилятор делает это автоматически.Если рекурсия не хвостовая - её нужно предварительно сделать хвостовой.Это, обычно, означает добавление аккумулятора к списку аргументов функции.Это если совсем коротко.
>>1478714Далеко не всякая рекурсия так вот просто преобразуются в хвостовую/цикл. С обходом дерева, например, одним аккумулятором не обойтись, там придётся хранить целый стек, но в явном виде. Зато стек переполнится, только когда ОЗУ закончится нахуй.
>>1478721Да ее уже в некоторых местах выложили аноны, которые тоже пытаются:https://javarush.ru/forum/83
>>1478740Да, довольно часто.IDEA их анализирует, и указывает на проблемные места.Иногда очень помогает.И, разумеется, это дополнительная документация для кода.
>>1478779Я пока не работал с ним.Но, мне кажется, это оборотная сторона статического compile-time связывания. Иначе просто невозможно, я думаю.Короче - недостатки, как продолжение достоинств.
>>1478779Посмотрел сейчас доки.Ты имеешь в виду, что нужно обязательно писать @Inject в точке инжектирования?Но, можно же использовать модули и @Provides?
>>1478781Да, причина конечно в этом, но я не понимаю, чем так плоха рефлексия.>>1478861Я про то, что в @Component надо прописывать все modules и объявлять методы.
>>1478702Я уже вижу, как у тебя сознание расширилось.Ты не осилил прочесть вопрос, который задал анон: "как часто приходится использовать"Но стал рассказывать, как это полезно.Полезно, да, спору нет. Но не на работе.
>>1479567>Ты не осилил прочесть вопросНу откуда вы лезете, блять?Дружок, я не только осилил прочесть вопрос.Я даже осилил написать пару ответов: >>1478614 >>1478636
>>1480402Единственный твой дружок - у тебя в штанах.Ты смешно подрываешься на пустом месте.Не менее смешно бросаешься что-то кому-то доказывать.Это на тебя так фп действует? Или чтение сикп?Или ты еще какие-то слова выучил, не зная, что они значат?
>>1480467Ты смешно подрываешься на пустом месте.Не менее смешно бросаешься что-то кому-то доказывать.
>>1480513Ок.Иди похвастай маме, что ты победил кого-то на дваче в ява-треде.Может, она тебе добавит карманных денег
Так, я не совсем понимаю. Мне пишут, что писать код в jsp страницах нежелательно, потому что вроде как пускай за вид отвечает дизайнер, а за код - программист. Предлагают вообще выключать скриптинг на jsp страницах через настройку. Но тогда вопрос - зачем вообще нужны jsp страницы без скриптинга? Чем они тогда отличаются от просто хтмл?
>>1481398Можно не писать логику на странице, а тупо подставлять уже готовые данные, которые в jsp берёшь из переменных.Если простая логика всё же нужна, например, в цикле вывести несколько однотипных тегов, или проверить какое-нибудь условие, тогда можно юзануть JSTL.А ещё можно посмотреть в сторону шаблонизаторов, например, thymeleaf или freemarker.
>>1481414Шаблонизаторы для меня сейчас слишком сложно. Мне бы пока основы понять.Вот если мне, например, нужно что-то из БД достать и вывести на странице, как это без скриптинга сделать?Про JSTL слышал только краем уха, но пока в книжке про него ничего нет, будет позже. Так что, наверное, я как-то должен справляться без него.
>>1481479В принципе, ты можешь пойти другим путем.Это не даст тебе возможности подучить jsp, впрочем.Путь такой:jsp это просто болванка, все данные запрашиваешь/отправляешь аяксом, отрисовываешь яваскриптом.Таким образом жсп-кода у тебя не будет вообще.
>>1481597Зачем? Байт-код прекрасно декомпилится в исходный Java-код, только имена переменных и комментарии не сохраняются.
>>1481608Не тот уровень умений для этого нужен, какой у тех, кто читает огромные ассемблерные листинги с адресами вместо имён. Да и код дизассемблер выдаёт вывернутый наизнанку после оптимизации и даже иногда обфускации.А говнокод без комментов и с хуёвыми именами многим каждый день приходится копать на работе.
>>1481657Сам я немного об этом знаю. Вроде, при компиляции можно указать флаг, добавлять "отладочную информацию" в класс или нет. Ну, ещё имена аргументов некоторых методов можно из доков восстановить.
>>1471475 (OP)Как сконпелировать это: https://github.com/BenjaminHCCarr/duckdns-mirrorв .jar для винды?Есть чё-нить похожее?
>>1481700В нетбинсе создать веб-проект с существующими исходными кодами, и там очистить и собрать, если скомпилируется, конечно.
>>1481710Можешь сделать ты, а то я не умею, но хочу свой дднс пиздец как.Буду на утке же и хостить его.Например:username1.myddns-domain.duckdns.orgusername2.myddns-domain.duckdns.orgusername3.myddns-domain.duckdns.orgА если утка упадёт, то будет просто - другой домен:username1.другой-домен.lolusername2.другой-домен.lolusername3.другой-домен.lol
>>1481657https://www.guardsquare.com/en/products/proguardКак средство шифрования кода - так себе.Но вполне себе затрахает тебе мозг.
>>1481710>В нетбинсеололололоТам очевидный эклипсовский проектДа еще и антовский билд.хмлЕпрст, хоть руками собирай.вот оно, поколение мавено- и идея-дебилов
>>1481700>в .jar для винды?>jar>для виндыВот же сука! Делают им Write once, run anywhere, ан нет! Подавай им jar для винды!
>>1481793>Write once, run anywhereЛично у меня https://github.com/ericdahl/spring-cloud-config-example на винде не запустился.
>>1481784Ну так скомпилируй ты, а то ни этот >>1481710 ни этот >>1481762 не может. И я не могу...А лучше... Дай инструкции к компиляции.
>>1471475 (OP)Анончик, спасай! У меня в один момент перестала работать в дебаг-режиме "идея". Когда ставлю точку остановки и запускаю дебаг, получаю сообщение в консоль со скрина. Ничего внятного в гугле не нашёл на это. Подскажешь, в чём проблема?
>>1473115Смотря куда стучишься джуном. Если в яндекс - хватит и core, только ты должен шарить в алгосах(поймёшь, когда будешь выполнять тестовое задание и охуеешь с него)
>>1475008Тупо берёшь и пишешь какого-нибудь телеграм-бота по гайдам и прочую хуйню. В процессе разберёшься, что к чему
>>1482003Да, прикручу javafx, только надо подумать какие квадратики, меняющие цвет впихнуть, чтоб красиво было.
>>1481910Блядь, как ты собираешься комплировать веб-приложение в джар?Там черным по белому написано, что получится варКоторый тебе надо будет деплоить в каком-нибудь контейнере.Ты ни хера не знаешь, но хочешь, чтобы тебе Луну с неба достали.Так не бывает.
>>1482005вместо того, чтобы нормальным человеческим эклипсом открыть эклипсовский проект, ты предлагаешь макаке поставить нетбинс и открыть эклипсовский проект им.ну, ооооок
>>1481910>Дай инструкции к компиляциизаписывай, мизерабль0. читаешь readme.md из гита по своей ссылкеесли просветление не наступает, то1. ставишь ждк (сам разбирайся, какую версию, я в рот ебал за тебя еще и об этом думать)2. ставишь ант3. ant war-complete
А в джаву сложно вкатиться? Просто слышал, что некоторые сначала учат джаву, а потом вкатываются в бэкенд на js
>>1483203Вот шоб и слайдером можно было значение задать, и в поле написать, чтобы слайдер переместился.
>>1483204Java - не самый простой язык, да. Но если хоть чуть-чуть уже кодил на чём-то и понимаешь ООП, то проблем не будет.
>>1483204кто не осиливает яву, тот катится в жснекоторые сразу пропускают попытку вкатиться в человеческий язык и идут торговать жопой
Крч, метод findLocal https://pastebin.com/2DzAeJ77 , надо ли его разбивать?мне кажется его разбивка на методы это непроизводительный бред, противоречащий логике, это цельный алгоритм было бы охуенно если бы еще до чего нибудь доебались
>>1483300Тебе виднееОчевидно, ты не осилил ни того, ни другого, ни третьего.Потому что вопрос был про яву и жс, а ты, с какого-то хуя, приплел с++.Видимо, решил понтануться знанием слов, которые услышал от больших пацанов
>>1483327> было бы охуенно если бы еще до чего нибудь доебалисьpublic методы без явадок-комментови ты хочешь, чтобы в чем-то там копалисьДа иди ты нахуй, вот куда ты иди.
Аноны, интересует такой вопрос. Какой либой/фреймворком вы пользуетесь при сложновыебанных запросах к БД? Да и в принципе, если требуется написать что-то сложнее findAllBy...(). На работе пользуемся злоебучим Criteria API, иногда (очень редко) JDBC Template. Уверен, есть что-то, что хорошо работает совместно с JPA. У того же jOOQ, насколько я знаю, с этим есть небольшие проблемы
>>1483900Нативный sql юзаю, другого нет. Для простых запросов хоть десятью фреймворками обмазаться можно, но в сложных случаях фреймворки нихуя не облегчают жизнь, а наоборот усложняют.
>>1483922О кстати раскажи как ты на нативном sql ебашишь? юзаешь что-то типа Apache dbUtils или самописные обертки над JDBC?мимо другой анон
Помогите!Мне нужно сделать лабу с использованием сраного winapi, а именно копировать файлы с помощью его функций. Я исполняю этот траходром на java, поэтому легкого доступа к ним не будет. В процессе поиска пришлось перепробовать JNA и узнать про JNI, но это же просто кромешный ужас. JNA не содержит того, что нужно, а JNI имеет столько пердолинга и затыков, что сделать в краткие сроки я точно не смогу. Появилась идея вкатить в код какую-нибудь dll с нужными функциями, но я не могу её нигде найти.
>>1483974Да у меня даже код есть для delphi, но меня тошнит от него. И не буду же я переделывать всё, что уже есть
>>1483900jpqlну, или если уж совсем хочется на голом сиквеле, тоem.createNativeQuery("селект * фром хуембуем ....")
А как на джаве читать бинарники .bin ?В байтах будут заданы числа. Порядок байтов либо big-endian, либо little-endian
>>1484073Понимаю, но мне нужно не для спрингового проекта, а JdbcTemplate тащит много ненужного. Мне бы тот же самый функционал, ток без спринга. Мало ли ты знаешь? Пока что присматриваюсь к dbutils
>>1471475 (OP)Привет, двач. Есть у кого на примете годный курс лекций по алгоритмам? Знаю, что библией алгоритмизации считается книга Кормэна(потом по нисходящей идут Дасгупта и Бхагарва, тоже знаю) и мне нравится её полнота, однако, формальный язык очень и очень отталкивает, не способствуя пониманию. Да и вообще, формат лекций мне как-то ближе, нежели просто чтение книги. В общем, какие требования? Полнота(речь не об N-полноте, лол) Кормэна в сочетании с интересным, не сухоформально рассказывающим преподом. А, да, и чтобы на русском(знаю, что охуел). Подскажите чего по сабжу?
>>1483987Ты не можешь толком объяснить, что тебе надо. Вызвать функцию из готовой dll - JNA с этим справиться. Написать код не реализуемый на Java - да тут нужно JNI/JNA использовать, но вопрос а что именно тебе такого реализовать.
>>1484298Не понимаю тебя. Поясни. Мне не нужно прям тяжеловесную orm поднимать, а самому имплементировать jpa это жирновато
Где и как проверять параметры конструктора? что- то разные ответы в этих ваших интернетах, мне вот надо фабричный метод использовать, в него можно запихнуть проверку?
>>1484449>На работе пользуемся злоебучим Criteria API>Уверен, есть что-то, что хорошо работает совместно с JPA.>Мне не нужно прям тяжеловесную orm поднимать, а самому имплементировать jpa это жирноватоЯ что-то не пойму, это два разных анона? Или один, который уже забыл, что хотел узнать, как делать то, что ему нужно, в ЖПА, которой он владеет постольку-поскольку?
>>1484993В том месте, которое отвечает за использование этих параметров.А главное в том, которое может измениться.Если ты проверку запихнешь в фабричный метод, а потом подвинтишь использование (не список, а именно работу с ними) параметров к конструкторе, то, не исключено, что тебе придется менять еще и фабричный метод.Если проверка будет в конструкторе, то менять придется только его.Дальше думай сам.Нет, и не может быть, никаких стандартных рецептов. Тебе голова дана, чтобы ей думать, где и как ты будешь проверять параметры конструктора.Если ты хочешь делегировать эти думы двачу, то засылай и зарплату сюда же, хули.
>>1485005проверка в конструкторе считается нормой? а если у меня нет значений по умолчанию, я могу из конструктора кидать illegalargumentexception? Мне вот в споре говорили что сущность не может проверять сама себя и надо использовать валидатор я на курсах, подсказать никто ничего не может, включая "коуча", спорил я с таким же страдальцем как я, мб книжечку какую посоветует кто толковую с разобранными нюансами проектирования
>>1485021Entity по сути не должна содержать бизнес логику, а по факту и не может из-за особенностей работы ORM. Валидация должна быть на другом уровне. А вот твой Domain объект уже может содержать логику валидации.А так - валидация никогда лишней не бывает, всегда есть место багам и факапам.
>>1483209По-моему только руками в коде: парсишь данные с одного, передаешь в другой с помощью setValue или типа того
>>1485021>проверка в конструкторе считается нормой?а где, блядь, еще их проверять?твой класс, если он паблик и экспортируется наружу это черный ящик с паблик методами.конструктор, если он паблик, это элемент апис какой стати ты валидацию отдаешь на откуп хуй знает кому?ты должен выдавать такое апи, которое не позволит сделать хуйню. т.е. провалидирует все, что нужно провалидировать.>а если у меня нет значений по умолчанию, я могу из конструктора кидать illegalargumentexception?не уверен, что понял тебя.но никакой проблемы выкинуть из конструктора этот эксепшен нет.>надо использовать валидатор надо, чтобы ловить ошибку как можно раньше.но если ты пишешь класс, он должен быть самодостаточнымвот этого пидора не слушай:>>1485033>Entity по сути не должна содержать бизнес логику, а по факту и не может из-за особенностей работы ORMво-первых, у тебя про энтити ничего не былово-вторых, она тебе ничего не должнав-третьих, все она может
>>1483203Свяжи через объект с даннымиИзменение любого контрола вызовет setHuy в этом объекте, который в свою очередь вызовет установку значений в контролах
>>1471475 (OP)???? Делаю форму для регистрации получаю>SecureRandom instance for session ID generation using [SHA1PRNG] took [900] milliseconds.
Вопрос: какие задачи вы в основном решаете на работе? Какие таски вам приходят в основном?Просто я давно уже пытаюсь вкатится и уже кажется по всем языкам прошёлся по вершкам. Вот щас читаю 4 главу Хорстмана. Вроде выглядит все интересно. Но потом я гуглю какие-то статьи на хабре, мне выдаёт статьи про быстрый поиск вхождений строки в тексте и т.д.Потом ещё смотрю сколько всяких курсов по джаве и понимаю что даже если сейчас всё изучу, то вкатится будет крайне тяжело, а если даже вкачусь боюсь однообразных задач. В середине октября будут курсы переквалификации от ИТМО, думаю пойти чтобы прибавить мотивации.
>>1485624Круд наклепать, тесты написать, DTOшку дополнить, изменить поведение сервиса. Типа такого. Бизнес-логика редко предполагает очень сложные алгоритмы, обычно данные просто переливаются из одного формата в другой и сохраняются куда-нибудь отправляются.
>>1485660В целом, всё однообразно, но иногда бывает поинтереснее. Самые интересные таски обычно в новых проектах.
>>1485434>вот этого пидора не слушай:>>>1485033>>Entity по сути не должна содержать бизнес логику, а по факту и не может из-за особенностей работы ORM>во-первых, у тебя про энтити ничего не было>во-вторых, она тебе ничего не должна>в-третьих, все она может Во первых - ты тупое, безграмотное мудило.Во вторых подавляющее большинство современных ORM - это JPA-based. А там требуется конструктор по умолчанию, так что хуй тебе за щеку, а не проверка в конструкторе.В третьих часть полей вообще будет заполнятся самим ORM (ID, version), а другая часть может вообще инициализироваться лениво.В четвертых в оригинальном посте вопрос был про "сущность" - в русскоязычной литературе так принято переводить entity я понимаю, что ты туповат для того чтобы книжки читатьВ пятых встроенные в ORM механизмы валидации, это и есть по сути отдельный валидатор.В шестых пиздуй уже в падик, тебя пацаны заждались, пиво греется.
>>1473078Просто еще один уровень абстракции.Если ты используешь Spring MVC, ты не контролируешь что он там воротит с сервлетами, если сервлеты то там под ними работа с сокетам и т.д.
>>1485824Люблю переписывать конфиги, когда ломают их формат. Это стимулирует более динамичное развитие проекта. А ещё мне нравится, что всё пишется на Тьюринг-полном язык: всю логику проекта можно вынести в конфиги, и это удобно.Вообще, мне нравится лаконичный синтаксис, который, возможно, устоится через пару лет, тогда будет заебись, но сейчас этим пользоваться нельзя.
>>1485825Ну, вроде бы, да, но нет.Мне понятно желание нажать одну кнопку и получить готовый работающий продукт. Но, посмотрим, правде в глаза, спрингбут это кнопка, нажав на которую можно только обосраться. Другое дело, что здешняя публика не осознает, когда обосралась.Работа с сокетами вообще к спрингу не имеет отношения. Это контейнер.Который должен именно поэтому жить и настраиваться отдельно.А умственно-отсталые "яумамкипрограммисты" запихивают его в бут, патамуштатакбыстрее!
>>1485817ну давай разберем по частям тобою написанное, хуесос>подавляющее большинство современных ORM - это JPA-based. А там требуется конструктор по умолчаниюТебе, конечно, тяжело понять, что требование иметь дефолт конструктор не отменяет возможности иметь нормальный конструктор.Тебе, конечно, неизвестно, что для ЖПА достаточно протектед дефолт конструктора, когда анон, задавший вопрос, (и тем более, я) очевидно говорил про паблик конструктор.Так что хуй отправляется за твою щеку. Смотрю, ты любишь про хуи за щекой помечтать.>часть полей вообще будет заполнятся самим ORM (ID, version), а другая часть может вообще инициализироваться лениво.Это, безусловно, отменяет возможность конструктора с параметрами, и, особенно, какую-нибудь логику.И, очевидно, ты не не умеешь работать с ИД, который не генерится сам.Очевидно, у тебя дрожат ручки, когда надо сделать setId, потому что ты не понимаешь, что будет потом.Вообще, видно, что про ОРМ ты услышал только на позапрошлом уроке, но уже приходишь хвастаться на двач, какой ты охуенно прошаренный парень.>в оригинальном посте вопрос был про "сущность"Единственное, где с тобой соглашусь - проебланил этот момент в посте анона и обосрался со своим "во-первых".Но остальные два пункта остаются в силе.>В пятых встроенные в ORM механизмы валидации, это и есть по сути отдельный валидатор.Это, конечно, объясняет твою детскую веру в >не должна содержать бизнес логику, а по факту и не может из-за особенностей работы ORM.Ну, ок. Жил тупым и помрешь тупым.>В шестых пиздуй уже в падик, тебя пацаны заждались, пиво греется.Ты так смешно пытаешься надувать щеки, строя из себя мастера кого-то в чем-то убедить.Лучше продолжай пиздеть про падики и пацанов, чем пытаться отвечать интересующимся про программирование. Только сбиваешь их с толку своей хуетой.
Сап, джавач, только-только вкатился в джаву после крестов, кресты знаю достаточно хорошо, поэтому и вкатился достаточно просто, хочу разработать просто приложение под ведро с более или менее красивым гуи, что подскажете? Мб какие-нибудь фреймворки и пр. для упрощения пути?
>>1485995Тебе в соседний андроид-тред, тут в основном энтерпрайз.Есть какая-то гугловская библиотека для Material UI. Больше ничего не знаю про это.
>>1486499>>Изменение любого контрола вызовет.....>Ты не прав, надо проверять, что значение контрола не совпадает с предыдущимИЗМЕНЕНИЕзначение знаешь?
>>1486666В чем подобие работы с файлами интерфейсу UserDetails?UserDetails содержит 7 методов.Ты не можешь написать свой ИНТЕРФЕЙС с 7-ю методами?Или ты, как обычно, имел в виду не то, что спросил?
>>1487394> свойНу и смысл тогда вообще юзать что-то, кроме core?Какая нахуя раззница, просто написать какую-то хуйню или нет? Если это уже реализовано, велосипедить самому - моветон. Ну юзанёт тот анон ебанный FileOutputStream, а потом ему скажут, что он пишет нечитаемый и сложный код, так как в спринге уже есть для этого потокобезопасный метод с транзакциями и логгированием.
По работе через пару месяцев может понадобиться прогать на джаве, скорее всего какие-то небольшие модули достаточно масштабного приложения. Хочу что-нибудь почитать или посмотреть, чтобы не с полного нуля вкатываться. Проблема в том, что обычно знания/умения, которые я не применяю на практике, вылетают из моей головы через неделю-две. Есть какие-то более практически направленные курсы или что-то в этом духе? В шапке написано, что джавараш говно, я попробовал, там первые несколько часов учат, как выводить строки, а это не совсем то, что мне нужно, и я не уверен, стоит ли дальше продолжать. Есть советы? С меня как обычно.
>>1487405Ясно, понятно.Т.е. ты тоже не понимаешь, на хера нужен UserDetails, и почему вопрос анона - мудацкий.>Интерфейс>потокобезопасный метод с транзакциями и логгированием.Уже заебался и тоже хочу такие таблетки
Так нахуй, почему у меня newWorkStealingPool работает всего в два раза быстрее, чем newSingleThreadExecutor, хотя Runtime.getRuntime().availableProcessors() возвращает 4?
>>1488292Распараллеливание на N ядер не повышает производительность в N раз. Оно вообще не линейно зависит от количества ядер. Я не ебу, почему.
как можно указать, что в метод можно передавать, например, только потокобезопасную коллекцию? понятно, что есть документация и все такое, но я вот задумался, почему в джаве (да и вроде везде так) нет под-интерфейсов для потокобезопасных коллекций?например какой нибудь interface ConccurrencyList, от которого уже наследовался бы CopyOnWriteArrayList
Внимание вопрос! Через сколько месяцев после устройства стоит просить повышение зп? Я думал через 6, знакомый говорит через 3. Пилим кулстори.
>>1487481А что тебе нужно?Напиши приложение которое записывает данные в бд через соап и выдает через рест, тащемта кроме этого джава особо нихуя и не делает
Какие ресурсы вы изучаете для прокачивания скила?Вкатился на ждуна, на работе бессмысленную хуиту делаю для бизнеса.
Объясните, как работает добавление Cookies в Selenium Java?Конструктор для Cookie предполагает использование NullableDateTime, что это за формат?
Раскуриваю Java как второй языкHttpSession session = request.getSession();int count = 1;session.setAttribute("count", count);Java EE, TomCatГде по факту хранится значение count которое сохраняется в сессию, в куке его нет, база никакую не поднимал (TomCat сам что юзает? Sqlite? Текстовая?)
>>1489743>>1489748>>1489750Вам обоим, прежде чем лезть на двач, следует почитать документацию.Избавит от глупых вопросов и глупых же ответов.Томкет по умолчанию сохраняет сессии при рестартах себя и рестартах приложения.
Есть сайт, на котором контент через HttpRequest грузится не полностью. Но если использовать WebView, то всё будет нормально. Однако через WebView я не понимаю, как загрузить html в string. Я уже пересмотрел документацию, там не нашел. Подскажите
>>14899731. вынь руки из-под одеяла2. подумай, как тебе сформулировать вопрос, чтобы тебя не послали на хуй3. сформулируй4. жди ответапока - иди на хуй
AspectJ умер что ли? Пилю десктопное приложение на java 11, спринг не использую, так как нафиг не надо, захотел навесить статистику на методы, spring AOP не предлагать. А с AspectJ у 11 java какие то максимальные проблемы с совместимостью, господа кто нибудь сталкивался с подобной проблемой?
Всем привет. Ребят вкатываюсь в язык. Пока на javarush сижу и инет гуглю пару недель.Хочу купить учебник, вот выбираю, посоветуйте пожалуйстаОт headfirst изучаем java, шилдт для начинающих. Что из этого лучше?
>>1491276О, говнокод ещё живПодтип - это надмножество, а надтип - это подмножество, или наоборот? И почему говорят, что потомок расширяет предка, если он - его подмножество, то есть сужает?
Сап сеньоры. Вкатываюсь в джаву с нуля, изучаю опираясь на эту книгу http://myflex.org/books/java4kids/JavaKid8x11_ru.pdfВ конце книги написано, что осилив её я уже становлюсь джава джуниором. Верится в это довольно слабо, поэтому спрашиваю экспертов двача, действительно ли этой книги достаточно для получения гордого звания джуна?
Как в джаве правильно парсить аргументы командной строки? Обычно в консольных утилитах там могут быть и ключи с -, и длинные с --, они могут быть как с параметрами, так и без. Для этого есть готовые решения или только вручную?
>>1491398могу посоветовать легковесную библиотечку для Парсинга аргументов если не хочешь мучитьсяhttps://github.com/spullara/cli-parser
>>1491423>>1491427Эээээ....Т.е. природа дала вам Апаче Коммонс, а вы будет использовать каких-то самописных хуеплетов?Ну, оооок
>>1491437Тут ты прав апаче конечно вещь, но по сравнению с самописным говном достаточно громоздко. Иногда хочется повесить аннотацию и вседа да я ленивый да
>>1491437Спасибо папаша за этот Апаче Коммонс черного цвета двадцатого века но я за аннотации и против лишних зависимостей, хотя по большей части насрать.
Как в спринге работает @Value и @ConfigurationProperties? Как парсится конфиг и преобразуется в джава классы? Хочу на сорцы посмотроеть.
>>1491499>против лишних зависимостейТ.е. зависимость com.github.huy.s.gory это не лишняя, а commons-cli лишняя, понял.Ну и да, конечно, кому нужны стандартные подходы, когда так много талантов с зеленым гитхабом.Удачи, короче.
>>1492006> многопоточностьThread t = new Thread(new Runnable() {public void run() { // do your stuff}});> асинхронностьС этим сложнее.
>>1492360Ньюфаг, джаватреды работают до 1000 постов.Это такой небольшой каламбур, якобы мы поддерживаем легаси тред
>>1492542Ты просто еще маленький и у тебя подростковый бунт против консервативных тырпрайз корпораций.
>>1492655У меня каждый раз, как пилю что-то, контроллер превращается в god object с кучей методов, который отвечают за все кнопки в интерфейсе. Как от этого избавится? Или это нормальное его состояние?
>>1492006Если выбираешь язык под это дело и тебе приглянулась джава - посмотри в сторону котлина, его корутины это просто рай нахуй. Если не выбираешь, гугли CompletableFuture. Если есть желание вгрызаться в фреймворк, могу посоветовать Completable Reactor
>>1492656Была такая же проблема, нет, это не нормально хотя так же было на том проекте, гугли слоёную архитектуру, должно чуть исправить положение. Кроме того, не обязательно делать 1 окно - 1 контроллер, в окне могут быть "подфреймы" со своими собственными контроллерами, так гораздо легче.
>>1492662>в окне могут быть "подфреймы" со своими собственными контроллерамиДо этого я додумался, но у меня в сцене есть один объект, к свойствам которого привязываются разные части интерфейса. Как при этом распределить свойства по контроллерам я пока не додумался.
Ребятапишу небольшое приложение (что-то типа планировщика задач) для работы, подскажите годных книг по JavaFX
>>1492679Да бля, это не та технология, которую стоит ботать, трастми. Посмотри пару туториалов, сделай по аналогии. А книжку лучше философию джавы или хедферст прочитай
Аноны, препод сказал написать простенькую прогу (суть не в задании), я заюзал там TimerTask (Пик №1) и, как видно по пику у меня нет @Override перед run. Находил в интернетах примеры когда и так и так пишут. Собстна, в чем отличие и как мне объяснить отсутствие @Override не оконфузившись.
>>1494069@Override делает проверку, что в базовом классе или реализуемом интерфейсе объявлен такой метод. Если не объявлен, не скомпилится. Это всё.Вообще, лучше юзать, чтобы ничего не пропустить по невнимательности.
>>1494085Но может и без этой аннотации работать. А вот сисярп если не написать overrided в модификаторе матода, то она создаст новый ненужный говнометод и будет баг, хи-хи.
>>1494069помогает при компиляции поймать объеб, когда ты думал, что оверрайдил, но не оверрайдишь, на самом деледругих целей нет
Потихоньку вкатываюсь в джаву.Пока на 5 главе хорстмана про наследуемость.И документацию к спрингу курю.Думал пойти в ИТМО на курсы для дополнительной мотивации, но чет узнал что группа в 40 человек да еще и преподаватель девушка какая-то. Как-то стремно теперь. Условно через 3 месяца хх пополнится на 40 ждунов и толкаться с ними локтями будет, возможно, из-за их корочки тяжелее.
>>1494596> девушка какая-тоНе стоит вскрывать эту тему. Тут и так недавно был срач про тянучек от мамкиных альфачей.> хх пополнится на 40 ждуновОй, да брось, и половина не пойдёт искать работу прям сейчас, а часть вообще забьёт потом. Для программирования нужна нихуёвая усидчивость, а она есть далеко не у всех даже среди тех, кто пошёл на курсы. Если оцениваешь, что в принципе можешь выучить то, что обычно требуют в вакансиях, проблем не будет.
>>1494615я просто не знаюя из тех вкатывальщиков, который вершком по темам любит пройтись.И по сишечки, и по раби, и по fpga темам и linux lf;t сдал на rhcsa. Теперь думаю может фронт начать изучать. 17 в итмо будет еще собрание для курса по фронту( цсс, джскрипт, вуе) и бэку сразу(нода, джс).
>>1494646Если я тебя правильно понял, то дело не в аннотации, а в том, что в яве ВСЕ методы виртуальные (ну, кроме статических), и именно поэтому не будет "нового" ненужного метода, а и без аннотации все прооверрайдится.Хотя не ебу, может, в шарпе - тоже. И тогда я тебя не понял.
Сап. Есть клиент-серверное приложение, в которое я хочу впилить шаринг файловой системы по локалке. То есть клиент предоставляет свою ФС (read/write причём), а сервер - монтирует её в ОС, на которой крутится. Грубо говоря, должна получиться WiFi-флешка. Естественно нужна кросс-платформа (винда/линукс), но не обязательно без нативных приложений/библиотек - например, каких-нибудь драйверов для создания виртуальной ФС. Единственная мысль, что пока есть - поднимать на серверной части самбу, и подсовывать каким-либо образом ей файлы клиента, дёргая их по своему протоколу транспорта. Но что-то я подозреваю, что в этом случае мне придётся чуть ли не половину самба-сервера переписывать, да и почти наверняка начнутся какие-то конфликты с системным сервером (а если ФС вытечет в сеть за пределы моего вроде бы достаточно безопасного транспорта - вообще беда).Выкачивать все файлы с клиента и хранить на сервере - не вариант.Куда копать хотя бы, в общем?
БЛЯТЬ, ДА ЕБАННЫЙ ЖЕ НАХУЙ В РОТ, ПОЧЕМУ НЕТ НИ ОДНОГО АДЕКВАТНОГО ОБЪЯСНЕНИЯ В ТЫРНЕТАХ КАК СОЗДАТЬ ДЖАВА ЕЕ ВЕБ АПП ЧТОБ ВСЕ БЫЛО АДЕКВАТНО РАЗЛОЖЕНО ПО ПОЛКАМ И ТЕМАМ НА ОДНОМ САЙТЕПОЧЕМУ ПО СПРИНГУ ТАКОГО ДОХУЯ А ЕБУЧЕЕ ЕЕ - ЭТО КАКИЕ-ТО ВЫЖИВШИЕ ИЗ УМА ИНДУСЫ КОТОРЫЕ ПЛОДЯТ ОДИНАКОВЫЕ САЙТЫ С КАКИМ-ТО БРЕДОМ.ЗА 2 ЕБУЧИЕ СТАНИЦЫ ЮТУБА 3 ОДИНАКОВЫХ ГОВНА ВЫДАЕТ. СМЕРТЬ ЕБУЧИМ ИНДУСАМ
>>1495402>ЕБУЧЕЕ ЕЕ - ЭТО КАКИЕ-ТО ВЫЖИВШИЕ ИЗ УМА ИНДУСЫ КОТОРЫЕ ПЛОДЯТ ОДИНАКОВЫЕ САЙТЫ С КАКИМ-ТО БРЕДОММб поэтому?
>>1495402Потому что ты умственно отсталый?Что там создавать-то?веб.хмл ручками написать?Джары положить в серверный либ-каталог?в ЕАР запаковать?
https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.javaПиздец говнокод.
>>1494154Спринг использовал. Ну то есть по тутору соединил спринг запускалку с fx запускалкой, не разбираясь, как это работает
>>1494154Спринг использовал. Ну то есть по тутору соединил спринг запускалку с fx запускалкой, не разбираясь, как это работает
>>1496039Полностью? Нет. А смысл? Тем более, спринг - это только вершина айсберга.Юзать нужно не весь спринг, а то, что реально нужно в данный момент.
>>1496367толстоПопробуй изменить размер хипа: https://alvinalexander.com/blog/post/java/java-xmx-xms-memory-heap-size-control
>>1496413>А дефолтно джава не имеет права много рам использовать?А прочесть про дефолтные параметры жвм не имеешь права?
Можно ли как-нибудь, динамически найти версию transitive dependency какого-то "A", чтобы поставить эту версию dependency "B"? В грейдле и динамически, ествественно.
>>1497101Хули тут думать?Ты посчитай, сколько тебе надо.Куда ты своим "здравствуй, Мир!" просираешь 2 гига?Может, в алгоритме что-то поправить?
У меня есть код: рабочий, на джаве. Дали задание с помощью SceneBuilder сделать для этого кода GUI, можно ли как то это сделать без особого переписывания оригинала?
Аноны! Умоляю вас, объясните тупому мне как создавать ебаные НЕ АБСТРАКТНЫЕ папки и файлы без танцев с макаками и 100500 проверок. В интернете и на этих ваших стековерфлоу нихуя не понятно.
>>1497458Нихуя не понятно, говорю же! Впрочем, через полминуты после своего поста разобрался, мда уж.
>>1497375Вот я и говорю: может тебе что-то ПОПРАВИТЬ В АЛГОРИТМЕ?Ты хочешь засрать как мимимум полгига памяти только на свой массив (это если там инты, а так-то мы хуй знаем, что ты там хранишь). Если там объекты, то прибавляй еще Minimum object size is 16 bytes for modern 64-bit JDKВообще, заметь, что у тебя ошибка java.lang.OutOfMemoryError: Java heap space, а неjava.lang.OutOfMemoryError: Requested array size exceeds VM limitТак что, прежде, чем винить яву, я бы, на твоем месте, внимательно бы посмотрел, что ты там делаешь.
Эксперты джавы, вот вы мне напишите, это нормально что на собесе на стажера с выходом в джуна trainee говорить что я плохо знаю библиотеку, потому что:1. "Не знаю object" т.к. назвал все методы кроме clone и реализацию tostring в object.2. "Не знаю Exceptions" т.к. забыл о Throwable когда пытался нарисовать иерархию ошибок и не упоминал checked\unchecked3. Не ответил на вопрос "Какие классы работают со строками?" (stingbuffer, stringbuilder); я их никогда в жизни не юзал, я читал что с какой-то версии джавы помпилятор автоматически юзает стримбилдер при конкатенации, тогда хз зачем он сейчас нужен мне тем более что я уверен на 100% что не столкнусь с этим в роботе т.к. в той конторе типо 1-2 мес обучения, и ток потом типо джун.4. Не знаю Threads т.к. непрвильно рассказываю о разности методов wait\sleep и notify (ок, предъява по факту, я начал втирать дичь о безопасности)Просто у меня немного горит с того что я понимаю - есть вопросы в стандартной либе, на которые я офк не знаю ответа т.к. никогда их не встречал, и вряд ли встречу на начальном этапе работы, не говоря уже о своем обучении. Типо я уж думал ща буду рассказывать о своем эмпирическом знании спринга и хибернейта, а мне за стандартную либу преъдявляют.
>>1497647Я нихуя не эксперт, поэтому просто скажу не расстраиваться и принять как есть. Зато теперь ты знаешь, что стоит полистать и посмотреть. Опыт один хер приобрел, верно?
>>1497647>1. "Не знаю object" т.к. назвал все методы кроме clone и реализацию tostring в object.>2. "Не знаю Exceptions" т.к. забыл о Throwable когда пытался нарисовать иерархию ошибок и не упоминал checked\uncheckedВсе верно.>3. Не ответил на вопрос "Какие классы работают со строками?" (stingbuffer, stringbuilder); я их никогда в жизни не юзал, я читал что с какой-то версии джавы помпилятор автоматически юзает стримбилдер при конкатенации, тогда хз зачем он сейчас нужен мнеТак ты с ним получается каждый день сталкиваешься, почему об этом не сказал?>4. Не знаю Threads т.к. непрвильно рассказываю о разности методов wait\sleep и notify (ок, предъява по факту, я начал втирать дичь о безопасности)На собесе я тоже честно сказал, что с тредами знаком слабовато. Мне сказали норм, подтянешь по дороге.
>>1497790Только он не Key, а Cay>>1497767Найти работу джавистом. Это максимально быстрый способ освоить новый язык, но кто ж тебя возьмёт... Разве что ждуном за еду.
Я правильно понимаю, что String это тупо модернизированный массив char, это объясняет, что при изменении розмiра объект неминуемо пересоздается.
>>1497647>3. Не ответил на вопрос "Какие классы работают со строками?" (stingbuffer, stringbuilder); я их никогда в жизни не юзал, я читал что с какой-то версии джавы помпилятор автоматически юзает стримбилдер при конкатенации,Еще со времен 1.0.2
>>1498075Иммутабельность это не сайд эффект, а намеренное решение. Если тебе нужно конструировать строку во время алгоритма - используй StringBuilderПро массив char не ебу, мне похуй
>>1498112Да я знаю и про билдер, и про буффер. Просто интересно из-за чего стринг ридонли. Примечательно, что в переопределении equals() в классе String тупо сравниваются length(), а затем toCharArray() со сравнением каждого элементика.
Аноны, помогите, пожалуйста. Хочу добавить кнопку на фрейм, фрейм загружается, кнопка - нет. Ругается на строкуnew ProgramFrame().getFrame().add(menuPlayButton);и выкидывает нулевое исключение. Что делать, как быть, как фиксить?https://pastebin.com/RhTsFTRq
>>1498189Но если явно работать со строкойString str = "foo";for(;;)str += "bar";То объект каждый раз пересоздается естественно, тут билдер надо юзать, или буффер, если приложение многопоточное.
>>1498083Если читать говнокниги на русском, то, конечно, да.Если читать jls, то, внезапноAn implementation may choose to perform conversion and concatenation in one step to avoid creating and then discarding an intermediate String object. To increase the performance of repeated string concatenation, a Java compiler may use the StringBuffer class or a similar technique to reduce the number of intermediate String objects that are created by evaluation of an expression.For primitive types, an implementation may also optimize away the creation of a wrapper object by converting directly from a primitive type to a string.Никаких гарантий нет, иными словами.
В чем смысол джавы после net core? Нормальные дженерики, делегаты, LINQ >> stream api, удобная работа с асинхронностью и многопоточкой, DLR.Есть unsafe блоки, но как правило ненужно, если это не десктоп.В целом язык развивается и живет, чего не скажешь о втором. Саппорт легаси на .net "приятнее" чем на java.Сярп, как язык сложнее жабы, но при этом spring на порядок сложнее asp net.Ну и второй все равно приятнее первого.
>>1498075Про иммутабельность уже написали. У массива цхаров ты можешь поменять значение любого символа, не пересоздавая весь массив. Со стрингом так не получится.
>>1498411Я не знаю решётку, но судя по написанному, по сложности она находится где-то между джавой и плюсами.Да и язык долгое время был стандартом в своей области, и это нельзя игнорировать. Многие проблемы хорошо изучены, появилась куча инструментов и фреймворков. Джаву берут не потому, что дизайн языка такой хороший, а потому что инфраструктура развитая.А вообще, ты меня заинтересовал. Может, лучшие дни C# ещё впереди.
>>1498406Вот именно. Специально написали, чтобы никто не кукарекал, что компилятор БУДЕТ использовать стрингбуфер.
>>1498411Ни в чем нет смысла.Иди смело отсюда в шарп-тред, тебе там будет хорошо.И нам не придется твои высеры читать
Мы, джависты,Ребята плечисты!Нас не заманишьшарпой мясистой!Не совратишь насЖС-кой плевой!Сделал круд правой,Сервлет создал левой!!!
>>1499509Это ты годно спросил, пришлось лезть в вики и узнать немного нового про паттерны.Общее в них то, что класс использует другие классы для реализации какой-то своей функциональности.В чём различие:Каждый декоратор реализует некую конкретную функциональность, которая нужна клиенту основного класса, но в основном классе её реализовывать западло. Например, тебе нужно отвечать в суде, но ты в юридических тонкостях не разбираешься и нанимаешь адвоката.В паттерне состояние некая функциональность основного класса реализуется по-разному несколькими другими классами через общий интерфейс. Конкретная реализация а) клиенту нахуй не всралась и б) вызывается в зависимости от состояния основного объекта. Тот случай, когда вместо условного оператора используется полиморфизм. Например, если ты нищий байтоёб в НИИ, ты ездишь на работу на метро, а когда тебя берут синьором в Дойче Банк, ты пересаживаешься на хорошую машину.Прокси (заместитель*) подменяет собой основной класс и в случае необходимости перенаправляет ему запросы клиента. Соответственно, реализует тот же интерфейс, что и основной класс. Например, какая-нибудь кремлёвская служба, отвечающая на письма Путину.Я кончил. Поправьте, если где-то соврал.
>>1499607>Например, тебе нужно отвечать в суде, но ты в юридических тонкостях не разбираешься и нанимаешь адвоката.>Прокси (заместитель*) подменяет собой основной класс и в случае необходимости перенаправляет ему запросы клиента.
>>1499612Разница в том, что прокси реализует тот же интерфейс и может подменять основной класс, а декоратор реализует свой собственный, дополняя основной класс. Простой двачер без адвоката будет мямлить невнятное, не сможет ходатайствовать в правильный момент, и т.п., а Пыня и без своей интернет-роты сможет на любое письмо ответить.
>>1499626Окей, вроде понял. Декоратор может предоставлять дополнительные методы, и использует функционал внутреннего класса, у прокси весь дополнительный функционал инкапсулирован. А у состояния должен быть какой-то дополнительный механизм для смены внутренней реализации-состояния.
>>1499449С понимания бинов и спринговых IoC/DI. Есть много статей и видосиков на ютубчике на эту тему. Дальше читать это:https://spring.io/guides (есть не самый свежий перевод: http://spring-projects.ru/guides/). Ещё есть это https://proselyte.net/tutorials/spring-tutorial-full-version/Да, скажут, что это всё хуйня, но для вкатывания норм
А в чем смысл указывать точное значение nanos, если timeout тупо увеличится на единицу и вызовется native метод с одним параметром?
>>1499877https://stackoverflow.com/questions/24062405/how-to-use-method-object-waitlong-timeout-int-nanos
>>1499877>А в чем смысл указывать точное значение nanosВдруг, у тебя будет реализация, которая учтет твои наносекуны.Это все зависит от платформы.Про nanoTime() вообще написаноThis method provides nanosecond precision, but not necessarily nanosecond accuracy.
Аноны, а вы задротите 24/7 курсы, книги и пр?Я могу где-то 5-6 часов, с перерывом, в день эффективно че то делать потом уже начинаю залипать (имеется в виду изучать курс какой-нибудь, пытаться на практике попробовать). Думаю если какая-то монотонная задача - может больше получится.Это как бы норм?
Сап, есть проект где одна из функций выгрузка информации в таблицу эксель гугл етс че почитать или посмотреть на эту тему как сделать грубо говоря мне нужна кнопка которая мои данные сама выгрузит
>>1500098Во первых сила воли, просто берешь и заставляешь себя дальше работать. Во вторых делай короткие перерывы, что то типо 50 мин работаешь 10 отдыхаешь и снова.В третьих это все индивидуальная хуета, мне первые два помогают, а тебе может нихуя не поможет. Так что может быть норма, может быть нет.а вобще ты не туда написал
>>1500300не совсем понял, что именно тебе неясно в реализации, но просто загугли библиотеку для работы с эксель-таблицами, а лучше CSV, которые также в экселе можно открывать
>>1500410на java тоже можно впихнуть? приложуха для андроида я просто вообще нихуя особенно не умеюи сам хуй разберусь
>>1500416да на джаве уже сто лет существуют библиотеки для всех подобных задач. В том числе для парсинга DOM в html при помощи css-селекторов, например