Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: Да хуй знает, от тебя зависит насколько ты толковый и умеешь себя продать.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. Если усидчивый, читай книги и делай тестовые задания. В любом случае решать тебе.
Нужно каким-либо способом максимально быстро впихивать сущности в таблицу, втихую игнорируя те, которые не удовлетворяют UNIQUE на несколько столбцов. Очень хочется использовать ON CONFLICT DO NOTHING, но native-запросы не катят, потому что ID для этих сущностей генерируется хибернейтом по последовательности + у этих сущностей достаточно много полей и есть OneToMany, велосипедить обработку всего этого я не собираюсь.
>>сохранение через хранимую процедуру >Тоже, насколько я понимаю, в обход хибернейта. Не катит. Я не помню, как хибернейт с хранимыми процедурами работает. Глянь. Может прокатить. Тебе зачем тут супер-хибернейт-то нужен? Тебе проинсерченные данные отдать надо? Или ты все равно перечитаешь перед выдачей на клиент?
>>С другой стороны что тебе мешает трай/кетчем обернуть каждый персист >То, что эксепшн падает на флаше Да, его к персисту в трай, ясен хер.
>И, если я не ошибаюсь, как только в транзакции происходит ошибка (даже если словить эксепшн), она пачкается и её больше нельзя закоммитить, только новую открывать.
Ну, так-то да. 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. Тебе анон уже дал правильный совет. Я этим никогда не пользовался, поэтому не воспринял его. Но ты-то мог бы и погуглить
>>1471531 >было бы каждый инсерт делать транзакцией. Ты ебанулся? По твоему транзакция это как int объявить? Хиберо батч вероятнее всего не поможет. >>1471510 Если ты не хочешь марать ручки, то нахуй ты вообще полез? Хибер не подходит для хуйлоада, он удобен для доставать и маппить (и то не всегда), апсерт большого количества данных валит хибер к хуям. Бери jdbctemplate и юзай нэйтивы. Проще один раз разобраться с базой чем страдать и жрать кактус
>>1471550 JdbcTemplate, я тебе уже помог. Ты считаешь, что есть волшебная аннотация которая поможет тебе сделать чудо, но это не так, потому что хибер - это фреймворк который призван упростить жизнь разработчиков, а значит там масса проверок и абстракций (вокруг jdbc внезапно, как по твоему, ты быстрее будешь бежать в трусах и майке или шубе?). Хибер хорош для чтения (и то не всегда). Так что сорян, бро, что у меня для тебя нет золотого молотка
>>1471546 Двачую этого господина. Хибер - для не могущих/не успевающих базу. Если через него пытаются проектировать таблицы, получается лютый пиздос. Я сейчас устроился на проект. И знаешь что? Они там все ебанулись в край и пишут схему бд через хибер, чтобы потом под неё подстроить приложение. Как несложно догадаться, получается ебаный пиздец.
>>1471642 Ну модель памяти например на шарю, не особо понимаю как у вас дела с женериками в 2019 обстоят, хз кароч, сложно так из головы что-то называть
Потому что это класс из стандартной библиотеки, а не встроенный тип. В жабе не перегрузки операций, соответственно, и у ArrayList не может быть такой операции.
>>1471531 >хранимыми процедурами Да тогда уж проще нативными инсертами.
>Тебе зачем тут супер-хибернейт-то нужен? Генерация ID по последовательностям с кэшированием полученных значений и OneToMany. Велосипедить всё это нет ни времени, ни желания (и техдир тоже против).
>можно было бы каждый инсерт делать транзакцией Ну это вообще пушка.
>>1471546 >апсерт большого количества данных валит хибер к хуям >>1471562 >там масса проверок и абстракций Без необходимости проверять UNIQUE он вполне быстро и удобно умудряется напихивать.
>>1471571 >catch(Throwable ex) И придётся пересоздавать транзакцию на каждом конфликте.
>>1471580 >Они там все ебанулись в край и пишут схему бд через хибер, чтобы потом под неё подстроить приложение Воистину пиздец.
>>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 раз и производительности на данном этапе полностью хватает.
>>1471475 (OP) Объясните плз в чем прикол 2-ой пикчи. Где в итоге логика? Почему такое длинное наследование? и в чем смысл3-ей пикчи. 80_АйКю_хтмл_програмист
>>1471994 Куча оберток/абстракций над хуйней которая просто запросы в базу шлет. Тот случай когда йоба-спринг-суньёр-деволепер-хуйвжопе не может в sql сложнее select * from jopa.
>>1471651 Про модель памяти есть хорошее видео https://youtu.be/iB2N8aqwtxc но это уже advanced level, но если модель памяти в С++ знаешь, то тут тоже все поймешь. Можно конечно спеку почитать, но там такой матан что лучше не надо. хотя если С++ 17 твоя любимая литература - это тебе тоже зайдет
>>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 >@SQLInsert The 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-машиной, либо нет.
>>1472151 >Джамайка или Ямайка? ) Ямайка, Остров Ява это устоявшиеся исторические названия. Для Джавы такого нет, так что просто воспроизводишь английское произношение.
>>1472152 Может мне и улыбаться, как у американцев принято? И ввв-наУкраину наведаться? >устоявшиеся исторические названия Да, история. Вполне достоЙная; и логичная. )
[j] - это и-краткая, поди в МФА загляни. А "дж" - это [ʤ]. Криво и неудобно. То-ли дело Йавочка. ) ---
Короче, ответь на вопрос лучше - где найти базовый набор функций jvm? На оф. сайте куча англ. текста и псевдоассемблер какой-то, а мне нужны системные вызовы..
Нет там никаких "системных" вызовов. Есть байткод, есть спецификация как каждая инструкция байткода должна выполняться, как должны классы грузится и т.д. А как ты будешь это реализовывать, интерпретатором, JIT, AOT или вообще железом - дело твоё.
>>1472150 Пидор, ты по-русски пытаешься говорить или на ебаном суржике? Если на ебаном суржике, то хоть через твердый знак Яву пиши, насрать. Насрать тебе врот, причем
>>1472152 >Ява это устоявшиеся исторические названия. >Для Джавы такого нет Пиздец, с таким уровнем интеллекта что именно тебе подсказало, что ты сможешь программировать?
>>1472281 >может что получше есть "Получше" это решаешь лично ты. Поставил эклипс, поколупайся в нем. Рядом поставь идею, поколупайся в ней. Рядом поставь нетбинс (лично я не советую, но, вдруг, тебе понравится), поколупайся в нем. Никогда не слушай хуесосов, визжащих "Х - единственная ИДЕ". Внезапно, работать в ней тебе, а не хуесосам, так что выбирай сам.
Посоветуйте плиз хорошую серию каких-то уроков по созданию онлайн-магазина(что-то такое) на Java ee Может, кто-то недавно в этом гавне колупался. Мне просто надо за неделю все успеть, чтоб взяли на весну, в которой я уже понимаю, лол. Для петухов, видео уже не смотрю особо, но когда смотрел - на всем очень годном и современном и тысячи просмотров нет и хуй откопаешь.
>>1471475 (OP) Наиболее общий, универсальный стак технологий на 2020 год по Java в разработке приложений уровня enterprise (имея какой стак технологий, можно будет в дальнейшем доучивать отдельные технологии, в зависимости от проекта)? Просвети, о великий анон!
>>1472393 Ну да хотя Unsafe все же доступен для тех кто пикрилейтед, плюс там есть еще интризики, нэйтив методы и возможность курочить стандартную либу под свои нужды например ThreadLocalRandom.
Но изначальный вопрос был про возможности синтаксические обращение к элементам листа по []. И тут сторонние библиотеки и стандартная библиотека равны.
Ну а ты как думал? В одночасье легаси не переписывается, да и новый функционал пилить нужно, на переписывание старого тупо нет времени. Новый проект на этом говне мамонта никто писать конечно не будет, да.
>>1472460 Не рвутся, а безошибочно определяют уебка, которому отказывают на любом собеседовании, а в повседневной жизни ссут в рот Так что не сдавайся Не усложняй нам задачу распознать в тебе мудака
>>1472546 Груви вполне себе компилируется в классы. И вообще, и со статической проверкой типов.
Но, могут быть и просто скрипты на груви. Это отдельная тема. Они не очень годятся для сложных программ, но, что-то небольшое очень даже можно написать, и оно будет работать без компиляции - просто запускаешь скрипт, как питон, например.
Или можно из груви/джава программы динамически вызывать скрипты.
>>1472650 Стек у них в целом аналогичен, но EE - это только набор спецификаций с кучей разных реализацией, а Spring - уже готовая реализация, которая гарантированно будет работать одинаково везде. Развивается спринг за счёт этого побыстрее. И у спринга есть удобные фичи вроде бута, которых у EE нет.
Первое, "если есть сервер приложений", это уже плохо. EE-серверы не нужны, сама эта концепция - сплошная дырявая абстракция, от которой больше проблем, чем пользы. Так что даже просто иметь плюс-минус то же, что есть в EE, но управлять этим всем самому, без сервера, это уже хорошо.
Второе, фич в спринге больше. Если брать только DI-контейнер, возможности сопоставимы, но помимо DI спринг дает еще много всякой всячины, облегчающей жизнь. Простую работу с конфиг-файлами, обертки над громоздкими API (JdbcTemplate, JmsTemplate и т.д.), легкий запуск контейнера из тестов, интеграции практически с чем угодно, Spring Data, много чего еще.
>>1472683 >Первое, "если есть сервер приложений", это уже плохо. EE-серверы не нужны, сама эта концепция - сплошная дырявая абстракция, от которой больше проблем, чем пользы. Так что даже просто иметь плюс-минус то же, что есть в EE, но управлять этим всем самому, без сервера, это уже хорошо. Держи теоретика! Который даже не в курсе, что Спринг внутри себя поднимает Томкат. Единственное что Спринг делает сам - это DI. Все остальное он делегирует сторонним либам и занимается только интеграцией всего.
Современный ЕЕ будет легче Спринга какая ирония, это просто набор спецификайий и если реализация позволяет их можно и по частям использовать.
>>1472695 >Спринг внутри себя поднимает Томкат А теперь давай подумаем, чем встраиваемый томкат или джетти отличается от Java EE application server'а, особенно в сугубо практическом смысле, чтоб не казаться теоретиками
>>1472695 >просто набор спецификайий Да, и какие-то из них используются сами по себе (jpa, например), в том числе вместе со спрингом. Только вопрос был про сервер приложений, "голый EE на сервере приложений или спринг", и на практике выбор может выглядеть именно так и иметь конкретные ощутимые последствия, от которых тебя рассуждения о наборе спецификаций не спасут.
>>1472777 >дискутировать с тобой я, например, просто не вижу смысла. А жаль, мог бы аргументированно расписать, чем EE ASы лучше и удобнее варианта спринг(бут)-томкат, ну или хотя бы почему не уступают. Глядишь, все бы с тобой согласились, бросили бы этот мерзкий спринг, и Джакарта EE зажила бы новой жизнью.
>>1472713 Легаси говно жаба ее + жсф, новенькое спринг + реакт/вуе. Задачи брать с базы, писать в базу, отчеты и аналитика, разные интеграции, связь с оборудованием.
>>1472803 Java EE - это, как тебе уже сказал другой анон (>>1472695), это большой набор спецификаций. Также, есть, например, Java EE Web Profie - сервлеты, jsp, etc. По сути - тот же томкат.
Т.е. - нет никакого "EE AS", а есть куча разных вещей. Есть JBoss, а есть Resin, и это очень разные серверы. Но, оба - EE.
Также, Spring успешно используется в EE контейнерах, несмотря на то, что в EE давно уже есть своя реализация DI контейнера. Поэтому, противопоставлять EE и Spring - не очень правильно. Собственно, это я и имел в виду, когда сказал, что дискутировать тут не о чем. В зависимости от кучи условий выбирается или то или другое, или даже оба сразу.
>>1472673 >в спринг уже встроен сервер приложений Tomcat >если ты запускаешь со Spring boot Ни разу не сомневался, что люди, пользующие бут, не понимают, что и как работает.
>>1472814 > а есть куча разных вещей. >Есть JBoss, а есть Resin Спасибо, я в курсе. Только это ты к чему, это что-то меняет? И да, спринг, бывает, используют в EE-серверах, только никакой практической, технической причины так делать нет. Часто так получается просто потому, что AS навязан "сверху", типа "у заказчика стоит вебсфера и ниипет", ну или это просто легаси, а дальше уже разработчики выкручиваются как могут и используют, что удобно. Ты бы новый проект начинал на EE-сервере?
>>1472827 Зависит от проекта. И сервера. И многого другого.
Понимаешь, такой взгляд на вещи, когда есть только 1 правильный ответ - он чисто российский. Это всё от неразвитости. Деревенщина, если совсем коротко.
>>1472852 Блядь, вроде каникулы кончились уже, хули ты тут делаешь вообще?
>>1472898 >Понимаешь, такой взгляд на вещи, когда есть только 1 правильный ответ - он чисто российский Означает ли это, что не бывает неправильных ответов? Бывают ли энтерпрайз-проекты, которые стоит начинать на фортране?
Ты не мог бы чуть конкретнее, с примерами? В каких случаях ты бы начал новый проект на EE AS сервере (каком угодно), и какие у этого решения будут преимущества по сравнению с вариантом спринг (или другой фреймворк) + лёгкий сервер + любые, какие нужны, отдельные либы/фреймворки?
>>1472957 Ну, питон - динамический язык. И декоратор - динамическая штука. В джаве именно так - нельзя. Но, есть AOP - в том же спринге, например. Довольно похоже.
>>1472786 Я задал этот вопрос, потому что меня одолевают большие сомнения по поводу энтерпрайза, облизывания легаси-кода и всего остального дерьма. Грустно всё это, вот и интересуюсь.
Ты напоминаешь 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 Да он не знает ни хуя Не читал ни одной спецификации, даже ни одного ебаного балдунга или кто там для нубов разжевывает на примере бабочек и пчелок Пытается взять напором из /б На школьников, навроде его самого, может, и произведет впечатление Вроде, их было двое, но, похоже на семена
>>1473044 Ты уверен, что понимаешь, что такое netstat, и что такое spring boot?
>>1473041 Что такое "веб"? (ты снова не ответил) Что такое "энтерпрайз"? Что такое "легаси"? Что такое "развитие"?
Думаешь ли ты, что серьёзный софт, от которого многое зависит, должен полностью переписываться заново при выходе очередной версии модного фреймворка? Является ли подобный мартышкин труд "развитием"? Не думаешь ли ты, что в промышленных приложениях могут действовать немного другие правила игры? Другие ценности, нежели просто "быть на переднем крае"? И т.п.
>>1473065 Ну и предоставлять апи для просмотра статистики на данно интерфейсе, сохранение записей трафика в базу и прочие свистоперделки. Я думаю, проще не городить все абстракции, связанные с соединениями самому, а взять что-то готовое.
>>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 Конечно, лучше пусть конфиги возникают сами по себе, и ты не можешь их поменять, потому что ты тупой мудак, который доверил их буту, и который, зная, что ты тупой мудак, не дает их тебе подправить во всей полноте.
>>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кб/нс и лидером митолгруппы, будь. хоть на буте, хуть на хуюте продолжай доказывать свою "правоту", надо же тебе хоть чем-то себя занять, раз программировать не умеешь
Как думаете, начинать знакомство с джавой с JavaFX - хорошая идея? Просто писать соснольные хелловорлды как-то неинтересно, хочется сразу какую-нибудь йобу запилить.
>>1473149 FX - мертворожденная хуйня. Её мурыжат уже больше 10 лет, и она всё никак не взлетит. Даже нормального дизайнера интерфейсов не родили. И даже убрали с сайта Оракла то уёбище, которое у них было. А теперь весь fx вообще исключили из jdk и выкинули в опенсорс.
Хочешь десктопный гуй - юзай свинг. Минимум 7 лет он ещё будет официально поддерживаться.
Молю о помощи. Делаю регистрацию Java EE У меня страница возвращается либо полностью пустая, либо ругается, что гет не определен. У меня в регистрационном сервлете только пост метод, и на jsp странице тоже определен пост метод - в этом случае просто 405 и ругается, что нет гета. Если я в сервлете переопределяю гет любым из миллиона интернетных способов - возвращает просто пустую страницу. Я и с веб.хмл и с анотациями и с путями ебусь - все равно бред какой-то.
Помогите, пожалуйста. Мне надо и гет и пост определять в рег сервлете ? Что ложить тогда в гет? На jsp странице оставлять все равно только пост метод ?
>>1473200 Можно просто в сервлете переопределить service(). Будет сразу и гет и пост и прочая хуйня. Но, у тебя там дело в чём-то другом. А местные телепаты сейчас все в отпуске.
>>1473201 Не, ну если так писать на EE, то лучше спринг, лол.
Зачем ты удалял web.xml? Причём тут index?
Расставь, хотя-бы, println(...) в коде, чтобы видеть, где у тебя происходит затык. Выполняется ли doPost() вообще, и т.п. А лучше - просто используй отладчик. И idea вместо eclipse.
>>1473217 Я на спринге и в идее писал и так. А чтоб пойти на работку, надо на этом базовом гавне написать. Не совсем понял про принты, у меня же все компилится и сервер стартует, а там уже либо одна ошибка либо пусто. Пробовал через сервис, вместо гета и поста - 500 ошибку дало
>>1473218 Или у тебя даже форма регистрации не выводится? Короче, опиши последовательность действий, в результате которых ты получаешь ошибку, а то одни причитания, лол.
>>1473229 Да, именно форма регистрации не выводится, вообще ничего не отображается на сервере.
Я запускаю проект, он компилится, билдится вар и сам открывает браузер. Там я пытаюсь перейти на страницу регистрации, и мне либо пишет, что до гет определен, либо, если я его переопределяю каким-то способом - выдает просто пустую страницу, без ошибок. Я гет пытался переопределять всеми возможными способами с инета - всегда ничего. Главная мысль - что я урлы в сервлете, хмл и джсп напутал и не то прописал, но я уже сотый раз все сверяю и пробую
>>1473236 Т.е. ты пытаешься открыть Register.jsp (с большой буквы! дебилы, блядь), а оно не открывается? И ты лезешь в свой сервлет RegisterServlet.java и пытаешься его ковырять? Зачем?
У тебя, скорее всего, не настроен JspServlet в web.xml.
Если коротко, это работает так: -Ты запрашиваешь 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. Можешь по умолчанию готовиться к худшему варианту, живее будешь.
>>1473532 Спросить могут, да. Но если на собесе спросили 10 видов сортировох, 15 видов деревьев и 5 способов обхода графа - то лучше к ним потом не соваться, там точно ебанутые. Знать нужно основные алгоритмы и структуры данных, они потом реально понадобятся, но прям задрачивать все тонкости смысла нет. Что на рынке сейчас хз, для меня этот вопрос не сильно актуален. Полистай вакансии, они хоть как-то отражают реальность.
Аноны, а в тырпрайзе надо создавать сервлет для главной страницы ? На ней нет никакой логики вообще. Просто смотрю на какого-то индуса, он создал и жсп и сервлет, и в сервлете просто принтит весь хтмл по кускам. Так и надо делать? Я в весне, просто, такой хуеты не видал
>>1473653 Не надо. Алсо, JSP - это и так сервлет с оговорками, но, это не важно.
Делать главную страницу не статическим html может быть нужно для того, чтобы импортировать туда всякоге, например. Отображать сообщения и т.п. Что касается скорости обработки (на сервере) html или jsp без логики - jsp может быть даже быстрее (зависит от реализации сервера - кэш и т.п.).
>>1473682 Это мой пост как раз. Pcap4j только захватывает пакеты, а отслеживать соединения, устанавливать их статус и прочее надо делать самому. А мне лень.
>>1473684 Ну, вообще, делать такие вещи на джаве - не очень хорошая идея, мне кажется. На питоне было бы лучше, наверное (конкретно ничего не подскажу). Там проще подтянуть сишную либу, например. И вообще больше наработок на подобные темы, я думаю.
В незапамятные времена мс хотел подмять под себя джаву, сделал свою реализацию. Несовместимую, естественно. Кончилось всё это ничем. Примерно в те же годы и джаваскрипт они тоже пытались делать свой - jscript. С тем же результатом.
>>1473717 Поверь, после идеи пробовать уже ничего не надо. По крайней мере, в ближайшие несколько лет.
Онлайн-иде не в счёт, это другая тема. Собственно, VS Code написан на джаваскрипте, и многие онлайн-иде на нём основаны, насколько я понимаю. Но, юзать эту хуету на десктопе, и писать в ней на джаве - это лютое извращение. Ебля гусей, по сравнению с этим - просто пуританство.
>>1473733 Есть же тред про андроид. Core больше, чем достаточно. Но у андроида свой API, который нужно учить отдельно. Также после вкатывания придётся изучить несколько библиотек, вроде Retrofit, RxJava и Dagger. Ещё понадобится SQL для использования sqlite. И ещё что-то по мелочи.
>>1474028 >На Java не стоит писать GUI Не, ну раз ты говоришь, то конечно. Напиши в JetBrains - пускай перестают немедленно, скажи, что всё, хватит, теперь будет всё на джаваскрипте.
>>1474042 Жрут озу они потому, что делают _очень_ дохуя всего в реальном времени, понимаешь? По той же причине занимают процессор. А тормозят они у нищебродов, на дешманских пк.
И судя по тому, что ты предлагаешь java ide писать на крестах, тебе уже пора идти спать, потому, что завтра в школу.
Буду краток. В чём смысл существования метода _jspService? Что мешает сделать это всё внутри простого service, тем более если в jspbase ему не нужно ничем больше заниматься, кроме как отправкой ответа? Понятно, что вопрос на практике по большей части бесполезный, но мне это почему-то не даёт покоя. Кажется, что упускаю какой-то смысол.
Аноны, а как указывать путь к таблице, в которую надо пихать данные после регистрации в жаба ее? У меня есть бд, а в ней определенная таблица. Всякие аннотации хиберы и жпа нельзя использовать. Пытался прописывать путь бд/таблица - но что-то ничего
>>1473217 >И idea вместо eclipse. Ахахахахаха Так и думал. У суперпрограммиста-советчика всегда все из-за ИДЕ Вот если бы тот анон писал в идее, то у него бы заработало все Пиздец, вы тупые
>>1473200 Прекрати кодить. Сиди и читай. Смотри в веб.хмл. Тебе все понятно, что там написано? Смотри хотя бы в тупой туториал про сервлеты. Тебе все понятно, что там написано? Зачем у тебя в этом проекже жсп есть, тебе понятно? Вот когда станет понятно, тогда возвращайся в свою ИДЕ, запускай, крути-верти. Здесь тебе не помогут. Максимум, что посоветуют - поставить жыдбрейн идею. Это максимум ява-программиста с двача, смирись
>>1473653 >принтит весь хтмл по кускам. >Так и надо делать? Нет. ТАК делать не надо. Так делали при царе Горохе, когда сервлеты только появились.
>надо создавать сервлет для главной страницы ? Никто не знает, что у тебя за главная страница, и чего ты от нее хочешь. Может, тебе статического хтмл хватит, как мы угадаем?
>>1474400 Между >Идея охуенна и >у тебя не работает, потому что ты на эклипсе кодишь целая пропасть. Понятно, что уебок типа тебя не может этого осознать. У него на любой вопрос один ответ: "идея охуенна, все ставить идею" Короче, иди дальше хуи сосать
Это в этом треде или в прошлом идеедрочеры не смоги объяснить несчастному анону, как в идее запустить проект, где есть класс с ошибками (который ниоткуда не вызывается при этом)?
Весь визг сводился к "ряяяяянинужна!" Да, идея охуенна, спору нет.
Как в Jackson десериалайзере в методе deserialize десериализовать вложенный тип правильно? Допустим у меня есть какой-то список SomeList<Something>, я внутри метода делаю JsonNode jsonNode = jp.getCodec().readTree(jp); Iterator<JsonNode> elements = jsonNode.elements(); SomeList<Something> someThings = new SomeList<>(); Каждый объект из elements надо преобразовать в Something, как это сделать, если класс Something неизвестен?
>>1474042 1. Eclipse отчасти на крестах - SWT, и это ему не сильно помогает. 2. На тебе чисто на крестах http://www.jcreator.com/только не блевани 3. Если есть борода, гироскутер и джинсы с подворотами - можешь VS Code заюзать.
>>1474555 Охуеть, не можете сделать простейшую хуйню на своей самой лучшей иде вы, а обсорался я. Ну ок. Такого упертого говноедства даже в жабоскриптовом треде не встретишь.
>>1471475 (OP) Изучил синтексис, понимаю ООП, но четко осознаю: меня можно завалить 2-3 вопросами не уровня "чем наследование отличается от печеньки?" и задачей сложнее, чем "реализуй интерфейс".
Есть ли какой-нибудь годный хотя, другие не держат сборник задач по Жаве, чтобы получить отточить навыки в области ООП?
>>1475063 Я редачу код в vim и параллельно проект открыт в какой-то IDE, обычно эклипс или вижуалка. Можно, конечно, на vim накатить костыли и собирать в командной строке, но нахуя. мимо
>>1475028 Охуеть! Только сегодня написал class A extends B И, ты не поверишь, заработало с первого раза. Про инкапсуляцию и говорить нечего. А уж полиморфизма в яве хоть жопой жуй. Тебе лучше в жс- и питоно- треды перебраться. Там тебя за своего примут, бля буду.
>>1475008 Изучи, что такое параметрический и ad hoc полиморфизм, потом чекни, как он реализован в функциональных языках типа Haskell или Scala. После этого ООП станет для тебя интуитивно понятным и тебе не нужны будут упражнения.
Сап, Джава-бояре. Хочу потыкаться в какой нить микрофреймворк, но не спринг. Собственно есть три стула : sparkJava, Javalin, Ktor(опционально). Есть у кого опыт с ними, расскажите что зашло/не зашло. Буду благодарен
>>1475840 >прямоугольник это потомок квадрата или квадрат это потомок прямоугольника? Зачем тебе это? Наследоваться нужно так чтобы было удобно использовать, а не так что на что больше похоже в реальном мире
>>1475837 Правда? А что там с сервлетами, например? Надо различать data-классы и сервисы. Сервисы наследовать можно и нужно, данные - весьма нежелательно.
>>1476006 Лол. Я вместо "прямоугольник" прочёл "треугольник" извините.
>>1476016 >И какой из них правильный? Логически рассуждая, квадрат - частный случай прямоугольника, но не наоборот.
> наоборот Речь шла об энтерпрайзе. Слова "данные" и "сервис" нужно понимать в этом контексте. Хотя, такое разделение можно провести где угодно.
Например, HttpServlet наследует Servlet'у, или SomeDao наследует AbstractDao - чтобы вынести общий функционал в суперкласс. Наследовать же классы данных - это геморрой, т.к. они сохраняются в бд, и являются просто наборами полей.
>>1476016 >появляется god object Так зачекм ты собрался наследоваться? Ничего сверхестественного при таком наследовании ты не получишь же. Можно вернуть центр фигуры, посчитаь периметр и унаследоваться с одним полем данных.
Ну раз уж играть по твоим правилам, то я бы наследовался от квадрата и прямоугольнику добавил ещё одно поле длинна.
Но почему не наследоваться от абстрактной фигуры и? у которой будут метода центра и расчёта и периметра?
>>1475840 если в твоем мире квадрат обладает некоторыми уникальными свойствами, которыми ты пользуешься, то квадрат потомок прямоугольника если нет - они не различимы на уровне абстракции в принципе, это еще в начальной школе проходят.
>>1476016 >Дух ооп Твои проблемы в том, что ты дрочишь на духов Нормальные ребята просто пользуются. Делают. Создают. У них работает. А ты и твои одноклассники сперва подрочите не духов, потом на дваче будете сраться про какие-то теоретические аспекты, на которые всем насрать. Так что иди на хуй.
>>1476022 >длинна Очень ценно мнение человека, который не умеет писать без ошибок простые слова на родном языке, которым пользуется пару десятков лет. О да. Он-то нам все расскажет про синтетические языки, парадигмы проектирования, да и вообще про жизнь.
>>1476020 прямоугольник это квадрат с расширенными свойствами
>у которой будут метода центра и расчёта и периметра? а если при этом надо будет общаться с базой данных, это общение делать прямо в сущностях? Как проводить транзакции через эти грозди наследований?
>>1476045 >прямоугольник это квадрат с расширенными свойствами Это называется "хуёвый дизайн". В смысле - оно работает, и даже приносит выгоду, вроде-бы. Но, так делать не надо, ибо, в долгосрочной перспективе будут проблемы, скорее всего.
И то, что хуёвый дизайн пропагандируется кем-то (от кого ты это услышал) - это дополнительное подтверждение того, что правило 95% никто не отменял.
>>1476022 кстати само наследование противоречит инкапсуляции. При наследовании доступ к членам класса получает неограниченное количество потомков, в том числе с возможностью их модификации. В том числе благодаря наследованию возможен паттерн "паблик морозов"
>>1476054 Это не я поднял этот вопрос. Мой первый (ошибочный) коммент по этой теме - >>1476006
И я уже написал (>>1476020), что квадрат -> прямоугольник. Т.е. квадрат расширяет (специализирует) прямоугольник, т.е. явл. его потомком.
При этом, тот, кто задаст такой вопрос на собеседовании, может иметь совершенно другое мнение - у квадрата одно свойство (длина стороны), а у прямоугольника - два (длина, ширина). Как (>>1476045), например. И такая точка зрения тоже имеет право на жизнь, наверное.
Поэтому, на собеседовании лучше выдать оба варианта, с пояснениями.
>>1476059 Есть и третий вариант, как заметил >>1476032. Это одно и то же - просто прямоугольник. Просто у квадрата длина и ширина равны. И не нужно выделять квадрат в особый случай, если на это нет действительно серьёзных причин.
Более того, если даже это и имеет значение (где-то в коде), то часто можно обойтись просто сравнением сторон, и, если они равны, то делать someZalupa(rectangle). Т.е. отдельный класс не требуется в простых случаях.
>>1476055 >членам класса получает неограниченное количество потомков, в том числе с возможностью их модификации И что? Почему они должны иметь к ним доступа?
В реальном проекте у прямоугольника будет метод isSquare, возвращающее true, если длина и ширина равны.
Прямоугольник от квадрата наследоваться не может, потому что тогда в массив<квадрат> ты сможешь запихнуть прямоугольник, что неверно. Это самый плохой вариант.
>>1476059 Блядь, все твои рассуждения неправильны. Потому что ты идешь хуй знает откуда хуй знает куда.
ООП нужно не для того, чтобы описывать объекты реального мира на собеседованиях или на дваче. ООП нужно, чтобы писать программы. Тебя не должны ебать придуманные тобой свойства (одна сторона или пять). Тебя должны ебать только те свойства, которые будут использоваться в твоей программе, в ее продолжениях, и, если не дай бог ты делаешь библиотеку, в программах, которые будут ее использовать. Надеюсь, что ты вообще не программируешь. Потому что, что у квадрата, что у прямоугольника ЧЕТЫРЕ ЕБАНЫХ СТОРОНЫ, а не одна, и не две. То, что длины каких-то сторон равны это частности.
Уже говорил, повторяю для тупых: если у прямоугольника есть уникальные (разница длин смежных сторон не в счет, очевидно почему) нужные тебе черты, которых нет у квадрата, но не наоборот, то прямоугольник наследует квадрату если у квадрата есть уникальные черты, которых нет у прямоугольника, то квадрат наследует прямоугольнику если и у того,и у дргого есть непересекающиеся уникальные черты, они братья (пусть даже пятиюродные, не принципиально) если нет уникальных черт, то они - один класс
хули тут непонятного?
при этом их уникальные черты вырастают не из учебника геометрии, а из принципов использования квадрата и прямоугольника в твоей программе.
если такие простые вещи тебе надо объяснять, то воздержись от высказываний на тему ооп. тебе еще рановато.
>>1476080 >ООП нужно, чтобы писать программы. ООП не нужно. Наследование нужно для НАПИСАНИЯ ПОЛИМОРФНОГО КОДА. А не для несуществующего ООП. >прямоугольник наследует квадрату Блядь, эта маня еще и падежи русского языка не знает.
Спешу обоссать спорящих: квадрат не связан с прямоугольником наследованием, иначе бы это нарушило принцип подстановки Барбары Лисков. А теперь идите на хуй.
>>1476085 Я не он, но отвечу. Абстрактная фигура в этом случае подразумевается, естественно, как предок одного из них. Просто речь тут не об этом.
Васян где-то услышал про хитрый казус (квадрат<->прямоугольник) и решил блеснуть эрудицией. Когда его потыкали носом в его плохо пахнущие выделения, он ещё раз обильно просрался - >>1476080 В итоге - адекваты, зажав нос, покидают тред, лол.
>>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 >Но набор методов для работы с фигурой может изменится Это характерно для кодеров с двача. Которые тратят силы на теоретические срачи на темы, в которых ни хуя не понимают, а не на проектирование своих систем. Им, очевидно, ООП не нужно, они следуют отсюда в жс-тред, им там уютно.
>>1476096 >О, еще один таджик рассказывает, как правильно программировать. >иметь право на получение наследства после кого-н. >квадрат имеет право на получение наследства после прямоугольника Ну так съеби в свой педвуз или откуда ты там.
>>1476097 Это лишний раз напоминает нам, что нужно разделять данные и сервисы. И что данные должны быть иммутабельными. И что нужно использовать фабрики. И прочее подобное. Не стоит искать простых ответов на сложные вопросы.
Это я к тому, что если очень надо, то можно делать наследование квадрат->прямоугольник (хотя, лучше этого избегать). Но, наоборот делать нельзя ни в коем случае.
>>1476093 Я ж тебе написал, что надо ориентироваться не на учебник геометрии, а на то, как ты будешь использовать свои классы.
Ты будешь задавать прямоугольник и квадрат не стороной/сторонами, а диагональю? Ты будешь вычислять площади?
Или ты будешь рисовать на экране, в ЛЮБОМ случае задавая координаты ДВУХ углов?
Или у тебя будет какой-то процессинг, который сможет принимать только квадраты, но никогда прямоугольники (или наоборот?)
С какого хуя великие теоретики программирования с двача бросились рассказывать, что от чего должно наследовать, если не задали самых первых вопросов: 1. определи квадрат и прямоугольник 2. определи, какие функции с ними должна производить программа, и на хуя они вообще нужны (а то окажется, что в программе нужны только овалы и шестиугольники) 3. каков бюджет проекта ?
>>1476104 >ррряяяя, ты не владеешь русским языком! >ах, сука, владеешь... >тогда, тогда, тогда... >ррряяяя, мы нинадиктанти, съеби в педвуз пиздец, как теоретических программистов рвет на части тема квадратов и прямоугольников
>>1476104 Добавлю, кстати, что этот хуй >>1476107 - живое доказательство того, что такое ООП. Это когда гуманитарии пришли в программирование и начали разводить свое типичное словоблудие. А давайте философски определим квадрат, и попилим при этом бюджет. Пиздец нахуй, и он это всерьез.
>>1476110 >Я технарь! >Гуманитарии требуют определений! Пиздец, ты тупой уебок
>философски определим квадрат Видно, что ты ни дня не работал программистом. Видно, что как раз ты и есть гуманитарий, потому что не знаешь, что такое определение. Неудивительно, что программы теперь работают через хуй - программисты не знают, что вообще они программируют. Какие-то абстрактные квадраты и прямоугольники.
>типичное словоблудие >ррряяяя, ООП нинужна, ООП ниработаит О, да.
А ты чо не в школе-то? Уже домой пришел? А уроки что не делаешь? Мамка заругает, смотри.
>>1476114 Нельзя конкретно ответить на незаданный вопрос. Нельзя конкретно ответить на мудацкий вопрос. Нельзя лично тебе конкретно ответить так, чтобы лично ты понял, потому что ты умственно отсталый.
>>1476107 >геометрические фигуры >надо ориентироваться не на учебник геометрии Вот именно для тебя, и для таких как ты, пишут статьи про design smell. Специально для тебя, понимаешь? Не пренебрегай.
>>1476107 >Ты будешь задавать прямоугольник и квадрат не стороной/сторонами, а диагональю? И так, и так. Несколько конструкторов, перегрузка методов, не слышал? Вот тебе видос, для твоего уровня.
>>1476120 Мудака справшивают, что и как он будет делать в своей системе. Мудак рассказывает, как вообще бывает в жизни. Употребляет слабопонятные слова типа "перегрузка" и пр. Найс.
Я теперь сколен согласиться с долбоебом про "ооп не работает".
ВАМ, УЕБКАМ, к ООП даже на километр подходить не следует.
>>1476109 На флоте тебя порвут за неправильное ударение в слове компас, например. Если ты не можешь в профессиональный сленг (а профессионалы пишут "квадрат наследует прямоугольник", подразумевая кальку с английского square inherits rectangle), то очень сильно палишь свою диванность. Но я тебя узнал, ты тот шизик из ньюфаготреда, только теперь ты не ставишь пробел после номера поста, чтобы не так сильно палиться.
>>1476126 > определи квадрат и прямоугольник > ты ни хуя не понял из того, что я написал.
Они уже определены. На уроках геометрии в средней школе. Если ты хотел это использовать просто как абстрактный пример, надо было подобрать соответствующие модели. А так - получилось, что ты несёшь хуйню с упорством, достойным лучшего применения.
Несмотря на попытки программистишков с этой доски противопоставлять себя заводчанам и бойцам скота, ООП это как раз подтверждений того, что работа программиста низкоинтеллектуальна, и больше похожа хоть и не на забой скота, но на починку автомобилей или приготовление еды (по словам одного из столпов ООП), чем на науку и ресерч. Современные тенденции типа ФП здесь не в почете. Слесари для собственного утешения даже придумали библиотеку vavr, чтобы подкапотное говно во время починки очередного мерседеса не так резало глаза.
>>1476135 Заебись. Один задает охуительный вопрос, что из чего расти должно - квадрат из прямоугольника, или наоборот. Другой не вырос из уроков геометрии, но тоже зашел попиздеть. И везде им мерещится хуйня. Во что ява-тред превратили, пиздец просто.
>>1476119 >>геометрические фигуры >>надо ориентироваться не на учебник геометрии >Вот именно для тебя, и для таких как ты, пишут статьи про design smell. Охуеть. В любой системе есть сущность Пользователь. В 99.999% случаев это человек. Очевидно, ты сперва заглядываешь в учебник биологии, наследуешь юзера от людей, тех от гоминид, и так далее до хордовых. Ну, удачи тебе, нюхатель дизайнов, удачи. Она тебе не помешает.
>>1476128 >На флоте тебя порвут Ты уже пофантазировал, что знаешь что-то про программирование. Теперь, вот, фантазируешь, что неебаться много знаешь про флот. Расскажи еще о своих фантазиях, давай, жги!
>>1476221 Я не виноват, что всплеск фантазии. Но я правда thicc тянку представил, если что. Просто представь корабль в море и одна блондинка на команду негров.
>>1476224 Ты самослился на фразе 'Употребляет слабопонятные слова типа "перегрузка" и пр.' То, что ты буйный и будешь еще весь вечер говорить о том, как ты не обосрался, а я нет, сути дела не меняет.
>>1476239 Не надо, я не вниманиеблядь. Просто тут полтреда шитпостить начало, а чем я хуже. Но я может и не совсем нормис-натурал, мне не нравится вагина и вагинальный секс с тянками, не дрочу на такое. Все, не буду больше писать, не репортите
>>1476238 >До этого не я писал, но ты скатился до визгов о гуманитариях Ну вот тебе предложение: >Или у тебя будет какой-то процессинг, который сможет принимать только квадраты, но никогда прямоугольники (или наоборот?) >но никогда прямоугольники (или наоборот?) Наоборот. Т.е. мы имеем функцию process(array<rectangle> yoba), которая упадет, если в массиве окажется прямоугольник с равными сторонами. Такую хуйню мог написать только гуманитарий, который в принципе не думает, что пишет. Собственно, в том посте я могу каждое предложение аргументированно разнести. У меня от каждого блядь предложения кринж. Начиная с непонимания того, что конструкторы не полиморфны, кончая претензией мани с проблемой со школьной геометрий к теоретикам программирования. Типа, нашелся такой великий практик, который несет кринжовую хуйню с серьезным лицом, а мы тут теоретики собрались.
>>1476250 >которая упадет, если в массиве окажется прямоугольник с равными сторонами ты тупой? Как у него могут быть равные стороны? Это либо объект не имеющий отношения к реальному прямоугольнику либо ты обосрался и создал объект с недопустимыми параметрами.
Apache commons-configuration - норм штука или можно без нее обойтись? И кстати, почему apache сделали вообще ВСЕ? Разве что своего DI-контейнера нет, и то я не уверен.
>>1476250 >>Или у тебя будет какой-то процессинг, который сможет принимать только квадраты, но никогда прямоугольники (или наоборот?) >>но никогда прямоугольники (или наоборот?) >Т.е. мы имеем функцию process(array<rectangle> yoba), которая упадет, если в массиве окажется прямоугольник с равными сторонами. Пиздец, ты тупой. Попроси мамку почитать тебе про курочку Рябу. Это твой интеллектуальны максимум
>>1476256 Это "программисты", которых вы заслужили. Вы не пиздите их ногами, не ссыте им за воротник. Вы здороваетесь с ними, и думаете про себя "ну, может, он поумнеет, а пока пусть веб-морду сверстает, пока мы на яве пишем". Вот они и прорываются сюда с "кринжовой хуйней", думая, что сейчас они всех научат нюхать дизайн. А раньше бы он пошел в ларьке пепси-колой торговать на третьем дне испытательного срока. Это, блядь, сейчас все добренькие.
>>1476274 >>1476275 >>1476277 Гуманитарий, считающий, что прямоугольников с равными сторонами не бывает, тактически семенит, пытаясь перевести все в плоскость личности.
>>1476066 >В реальном проекте у прямоугольника будет метод isSquare так и вижу конструктор с десятком аргументов - isSquare, isTriangle, isCircle. Вот это как раз и есть ужасный дизайн. И ооп приводит именно к такому подходу
>>1476085 >а вот писал бы от абстрактной фигуры и всё было бы заебись как ты для абстрактной фигуры будешь писать метод например расчёта периметра? if (this instanceof Square) return width 4; else if (this instanceof Rectangle ) return (width + height) 2
легко писать, легко тестировать, потокобезопасно, расширяемо
ООП вей - анальный цирк с наследованием и попытками выяснить, кто чей предок. Почти сразу появляются грозди instanceof и ClassCastException. Появляется проблема потокобезопасности. Сложно тестировать. Любой потомок может наследовать метод и изменить его, благодаря полиморфизму это никто не заметит, и оно будет считать неправильно
>>1476373 > грозди Гроздья, блять. Или кучи, тогда уже. И никакой связи с ООП, как таковым.
Данные наследовать не нужно. Нужно наследовать сервисы. А ещё лучше - делегировать + интерфейсы. Анальный цирк - он в голове, а не в абстрактной методологии, которую как хочешь, так и реализуй.
>>1476099 Принцип Лисков не про стейт, а про поведение объектов. Поведение наследника не должно противоречить поведению родителя. Но в примере с Square s = new Rectangle() или Ractangle r = new Square() имеем противоречие с тем, что ожидается, что сторона объекта будет удовлетворять одним условиям, а на самом деле все по-другому.
>>1476256 >Как у него могут быть равные стороны? Блядь, ебланы, заткнитесь. С какого хуя это у прямоугольника не могут быть равные стороны? Ой блядь вы здесь ролидовые. Вы же даже школьный курс геометрии не осилили. Вы, наверное, из тех идиотов, которые вечно бугуртят от комплексных числах и говорят про то, что в жизни пригодится, а что нет.
>>1476396 Это ты тот ебанат, который уверен, что прямоугольников с равными сторонами не бывает? Наверное, в твоем убитом ООП умишке он сразу превращается с сущность с другим типом, ебанашка.
>>1476388 Твое "поведение" - это и есть смена стейта (либо объекта, либо мира). Принцип Лисков - про то, что потомок не должен менять инварианты предка. Проблема в том, что эти инварианты - вне языка. То есть если для тебя код
Square s = new Rectangle(); s.setWidth(1); s.setHeight(2);
вызывает проблему, то это потому что ты выбрал то, что setHeight не может менять поле width класса. Хотя казалось бы, с хуя бы. setHeight - это метод, это не поле.
В этом и есть самая большая проблема ООП - оно ни о чем.
>>1476403 Если базовый класс складывает обычные числа, то метод наследника для длинных чисел add должен выполнять сложение длинных чисел, а не какую-то другую операцию, которую придумал умник с двача. Проблема здешних долбоебов в том, что они за деревьями (языком) не видят леса (предметной области). Вы же не гуманитарии, чтобы какой-то нелогичной хуйней заниматься, вам нужна строгость, а лучше гост. И за отступление от госта увольнение.
>>1476407 И да, все это касается того, что вне языка, как и предметная область, за работу в которой вы получаете деньги. Хотя с такой дискуссией начинаю сомневаться в том, что здесь кто-то работает.
>>1476282 Легаси, заебок. Ничего нового знать не надо, надо уметь аккуратно копаться в говне мамонта. Зависит от человека, некоторым вполне нравится. А некоторые не могут вовсе. Деньги платят, и хули от них отказываться, если умеешь?
>>1476362 БВААХАХАХАХАХАХАХАХАХАХА JavaScript Ой-вей, думал, сегдоня уже ничего смешнее школьников, которые не знают, чем квадрат от додекаэдра отличается, не увижу
>>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++; } // ...... }
Вопрос: как сделать более правильно? Убрать кучу ифов чтоб в будущем можно было просто расширить. Поидее что-то типа мапы, где будут сопостовляться атрибуты. Но чет не догоняю что именно мне нужно и как это сделать.
>>1476908 На самом деле, ты делаешь что-то очень странное. Нет варианта хранить один Map вместо десятков полей и методов? Ну, если нет, рефлексию можно юзать в твоём случае так. Генерируешь название метода в виде строки, узнаёшь, как с помощью рефлексии получить объект класса Method, соответствующий нужному методу, а затем просто его вызываешь. Но трижды подумай, прежде чем так делать. Пожатый вебпаком js-код и то читабельней.
>>1476988 Здраввствуйте друг. Меня зовут мистер Дурга. За немного рупий я научить вас программирование на Java и OOP. Кто если говорит что OOP не нужна тот пакистанский олень и Шива убьет его. Ждем вас в Durgasoft!
>>1477045 >Я хватаюсь за все модные фишки, но не про одну я не знаю, зачем она. >Более того, я даже не могу понять, о чем меня спрашивают. >Но я знаю ответ на любой вопрос >Это: stream, lambda, closure и var
>>1476720 Reflection - это способ динамически обратиться к методу или свойству объекта по имени. Можно получить список всех доступных методов или полей объекта, перебрать их, вызывать нужные и т.п.
Вот тут написана хуйня: >>1476962 - к читаемости кода и даже к быстродействию это, само по себе, отношения не имеет. Зависит от того, как сделать. Можно делать очень интересные вещи с помощью reflection.
Но, я бы советовал разобраться с этой темой самому - оно того стоит.
Также, если ты можешь использовать в этом проекте Groovy - используй. Это, всего-лишь, один лишний jar, хотя и большой. В Groovy просто можно вызывать методы по строковому имени, как в джаваскрипте, примерно. Рефлекшн юзается внутри. Гугол в помощь.
Вообще - Groovy - охуеннейший инструмент для тестирования и прочих подобных задач. Если не пробовал - попробуй обязательно. И на этой доске очень нехватает Groovy-треда.
В IDEA можно совершенно прозрачно делать комбинированные Java-Groovy проекты. Ничего дополнительно делать не надо. В том числе и в бесплатной идее.
>>1477094 Здраввствуйте друг. Меня зовут мистер Дурга. В нашей очень прекрасной в мире школе программирование Дургасофт тебя научим наследовать многоугольников. Ты уже приобрел немного рупий?
Итак, есть include и есть jsp-include. Первый компилирует инклуды один раз, второй каждый раз. В каких случаях имеет смысл применять второй вариант вместо первого?
>>1477689 >компилирует каждый раз Ты чего-то недопонял. Ничего не компилируется каждый раз.
В первом случае включается _исходник_, и потом всё вместе компилируется. Это как сишный include.
Во втором - импортируется некий ресурс во время выполнения. Точнее - результат запроса к ресурсу. Каждый раз, да. Соответственно, в этом случае можно юзать параметры для ресурса, например. Или просто шарить некий ресурс. И затем, когда ты его изменишь, не нужна будет перекомпиляция 1000 страниц.
>>1477779 >>1477799 Да тут поцаны хотели перекатить, но увлеклись рассказами, что четерыхугольники нельзя друг от друга наследовать. А потом их мамка ужинать позвала. Не до того, короче.
>>1478042 О, бля, жабаскриптеры пожаловали. В яве есть любой формат даты. Какой ты способен придумать и описать с помощью нехитрых символьных констант, такие и есть.
>>1478081 >И ведь все из-за того, что мне нравятся фабричные методы и не нравится передавать много параметров в вызове метода. Пиздос. Работал я в одной конторе, где была фабрика-фабрик, да еще с абстрактным суперклассом, интерфейсом и единственной реализацией.
Но вообще надо смотреть по обстоятельствам. Например у нас был класс цена актива на бирже, у нее было порядка 50 полей. Часть актуальны для одного типа, часть для другого, часть для всех. И в результате ты передаешь в конструктор 34 параметра в основном числа - создается цена одного типа, 36 - другого - просто нечитаемый пиздей. Тут фабричный метод с явным указанием типа цены был бы лучше, а еще лучше билдер. С другой стороны если у тебя объект Point с двумя полями x и y, то такие изебы конечно не нужны.
>>1478159 Не зная бизнес специфики легко пиздеть, про 1С-стайл. 1. У тебя цена включает обе стороны BID/ASK считай все поля х2 2. Ценя включает в себя базовые цены (до 3-х штук), маржу сейлза, клиентскую. 3. Инфо про ladder 4. Инфо про forward leg если есть, сама посчитанная цена, forward points, spot price по которому все считалось 5. Всякая служебная лабуда, типа типа цены, времени, айди.
Можно конечно это все структурировать по канонам ООП, но тогда накладные расходы на создание всего этого начнут сильно бить по перформансу.
>>1478159 Ясен хуй, что в laba3 тебе такое не встретится. А в реальном проекте за зарплату - очень даже. Когда ты перейдешь от прямоугольника и квадрата к реальным объектам из реального мира ты перестанешь пиздеть на двачах о каких-то теоретических хуйнях.
Ещё раз: include - это включение исходного кода одной страницы в код другой страницы. Как копипаста.
jsp:include - это вставка результирующего _текста_ другого (независимого) ресурса в текст этой страницы во время выполнения. С вызовом по url, включая параметры. Повторное использование в чистом виде. Как вызов библиотечной функции.
Также, в include-части ты можешь обращаться к переменным страницы, в которую эта часть включается (и наоборот) - потому, что это, по сути, одна страница. В jsp:include - страницы полностью незваисимы.
В jsp:include могут быть проблемы с правами доступа, например, если у пользователя есть права на страницу, но, нет прав на include-часть.
>>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 чуханом норм, но вроде школа бесплатная одной известной конторы подумал, научат, покажут, а тут такое. Короче вопрос - это инопланетян из физмата набирают или я совсем долбаеб?
>>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 Далеко не всякая рекурсия так вот просто преобразуются в хвостовую/цикл. С обходом дерева, например, одним аккумулятором не обойтись, там придётся хранить целый стек, но в явном виде. Зато стек переполнится, только когда ОЗУ закончится нахуй.
>>1478740 Да, довольно часто. IDEA их анализирует, и указывает на проблемные места. Иногда очень помогает. И, разумеется, это дополнительная документация для кода.
>>1478779 Я пока не работал с ним. Но, мне кажется, это оборотная сторона статического compile-time связывания. Иначе просто невозможно, я думаю. Короче - недостатки, как продолжение достоинств.
>>1478779 Посмотрел сейчас доки. Ты имеешь в виду, что нужно обязательно писать @Inject в точке инжектирования? Но, можно же использовать модули и @Provides?
>>1478781 Да, причина конечно в этом, но я не понимаю, чем так плоха рефлексия. >>1478861 Я про то, что в @Component надо прописывать все modules и объявлять методы.
>>1478702 Я уже вижу, как у тебя сознание расширилось. Ты не осилил прочесть вопрос, который задал анон: "как часто приходится использовать" Но стал рассказывать, как это полезно. Полезно, да, спору нет. Но не на работе.
>>1479567 >Ты не осилил прочесть вопрос Ну откуда вы лезете, блять? Дружок, я не только осилил прочесть вопрос. Я даже осилил написать пару ответов: >>1478614>>1478636
>>1480402 Единственный твой дружок - у тебя в штанах. Ты смешно подрываешься на пустом месте. Не менее смешно бросаешься что-то кому-то доказывать. Это на тебя так фп действует? Или чтение сикп? Или ты еще какие-то слова выучил, не зная, что они значат?
Так, я не совсем понимаю. Мне пишут, что писать код в jsp страницах нежелательно, потому что вроде как пускай за вид отвечает дизайнер, а за код - программист. Предлагают вообще выключать скриптинг на jsp страницах через настройку. Но тогда вопрос - зачем вообще нужны jsp страницы без скриптинга? Чем они тогда отличаются от просто хтмл?
>>1481398 Можно не писать логику на странице, а тупо подставлять уже готовые данные, которые в jsp берёшь из переменных. Если простая логика всё же нужна, например, в цикле вывести несколько однотипных тегов, или проверить какое-нибудь условие, тогда можно юзануть JSTL. А ещё можно посмотреть в сторону шаблонизаторов, например, thymeleaf или freemarker.
>>1481414 Шаблонизаторы для меня сейчас слишком сложно. Мне бы пока основы понять. Вот если мне, например, нужно что-то из БД достать и вывести на странице, как это без скриптинга сделать? Про JSTL слышал только краем уха, но пока в книжке про него ничего нет, будет позже. Так что, наверное, я как-то должен справляться без него.
>>1481479 В принципе, ты можешь пойти другим путем. Это не даст тебе возможности подучить jsp, впрочем.
Путь такой: jsp это просто болванка, все данные запрашиваешь/отправляешь аяксом, отрисовываешь яваскриптом. Таким образом жсп-кода у тебя не будет вообще.
>>1481608 Не тот уровень умений для этого нужен, какой у тех, кто читает огромные ассемблерные листинги с адресами вместо имён. Да и код дизассемблер выдаёт вывернутый наизнанку после оптимизации и даже иногда обфускации.
А говнокод без комментов и с хуёвыми именами многим каждый день приходится копать на работе.
>>1481657 Сам я немного об этом знаю. Вроде, при компиляции можно указать флаг, добавлять "отладочную информацию" в класс или нет. Ну, ещё имена аргументов некоторых методов можно из доков восстановить.
>>1481710 Можешь сделать ты, а то я не умею, но хочу свой дднс пиздец как. Буду на утке же и хостить его. Например: username1.myddns-domain.duckdns.org username2.myddns-domain.duckdns.org username3.myddns-domain.duckdns.org
А если утка упадёт, то будет просто - другой домен: username1.другой-домен.lol username2.другой-домен.lol username3.другой-домен.lol
>>1471475 (OP) Анончик, спасай! У меня в один момент перестала работать в дебаг-режиме "идея". Когда ставлю точку остановки и запускаю дебаг, получаю сообщение в консоль со скрина. Ничего внятного в гугле не нашёл на это. Подскажешь, в чём проблема?
>>1473115 Смотря куда стучишься джуном. Если в яндекс - хватит и core, только ты должен шарить в алгосах(поймёшь, когда будешь выполнять тестовое задание и охуеешь с него)
>>1481910 Блядь, как ты собираешься комплировать веб-приложение в джар? Там черным по белому написано, что получится вар Который тебе надо будет деплоить в каком-нибудь контейнере. Ты ни хера не знаешь, но хочешь, чтобы тебе Луну с неба достали. Так не бывает.
>>1482005 вместо того, чтобы нормальным человеческим эклипсом открыть эклипсовский проект, ты предлагаешь макаке поставить нетбинс и открыть эклипсовский проект им. ну, ооооок
>>1481910 >Дай инструкции к компиляции записывай, мизерабль 0. читаешь readme.md из гита по своей ссылке если просветление не наступает, то 1. ставишь ждк (сам разбирайся, какую версию, я в рот ебал за тебя еще и об этом думать) 2. ставишь ант 3. ant war-complete
Крч, метод findLocal https://pastebin.com/2DzAeJ77 , надо ли его разбивать?мне кажется его разбивка на методы это непроизводительный бред, противоречащий логике, это цельный алгоритм было бы охуенно если бы еще до чего нибудь доебались
>>1483300 Тебе виднее Очевидно, ты не осилил ни того, ни другого, ни третьего. Потому что вопрос был про яву и жс, а ты, с какого-то хуя, приплел с++. Видимо, решил понтануться знанием слов, которые услышал от больших пацанов
>>1483327 > было бы охуенно если бы еще до чего нибудь доебались public методы без явадок-комментов и ты хочешь, чтобы в чем-то там копались Да иди ты нахуй, вот куда ты иди.
Аноны, интересует такой вопрос. Какой либой/фреймворком вы пользуетесь при сложновыебанных запросах к БД? Да и в принципе, если требуется написать что-то сложнее findAllBy...(). На работе пользуемся злоебучим Criteria API, иногда (очень редко) JDBC Template. Уверен, есть что-то, что хорошо работает совместно с JPA. У того же jOOQ, насколько я знаю, с этим есть небольшие проблемы
>>1483900 Нативный sql юзаю, другого нет. Для простых запросов хоть десятью фреймворками обмазаться можно, но в сложных случаях фреймворки нихуя не облегчают жизнь, а наоборот усложняют.
Помогите! Мне нужно сделать лабу с использованием сраного winapi, а именно копировать файлы с помощью его функций. Я исполняю этот траходром на java, поэтому легкого доступа к ним не будет. В процессе поиска пришлось перепробовать JNA и узнать про JNI, но это же просто кромешный ужас. JNA не содержит того, что нужно, а JNI имеет столько пердолинга и затыков, что сделать в краткие сроки я точно не смогу. Появилась идея вкатить в код какую-нибудь dll с нужными функциями, но я не могу её нигде найти.
>>1484073 Понимаю, но мне нужно не для спрингового проекта, а JdbcTemplate тащит много ненужного. Мне бы тот же самый функционал, ток без спринга. Мало ли ты знаешь? Пока что присматриваюсь к dbutils
>>1471475 (OP) Привет, двач. Есть у кого на примете годный курс лекций по алгоритмам? Знаю, что библией алгоритмизации считается книга Кормэна(потом по нисходящей идут Дасгупта и Бхагарва, тоже знаю) и мне нравится её полнота, однако, формальный язык очень и очень отталкивает, не способствуя пониманию. Да и вообще, формат лекций мне как-то ближе, нежели просто чтение книги. В общем, какие требования? Полнота(речь не об N-полноте, лол) Кормэна в сочетании с интересным, не сухоформально рассказывающим преподом. А, да, и чтобы на русском(знаю, что охуел). Подскажите чего по сабжу?
>>1483987 Ты не можешь толком объяснить, что тебе надо. Вызвать функцию из готовой dll - JNA с этим справиться. Написать код не реализуемый на Java - да тут нужно JNI/JNA использовать, но вопрос а что именно тебе такого реализовать.
Где и как проверять параметры конструктора? что- то разные ответы в этих ваших интернетах, мне вот надо фабричный метод использовать, в него можно запихнуть проверку?
>>1484449 >На работе пользуемся злоебучим Criteria API >Уверен, есть что-то, что хорошо работает совместно с JPA. >Мне не нужно прям тяжеловесную orm поднимать, а самому имплементировать jpa это жирновато Я что-то не пойму, это два разных анона? Или один, который уже забыл, что хотел узнать, как делать то, что ему нужно, в ЖПА, которой он владеет постольку-поскольку?
>>1484993 В том месте, которое отвечает за использование этих параметров. А главное в том, которое может измениться.
Если ты проверку запихнешь в фабричный метод, а потом подвинтишь использование (не список, а именно работу с ними) параметров к конструкторе, то, не исключено, что тебе придется менять еще и фабричный метод. Если проверка будет в конструкторе, то менять придется только его. Дальше думай сам. Нет, и не может быть, никаких стандартных рецептов. Тебе голова дана, чтобы ей думать, где и как ты будешь проверять параметры конструктора. Если ты хочешь делегировать эти думы двачу, то засылай и зарплату сюда же, хули.
>>1485005 проверка в конструкторе считается нормой? а если у меня нет значений по умолчанию, я могу из конструктора кидать illegalargumentexception? Мне вот в споре говорили что сущность не может проверять сама себя и надо использовать валидатор я на курсах, подсказать никто ничего не может, включая "коуча", спорил я с таким же страдальцем как я, мб книжечку какую посоветует кто толковую с разобранными нюансами проектирования
>>1485021 Entity по сути не должна содержать бизнес логику, а по факту и не может из-за особенностей работы ORM. Валидация должна быть на другом уровне. А вот твой Domain объект уже может содержать логику валидации.
А так - валидация никогда лишней не бывает, всегда есть место багам и факапам.
>>1485021 >проверка в конструкторе считается нормой? а где, блядь, еще их проверять? твой класс, если он паблик и экспортируется наружу это черный ящик с паблик методами. конструктор, если он паблик, это элемент апи с какой стати ты валидацию отдаешь на откуп хуй знает кому? ты должен выдавать такое апи, которое не позволит сделать хуйню. т.е. провалидирует все, что нужно провалидировать.
>а если у меня нет значений по умолчанию, я могу из конструктора кидать illegalargumentexception? не уверен, что понял тебя. но никакой проблемы выкинуть из конструктора этот эксепшен нет.
>надо использовать валидатор надо, чтобы ловить ошибку как можно раньше. но если ты пишешь класс, он должен быть самодостаточным
вот этого пидора не слушай: >>1485033 >Entity по сути не должна содержать бизнес логику, а по факту и не может из-за особенностей работы ORM во-первых, у тебя про энтити ничего не было во-вторых, она тебе ничего не должна в-третьих, все она может
Вопрос: какие задачи вы в основном решаете на работе? Какие таски вам приходят в основном? Просто я давно уже пытаюсь вкатится и уже кажется по всем языкам прошёлся по вершкам. Вот щас читаю 4 главу Хорстмана. Вроде выглядит все интересно. Но потом я гуглю какие-то статьи на хабре, мне выдаёт статьи про быстрый поиск вхождений строки в тексте и т.д. Потом ещё смотрю сколько всяких курсов по джаве и понимаю что даже если сейчас всё изучу, то вкатится будет крайне тяжело, а если даже вкачусь боюсь однообразных задач. В середине октября будут курсы переквалификации от ИТМО, думаю пойти чтобы прибавить мотивации.
>>1485624 Круд наклепать, тесты написать, DTOшку дополнить, изменить поведение сервиса. Типа такого. Бизнес-логика редко предполагает очень сложные алгоритмы, обычно данные просто переливаются из одного формата в другой и сохраняются куда-нибудь отправляются.
>>1485434 >вот этого пидора не слушай: >>>1485033 >>Entity по сути не должна содержать бизнес логику, а по факту и не может из-за особенностей работы ORM >во-первых, у тебя про энтити ничего не было >во-вторых, она тебе ничего не должна >в-третьих, все она может
Во первых - ты тупое, безграмотное мудило. Во вторых подавляющее большинство современных ORM - это JPA-based. А там требуется конструктор по умолчанию, так что хуй тебе за щеку, а не проверка в конструкторе. В третьих часть полей вообще будет заполнятся самим ORM (ID, version), а другая часть может вообще инициализироваться лениво. В четвертых в оригинальном посте вопрос был про "сущность" - в русскоязычной литературе так принято переводить entity я понимаю, что ты туповат для того чтобы книжки читать В пятых встроенные в ORM механизмы валидации, это и есть по сути отдельный валидатор. В шестых пиздуй уже в падик, тебя пацаны заждались, пиво греется.
>>1473078 Просто еще один уровень абстракции. Если ты используешь Spring MVC, ты не контролируешь что он там воротит с сервлетами, если сервлеты то там под ними работа с сокетам и т.д.
>>1485824 Люблю переписывать конфиги, когда ломают их формат. Это стимулирует более динамичное развитие проекта. А ещё мне нравится, что всё пишется на Тьюринг-полном язык: всю логику проекта можно вынести в конфиги, и это удобно. Вообще, мне нравится лаконичный синтаксис, который, возможно, устоится через пару лет, тогда будет заебись, но сейчас этим пользоваться нельзя.
Мне понятно желание нажать одну кнопку и получить готовый работающий продукт. Но, посмотрим, правде в глаза, спрингбут это кнопка, нажав на которую можно только обосраться. Другое дело, что здешняя публика не осознает, когда обосралась.
Работа с сокетами вообще к спрингу не имеет отношения. Это контейнер. Который должен именно поэтому жить и настраиваться отдельно. А умственно-отсталые "яумамкипрограммисты" запихивают его в бут, патамуштатакбыстрее!
>>1485817 ну давай разберем по частям тобою написанное, хуесос
>подавляющее большинство современных ORM - это JPA-based. А там требуется конструктор по умолчанию Тебе, конечно, тяжело понять, что требование иметь дефолт конструктор не отменяет возможности иметь нормальный конструктор. Тебе, конечно, неизвестно, что для ЖПА достаточно протектед дефолт конструктора, когда анон, задавший вопрос, (и тем более, я) очевидно говорил про паблик конструктор. Так что хуй отправляется за твою щеку. Смотрю, ты любишь про хуи за щекой помечтать.
>часть полей вообще будет заполнятся самим ORM (ID, version), а другая часть может вообще инициализироваться лениво. Это, безусловно, отменяет возможность конструктора с параметрами, и, особенно, какую-нибудь логику. И, очевидно, ты не не умеешь работать с ИД, который не генерится сам. Очевидно, у тебя дрожат ручки, когда надо сделать setId, потому что ты не понимаешь, что будет потом. Вообще, видно, что про ОРМ ты услышал только на позапрошлом уроке, но уже приходишь хвастаться на двач, какой ты охуенно прошаренный парень.
>в оригинальном посте вопрос был про "сущность" Единственное, где с тобой соглашусь - проебланил этот момент в посте анона и обосрался со своим "во-первых". Но остальные два пункта остаются в силе.
>В пятых встроенные в ORM механизмы валидации, это и есть по сути отдельный валидатор. Это, конечно, объясняет твою детскую веру в >не должна содержать бизнес логику, а по факту и не может из-за особенностей работы ORM. Ну, ок. Жил тупым и помрешь тупым.
>В шестых пиздуй уже в падик, тебя пацаны заждались, пиво греется. Ты так смешно пытаешься надувать щеки, строя из себя мастера кого-то в чем-то убедить. Лучше продолжай пиздеть про падики и пацанов, чем пытаться отвечать интересующимся про программирование. Только сбиваешь их с толку своей хуетой.
Сап, джавач, только-только вкатился в джаву после крестов, кресты знаю достаточно хорошо, поэтому и вкатился достаточно просто, хочу разработать просто приложение под ведро с более или менее красивым гуи, что подскажете? Мб какие-нибудь фреймворки и пр. для упрощения пути?
>>1487394 > свой Ну и смысл тогда вообще юзать что-то, кроме core?
Какая нахуя раззница, просто написать какую-то хуйню или нет? Если это уже реализовано, велосипедить самому - моветон. Ну юзанёт тот анон ебанный FileOutputStream, а потом ему скажут, что он пишет нечитаемый и сложный код, так как в спринге уже есть для этого потокобезопасный метод с транзакциями и логгированием.
По работе через пару месяцев может понадобиться прогать на джаве, скорее всего какие-то небольшие модули достаточно масштабного приложения. Хочу что-нибудь почитать или посмотреть, чтобы не с полного нуля вкатываться. Проблема в том, что обычно знания/умения, которые я не применяю на практике, вылетают из моей головы через неделю-две. Есть какие-то более практически направленные курсы или что-то в этом духе? В шапке написано, что джавараш говно, я попробовал, там первые несколько часов учат, как выводить строки, а это не совсем то, что мне нужно, и я не уверен, стоит ли дальше продолжать. Есть советы? С меня как обычно.
Так нахуй, почему у меня newWorkStealingPool работает всего в два раза быстрее, чем newSingleThreadExecutor, хотя Runtime.getRuntime().availableProcessors() возвращает 4?
как можно указать, что в метод можно передавать, например, только потокобезопасную коллекцию? понятно, что есть документация и все такое, но я вот задумался, почему в джаве (да и вроде везде так) нет под-интерфейсов для потокобезопасных коллекций? например какой нибудь interface ConccurrencyList, от которого уже наследовался бы CopyOnWriteArrayList
>>1487481 А что тебе нужно? Напиши приложение которое записывает данные в бд через соап и выдает через рест, тащемта кроме этого джава особо нихуя и не делает
Антоны, хелп ми плиз!Аноним05/10/19 Суб 08:45:09#759№1489121
Какие ресурсы вы изучаете для прокачивания скила? Вкатился на ждуна, на работе бессмысленную хуиту делаю для бизнеса.
>>1489743 >>1489748 >>1489750 Вам обоим, прежде чем лезть на двач, следует почитать документацию. Избавит от глупых вопросов и глупых же ответов. Томкет по умолчанию сохраняет сессии при рестартах себя и рестартах приложения.
Есть сайт, на котором контент через HttpRequest грузится не полностью. Но если использовать WebView, то всё будет нормально. Однако через WebView я не понимаю, как загрузить html в string. Я уже пересмотрел документацию, там не нашел. Подскажите
>>1489973 1. вынь руки из-под одеяла 2. подумай, как тебе сформулировать вопрос, чтобы тебя не послали на хуй 3. сформулируй 4. жди ответа пока - иди на хуй
AspectJ умер что ли? Пилю десктопное приложение на java 11, спринг не использую, так как нафиг не надо, захотел навесить статистику на методы, spring AOP не предлагать. А с AspectJ у 11 java какие то максимальные проблемы с совместимостью, господа кто нибудь сталкивался с подобной проблемой?
Всем привет. Ребят вкатываюсь в язык. Пока на javarush сижу и инет гуглю пару недель. Хочу купить учебник, вот выбираю, посоветуйте пожалуйста От headfirst изучаем java, шилдт для начинающих. Что из этого лучше?
>>1491276 О, говнокод ещё жив Подтип - это надмножество, а надтип - это подмножество, или наоборот? И почему говорят, что потомок расширяет предка, если он - его подмножество, то есть сужает?
Сап сеньоры. Вкатываюсь в джаву с нуля, изучаю опираясь на эту книгу http://myflex.org/books/java4kids/JavaKid8x11_ru.pdf В конце книги написано, что осилив её я уже становлюсь джава джуниором. Верится в это довольно слабо, поэтому спрашиваю экспертов двача, действительно ли этой книги достаточно для получения гордого звания джуна?
Как в джаве правильно парсить аргументы командной строки? Обычно в консольных утилитах там могут быть и ключи с -, и длинные с --, они могут быть как с параметрами, так и без. Для этого есть готовые решения или только вручную?
>>1491437 Тут ты прав апаче конечно вещь, но по сравнению с самописным говном достаточно громоздко. Иногда хочется повесить аннотацию и все да да я ленивый да
>>1491437 Спасибо папаша за этот Апаче Коммонс черного цвета двадцатого века но я за аннотации и против лишних зависимостей, хотя по большей части насрать.
>>1492655 У меня каждый раз, как пилю что-то, контроллер превращается в god object с кучей методов, который отвечают за все кнопки в интерфейсе. Как от этого избавится? Или это нормальное его состояние?
>>1492006 Если выбираешь язык под это дело и тебе приглянулась джава - посмотри в сторону котлина, его корутины это просто рай нахуй. Если не выбираешь, гугли CompletableFuture. Если есть желание вгрызаться в фреймворк, могу посоветовать Completable Reactor
>>1492656 Была такая же проблема, нет, это не нормально хотя так же было на том проекте, гугли слоёную архитектуру, должно чуть исправить положение. Кроме того, не обязательно делать 1 окно - 1 контроллер, в окне могут быть "подфреймы" со своими собственными контроллерами, так гораздо легче.
>>1492662 >в окне могут быть "подфреймы" со своими собственными контроллерами До этого я додумался, но у меня в сцене есть один объект, к свойствам которого привязываются разные части интерфейса. Как при этом распределить свойства по контроллерам я пока не додумался.
>>1492679 Да бля, это не та технология, которую стоит ботать, трастми. Посмотри пару туториалов, сделай по аналогии. А книжку лучше философию джавы или хедферст прочитай
Аноны, препод сказал написать простенькую прогу (суть не в задании), я заюзал там TimerTask (Пик №1) и, как видно по пику у меня нет @Override перед run. Находил в интернетах примеры когда и так и так пишут. Собстна, в чем отличие и как мне объяснить отсутствие @Override не оконфузившись.
>>1494069 @Override делает проверку, что в базовом классе или реализуемом интерфейсе объявлен такой метод. Если не объявлен, не скомпилится. Это всё. Вообще, лучше юзать, чтобы ничего не пропустить по невнимательности.
>>1494085 Но может и без этой аннотации работать. А вот сисярп если не написать overrided в модификаторе матода, то она создаст новый ненужный говнометод и будет баг, хи-хи.
Потихоньку вкатываюсь в джаву. Пока на 5 главе хорстмана про наследуемость. И документацию к спрингу курю. Думал пойти в ИТМО на курсы для дополнительной мотивации, но чет узнал что группа в 40 человек да еще и преподаватель девушка какая-то. Как-то стремно теперь. Условно через 3 месяца хх пополнится на 40 ждунов и толкаться с ними локтями будет, возможно, из-за их корочки тяжелее.
>>1494596 > девушка какая-то Не стоит вскрывать эту тему. Тут и так недавно был срач про тянучек от мамкиных альфачей.
> хх пополнится на 40 ждунов Ой, да брось, и половина не пойдёт искать работу прям сейчас, а часть вообще забьёт потом. Для программирования нужна нихуёвая усидчивость, а она есть далеко не у всех даже среди тех, кто пошёл на курсы. Если оцениваешь, что в принципе можешь выучить то, что обычно требуют в вакансиях, проблем не будет.
>>1494615 я просто не знаю я из тех вкатывальщиков, который вершком по темам любит пройтись.И по сишечки, и по раби, и по fpga темам и linux lf;t сдал на rhcsa. Теперь думаю может фронт начать изучать. 17 в итмо будет еще собрание для курса по фронту( цсс, джскрипт, вуе) и бэку сразу(нода, джс).
>>1494646 Если я тебя правильно понял, то дело не в аннотации, а в том, что в яве ВСЕ методы виртуальные (ну, кроме статических), и именно поэтому не будет "нового" ненужного метода, а и без аннотации все прооверрайдится. Хотя не ебу, может, в шарпе - тоже. И тогда я тебя не понял.
Сап. Есть клиент-серверное приложение, в которое я хочу впилить шаринг файловой системы по локалке. То есть клиент предоставляет свою ФС (read/write причём), а сервер - монтирует её в ОС, на которой крутится. Грубо говоря, должна получиться WiFi-флешка. Естественно нужна кросс-платформа (винда/линукс), но не обязательно без нативных приложений/библиотек - например, каких-нибудь драйверов для создания виртуальной ФС.
Единственная мысль, что пока есть - поднимать на серверной части самбу, и подсовывать каким-либо образом ей файлы клиента, дёргая их по своему протоколу транспорта. Но что-то я подозреваю, что в этом случае мне придётся чуть ли не половину самба-сервера переписывать, да и почти наверняка начнутся какие-то конфликты с системным сервером (а если ФС вытечет в сеть за пределы моего вроде бы достаточно безопасного транспорта - вообще беда).
Выкачивать все файлы с клиента и хранить на сервере - не вариант.
БЛЯТЬ, ДА ЕБАННЫЙ ЖЕ НАХУЙ В РОТ, ПОЧЕМУ НЕТ НИ ОДНОГО АДЕКВАТНОГО ОБЪЯСНЕНИЯ В ТЫРНЕТАХ КАК СОЗДАТЬ ДЖАВА ЕЕ ВЕБ АПП
ЧТОБ ВСЕ БЫЛО АДЕКВАТНО РАЗЛОЖЕНО ПО ПОЛКАМ И ТЕМАМ НА ОДНОМ САЙТЕ
ПОЧЕМУ ПО СПРИНГУ ТАКОГО ДОХУЯ А ЕБУЧЕЕ ЕЕ - ЭТО КАКИЕ-ТО ВЫЖИВШИЕ ИЗ УМА ИНДУСЫ КОТОРЫЕ ПЛОДЯТ ОДИНАКОВЫЕ САЙТЫ С КАКИМ-ТО БРЕДОМ. ЗА 2 ЕБУЧИЕ СТАНИЦЫ ЮТУБА 3 ОДИНАКОВЫХ ГОВНА ВЫДАЕТ. СМЕРТЬ ЕБУЧИМ ИНДУСАМ
>>1496039 Полностью? Нет. А смысл? Тем более, спринг - это только вершина айсберга. Юзать нужно не весь спринг, а то, что реально нужно в данный момент.
Можно ли как-нибудь, динамически найти версию transitive dependency какого-то "A", чтобы поставить эту версию dependency "B"? В грейдле и динамически, ествественно.
У меня есть код: рабочий, на джаве. Дали задание с помощью SceneBuilder сделать для этого кода GUI, можно ли как то это сделать без особого переписывания оригинала?
Аноны! Умоляю вас, объясните тупому мне как создавать ебаные НЕ АБСТРАКТНЫЕ папки и файлы без танцев с макаками и 100500 проверок. В интернете и на этих ваших стековерфлоу нихуя не понятно.
>>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\unchecked 3. Не ответил на вопрос "Какие классы работают со строками?" (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 (ок, предъява по факту, я начал втирать дичь о безопасности) На собесе я тоже честно сказал, что с тредами знаком слабовато. Мне сказали норм, подтянешь по дороге.
>>1497647 >3. Не ответил на вопрос "Какие классы работают со строками?" (stingbuffer, stringbuilder); я их никогда в жизни не юзал, я читал что с какой-то версии джавы помпилятор автоматически юзает стримбилдер при конкатенации,
>>1498112 Да я знаю и про билдер, и про буффер. Просто интересно из-за чего стринг ридонли. Примечательно, что в переопределении equals() в классе String тупо сравниваются length(), а затем toCharArray() со сравнением каждого элементика.
Аноны, помогите, пожалуйста. Хочу добавить кнопку на фрейм, фрейм загружается, кнопка - нет. Ругается на строку new ProgramFrame().getFrame().add(menuPlayButton); и выкидывает нулевое исключение. Что делать, как быть, как фиксить?
>>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# ещё впереди.
>>1499509 Это ты годно спросил, пришлось лезть в вики и узнать немного нового про паттерны.
Общее в них то, что класс использует другие классы для реализации какой-то своей функциональности.
В чём различие:
Каждый декоратор реализует некую конкретную функциональность, которая нужна клиенту основного класса, но в основном классе её реализовывать западло. Например, тебе нужно отвечать в суде, но ты в юридических тонкостях не разбираешься и нанимаешь адвоката.
В паттерне состояние некая функциональность основного класса реализуется по-разному несколькими другими классами через общий интерфейс. Конкретная реализация а) клиенту нахуй не всралась и б) вызывается в зависимости от состояния основного объекта. Тот случай, когда вместо условного оператора используется полиморфизм. Например, если ты нищий байтоёб в НИИ, ты ездишь на работу на метро, а когда тебя берут синьором в Дойче Банк, ты пересаживаешься на хорошую машину.
Прокси (заместитель*) подменяет собой основной класс и в случае необходимости перенаправляет ему запросы клиента. Соответственно, реализует тот же интерфейс, что и основной класс. Например, какая-нибудь кремлёвская служба, отвечающая на письма Путину.
>>1499607 >Например, тебе нужно отвечать в суде, но ты в юридических тонкостях не разбираешься и нанимаешь адвоката. >Прокси (заместитель*) подменяет собой основной класс и в случае необходимости перенаправляет ему запросы клиента.
>>1499612 Разница в том, что прокси реализует тот же интерфейс и может подменять основной класс, а декоратор реализует свой собственный, дополняя основной класс. Простой двачер без адвоката будет мямлить невнятное, не сможет ходатайствовать в правильный момент, и т.п., а Пыня и без своей интернет-роты сможет на любое письмо ответить.
>>1499626 Окей, вроде понял. Декоратор может предоставлять дополнительные методы, и использует функционал внутреннего класса, у прокси весь дополнительный функционал инкапсулирован. А у состояния должен быть какой-то дополнительный механизм для смены внутренней реализации-состояния.
>>1499877 >А в чем смысл указывать точное значение nanos Вдруг, у тебя будет реализация, которая учтет твои наносекуны. Это все зависит от платформы. Про nanoTime() вообще написано This method provides nanosecond precision, but not necessarily nanosecond accuracy.
Аноны, а вы задротите 24/7 курсы, книги и пр? Я могу где-то 5-6 часов, с перерывом, в день эффективно че то делать потом уже начинаю залипать (имеется в виду изучать курс какой-нибудь, пытаться на практике попробовать). Думаю если какая-то монотонная задача - может больше получится. Это как бы норм?
Сап, есть проект где одна из функций выгрузка информации в таблицу эксель гугл етс че почитать или посмотреть на эту тему как сделать грубо говоря мне нужна кнопка которая мои данные сама выгрузит
>>1500098 Во первых сила воли, просто берешь и заставляешь себя дальше работать. Во вторых делай короткие перерывы, что то типо 50 мин работаешь 10 отдыхаешь и снова. В третьих это все индивидуальная хуета, мне первые два помогают, а тебе может нихуя не поможет. Так что может быть норма, может быть нет. а вобще ты не туда написал
>>1500300 не совсем понял, что именно тебе неясно в реализации, но просто загугли библиотеку для работы с эксель-таблицами, а лучше CSV, которые также в экселе можно открывать
>>1500416 да на джаве уже сто лет существуют библиотеки для всех подобных задач. В том числе для парсинга DOM в html при помощи css-селекторов, например
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: Да хуй знает, от тебя зависит насколько ты толковый и умеешь себя продать.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. Если усидчивый, читай книги и делай тестовые задания. В любом случае решать тебе.
https://github.com/qqqlll/Java-Thread/wiki