Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ? A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна. Сейчас все советуют Hyperskill. Более продуманный план обучения. Но, как и любой %COURSENAME% не гарантирует тебе успешного вката. Выучиться можно и самостоятельно, не отдавая свои кровные васянам-наставникам.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом? A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред. Но в последнее время увеличивается количество вакансий на удаленке в связи с ковидом. Но, возможно, как вся эта мракобесия закончится, всех обратно загонят в стойло.
Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать? A: Книги: https://libgen.is
Q: Хули все книги на английском? A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо? A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко объявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять раз скопипасти этот кусок кода и выведи в консоль". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут. A: Не все конторы дрочат на подход Яндекса который спиздил подход гугла. Но для крупных фирм знать алгоритмы маст хев уже на уровне джуна/трейни, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Java for Dummies -> Head First Java -> Java Beginner's Guide -> Effective Java -> Core Java -> Java Complete Reference -> Thinking in Java -> Java Методы программирования. Перечислил мейнстримные книги по кору в порядке возрастания сложности, ничего не забыл? У Блинова отвратительный академический стиль изложения, так что сунул его в самый конец.
>>2013610 Абстрактный класс нужен, когда тебе нужно создать такой класс, который не сможет образовывать собственные объекты, но из которого могут появляться подклассы. Типа, абстрактный класс Животное по определению не может создавать объекты, ибо слишком размытое определение что есть "Животное" вообще. Но его подкласс "Котик" является более конкретным случаем Животного, и тут уже объекты логически обоснованы. Интерфейс - это что-то типа контракта, который заключают классы, его реализующие. Класс, называемый клиентом, обязан реализовать все методы, которые есть в интерфейсе. Короче говоря, абстрактные классы нужны тогда, когда тебе нужен класс, из которого нельзя получить объекты, но который должен быть родительским для подклассов, а интерфейс это обязанность для классов реализовывать некий функционал, им присутствующий по дефолту.
>>2013890 Окей, а тогда нахуя мне иметь возможность создавать абстрактные методы в абстрактном классе? Тогда интерфейсы можно вообще не заводить, а для класса Животное просто создать абстрактный метод, который будет заставлять его потомков издавать звуки или ходить, например. Та же самая обязанность выполнять какой-то функционал, присутствующий у животных по дефолту
>>2014474 Рыбы тоже относятся к животным, но не ходят, а плавают. А абстрактный метод всё-равно должен быть реализован, будешь писать заглушку-костыль? И хождение, и плавание, и полет это поведение и должно быть в интерфейсе.
>>2014600 Если писать в соответствии с биологией, то в человеке должен быть переопределенный метод дышатьЖабрами() и тысячи строк мертвого кода, в том числе реализующий движения хвостом.
Я не знаю какой язык выбрать. Знаю вёрстку, но во фронтенд идти не хочу, в бэк через пхп тоже не особо хочу, т.к. боюсь его выбирать в качестве первого языка. Думаю, начать с джавы. Именно для того, чтобы изучать программирование с помощью этого языка. Дальше пойти в котлин или куда-нибудь ещё, или на джаве остаться, хз.
Что думаете? Джаву потяну?
25 лет, вышка айтишная, но в вузе я проёбывался. На джаве когда-то списывал змейку и защищал курсач по этой игруле. Не аутист, адекватен, с математикой всё максимально плохо. Последнее, что помню - квадратные уравнения и биквадратные. Всё.
>>2013610 Если у классов-потомков нет какой-то общей логики, которую можно вынести в protected-методы или поля общего родителя, то используется только интерфейс. Если такая логика есть, то используется и интерфейс, и абстрактный класс.
>>2014474 >Окей, а тогда нахуя мне иметь возможность создавать абстрактные методы в абстрактном классе? Тогда интерфейсы можно вообще не заводить Но в таком случае ты не сможешь унаследоваться от нескольких классов. Ты можешь унаследоваться от нескольких интерфейсов, но не классов. Возможность создавать абстрактные методы в абстрактном классе существует для того, чтобы определять методы, которые обязательно должны присутствовать в подклассах. Никто не заставляет ведь подкласс абстрактного класса реализовывать интерфейс, но если в абстрактном классе есть абстрактные методы, то их придётся реализовать обязательно. В абстрактных классах можно реализовывать и обычные, не абстрактные, методы.
>>2014611 Это нарушает I из SOLID, но в человеке много легаси, и его сложно переписать на новые технологии.
>>2014920 Я что, ебу что ли. Было три класса: один за тело змейки отвечал, второй за яблоко и рандомное появление на поле и третий класс отвечал за само поле. Зачем ты всё усложняешь? Я отдалённо слышал что-то про многопоточность и, честно, не понимаю, почему ты такой долбоёб
Всем привет, я работаю 2 года фронтендером, до этого 2 года был верстальщиком. По уровню нахожусь между джуном и мидлом, к концу года думаю смогу быть мидлом. Работаю над крупным проектом в большой компании. В стеке использую react + mobx + typescript. В данный момент мне наскучил фронтенд, задачи по большей степени кажутся однообразными, даже если смотреть на работу сеньеров. Только у архитекторов, что-то интересное. Хочу вкатится в java, пока еще не решил бэкенд или андроид. Скорее первое. Но страшно начать, все таки я много времени потратил на фронтенд, уже есть определенные успехи в плане карьеры, хорошо платят. Не хочется начинать все с нуля. Стоит ли менять направление? Немного про себя: 28 лет, пришел в IT после работы на заводе слесарем.
>>2015061 >>А нахуя мне писать laba1 >>На джаве когда-то списывал змейку Это и называется laba1. Вместо того чтоб задавать тупые вопросы ты мог просто погуглить отличия языков и области их применения и решить что тебе ближе, но вместо этого ты пришел сраться в тред. С таким подходом тебе нечего делать в айти. 1С - твой предел.
>>2015089 Ты мне это в лицо сказать сможешь, чмоня? Ты где живёшь нахуй? Давай встретимся, я тебя блядь быстро на место поставлю и научу за своим базаром гнилым следить!
Аноны, подскажите, как правильнее все организовать. В общем, хочу попробовать сделать веб-приложение(впервые работаю со спрингом), которое будет по апи подтягивать базу данных, чтоб после этого я мог с ней работать и выводить определенную инфу пользователю. Подскажите, чего посмотреть/почитать, чтоб разобраться, как заставить сработаться апи и спринг, что куда правильнее импортировать и как, в общем, это будет работать(извиняюсь за смутные объяснения, не сильно пока вкуриваю, до этого только с алгоритмами/массивами/регулярками работа). С меня как обычно нихуя
>>2015542 гугли spring boot crud >>как заставить сработаться апи и спринг не надо там ничему срабатываться, спринг бут в себе все и так содержит, даже сервлет контейнер. >>что куда правильнее импортировать Зависимости - стартеры бута - веб, дата. Аннотации - по гайдам смотри. >>до этого только с алгоритмами/массивами/регулярками работа ты же понимаешь что такое слои приложения, дао/репозиторий, мвс, внедрение зависимостей? Будет трудно сразу разобраться в спринге не понимая этих базовых вещей.
Есть дельные курсы по спрингу, чтобы максимально кратко и информативно? За 16-20 часов нужно изучить самые основы, чтобы на собесе на мидла пригласили на мидла, а с чистым спрингом ни разу не работал, лол просто хотя бы пройти. Ну или спринг Бут, че там популярно
>>2016807 В чём смысл таких вопросов? Очевидно, что в этом треде сидят те, кто считает, что лучше вкатываться в джаву, чем в шарп. В шарпотреде наоборот.
>>2016877 Первый пункт абсолютно верный. То же самое относиться и к Котлину и к Грейдлу. Когда у тебя большая команда, надо строго следить, чтобы народ писал единообразно иначе код потом не прочтешь.
В отличии от того же Мавена - он тебе тупо не даст самодеятельностью заниматься - плагины объявляем тут, зависимости тут, порядок билда вообще жестко зашит.
А в Грейдле у тебя один встроенный способ сделать что-то, но только в версия с 3.4.1 по 5.7.6. Два плагина для того же самого. И КУЧА возможностей накостылить решение кодом прям по месту. Кто что на СО нашел, то и зафигачил в билд.
>>2017012 Да почему, мне то интересно, и я хочу развиваться в этос направлении, только вот сколько мне бы пришлось искать работу и набираться каких-то эфемерный знаний и опыты без реального проекта.
Допустим есть контроллер, который получает запрос, посылает три запроса на три других сервиса, и если нет ошибок, то возвращает объект, используя полученную информацию. Поскольку запросы могут обрабатываться долго, нужно посылать все три запроса сразу, чтобы они обрабатывались параллельно. Знаю про WebFlux, а к обычному нереактивному Web это можно как-нибудь прикрутить?
>>2017005 Ах ты блять продвигатель кумовства и коррупции
Я уверен ты из тех кто ходит на митинги и громче всех кричит что власть оборзела и погрязла в коррупции, хотя сам этим занимаешься под предлогом ой ну я всего то джуном хотел устроиться)))
>>2017167 Термин "коррупция" может быть применим только к государственным действиям, потому что только государство распоряжается отнятыми у граждан деньгами и может эти деньги пустить не по обещанному при отъеме назначению. Если кто-то хочет в свою команду устроить племянника без знаний, то это его проблемы и он в случае чего сам понесет убытки. мимо
>>2017398 Коррупция (от лат. corrumpere «растлевать», лат. corruptio «подкуп, продажность; порча, разложение; растление») — термин, обозначающий обычно использование должностным лицом своих властных полномочий и доверенных ему прав, а также связанных с этим официальным статусом авторитета, возможностей, связей в целях личной выгоды, противоречащее законодательству и моральным установкам.
Накидайте роадмап для джуна который хочет в бэкэнд какого нибудь банка (да я долбаеб) Навернул Хорстманна Очевидные Hibernate/Spring/Doker Что то проебал?
Ребят, где я хуй? Осваиваю ВЕСНУ, хочу чтобы значения брались из .properties-ов, в методе где должен гетать УРЛ возвращает нуллпоинтер - не берет значение из проперти. (Если вручную присвоить логин/пароль/урл - то все работает как надо, но я хочу с ебучими пропертями разобраться, я их уже как только не прописывал, и через "value=", и полный путь указывал).
>>2017438 Во первых автовайри сразу URI, спринг сам сконвертирует значение проперти. Во вторых судя по скрипнам у тебя весна не бутовая, значит скорее всего забыл какой-то бин типа PropertiesResolverAwtowiringBeanFactoryPostProcessor создать.
Посматривая на другие языки(js в основном, еще немного питона и шарпов) - я понял насколько же консервативность джавы охуенна. Там постоянно вводят фичи и сахар, причем дай бог четверть оказывается полезными. Заебался уже в js - и это у нас есть и это и это. Но половина из этого устарело, а еще четверть нахуй не нужно и дублирует функционал.
>>2017671 Аннотации - это не просто необязательные метаданные, во многих либах/фреймворках кастомные аннотации меняют поведение того, на что ты их вешаешь. Они могут генерировать интерсепторы, либы могут в рантайме искать классы/поля/методы с определёнными аннотациями и что-нибудь с ними делать через рефлексию. До пятой джавы аннотаций не было, из-за этого для многих либ приходилось писать текстовые конфиги (xml, ini, properties и прочее). Но сейчас удобнее почти всё делать аннотациями, и не стоит акцентировать на этом внимание.
>>2017689 Лучше, когда эти фичи есть их коробки, ибо только в таком случае можно ждать от разрабов IDE поддержку этого говна. А так приходится для всяких ебаных ломбоков обмазываться сторонними плагинами разной степени хуёвости, и это даже хуже препроцессора c/c++, он хотя бы стандартный, и с ним умеют работать IDE.
>>2017815 Да, наверно http нужнее, зря я так рано в js полез. Но я что-то психанул. Надо уж теперь закончить и хотя-бы кор js-а добить, раз уж начал. Многие говорят, что потом пригодится. https://developer.mozilla.org/ru/docs/Web/HTTP вот этот на 2/3 переведенный мануал будет норм для обучения?
>>2017935 Ну я смотрю мануал по спрингу, а там про куки, сессии, cors авторизацию и некоторые другие вещи и я очень смутно представляю что все это такое. Не знаю почему у меня именно с mvc непонимания. DI и data более-менее понятны. А как до реста дошел мне захотелось js изучить. Не долбиться же с json-ками через постман.
>>2018221 Я хотел бы учиться через написание реального приложения. А потом уже и тесты и все что угодно. Но пока я вообще не понимаю фронт и не до конца понимаю хттп.
>>2017955 Гугли непонятные понятия, читай статьи (даже на википедии), экспериментируй, этого хватит до конца жизни. Потыкай JS с реактом, но сильно можешь не углубляться. Алсо, в этом треде один шизик продвигает Vue, его не слушай. Толстяка с тестами шли нахуй, до них всегда добраться успеешь.
Пацаны, а по хорошему методы equals, hashCode и toString надо во всех дочерних класса одного класса переопределять? По книге Хортсманна нихуя не понял чет
>>2018601 Если в дочерних классах появляются новые поля которые влияют на равенство объектов - то да надо. toString() - ты делаешь для себя, чтобы при отладке и в логах можно было посмотреть состояние объекта.
Тут хотел сделать задание интересное. Типа надо класс одномерный массив сделать, используя также класс элемент, и различные действия с ним выполнять. Хорошо, меня это заинтересовало. Я начал делать класс элемент обобщенным, ведь не знаешь какие именно элементы будут в массиве, захочется например шлюх с порнохаба коллекционировать в массиве, а он тебе только числа позволяет добавлять. Затем делаю в классе Одномерного массива одномерный массив с обобщенным элементами. Так вот, меня интересует, этот класс Одномерный массив тоже надо делать обобщенным? Ведь иначе получается сырой тип массива и перед компиляцией он уже Object. И ещё вопрос, ведь при компиляции он все равно Object становится, но у меня в этом же классе есть методы сложения и вычитание например. Не буду же я шлюх складывать(потому что это можно узнать с помощью имя_массива.length или имя_списка.size()). Как можно проверить например, что этот обощенный тип принадлежит к классу Number? Или тут делать только обобщенный метод, где как параметр может приниматься массив T extends Number?
Посмотрел https://www.youtube.com/watch?v=Y4UO8vqbLlE и обосрался. Вкатун-терапевт говорит, что полгода плотно изучает язык, и потом 40 минут без остановки отвечает на любые хитровыебанные вопросы по core-hibernate-spring-sql-maven и проч. Медики действительно такие вундеркинды? Надо скрывать от них существование ойти.
>>2018910 Надолго. Вот когда перестанут обновлять 8, все основные либы и софт откажутся на ней работать, и потом в ней найдут критические проблемы, которые оракл откажется фиксить, тогда может и перейдут на 11.
>>2018972 Они не вундеркинды, просто привыкли ебашить как не в себя и ответственно относиться к своей работе. Если б ты программы писал как человека лечишь, ты думаешь ты был бы хуже?
>>2018972 Он по верхам нахватался, но знает слабо. По ответам же видно, что он плавает и собеседующий его вытягивает на ответы. На интерна может и пойдет но он не студент профильного вуза, на джуна его не возьмут. Ему еще полгода-год учить жаву.
>>2019141 Я был бы хуёвой рыбой Плавал бы как попало Всё время бы, блядь, тонул. Врезался б в подводные глыбы Икры бы метал я мало И плакал, ползя по дну
>>2019463 Да, скорее всего так точнее. Вроде и обычный список, но с помощью методов он будет модифицирован под мои хотелки соответственно. (как я описал, что складывать и вычитать может только элементы типа Number, а иначе посылать; также иметь ограниченный размер как у массива - ведь список автоматически увеличивает размер)
>>2018972 "Java core начинал с Якова Файна, затем Headfirst, затем Шилдт 10 издание. SQL тоже Headfirst очень неплохой, по Hibernate отличная книга Java persistence API with Hibernate. Spring учил по Spring in Action, Pro spring 5. Вот в таком порядке примерно все и изучал и, параллельно, различные посты по каким-то темам" Это типа реально за полгода после работы все прочитать?
>>2020314 >начинал с Якова Файна Я думал, это мем такой, а это реальность. Кузница гениев. Первый кирпичик в здании сеньора-помидора. Я сам ещё не вкатился, но мне кажется, что все эти книги прочитать за полгода реально только если ты уже программист и перекатываешься с другого языка. Потому, что если ты совсем без бекграунда, то сначала нужно будет выделять в голове место под самые абстрактные и базовые конструкции, типа что вообще такое программирование, зачем этим занимаются, где востребовано, как выглядит, зачем это лично тебе, как выделить этому время и проч. Ну или действительно перед нами гений. Тогда надо от имени двача заслать к нему гей-подселенца, чтобы в будущем иметь рычаги влияния на русского Илона Маска.
>>2020795 То, что в пхп, нельзя назвать "без фреймворков", скорее там и так фреймворк из коробки. В джаве ничего подобного нет, можно только написать свой фреймворк на сокетах. Ну и к пхп ближе всего JSP, которого в Java SE нет.
Гуру джавы, подскажите, пожалуйста. Вот есть методы с объектами разных классов, но вокруг них обертка одна. Уровня открыть соединение, что-то сделать, и закрыть. В метод с дженериком не получается собрать, потому что нужно по ходу дела доставать сам класс, какие еще есть варианты?
Есть ли хоть одна действительно веская причина, по которой в язык надо было добавлять Wildcard? Вместо вопросительного знака везде можно поставить любую свободную букву, и смысл будет тот же, работать будет так же. Только иной раз придётся перед названием метода дописывать дженерик, тоже непонятно зачем. Нахуя это всё?
>>2013248 (OP) Планирую запускать selenium-скрипт у себя на серваке - он должен будет периодически проверять доступность моего сайта и отсылать диагностическую информацию в лог. Подобное вообще может работать на удаленном серве? Ведь там браузер нужен
>>2022739 upd Учебные материалы, когда доходят до wildcard, все как один включают режим дебилов и забывают про типизированные переменные напрочь, хотя это предыдущий параграф/страница. Пример - тутор от оракла: https://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html "So what is the supertype of all kinds of collections? It's written Collection<?> (pronounced "collection of unknown"), that is, a collection whose element type matches anything. It's called a wildcard type for obvious reasons. We can write: void printCollection(Collection<?> c) { ... } and now, we can call it with any type of collection." Возьми да напиши Collection<T>, тоже будет collection of unknown, тоже будешь call it with any type of collection. Кого ебёт, что к этой Т ты больше не будешь обращаться? Окей, чтобы скомилировалось и работало, дженерик ВНЕЗАПНО придётся дописывать перед войдом.
>>2022856 Какие другие? Мне надо проверять работу пары виджетов, бывали случаи когда они отваливались либо работали неправильно, в основном из-за косяков при билде фронта
Объясните пожалуйста в кратце как это работает, нихуя не понимаю
strings.forEach(System.out::println);
Почему в println не передаются аргументы? Как он понимает что ем унужно именно значение элемента в списке strings вывести? А если туда другие объекты передавать?
>>2022902 Передаются, просто ты используешь сокращённый синтаксис лямбда-выражений (method reference). В более развёрнутом виде твоя строка выглядит как: strings.forEach((s) -> System.out.println(s)); что, по сути, тоже сокращение. Если ты ещё не проходил лямбда выражения, то не используй пока что эти штуки. Пиши через обычную петлю.
>>2022885 >Какие другие? Мы используем New Relic, но есть много других сервисов мониторинга прода. Они предпочтительней самописных потому что если сам сервис мониторинга ляжет, его быстро поднимут.
>Мне надо проверять работу пары виджетов, бывали случаи когда они отваливались либо работали неправильно, в основном из-за косяков при билде фронта Ну такое и правда только самому проверять. New Relic это больше про общую работоспособность сайта.
В общем юзай headles mode. И сразу совет, если будешь делать рассылку алертов - обязательно делай скриншот страницы, это прям очень-очень помогает при определении проблемы.
Анончики, нужна помощь. Не бейте, я совсем нубас, не могу никак решить следующую задачу, она меня уже с ума сводит. В общем, задача заключается она в написании простенького калькулятора (число-операция-число-результат). Программа должна работать бесконечно, если пользователь вводит корректные данные, но если пользователь вводит букву q то программа должна завершиться (именно завершиться, а не уведомить об ошибке). Вот что у меня пока есть: public static void main(String[] args) { Scanner sc = new Scanner(System.in); do { System.out.println("Введите число"); int a = sc.nextInt(); sc.nextLine(); System.out.println("Введите операцию"); String s = sc.nextLine(); System.out.println("Введите число"); int b = sc.nextInt(); if (s.equals("+")) { int res = 0; res = a + b; System.out.println(res); } char c = s.charAt(0); if (c == ('q')) break;
} while(true);
Сейчас это работает если вместо математического знака ввести q. Но как мне сделать так, чтобы программа завершалась если пользователь введет q вместо ЧИСЛА? Вот ссылка на этот же вопрос с тостера, если кому вдруг там удобнее будет посмотреть https://qna.habr.com/q/984843
>>2023510 Чел, ты не понимаешь зачем нужен JMH и почему он работает так. Поэтому тебе и такое решение сойдёт, всё равно ничего хорошего ты не намеряешь.
>>2023627 Потому что JMH это фреймворк для микро бенчмарков. Спринговый контекст это не микро бенчмарк. И дело не только во времени старта контекста, а еще в том, что спринг добавляет кучу прокси.
>>2024698 Еще раз: >ты не понимаешь зачем нужен JMH и почему он работает так JMH это бенчмарк для тестирования микро эффектов в сравнении. Типа что быстрее AtomicLong или LongAdder и на сколько.
Зачем бенчить пользовательский скрипт, который постоянно меняется - вообще непонятно. Хочешь побенчить свой скрипт - ну напиши тест в JMH но со статическим скриптом в ресурсах.
>>2013248 (OP) Как вы считаете, сколько часов в день оптимально заниматься кодингом чтобы через год хотя бы начинать ходить по собесам? Мне интересно программирование, но из-за того, что сначала я прям накинулся на все это и сидел сутками, а также поставил себя во временные рамки (год, а лучше быстрее) ловлю дизмораль. Последнюю неделю не делал практически ничего, провел дни в приготовлении "вот щас посижу и начну, вот-вот", из-за этой прокрастинации и безделья чувствую себя паршиво в психологическом плане.
>>2017438 твой код вызвал у меня флэшбэки. Я лет 6 назад подобной хуйнёй занимался. В смысле, писал репортилки по джире для манагеров-идиотов. Не задерживайся там дольше года. Поверь, над нормальным продуктом работать гораздо интереснее.
>>2026238 да не, всё то. Присмотрись лучше. Мы тут по стриму sullier-ов идём с фильтром, и отдаём результат вызова с первой непустой коллекцией. Т.е. если первый метод вернул не пустую коллекцию, то мы не станем вызывать второй и третий. Если первый вернёт пустую, а второй не пустую, то третий метод дёргать мы не будем.
Решил к вам вкатиться, а то хули бля все бабки гребут ща лопатой, один я как лох. До этого работал в яндекс доставке. Короче, как вы и советовали, прочитал 4 тома Кнута, потом Седжвика этого ебаного, выучил кор, спринг, скл, гибернейт, в общем, самые основы более-менее схватил. На всё про всё ушло месяца 2-3. Ща ещё линух освоить надо, вчера вот начал. Ну так вот, чё типа дальше делать?
>>2026626 >прочитал 4 тома Кнута, потом Седжвика этого ебаного, выучил кор, спринг, скл, гибернейт, в общем, самые основы более-менее схватил. На всё про всё ушло месяца 2-3.
>>2026626 Если ты за три месяца до сих пор не вкатился и ещё не на стажировке хотя бы, то лучше забей на это дело. Видно же, что не твоё, так зачем мучиться. Есть и другие хорошие сферы для вката.
>>2026664 Конечно, нельзя, там же нет цветных картинок и тележек с нулями-единицами. Мань, если ты нишмог-ниасилил, то и говори в таком случае только за себя. Там ведь больше 4 томов, но я же не написал, что прочёл все (это было бы уже неправдой). >>2026668 Спасибо, попробую. >>2026679 найс бубарех)
>>2026626 >прочитал 4 тома Кнута >>2026858 >Там ведь больше 4 томов, но я же не написал, что прочёл все (это было бы уже неправдой). Эталонный, дистилированный мудак и пиздабол из палыты мер и весов! Вначале пиздит что прочел 4 тома Кнута за 2 месяца, 2 тома в месяц что уже пиздеж стопроцентный. Но этого ему показалось мало и он решил пиздеть дальше, что там больше томов и прочел он не все. Кретин, ты бы хоть википедию открыл и посмотрел, сколько томов "Искусство программирования" написано. Хотя можешь спиздануть, что Кнут тебе лично выслал черовики еще не изданных томов, но пока руки не дошли прочесть.
>>2026358 Тут разве не сначала дернутся всё методы, а уже потом произойдёт фильтрация? В Котлине, чтобы это предотвратить есть asSequence, в ванильных стримах не помню есть ли такое.
>>2026885 > Кретин, ты бы хоть википедию открыл и посмотрел, сколько томов "Искусство программирования" написано. Хм, ну да, обсренькался. Почему-то казалось, что их больше будет, их по-дебильному выкладывают чё-то. Выходит, я всё прочитал у него. Кстати, скажите, Concrete Mathematics надо читать или не пригодится? >>2026915 Я его начал читать три месяца назад, дебс. Как бы я устроился куда-то за это время?
Если вам выделили угол - то сидите спокойно и не орите. Почему я должен слышать голос со стороны параши? Рты позакрывали. Ещё одна падла вылезет отсюда и протечёт в .NET тред - будут приняты меры. Свободны.
>>2026956 > Если вам выделили угол - то сидите спокойно и не орите. Почему я должен слышать голос со стороны параши? Рты позакрывали. Ещё одна падла вылезет отсюда и протечёт в .NET тред - будут приняты меры. Свободны.
>>2026948 >, я всё прочитал у него >скажите, Concrete Mathematics надо читать или не пригодится? Манька, ну зачем ты выросла таким пиздаболишкой? Если бы ты прочитал Кнута, все четыре, блядь, тома, у тебя бы не было вопроса, нужно ли читать Concrete Mathematics или нет.
Как лучше реализовать фильтрацию. Перед тем как отдать данные клиенту, нужно пропустить список через цепочку фильтров. Как это архитектурно правильно делать? Типо можно через стримы пропустить офк. Или строить цепочку в духе паттерна Цепочка обязанностей.
>>2027418 А ты не можешь отличить абстрактный метод от неабстрактного? >>2027419 Я-то могу, анон спрашивает, почему нет аннотации @FunctionalInterface.
>>2027422 >Я-то могу, анон спрашивает, почему нет аннотации @FunctionalInterface. Анон спрашивает >Почему интерфейс Iterable не считается функциональным интерфейсом? Iterable является функциональным интерфейсом, потому что у него один абстрактный метод. А @FunctionalInterface это просто свистоперделка, которая просто на этапе компиляции позволяет проверить, что у интерфейса один абстрактный метод. Что-то типа @Override - отсутствие ее не мешает оверайдить, но наличие дает дополнительные проверки.
Сложно будет на жабе написать приложение, которое будет принимать http реквесты и делать с ними CRUD? Нужен ли для этого фреймворк, или на ванильном языке можно?
>>2027498 Если использовать фреймворк например спринг, то можно прям по тьюториалу все намутить за день. Если на ванильном, то конечно поебаться придется знатно.
>>2027896 Сначала SQL. Далее потыкай JDBC для любой СУБД. Дальше мавен, научись в нём подключать зависимости (неважно, какие. пусть хоть те же JDBC-драйвера вместо ручного указания жарника в classpath) и собирать jar with dependencies, всякие профили и модули можешь потом. Ну и спринг, легче всего начать сразу с бута. Перед спрингом можешь опционально потыкать сервлеты по какой-нибудь мурзилке типа этой https://metanit.com/java/javaee/
Сап, ананасы. Есть одна вакансия с релокейтом в Эстонию, как я и мечтал. HR прислала стек – Java 11, Spring Boot, PostgreSQL, Docker, Kubernetes, AWS.
Собсна, прошу вашей помощи. Что почитать по многопоточке, учитывая, что за 3 года мне НИ РАЗУ блять не пришлось с нею работать, что выдрочить по кору, куда смотреть с докером и кубером (с последним так же ни разу не работал), какую еще хуйню меня могут спросить? Проект: создание системы автоматизации реферальных программ
>>2028207 "Для начинающих" - стоит. Выглядит как сокращённая версия полного руководства. Сам по ней получил первое представление о коре. >>2028217 Хорстман же наоборот сложнее. Чем Beginners guide - так точно сложнее. Я бы не смог его читать как первую книгу.
>>2025568 Лучше всего просто писать то, что тебе хочется писать, но на технологиях, которые нужны для собеседований. Мне кажется, это единственная возможность не выгореть еще до начала работы, лол. Браузерку какую-нибудь напиши.
>>2027968 >Что почитать по многопоточке Почитай Java Memory Model, что такое happens before какие гарантии есть, а каких нет, волатайл, синхронайзд и java.util.concurrent что там есть.
>>2025568 Пока ты учишься, перед тобой стоят те же проблемы, которые у тебя будут и на работе. Выбери несколько дней недели, в течение которых ты по этой теме ничего не делаешь и даже не думаешь об айти. Если днём ты учишься, то вечером выключай компуктер и постарайся на что-нибудь максимально отвлечься, как можно сильнее погрузиться во что-то другое. Тогда на следующий день утром ты снова будешь свеж и восприимчив к обучению. Если же мысли про айти и вкат никогда не будут покидать твою голову, то они там протухнут, а энтузиазм, обучаемость и способность сохранять внимание - пропадут. Ты спрашиваешь "Сколько часов в день оптимально заниматься" - я считаю, это количество часов зависит как раз от того, насколько хорошо ты потом переключаешься и отдыхаешь. Твоя задача в том, чтобы нащупать стабильную посильную нагрузку, а потом постепенно увеличивать это количество часов.
>>2013248 (OP) Вот думаю может мне болт положить на плюсы и перекатиться. Есть подозрения что моя шарага имеет неправильный подход к обучению. Первые пол-года обучали С потом С++. На втором курсе будут снова плюсы а потом Java. Слышал мнение что это не самый лучших подход. И понятно что не буду для десктопа писать. Не думаю что там вакансий много.
>>2028592 Я так и сделал, хотя изначально планировал вкат в плюсы. Работу на плюсах найти сложно, да и вообще ощущение, будто на них пишут только сеньоры.
>>2028640 Открыл первый том, в предисловии же "Как и все предыдущие издания этой книги, настоящее издание по-прежнему адресуется серьезным программистам, которые хотели бы пользоваться Java ()ля разработки настоящих проектов. Автор этой книги представляет себе вас, дорогой читатель, как грамотного специалиста с солидным опытом программирования на других языках, кроме Java"
>>2028416 >А потом переходить к Хорсттману? Нет, после Шилдта будет бессмысленно. Только "Полное руководство" не читай от корки до корки, он не задуман как самоучитель, это справочник, куда нужно смотреть когда появятся какие-то конкретные вопросы. Прочитай "Руководство для начинающих", этого хватит.
>>2028685 Хорстманн для новичков в программировании норм, но вплоть до определенного момента. На коллекциях будет уже не очень понятно, о чём идёт речь, если нет определенного бекграунда (алгоритмов и структур данных). Но это не какой-то продвинутый материал. Любая другая книга по Джаве для начинающих заменит двухтомник Хорстмана, хоть Блинов (но его я не советую читать).
>>2028765 Какой-нибудь консольный калькулятор отожрёт насколько мегабайт. Что-нибудь свинговое жрёт ещё больше. Спринг бут может несколько сотен метров занять. Жирный энтерпрайз проект больше гига займёт. Это не значит, что они все реально столько потребляют, джава резервирует какое-то количество памяти, чтобы не просить у ОС каждый байт.
Тут всё еще спрашивают про актуальность java? Есть смысл изучать и с головой погружаться во всю экосистему и инфраструктуру java вместе с ЕЕ, МЕ, Котлинами, Андройдами и спрингами, облаками? Или есть более перспективные альтернативы?
>>2028952 > Тут всё еще спрашивают про актуальность java? Открой hh.ru, введи в поиске "java" и другие языки, посуди об актуальности по количеству вакансий сам. > ЕЕ Вытеснено спрингом > ME Вытеснено андроидом
Подскажите гайд как сохранять файл (тектовый, например) в MongoDB, который принят в контроллере. Не имел дело с монгой ранее да и с сохранением файлов не работал толком
Сап, джавач. Может подскажет кто, как собрать из стрима листов List<SomeType> все в единый List <SomeType>? Короче для каждого листа потока вызвать addAll к выходному листу?
>>2029309 Потому что в джаве нет функций, единственный способ передачи кода в другой метод до появления лямбд - передать объект с методом, и чтобы вписать в этот механизм лямбды, пришлось придумывать костыли. Лямбда в джаве - это почти синтаксический сахар над анонимным классом (new MyType() { ... }), но работает несколько иначе.
>>2029334 Не знаю, попытался понять и чота не получилось, забил и все делаю без лямбд. А вот в свифте как-то сразу схватил как это работает. Мб синтаксис виновен.
>>2028416 Да, но полное руководство прочитывать не надо, как анон выше сказал. Книга вообще называется "Complete Reference", но переводчики обосрались уже в названии. Добро пожаловать в мир переведённой технической литературы. >>2028729 >Нет, после Шилдта будет бессмысленно. Схуяли? Шилдт даёт базовое, поверхностное представление о языке и синтаксисе, а хорстманн - более глубокое понимание, которое потом проверяют на собеседованиях. Например, в Beginners Guide хешмапы ни разу даже не упоминаются, то время как у хорстманна описаны даже .synchronizedMap и ConcurrentHashMap.
Доброго дня, аноны. Есть задача сериализовать ебанутую хеш-мапу следующего вида: HashMap<Method, Map<List<Object>, Object>> через стандартный интерфейс Serializable. Но, как я понял, я проебался в том, что все вложенные типы мапы тоже должны быть Serializable, иначе получу NotSerializableException. А у меня там лежат обжекты, которые соответственно не помечены как Serializable, соответственно, при попытке сериализации летит эксепшон. Что можно сделать, в данном случае? Возможно как-то все-таки сериализовать мапу встроенным механизмом явы?
>>2029793 >через стандартный интерфейс Serializable. Извиняюсь, имел в виду стандартный ObjectOutputStream, через который сериализуются объекты классов, имплементирующие маркерный Serializable.
>>2029363 >Имхо читать стоит именно jsr-133 и только на английском. JSR-133 имеет смысл читать только если у тебя есть хорошая подготовка, ты понимаешь проблемы многопоточности, примитивы синхронизации. И тебе нужно глубокое понимание темы, для реализации конкарент библиотеки или чего-то подобного. Обычному прикладнику - это вообще не нужно.
>>2029793 Чтобы сериализовать через ObjectOutputStream надо чтобы объект реализовывал интерфейс Serializable без этого никак. Если поменять объект ты не можешь, то или унаследуйся от него и реализуй Serializable или заворачивай его в свой объект в котором реализуй сериализацию руками. https://pastebin.com/kLaFQKsr
Максимально близкий тред, наверное, и спрошу. Кто-то знает как в salesforce создать свой territoy managment? Вообще никакой инфы по кастомному не нашел. Мне бы хоть принцип понять.
>>2029615 >Шилдт даёт базовое, поверхностное представление о языке и синтаксисе, а хорстманн - более глубокое понимание То же самое понимание он даёт, никакого "глубокого понимания" у Хорстмана нет, у него воды много, объясняет те же самые вещи что и везде. >Например, в Beginners Guide хешмапы ни разу даже не упоминаются О нет, в "Руководстве для новичков" не упоминаются хешмапы, которые проходятся в любом учебнике по алгоритмам и структурам данных, а гугла не существует и поэтому мир рухнул, Шилдт ненужен, Хорстман навсегда! В "Полном руководстве" Шилдта всё есть. Читаешь бегиннерс гайд и потом поглядываешь в полное руководство по темам, которых там не было. Вот и всё. Серебряной пули в программировании нет, когда речь об учебниках. Я вообще по Блинову учился.
>>202984 От галеры зависит. На нашей, например, без многопоточки не вывезешь. По крайней мере, если нет понимания в чем вообще проблема. Поэтому на собесах всегда спрашиваем, правда достаточно простые вещи. И действительно, редко кто справляется. А кодерки, которые не будут вагонами, очень нужны, поскольку заниматься обучением никто не будет.
>>2029842 От галеры зависит. На нашей, например, без многопоточки не вывезешь. По крайней мере, если нет понимания в чем вообще проблема. Поэтому на собесах всегда спрашиваем, правда достаточно простые вещи. И действительно, редко кто справляется. А кодерки, которые не будут вагонами, очень нужны, поскольку заниматься обучением никто не будет.
Хорстманн лучше Шилдта только тем, что там есть десятки готовых программ по темам, которые проходишь. А для околонулевого важно запустить, покрутить, изменить готовый код, а не смотреть куски кода, которые еще надо придумать как применить. А по наполненности он немного хуже. Из околоновичковых в плане глубины вообще философия джавы лучше всего, но она устарела на 10 лет. Сокращенный Хорстманн - плохой совет, там очень много пропускается в плане деталей. Это как раз для свитчеров с других языков. Начинал с нее, дойдя до ооп - нихуя не понял. Перешел на Шилдта и Хорстманна одновременно, в итоге выбрал Хорстманна.
в javafx не рисует на Canvas прозрачным ни fillы, ни clearRect, ни просто рисование Color.TRANSPARENT, нихуя не работает, сначала работало, а потом в какой то момент перестало, бекапа офк у меня нет, гуй не трогал вроде, ну к канвасу никаких эффектов и тд не применял, чудо способы не помогают вообще мне пох на него, просто я хз как его почистить
>>2029430 Ты сейчас назвал две абсолютно разные технологии, просто стримы сильно завязаны на лямбдах. Для понимания и использования "лямбд" не надо особо ничего, это концепция, идея. Довольно простая. Со стримами сильно сложнее, потому что это не только идея, но и куча довольно сложных для понимания API-инструментов, надо их изучить и поиметь с ними практику.
>>2029894 >О нет, в "Руководстве для новичков" не упоминаются хешмапы Это руководство занимает 700 страниц, первый том хорстманна - 800+. Хорстманн описал даже синхронизированные версии этой базовой структуры данных, в то время как шилдт её даже не упомянул. Ты, наверное, очень долго думал, кого из этих двух авторов обвинить в большом количестве воды. >в любом учебнике по алгоритмам >гугла не существует Ну и зачем ты тогда читал своего Блинова? Дрочил бы себе гугл и справочники, там всё есть.
>>2029975 JSR-133 нужен если ты пишешь свой примитив синхронизации, свою версию ConcurrentHashMap или вообще JRE. Прикладникам достаточно знать что такое happens before и когда у нас есть гарантии happens before. И для этого совсем не нужно читать JSR-133.
Что было для вас самым сложным в изучении джавы? Даже если сейчас для вас это нубская концепция для ретардов, было ведь время, когда вы смотрели на набор букв перед собой и охуевали.
inb4: нихуя сложного, на изичах вкатываюсь как сыр в масле и ссу на дауновхохлов забыли спросить
Пару месяцев назад взяли java разрабом в Один Банк, опыта нет, самоучка. Все это время после устройства, не считая пары недель внутренних курсов для новых сотрудников, я предоставлен сам себе. Попал в команду где никто с java не работал, их проект только собираются переводить на спринг и так называемый техлид должен будет сдать экзамен по джавовскому стеку, и выходит что меня взяли на будущее чтобы потом когда нибудь потихоньку проект мигрировал и вся команда обучалась джаве. Меня это не устраивает, я надеялся попасть в окружение профессионалов и впитывать знания, набираться опыта, а не сидеть хуи пинать. Посоветуйте какие направления в разработке и технологии копать, чтоб к сентябрю съебать от сюда в какую нибудь нормальную ИТ контору с норма зарплатой
>>2030430 >>2030452 Охуеть, как ты вкатился если не удупляешь что ты сейчас в лучшем положении для роста. Почему ты хуи пинаешь, а не проявляешь инициативу тоже вопрос.
>>2030430 Будешь менять место работы сможешь рассказать как вы переписывали что-то на спринг. Чуток приукрасишь скажешь с какими сложностями, плюсами и минусами столкнулись и вот тебя синьором берут.
>>2029850 Спасибо, анон! Была мысль обернуть их в ДТО, просто я думал, что все поля объекта тоже должны быть сериализуемыми, и поля этих объектов - тоже и т.д. Думал, что он считывает их как бы циклично в глубину и так сериализует в файл, и именно по этой причине не сериализуется мапа. А почему у тебя на примере в обертке именно Externalizable, а не Serializable?
>>2030466 Вкатился потому что имею хоть какие то начальные знания в отличие от моей команды вместе с техлидом. Инициатива моя никому не нужна, подразумевается что я сижу и готовлюсь к тому техстеку который прописан в документации к проекту, что я в принципе и делаю. Но я хочу реальный опыт и сейчас, а не когда то там в будущем.
>>2030452 >>2030493 Спасибо большое за советы. Понимаю что они грамотные, но видя то как все долго раскачивается боюсь если я не буду рыпаться потеряю кучу времени в пустую и смогу рассказывать об этом опыте только года через 3.
>>2030572 Учился с полного нуля гдето 1.5 года, но без системно и когда повезет со временем, потому что семья и все сопутствующие ништяки. Так что можно раза в 3 быстрей до моего уровня дойти. По собесам особо не ходил, потому что жил в мухосрани и связываться со мной не хотели, а те кто связывались сводили к тому что нет опыта. Так что тупо повезло что на мой отклик обратили внимание, а на тех собесе вызвал симпатию за счет того что "горят глаза", потому что мне это действительно нравится и я хочу чтоб это было моей основной деятельностью, а не по остаточному принципу.
>>2030913 ну вот именно это же я спрашивал первоначально) кто что советует подучить, в какие технологии больше углубится, какие просто посмотреть, какие знать для чего используются. В какую сторону воевать в общем, пока есть возможность.
>>2030995 Где и как это исопльзуется блять. То что это автосборщик мне нихуя не говорит, и то что во вкладке депендесис прописываются зависимости тоже. Неужели это все, что нужно знать о нем?
>>2031379 Да почему, для чего-то сверх простенького вполне себе даже юзабельно. Обычно я набрасываю алгоритм в голове, а потом неспешно в год перевожу если нет пэки например пока я на природе.
Какие ограничения на количество полей в сервисах спринга (класс @Service/Component). Может ли сервис иметь собственные поля, помимо инжектнутых @Autowired? Или делать сервис как бы без состояния? Чтобы методы принимали типы предыдущих вызванных методов?
>>2031414 >Какие ограничения на количество полей в сервисах спринга (класс @Service/Component) Ограничений нет, но если у тебя больше десятка полей, то вероятно ты делаешь что-то не так.
>Может ли сервис иметь собственные поля, помимо инжектнутых @Autowired? Да можно иметь поля которые не инджектется а инициализируются в конструкторе, это вполне ОК. Можно даже получить в конструктор какую нибудь фабрику у нее вызвать createXXX() и в поле сохранить результат, а саму фабрику никуда не сохранять.
>Или делать сервис как бы без состояния? Чтобы методы принимали типы предыдущих вызванных методов? Сервис не должен хранить бизнес состояние. Бизнес состояние должно храниться в базе или еще каком нибудь персистентном хранилище. В идеале сервер должен быть стейтлес, чтобы в любой момент его можно было остановить и запустить новый инстанс. Но это не касается каких-то внутренних полей которые нужны для функционирования сервиса и не содержат бизнес состояние.
Сап, джавач. У меня есть обычный джавовский предикат. Мне надо вытянуть данные из бд с учётом этого предиката. Как его можно перегнать в критерию/спецификацию?
>>2031954 Это конечно можно, но этот самый предикат скорее всего будет динамически меняться. Хотелось бы получить какой-нибудь гибкости, а не хардкодить запросики
>>2031740 Я делал так написал свой мини язык условий наподобие SQL. Дальше пользователь описывает условие на этом языке фактически в UI набирает фильтры на поля. Дальше состовляем из них предикат который можно и в Яве использовать и который легко конвертируется в where.
в intellij idea после cleanup все поля сортирует в алфавитном порядке сопровождаясь охуенным количеством illegal forward reference, в arrangement во всех правилах стоит keep order, я даже пошел на крайние меры и сделал сброс настроек в code style плагинов не стоит вроде, есть способы пофиксить?
>>2032490 А ты не заметил, что каждый недоязык на JVM создает свою систему сборки. SBT у Scala, Leiningen у Clojure, и только Котлин решил возглавить существующую систему.
>>2032814 Сидят на древних питонах и либах, баги в либах правят сами, благо всё опенсорс и не надо пересобирать. Куча контор форкает джангу и переделывает её под себя. Ну и проекты не такие большие, как в жабе. Жить, в принципе, можно, пхпшники и жопаскриптеры же как-то живут.
>>2032810 Основные преимущества джавы в её экосистеме, голая джава мало чем лучше шарпа или крестов. Вот и пиши что-нибудь для экосистемы, обёртки над спрингом, недостающие плагины для градла, убийцы градломавенов, плагины для идеи, или что-нибудь, облегчающее разработку под андроид.
Всем прувет. Посоветуйте пожалуйста материал для изучение стека JavaEE, Beans, CDI, JBDC Не так давно начал изучать сервлеты, на ютубе нашел только один более менее годный источник https://www.youtube.com/watch?v=U3YS-U_N3vo&list=PLiJ76e8LBYQVOHd1G3vva9FGV66sdV3N1&index=3 У остальных лио информация выходит куцая, либо мало рассказывают. Параллельно читаю от Энтони Гонсалвеса (тоже где то советовали) материал по EE
Буду крайне благодарен совету добро-анонов! Вкатился неделю назад
Сколько стоит разработать простое приложение с графическим интерфейсом и 4 кнопками? Суть приложения нажимаешь на кнопочку и появляется текст или всплывающее окно с информацией. Сколько по времени этой займет?
Анон, привет, реализую в спринге запросы к postgres с помощью jdbcTemplate.query(), используя ResultSetExtractor. Подскажи, пожалуйста правильно ли понимаю, что просходит во время выполнения запроса и как это можно оптимизировать. Ниже лог jdbc-драйвера:
Выходит, что выполнение запроса на стороне БД и получение строк клиентом занимает около 1с, когда остальное время занимает обработка ResultSet (после получения всех строк) Если это так, то каким образом можно оптимизировать?
В коде ResultSetExtractor значения полей собираются в объект, который сохраняется как элемент hashmap.
Почему .toString() переопределён для коллекций, но не переопределён для массивов? println выводит содержимое в первом случае, и какое-то говно во втором.
>>2035385 Классы для массов не заданы заранее, а динамически создаются при первом создании массива данного типа. Подозреваю, что в первых версиях, для упрощения реализации JVM решили не переопределять никакие методы toString(), equals(), hashCode() у классов массивов.
Стоит ли откликаться на вакансию джуна, если в требованиях есть алгоритмы, а я от них в обморок падаю? Забить хуй и попытаться энивей или потом опозорят хихикающие травители-тимлиды? Пытался освоить алгосы как можно быстрее, но любой учебный материал требует матана, блядь.
>>2035979 Знаний на уровне задрачивания Кнута никто не требует. Если можешь пояснить за сложность ArrayList, LinkedList, HashMap и TreeMap, этого тебе хватит на много лет вперёд.
>>2035983 >core Мимо, это же не бизнес логика. >config Там спринговые конфиги лежат. >security Если бы компонент был связан с секьюркой, то да, но это очень специфичный случай. >common Мимо, этот компонент только в одном месте используется. Еще варианты?
>>2035974 >А в какой пакет класть кастомные реализации каких-то внутренних компонентов спринга, которые непосредственно к бизнес логике отношения не имеют? В полиэтиленовый.
Чел, ты не можешь придумать имя пекаджу, ты уверен что правильно выбрал профессию?
>>2037432 Если ты и правда спрашиваешь, то если стандартный пекедж org.springframework.stereotype, то ты делаешь что-то типа org.springframework.stereotype.custom. Разве так сложно?
>>2037917 Скоро вся тематика будет сплошь из инцелов, карланов, знаменитостей тредов, захвата Европы, набегов, в чём он не прав, рюкзакодебиллв, дочкек и пориджей.
Присутствуют ли в треде люди, перекатившиеся из другого стека? Сильно ли проседали по деньгам в первое время или наоборот? Было ли сложно итд. Пилите истории успеха. Пожалуйста
>>2035979 Ебанатов с алгоритмической секцией на собесах на рынке не так уж много. Мне встречались только Яндекс, мэйл, Тинькофф и дойчбанк. Ни в одну из этих контор не рекомендую идти на джуна. Выбить нормальную зарплату с ростом скилла не получится. Инфа 100%
>>2039232 Враки. Ща такой кризис кадров, что любой конторе выгодней давать тебе больше денег, нежели ебаться и искать замену. С джунами попроще, да, но уже начиная с мидла, можно(и нужно) смело просить больше бабок по кд.
>>2039544 upd промахнулся. Это Лафоре >>2039106 книга заинтересовала. А Cracking Coding Interview всё равно читать собирался. Странно, что там алгоритмы есть - я думал, это книга с лайфхаками, а не учебник.
>>2038491 открываешь список классических алгоритмов и пытаешься их реализовывать. Если не получается, смотришь видео, где их реализовывают, пытаешься все понять. закрываешь видос и через час садишься писать сам.
>>2039474 А ещё не понятно, зачем тебе платить больше, если ты и так работаешь. А если заплатить больше тебе, то остальные тоже захотят. Проще слить одного, а потом за пол года найти очередного лоха. Ну или не лоха, а за нормальную цену. Зато все работают на старой ставке. Я проходил такое сам, и видел на примере других коллег.
>>2039997 Я не он, в большинстве компаний так и делают, как ты говоришь, но чекни затраты на найм норм специалиста в хорошую компанию. Это очень дорого + человек в проект будет включаться полгода, чтобы выйти на полный перфоманс. Так что в некоторых хороших местах стараются удерживать. Сам я пока что зп повышал в основном сменой работы. Алсо, по поводу: >зачем тебе платить больше, если ты и так работаешь Сейчас не та индустрия. Не платят больше - просто сразу уходишь. >А если заплатить больше тебе, то остальные тоже захотят А если не заплатят, они узнают твою новую зп и тоже съебутся. У меня так и было примерно.
>>2039997 Потому что нанимая нового, ты будешь нанимать но рыночной цене, а внутри конторы можно повышать по чуть-чуть держа цену сильно ниже рыночной, изредка подбрасывая кость в виде +10-20к. В этом суть. В этом стратегия компании. Но девелоперы могут её частично контрить, запрашивая более резкие повышения. Но тут нужно быть наглым. Челик выше правильно написал, что наём нового сотрудника это куча геморроя, начиная от собесов и заканчивая тем, что он будет ещё какое-то время входить в проект.
>>2040363 ну это конечно так, но с на языке с жинериками их можно немного иначе реализовать. А жава4 это язык без них. Апплет кстати даже в ие не смог запустить, пришлось через апплетвью в жава8 запускать.
>>2040330 Вчера начал читать, апплеты там не то что старые, но даже какие-то бестолковые, те что ко второй главе, как минимум. Визуализация сомнительная и исполнение такое же. Сам текст книги мне тоже местами не нравится - например, как объяснялись кастомные array классы и Big O. Очень много воды, повторений, и как-то не по делу. Возможно, за эти 20 лет качество книг по Computer Science действительно выросло. Пикрил - наглядное изображение интерфейса в понимании автора. Но охват тем, судя по содержанию, хороший, так что попробую ещё почитать. Всё-таки подкупает нацеленность автора на доступность изложения.
>>2040661 Просто мне напомнили одновременно про эту книжку и про ханойские башни. И я пролистал главу и включил код из книжки и иллюстрации на апплетах и реализации алгоритмов. Ничего так.
Может кто-то в двух словах объяснить, как JSF напрямую обращается к бинам? JSF раскладывается на сервлеты — это понятно. Но как тот же JS на странице триггерит методы в бинах?
>>2041410 Ну короче если в двух словах, и я правильно понимаю, то происходит это примерно вот так:
1) jsf страницы на сервере разбираются на сервлеты; 2) из сервлетом рендерится чистый html; 3) далее когда страница уже была загружена, мы можем исполнять js; 4) ну а потом обратная связь происходит банально через http запросы/ответы.
>>2041506 Нихуя не по делу, очень много графомании. Как минимум, в вопрос про книги можно включить ВНЕЗАПНО книги, пусть вкатун сам выбирает, что ему по зубам: Java for Dummies -> Head First Java -> Java Programming for kids -> Java Beginner's Guide -> Core Java -> Java Complete Reference -> Thinking in Java -> Java Методы программирования. Чаще всего рекомендуют Beginners guide и Core Java. Далее, в ответе на вопрос "я выучил кор ..." кроме ссылки можно текстом перечислить мейнстримный стек технологий, с которым уже можно собеседоваться: Core (+ Collections, Streams, Concurrency), SQL + JDBC, Spring, XML, Hibernate, Git, Алгоритмы и структуры данных, Шаблоны проектирования. В ответе на "сам ничего сделать не могу" - нихуя непонятно, что за лабапас? Три ссылки - это кто-то старательно перечислял говно? Лучше сделать нормальную ссылку на leetcode.com. Далее, в вопросе про алгоритмы упоминается Седжвик - нахуя? Это книга не для вкатунов, с таким же успехом можно советовать Кнута. Желательно вспомнить более простые манускрипты, выше например упоминались Грокаем алгоритмы и Роберт Лафоре, должно быть ещё что-то. К вопросу про собеседования можно добавить Cracking the Coding Interview, потому что её везде советуют, и упомянуть десятки тестовых собеседований на ютуб-канале Eugene Suleimanov, годнота же (https://www.youtube.com/playlist?list=PLlsMRoVt5sTMMCwd_gLaaZMkQhzVh9hLA).
Аноны, пробую в MongoDB Поднял образ монги в DockerDesktop. Как подключиться к нему в MongoCompass?
Компас какую-то БД по дефолту поднимает? Заходишь в Компас без запущенного докера - подключается по дефолту к Бд. С подключенным докером - такая же херня.
>>2042036 Компас написан на электроне, спрашивай в js треде. Посмотри куда биндится сервер в докере и подключайся по нему в компасе. Если ты полный набор комьюнити эдишн ставил, то у тебя с компасом еще и локальный сервер в самой системе поставится, в винде можешь посмотреть его в службах.
2chOverflow, привет. Я подаю в контроллер спринга текстовый файл. Мне надо прочитать его и записать в БД (в MongoDB). Я принимаю файл с помощью MultipartFile, а планирую читать с помощью BufferedReader'a других вариантов не знаю, мб получше есть. Но спринг ругается т.к. BR хочет java.io.File и не может скастовать MultipartFile в File (даже если приведение втуляю, которое сама же IDE и предлагает).
Нашел один из вариантов - сохранить где-то файл локально, а потом считывать его уже в File. Ну и т.д. Без этого шага как-то можно? Не бейте, а помогите, пожалуйста
>>2042483 Спасибо, а можно-таки более развернуто? Для тупых
Я могу нагуглить оф. док, ток в английском слабо шарю же. Т.е. я если сделал MultipartFile file, то потом у file вызываю .getInputStream() и он мне..че делает?) Дает поток? Я могу обозначить новый файл, из которого читать типа File file2 = file.getInputStream; ? И потом уже читать из file2 ? Так, получается?
Очевидно, что ни loom, ни valhalla, ни panama в java17 не будет. Причем их распиарили уже года 3 назад, а разрабатывают уже лет 6-7. Они там ебобо чтоли?
>>2042501 Я могу ответить на конкретные вопросы, но писать код не буду. У тебя есть InputStream из которого можно читать байты, можно его завернуть в InputStreamReader и уже читать символы. Полученные байты/символы можно писать в OutputStream/Writer.
>>2043290 17 это LTS релиз, даже если бы они были готовы никто не будет добавлять такие большие изменений в LTS релиз. Вначале их выпустят в обычном релизе в preview режиме.
>>2043497 Но пиарить эти проекты начали еще при java 10. Толку было с этими минорами/мажорами, если по факту между 10 и 17 разницы будет в 2 раза меньше, чем между 7 и 8.
>>2043493 А ты хорош. Вот только там есть метод transferTo для этого всего, а содержимое, если захочется, можно взять просто через getBytes без всякой хуйни.
>>2043746 >Толку было с этими минорами/мажорами, если по факту между 10 и 17 разницы будет в 2 раза меньше, чем между 7 и 8.
Между 10 и 17 много изменений, как синтаксических так и внутренних которые не видны на прикладном уровне: - text blocks - records - switch expressions - var - Pattern Matching for instanceof - Sealed Classes - 2 новых GC - foreign memory - перепилили реализацию сокетов нужно для loom - nested classes
>>2045105 Раньше внутренние классы полностью реализовывались компилятором. Например чтобы внутренний класс имел доступ к приватному полую родителя - компилятор генерировал специальный метод доступа. JVM никак не различала внутренний и обычные классы. Теперь есть JEP 181: Nest-Based Access Control. Не помню зачем, но это нужно было для value типов.
>>2045363 Полноценная поддержка лямбда-выражений. Ключевое слово default в интерфейсах для поддержки функциональности по умолчанию. Статические методы в интерфейсах. Ссылки на методы и конструкторы. Функциональные интерфейсы (предикаты, поставщики и т. д.) Потоки (stream) для работы с коллекциями. Новый API для работы с датами.
>>2045276 Дальше будет только меньше. В языке остается все меньше вещей чтобы развернуться и не сломать километры индусского легаси кода. Вот и остается только вм и мусорку пердолить
>>2045633 Но дженерики для примитивов из вальгаллы, легкие треды из лума это же клево. И то, что всякого мусорного сахара меньше, чем в других языках это хорошо. Но вот эта хуйня с кормлением завтраками бесит.
>>2045730 Нет, спирвадабейся было бы, если начал задвигать телеги по типу "Сначала создай такую мощную платформу, которая станет промышленным стандартом в тырпрайзе, а потом вкручивай туда новые фичи каждые полгода".
>>2045494 >Потоки (stream) для работы с коллекциями. >Новый API для работы с датами. Ну прям достижение, теперь не надо JodaTime и Guava подключать!
>Полноценная поддержка лямбда-выражений. >Полноценная поддержка лямбда-выражений. >Функциональные интерфейсы (предикаты, поставщики и т. д.) Вот это единственное заметное нововедение.
>Ключевое слово default в интерфейсах для поддержки функциональности по умолчанию. >Статические методы в интерфейсах. Чуток сахарку в компилятор досыпали, достижение!
Ты концентрируешься на каких то мелочах, но которые используются в повседневной жизни. Но при этом игноришь вещи которые требуют действительно сильной переработки JVM но незаметны снаружи. Те же compact strings, var handlers, off-heap память с ручным управлением. Понятно что Spring-REST макаке это все не нужно, а новые даты нужны. Но для написания эффективных инфраструктурных вещей типа in memory data grid это наоборот очень важно.
>>2046529 Шарп и делфи соотносятся намного меньше, чем жаба и котлин. Например, разумно в каких-то задачах переходить с жабы на шарп, потому что там не только сахар. Но с жабы на котлин - хуита какая-то, для вкатывальщиков поиграться.
>>2046845 Почему? чем РЕСТИКИ на питоне хуже JAVA рестиков? У вас спринг сделан из говна и палок, а в питоне все четко. еще куча интеграций с нейроночками java - реально говно, мертвый язык
>>2046794 Там в цикле перехват идет и в конце catch стоит continue. Итерации цикла зависят только от одной либы, которая нормально работает. У меня из другой нативной либы вылетают разные exceptions включая "unknown" рандомно на разных иттерациях, но они независимы. Получается либа падает от них что ли, какая-то залупа происходит в общем. Примерно раз в 2000 итераций(каждая от секунды и больше), там дохуя всего вычисляется, каждый раз в новых местах выбрасывает, может вообще не выбрасывать. Вообще там многопоточка, но я много раз перепроверял, конкуренция может возникнуть только при чтении, запись в уникальные объекты для каждого треда. Может либа кривая или как-то внутри себя не воспринимает адекватно многопоточность.
Ищу уже битый час, и никак не могу нагуглить такой вопрос: что рендерит JSF компоненты и как это происходит? Может кто-то дать ссылку или объяснить в двух словах? Как JSF компоненты рендерятся в HTML?
>>2047243 Ты можешь смотреть с любой позиции, которая тебе нравится.
Но >если по факту между 10 и 17 разницы будет в 2 раза меньше, чем между 7 и 8. и >если для круд-макаки изменений между 10 и 17 разницы будет в 2 раза меньше, чем между 7 и 8. разные вещи.
>>2048538 У любого нормального человека при виде подобных схем, где ввод-вывод рассосали на 30 классов, будут сомнения, нужно ли это всё задрачивать. И это нормально, потому что не нужно. Подводные труднозапоминаемые моменты почти никогда не учат и не пишут руками, для них один раз делают обёртку и потом её используют, и неважно, как она устроена. На любом проекте будет какой-нибудь свой FileUtils, и даже её юзать его придётся крайне редко, ибо почти все данные в проектах на жабе хранятся в БД и конфигах.
Нормально ли использовать Oprional для хранения полей с возможным null значением? Я просто использую его для того, чтобы про это не забыть, но IDE ее выделяет.
>>2048700 Зачем тебе тогда вообще Optional? Есть единственный правильный способ его использовать, и если ты в нём хранишь нулл, либо саму переменную Optional делаешь null, это явно не нормально.
>>2013248 (OP) знаю, вы не любите залетных, но я вот хотел посчитать среднее значение выпадение кубиков в настолке, там кидаешь несколько кубиков и выбираешь наибольшее, можно разные плюшки покупать для повышение своего урона и один из них шлем, он суммирует одинаковые значения. два кубика с помощью эксель посчитал, а вот с тремя уже сложнее и пришлось гуглить и ставить ide. так вот, можно как то упростить этот код? мне просто хотелось бы посчитать для 4 кубиков, может есть более элегантный способ решить задачу
> Process 'command 'C:/Program Files/Android/Android Studio/jre/bin/java.exe'' finished with non-zero exit value 1 Товарищи, срочно нужен совет как фиксить эту залупу. Интернет и лог молчат как партизаны. Происходит после импорта.
>>2050985 >>2050992 Попробовал все предложенные Гуглом решения и ничего не изменилось, никакие из предложенных решений не помогают, поэтому то сюда и пишу. Теперь ни в каких проэктах лиф не работает.
Осваиваю CRUD'ы. В частности, интересует JpaRepository-методы.
Если у меня таблица в БД (Postgres) ненормализованная. поле Id неуникальное. Могу я вытягивать с помошью rep.getById() / findById()? Или в таком случае не будет работать? Мне нужно все объекты вытянуть с одинковым id .
Тогда надо брать findAll(), получать List и потом с ним уже шаманиться?
СНе бейте, целый день ковыряюсь. Уже не соображаю ниче
>>2051328 Прям функций в шарпе тоже нет. Вместо функциональных интерфейсов есть делегаты, у них чуть более лаконичный синтаксис: delegate int MyDelegate(int x, int y); И потом его указывают в аргументах метода. Может быть объявлен на уровне класса или неймспейса (аналог нашего пакета, но можно сразу несколько публичных определений в одном файле писать), но создавать его "экземпляры" глобально нельзя. И есть пачка встроенных делегатов, чтобы не писать каждый раз: void f(Func<int, int> myDelegate) { ... } Ещё есть локальные функции, выглядят как методы, но описываются внутри методов.
В джаве есть статические импорты, можно было бы юзать их, а для передачи в методы придумать какой-нибудь сахар типа шарповского Func<>.
if (CONDITION) return arr.get(index / 3); else return arr.get(index); или return arr.get(CONDITION? index / 3 : index);
Я еще где-то видел, что тернарный оператор сильно уступает if else, если не используется при максимально простом случае. Только там был по моему c или c++. int x = CONDITION? 1 : 2;
>>2051599 Идея не понимает теги th: и при сборке выдает whitelabel error, хотя в предварительном просмотре все правильно работает и отображается. А если нажать fetch external resource на лифе, то выбивает пикр.
>>2051359 >А, вот как. Вроде же не так сложно было бы добавить один новый интерфейс функции, для хранения новых объектов/функций. Тогда надо делать кучу новых API которые будут принимать "функцию" вместо интерфейса.
Например есть методы сортировки которые принимают Comparator, ты берешь и лямбдой его имплементишь и все работает. Любой старый код просто работает. У интерфейсов есть дефолтные методы которые позволяют реализовывать дополнительный функционал, типа and() у предикатов.
Если у тебя замыкание, то тут тоже понятно где хранить значение - у тебя тупо внутренний анонимный класс, храни там все что нужно.
>>2051388 >Разве не проще было бы сразу в самом лямбда-выражении описывать выходные параметры и возвращаемое значение В лямбда выражении нужно реализовывать некий контракт. А описывать контракт надо в методе который принимает лямбду. В принципе Котлин позволяет так делать fun foo(bar: () -> Int) = print(bar()) Почему в джаве не стали так делать сложно сказать, подозреваю что из-за сложностей с привидением функций. Т.к. нет чистых функций то для каждого () -> int надо создавать свой интерфейс и сделать так, чтобы () -> int объявленные в разных местах - были эквивалентны.
>>2051705 whitelabel error обычно признак того что страница которую выдал контролер не существует, а тимлифовские страницы при неправильном рендере выдают 500 со стектрейсом. У тебя скорее всего проблема в контролере или резолвере(если ты менял стандартный спринг-бутовский). Ну и зависимости перезагрузи, может там либа отвалилась в идее. xmlns на работоспособность тимлифа не влияют, они просто для удобства.
>>2051862 Спасибо, постараюсь еще покопаться, отвалилось оно как раз когда в контроллере ковырялся, просто не думал что это вообще как-то сломать можно
>>2053231 лол, нет.. В целом качество многих публикаций данного издательства оставляет желать лучшего, на счет конкретной книги хз, хотелось пукнуть))0)
А вот если юзать JdbcTemplate вместо хибернейта, то как делать валидацию без hibernate validator? Только на фронте проверять? Я не думаю, что на реальных проектах не валидируют на стороне сервера.
>>2053697 Юнит-тесты пишут, берут h2 или hsqldb, устанавливают для них синтаксис настоящей используемой СУБД и гоняют на ней тесты для DAO. Конечно, они не совершенны, маленькая in-memory СУБД не будет покрывать весь синтаксис оракла, но для большинства запросов хватает.
Котаны, я тут подумал, часто ли такое встречается - написал говно, и приходиться писать ещё больше говна чтобы это как то работало? Я - только учусь, обосрался с классами и вместо того чтобы все переписать полез в хэшмапу и итераторы, хотя их ещё не знаю. Работает, лол. Часто ли такое происходит на реальной работе?
>>2053848 На реальной работе порой бывает ТАКОЕ! ШОК!, никакой фантазии не хватит нарочно до этого додуматься. Иногда не знаешь, с какой стороны подступиться к задаче, и пишешь простыню говнокода, а затем внезапно замечаешь, что всё сходится, и переписываешь 100 строчек на 10.
>>2013248 (OP) Реквестирую гайд по экспресс-вкату в джаву для шарписто-питониста. Около 10 лет пишу на дотнетах и 3 года на питонах, понадобилась джава для решения чисто утилитарных задач: написать плагин для keycloak/elasticsearch/jetbrains'о-IDE, засунуть java-only либу в веб-сервис, чтоб дёргать её из дотнетов/питонов, и т.д.
Т.е. я умею в кодинг/ООП/паттерны/многопоточность и всякое language-agnostic, надо освоить java-специфичные штуки.
Вот эти вот class-loading, системы сборки, менеджеры пакетов, jar/war, подводные камни и грабельки. Есть ли такой роадмап/гайд/книга?
Чтоб вкатиться в дотнеты из другого языка, надо прочесть 3 книги: CLR via CSharp про платформу, какой-нибудь CSharp in a Nutshell про язык и что-нибуть конкретное про фреймворк - AspNet/WPF/etc. Есть ли такие 3 книги для java?
Я видел интересующие меня темы на hyperskill, но до НГ было не до этого, а теперь оно платное и моя жаба недовольна.
>>2053855 Эта таблица херня полная потому что: - она устарела, перм гена уже нет - она описывает некоторые GC и даже не указывает для каких именно эта картинка верна В общем не читайте.
>>2054090 > Вот эти вот class-loading, системы сборки, менеджеры пакетов, jar/war, подводные камни и грабельки. Думаю, для этого достаточно пары статей в инете. Если нужно что-то более глубоко, по тем же системам сборки, то добро пожаловать в доку
>>2054906 Разделение на регионы и аллокация новых объектов это часть подсистемы GC. Потому, что именно GC знает где сейчас надо аллоцировать объекты, размеры регионов и их типы. Например у Shenandoah GC вообще нет поколений, но есть регионы. А у Parralel GC есть поколения, но нет регионов.
Помогите с Н2. Не могу поменять кодировку в настройках, из-за этого инфа, взятая из data-h2.sql на запущенном приложении была иероглифами, хотя сам этот файл был в utf-8. Решил это долбоебским способом, поменяв в идее кодировку data-h2.sql на ср1251. Но хотелось бы узнать как правильно настраивать H2. Я сейчас подумал, а что если в jdbc-строке (jdbc:h2:db) прописать эту пропертю, как я делал с MODE. Хуй там. Unsupported connection setting "PROPERTY.FILE.ENCODING"
>>2055028 GC это не какой-то отдельный механизм который просто убирает мусор и все. Он очень тесно связан со всеми остальными системами JVM. Шипилёв в каком-то видео говорил, что больше половины кода шенанды - это изменения в JIT.
Ребята. А вот как сегодня лучше канкаренси изучать? На хабре читал мол ту же книжку канкаренси на практике 2006 + плюс главу по канкаренси из современная джава ин экшн 2018. Это норм?
>>2055061 > канкаренси на практике 2006 Если судить по пакету java.util.concurrent, полноценное апи для многопоточности появилось только с жавой 1.5 и с тех пор там мало что поменялось. И книга больше не про апи, а про разжевывание конкурентности, многопоточной архитерктуере, примитивы из которых это апи строится и в таком ключе. Апи не сложно загуглить прямо сейчас, но структурированной инфы про конкурентность ценней чем тут будет сложно найти.
Минвайл в жаве я не осиливаю считать господи ты помилуй жсон с куками из тхт, который этот же селениум мне и выдал. Читать c помощью Files.lines(Paths.get(fileName))) тоже не предлагать, потому что там Stream<String> (или его можно закастить к Cookie?)
Еще немного и я перестану забивать микроскопы кувалдой и просто напросто открою пайчарм. Обалдеть вообще, взрослый человек, подает надежды, а кукисы из файла считать не может.
>>2055585 По ссылке что я кинул питоновский апи точно такой же как и на джаве. > ля ручного ввода каждого элемента кукикосов Что такое элементы кукисов?
А сколько часов в день вы занимаетесь кодингом? Хотя бы примерно. Будет круто, если распишете подробно. Сколько кодите, сколько чего-то читаете, мб еще какие-то курсы смотрите.
И еще интересно: что делаете после кодинга (после работы)? Играете в игры? Гуляете? Бухаете? Смотрите фильмы/сериалы?
В шапке про SQL написано "Затем переходи к: http://www.sql-ex.ru/", там кто-нибудь регистрировался? Годно? Там без регистрации можно только насладиться дизайном сайта из 90-х, как я понял.
Норм кидать из контроллера исключения не связанные с хттп? Типа UnsupportedOperationException если в базовом контроллере есть такой-то эндпоинт, а я не хочу чтобы он вызывался. Или вместо этого просто кидать 404?
Что такое спринг? Я закончил с джавакором (хотя я к нему, конечно, ещё вернусь), сейчас вот читаю Spring in Action 5, вдумчиво так читаю, копипащу куски кода, пытаюсь пынять, что происходит и зачем, но нихуя не доходит. Чувствую себя сосочкой-девочкой, которая делает хуйню методом тыка. Так СЛОЖНА не было, пожалуй, ни на одном из этапов изучения кора.
Так всё-таки что это такое? И умоляю, скажите, что я не один такой долбоёб.
>>2057310 Ты не один. В начале вообще нихуя не понятно, за спринг строится на слишком большом числе идей и паттернов. Легче всего повторять по туториалу, запоминать последовательность действий, чтобы магия работала. Затем, когда первые круды зарвботают, можно вникать в смысл dependency injection и прочей хуйни.
>>2057310 Спринг - это большой фреймворк. В самой основе его - идея того, что взаимодействие между инстансами классов приложения (объектами) можно передать некоему отдельному "управляющему" объекту. Этот "управляющий" объект согласно описанным в конфигурациях(xml-ки или java классы со специальными аннотациями) правилами инстанциирует управляемые объекты и "соединяет"(сетает поля) их с другими объектами. Если это понятно, то дальше возникают вопросы: а как спринг разруливает, какие классы инстанциировать раньше, а какие позже. И там уже всё станет понятно, если почитать эту книжку
То мавен упаковывает все библиотеки для всех платформ. Если это так, то гарантированно все будет работать на всех платформах? Чет мне кажется, что с большой вероятностью не все библиотеки имеют компоненты для всех платформ, и я просто нагружаю jar-ник мусором. Можно ли упаковывать библиотеки только для выбранной платформы и получать за одно предупреждение, если чего-то не хватает? Я немного ахуел с jar-ника весом больше гигабайта.
>>2057555 Если речь не идет про граальвм, то jar и скомпилированные классы в нем работают под одну единственную платформу JVM и 99% либ не важно где они будут запускаться. Некоторые либы содержат в себе пребилды из бинарников, но обычно они сразу включены для нескольких платформ. Как поступить с отдельно взятой зависимостью нужно смотреть в доках этой конкретной говнолибы. > Чет я не совсем понял, если прописать Уже не помню что это говно делает именно это в мавене, но похоже просто кладет зависимости в папку либ и добавляет путь к ним в манифесте. > Я немного ахуел с jar-ника весом больше гигабайта. Найди в/рядом с билдом папку lib и посмотри что там жирнее всего. Потом найди откуда эта зависимость взялась в проекте. Я например ахуел когда увидел что commons-collections занимал 20 с лишним метров, при чем его принесла васянская говнолиба на пару строк кода, за что была выброшена нахуй. > Можно ли упаковывать библиотеки только для выбранной платформы Можно изъебаться с java-module, тогда по идее в билд уйдет только то что нужно, но на многое не рассчитывай Можно изъебаться с pro guard, но на жаве я с ним не работал > Я немного ахуел с jar-ника весом больше гигабайта. Еще возможно ты неправильно указал скоупы зависимостей и весь javaee рантайм ушел в билд https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#dependency-scope
>>2057310 В этой книжке не объясняется теория спринга совсем. На ютубе есть алишев, там 20 видосов по самому начальному уровню спринга - ди+начало мвс. После этих видосов берись за книжку. Ну или про спринг читай, но это талмуд.
Суть задачи такова: На вход дается набор строк, объединенных в коллекцию. Нужно посчитать, сколько раз повторяются слова длиннее 4х символов (ну и ещё чтобы чаще 10 раз встретились) и вывести ответ.
В итоге получается херня: при обработке первого текста получается такая срань.
Логика такая: привожу к нижнему регистру (это условие задачи) бью все, что не буквы (ещё такую регулярку поставил line = line.replaceAll("[^\\p{IsAlphabetic}]", " "); ) бью строку на слова по пробелу перебираю каждое слово по логике: если есть, то добавляю к значению единицу, а если нет, то добавляю в коллекцию со значением 1 потом сортирую это дерьмо, не добавляя неподходящие варианты и все.
>>2058790 >Правда, я хз, почему такой всратый результат получился. Я где-то кодировку неправильную указал или что? Для массивов в Java не переопределен toString() это дефолтный из Object поэтому надо явно делать Arrays.toString() если хочешь посмотреть содержимое.
Ребята, нужно логаутить юзеров в springe Самого себя я логаутую с помощью SecurityContextHolder.getContext().setAuthentication(null); Как мне разлогинить другого юзера по имени(или айди)? (В гугле какие-то лютые костыли находятся)
Джаваны. А насколько нужно знать sql/конкретные базы, чтобы вкатиться джуном? Для spring in action мне хватило книжечки на 200 страниц крупным шрифтом(Алан Бьюли). А на собесах будут дрочить нормализациями, задачками на сложные джоины, спрашивать кап теорему, особенности реализации транзакций?
>>2059575 Не будут, если написал пару крудов, то уже знаешь всё. За нормализацию спросят максимум до третьей формы, джойны возможно, транзакции вряд ли меня таки спросили, но меня базисты собесили
>>2059490 Можно попробовать удалить все его сессии: persistentTokenRepository.removeUserTokens(username); или истечь: for (SessionInformation info : sessionRegistry.getAllSessions(username, false)) { info.expireNow(); }
>>2059762 А как пользователь авторизовывается в приложении - форма+сессия в куке или OAuth? Сколько инстансов сервера поднято (один или несколько)? Где хранятся сессии если авторизация через сессионую куку?
>>2059575 Джоины, юнион, транзакции и асид, индексы, уровни изоляции и какие проблемы они решают. Ну и нормальные формы тоже чуть-чуть бы знать. На sql-ex 20 первых задач хотя бы
Суп, жабаны. Идея предлагает при старте включить следующуюю фичу: >Download pre-built shared indexes >Reduce the indexing time and CPU load with pre-built JDK and Maven library shared indexes Что это за индексы? Стоит ли включать их загрузку?
>>2060059 Все это, если что, знать можно неглубоко, сильно не запаривайся, про всякие кап теоремы точно только ебанутые Джуна спрашивать будут. По моему опыту вообще всем пофиг, что ты там говоришь, главное уверенно. А в глубину очень редко копают, и в основном это нюансы кора и спринг, в основном транзакции. Но это я про миддл собесы, как там у джунов хз
>>2060063 Для быстрой навигации между определениями идея ищет все классы из проекта, из jdk и используемых зависимостей мавена и строит по ним индекс, причём частично перестраивает при каждом изменении конфигурации мавена или пре реимпорте. Ну и тебе предлагают не индексировать каждый раз это всё, а скачать уже построенные индексы для ждк и популярных либ из мавена, которые всё равно везде одни и те же, и нужно будет строить индекс только для классов твоего проекта.
>>2060073 Не, тут даже не в разрешении дело. Это плохой шрифт, он плохо выглядит в современном вебе. Плюс у тебя выравнивания какие-то странные, все буквы пляшут абы как. Подложка вокруг них вообще пиздец, она под шрифт не попадает никак да и не нужна вообще, у тебя нет за ней контрастного изображения. Короче, возьми любой нормальный современный шрифт без курсива, без жирного, без подложки и выровняй всё нормально, особенно нижние даты - они должны быть выровнены по нижней (левой для даты) границе, а не по верхней. Опционально, вокруг рамок аниме-тяночки неплохо бы сделать градиент в белый или в цвет любой другой выбранной подложки, чтобы картинка плавнее ложилась под график. Удачи!
>>2058783 Дополнительный вопрос: а какие есть простые способы отсортировать TreeMap по значению и по алфавиту (типа, вначале самые частые слова, а потом уже среди равных по алфавиту), кроме старндартного перебора с if/else?
>>2059521 >>2060059 Горит жопа с этого sql-ex. "Найдите номер модели, объем памяти и размеры экранов ПК-блокнотов, цена которых превышает 1000 дол." - вывожу объём памяти HDD, а они имели ввиду RAM. Ну и само словосочетание - "ПК-блокноты". И это только третье упражнение. Непонятно, как они там тестируют глубокое понимание запросов, если не могут задачу сформулировать нормально. Ещё и при регистрации фамилию требуют, пиздос.
>>2060200 >>20 задач решишь я 3 каким то образом решил, но не понял как остальные решать, он мне одну и ту же подсовывает. >>2060201>>2060214 не знаю как там в жавараше, но литкод и его аналоги удобны и понятны
подскажите, как лучше сделать чтение файла(список url адресов) в несколько потоков? и надо еще найти в файле русские слова длиной больше 3 - это лучше в процессе чтения добавлять в коллекцию? или сначала считать, а потом отфильтровать
>>2061151 Это почему-то называют отдельной парадигмой, но по мне так это всё равно что называть try-catch парадигмой. Суть там тупо в том, чтобы писать интерсепторы, перехватывающие, которые будут перехватывать все вызовы/завершения каких-то методов и делать указанные действия. Нужно во всяких/либах/фреймворках, в пользовательском коде используется редко, это аналогично рефлексии.
>>2061166 > интерсепторы, перехватывающие, которые будут перехватывать все вызовы/завершения каких-то методов и делать указанные действия Ого, а это уже интересно. Надо не полениться и поизучать.
>>2061112 Никакого зашквара. Микросервисы решают одни проблемы и создают другие. Нужно знать, когда их применять, а не РЯЯЯ 2021 ДАВАЙТЕ СЕРВЕРЛЕСС FAAS МИКРОСЕРВИСЫ НА КАЖДУЮ ENTITY.
>>2061173 > СЕРВЕРЛЕСС FAAS Я в амазоне понимаю чуть более, чем нихуя. Просто надо написать бэкенд для очередного мессенджера, и я хочу сделать её с применением микросервисной архитектуры.
>>2060944 >в умную через три мьютекса Я не знаю требования и не видел алгоритм, но уже по описанию идея выглядит как адский велосипед, который возможно еще к дедлокам будет приводить.
>>2061226 Ну это не совсем пет-проект. Наш СЕО хочет чтобы мы развивались как девелоперы, поэтому дал такое задание, и мы в свободное время занимаемся этим. Вот я и хочу подобрать стэк и архитектуру сложнее чем я работал раньше.
Есть список url-ов на файлы. Как лучше распределить этот список между потоками(они будут делать операции над этими файлами), чтобы все потоки были примерно одинаково загружены?
>>2061425 А потом окажется, что диск может работать только с одними данными за единицу времени, и треды будут отрабатывать по очереди, будто всё в одном треде делается.
Есть один вебсервис. Пользователь вводит данные, они валидируется на фронте (хтмл/жс), потом пришедшие данные валидирует контроллер, потом отправляет дто в сервис, там его валидирует сервис, создает и передает сущность хибернейту и тот перед сохранением валидирует ее. Так вот нормальное ли это поведение, если все происходит в пределах небольшого монолита/одного микросервиса или достаточно валидировать данные в контроллере, а дальше и так понятно что все будет нормально?
>>2061860 Смотря что за валидация, проверку полей на NULL можешь сделать и в контроллере, но вот если у тебя там передаются id других сущностей, надо проверить, что они существуют, и это можно сделать только в сервисе. На фронте первичная валидация нужна в любом случае, чтобы юзер сразу увидел поля с ошибками, выделенные красным, а не вводил каждый раз всё заново.
>>2061885 >На фронте и контроллере по-моему достаточно. Никогда так не делайте! Проверки на бекенде это обязательная вещь.
Проверки на фронте тоже желательны, они дают хороший UX - пользователь сразу видит где у него ошибка в форме.
>>2061860 Да нормально, потому что код меняется. Возможно появиться новый контроллер, который будет использовать этот сервис и там забудут добавить валидацию.
Анон. Осваиваю kafka+spring boot. Поднимаю в докере кафку(+zookeeper). Прописываю в docker-compose порты кафки, зукипера. А где в спринге я это конфигурирую? в IDEA, например? В коде? или в application.yml ? Или как я должен указывать спрингу, где ему искать кафку? Попробовал и те, и се порты ставить в compose. Спрингуля ругается..
Вопрос. Есть воркер который что то селектит из БД пачкой и обрабатывает это дерьмо. Что лучше 10 потоков которые будут селектить по N и потом это прокручивать или 1 поток который будет селектить и потом фор луп хуярит в 10 поток то что селектнуто?
Ни одной вакансии на джуна в моём городе(Екатеринбург, кроме сбера и то требуют год опыт продуктовой разработки), а я только почувствовал свою относительную готовность, есть три стула, либо перекатываться на C#, либо спамить на вакансии мидлов, либо валить в Москву/Питер. Что делать, лол?
>>2062756 Очень не просто, с бигдесималом например приходится в комментарии расписывать формулу, а потом ее имплементить через методы. Больше 4 операций уже выглядит как хуйня из разряда постройки фабрики фабрик. И всякие a.comareTo(b) > 0 вместо простого a > b туда же. Матрацы, вектора, вообще все что можно через алгебраические типы выразить в жаве превращается в нечитаемую хуйню. Про структуры ещё забыл, чтобы не ебать кучу с гц. Они бы тоже не были лишними
>>2062334 В частном случае, когда у тебя воркер работает на одном ядре и всё "дерьмо" - CPU-intensive задачи, эффективен будет вариант "2" с циклом.
В общем случае оба варианта - эскобар.jpg (в 1 случае лишние хождения в БД и лишние переключения контекстов для CPU-intensive задач, во 2 случае - простой всех ядер кроме одного, в котором крутится твой цикл for, и твой единственный поток будет большую часть времени в состоянии WAIT для IO-intensive дерьма).
Обычно делают так - берётся пачка задач (из БД или из очереди) и распределяется для параллельного выполнения в пуле потоков, где их кол-во = NubmerOfCores*2.
Детали (размер "пачки дерьма" и кол-во потоков в пуле) зависят от твоего "дерьма" - это CPU- или IO-intensive задачи, как долго каждая из них выполняется, сколько у тебя ядер и насколько быстрое у тебя IO.
>>2062828 Для макаки даже сравнить 2 числа превращается в архитектуру фабричныхпроксифакторибинов. А по рукам нужно было гослингу дать и выгнать нахуй ещё на ранней стадии за решения которые исправляются до сих пор
>>2063038 > фабричныхпроксифакторибинов У тебя травма после энтерпрайзной галеры похоже. guava-math, apache.commons ? Не, не слышал. В джаве в 99% случаев есть нужный велосипед. Нет зачем лучше пилить свои костыли. Как вершина такого долбоебизма это обычно свой MathUtil с кучей приватных методов и без покрытия тестами.
Сел я тут ебашить это ваше говно и во второй же день уже есть вопросы. Почему с меня требует два ввода? Пока была одна + вывод изначальной тоже требовало два. И только с выводом одной всё было нормально, по-человечески. Что я не учёл?
Алсо, норм ли SoloLearn для поёбывания Java "для себя"? Изучу основы, перекочусь под Андроид чтобы клепать односортное говно и выкидывать исходники на GitHub в открытый доступ. Хочу, пока есть время и бабки родителей, набить руку и портфолио аккаунт на Гите, чтобы потом размашисто тыкать его в рожи кому надо будет.
>>2063079 При чем тут библиотеки, тесты, архитектуры пиздоглазая ты обезьяна. Прочти ещё раз о чем идёт речь сначала ветки, желательно не жопой. Велосипедов полно, а того что нужно просто на уровне жвм или синтаксиса языка нет. Что непонятного?
>>2063622 В каком месте второй раз? Тут только System.in при получении значения, не более. Все последующие действия - ебля с полученным. Или Джава не так логична и правильна, как языки для гетеро?
>>2063768 Все совершенно не так, нет никакой "ебли с полученным". В 5 строке ты вообще ничего не читаешь, только создаёшь объект, который будет читаешь, если ты к нему будешь обращаться. Не будешь обращаться - не будет и читать. В 6 и 7 ты буквально говоришь "прочитай следующее число и верни". Дважды просишь ввести с клавиатуры и вернуть тебе значения, вот он дважды и требует ввод. Ещё попробуй ввести оба значения значения через пробел и нажать Enter
Двач, мне надо несколько сервисов объединить, чтобы у них был базовый УРЛ, и чтобы доступ был только после авторизации. Я долбоёб-ньюфаг, никогда этого не делал. Нашёл несколько гайдов но чую там много лишней мне не нужной информации. Можешь подсказать какие-то годные туториалы, какими возможно ты сам руководствовался?
>>2064054 Работать интереснее. Реальный опыт получаешь, так скозать. Реальный не в плане кода (ведь когда ты кодишь свои "домашние" проекты, то ты тоже получаешь реальный опыт кодинга), а в плане организации процесса и каких нибудь инструментов, например той же джиры.
>>2062265 Есть. Вводишь в ютубе "java full course" или "java for beginners" и выбираешь. Можешь попробовать мемного thenewboston или вылизанного mosh. Выбери то, что не будет тебя насиловать.
Сап, аноны. Открываю Линкедин, а там каждый второй пидор постит себе на стену ссылку на credly.com, мол, смотрите какой я пиздатый, я теперь AWS Certified Solutions Architect.
Я тоже хочу. Только нахуй оно надо, как вкатываться, что читать и есть ли от этого хоть какой-то буст в зп?
>>2061840 Поток ты запускаешь через start, а метод run можно вызывать сколько угодно раз. Так вот, куда ты передаешь Runnable будет использовать именно run
Прочитал тред, а так же вне треда сталкивался презрительным отношением к спрингу, вчера общался с товарищем с другой компании и его коллегами, те обсуждали, что спринг - "изи говно, даже бабушка моя на нем че угодно напишет (с)". В то же время каждая первая вакансия (по крайней мере ру) хочет весну чуть ли не как базу. Почему так нахуй? Подразумевается что тру-сеньоры пишут на "чистой" джаве+мавен (например)? Я вот продолжаю знакомится со спрингом >>2017438, мне он пока кажется сложнее и мудренее чистой джавы (джун).
>>2065171 > презрительным отношением к спрингу Это у кого оно презрительное?
Спринг — это охуенная штука, которая избавляет тебя от рутинных штук, и ты можешь сосредоточиться на разработке, а не конфигурации говна.
Особенно это охуенно ощущается, когда ты пытаешься поднять веб-приложение на JE22 стэке, и тебе надо подключить 1488 зависимостей, которые ещё и конфликтуют между собой, настроить ебучий энтерпрайзный веб-сервер (ну или поебаться с томкатом), и потом ещё подключение с бд.
В спринге ты ПРОСТО ставишь пару аннотаций, пишешь пару конфигов в application.properties, и не ебешься ни с внедрением зависимостей (для чего изначально спринг и был создан), ни с подключением к бд, ни с мэппингом сервлетов, и т.д.
>>2065249 >Это у кого оно презрительное? Да вот, говорю же, послушал "выпукников ойти специальностей с 10летним стажем", а чуть ранее увидел пост (посты?) этого анона >>2050235
Спасибо за пояснение, я просто немного мнительный, боюсь привыкнуть к удобству и пиздец, но это мне уже голову лечить надо наверное.
>>2065332 Ну задачки на литкоде тебя безусловно прокачают твоё понимание алгоритмов. Но дело в том, что рыночку нужны так называемые макаки в основном.
>>2065171 Лол, не рассматриваю вакансии без спринга вообще, даже если предлагают какие-то аналоги или свою самописную хуйню. Спринг нужен почти всем, кто его хейтит - долбоеб
>>2065764 Это просто геттер чтобы достать данные, которые лежат где-то внутри вложенного объекта. При сериализации он не нужен, а вот в коде с ним работать удобнее.
>>2065775 Бери Oracle Linux или Ubuntu. RHEL и CentOS платные, адекватных аналогов CentOS еще не завезли. не понятно нахуя ты это в жаба треде спрашиваешь
>>2065909 Просто без этого даже на собеседование не попадешь. Надо писать на корпоративную почту или отвечать на вакансии мидлов, написав, какой ты крутой классный, стрессоустойчивый и рвешься работать и вообще видишь светлое будущее этой компании, пожалуйста, уделите мне время, я уже согласен быть лошадкой и купил смазку за свои деньги. И лучше таких сообщений в день слать по 50. Так по крайней мере на Ютубе говорят.
>>2065914 Можешь на линкедине аккаунт завести и хров из своего города подобавлять, ну и бомби своим резюме кампании своего города, не может быть такого чтоб тебя на собеседование не позвали.
>>2065909 Пиздеж, сам попробуй с нулем опыта на собес напроситься, ну максимум штук 10 собесов за месяц пройдешь, и то, если повезёт. Таких обычно на говно стек заманивают и потом сложно на другой перейти.
>>2065332 Этот >>2050235 анон писал в ироничной манере. Спрингом все макаки в треде владеют, потому что спринг нужен на работе. А вот алгоритмы пишет 1 из 100, да и то потому что работает над чем то очень специфическим. а загуглить правильное решение ему лень. Алгоритмы вроде как нужны и важны в теории, но на практике они полезны только для собесов.
Много ли среди Явистов широкопрофильных специалистов, или энтерпрайз предполагает, что ты будешь пилить ДАО и бизнес логику, не расширяя кругозор? Даже больше интересует не работа, а то, что из себя представляет ява разработчик. Просто если ты всю жизнь работаешь над пазлом, который поймет 5% программистов, но не понимаешь или не интересуешься остальными 95%, это как-то уж очень аутистично. Я понимаю, что бизнесс логика очень сложная и надо много что знать, но есть ли при этом стимул отойти от этих тонкостей и ловли exeptions и написать какой-нибудь скрипт или нейросеть на питоне или парсер, например? Получится так, что проработаешь ты 10 лет, станешь ахуеть специалистом, но в другой области будешь разбираться хуже среднестатистического студента или продавца Васи, который просто увлекается программированием, если есть время. А если при этом ява станет не актуальна и появится какой-нибудь Питон Спринг, содержащий в себе обычный, когда понадобится уже только 1%, кому не повезет разбирать его по кускам и настраивать все большее количество embed логики, пиздец же просто.
Аноны, как можно написать на джаве телеграм бота с меню ? Например, есть кнопки 1) О компании 2) связаться с нами Если нажать на кнопку "о компании" появляется новое меню с кнопками 1.1) о нас 1.2) наша цель Если нажать на них то выводится какая-то информация
При нажатии связаться с нами, бот спрашивает имя и эл.почту у пользователя.
>>2066869 На джаве писал лет 5 некоммерческих, чисто для себя, была пара жутких пет проектов, которые никому не показывал, кроме друзей. На собесах просто упоминал, что что-то такое писал. Спринг не знал вообще. Была вышка техническая. Ну и в целом устроился почти за еду, норм зп где-то через полгода была.
>>2066924 Но это все необязательно, понятное дело. По факту тебе нужно знать core, порешать на sql задачки и основные алгоритмы на уровне легких задач с литкода уметь. Да и то последнее уже будет преимуществом перед другими.
>>2067554 Хуй знает, я его высрал с горем-пополам и так. Так что не спрашивай. А вообще я дурачок, я же сделал мэппинг many-to-many, и нужные данные можно получить просто через гет.
>>2067604 В моей смотрят, чтобы ты не был долбаебом. Если есть стремление что-то изучать, умение рассуждать и тд, то должно быть норм. Ну и теоретические знания, конечно
>>2067610 >>2067612 Понял, а лучше сразу пет проекты на спринге писать или нужно java ee изучить перед этим? И теория имеется ввиду по бэкенду с линуксом, протоколами, архитектурой, апи и докерами или теория по алгоритмам и компутер саенс?
>>2067649 > нужно java ee изучить перед этим Необязательно, но будет полезно понимать, что такое сервлеты. На них, собственно, вся эта хуйня и строится.
Слушайте, сел разбирать axis2 Пошел читать их гайд. В итоге качаю крайнюю версию 1.7.9, ее собираю антом, когда на томкате проверяю, он выдает что уже архив битый. Как то в гайде написано что мол на все вопросы есть документация, а по ссылке на документацию там уже ничего нет. Подскажите плиз, может делаю чего не так?
>>2068148 Зачем тебе Axis? Когда его тыкал, сложилось впечатление, будто он устарел ещё лет 10 назад. Документация не исчерпывающая, когда гуглишь инфу, попадаются сайты из нулевых, причём инфа на них тоже в основном по тривиальным вещам. Наверное, сейчас если и нужен SOAP, то в виде CXF или Spring-WS.
>>2068188 Вкатился в один проект, а он тут используется в нескольких местах. И да, по устарелости я охуеваю. Когда ищешь последние вопросы по нему, и видишь даты 2011 - 2012 года. Либо с тех пор его дропнули, либо чего.
>>2068192 > Вкатился в один проект, а он тут используется в нескольких местах. Та же хуйня. Решил в результате не связываться с ним надеяться, что больше никогда не увижу. Осторожно редактирую xml-конфиги по объяснениям тимлида, иногда выгружаю wsdl и больше не трогаю.
Как же у меня бомбит со spring security. Просто дерьмо из жопы сука ебучее, которое не дебажится нихуя. Просто блять ахуенно понятно куда ёбанные реквесты уходят сука и нигде нет внятной документации кроме индусских туториалов
Вкатываюсь в тесты. Если в коде, на который я хочу сделать юнит тест, есть вызов другого модуля (на который уже я сделал юнит тест) - это уже интеграционное тестирование и оно должно делаться по-другому?
Привет народ,есть небольшой вопрос. Есть следующая конструкция
if (x > 10){ do something } else { Введите корректное число } Так вот,если я первый раз введу неправильное число меня перекинет в ветку else и если я там еще раз введу неверное число код выполнится так как после элса ничего не прописано. Так вот,как написать проверку так чтобы пока не введу корректное число программа не продолжалась
Сап двач нужно написать алгоритм для ИИ противника в карточной игре. Суть игры в следующем:
"В эту игру играют два игрока, у каждого из которых на руках 12 карточек с числами от 0 до 11. Первый игрок выбирает карту из имеющихся у него на руках и выкладывает на стол рубашкой вверх. Число на выбранной карте будет являться "атакой" игрока. После этого второй игрок выбирает карту из оставшихся у него на руках и также выкладывает её рубашкой вверх. Это его "защита". После этого игроки одновременно переворачивают карты, и защищающийся игрок получает столько штрафных очков насколько "атака" первого игрока превышает защиту "второго". В следующем раунде игроки меняются местами. Игра заканчивается, когда у игроков не остаётся карт на руках. Выигрывает игрок получивший меньше всего штрафных очков."
Я не совсем дурак и догадался,что ИИ должен запоминать какие карты ты бросил и на основе этого делать ход,но я совсем не понимаю как реализовать это програмно. Можете не решать за меня полностью,а подсказать как мне это все воплотить в жизнь. Уповаю на вашу помощь
Что сейчас чаще используют в проде на серверах: OpenJDK vs Java HotspotVM? Или может RedHat JVM? В чем отличия опенждк от хотспот вм? Я так понимаю, наличием каких-то сервисных фич? Насколько они важны?
>>2070858 >>но я совсем не понимаю как реализовать это програмно Придумай логику его действий. Если игрок скинул 9,10,11 он что должен делать? А если 0,1,2? Атаковать сильными и дефить слабыми, или наоборот? Соблюдать баланс? Тут как раз написать код легко, если алгоритм будет понятен. Потом хоть цепочку иф-елсов строй.
>>2070888 Используют то, на что есть лицензия или исторически сложившееся. Последние обновления Oracle JDK не позволяют бесплатно запускать код Java в промышленных целях, а все остальные реализации можешь выбирать на свой вкус - Amazon, Bellsoft, Zulu, IBM - какая компания больше нравится, их реализацию и выбирай.
>>2070888 есть две вм это Hotspot и OpenJ9. Вторая говорят меньше памяти кушает и чуть шустрее стартует, но у нее меньше пользователей. Остальное все сборки, бери adopt и не ошибешься (там есть выбор между двумя)
есть еще graalvm, но это для интересующихся компилить java в почти нативный код (вроде как с вырезанной рефлексией, поэтому ее почти никто не использует)
>>2071735 Легким движением пользователь может вывалить программу со стековерфлоу. на самом деле не легким конечно, стек в джаве глубокий, заебешься пока СО вызовешь
>>2071770 Та может. В проде никто и не делает рекурсий, но штука прикольная на самом деле. Хотя я помню как бегал с горящей жопой, потому что не понимал что в коде вообще происходит.
>>2070892 Да я вот пока сам в раздумьях как бот отвечать должен,по факту что так что так рандом получается тк бот не должен знать какими картами ты ходишь,а только запоминать те,что ты уже выкинул. Работать эффективно в любом случае будет только когда останется только одна карта
>>2072135 Не помогло. А в модели дата должна быть java.sql.Data? Может тут причина. Через идею добавляется нормально, но там календарь открывается при добавлении даты.
>>2072138 Рекомендую для таких случаев подготовить репозиторий с h2, где бы анон смог загрузить себе проект и протестить у тебя. Так бы было легче тебе помочь.
>>2072154 >>2072159 Я туповат просто. Чтобы это сделать надо подключить h2 к проекту, создать отдельные слои репоситориев и сервисов для h2? А потом на гитхаб это загрузить?
Я вот еще заметил что. Добавил в бд через идею просто одно поле employee. Потом читаю через постман, а там даты отличаются. Может тут проблема?
>>2072175 >Ну и в целом использовать API DTO как entity это прям полное говно. Есть где посмотреть пример как правильно делать rest? В ютубе и просто в статьях у всех по разному.
>>2072182 Проверь в каком времени ты даты хранишь в PG и в каком у тебя приложение забирает. Выглядит так, как будто ты несколько часов из оригинальной даты вычитаешь из-за временных зон.
Есть спрингрест+джаксон Есть ентити Юзер и какой-то Объект, юзер владеет несколькоми объектами Возможно ли настроить сериализацию в жсон что бы при сериализации юзера выводились только айди объектов которыми он владеет, а при сериализации объекта все его поля и айди юзера Блять как же нехочется городить еще один слой в виде дто
>>2072182 > Чтобы это сделать надо подключить h2 к проекту, создать отдельные слои репоситориев и сервисов для h2? Да. Создай новый проект, скопируй туда репозитории, сущности, контроллеры. Только вместо postgres, подключи h2. И залей на гитхаб, чтобы анон мог склонить себе и посмотреть в чём проблема.
>>2072187 Есть разные подходы, разные фреймворки и единых правил нет. Просто есть некоторые вещи которые прям совсем плохо. Совмещать entity с DTO - это плохо. Потому что завязывает внешний API сервиса со структурой базы, можешь случайно отдать наружу какие-то приватные данные просто добавив поле в entity, часть полей ни при каких условиях не должна приходить от клиента дата обновления записи, кто обновил и т.п..
Ползут три черепашки. Первая говорит, что впреди никого сзади две. Вторая говорит, что впереди одна, сзади одна. И третья говорит, что впереди одна, сзади одна. Как такое может быть?
Я нашел свою даунскую ошибку. В постмане в теле запроса имена писал как в базе данных, а надо как в коде модели. От постмана в этих полях с датой просто null приходил.
Какой петпроджект написать для освоения джава кора?
Думал написать десктопное приложение, которое будет логиниться в яндекс музыку и проигрывать оттуда радио. Но потом я понял, что оно нахуй не нужно + десктоп на джаве умер давным давно.
Вторая идея была в том, чтобы написать парсер инстаграма. Ну то есть в консоль вводишь свой логин и пароль, прога логинится, далее вводишь имя пользователя, и прога выкачивает все фото, видео, истории итд. Если фото уже было скачано раньше, то второй раз оно не скачивается. Если фото удалено, то занести информацию об этом в лог-файл. Ну и всякое такое. Шобы было удобно сталкерить тяночек разных.
Третья идея - написать что-то с графикой, какой-нибудь 2д рендер карт. Типа загружаешь данные из условного OSM, а прога тебе выдает .png или .jpeg местности. Правда это наверное слишком сложно и я неосилю, в вузе на компьютерной графике очень поверхностно все было, поэтому я ниче не знаю.
Еще когда-то думал клиент для двачей написать, но опять же нахуй он нужен. А раз применения нет никакого, то и писать желание пропадает.
Может у вас есть море софта, которым вы пользуетесь каждый день и хотите что-то автоматизировать? Я вот просто задачи на литкоде решаю по нескольку часов в день, остальное время скроллю двачи и смотрю на разных инстасосалок. Больше ничем по жизни не занимаюсь и не увлекаюсь, на улицу не выхожу, хобби никаких нет, в игры не играю и не с кем не общаюсь. Откуда тогда брать идеи?
>>2072408 В реальных проектах это не прослойка из методов, состоящих из единственного обращения к репозиторию/дао, а самая жирная часть приложения с тоннами бизнес-логики.
>>2072404 Да и насчет инстапарсера - мне эта идея нравится больше всего, но боюсь что на гитхаб такое выкладывать нельзя, а в резюме вставлять - тем более опасно, в блеклист внесут и потом работай на заводе до смерти. В блеклист внесут потому что такая идея только поехавшему сычу придет в голову, нормальные люди пользуются инстой, спокойно подписываясь на знакомых, и им не нужно отдельно следить за этим, особенно за удаленными фотографиями.
>>2072404 Ну я сейчас пилю приложение для автоматизации бизнеса, за ориентир взял zoho books, там в юзергайдах объясняется как что работает под капотом. Выбрал именно эту тему потому что там немало интересной бизнес логики.
Менять из одного потока volatile или статическую переменную другого потока, а в другом потоке только ее читать - это безопасно? Я так понял, volatile используется только на не статические поля.
>>2072614 В общем, я нашел ответ на свой вопрос, изменение и чтение volatile будет потокобезопасным, если к ним применяются атомарные операции. Те ivar++ будет не потокобезопасным. К статическим полям это точно так же относится, тем более хуже, если к ним не атомарные операции применяются. Те код из этого >>2072689 хаба пораша, человек пытается чему-то учить, но сам совершает грубые ошибки и не в чем сам не разобрался, но зато плюсики получил.
>>2072415 А какой смысл для каждой сущности делать свой сервис? Просто в каждом индусском туторе такой шаблон. Можно же делать просто один сервис который инкапсулирует сразу все эти дао и репозитории
>>2073619 Я про это и говорю, зачем для каждой сущности плодить сервисы. Несколько дао для одной сущности имеют смысл, потому что что-то может хранится в бд, что-то сериализуется в файл. В туторах же по спрингу назначение сервиса это тупо прокси класс для доступа к репозиторию. При чем единственный мотив его существования это "ну у каждого ентите должен быть свой сервис". Если сервис это бизнес логика, то с таким подходом, когда у каждой сущности свой сервис, появляется путаница кто за что отвечает. Когда в одном сервисе требуются данные из другого, когда сущность содержит другую сущность, которая содержит третью чей сервис должен их контролировать, в сервисах возникают перекрестные зависимости и тп. Намного логичней разделять сервисы по смыслу работы приложения, а не по сущностям. И смысл не должен сводиться к только принести из бд хуйню, потому что если на столько всё просто, эти прослойки нахуй не нужны.
>>2073692 Потому что каждая сущность независима. У каждой есть своя цель и своя бизнес логика. Если есть логика, которая задевает несколько сущностей, то будет второй слой сервисов, и т.д.
>>2073754 Ты работаешь с квартирой, а не с домом. Это логика только квартиры а точнее, ее сервиса. Если же ты не работаешь независимо с квартирой, и все происходит только через дом, тогда это скорее всего будет в сервисе дома
>>2073763 Так почти ни с чем независимо не работается, потому что полностью независимых сущностей нет. Вот и выходит практичнее все писать в одном месте, чем связывать 100500 сервисов между собой, которые неизвестно как работают, откуда тащат данные, в рандомных местах ловят дедлоки, потому что перекрестные зависимости, туда же порядок инициализации приложения и других вещей. Это будут одни костыли на костылях в итоге, в котором не разобраться.
>>2073790 Ты придумал какие-то проблемы на ровном месте. У дома есть свои операции, не связанные с квартирами, и у квартир есть операции, не связанные с домом. Если дому в каких-то частных случаях надо работать с квартирами, он обратится к сервису квартир. Иногда встречаются операции, которые однозначно к какой-то основной сущности не отнести, в таких случаях либо просто добавляют её в любой из сервисов, либо создают новый сервис для такого вида операций. > которые неизвестно как работают, откуда тащат данные В том-то и дело, что это неважно. Почитай, что такое абстракция. > в рандомных местах ловят дедлоки, потому что перекрестные зависимости Не ловят. Сервисы обычно не хранят состояния, и это гарантирует, что с объектом в любой момент времени будет работать только какой-то конкретный сервис. Если говорить не про объекты, а про сущности, связанные с БД, там дедлоки разрешаются механизмом транзакций. > туда же порядок инициализации приложения и других вещей Это может вызвать проблемы только при циклических зависимостях, которые бывают редко и решаются просто: нужный сервис забирается из контекста уже после старта приложения, а не во время.
А синхронизация по объекту означает, что его мьютекс блокируется для всех методов во всех объектах всех классов, где есть этот объект и синхронизация по нему?
>>2013248 (OP) 1. как сделать многомерный массив, который будет создан после ввода данных пользователя? типа пользователь пишет 4, 6 и создается 4 мерный массив с 6 ячейками. 2. как создать универсальный цикл, который будет отрабатывать вот этот массив, который неизвестной размерности. Есть простое правило, например выбрать наибольший индекс и оставить в этой ячейки и нужно такое правило прогнать по всем ячейкам. как такое можно сделать? полное правило звучит так: выбери наибольшее из индексов, но если есть одинаковые значения то их нужно сложить, а потом сравнить еще раз и выбрать наибольшее.
>>2073843 > Если дому в каких-то частных случаях надо работать с квартирами, он обратится к сервису квартир. > Не ловят. Первый реквест ставит лок на одном сервисе, который хочет обратиться к другому, который так же держит лок по параллельному реквесту, чтобы обратиться к первому сервису. Когда что-то друг на друга ссылается дедлоки в спринговой архитектуре изи получать
> Почитай, что такое абстракция. Я хочу получить конкретный инстанс объекта из памяти, а подсунутая реализация сервиса может создать объект званого. И работая только с интерфейсом откуда я мог это знать? Только надеяться что реализация будет вести себя как я думаю. Хотя если делать один сервис вся логика сразу на виду будет
> Сервисы обычно не хранят состояния, и это гарантирует, что с объектом в любой момент времени будет работать только какой-то конкретный сервис. А где хранится состояние сервиса времени? Не в бд же миллисекунды записывать
>>2074049 > Первый реквест ставит лок на одном сервисе, который хочет обратиться к другому, который так же держит лок по параллельному реквесту, чтобы обратиться к первому сервису. Когда что-то друг на друга ссылается дедлоки в спринговой архитектуре изи получать Такие локи бессмысленны, их никто никогда не ставит. Локи нужны для синхронизации данных, сервисы никаких данныых не содержат.
> Я хочу получить конкретный инстанс объекта из памяти, а подсунутая реализация сервиса может создать объект званого. И работая только с интерфейсом откуда я мог это знать? Только надеяться что реализация будет вести себя как я думаю. Хотя если делать один сервис вся логика сразу на виду будет Хотя бы из-за здравого смысла. Если в контексте несколько сервисов, реализующих один и тот же интерфейс, при получении сервиса ты обязан указать, какая реализация тебе нужна, а о её поведении надо судить по документации. Но это нужно очень редко, практически всегда реализация только одна, ни на что "надеяться" не надо.
> А где хранится состояние сервиса времени? Не в бд же миллисекунды записывать Не в сервисе. Сервис никогда не хранит никакого состояния. Сервис может обратиться к операционной системе, чтобы получить время, но внутри себя он ничгео не запоминает.
Аноны, я совсем-совсем в жаве нюфаня. Писал по гайдам индусов маленький проект, выдаёт при сборке такие ошибки. Поиск проблемы в тырнете не увенчался успехом
>>2074279 Это из-за модулей девятой жавы. У тебя где-то в папке src лежит файл module-info.java в который нужно явно прописывать какие зависимости нужны твоему модулю. Легче его просто удалить нахуй тогда все может начать работать. Или гугли текст ошибки после двоеточия, тут ничего корректного не сказать, может быть из-за любой зависимости которую не перевели на девятую жаву
Но теперь другая беда, ананасы. В api 30 getExternalStorageDirectory устарело, чем заменить строчку, чтоб не больно было в анусе ? >методнэйм(Environment.getExternalStorageDirectory())
Я, короче не могу понять, как должны правильно взаимодействовать например rest-api написанный на джаве и какой то веб интерфейс на той же джаве с спрингбутом
Банально запустить два этих сервера, и посылать с клиента http запросы на этот апи?
Фотка коллеги моего другана, который уволился с работы и начал вкатываться, на вкат потратил меньше года, 2 месяца сам обучился и 7 месяцев с ментором делал разные проекты за бесплатно, но за 10 процентов от будущей зп в течении пары лет. Москвка. ему 30, юридическая вышка, работал продаваном одинэсником, английский не знает. Оферов было штук 5 всего из 15 собесов
Доброго дня. Шатаю литкод (точнее - он меня), т.к. с алгоритмами беда вообще оказалась. Сделал по подсказке через map + чтение строки с конца, но что-то по памяти и скорости выполнения оказалось говно. Посмотрел решение другого чувака - памяти юзает на 1 мб больше, но выполняется за 4 мс, вместо моих 15. В чем разница? Что он не сплитит строку в массив?
А можно ли лочить мьютексы параметров метода. Например, сделать метод с Object параметром и по нему синхронизировать? А если мы потеряем ссылку в методе, то объект сразу перестанет синхронизироваться или мьютекс освободится только после окончания синхронизированного блока?
>>2075589 Счетчик монитора переключается когда исполнение входит/выходит в синхронайзед блок. Можно, но тебя даже идея предупредит что ты делаешь хуету какую то. Если нескольким объектам нужен общий монитор, создай его извне и передавай им через конструктор.
>>2075757 Плохо только то, что вебмакаки ни для не работали с бэкендом и в силу своих комплексов пытаются себя убедить, что там нет ничего, кроме круда для БД.
язык java. Суть проблемы такова, есть прога в которую передается имена файлов которые лежат в папке ресурсов, нужно написать тест, который будет передавать имя неверного файла и чекать прогу на ошибки. как это реализовать ? Пытался создать временный файл в папке ресурсов и передавать его имя, но он не хочет создаваться во время выполнения кода, а создается только после него, следовательно прога файл найти не может, тест не проходит.
На Джаве не кодил лет 5, т.к. в моих пердях она нахуй никому не нужна. Но через пару месяцев буду в ДС2 и планирую походить по собесам. На джуна, разумеется. Посему вопрошаю:
1) Поменялись ли как-то требования на джуна за последние несколько лет? Очевидные стримы, лямбды, optional'ы.
2) Есть что-то специфичное для требований к java-джунам именно в ДС2? Мало ли, может тут на собесах любят спрашивать про КЧ-деревья или загадывать задачки про верёвку и весы.
3) Аноны из ДС2, расскажите свой опыт или как это проходит у вас?
Привет, я только начал учить джаву. До этого я пытался изучать C#, сделал небольшой проект на WPF (электронный дневник для учеников и училок). Теперь хочу сделать тот же самый проект, но на java, и не десктоп, а веб. Вообщем можете мне рассказать какой стек технологий понадобится мне для реализации?
>>2013248 (OP) Аноны, мб тупой вопрос, не так сильно пока что в джаву въехал, но каким образом можно под Линуксом из IntelliJ Idea запускать отладку под sudo? Делаю webSSH на чистой джаве без фреймворков, нужен 80й порт, а он на лине залочен (в винде все работает отлично)
Вопрос по IntellijIDEA. Как добавить новый член в уже ранее созданный конструктор класса через инструменты среды? Например сделал я класс, запилил конструктор через кодогенератор. Потом почесал репу и решил что мне нужен еще один член в классе, который опять же должен попасть в конструктор. Можно конечно тупо снести старый конструктор и закодогенерить новый, но это как-то криво. Можно ли просто дополнить уже имеющийся?