Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: Да хуй знает, от тебя зависит насколько ты толковый и умеешь себя продать.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. Если усидчивый, читай книги и делай тестовые задания. В любом случае решать тебе.
Анон, подскажи, почему при выполнении компиляции кода System.out.println("Счет:" + addTea); Вместо значения переменной addTea у меня выходит Счет: order.drink.Tea@27973e9b
>>1567242 (OP) Анонанасы, покидайте пожалуйста идей для каких-нибудь проектов, которые потом будет не стыдно залить на гитхаб. Пытаюсь вкатиться в джуна
>>1567344 Перекатываете тред до 1000 постов. Впрочем, судя по активности треда в последнее полмесяца, всем похуй. Ну и ладно.
> Java #15 thread /java/ /java/ /java/ /java/ не нужно копипастить, это добавляется автоматически при добавлении тега. Это я в прошлый раз проебался и скопипастил
> >>1537764 (OP) (OP) (OP) Ну и с этим всё понятно, (OP) добавляется автоматически, поэтому хватит только циферок.
Есть веб-приложение, в нем веб-сервис jax-ws, работает на Томкате. Простой CRUD сервис, принимает xml-ки и по xml-кам генерятся записи в базе MySQL вручную sql запросами. Писал просто руками в NetBeans много лет назад.
Хочу перепилить на Spring Boot (шоб модно, современно), причём так, чтобы вынести модель с логикой внутри в отдельный веб-сервис, так как логика, которая написана в классах модели мне понадобилась для ещё одной поделки. И типа из одного веб-сервиса буду обращаться в другой.
Как вам вообще идея?
Как правильно пишутся такие приложения?
Если бы это не было веб-, я бы наверное сделал либу .jar, куда запихал бы классы модели с логикой внутри и подключал бы этот jar и в сервисе и в другой поделке. Но тут веб и я не особо понимаю как вся эта херовина явовская работает.
И второй вопрос к Ява господам. Если я работаю с чужой базой, где не пахнет нормализацией, внешними ключами и прочим, на сколько безопасно с такой базой пользоваться какими-то ORM-ками? Мало ли что там эти ORM-ки по-умолчанию наделают, я как-то очкую.
>>1567725 >я бы наверное сделал либу .jar, куда запихал бы классы модели с логикой внутри и подключал бы этот jar и в сервисе и в другой поделке Вот так, скорее всего, лучше и сделать. Веб это не запрещает. А дробить на отдельные сервисы, просто потому что можешь, это так себе идея. Только когда будешь сам хорошо понимать, зачем тебе это нужно и чего это будет стоить.
>Если я работаю с чужой базой, где не пахнет нормализацией, внешними ключами и прочим, на сколько безопасно с такой базой пользоваться какими-то ORM-ками? Не важно чья база. В любом случае с ORM надо работать так, чтобы никакой непонятной магии без твоего ведома к БД не применялось. ORM позволяет не писать запросы руками, но при этом ты должен все равно сам понимать, какие запросы в какой момент выполняются. Если пока не понимаешь, лучше сначала изучи инструмент получше, чья бы там ни была БД.
Можно ли как-то сжать изображение до конкретной ширины/высоты в пикселях? Мне нужно нейронке скормить изображение с камеры смартфона, а она принимает только массив чисел 28х28.
>>1567242 (OP) Что делать, если каждая вакансия для моего стека это настраивание маппингов в хибернейте (буэээ), ковыряние ебанутых багов энтепрайзных фреймворков (вуэээ) и клепание фабрик одиноких весенних бобов СервисЫМПЛ экстендс Сервис? Платят за разгребание этих помоев - хуй да нихуя. На собеседованиях ебут задачками с литкод, а после заставляют пахать по 14 часов в день.
С чего лучше начинать новичку: Spring или Spring Boot? Кто-то говорит, что лучше со Спринга, а потом Бут, дабы понимать, что Бут скрывает от разраба. Но также я читал, что документация Бута все подробно разжевывает и ссылается на документацию Спринга. Ваше мнение?
>>1568167 Ты просто вакансии не умеешь искать. На жабе тоже много чего интересного поделать можно. Конкретно смотри в сторону хайлоада (например). Хадуп вот это все
Ну что ж, надеюсь, что не дропну. Предложили знакомые на джуна вкатиться и поднатаскать на собеседования. Полистал сегодня книжки. Какой же кайф читать. Особенно когда понимаешь мелочи. Ни каких тебе опечаток или перепутанных глав. Есть вообще советы по хорошему методу чтения книг по языку? кроме как писать больше кода
Аноны, постепенно скатывался в Java Core, научился основам (Stream API, Java Collections Framework, немного по потокам) и вот встал вопрос, куда идти дальше. В Java, как я понял, 2 дороги - Enterprise и Android (с последующим перекатом в котлин). Мне интересно и то и другое. Поэтому хотелось бы узнать от вас плюсы и минусы данных направлений. Знающие ребята, оцените Enterprise и Android по 3 критериям (от 1 до 10):
1. Насколько легко вкатиться джуном.
2. Перспективы (Не сдохнет ли кто-то из них и не выльется ли работа со стеком в пердолинье с легаси говном лет. Наверное на Enterpise мужики еще под 4 или 5 джаву пишут чтобы поддерживать старые проекты.)
3. Интересность (лично для вас). Расскажите какие проекты у вас были, чем именно занимались и т.д.
Допустим вы могли бы написать самому себе в начале обучения языку куда идти и что делать. Что бы вы написали? Помимо "купи биткойн, не иди в джаву" и т.п.
Пожалуйста, прошу отнестись к этому максимально серьезно, ведь я не просто так позволяю анонимам с оранжевого сайта решать свою судьбу. Скажите что андройд заебись, пойду туда, нет, так буду на спринге приложеньки писать. Добра.
>>1568548 Мысль дельная, но не хотелось бы убить кучу времени в обучение Spring + Hibernate чтобы джуном вкатиться, а потом понять что это не моё. Как мне кажется в Android порог всё же ниже (так как там меньше всяких фреймворков да и старые версии тупо не поддерживаются), наверное стоит начать с андройда, если не понравится, то идти в энтерпрайз. Хотя, возможно, я заблуждаюсь.
>>1568543 Недавно создавал почти такой же тред. Аноны убедили, что андроид дев все же лучше, и я уже был готов вкатываться, но потом передумал из-за формошлепства и привязанности к ос, да и вообще программирование мышкой не по душе пришлось. В итоге, вкатываюсь в java ee. По твоему вопросу: 1. В ад порог намного ниже; 2. Никто не сдохнет, в ee легаси много, но в этом ничего страшного нет; 3. Лично я думал, что ад будет для меня интереснее, но оказалось наоборот. Серьезных проектов пока не имею. Ну а вообще, что то, что это - сорта говна.
Вкатился в кровавый прошлым летом. До этого был опыт преимущественно в байтоёбстве 7 мес. + 6 лет учёбы. Как результат, на момент ухода из байтоёбства з/п была 37к, сейчас 90к. Не утверждаю, что в дроид дев такое невозможно, просто факт. Сорта-не сорта, но денег тут хватает. Работа в целом интересная и пока не надоела. Многое, конечно, зависит и от проекта, и от коллектива в целом, и от технологий на проекте. Верно сказали, что пока не попробуешь - не узнаешь. Я и в гей-деве был пару месяцев, и байты ксорил на железе, и на питоне скриптики писал. Java + Spring пока самое интересное, что со мною случалось. Не бойся "проебать" год на другие фреймворки, бд, языки. В ИТ любые знания важны, чем шире кругозор - тем больше ты ценен как специалист. Мне недавно на работе сказали - "О, ты ещё и верстать умеешь?!?" ... как-будто это что-то капец сложное и невероятное для джавера нашего времени.
По поводу "насколько легко вкатиться" - просто не сцы. Я залетел со схожестью стека ~1% (Git) и ничего, потянул. Всё равно твои первые задачи будут а-ля "иди подотри говно за тем мидлом, а то у него чёт сломалось" или "напиши эту монотонную повторяющуюся херню, которая сбилдит всю нужную конфигу, т.к. всем остальным лень". И так будет ровно до того момента, пока ты сам не скажешь "Так, блять, я вообще-то программировать сюда пришёл. Дайте норм задачу, желательно сложную." Главное не делай этого на самом старте, т.к. говно энивей кто-то должен поубирать. С этого момента тебя начнут уважать, если справишься конечно. Далее можно уже просить надбавки/повышения и прочее-прочее.
В общем как-то так, немножко своего жизненного опыта тебе для размышлений.
Анон, можешь немного прояснить по поводу хэндлинга исключений в рест сервисах. В книжке предлагается вместо простой установки статус-кода ответу кидать исключения, и потом костылить методы-обработчики, контроллер-адвайсы и т.д. Есть ли в этом какой-то смысл? Почему не ограничиться установкой статус-кода и возвратом ответа напрямую из контроллера?
Может, мне просто так хотят ненавязчиво показать эти механизмы обработки, чтобы я просто знал, что такие есть?
>>1568347 >Ты просто вакансии не умеешь искать. 99% всех вакансий на HH - это помойный энтерпрайз или андроид разработка. Остальной 1% - это конторы с зубодробительными собеседованиями по типу Дойче, Яндекс и прочих ГридГейн. Туда берут исключительно олимпиадников и прочих умненьких школотронов.
>>1568501 Ещё есть метод читать несколько разных книг на одну и ту же тему. Если из прочитанной книги в голове остаётся только малая часть, то каждая следующая дополняет твои знания.
>>1568977 Ну хуй знает. Я осенью подавался в пяток хороших продуктовых контор, не "компаний мечты", но интересных и с плюшками. Интервью были вполне человеческие, почти без кодинга на бумажке и олимпиадных задач уровня хард.
>>1568993 >Интервью были вполне человеческие, почти без кодинга на бумажке и олимпиадных задач уровня хард. Звучит как фантастика. Что хоть за компании были?
>>1569011 Ищите да обрящете. Все как одна "западные" компании, созданные выходцами из России, где и сидит вся разработка. Используя Glassdoor, Хоху и интуицию, можно за вечер подобрать с десяток хороших мест в моём городе (ДС2), без тырпрайза, бинарных опционов и ИП Ерохин И.А.
>>1569040 >Все как одна "западные" компании, созданные выходцами из России Ну так сюда как и попадают ДжетБрейнс (Чехия), Яндекс (Нидерланды), ГридГейн (США). Видимо я просто не правильно ищу. Ладно, проехали...
Может кто подкинуть эталонное веб-приложение на сервлетах с jsp (ну чтоб авторизация, кабинет и какие нибудь действия от юзера)(желательно с sql)? Или тутор как его спроектировать? Или чтоб в книге по шагам было расписано. Или хотя бы диаграммы? Я вроде уже вкурил что тут происходит, но вроде у меня гавнокод получится, не могу до конца в архитектуру, и в уловки. То что я находил вызывает у меня подозрения что это гавнокод.
>>1569129 А если JSP с кастом тегами? Классика энтерпрайза, говорят. Я другой анон, но двачую реквест. Для спринга, к примеру, есть эталонный проект Pet Clinic.
>>1569150 Так оно вам нафига, именно на голых сервлетах и jsp? Но если очень надо, берете какой-то спринговый пример и переделывайте в лоб контроллеры на сервлеты. jsp используйте тоже как в спринге - только для отображения данных, которые уже в подготовлены в сервлете.
>>1569158 Хочется не бездумно бобы гонять по инструкции, а, как ты, понимать суть происходящих внутри процессов. Тот же спринг лично для меня всё ещё похож на какую-то магию: "дети, это невозможно понять, это нужно запомнить". Что такое DI и IoC вроде в общих чертах понятно, но на простых примерах всё это выглядит избыточным.
>>1569076 По архитектуре советую почитать Patterns of Enterprise Application Architecture Фаулера. Там он поясняет про типовые архитектурные решения, что такое эти контроллеры, сервисы и прочие репозитории, и зачем они нужны.
>>1569336 Ставиться будут, скорее всего, жарники. Почти наверняка с ними будет идти какой-нибудь запускатор на баше/cmd со строчкой типа "java -jar /path/to/awesome-package.jar". На линуксе этот запускатор ляжет куда-нибудь в /usr/bin. Ну или, если source-based дистр, докачается jdk, а вместо жарников будет архив с сорцами, который тупо соберётся в жарники, а дальше предыдущий пункт.
В этом всём нет ничего удивительного, многие утилиты вот на питоне пишут, и они тоже ставятся почти аналогично.
>>1569308 Все прекрасно, но при чем тут конкретно сервлеты и jsp? Если хочется разобраться со спрингом, нужно использовать спринг. Хочешь сделать веб-приложение на джаве, но без избыточного спринга? Возьми, например, javalin.
Есть способ суммировать true в Жаве? Ну там, есть сколько то чисел. Если хоть одно из них такое-то - верните true. И вместо того, чтобы ставить бесконечное || просто суммировать, мол "true - это единица, а значит её можно приплюсовать". Ну и в варианте, если нужно вернуть количество подходящих чисел, чтобы лишним не ебаться.
Вообще есть какие-нибудь книги по проектированию веб-сервисов?именно API. Желательно чтоб был жирный раздел про REST Хотелось бы почитать про какие-нибудь стратегии, а то всё-таки когда начинаешь с нуля проектировать сервис слишком много думаю о том как лучше сделать.
Почему *Utils классы и классы, содержащие только набор констант объявляют как обычные классы с конструктором, выбрасывающим исключение, а не как абстрактные классы? Тогда ведь защита от инстанциации будет на уровне языка.
>>1569606 >хотя мне похуй И правильно. Нет большого смысла в этой защите от инстанциации. Но вообще абстрактный класс позволит создать экземпляр производного класса.
>>1569659 Я с 25-ти. Сейчас 29. Уже смог подняться с уровня "о, погромирование! че-то далекое, но можно попробовать. а что такое ООП?", до "пожалуй, вэбом больше заниматься не хочу".
>>1569758 Возможно я не так выразился: у меня нет дизайнерской жилки, чтобы заниматься html/css/js, И Я КЛЯНУСЬ БОГОМ ЧТО УБЬЮ СЛЕДУЮЩЕГО ЧЕЛОВЕКА КОТОРЫЙ МНЕ СКАЖЕТ, ЧТО ВСЕ ДОЛЖНО ВЫГЛЯДЕТЬ "ВКУСНО"!
>>1569763 В теории - да. На практике, нужно мириться с цыганским вкусом незнакомых людей, которым желтым по зеленому - ебать, какая цветастая красота. Короче, мне это просто не понравилось. Пусть другие люди на этом зашибают по 300к в наносек.
Сейчас на работе ковыряю автотесты на Питоне, но хочу попробовать вкатиться в погромирование по-настоящему.
>>1569771 Странно, ведь в энтерпрайзе жабник не должен париться над вкусной версткой, максимум - сверстать пару дефолтных кнопочек. Или я чего-то не знаю? Мне так-то тоже верстка не по душе.
>>1569787 Ну я работал в конторе, где вставлял на сайты скрипты и ковырял пользовательские сайты за мелкий прайс. Там нужно было со всем этим говном ебаться, ну и да, JS же ДОМ должен править.
>>1569783 Мда. А я тогда гуманитарное образование получал...
Делаю пет проект на Spring Boot - Web. Хочу сделать REST api, и к нему клиент на React. Имею вот такую структуру проекта - пикрил. Тоесть файлы фронтэнда лежат в ./main/src/webapp/ . При попытке собрать проект мавен добавляет все файлы из webapp/ в target/classes. Я же хочу, чтобы в target пошел только бандл, собранный вебпаком, а не исходные файлы вместе с npm модулями. Из за всех этих файлов время билда просто огромное.
Пик 2 - что получается при компиляции
Подскажите, плиз, как исключить из target все не нужное?
>>1570147 Можно через maven-frontend-plugin собрать в какой-нибудь произвольной папке, из которой мавен сам ничего не копирует, а затем через maven-resources-plugin скопировать содержимое build в target/classes/public.
> билдера запросов нет Билдить-то и нечего. Тупо выбираются все записи из таблицы. Ни опциональных блокировок, ни десятка меняющихся фильтров, ни подзапросов, ничего нет.
> возможно даже с помощью конкатенации Пиздец. Даже в низкоуровневом JDBC есть тривиальный PreparedStatement, но кто-то и его не осилил.
>>1570185 >Билдить-то и нечего. Тупо выбираются все записи из таблицы. Ни опциональных блокировок, ни десятка меняющихся фильтров, ни подзапросов, ничего нет. Ну это только в данном куске кода. Это же не вся картина
>Билдера нет. На сколько мне известно, в Java есть несколько специальных методов в java.sql.Statement для этой задачи (экранирование). Только вот какие - не знаю.
>>1570186 Хз, одни какие-то озлобленные уебаны, судя по комментариям. Всегда неприятное чувство после посещения остается, как будто в обосранный толчок пришлось сходить.
>>1570160 Расскажешь подробнее, пожалуйста? Тоесть фронтенд будет лежать в папке с остальным проектом, на том же уровне, что и pom.xml, в какой то папке, к примеру /frontend/, затем frontend-maven-plugin собирает его, используя вебпак, а maven-resources-plugin включает нужній мне бандл в билд, так?
>>1569827 >именно поэтому сам перекатился из джавы в ios Анон, расскажи, пожалуйста, как оно? Что больше нравится? Сам сейчас стою на пути выбора: либо энтерпрайз жаба в зеленом банке, либо идти в iOS разработку (благо друг крепкий мидл, сможет держать по нужному курсу).
>>1570336 вкат довольно тяжелый, как мне показалось, но благо были задачи, которые мне предложили сделать (допилить приложуху для бизнеса, до этого пилил на джаве как раз серверную часть) как по мне, джунам вкатиться реально сложно,но, если у тебя есть знакомый, то однозначно рекомендовал бы
тусуюсь во въетнамах, таях, бали и мне доставляет намного больше
в джаве получал 130, сейчас около 200-250 - сколько задач успею сделать
>>1570343 Благодарю за ответы! Ну а конкретно о самих задачах хотел узнать: Понимаю, что я, наверное, могу бредовый вопрос задать, но даже тут часто вижу споры о том, что якобы есть программирование серьезное (типа того же бэка на яве для бизнеса), а есть формашлепство на фронте (те же мобилки, как я понимаю, это тоже фронт по большей части, в эпоху веб-сервисов). Мне, на самом деле, важна не только предполагаемая возможная ЗП, но интерес к самой предметной области задачи, отсюда и вопрос. Так вот, не ощущаешь ли ты какого-то даунгрейда в интересе к самим задачам, а также их значимости? Я вот, например, уже эплоёб со стажем, хорошо знаю и имею интерес к самим системам iOS/macOS, хорошие решения в UI/UX уже как-то осознаю на интуитивном уровне, применительно к этим ОСям. Но в то же время понимаю, что, наверное, весь самый "сок" и весь "бизнес" идет в бэке, где проектируют и пилят сами веб-сервисы, их логику. Да и общий тренд на услуги как it-сервисы сейчас актуален во всём мире. Вроде пока с изучением программирования сложностей не имею, но всегда так же был интересен и сам бизнес, а не только сухая тех часть хотя это тоже достаточно интересно всё. Почему то для себя думаю, что в бэке ты к нему как-то поближе, что ли. Поэтому хотелось бы услышать твоё мнение, как уже опытного прогера.
>>1570510 В общих чертах, именно мои задачи действительно сводятся к тому, чтобы пользователь видел удобный интерфейс. Но как раз у меня получается полный цикл от сбора требований у пользователей, до написания с последующей визуализацией. Интерес не пропал, потому что мне доставляет то, что пользователи (коих больше 8 тысяч в компании, ключевых-около тысячи) пользуются приложухой повседневно для решения проблем. Поэтому, как понимаешь, у меня работа и аналитика и разработчика и поддержки и всего сразу. Вообще, не могу назвать себя ОПЫТНЫМ, просто мне дохуя повезло, что есть богатый заказчик и знакомая рп, которая как раз тащит заказчика, предложила мне перейти в ios, поучить дома пару месяцев азы и начать допиливать приложуху
>>1570520 > WORA Который можно отнести не только к жабе, но и к питону/пхп/руби/etc.
> в век докера Раньше приходилось везде тащить виртуальную машину, теперь приходится тащить докер. Кроме того, что на десктопе докер неприменим, а на винде ещё и работает через жопу, мало что изменилось.
> Кроме того, что на десктопе докер неприменим, а на винде ещё и работает через жопу
У меня есть рабочий комп, не важно на какой системе. На рабочем компе стоит виртуалка Linux. В эту виртуалку проброшена (замонтирована) shared папка, где у меня лежат исходники На виртуалке работает докер, где я запускаю всё что мне надо А на рабочем компе у меня открыта IDE через которую я редактирую код Я отредактировал код и тут же посмотрел как он работает, выполнив команды на виртуалке
При этом мне: 1) Без разницы какая система у меня на рабочем компе 2) Без разницы какой дистр и софт на виртуалке, от неё мне нужен только докер и проброс папки
>>1570709 Скажу, что пытался у себя сделать то же самое, но столкнулся на семёрке со следующим: - нужно качать легаси-версию, современная есть только для десяточки. - проброс портов приходится делать вручную через настройки виртуалбокса, флажок -p сам ничего не делает вопреки тому, что сказано в мануалах; - тома отваливаются, и ничего с этим не сделать. На хосте кидаешь файл, на виртуалке он не появляется. Или иногда появляется. Или передача файлов может работать в одну сторону. В общем, нестабильно. Когда гуглил, видел на гитхабе задизлайканый пост от разрабов, которые отказались это чинить.
Может, на десятке всё работает. Но нахуй мне это всё тогда нужно, если JVM работает и без этого даже на XP? Может, винда вообще не нужна, потому что нужно использовать лялех. Но тогда не надо гнать на "WORA в эпоху докера".
Потихоньку вспоминаю\доучиваю хортсмана. Дошел до стримов. Не совем понимаю, когда мне нужно юзать методы фильтрации\сортировки и т.п. стримов и это даст офигеть какую выгоду, а когда достаточно методов коллекций. Я как-то раньше без задней мысли только коллекциями и пользовался.
>>1569541 >>1569827 А этому есть какое-то объяснение? Я просто помню как-то видел несколько штук вакансий именно классический стек а-ля java + spring + postgres УДАЛЁННО! И видел так же на го и пайтонах удалённые вакансии на бэк. Но при этом часто слышал мнение, что удалёнку на жаву бэк хуй найдёшь, а вот когда разговор идёт о го\пайтоне\любом_другом_яп - эт пожалуйста. Бля и чё теперь го начать активнее изучать?! Хочу удалёнку + бэк!
Сап джавач В общем суть. Может кто сможет подсказать. Есть два файла. Один в zip архиве, другой просто лежит рядом. Надо сравнить одинаковые они или нет. В данный момент я читаю файлы побайтово и сравниваю полученные строки. Получается очень долго. Если файл весит пару мегабайт, может получится несколько минут. Я вижу два варианта. 1. Пробовать читать буфером. Но я не могу найти как читать ZipEntry в буффере. Во всех примерах дают чтение по битам. 2. Как-то быстро сгенерировать хэш. Но я так понимаю для этого всеравно необходимо сначала прочитать весь файл. Есть идеи?
>>1571531 ZipInputStresm в Buffered InputStream заверни. И сравнивай сразу блоками по несколько байт, Arrays.compare или вроде того. > хеш Да, всё равно нужно считать, но тут ты сразу читаешь блоками, ибо так удобнее и при этом сравниваешь только хеш-сумму в конце. Возьми sha256. Тот crc, что уже есть в zip, плохо подходит для сравнения файлов.
>>1571539 Ты имеешь ввиду ZipOutputStream в BufferedInputStream наверное? Главное чтобы можно было взять конкретное entry. Файлов может быть несколько. Попробую. Спасибо.
>>1571409 Осталось ещё найти способ магически влиять на часть от которой процент берется, а пока тебе придется смотреть на конечные цифры, а не абстрактную пропорцию.
Просто идет укрупнение рыночка и стопицот велосипедных крудов востребованы всё меньше и меньше, поскольку всё меньше и меньше клиентов с нестандартными бизнес-задачами, которых бы не покрываел условный 1C.
Кто успел вкатился во первой половине десятых в сап нетвивер и хану и завел трактор.
>>1570742 >Ремоут дебаг и пробрасываешь порт через докер и через виртуалку У меня такой конфиг, да. Очень удобно было до тех пор, пока ресурсов хватало на запуск нашего проекта на локальной машине, а потом он неприлично разжирел.
>>1571806 salesforce как вендор хорош есть еще и sap облачный только тут привязка к специфике бизнеса и языкам, которые только в этих платформах (за исключением всяких груви, джав и жсов в сап)
>>1567242 (OP) Господа, 2 года работаю Го девом полет нормальный, но я понял что жаба, например перспективнее го. Ну вот например: 1/ жаба сложнее 2/ на жабу больше вакансий
Есть у кого кейсы смены стека в таком виде ? Или придется с самого начала подниматься ?
>>1572137 Троллишь? На го с руками отрывают и кучу денег дают. Разве что ты считаешь джаву более "серьёзным" языком и переживаешь по этому поводу (см. комплекс фронтендера). Готовься ощутимо понизить себе зарплату на ближайшие пару лет.
Аноны, нуб в треде. Хочу написать простое веб-приложение (форму регистрации). То есть два поля на сайте пароль и почта, нажимаешь зарегистрироваться и они улетают в SQL базу. Я правильно понимаю, что мне для этого достаточно JDBC и сервлетов? Сейчас ищу гайд в интренетах, если вы мне что-то платиновое кините буду благодарен.
Тоже вопрос по книге, но нубский. Везде советуют для новичков книгу head first java, она вообще нормальная? 2012 год это не слишком старая? Или есть что-то лучше? У меня совершенно случайно оказалась бумажная Философия Java, но полистав её я понял, что она точно не для новичков.
>>1573483 hyperskill.org попробуй. интерактивный туториал от jetbrains. я щитаю, что если совсем нулячий, то книги читать - это такое. но, если очень хочется читать, то хорсмана core java первый тома потом второй
Подскажите оптимальный вариант, чтобы отрендерить html страницу в приложении и запустить сервер с этой единственной страницей и 2 файла css и js. Любой микрофреймворк мне кажется диким оверхедом для этой задачи, запись в сокет кажется слишком низкоуровневым ковырянием. Короче я в тупике.
>>1573500 Точно, совсем забыл о ней, читал книгу по Скале из этой серии. Спасибо. >>1573476 >java puzzlers Бегло посмотрел - выглядит весьма интересно, благодарю. >>1573483 >head first java Ищи то, что подойдет именно тебе, чтобы не забить на неё после прочтения первых нескольких страниц. Полистай разные варианты, чтобы примерно прикинуть стиль изложения материала. Но не трать слишком уж много времени на поиск, идеальную книгу не найдешь - просто обращай внимание на достоинства и недостатки. >2012 год это не слишком старая? Нет, не слишком, особенно при отсутствии базовых знаний.
Почему джава не проверяет в compile time, что массиву передали отрицательную длину new int[-1], но зато проверяет, чтобы не больше, чем Integer.MAX_VALUE, даже еще чуть меньше. Это так сложно проверить на < 0 ?
>>1573577 В ней нет многих элементарных вещей. Например, нет перегруженного Random метода, который бы возвращал рандомное число из диапазона, вместо этого приходится писать random.nextInt(max - min) + min.
>>1573673 Слышал про этот класс, но не знал про метод. Ну все равно как-то странно, чтобы выполнить такое же по смыслу действие, надо обращаться к совершенно другому классу.
>>1573847 > Любой микрофреймворк мне кажется диким оверхедом для этой задачи В джаве о таком не задумываются, расслабься и возьми спринг бут. Или возьми другой язык, к примеру, Python+Bottle.
А что с этим не так? list.forEach(x -> x instanceof HalfOfCivic ? дейстие 1 : действие 2); В итоге на все после ? срет "ожидается выражение" list - ArrayList содержащий объекты родителя и наследника.
>>1574470 Слыхал, в этом и смысл провреки, не? Я не один и тот же метод зову в случае условия, метод наследника не имеет переопределяемого метода в классе-родителя. >>1574472 Это же не стрим, а коллекция.
>>1574475 В довесок, что именно я пытаюсь привести к лямбде for(Civic civic : list){ if(civic instanceof HalfOfCivic){ ((HalfOfCivic) civic).casting(); } else { civic.getWheels(); }
>>1574475 ну так сделай шоб без проверки ёпта. ебани в супер метод типа doStuff(){ действие 1 } переопредели его в подклассе и ебашь list.forEach(item -> item.doStuff())
>>1574479 Дальше - больше! public class QuarterOfCivic extends HalfOfCivic{ public void kukareku(){ super.kukareku(); } } >>1574480 Как сделать с полиморфизмом мне более чем ясно, а без него никак? >>1574481 Не совсем понял, но я же не смогу вызывать у Civic.casting(), .т.к. метод есть только у наследника? Как без условия?
>>1574494 Чел, я не пытаюсь выставить это как бест практис, я пытаюсь понять как в конкретном приведенном примере это сделать. С пиздецом - пройдись к Хорстману на 220 страницу.
>>1574499 > -> { Ах ты ж сука, не додумался блок открыть, спасибо. >>1574501 Не сомневаюсь, что с точки зрения ирл приложения оно так и есть. Я пытаюсь всеми способами извратиться, чтобы закрепить. Но просто для примера, пусть у тебя будет родитель Х и наследник Y, у Y есть свой уникальный метод, при этом есть коллекция обоих классов. Как тогда ты предлагаешь вызывать уникальный метод Y при обходе коллекции?
>>1574510 Ты предлагаешь сделать переопределнный билд метод для обоих классов? Да это я понимаю и могу, вопрос был как сделать в описанных условиях. Я так-то говнокожу эпизодически с пару лет, но вот дошли руки засесть за учебник и пробую всякое. Так-то я в жизни бы сам не дошел к вышеописанному решению, но не уверен, что это потому что я такой охуенный, а не вопреки незнанию что можно делать иначе чем полиморфизмом.
>>1574509 Это часть языка, и не важно, устарела она или нет. На джаве придётся не только писать новый код с нуля, но и поддерживать старый, с instanceof, Checked Exceptions, StringBuffer, Vector, Enumeration, List из обжектов и EJB.
Ситуация. Достался в поддержку проект, связи с прошлым разрабом нет. В проекте есть множество контроллеров с API. И если на все /read логично сделаны get-запросы, а на все /create - POST, то на /update и /delete тут тот же POST, вместо PUT и DELETE, соответственно. Есть ли у кого мысли, почему так сделано? Разраб вроде толковый был и не похоже на обычный проеб
Ну скажем так, подходы к многопоточности и масштабированию со времен актуальности RMI успели уже больше 10 раз поменяться.
Уже и EJB успели и похудеть и сдохнуть, вместе с самим EE стандартом, уступив место весенней велосипедной хуитке про то же самое, успели сдохнуть и вебсервисы, и JMS, и даже сами сервера приложений. Успело попасть в относительно не модный мейнстрим и REST API, сейчас там уже GraphQL в моде.
>>1575086 Смотря когда был написан проект и кем. Я видел такое, когда API писалось людьми, которые оч давно в джаве, еще до повального рестоебства. Логика простая - нужно тело - post, не нужно - get. Если ты задумал переписать, упаси тебя Гослинг, перекраивать существующий API. Пиши рядом новый.
>>1575147 У нас юзается, потому что когда-то под это был написан удобный и простой фреймворк. Хотя при этом проекты современные и хайп-поебени там достаточно. Просто это настолько просто конфигурится с этим фреймворком, что никому особо в голову не приходит от этого отказываться
>>1567242 (OP) Допустим у меня есть сет объектов у каждого из которых есть поле name и метод getName(). Как мне эффективнее всего создать сет имён всех этих объектов?
>>1569862 Если у тебя чисто отдельный сервис и дальше никуда этот респонс никуда не проксируется, и не обрабатывается, то тебе в принципе можно положить болт и просто слать json со статус кодом. Типа, зачем пилить ради того, чтобы пилить. А вот если это прокси, то тогда нужно. Потому как у тебя и метрики будет проще получать каким-то micrometer да и гибкость обработки ошибок увеличится в целом.
>>1575683 бля, ебани ты ноду приватным нестед классом с свой лист и не еби голову вот этой хуйней Node tmp = ptr.getLinkNext(); ptr.setLinkNext(nptr); nptr.setLinkPrev(ptr); nptr.setLinkNext(tmp); tmp.setLinkPrev(nptr);
Что значит разомкнутый неупорядоченный список? У него не должно быть максимальной заданной величины, а операции по добавлению и удалению элементов выполняются не с помощью позиций/ключей?
Анон, можешь прояснить немного по поводу понятия текущей сессии в Хибернейте. Правильно ли я думаю, что при создании сессии фабрика её прогоняет через CurrentSessionContext, и при вызове getCurrentSession фабрика тоже обращается к нему? И при закрытии тоже... По-моему, я не совсем понимаю, как это происходит.
Есть два файла на 500к+ строк. Аргументы строк разделены запятыми, но сами аргументы могут быть в разных форматах, например value + prefix или в обратном порядке, но все ещё ограничны запятыми с 2 сторон. Нужно сматчить. Как я думал сделать: 1. читаю файл №1 в стрим, перебираю построчно сплитю по запятой и дальше уже привожу к единой форме, чтобы порядок полей был всегда префикс + значение и пишу в лист тот же. Затем делаю аналогичную операцию для файла №2 и затем перепопределенным компаратором сравниваю вхождения элемента одного аррея в другой(или делаю ремув алл чтобы найти остаток). Где проебался?
>>1576616 555155, Хуйловская область, Куколдский район, с. Белое Озеро, ул. Озерская, д. 1666
У 2 файла например может не быть ни индекса ни области, вместо "д. 1666" может быть просто "1666", вместо "ул. Озерская", "Озерская ул.". + бывают разные префиксы кроме ул. всякие там пер. прзд. но они хотя бы между двумя файлами совпадают, но могу быть как и в примере выше\до после.
>>1576666 Что пишем? Например, систему какого-нибудь учёта банковских ценностей. Тётенька вводит в программке, что такой-то хуй принёс столько-то налички и жмакает "сохранить", а на сервере выполняются какие-нибудь проверки, что-то сохраняется, что-то отправляется в другие системы, что-то логгируется и т.д.
>>1576691 Там что угодно может быть. Отдельный экзешник, написанный на чём угодно, хоть на либах, умерших 20 лет назад. Ужас в духе Web 1.0, с минимумом стилей и JS, но почему-то работающий только в IE. Современное красивенькое веб-приложение на реакте. Чего только не бывает.
>>1576778 потому что с 9 жабы ты можешь ручками собрать нужный рантайм энвайромент и не тянуть лишнее говно для прилаги, которая всё это говно не юзает.
В Жабе мне всё нравится. Потихоньку вкатываюсь. Уже нарисовал себе картину как в опенспейсе на кровавом энтерпрайзе удивляю всех эклипсом выключенным клиртайпом в интеллиж, но вот никак не додумаю: знающие аноны, чем ещё можно заняться с жабой, если не ёблей с энтерпрайзом? Геймдев не в счёт.
>>1576834 Ыыы, больше фреймваркав, позволяющих писать вообще всё в одно длинное выражение, чтобы максимально приблизиться к макакаскриптному callback hell.
>>1576952 вот кста тоже нипанятна, хуле это все одобряют/смиряются, это жи хуета какая-то, и в плане логическом, и в плане возможной оптимизации мимо вкатывальщик
>>1577210 Если большинство что-то называет энтерпрайзом, то это, видимо, энтерпрайз. Я ни разу не слышал, чтобы тупой сайт-визитку на пхп называли энтерпрайзом, и вряд ли он таковым станет, если будет написан на жабе. Но бекендом это назвать вполне можно.
Я сдаюсь, как грамотно сделать сервлете один сервлет-контроллер откликается на /* ну допустим я принимаю команды из атрибутов, а если пользователь пошел напрямую на разрешенную ему jsp? Мне парсить все запросы в контроллере, или где то в фильтрах проверять можно ли ему туда ходить? Как сделать что не выглядело как говно? хуле нигде нет нормального примера как делать?
>>1577310 1. Если компания не очень большая, это уже не энтерпрайз? 2. Если это не софтина для автоматизации труда тёти Клавы, а, к примеру, сервис вроде яндекс-денег, это не энтерпрайз?
>>1577251 ну это и сделал, но тут понимаешь,контроллер получается должен парсить каждый адрес из запроса, иначе он не узнает на какую страницу перенаправить, и еще он должен действия обрабатывать, а это уже 2 функциональности разные, я вот думал форвардить в фильтрах (тогда они в сессию будут лазить, форвардить и ток часть запросов пропускать), крч я могу ток говно сделать
>>1577406 Хочу запилить небольшую библиотеку, а тут надо отдельно ставить R, как я понял, это не то. >>1577413 Какой-то стремный синтакс у него. Я пробовал Renjin, он подключается как джавовский ScriptEngine, что гораздо удобнее. Но тянет за собой многовато зависимостей, плюс для него не все R-овские пакеты доступны.
>>1567242 (OP) Двощ, подскажи, как поставить intellij idea без мокрых писек? Нигде не могу найти ключи, только этот сомнительный crack суют. Как активировать "идею"?
Есть библиотека с коллекциями, индексируемыми long индексами, чтобы можно было иметь более чем 2^31 элементов? Особенно интересуют ArrayList и BitSet с long индексами.
>>1578587 Я проверял. Массив из 10 BitSet-ов на 10^9 элементов занимает 1.2 гигабайта. Там внутри массив long-ов, в каждом long-е хранится по 64 битовых элемента. Значения устанавливаются и читаются через побитовые операции. Так что оверхеда нет.
>>1578618 В long 64 бита. Если рассматривать каждый бит как булевское значение, то long это компактный аналог массива boolean[64]. Если ты захочешь установить значение 5-ому биту long-а, то сделать ты это сможешь только через побитовые операции с маской. boolean[64] arr; long word; ... long mask = 1 << 5; word = word | mask; // аналог arr[5] = false word = word & ~mask; // аналог arr[5] = true
Это идет с уровня процессора. У процессора обычно нет команды "установить i-ый бит", он умеет работать только с ячейками памяти 1 байт или больше. Установить 5-ый бит можно только через побитовые операции с маской.
>>1578692 Ну допустим представлять сет натуральных чисел от 0 до 10^9. Если в таком сете много элементов, то BitSet будет занимать меньше места, чем HashSet<Integer> и операции объеденения, перечечения, добавления, удаления элементов будут работать гораздо быстрее.
>>1579132 Сам язык может и на плюсах, но стандартная библиотека почти целиком на джаве, кроме нативных методов. > асме Я не шарю во всех этих JIT'ах, с этим пусть плюсовики ебутся, но как я понял по исходникам, они напрямую генерят машинный код и сразу же его исполняют.
Читаю руководство Шилдта, насколько глубоко надо задрачивать теорию? Достаточно прочитать пару раз тему, понять ее и написать пару кодов? Или надо на зубок знать все понятия и термины?
>>1579703 Достаточно один раз прочитать. На практике что-то используется часто, и придётся не раз перечитывать, что-то не используется вообще. Термины пытайся запомнить, это в дальнейшем поможет гуглить, но не задрачивай.
>>1579716 Представляй, что ты на собеседовании и рассказывай вслух самому себе то, о чем узнал. Например почему String str = "foo"; (str == "foo") //true
>>1579792 Нет, надо. Через равно сравниваются ссылки на объекты, посимвольное сравнение строк по-прежнему через equals. А true там по другой причине. Строковой литерал "foo" сохраняется один раз, и везде, где в коде встречается "foo", будет ссылка на один и тот же объект. Поэтому и true. А вот здесь это уже не сработает, потому что объекты разные: String s1 = new String("foo"); String s2 = new String("foo"); s1 == s2 // false
Здравствуйте, учу джаву , решил прочесать вакансии на hh и там в требованиях везде высшее образование или студент последних курсов, действительно ли в джаву без вышки не вкатиться?
Сам, двачане. Юному дажава-подавану требуется помощь. Почему в приведенном на пике коде Scanner не обновляет переменную String word после выполнения блока if(); т.е я ввожу с клавиатуры слово "слово" -> такой ключ уже имеется -> выполняется рекурсия -> ввожу "другое_слово" -> прохожу проверку -> метод возвращает "cлово" ЧЯДНТ второй месяц вкота
>>1580868 Даже найти место, где будешь писать java-игры под кнопочные мобилки, найти легче. При чём это про 2014 год, сейчас, ваще не вариант, делфи поперспективнее будет.
Просматривал исходники LinkedList и задался вопросом, почему многие поля transient ? Ну допустим поля size и first будут сериализованы, почему это плохо?
Сап. Пишу пет проект, на беке Spring (Boot), на фронте React. Хочу сделать авторизацию пользователей. В доку Spring Security смотрел, но там очень много вариантов - Oauth, OAuth2, с JWT токенами, с кукисами.
Что хочу - мой сервер хранит данные о пользователях у себя в БД, соответственно и валидирует юзеров сам. Вопрос - какой способ авторизации /аутентификации будет самым простым в имплементации?
Гайдов всяких в инете много, но вот выбрать нужный мне способ - сложновато.
>>1581038 Ничего интересного. Да и вообще со времён 1.4 ничего интересного в джаве не появилось. А некоторые фичи так и вовсе можно считать деградацией.
Так, серьёзный вопрос. Есть *Manager класс, в котором внутри и валидация, и бизнес-логика, и запросы в базу. Как это правильно разбить? Ведь при валидации могут потребоваться запросы в базу, и какие-то дополнительные данные из базы могут потребоваться в бизнес-логике
>>1581622 Сделать класс который будет отвечать за запросы в базу с соответствующими методами. Что мешает бизнес логике и валидации обращаться к его методам?
>>1581632 Блять, я Шилдта ебучего полгода читаю, дохожу до главы с методами и пиздец. Хотя переписываю каждый пример по 5 раз. И все равно как пытаешься написать метод - все красным подчеркивает. Уже раз 10 с начала начинал.
Сап, /pr/, есть огромный файл на сотни гигов, там в каждой строчке лежат какие-то данные, которые надо обработать и положить в БД. Как это можно сделать, какие оптимизации?
>>1581752 ну там если кажем psql и csv файл то можно прям средствами psql наебенить. Если тебе еще какая то промежуточная логика нужна и это не на один раз, то можешь попробовать юзнуть FileUtils.lineIterator из апач, более помочь не могу, мб кто из более опытных анонов поможет. Успехов, дружище
>>1581758 Да, я про LineIterator как раз думал, но наверняка есть что-то лучше этого. Мб распараллелить как-то можно, но я читал, что это диск сильно нагружает, хз
>>1581767 Читаешь последовательно, тебе этого хватит, но строчки запихиваешь в очередь (с ограниченным размером), N потоков из нее читают и пишут в БД.
Решил тут наконец попробовать модули. Думал ну уж сколько лет прошло, сейчас то наверное большинство библиотек должно было перейти. Ну и как оказалось нихуя никто ничего не делал. В лучшем случае добавили в манифест строчку с названием автомодуля и все, да и то таких единицы. Большинство да же этого не сделало, не смогли одну сранную строчку добавить за 3 года. А уж библиотек с module-info.class вообще можно по пальцам одной руки пересчитать.
>>1582282 Нинужно. Модули ваши хуйдули, это всё бесовская чепуха. Господь дал нам швятой OSGi, вот и делай как все, а не выёбуйся. Иш чего надумал блять... Модули-хуёдули у него
>>1580087 >действительно ли в джаву без вышки не вкатиться? Сейчас как и всегда для вката нужны знания. Если их у тебя не много то вышка как бы говорит что ты в состоянии выучить разную хуиту. Если у тебя есть знания то всем похуй! Даже в наше время после профильного вузика не все идут в пограмисты ибо сложно (нужно самостоятельно гуглить / учить технологии а привыкли дрочить по учебникам)
Может кто-нибудь объяснить задание? В ячейке стека создать массив? Или представить сам стек как индексный массив, лол? И какие записи имеются в виду? Строки?
>>1582943 Для чнения ввода, например, можно использовать сырой InputStream и читать побайтово. Прочитать то, что уже было выведено - вообще нетривиальная задача, и нужно это бывает ну очень редко.
>>1582982 Ты чет вообще не понимаешь, что происходит. Ты решил научиться программировать просто читая код и дописывая свой? Интересный метод, но попробуй хотя бы посмотреть видео Mr. Nagoor Babu, если не хочешь книги читать.
Считается ли васянством, вместо шаблонизаторов, периодически обновлять статичный хтмл, составляя его прям из кода? По идее, это должно быть более производительно, чем jsp, правильно думаю?
>>1583201 Нет, предлагаю хранить один хтмл, перезаписывая при изменениях либо с определённым интервалом. Только там, где это удобно. Всякие поиски с фильтрами, понятно, проще делать на лету.
>>1583312 Ты вызываешь ob.fac() и игнорируешь результат. И в следующей строке почему-то пытаешься вывести ссылку ob, а не число. Перепиши, например, так: int r = ob.fac(5); System.out.println(r);
Backward compatibility, говорили они... Пример из книжки не работает. Не компилируется на строчке (5,7). Хотя по идее должен отработать третий метод с примитивами. А теперь он видите ли не может выбрать между обжектом и интом. Книжка на 7 ждк, а у меня 11 amazon corretto.
не путайте мой скрин со 100500 скринами итт, я другой анон
>>1584011 После "обычной" андроид пойдёт легче. Синтаксис одинаковый, большая часть стандартной библиотеки тоже. Но на андроиде ты в первую очередь работаешь с Android API, который нужно изучать отдельно.
>>1584018 Ниверю. В java 7 тоже бы не скомпилировалось. Пример слово в слово как в книге? Либо в книге ошибка, либо ты неправильно переписал, либо ты сам придумал пример и почему-то решил, что должен отработать метод с примитивами.
>>1584051 Вроде overloading resolution происходит примерно так:
1. Сначала ищется метод точно подходящий по сигнатуре 2. Если не нашли, то метод подходящий по сигнатуре, если разрешить расширение типов 3. Иначе разрешаем расширение типов и автобоксинг/автоанбоксинг 4. Иначе разрешаем и расширение типов, и автобоксинг/автоанбоксинг, и варарги.
Если на каком-то этапе нашли несколько подходящих методов - то ошибка компиляции. У тебя на 1-3 этапе не подходит ни один метод, на 4 этапе подходят 2 метода.
>>1584099 В том числе про это. Плюс, если это ссылочный тип, то приведение к родительскому классу или интерфейсу. Например Integer -> Number, Integer -> Object, Integer -> Constable, Integer -> Comparable<Integer>
Анон, у меня сейчас дилема: надо выбрать на какой стул сесть - на жс и ноду или на жабу. Если коротко, то просто попрошу объективно расписать где сейчас джава юзается и для каких целей. Повторю, МАКСИМАЛЬНО ОБЪЕКТИВНО И БЕЗ ВЫЕБОНОВ, а то я вас знаю, набегут ща 300кк/нс и будут пиздеть что жс/жаба НИНУЖНА и как им заебись на ГОЕШЧКЕ!
Джава - энтерпрайз, нода - бекенд, сфера ноды примерно как у пхп. Если интересуют зарплаты, полистай хедхантер и не слушай тех, кто заливает, что там всё завышено. Плюс джавы в том, что на ней ещё долго будет несложно найти работу.
А кто-то сдавал сертификацию оракл? У меня уже 3й подход будет, уже книга для 11 жавы вышла, а я никак не решусь подготовиться и сдать. Предыдущий был летом, прочтал книгу по подготовке к 8 джаве, проходил бесплатные тесты, хотел уже купить платные, прогнать и записаться на экзамен, но наступила осень и я чёт забил, куча дел и проблем повилось. Вот думаю теперь 11 джаву читать готовиться.
JVM-помидоры есть? Как правильно затюнить GC, чтобы при нагрузке не было просадки перфоманса время от времени? Нужен ровный RPS вообще всегда. Более медленной производительностью в общем готов пожертвовать.
Господа, подскажите пожалуйста, в чем дело. Решаю я себе задачки на гиперскиллс, никого не трогаю, чиллю так сказать. Попадается очередная легкая задачка, где надо сделать калькулятор по типу ввода оператора и двух чисел, чтобы все это было как аргументы в мейн. Все легко и спокойно пишется сначала во встроенном редакторе, а потом я думаю, дай-ка еще локально запущу. Пикрелейтед. Причем такая хуита только для чара "*". Гиперскилл предлагает мне свою версию кода, где по сути тоже самое, только результат вынесен в кейс и аргументы парсятся там, запощу след. постом, я пробую его, и локально он мне вообще выдает в итоге "Unknown operator". Гуглить-гуглил, нихуя не нашел. ЧЯДНТ?
есть большое количество однотипных операций, которые надо выполнить. Как это сделать? Взять тред пул, в цикле насоздавать runnable и засунуть в этот тред-пул, он выдаст Future. Разве этот процесс создания множества Future не будет расходовать память?
Есть замечательная книга "CLR via C#". Имеется ли подобный материал для языка Java? Хочется вкатится начиная с уровня пониже, без "циклы это то-то то-то..".
Сап. Есть у кого-нибудь тестовое задание для junior java ? И еще подскажите, какое приложение написать можно, чтобы было что залить на гитхаб? Читал книги по се и по сервлетам Мурач, а что дальше делать не очень понимаю, просто чтение остоебло, надо что-то написать, а что я не понимаю...
>>1585066 Возьми какого-нибудь хорстмана и скипни первые несколько глав. Этого хватит для всего. Ты не проаустишь никаких сакральных знаний, как если бы это были кресты.
Построить веб-систему, поддерживающую заданную функциональность: 1. На основе сущностей предметной области создать классы их описывающие. 2. Классы и методы должны иметь отражающую их функциональность названия и должны быть грамотно структурированы по пакетам. 3. Оформление кода должно соответствовать Java Code Convention. 4. Проект должен работать на сервере приложений – tomcat, база данных – MySQL. 5. Проект должен передаваться на оценку, поставкой. 6. Поставка представляет собой архив. Название – ваше Ф.И.О (пример: ИвановИИ.rar) 7. Поставка содержит следующие директории o src – исходный код проекта o sql – скрипты создания и наполнения БД o doc – документация 8. Папка doc поставки должна содержать документ со следующим содержимым: o Постановку задачи o Руководство по установке o Руководство пользователя o Описание БД. Какие таблицы и как они связаны, а также описание в каком поле что лежит. Формат описания не особо важен, но лучше чтобы схема таблиц была наглядной. 9. Поставка должна содержать скрипт сборки и установки(ant или maven). После прописывания настроек и запуска bat файл. Проект должен быть собран из исходников и задеплоен на AS, а также развернута БД. ВНИМАНИЕ: Данный пункт не является обязательным, но дает дополнительный бонус при написании скрипта. 10. Приложение должно поддерживать работу с кириллицей, в том числе и при хранении информации в БД. 11. Архитектура приложения должна соответствовать шаблону Model-View- Controller. 12. При реализации алгоритмов бизнес-логики использовать шаблоны GoF: Factory Method, Command, Builder, Strategy, State, Observer etc. 13. Используя сервлеты и JSP, реализовать функциональности, предложенные в постановке конкретной задачи. 14. В страницах JSP применять библиотеку JSTL и разработать собственные теги. 15. При разработке бизнес логики использовать сессии и фильтры. 16. Выполнить журналирование событий, то есть информацию о возникающих исключениях и событиях в системе обрабатывать с помощью Log4j. 17. Код должен содержать комментарии. 18. Все пункты задания являются обязательными. За каждый пункт выставляются отдельные оценки.
В-4 Система Библиотека. Читатель имеет возможность осуществлять поиск и заказ Книг в Каталоге. Библиотекарь выдает Читателю Книгу на абонемент или в читальный зал. Книга может присутствовать в Библиотеке в одном или нескольких экземплярах.
Ну справедливости ради такое задание для человека, которые уже раньше делал ни раз такие CRUD-ы, не такой уж сложное. Если человек никогда такого не делал, понятно что для него оно выглядит как ужас-ужас.
>>1584717 Ну во первых ocp без oca ты не сдашь (вернее сдашь как я понял но сертификат не получишь). А во вторых работодателям и ocp то особо не вперлась - вче хотят опыт в джаве от 40 лет
Аноны, глупый вопрос, но все же: Прочитал в книге, что для явы, как я понимаю, нужно подключить стандартные библиотеки, которые лежат в архиве директории "/home". Так вот, там есть пункт "Создайте каталог javasrc в своем начальном каталоге". Что имеют в виду под "начальным каталогом"? Начальный каталог самого JDK? И где он начинается, фактически? Где мне нужно создать эту директорию "javasrc", чтобы из неё подтянулись стандартные библиотеки?
>>1567242 (OP) Андроид тред в каталоге не нашёлся, спрошу тут. Анонсы, как блядь подключить интернет в приложении? Пермишены в манифесте прописал, а оно всё равно не подключено к сети.
Анон, какие ресурсы, книги можешь посоветовать для быстрого но более менее детального ознакомления с языком (Один только синтаксис не интересует)? Опыт программирования на других языках, и общее тех. понимание имеется. Хочу быстро пробежаться по языку. Делаю бота для майнкрафта, потребуется изучать сдекомпиленные .class'ы, и на жабе писать самого бота.
Везде пишут, что spring сверх популярен и крут, может ли знающий анон отписать тут про хотя-бы пару крутых и широко известных проектов, бэк которых был написан с использованием spring. Про Java EE, тоже интересно. Не поймите неправильно, я без наезда, просто сам пытался гуглить, но ничего не нашел, что очень странно
>>1585647 Популярен он в первую очередь в энтерпрайзе, для внутреннего применения. Логично предположить, что бек какого-нибудь Сбербанка Онлайн написан на нём.
>>1585647 Ты совершенно точно регулярно пользуешься сервисами, написанными на спринге. Просто это не "известные проекты", а скучные штуки типа банков или почты.
>>1585647 >может ли знающий анон отписать тут про хотя-бы пару крутых и широко известных проектов, бэк которых был написан с использованием spring. Linux.org.ru
Возможно вопрос платиновый но всё-же Как шарписту вкатится в Джаву? Точнее какую(ие) книги и с какой главы читать(чтобы пропустить базовые вещи). Ну или дайте видос/курс толковый (а то обычно везде 3/4 - базовые фичи обсасывают, которые почти везде одинаковые)
Хэллоу, май фрэндс. В общем есть два класса, наездник и бык. Класс наездник содержит имя, возраст и массив 10 объектов Бык[] быки = new Бычара[10]. Я переопределил методы equals() и hashCode() в двух классах, но когда я пытаюсь сравнить два объекта класса Наездник с одинаковыми(идентичными) данными, то мне выдает false. Я сразу подумал на массив объектов. Потому что, когда я оставляю просто объект класса Бык и сравниваю наездников, то получается true. Переопределяю equals() у наездника так:
Может быть в этом переопределении я не правильно сравниваю массивы объектов? Я пробовал ещё так сравнить Arrays.equals(this.быки, бобби.быки); но компилятор принудительно сразу ругается.
>>1586066 это я понимаю. и вот у меня вопрос. как сделать так, чтобы массивы объектов сравнивались поэлементно. Arrays.sort() он либо для примитивов, либо для Object[] юзается.
Анонасик, смотри. Правильно ли я понял, что здесь речь о том, что я могу таким образом указать собственное имя для столбца, в котором будет сохраняться это поле? А если я не укажу имя, то столбец будет называться так же, как поле?
>>1586082 Вообще, меня терзают определённые сомнения, что дело в чём-то другом, судя по наличию слова constraints. Но больше у меня пока версий нет, потому что я без понятия, что такое constraint в данном контексте, а в книжке это не объяснено.
>The UNIQUE constraint ensures that all values in a column are different.
Вот в чём дело. И что тогда значат параметры в аннотации uniqueConstraint? Что она сама вообще делает? Зачем мне её вообще давать и при этом не объяснять ничего...
>>1586079 >Arrays.sort() он либо для примитивов, либо для Object[] юзается. Если хочешь сортировать быков, то тебе нужен вот етот sort. Короче, план такой: 1) читаешь, что такое компаратор 2) реализуешь компаратор для быков 3) сортируешь 4) юзаешь Arrays.equals
Двач помоги с архитектурой MVC для приложения про преобразованию изображений. Не могу понять в каком пакете хранить логику приложения, т.к в всех примерах spring MVC архитектура используется с БД и соответствующими пакетами entity, domain, repo etc и сервисным, как связующим звеном с контроллерами. Но что если я не использую БД? Правильно ли то, что я назвал пакет сервисом и логику по обработке изображения храню там?
Почему в идее тип и имя переменной по дефолту подсвечиваются одним цветом? Столкнулся сегодня с тем, что при разбиении метода на несколько методов поменьше, тело основного метода превращается в нечитаемую кашу. В каких темах тип и имя переменных подсвечиваются по-разному?
Поясните простыми словами, что такое консалтинговая компания? Читаю в инете, какую-то хуйню, Консалтинговая компания занимается прогнозированием и исследованием рынка, оценкой объектов, оценкой эффективности бизнес-проектов, поиском выходов из кризиса, преобразовывает и создает организационные структуры, создает маркетинговые программы и другими вопросами, которые возникают в процессе деятельности предприятий, организаций, фирм.
Ведь этим всем может заняться какой- нибудь бизнес-тренер, зачем компании создавать, а главное зачем им кодеры?
>>1587145 анализ рынка, консультации и тд. вот есть у тебя палатка шаурмы, заработал ты мал мала денех и хочешь расширится продавая пирожки с капустой, так вот хочешь ты узнать ситуацию на рынке будет ли спрос на них, а если будет продвинуть, нанимать на постоянку аналитика и маркетолога тебе не упало, ты отдаешь этот вопрос на аутсорс им, они все за тебя делают. зачем кодеры, ну не вручную же они собирают и обрабатывают всю статистику, рекламу и тд.
Вызываю public метод из другого класса, оба в одной пакете, но пишет, что метод не определен для класса, в котором вызывают. В чём вообще может быть ошибка?
У меня есть список объектов. И мне нужно удалить оттуда элемент по какому-то признаку, но при этом я должен обязательно знать, был ли такой элемент вообще. Какой способ с точки зрения производительности будет лучше: Чекнуть размер списка removeif сравнить с новой длиной вывести сообщение
Решил расширить познания, ковыряю дроида. Начал я делать эти ваши задачки по яве. Это просто жесть, столько ошибок я в жизни не видел. Нихуя не конвертируется, не мутируется, не сравнивается, ебучие блядь типыска кресты проще, одну букву нельзя просто сравнить с куском строки. Один вопрос: нахуя!? Реально серьезный вопрос. Писать долго, примитивные вещи которые делаешь на жс за 1 наносекнду пишешь по 5 минут на хуяве. Зачем она вообще нужна сейчас? Че она может чего не могут остальные языки? Посидев на яве я понял что очень сильно скучаю по динамической типизации.
Главнейший аргумент почему ява используется на дроиде - большинство разрабов уже знает яву. Пиздец. То есть из-за кучки сраных олдфаготов из 80ых нужно теперь зубрить это говно потому что они так сказали?
>>1587286 Я хочу знать лучше платформу, для которой делаю приложения(через пердолинг конечно же). Без пердолинга вроде как подразумевается больше возможностей и понимания будет. Но меня расстраивает этот выбор. То, что придется учить херню которую нигде иначе никак использовать не сможешь.
>>1588120 в галере количество веслающих прямо зависит от заказов, нет заказов часть на мороз уходит, в продуктовых как то эти качели поменьше. а внутренний климат это чистый рандом
>>1588019 И до них всех дело не дойдет, если передать в Optional.of null. Короче это хуйня все, of должен вести себя как ofNullable, а второй метод нахуй не нужен.
вот у меня есть проект-java-приложение и я хочу, чтобы оно выводило результаты своей работы в фаел
как это грамотно сделать? в какую директорию писать фаел? надо что-то указывать в build.gradle?
просто вот с ресурсами всё понятно: ты просто засовываешь ресурсные фаелы в src/main/resources и потом можешь их достать через Main.class.getResource("file_name")
Как в ебучий проект Eclipse добавить файл? У меня есть файлик, который нужно закинуть в проект. Если через проводник добавить его в нужную папку, то иде его не видит. Приходится создавать через сам Eclipse. Но это же блять пиздец тупо. Как мне сделать что бы проект заметил файл? Почему все сука так тупо, в гугле ничего нет.
Доброго, уважаемые знатоки. Учусь джаве. Встала задача заполнить ArrayList с клавиатуры. Помучился сам, погуглил. нгуглил на на StackOverFlow решение с пика Я его изначально пытался использовать, но оно же не работает. Цикл прервется только если ввести НЕ цифры. В какую сторону гуглить, котоны.
>>1589185 Собственно сама задача на пике. Если бы можно было ввести слово для сигнализации о том что список для ArrayList закончен... Я пытался создавать список String и для выхода из цикла ловить "\n", но результат тот же.
Тебе в System.in приходят две строки. Нужно и сканировать всю строку сразу, чтобы точно знать когда закончилась первая и началась вторая. public static void main( String[] args ) { Scanner sc = new Scanner(System.in); String numbersString = sc.nextLine(); int num = sc.nextInt(); String[] numbersStringArr = numbersString.split(" "); List<Integer> numbers = new ArrayList<>(numbersStringArr.length); for(String numStr : numbersStringArr) { numbers.add(Integer.valueOf(numStr)); } }
>>1589984 Сначала лучше пройти боевое крещение, создавая нубский проект по getting started на сайте спринга. А уже потом углубленно изучать по книжкам.
>>1590166 Спс, чекну. Я для знакомства со спрингом смотрю курс от alishev'а на ютубе. Потом собираюсь читать Spring in action 5th edition, тоже alishev советовал.
Посоветуйте какой-нибудь курс/литаратуру по gradle и что-нибудь по spring, а то я на них пишу уже пару месяцев и тщательно скрываю ото всех что не понимаю толком нихуя.
>>1590518 У меня в школе учился Алышев, тупой азербайджанец. Он помню подошел к кабинету английского, а он замкнут был, и он от злости ебнул кулаком по двери, там вмятина осталась. Наверное до сих пор там. Дверь наверное бумажная дешевая.
>>1590656 там ворох проблем может быть, мусорщик будет тупить, система может ограничивать количество открытых потоков, хуета с дескрипторами, лучше закрывать
>>1591104 C# по массовости все таки проигрывает жабе. Kotlin как приложение к джаве - гуд - сахарок облегчает жизнь, чистый котлин как тебе выше сказали мало где нужен. Typescript - хорошо, но как приложение к js (потому что откроешь ты сорцы, а там js, а node это вообще фреймворк, ты ж не спрашиваешь учить ли тебе спринг). Короче, учи жабу/котлин + джс/тс. Скоро со скрамоебством, чистые бэкендщики и фронтендеры станут наследием прошлого, да и в любом случае в тырпрайзе время от времени приходится чинить фронт.
Посоветуйте ресурсов откуда задачки можно взять порешать. Прочитал Шилда, сейчас читаю Блоха, но практики совсем никакой нет, только перепечатываю код из учебников.
>>1592764 Только все не решай. Эта книга юзается как учебник в каком-то бульбовузе и количество заданий в конце главы рассчитано на группу студентов. Шоб каждому свой вариант выдать, ну ты понял. Решай по 1-2 и норм. Иначе ебанешься головой. Ну и тесты нужно все проходить.
Джавач, посоветуй библиотеку для работы с джейсонами. Джейсоны у меня будут сложные и многоуровневые, нужно будет искать в них значения. Пока мне больше всего зашла работа с json в php - там они парсятся в массив ключ-значение, но там и типизация динамическая.
>>1592858 >сложные и многоуровневые >зашла работа с json в php Возьми groovy. Это такой способ насыпать себе в джаву немного динамики, туда где она уместна.
Кто-то принимает в локализации ? Я выкачал проект, хочу подправить под себя некоторые вещи. Так вот, там есть 3 файла : msg properties, msg propertsEng и такой же руснявый. В первых двух полное повторение и там все в виде переменная - значение на англ. А в русском файле - переменные и им соответствует какие-то биты байты юникоды вида \u0243 и пошло поехало Оно само как-то автоматом билдится в этом файле ? Я хочу исправить значения там, а как это делать, если все в этих юникодах, все тупо тереть и руками переписывать? После правки первых 2 файлов в 3 ничего не меняется в апе установлены енг и ру локаль, но какого-то кода для автоматического такого билда русского файла я не нашел, как оно и откуда появляется ?
>>1593115 1) Попробовал заменить в ру файле тот юникод на славянськи слова - страница в вебе потом отображает вопросы в кружках, вместо того что надо 2) пробовал удалять ру и енг файл и оставить общий - файлы сами заново не появились, удалял с них значения и оставлял только в корневом - тоже ничего .
Сап, анон. Через месяц попадаю на обучение по ява беку(на курсе будут основы ооп, работа с файловой системой, куча спринга и реста/тестирования). 2 месяца обучения с возможностью остаться там работать. Так вот, не хотелось бы проябывать такой шанс и прошу совета, что можно поделать, чтобы подготовить себя к работе и успешному проекту в конце курса. Из скиллов у меня не так много, разве что куча олимпиад и задротство компутер сайнс задач на питоне. Ну и джанго немного + всякая хуйня, типа сис админских навыков. С явой знаком только в плане синтаксисе и немного андроид приложения пилил.
>>1593778 в аргумент функции передается имя файла, и нужно определить, .txt файл или нет, если нет, то хз.. Ошибку наверно выдать, а если *.txt, то заебумба, продолжаем дальше.
Даже не знаю, где и спросить. Про тестирование ничего не нашел. В общем, шарит кто в Jmeter? Есть две транзакции, нужно выполнять их в процентном соотношении 60/40. Как этого добиться?
Аноны, надо ставить пробел между строкой объявления класса и тем что ниже идёт? Всегда считал что нужно, а тут какой-то помидор не ставит Допустим Интерфейс а Метод а() Или класс а Логгер
>>1594232 Лучше ставить, чем не ставить, но не принципиально. Соглашений на это мало, так что если думаешь, что читаться будет легче, ставь. Пробежался грепом по нашему проекту, большинство ставит.
>>1594589 Если приложение простое, то используют Express / Fastify. Я бы не назвал это фреймворками, скорее библиотеки для роутинга. Для более сложных используют фреймворки Nest или Adonis. Первый кстати очень на Spring похож.
>>1594714 Почему? The DriverManager methods getConnection and getDrivers have been enhanced to support the Java Standard Edition Service Provider mechanism. JDBC 4.0 Drivers must include the file META-INF/services/java.sql.Driver. This file contains the name of the JDBC drivers implementation of java.sql.Driver. For example, to load the my.sql.Driver class, the META-INF/services/java.sql.Driver file would contain the entry:
Как мне сделать так, чтобы все классы, некоторым образом помеченные(аннотацией или еще как-то), компилировались в другие классы? Например, вместо одного класса скомпилировать два разных.
>>1594716 Много раз везде читал, что должно заработать само, но у меня никогда это само не работало. Гугл ничего конкретного не сказал. Поэтому просто всегда это пишу.
>>1594052 Если во входном массиве все элементы разные, то добавление последнего элемента будет nlog(n) (там ещё есть добавление предыдущих, но оно не меняет сложность). И памяти там O(n).
А рекурсия часто используется на практике? или только на ебнутых тасках, где надо покрутить членом, написать с нулям алгоритм сортировки, не используя библиотек и т.д ..
Как из этого сделать сортировку по убыванию? Вроде по логике, просто заменить в проверке, чтбы, если больше либо равно, то закидывает большее, а не меньшее и все должно работать.. а вот нет.. При такой сортировки по возрастанию все ок, а как только меняешь проверку, то вылетает ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
В общем.. не знаю в чем было дело, только что настругал куча сиаутов, чтобы отследить где же индекс аут ов баундс... Изменил опять так же, как изменял все это время, условие проверки и все заработало.... Ебаная магия, 3 часа сидел ковырялся... Психанул, написал на двач, пошел опять поменял тоже самое, что и менял = все заработало...... ЧУДО! Держу в курсе.
Решил отказаться всё-таки от кэширования ридеров и райтеров. Мало ли, что с файлами сделается при внештатном завершении приложения.
Но вообще, серьёзно, как тогда поступить, чтобы меньше нагружать файловую систему? Запросы-то могут приходить очень часто. Или этим обычно не заморачиваются и ставят кулдаун у клиента на запросы и ССД на сервер?
Мб кто знает как в сервлетах добавить фильтр перед отправкой ответа? просто Filter срабатывает при получении запроса, а я хочу после выполнения всех действий вообще я хочу синхронизировать работу с куками тип, на входящий фильтр сохраняем все значения в сессии, а на исходящем фильтре сохраняем все значения в куки мне кажется что это оверинжиниринг
>>1595836 проблема: 1.получаю параметр от пользователя, 2.заношу его в куки 3.цепляю к ответу 4.не имею доступа к этому параметру из других частей приложения, только при следующем запросе имею доступ к кукам и мне не нравиться их парсить в разных местах приложения видел способ сделать прокси ответа со списком куков, это вменяемое решение? Есть какие то бест практисы,
>>1595096 >Нет, добавление будет log(n). Первый алгоритм вообще неправильный. Ок, добавление последнего log(n), но добавление всех n элементов - nlog(n) иначе мы тут изобрели сортировку быстрее nlog(n)
>>1595096 >а сам написал O(n) по памяти, когда очевиден алгоритм за O(1) по памяти. Нет там o(n), протри глаза, там o(k) где k количество найденных элементов. А теперь умник, расскажи как ты вернешь k элементов используя o(1) памяти?
Нужно ли в проектах для портфолио накручивать абстракции на ровном месте? Ну тип чтоб видели, что я умею этими фичами пользоваться. Вот у меня есть pojo, который всегда конструируется со входными данными в конструктор. Сеттеры там для большинства полей не нужны. Надо ли мне этот pojo добавлять в Spring контейнер, при конструировании делать getBean и потом ставить значения через сеттеры? Или лучше делать по-человечески и демонстрировать в первую очередь архитектурные решения?
Тред, походу, совсем утонул, но попытаю счастья. Аноны, подскажите. Я тут прохожу один видеокурс и там для работы с XML используется JAXB. Как я понимаю, его удалили из стандартной SE, поэтому в настройках проекта в идее во вкладке modules я подгрузил джарник с jaxb-api. Все импорты прописались, но ничего не работает, вылезает куча ошибок. Ок, добавил module-info, часть пакетов подкрасилась красным. Добавил require'ы, вроде идея ни на что не жалуется. Запускаю на компиляцию, чтобы проверить как программа отработает тестовые данные и получаю такое сообщение: "Error occurred during initialization of boot layer java.lang.module.FindException: Module java.activation not found, required by java.xml.bind". По идее программка должна создать один файл, он не создан. Не подскажите, как решить данную проблему?
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: Да хуй знает, от тебя зависит насколько ты толковый и умеешь себя продать.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. Если усидчивый, читай книги и делай тестовые задания. В любом случае решать тебе.
https://github.com/qqqlll/Java-Thread/wiki