Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе.
Есть одно SPA, нужно в зависимости от текущего пользователя отображать или скрывать некоторые элементы интерфейса. Например, есть комментарии, удалять их могут админы и авторы комментариев, а редактировать только авторы. Как это обычно делают? На фронт-энде вычисляют или прямо в DTO делают поля типа canBeDeleted, canBeEdited и т. д.?
Посоны, поясните нубу за версии. Сейчас пользуюсь 8-кой (JDK 1.8). 9 и 10 больше не поддерживаются, они были временными. А 11-ая будет коммерческой, и вместо неё придется использовать OpenJDK, так?
>>1281681 Ну можно и вычислять, но это как-то непраивльноЮ вдруг вы захотите поменять логику, пока приложения/сайты не обновятся будет какая-то фигня. Так что пусть сервер считает. главное в с проверкой пермишенов на сервере не провтыкать
Вопрос тем кто работает на Idea. Стараюсь поднять скорость написания кода и не могу вспомнить как включить автогенирацию кода для конкретного момента. Вот написал я условно UserRepo.getUsername(), который возвращает list<String>, потом думаю надо бы операции с ним провернуть и пишу слева от него Arrays.stream()UserRepo.getUsername(), курсор стоит в заполнении аргументов stream(), так вот вопрос как мне быстрым сочетанием клавиш добавить UserRepo.getUsername() в аргументы и продолжить писать стрим? Понятнее написать не смог, помоги Анон
Нужно реализовать стек на базе кругового односвязного списка(т.е в котором последний элемент указывает на первый). Список я реализовал, а как на его основе сделать стек не могу понять. Со вставкой все понятно, но удалять как? Мы же можем двигаться только вперед, а нам нужно в обратном направлении список проходить чтобы извлекать из элементы стека. Разве что как обосранец пробегать весь список по кругу до последнего элемента, но это уже не О(1) будет.
>>1282012 При очередном собесе может придётся на бумажке FizzBuzz и будет всё как в тех историях. Привыкнешь вводить sout вместо System.out.println() и пиздец.
Другими словами не забывай и ручками иногда писать код, к примеру в Vim
>>1282346 >медленно Он же элементарный, значительно проще хибера. У него есть возможность работы как spring data jpa - пишешь интерфейс, на методы вешаешь аннотации с sql кодом, потом через билдер берешь инстансы - на их сайте очень много примеров и доков, читай.
>>1281681 Делается отдельный рест, возвращающий ассоциативный массив имя объекта/сущности - уровень доступа. Данные реста засовываются в стор и там лежат.
Соответственно с оглядкой на полученные права рендерятся соотвествующие компоненты. При этом это только UI - на бэкенде обязательно должна быть проверка прав доступа на соответствующие объекты / действия.
Посоны, я вообще на Яве не кодил никогда, решил одну программку написать, работающую через прокси всех видов (хттп, сокс4, сокс5). На питоне все заебись работало, а здесь сокс4 нивкакую не пашет (сдк 11). Мне то оно нахуй не надо, свои цели приложение выполняет с хттп и сокс5, но это уже скорее дело принципа. Использовал стандартное Proxy, там еще тип выставить можно http или сокс. В чем косяк то?
Что нужно: Две конфигурации, одна действует для /api/, другая - для всех остальных.
Что пробовал: Классы SecurityConfiguration и ApiSecurityConfiguration, расширяющие WebSecurityConfigurerAdapter и помеченные @Configuration. Оба помечены @Order со значениями 1 и 2, пробовал оба порядка.
configure(HttpSecurity http) перезаписаны подобным образом:
Если в Hibernate вместо "... where user.id = ..." использовать "... where user.email = ..." совсем говнокод будет? user.id - это foreign key, т.е. во 2-м случаем получаем лишний join
>>1282472 >Делается отдельный рест, возвращающий ассоциативный массив имя объекта/сущности - уровень доступа. Данные реста засовываются в стор и там лежат. То есть для каждого объекта мне надо делать ещё один запрос, чтобы определить права текущего пользователя? Звучит довольно ресурсозатратно, например, у меня будет 100 комментов на странице, не буду же я 100 запросов к API делать?
Ребята, расскажите чего нужно избегать в коде в продакшене? Кто-то говорит, что строго исключать свич-кейс, кто-то говорит про статический классы. Можете пояснить?
>>1282576 >свич-кейс Смысл наверное в том что можешь забыть поставить break и пиздец. Альтернатива лапша из if-else. хз >статический классы Наверное тоже потенциальные проблемы + определённая сложность тестирования.
>>1281681 Ты какой-то хуйней занимаешься. Юзер у тебя на фронте залогинен? Залогинен. Информация у тебя по нему (имя, роли) есть? Есть. Теперь берешь и рендеришь комменты. В чем проблема?
>>1282666 > Посмотрел в rt.jar - хуева туча свичей.
Во-первых, большая часть хуй знает когда была написана, в вторых - то что жабу придумали и пилили сан с ораклом не значит что тамошним мэтрам - говноделам стоит доверять в вопросах правильности кода.
>>1282674 Ну так двойная защита должна быть: одна на фронте, вторая на бэкенде, где прежде чем провести операцию проверяешь есть ли у пользователя нужные права.
>>1282724 Конечная папка ровно та же, что и в книге. Там 2 файла с .class и .java расширениями. Ошибку гуглил, проблему гуглил, что-то похожее есть, но всё не то((
Чет я вообще не могу понять, как это работает. Короче, анон, есть один код. И в нем ссылка this (которая, как я понимаю, указывает на класс А) приводится к типу его подкласса. Только вот везде пишут, что такое невозможно, потому что Animal animal = new Cat() верно, но Cat cat = new Animal() - нет. Так почему оно все-таки работает?
public class InheritanceInitOrder { static class A { String a; A() { a = "a"; System.out.println("a initialized"); System.out.println("b=" + ((B)this).b); } }
static class B extends A { String b; B() { b = "b"; System.out.println("b initialized"); System.out.println("b=" + b); } }
public static void main(String[] args) throws ClassNotFoundException { new B(); } }
>>1282674 Проверка на фронте не отменяет проверки на бэке, маня. Но я не сомневаюсь, что существуют сайты слепленные макаками твоего уровня, на которых таких проверок нет.
>>1282671 >>1282674 >>1282686 Я на бэкэнде и так проверяю перед тем, как вносить изменения в БД, лол. Вопрос был в том, где лучше производить вычисления разрешённых действий над сущностью для фронт-энда: на клиенте (на основе информации о текущем пользователе, которая загружается каждый раз при старте приложения) или на сервере (в виде полей типа canBeDeleted, canBeEdited в отдаваемых сущностях). В общем, решил вычислять на клиенте там, где это возможно.
Должен ли быть DAO синглтоном? Блядь Мне всегда казалось, что так правильнее. У меня есть интерфейс дао, его частичная реализация в дженерикДАО и, собственно, классы дао типа phoneDAO. Как мне зафиксировать, что все подклассы дженерикДАО должны быть синглтонами? Заранее сори, если вопрос тупой, в Гугле все очень сложно
Читаю Spring in Action 4, попутно делая своё подобие веб приложения, которое описано там. Ну и вроде бы сделал, всё работает, только вот один непонятный момент. База данных не хранит ничего после того как выключить приложение. Работаю в идее и запускаю оттуда. Это нормально? Т.е зареганные юзеры хранятся только пока приложение работает, а если стопнуть то фсё.
>>1282875 У тебя в application.properties выставлено дропать БД. Или сама БД - H2. Можешь начинать читать оф доки спринга5, 4й уже год+ как устарел. Тесты написал к своей хуйне?
>>1282884 Да, БД - H2. Стоит заменить бд и тогда проблема отпадёт? >application.properties Такого не создавалось потому хз. >Тесты написал к своей хуйне По ходу дела писал.
>>1282887 Погугли БД виды. Поставь себе постгресс какой нибудь. Файл с пропрети палюбас где то должен быть. Ты же в иде надеюсь все делал? Через спринг-бут-ио?
>>1282807 а зачем нужен именно синглтон? Там же есть пул соединений. На каждый поток своё соединение. Нет никакого смысла отказываться от пула и заставлять ждать остальные потоки
>>1282889 там - это в спринге? я сейчас свою рукописную хуету говнокодю. и у меня еще вопрос. Это нормально, что могут разные объекты взятые через один ДАО представлять собой одну и ту же строку в таблице в бд? я чото заморочился и сделал буфер этого говна, типа если уже брали элемент с таким же id, то он просто берется из буфера, а не из бд. а теперь думаю, нахуя я это делал.
>>1282894 У меня нет. И в книге тоже нет такого нигде. Посмотрел код примеров на гитхабе. Но спасибо за пояснение, сейчас создам и на постгрес переключу.
1) Объекты только в виде POJO, никакой логики внутри. Ибо если внутрь класса класть бизнес-логику, он быстро превращается в god object, внутри появляется очень много зависимостей и зависимостей от вызовов методов. Плюс нарушается принцип инкапсуляции — зона ответственности весь класс и все потомки, нет четких границ. В случае же процедурного-подобного подхода зона ответственности четко ограничена, и четко видны вход и выход. Плюс объекты с бизнес-логикой внутри сложно тестировать, ибо оно зависит от внутренних состояний
2) Бизнес-логика в виде процедурно-подобных методов в классах-сервисах. Легко тестировать, легко расширять, легко видна зона ответственности, легко делится на слои, легко разделяется на разные классы
3) Наследование только в виде расширения POJO объектов, в соответствии с первым пунктом 4) Делим приложение на слои, минимальное количество: слой записи, слой чистой бизнес-логики и слой взаимодействия с внешним миром
5) Юнит-тестирование только в случае непонятного или страшного кода, в котором я не уверен. Гнаться за 100% покрытием — вредно, ибо увеличивает кодовую базу и затрудняет рефакторинг и правки. Вместо юнит-тестов по максимуму интеграционные тесты, прогоняющие реальные сценарии работы с начала и до конца
>>1282916 То есть ты не пишешь мок-тесты для всяких банальных котнроллеров? И потом внезапно оказывается что секьюрити не пропускает какую нибудь хуйню, про которую ты забыл.
>>1282923 >То есть ты не пишешь мок-тесты для всяких банальных котнроллеров? что ты хочешь протестировать? Что сеттер работает? Что твои глаза тебя не обманывают*
>>1282924 Для геттеров/сеттеров мне кажется никто не пишет. Я про банальные вещи когда у тебя метод контролера выдает статичную страничку например. Все просто же.
>>1282926 >Для геттеров/сеттеров мне кажется никто не пишет что думаешь означает "100% покрытие кода"? > Я про банальные вещи когда у тебя метод контролера выдает статичную страничку например Юнит-тестами это не протестировать. Тут как раз надо поднимать весь контекст и слать реальный запрос и смотреть реальный ответ. И опять же есть шанс, что тест будет работать, а при разворачивании на рабочем - не будет
Пока отсюда никто не ушел, спрошу ещё вопрос. Вот когда была глава Security, я поставил свой конфиг, поставил защиту, вообщем пикрелейте. HttpSecurity тоже перезаписал. Ну и сам вопрос, этого достаточно чтобы пароль был шифрованным как в БД, так и когда юзер нажимает кнопку логина и пароль шифруется и сравнивается?
Просто есть проверка логин/пароль и там я достаю из БД всё, где логин и пароль такой-то. Так-то я попытался банально вывести пароль в консоль чтобы посмотреть если шифруется, а там получаю вот это core.User@77b3d801 . Я ведь правильно понимаю что накосячил и получаю хуйню?
>>1282897 у меня все такие объекты наследуются от Entity. Придется у каждого отдельно переопределять? или как-то можно красиво переопределить в Entity? пикрил ругается на синтаксис :c
>>1282940 Тебе даже ide подсветила. Вместо == надо использовать equals для id (предварительно проверив на null), поскольку id у тебя хранится в упакованном объекте, а == сравнивает их адреса, а не значения.
>>1282943 да бля, на getClass ругается. но не могу же я написать "instanceOf Entity", ведь тогда два разных элемента из разных таблиц с одинаковыми id будут равны. типа phone с id = 2 и phone_type с id = 2. как мне проверить принадлежность объекта к подклассу?
>>1282953 if (obj == null || obj.getClass() != getClass()) { return false; } Entity e = (Entity) obj; Long eId = e.getId(); return eId == null ? id == null : eId.equals(id);
Однако Joshua Bloch в Effective Java (кстати, очень рекомендую прочитать) не рекомендует так делать, ибо могут быть странные баги, особенно если эти entity ты будешь совать в мапы или сеты.
>>1282958 >>1282960 >>1282961 спасибо, теперь разобрался. странно, что instanceof не работает с классом Class, а только с именем класса в коде. эффектив джаву я начинал читать, сложная показалась для меня, да и с английским у меня все не супер, а переводы в интернете нашел только уровня гуглтранслейт
>>1282953 И да, я бы так equals не переопределял вообще, потому что сразу возникнет проблема с согласованностью. Например ты взял объект из БД, потом этот объект внутри БД обновился и ты взял его снова. С точки зрения equals они будут одинаковые, тогда как в реальности в них будут разные данные.
>>1282969 Впрочем эту проблему легко можно решить простым способом: ввести версии и флаг того что entity не была изменена со времени доставания из БД. Версия будет простым int'ом и будет инкрементироваться после каждого успешного сохранения, а флаг будет ставиться после каждого обновления поля (за исключением установки поля после чтения из БД) и сбрасываться при сохранении. Тогда совпадение id, версии и флага будет означать, что объекты одинаковы.
JDK 8u181, IDEA 2018.2.5, Gradle 4.10.2, Spring Boot 2.0.6
При запуске таска bootRun вне идеи всё работает нормально. При запуске того же самого таска из неё (как обычным запуском, так и дебагом), всё это дело сжирает 2/8 потоков и начинает неистово греть ноутбук. Таск run (из плагина application) даёт тот же эффект. Такое происходило и на линуксе с OpenJDK, и на винде с оракловской. Простой запуск @SpringBootApplication-класса в идее работает абсолютно нормально, но есть таски, которые должны подхватываться грейдлом при запуске, поэтому не вариант. На старом, менее мощном ноутбуке работало нормально, но там и версии софта были другие.
Кто-нибудь встречался с таким? Что виновато? Что обновить/откатить?
>>1282899 Ну так создай его. Потому что в буте есть такая хуйня как автоконфигурация и если у тебя в зависимостях есть H2 скорее всего он его поднял, а конфигурацию сам нашаманил.
>>1282916 > Вместо юнит-тестов по максимуму интеграционные тесты, прогоняющие реальные сценарии работы с начала и до конца Типичная ошибка джуна / недостаточно опытного мидла. Интеграционный тест на каждый пук и в какой-то момент ты уже успел сходить посрать, поспать и бабу выебать, а тесты все еще идут.
Тесты должны тестировать только тестируемый функционал. Если новый функционал можно протестировать написанием юнит теста, то именно его следует писать. Понятно, что пример утрированный - одного теста никогда не достаточно, но 100% интеграционных тестов такой же антипаттерн как 100% юнит тестов.
>>1282923 За вайрмоки контроллеров надо отрывать руки. За пруфами в пазлеры Баруха и Борисова про Шерлока Холмса с крайних джокеров и жпоинтов, где тест работает, а почтовая станция к хуям сгорела.
>>1282973 Идея майнит на твоем кудахтере. За удобство надо платить.
>>1283015 >Идея майнит на твоем кудахтере. За удобство надо платить. Майнит - не майнит, мне без разницы. Я не понимаю, почему грейдловская таска, запущенная именно через идею, жрёт столько при том, что запуск приложения (чем эта таска и занимается) через идею работает как и должен.
>>1283018 Если оно не отличается от общепринятого с долей сарказма, то понимаю. Впустую гоняет процессор. Но опять же, на более слабом ноутбуке (Latitude 5491-i5 против x220-i5) оно работало абсолютно нормально. Идея стояла та же, грейдл тот же.
>>1283023 Возможно памяти не хватает. У меня недавно две планки памяти перестали работать (впрочем починились протиранием контактов спиртом) и вместо 32Гб стало 16, idea тоже начала тормозить на крупных проектах.
>>1283027 Проект (пока что совсем) не крупный, памяти 16ГБ. Отдельно, правда, я не прописывал выделение памяти ни жвм, ни грейдлу. В идее не тормозит, в грейдле не тормозит. Стоит обернуть грейдл в идею - кранты. Выделить грейдлу гигабайта 3-4, что ли?
>>1283032 Попробовал выдать грейдлу 4ГБ, идее 2ГБ. Результат один и тот же. Пробовал JDK 8u181 и 8u192. На JDK 11 билд не завёлся вообще да и хуй с ним.
>>1283034 Хотя по той ссылке меньше одной главы, так что толку мало... а не хочешь ли сыграть в игру? Кидаю архив с полным 5 изданием, но под паролем. Разгадаешь - получишь полную версию уже сейчас. Да и алгоритм у меня совсем не сложный, это тебе не цикада. Удачи :)
Объясните нубу какая связь между спринг бут и спринг? Я читал, что спринг бут это фреймворк для жирного и разросшегося спринга. Но как-то странно все это.
>>1283239 Учить спринг. С помошью спрингбута ты натыкиваешь какие модули спринга тебе нужны и он подбирает подходящие версии, и создает проект. Со всем добавленным говном.
>>1283015 Опытного мидла видать из далека. Хотя бы по тому как он лихо раздает советы на лево и направо. Что ты там собрался юнит-тестами покрывать в очередном CRUD? >Тесты должны тестировать только тестируемый функционал. А мы то с мужиками нетестируемую функциональность тестируем. В цитатник однозначно!
>>1283261 >В цитатник однозначно Очевидно же, что он говорил о случае, когда добавляется новая фича, а ты тестируешь все приложение целиком, в чем смысла нет.
Если пошел такой базар, то что вообще тестить и как? Вот допустим взять кусок регистрации юзера - это бд с юзерами + форма регистрации + логин форма + конфиги спринг секьюрити + допустим страницу куда идет перенаправленные после логина.+ может что то еще забыл.
Хеллоу, ЖСеры. Тут к вам кресто- блядь заглянула. Поскольку у меня весь проект переписывается под жабу заказчик - долбоеб, хули делать, необходимо срочно выучить синтаксис и работу с сетью. Что подскажете ? Есть какие- нибудь книжки с простыми заданиями ? Посмотрел java head - чуть не блеванул. Есть что-то годное для погромиздов, которые переходят на жаву с другого ООП языка ?
>>1283510 Медленно соображаешь всегда или именно на конкретной задаче затупил? Если второе, то пока возьмись за другую. Если первое, то тобой выбрана неправильная дверь, дружок-пирожок.
>>1283510 Эх, и я тоже. А я ведь даже работу еще не получил, просто вкатываюсь. Могу по часу-полтора сидеть и думать над решением какой-то задачи. Надеюсь, со временем стану быстрее соображать.
>>1283527 >Это коммерческая тайна вообще-то. Просто баг, который то есть, то нет. Ну так сука скажи какой у тебя ебучий фреймворк, как ты багу искал и т.д. Опиши свои шаги... А то складываешься впечатление что ты просто ленивая жопа вместо ковыряния кода двач листаешь.
>>1283288 а если происходит изменение, изменяющее функциональность в этой фиче. Будем ломать все эти тесты на каждую фичу? Может проще было иметь один тест и поддерживать его?
>>1283561 >Может проще было иметь один тест и поддерживать его? Ебать тесты то на каждый класс пилят вроде. Поменял/добавил в класс => поменял добавил в тесте соответствующем.
>>1283336 Охуеть, взял книжку Экеля, прочел 200 страниц за день. Ебать, как у вас всё просто - автосборщик мусора, нет перегрузки операций, нет конструктора\деструктора, де- факто, отсутствует понятие хип\стек (вам просто похуй), адекватная работа с файловой системой, нет вставочек под АСМ. Ебануть в Андроид - дев, чтоле. Или голанг уже сожрал джаву ?
>>1283617 > нет конструктора\деструктора Вообще-то конструктор есть. А вместо деструктора используется интерфейс AutoCloseable, который в какой-то степени даже неудобней деструктора (поскольку его надо использовать явно, в отличии от). > отсутствует понятие хип\стек Вообще-то есть. А когда закончат вальгалу (проект по внедрению кастомных value types в жяву) станет достаточно важным, если захочешь делать пирформансные приложухи с минимальным мусором. > адекватная работа с файловой системой Хуй его знает. Много бойлерплейта, а минимальные функции уровня хуяк и готово появились только в 10/11 версиях.
>>1283629 Ага, в бусте-то скорее всего оно тупо не собиралось, если где-то косяки. В джаве в случае метапроблем лови ошибки сгенерированного кода в рантайме.
Сап. Пилю небольшой сайтец-сервис на спринге, попутно с этим спрингом знакомясь. Само приложение сейчас собирается в большой жарник со всеми зависимостями и запускпется через java -jar. Я хочу разделить это всё на модули\плагины: в одном модуле главная страница, в другом - страницы с информацией о игровом клане, в третьем - интерфейс управления ботом группы вк. Нужно, чтобы эти модули могли независимо подгружаться\перезагружаться, не затрагивая работоспособность остальных модулей. Сейчас, чтобы внести какое-то изменение, нужно опять собирать 20мб джарник и перезагружать весь спринговый сервер. Подскажите, пожалуйста, готовые реализации такой "модальности". Если это сложно реализовать со спрингом, подскажите фреймворк, в котором с этим проще.
>>1283960 Если это спринг: В БД там должно быть поле по умлочанию, которое генерит Идшники. Оно всегда последовательно и генерит его сама БД. Давай класс ентити суда. Пик стронгли релейтед. У тебя чет пиздец какой то если чесн
>>1283985 >jdbc >spring >препод Ты блять где учишься сукин ты сын? Ты в гарвард попал что ле? В моей шараге блять за год только до листов дошли. Я хуй на пары положил и сам изучал всё, потом смотрел на препода и на дногрпников как на говно, когда они в ужасе видели коллекции. Какой курс, если не секрет?
>>1283997 Основная разница, что в перестановках количество элементов равно количеству элементов в исходном множестве, а в сочетаниях количество элементов задаётся отдельно. Судя по вопросу тебе нужно перечисление сочетаний от 1 до n (где n - количество элементов).
>>1283985 Блять ну хуй знает ЖДБС там столько борлейплейта, который просто потом не нужен вообще нигде и исключения которые НИЧЕГО не показывают и надо ловить и куча еще всякого Г... И это все еще и руками.
>>1284283 Что ж, ты меня удивил. Потому что мой эмпирический алгоритм (алгоритм Макабы-Рошала) основан на машинном преобразовании кода, и пока что ему даже не найдено объяснение современными математиками. Короче, я сам его не смог вскрыть своим паролем после загрузки на двач. Пароль не подскажешь? А то интересно ведь, что с ним стало.
Ладно, бро, пиздеть не буду, ничего я не взламывал (хотя пытался брутом: одна древняя прога перебрала все простые варианты, что-то поновее, обещавшая задействовать 100% проца и видюхи вообще не смогла определить тип защиты). Просто у меня есть такой же экземпляр. Предлагаю, кстати, придумать реальный квест за доступ к книге.
Есть приложение, в котором клиент и сервер писались "в одном пакете". Логика так переплетена, что десять человек будут распутывать месяц. Стоит задача разделить клиент и сервер. Какие есть удобные тулзы для визуализации зависимостей между классами (и пакетами)?
Если уж тут пошло про тесты. Есть конфиг спринг секьюрити. Приложение работает.где не надо логиниться, например "/" доступ ок. Когда пишешь тест, если не указать @WithMockUser%% туда куда не нужна авторизация (permitAll в конфиге) вместо статуса 200 выдает 302 что странно. Это нормальное поведение?
Подскажите, как лучше сделать: есть entity A и B, связанных many to one, у каждой из них есть поле name. Надо клиенту вернуть ДТО, содержащее List<A> и List<B> с заданным именем. Это делается двумя запросами к двум таблицам (в одной транзакции офк) или можно одним обойтись?
>>1284549 Зачем два? У тебя же есть (наверно) таблица, где А связываются с уникальными В, ну и делай просто один запрос к этой таблице. Изи же. Или я не так понял что-то?
>>1284553 https://pastebin.com/8jEUdmA7 Ну вот такие 2 класса. На вход дается name, надо вернуть List<A> WHERE A.aName = :name и List<B> WHERE B.bName = :name. Я вот и спрашиваю, это делается через 2 отдельных запроса, через джоин или как-то по-другому.
>>1281179 (OP) Что про АДФ скажите? Меня на нём прогать скоро заставят. Я вроде какую-то литературу нашёл, но может вы что-нибудь более интересное посоветуете.
>>1284583 А, понял. По твоим данным хз, как сделать меньше двух запросов. Если нужно чисто формально сделать один запрос, то используй UNION (хотя внутри там все равно будет два запроса).
>>1281179 (OP) Двач, нужно написать веб-приложение для управления почтой. Подскажи что почитать близкого к этому, чтобы разобраться. Какую-нибудь книгу, курс.
>>1285225 Что это? Зачем это? Почему readme на русском? Почему комментарии в коде на русском? Пока не сделаешь на ангельском смотреть не буду. С сделай ещё / Hiu-pizda @param @return /
>>1285230 на русском Задал вопрос в ньюфаг-треде не зашкварно ли на русском писать, назвали русофобским смузихлёбом и опущенкой, хотя насчёт того что язык комментариев и коммитов должен зависеть от правил фирмы в которой ты работаешь я согласен, в данный момент я пишу это для себя и русскоязычного анончика, так что в чём проблема?
>>1285232 >русофобским смузихлёбом и опущенкой Нахуй ты смотришь на 1С-ых петушар и всяких фронт-енд макак, которые на этих 1С-иков работают? Ты стремишься погромировать или как? Ты собираешься доки на русском читать? Ждать пока выйдет перевод для новейшей версии хуй-пизда? В резюме так и будешь писать, что вот русский знаю и ангельский с гуглом чуть-чуть, а потому буду на русском кодить?
>так что в чём проблема? Я придира и мне лень чет вникать, но побузить и придраться есть желание, пушто захотелось увидеть документирование твоей хуйни чтобы не вникать в неё.
Привет, не так давно вкатился в джаву, выучил CE до коллекций, многопоточности. Что еще нужно для работы, в какую сторону развиваться? еще базы знаю. + что писать в резюме, чтобы знаний как будто побольше было, а то, когда написано 2 технологии, совсем по-нищенски выглядит.
Привет, не так давно вкатился в джаву, выучил CE до коллекций, многопоточности. Что еще нужно для работы, в какую сторону развиваться? еще базы знаю. + что писать в резюме, чтобы знаний как будто побольше было, а то, когда написано 2 технологии, совсем по-нищенски выглядит?
>>1285225 -10 из 0 Мне стало интересно, что ты там наделал и я решил переписать, все в хоть чуть более читабельный вид, но слушай у тебя проблема в другом твой код не работает. 34 строка просто какой-то наеб, ты заполняешь мапу якобы Integer но у тебя в buf[0] находиться "PRINT", я изменил на String но и это не помогло ты ведь используешь мапу, а знаешь ли мапа перезаписывает ключи, а значит твои 2 принта перезатрутся, че ты хотел я вообще не понял. Вот тебе код https://pastebin.com/kQ4z7X9Y дальше сам
Если у меня в проекте есть pom.xml и я хочу собирать в jar только классы, которые лежат в определенном package проекта, как это реализовать? Или нужно делать отдельный проект?
public static void main(String[] args) { int holdersNumber = 8; int capital = 1_000_000; int term = 2; int iterResult = capital; int finalResult = 0; int temp = deviding(holdersNumber, capital, iterResult, finalResult, term); System.out.println("The result is" + temp); }
public static int deviding(int holdersNumber, int capital, int iterResult, int finalResult, int term) { int middleResult = iterResult; for (int i = 1; i <= holdersNumber; i++) { finalResult = middleResult + term; if (capital % i != 0) { capital += term; deviding(holdersNumber, capital, iterResult, finalResult, term); return finalResult; } else { if (i == holdersNumber) { capital = middleResult; } iterResult = capital; } } System.out.println("Big iteration result is " + finalResult); return finalResult; } }
Мнение знатоков по поводу jhipster? Норм тема или оверкил и spring roo более чем достаточно? Или всё это хуйня и надо самому? Хочу намутить "домашний проект", но встал вопрос, что всё это впадлу настраивать.
>>1285364 В общем-то еще нужно знать кучу всего. Ты знаешь процентов 10 от необходимого для вката. Коллекции - от и до Многопоточность - базу мониторы-хуеторы, рэйс кондишн и тд Основные алгоритмы - пузырек, вставка, квиксорт, рекурсию и тд sql html\css maven, git servlet api spring
Ну то есть рассчитывай на год занятий минимум 2-3 часа в день.
>>1285445 Коллекции нужна, да. Многопоточность нужна на уроне умею стартануть тред и понимания что такое саутдаунлэш и ридрайтлок. Алгоритмы нужны. Хтмл и цсс нахуй не нужны, для этого есть фроентендеры. Скл нужен крайне посредственно, потому что джуна всё равно никого к базе близко не подпустит. Мавен - нахуй не нужен. Гит - умение пушить, пулить и коммитить, пездец сложно. Сервлеты нужны. Спринг надо понимать хотя бы как аннотации работают.
>>1285458 Я попутал, братишка. Это finalresult у меня становится нулём, а метод возвращает 1000002. Надо короче чтобы этот finalresult (1000440) можно было достать из метода именно в таком виде в котором он там.
сап, делаю гуи для работы с бд. Не могу придумать, как сделать адекватную реализацию удаления: при удалении может вылететь ошибка >UPDATE или DELETE в таблице "таблица_нейм" нарушает ограничение внешнего ключа "ключ_нейм" таблицы "таблица2_нейм" как можно проверить, можно ли удалять элемент, чтобы обработать эту ошибку? в голову приходит только сделать SELECT по всем таблицам, у которых внешний ключ содержит эту таблицу, но чувствую, что изобретаю велосипед.
>>1285443 Короче говоря, суть в том, что дойдя до строчки с "Big iteration result", кудахтер вместо того чтобы выполнить следующую под ней return finalresult, за каким-то хером лезет опять в цикл for, прибавляет там 2 к миллиону и торжественно ретёрнит оттуда 1000002. Этот пиздец не укладывается в моём двузначном ICQ и я нихуя не понимат.
>>1285470 Ебать ты куколд, тебя даже собственный компьютер в хуй не ставит и делает всё, что ему вздумается, задумайся над своей жизнью, анон, ты явно делаешь что-то не так...
>>1285470 Ты правда не понимаешь что происходит или просто смеешься над теми кто не понимает?Ответ максимально простой, ты же рекурсивно туда зашел, так же рекурсивно и вышел
А как вообще сделать Java приложение на продакшене?? На работе сказали сделать программу, что б запускать на сервере, программа в принципе написана, но запускается только локально в ide через main функцию. Еще говорили, что можно сделать из этой программы статическую библиотеку, как эт овсё сделать? Почему этому не учат в университете...
>>1285546 Я надеюсь ты используешь систему сборки вроде gradle или maven& Если нет, то используй, с ними будет проще. В них делаешь таск для создания jar, при этом в classpath нужно указывать все зависимые библиотеки. Я например делаю как пикрелейтед (у меня gradle). Такс jar создаёт запускемый файл, такс copyToLib копирует используемые библиотеки, а таск install делает скначала копирует библиотеки, а потом туда же и сам jar. Вместо ебли с библиотеками можно использовать fatjar (в таком случае все библиотеки вместе с программой упаковываются в один jar-файл), но с ним есть нюансы и некоторые библиотеки работать не будут.
Дальше просто натравливаешь жаву на получившийся jar-файл и всё работает. Есть нюансы если хочешь чтоб твоя программа работала как служба (тогда вместо одного main ннужны два статических метода - для запуска и остановки), но в остальном тоже самое.
>>1285455 >Мавен - нахуй не нужен. сильное заявление >Спринг надо понимать хотя бы как аннотации работают. особенно когда что-то отвалится ммм >Алгоритмы нужны. ну такое не то чтобы сложна но пригодится только для собеса >Гит - умение пушить, пулить и коммитить, пездец сложно. дааа ето жестка
>>1285647 Ну епт, зависит от контекста. Скорее всего дело происходит в каком-то вложенном классе, причем этот класс вложен в DialogFrame, вот к инстансу DialogFrame и идет обращение.
>>1285381 >https://pastebin.com/kQ4z7X9Y Хуйню нагородил и рад. >но у тебя в buf[0] находиться "PRINT Наверное это потому что ты метод parse неправильно переписал, давай разберем по частям мною там написанное
>TreeMap<Integer, ArrayList<String>> code = new TreeMap<>(); Integer - номер строки, ArrayList - остальной код разделенный по словам
>for (String aNeedParse : needParse) { Ебошим по листу который мы получили из метода readUsingFiles Который я переписал, у тебя на пастбине почти то что нужно, хз почему я ту херь нагородил
>String[] buf = aNeedParse.split(" "); Тут мы разделяем всю строку по пробелам, это в принципе понятно
>ArrayList<String> codeWithoutLineNumber = new ArrayList<>(Arrays.asList(buf).subList(1, buf.length)); Тут мы записываем в ArrayList всю строку кроме её номера, тобишь просто начиная с элемента под индексом 1
>code.put(Integer.parseInt(buf[0]), codeWithoutLineNumber); Вот тут мы из строки buf, в которой вся строка кода разделенная по пробелам берем элемент под индексом 0 который является интом и ебошим его в ключ, а всё остальное, тобишь строку без номера ебошим в значение ебаное ага да
То что ты там в этом методе написал я не понял если честно.
>ты ведь используешь мапу, а знаешь ли мапа перезаписывает ключи, а значит твои 2 принта перезатрутся, че ты хотел я вообще не понял Хуле у меня тогда всё работает? М?
>>1285787 Я скопировал твой basic code и удалил в нем номера строк может и не номера, потому что посчитал это странным, теперь понятно почему у меня не работало. Дальше не смотрел.
Есть проект на Spring Boot. У него есть пачка модулей, среди них core и develop. В коре - всё основное веб-приложение без стартера, в девелопе - стартер, spring-boot-devtools и специфичная конфигурация. Девелоп, очевидно, зависит от кора через compile project(":core").
Девелоп собирается, но отказывается работать до тех пор, пока в скрипте сборки кора отсутствует jar { enabled = true; } - в собранном через bootJar джарнике нету, собственно, кора. Всё бы ничего, но devtools отказывается перезагружать сервер на горячую - ругается, что не может найти в classpath-е интерфейс из кора, который используется в девелопе.
Как чинить? Пока что в голову пришла идея заставить грейдл распаковывать джарник кора напрямую в BOOT-INF (куда спринг складывает классы из девелопа), или пусть кор вообще в джарник не пакуется. Но вот как объединить скомпилированные классы - я без понятия.
>>1285890 Я эти номера строк в так называемом тз увидел, и с ними goto работает, так-то сделать так чтобы номера автоматически присваивались проблем нет, но тогда goto нужно будет переделывать каждый раз когда добавляешь и удаляешь строки, хз.
>>1285890 >>1286057 >>1286258 Кароч чекни коммит, теперь можно нумеровать строки а можно не нумеровать, можно хоть через одну нумеровать, она сама подстроится, но с goto больше ебли, теперь соизволишь спуститься со своих вершин до моего говнокода?
>>1285830 Жаба бывает разной. В былые времена была Java ME, которая вполне хорошо работала на кнопочных телефонах с 64кб оперативы. Впрочем, вместе с кнопочными телефонами она и померла. Зато вместо неё Оракл запилил Java ME Embedded и Java SE Embedded для разных встраиваемых устройств. Но в РФ/Украине/прочем бСССР на них по очевидным причинам никто не пишет.
>>1286364 А ты его что, на микроконтроллере запускать собрался? Впрочем я и микроконтроллеры паял с гигабайтами флэш-памяти, благо они дешёвые. Откуда такая экономия мегабайтов? У тебя jre (даже если будешь создавать кастомную через jlink) больше занимать будет.
>>1286364 Во-первых, это джава, сынок. Я не про тупые стереотипы "гагага жрет память", а про то, что для байтоёбства есть другие языки. Во-вторых, спригбут создан для того что быстро быстро накидать аппликуху пока солнце ещё высоко. Размер и скорость - это не те вещи на которых концентрируется этот фреймворк. Опять же, это не означает, что все приложения на нем жирные и тормозные. В-третьих, мы же не экстрасенсы и не знаем что ты в джарник напихал. Возьми да посмотри, что в нем лежит. Если стандартный spring-boot-maven-plugin суёт туда что-то лишнее, то скажи ему не делать это https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/exclude-dependency.html или используй maven-shade-plugin вместо него для сборки.
У меня очередной дебильный вопрос: могут ли мапперы из entity в dto и обратно содержать какую-то логику? Например, имеются такие классы: https://pastebin.com/nfkmpwG7 Клиент хочет изменить изменить владельца Foobar и присылает id нового владельца в dto. Должен ли маппер проверять, есть ли юзер с таким id и добавлять его в entity (маппер вызывается из сервис-метода)? Или он должен тупо копировать поля, а логику только в сервис? Еще как пример - хеширование паролей при регистрации, в dto строка, в entity bcrypt.
>>1286494 >шилдта Пробовал, но уже в самом начале где он обьясняет ООП я нихуя не понял. Шилдт все таки больше рассчитан на студентов, чем на тех кто в соло вкатывается.
>>1286478 Но маппер ведь как раз и содержит логику, а не данные, его же тоже можно считать сервисом, разве нет? В твоем случае логика трансляции размазана по 2-м классам (сервис и маппер), причем каждый сервис должен копипастить этот кусок трансляции, который маппер не доделал?
>>1286509 Я твой вопрос не так понял. Но ответ тот же. Не стоит так делать. Маппер просто маппит. Это же не чеккер и не валидатор. Верно?. Сервис же имеет доступ к базе(ам) и занимается сложными операциями.
>>1286527 Не согласен. Мапперу на вход подаётся сущность, а на выходе должен поучиться готовый ДТО и наоборот. Даже если там какая-то тяжёлая логика стоит за этим. мимо
>>1286527 Как по мне, в моем примере поиск нового владельца и добавление в результирующую сущность тоже относится к маппингу, давая на выходе полностью готовый объект.
Аноны, а какие есть гейм движки на java? Думал вкатиться в unity, но для этого сначала решил выучить C#. Вкатывание остановилось на моменте когда я увидел что Visual studio весит 20гб, и пролистав учебник по C#, понял что через неделю дропну.
Вопрос по builder паттерну для инициализации объектов вобщем зачем нам фигачить Builder и делать объект immutable если в сеттерах мы можем возвращать this ну и типа User user = new User(); user.setID(2).setName("shrek"); код получается "почти" такойже красоты и изменяемый притом и еще вопр чем чаще пользуетесь для инициализации?
>>1286592 Билдер и иммутабельность вообще никак не связаны. Билдер нужен чтоб не фигачить кучу параметров в конструктор и не создавать кучу конструкторов, если часть параметров опциональна. Всё!
Аноны, я новичок, только собираюсь вкатываться в программирование. Сразу начал учить java по видеоурокам, и обучающим приложениям. В основном треде для новичков не отвечают, хотел узнать. Стоит ли вкатываться в java вот так вот с нуля, нужно ли учить какой то промежуточный язык попроще между java и нихуянезнанием? Можно ли вообще так спонтанно заскочить на один из огромных ЯП, до этого не изучив ничего кроме основных терминов в программировании?
>>1286607 > нужно ли учить какой то промежуточный язык попроще между java и нихуянезнанием Нет, не нужно. Жава тоже была моим первым языком (правда первые приложения я писал на Java ME для мобилок, чтоб понтануться перед одноклассниками).
>>1286609 Спасибо, друг. А литературу стоит какую-нибудь читать, мне говорили что смысла нет, ибо быстро устаревает, и лучше читать статьи и смотреть курсы? Как сам изучал? Я сейчас смотрю курсы, там около 24 видео, то есть допустим я все это съем, но ведь этот ЯП огромен, откуда знать что дальше изучать и тд?
>>1286607 >>1286610 Ты сейчас делаешь следующее: "сейчас я хорошенько поузнаю, что мне нужно учить, а учить буду потом". Когда этот этап пройдёт, ты будешь думать "так сейчас надо найти самые лучшие книжки и курсы, а потом буду их читать и учить". Когда найдёшь - "так, нужно почитать программач ещё разок, чтобы быть в курсе, не изменилось ли чего". Потом "ага, надо ещё работы посмотреть на данный момент и сделать проекцию в будущее, чтобы предположить свой заработок". И после ещё десятка таких типа-как-небесполезных откладываний ты либо найдёшь какую-то другую великую цель для себя, либо попробуешь начать изучать то, что подготовил, но не протянешь дольше недели.
Это я к тому, что из этого паттерна прокрастинации и фантазий нужно выбираться прямо сейчас, а не потом. Если ещё более прямо надо - бери любой язык и учи его месяц, не тратя время на всякую чушь. Иначе гроб.
>>1286610 > А литературу стоит какую-нибудь читать, мне говорили что смысла нет, ибо быстро устаревает Ты жаву с жаваскриптом случайно не перепутал? Тут наоборот можно выучить (относительно) древнюю жаву 8 и нормально под ней писать, ибо с современными жавами разницы почти нет (если не считать Project Jigsaw [1], но он опционален и использовать его не обязательно). Большие изменения в самом языке будут ещё нескоро (такие как Project Loom [2], Project Valhalla [3] и фичи из Project Amber [4]). А изменения в стандартной библиотеке ты всегда можешь прочитать в документации или просто погуглить. Для изучения всё это не важно.
>>1286613 Я буквально сегодня начал смотреть курсы, обучаться всему и тд. На работе много свободного времени. Но раз подход такой, значит просто продолжу изучать, пока не войдёт в привычку, хотя когда узнаешь что то новое, это уже начинает нравится, спасибо анон, я продолжу обучение.
>>1286615 Я ещё ничего из этого не знаю. Просто хотелось понять, как новичку что нужно делать, что могут посоветовать аноны в плане изучения и тд. В принципе я полдня бездельничаю, и на литературу время найдётся. Благодарю.
>>1286663 Алсо, Java EE. Вкусовщина конечно, но требует отдельно поебаться с разверткой Application Server, памяти жрет вдвое больше чем спринг, позволяет манажить ресурсы из единого источника и различные способы управления в рантайме.
>>1286725 Не, я не с позиции "а вот в шарпике ламповом есть, а в вашей праше - нету!". Это я так уточняю, чтобы на собеседовании завтрашнем не насосаться больше обычного.
>>1286732 Я ещё только изучаю интерфейсы. В описании вакансии вообще не указали, на каком лвле нужно знать java (ну и js тоже), так что надеюсь получится без потоков и прочего.
>>1286633 Никто не знает? Я не про разницу в имплиминтации, а когда что лучше применять. По мне так один хуй, разве что у хиббернейта выше уровень абстракции и меньше кода.
>>1286759 Скорее всего тут требуется чисто javascript без какой либо java. Многие просто так сокращают это название.
А для новичков в жаве (если опять такие не считать андроид) есть только одно задание: писать круды. Всё. На нечто большее их никто не поставит.
А вообще вакансия выглядит странно. Одна вода и никакой конкретики. Обычно наоборот перечисляют кучу всякого говна, которое необходимо знать ради 15000 руб/месяц, а тут из требований только двая языка, слабо связанные друг с другом.
>>1286760 Ну т.е. раньше, чем после окончания изучения теории на уровне "мнопоточности" и "работа с файловой системой" соваться на вакансии смысла нет?
>>1286768 В 99% случаев - да. Особенно если ты задаёшь подобные вопросы, а не пилишь свою собственную либу, которая работает с фс и которой нужна многопоточность.
>>1286769 Мне даже интересно стало: а есть ли хоть какой-нибудь язык, который используется "всухую"? Ну т.е. "сам по себе", без фреймворков. На ум приходит только PHP.
>>1286768 А хули ты хотел, стереотипные задачи бизнеса давно известны, как и круг используемых для них инструментов. Никто не хочет по десять раз на дню изобретать велосипед.
>>1286770 С/С++ там чтоб подключить любу (если она не header-only) уже придётся изрядно поебаться, а если либ около десятка, то ебля с системой сборки может стать более замороченной, чем непосредственно написание программы.
>>1286773 > альтернативу подключаемым библиотекам Не альтернативу, а разновидность. Тот же спринг (а начиная с java 11 и EE) подключаются в виде библиотек.
>>1286633 По идее в hibernate меньше кода. Руками постоянно открывать connection, statement, закрывать после запроса, открывать и закрывать транзакцию.
>>1286770 Matlab ёпта. Если 99% на галерах задач - это круды, 99% крудов на джаве штампуют на спринге с гибером, то нетрудно догадаться, что большинство задач - это наклепать круд на спринге с гибером. У меня, например, проект с датамайнингом/машинлёрнингом - там чистая джава се. Ну и круд на спрингбуте отдельным проектом, чтоб результаты посмотреть.
>>1286904 >Что такое "круды" То, что мне дают делать на тестовых после блядских интервью. CRUD - create, read, update, delete. Самое обыкновенное, что дают, это "вебхуйня где ты можешь зарегаться/залогиниться, зайти в свой профиль, пукнуть трифорсом, посмотреть на свой пук."
Репост из сисярп треда из-за того что там мало народу.
Помогите разобраться с объектами и классами глубже.
class A { public A(){ Console.WriteLine("Произошел конструктор А"); } }
class B : A { public B(){ Console.WriteLine("Произошел конструктор Б"); } }
1)A a = new A(); 2)A z = new B(); 3)B z = new A(); 4)B b = new B();
1) Что происходит в A a и что в new A()? Так то все вместе это создание объекта a, как я понял A a просто инициализирует объект класса A, но память под обьект еще не резервируется? Происходит это после ключевого слово new, и кнструктор тоже появляется так же. Мы получили объект а, переменная а просто имеет ссылку на него. Правильно?
2) Это вызовет ошибку, правильно? Или наоборот пример 3)?
3) Что вообще происходит блядь. Я инициализирую объект производного класса, но создаю объект конструктором базового? Какой конструктор вызовется? Тут я в ступоре.
4) Ну и последнее какой конструктор вызовется, только Б или оба?
Простите если вопрос шибко глупый, просто хочется ПОНЯТЬ СУТЬ.
>>1286923 > Что происходит в A a Ты просто говоришь компилятору, что под именем a теперь будет переменная с типом A. > и что в new A() Вызывается конструктор и возвращается ссылка на тип A, а символ = между ними означает присваивание, ты присваиваешь результат работы new переменной a. На самом деле их можно разделить вот так:
A a; // ... a = new A();
И даже больше, вызов new A() можно не присваивать переменной а напрямую передавать, например, в функцию.
> A a просто инициализирует объект класса A, но память под обьект еще не резервируется? Ничего они не инициализирует. С точки зрения выполняемого кода она вообще ничего не делает, а просто указывает компилятору, что имя a теперь принадлежит вот этой переменной и она имеет тип A.
> 2) Это вызовет ошибку, правильно? Или наоборот пример 3)? Пример (3) вызовет ошибку. > 4) Ну и последнее какой конструктор вызовется, только Б или оба? По умолчанию (т.е. если не указывать конкретный конструктор базового класса) вызовется конструктор без аргументов. В твоём случае сначала вызовется A(), а потом B(). Т.е. код будет аналогичный такому:
class B : A { public B(): base() { Console.WriteLine("Произошел конструктор Б"); } }
>>1286936 Решил я познакомится с этим гробовщиком других языков программирования. У меня от него уже КАРИЕС нахуй. Столько ебучего сахара я нигде не встречал.
>>1286940 > Столько ебучего сахара я нигде не встречал. Это ты котлин просто не видел. Там сахара гораздо больше (хотя за функции apply/also/run/let ему много чего можно простить, они пиздец какие удобные и в сисярпе их очень не хватает).
>В случае A c = new B(); все гораздо интереснее, так как с имеет тип А, но инстанцируется объектом типа В, то есть ты можешь вызывать ТОЛЬКО те методы, что есть у класса А (так как это тип переменной), но реализация их будет вызвана из В (напечатает именно "В"). Например добавь в класс В метод, которого нет в А, объект с не сможет вызвать этот метод, ибо его нет в А.
Там правда не конструкторы, а просто методы вывода но не суть. Пиздец когда вглюбляешься в детали так интересно, вроде прям видишь что можешь написать что то нереально крутое но не знаешь что.
>>1286943 Ну тут вся суть в том, что ты при объявлении переменной указал тип A, поэтому компилятор и работает с ней, как будто она тип A и ничего про то как она была инстанцирована и какой тип у ней на самом деле не знает. Просто в C# приведение к родительскому классу неявное. А так код A c = new B(); аналогичен A c = (A)(new B()).
>>1286944 Уже нет в котлине 1.3 (который релизнулся сегодня) уже есть корутины. Но по сравнению с жавой, да. Асинхронные функции иногда в разы удобней.
>>1286923 Не лучшее место спрашивать про шарп, в шарпе оверрайды немного по другому работают, так что ((A) bInstance).something() и something вызовет именно реализацию A, а не B, а в джаве будет версия B. (Но может я выдумываю)
A aInstance = new A(); Все просто - создание объекта класса А, записываем в перемнную типа A;
A aInstance = new B(); Создание объекта типа B, записываем в переменнную класса А, так можно делать, никакого криминала, просто теперь мы не знаем что это B и можем пользоваться им только как A.
3-й - низя, без даункаста, но здесь даже он не поможет так как там стопроцентно А, а не B
>>1286950 > а в джаве будет версия B Зависит от того виртуальная ли функция или нет. Просто в жаве все функции виртуальные, а в сисярпе они могут быть как виртуальными, так и нет. Виртуальные оверрайдятся и работают как в жаве, невиртуальные перекрываются и работают как написал ты.
>>1281179 (OP) Что должен знать джава программист джуниор, чтобы устроится в DBI,SberTech и другие фирмы.По аналогии с этими двумя? Как я понимаю, помимо Java Core и Spring Framework, нужно знать ещё Java EE.
>>1287011 Почти везде есть требование SQL, остальное сильно зависит от компании и продукта. А вообще, запарсь вакансии и отбери самые популярные слова.
>>1287031 Я видел Hibernate,JDBS и ORM, Java SE: Core, Collections, Concurrency, Generics, Reflection; Опыт работы с технологиями: Spring Framework, Hibernate, Tomcat, Maven Опыт разработки web-приложений: JSF (PrimeFaces) Хорошее знание SQL и реляционных СУБД Понимание принципов объектно-ориентированного проектирования; Понимание Agile, SCRUM-методологии; Знания шаблонов проектирования Английский язык на уровне чтения технической документации Желательно:
Опыт работы с MyBatis, JDBC Опыт работы с Spring Boot, Spring Security, Spring Cloud Опыт работы с Angular 2+; Понимание принципов REST-сервисов Опыт работы с Java Script +JQuery+AJAX Умение работать в IDE: IntelliJ IDEA Опыт работы с веб-сервисами (SOAP, REST), JSON, XML Опыт работы с системой контроля версий GIT/SVN; Опыт работы с СУБД Oracle
>>1287047 Ну касандру по хорошему никак, так как там основная фишка в кластеризации, которая нужна только на реальном проекте. Монгу дома можно учить, но только по фану, все эти Nosql нужны для очень конкретных случаев
>>1287043 А ссылки на монги и касандру?Что и как.У меня на выбор из начал Философия Эккеля и Первый Том Хорстмана.Думаю ещё подучить из паттернов: Memento, Singleton, Builder, Observer ,Proxy ,Abstact Factory, Factory, MVC,MVVM и MVP.+ Spring Framework, +SQL - запросы(только какую именно базу данных не знаю использовать.Посоветуйте). И в конце подучить Hibernate. Этого хватит на позицию Junior Java Developer?
>>1287056 Про noSql я удивился, что их нет в выборке, джуну они не нужны. Из sql я бы взял postgresql, так как он много где используется и бесплатный это важно для компании, а не для тебя. По поводу паттернов почитать можешь, но я бы вообще джуну не советовал. В крации se ee springна минималках умение в базе всякие джоины с групп баями делать. Дальше устроишься и уже на реальном проекте учится будешь.
>>1286861 Анон оказался прав и я соснул хуйцов, но произошло это с совершенно неожиданного направления.
Дали задание на псевдоязыке. Я накарябал, что смог. Итог:"вы нам не походите" и идите нахуй. Никаких дискуссий, никаких обсуждений "кем вы видите себя через 40 000 лет?".
Тест в зубы, сдал - иди нахуй.
В общем, не кодить мне на Java за 30к... Во всяком случае, на этой неделе.
>>1287098 Почему начинающим не советуют трогать паттерны? Наоборот же, все эти абстракции позволяют понять, куда вообще лезешь, а то если один код дрочить, то будет казаться, что в программировании все просто.
>>1287099 Потому что кроме паттернов нужно знать 100500 всяких вещей, которые ты и так хуй запомнишь, а будешь тратить время на паттерны, которые, вот гарантирую тебе, даже за месяц ты не выучишь.
>>1286843 JDBC в спринге все это убрано под капот. Там остались только rowmaper и процесс написания запросов. Хотя jpa там еще проще. Разве что надо писать ентети.. но опять же их и так надо писать в каком то виде. Еще есть JDBI но я не пользовалься ни разу им. По мне так сорта говна все это.
>>1287087 я не сеньер но 1 задание это двусвязный список 2 похоже на задачку из егэ по информатике я там что-то такое видел вроде 3 хуйня какая-то на внимательность наверное хз
>>1286568 Все-таки смог. Если кому интересно: С какого-то хуя адаптер keycloak'a к spring security подменяет rsa ключ ссо на какой-то свой жопноеблевый. В результате приложение не принимает получаемый от сервера аутентификации jwt токен. Выпилил интеграцию к хуям и все заработало.
>>1287099 Хуй знает, мне паттерны наоборот показали набор стандартных решений и уменьшили степень ебли мозга. Правда я к тому моменту уже полгода как попал в ЕБАМ
>>1287159 Потому что настолько крутой type inference, который бы подстраивал тип литералов не подвезли. А потому конпелятор думает что ты пытаешься преобразовать double (тип по умолчанию для литералов с плавающей точкой) во float.
>>1287172 Потому что числа с плавающей запятой - это боль в жопе для любого ЯП. 0.67f и 0.67, например совершенно разные числа: https://ideone.com/0hFUCm
>>1287181 И что? Ты сравниваешься два double, а double и float одного и того же литерала не равны, потому и сделали double по-умолчанию и float с явным указанием. С целочисленными литералами такой проблемы нет. Или тебе лишь бы спиздануть чего?
>>1287182 >И что? Ты сравниваешься два double, а double и float одного и того же литерала не равны И почему же они не равны, кроме как АРРРЯ ПОТОМУ ЧТО Я ТАК СКОЗАЛ?
>>1287189 Ну так я спрашиваю, схуяли? Вон у тебя System.out.println(0.67); чётко равняется 0.67, схуяли 0.67 у флоата не равняется 0.67? Мы же не в 1995 году живём.
>>1287192 > схуяли 0.67 у флоата не равняется 0.67 Потому что числа с плавающей запятой используют двоичную систему, а не десятичную. Потому факт что операции, которые в десятеричной системе выдают конечную дробь выдадут такую же в двоичной. В том числе преобразование 64бит -> 32бит. Впрочем такого поведения можно добиться и с помощью простого сложения: https://ideone.com/oFBe7o
Потому например для операций с деньгами double/float не используют.
https://docs.oracle.com/javase/8/javafx/fxml-tutorial/fxml_tutorial_intermediate.htm Как тут не потерять всякую мотивацию? Почему я должен везде пихать какие-то абстрактные фабрики, о которых никто ничего не говорит, да еще и для этих фабрик писать кучу кода, чтобы просто реализовать выравнивание? Да нахуй он нинужон, fxml ваш, после таких танцев с бубном.
>>1287222 Воу-воу, подожди-ка. Разве в десктопе (естественно, наколеночном) жаба фх не является последней технологией? Я читал, что свинг и авт устарели, а кроме фх пока ничего не придумали. Или сейчас что-то другое используют?
>>1287223 Ты всё наоборот прочитал. Как раз таки FX перестали поддерживать в 11, убрали его нахуй, и больше возвращаться не будут. А Свинг будут поддерживать ещё до 2026 года. Мб ошибаюсь с годом, в прошлом треде анон пояснил про эти вещи.
>>1287226 >Перестали поддерживать Если оно не включено в состав jdk, это не значит что разработка будет заброшена. FX просто станет отдельным фреймворком, что логично, ибо прогибаться под совместимость с гуем для энтерпрайз-языка западло.
>>1287269 Я так думал в 2003 году и не стал учить джаву, потом так же думал в 2008, пошел учиться на экономиста, в 2012 засомневался, на всякий купил доступ в джавараш. В 2018 прошел его.
>>1287100 Я понял, лол, но все, что я и мой знакомый смогли родить, это: "дичь какая-то, а не задание".
Первое задание у меня порядок сбился слегка: на странице написан массив и цикл. Посчитай в уме и скажи, как он изменится. Второе задание: есть список с такими-то правилами. Опиши, как ты будешь вставлять в начало новый элемент. Третье задание: есть таблица. Напиши формулы, как и что считается.
>>1287125 Ну зато теперь знаю, какой на вкус плохой тест!
>>1287158 ОЛОЛО МИНЯ ЗАДИАНОНИЛИ И СЕЙЧАС БУДУТ ТРАВИТЬ1
>через неделю позовут А как тебе это задание? С одной стороны, оно какое-то стремное, с другой, вполне себе адекватный способ оценить скилл на вакансию, в которой не требуют знание языка.
>>1287274 Лол, у меня что-то подобное получается, хоть и не такого уровня слоупочности.
>>1287099 Хуй знает. Откликнулся на вакансию джуна по JS. Итог: надо знать singleton, nodeJs (и не просто, а socket.io), react и вообще, чтобы все с наворотами было.
>>1287333 >Как тебе это задание? Первые два - решаются простым применением мозга по назначению, но предполагается что хороший прогер знает их наизусть. Третье скорее на умение принимать адекватные решения, правильным ответом было не ебать себе мозг, т.к. распределить копейки на всех не получится - можно даже просто добавить по 0,01 каждому начиная с наиболее богатого. Меня они собеседовали весьма слоупочно. По факту, в той или иной мере завалил к хуям все задачи, ответ дали только через неделю, и итоговое собеседование было ещё через одну. По итогам разговора с тимлидом объяснил свои решения, предложили две недели попробовать посмотреть как у них разработка происходит, повыполнять задания. >MySQL не прокатит Да, основной продукт - Global System - в качестве бэк-энда использует Oracle с хуевой тучей хранимок на PL/SQL, а фронтенд генерится скриптами в Delphi. По крайней мере так было летом, хуй знает, может сейчас они уже перехуярили хоть что-то на жабу. И таки если не перехуярили, с 90% вероятностью ты на ней писать там не будешь. >ОЛОЛО ДИВАНОН Я съебался оттуда не дожидаясь окончания первой недели, как только охуел от того пиздеца, что у них творится в тестовой бд. Но у меня за плечами к тому моменту уже был первый проект, собственно для вката в хайлевел SQL место неплохое. >>1287158 - кун
>>1287340 >решаются простым применением мозга по назначению >По факту, в той или иной мере завалил к хуям все задачи Лол, самокритично.
>ответ дали только через неделю Мне сразу сказали, что нихуя. Видать, тимлид, увидевший мое решение, ощутил онемение в области головы.
> а фронтенд генерится скриптами в Delphi А когда я хотел вкатиться в программирование, я не знал, что даже, сука, конченая макака коей я и хотел стать должна знать все языки программирования, от pascal и delphi до C# и Java, проходя через верстку и БД!
>может сейчас они уже перехуярили хоть что-то на жабу Ну у них есть вакансии на ЖС и scala, но, как мне кажется, люди меняются быстрее, чем конторы перекатываются с языка на язык.
>как только охуел от того пиздеца, что у них творится в тестовой бд Ну у меня какое-то ощущение неуюто было, лол. Т.е. не то, что повсюду свастоны из говна нарисованы, просто ощущение какое-то, уровня "тут будет начальник, что спокойно орет на подчиненных, злобное распиздяйство и прочий треш".
>>1287406 Может тебе еще сколько 2 + 2 ответить? Это элементарные ООП азы не относящиеся даже к C#, которые есть вначале любого учебника и гугляться за несколько секунд.
>>1287421 >Может тебе еще сколько 2 + 2 ответить? Если ситуация в которой спрашивающий не знает сколько будет 2+2 и почему, то да, почему нет? Ты своим детям тоже будешь самооценку понижать если они спросят почему небо голубое? Людям надо помогать.
сап, попал в странную ситуацию. прогер прислал письмо с таким текстом >Для использования: >$ git clone https://github.com/mar0x/unit.git >$ cd unit >$ git branch -b java origin/java >$ ./configure --debug --control=127.0.0.1:8443 --modules=build --state=build >$ ./configure java >$ make На третьей строчке вылетает ошибка "У бранча нет параметра -b", что тут могло иметься ввиду? Я просто перешел на ветку origin/java. И еще у меня еще на предпоследней строчке пишет "не найден ждк". В чем может быть проблема? спросить у прогера нет возможности.(
>>1287597 Swing уже даже не воняет, а в JavaFX изучать особо нечего. Можно с наскока без проблем написать простенький гуй к своей проге. Scene Builder вообще хорошо сделали, все мышкой накидывается за минуты. Вообще Единственный плюс в том что когда пишешь гуй то много еблипрактики с коллбеками, листенерами, абстрактными фабриками фабрик и.т.п. в остальном развлечение на любителя.
>>1287622 > не найден ждк Скачай openjdk (только версию 1.8, а не 11, не факт что на 11 заработает), распакуй куда-нибудь и поставь переменную среды JAVA_HOME на каталог.
>>1287632 вроде все нормально уже стоит, идея работает $ echo $JAVA_HOME /opt/java/jdk1.8.0/ $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/java/jdk1.8.0/bin:/opt/java/jdk1.8.0/jre/bin $ which java /usr/bin/java
>>1287653 Мммм, маняотрицания подъехали. Приведу пример: всего у нас целых чисел 2^32 (около 4 млрд). Если даже каждый из 4 млрд объектов окажется с разным хэшем, то 4 000 000 001-й объект точно совпадет с каким-то другим по хэш-коду.
>>1287732 Блядь, ебаный ты шизоид, ты можешь нормально выражать свои мысли? Твой поток сознания читать просто не возможно. Возникает ощущение, что у тебя разорванное мышление или речевая бессвязность. Просто словесный шум какой-то. Прими таблетки и не забывай посещать психиатра, у которого наблюдаешься.
>>1287735 >Блядь, ебаный ты шизоид, ты можешь нормально выражать свои мысли? Твой поток сознания читать просто не возможно. Возникает ощущение, что у тебя разорванное мышление или речевая бессвязность. Просто словесный шум какой-то. Прими таблетки и не забывай посещать психиатра, у которого наблюдаешься.
ты читать умеешь? или выебываться?. мне не надо сравнения строчки с переменной. мне надо сравнить введенное в конструкции if else, типа if output = "ty huy" then println "yes we know!"
а не такого вида: а = "yoba" in.nextLine(); if (a.equals(a)) { system.out.print("и чо терь??");
Как быстро проверить что Ab и bA равны? Нужно именно с малыми и большими, не хочу ебашить toUpperCase и выделять кейс, который содержит лишь одинаковые буквы.
>>1287788 Так, ну давай разберем по частям тобою написанное. Складывается впечатление, что ты реально контуженный )) >if(true){ >... >}else{ >System.out.println("Ты совсем долбаёб?") Только долбоеб будет проверять равенство строки самой себе, поэтому это обязательно нужно указать в блоке if. Вот и все. Хотя да, можно было бы и >>1287747 ему отправить, лишним не будет.
>>1287792 Ты не понял сарказма в этом посте? Давай поясню, проверять равна ли строка сама себе немного глупо т.к. ответ всегда будет да, поэтому в условии я написал >If(True) что как бы говорит о долбоёбиз.. Бля да иди нахуй харош тралеть.
>>1287793 Щас бы пытаться все исказить так, словно это очень тонкий сарказм. Ты ему просто указал на ошибку, написав if(true), но не простебал, добавив что-то в этот блок.
>>1287794 Но я добавил >}else{ >System.out.println("Ты совсем долбаёб?") и потом пояснил что >только долбаёб сможет сделать строку не равной самой себе сука.
>>1287801 Еще бы. А сейчас еще и сроки горят, менеджер пиздец злой, быстрей проект пилите, суки, говорит. Так что надо выспаться как следует, чтоб премии не лишили.
>>1287840 >С чего начинать дрочить котлин? С установки плагина. Все пиздец просто раз-раз и придрочился, особо дрочить ниего не надо. (Но может я так говорю из-за опыта с функциональными языками типа F# и Clojure)
>>1281179 (OP) Алло. Это я на связи. Объясните, зачем нужен else if? if (какая-то хуйня) { конская залупа } if (какая-то хуйня №2) { конская залупа №63 } Чем плохой код? Кому пришло в голову между ифами else въебать?
Нужно реализовать общение между сервером на ПК (В виде swing приложения) и клиентом на Android. Все варианты, которые я нашел делаются через HTTP, ну и мне они не подходят.
Как сделать так, чтобы после того как с клиента на сервер через сокет приходит строка например "localhost:"+port+"/getphonebooks", выполнялась функция GetPhoneBooks и в ответ через сокет отправлялся бы JSON с этими записями. Код с картинки сделан под http
>>1289507 и ? Зачем вообще отписал как надо было сделать ? почему не отписал раньше как надо было сделать ? удивляют аноны, которые никак не советуют\помогают что-то делать, а потом когда подходит дедлайн и ты что-то сделал, пишут НЕ НАДО БЫЛО ТАК ДЕЛАТЬ
>>1281179 (OP) Как элегантнее реализовать схему Rpn? https://pastebin.com/gT7z9sb5 для личной практики Задача такая: На вход поступает строка математического выражения, содержащая - переменные - цифры - унарные функции - бинарные операторы На данный момент есть распознавание для строки, где разные обьекты разделены пробелами, с помощью словаря записаны некоторые константы, с помощью этого же словаря меняются переменные. ~ Стоит ли модифицировать исходную строку при получении с помощью регулярных выражений: между [a-Z]и[+-*)(/] вставлять пробелы для того, чтобы строка была валидной для имеющейся функции
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе.
https://github.com/qqqlll/Java-Thread/wiki