Этого треда уже нет.
Это копия, сохраненная 12 марта 2019 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Java thread #80 ПРАВОСЛАВНЫЙ /java/ 1332296 В конец треда | Веб
Прошлый >>1319608 (OP)

Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?

А: Нет, не поздно.

Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?

A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.

Q: Хули все книги на английском?

A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.

Q: Что скажете за джавараш?

Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе.

https://github.com/qqqlll/Java-Thread/wiki
2 1332297
посоны, если вкатываетесь в жабу, вкатывайтесь в QA. серёзно, потом мне спасибо скажете
image.png1,5 Мб, 843x819
3 1332335
Ну зойчем ви нагнетаете? Не по-людски это всё.
4 1332345

> 2019

5 1332350
>>32345

>2019


>не жаба

6 1332475
Анончик помоги
Caused by: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
Выскакивает когда я подключаю arquillian
через dependencyManagement
<artifactId>arquillian-bom</artifactId>
<version>1.4.1.Final</version>
Я хуй знает нахуя оно пытается подписывать и как это отключить нахуй
7 1332483
Кто нибудь знаком с Dropwizard? Какие преимущества в сравнении с Spring Boot? Когда его стоит использовать?
8 1332488
9 1332596
почему джава такой ублюдочный язык? даже простая операция- получение и разбор жсона занимающая на пхп 7 строчек на джаве это больше 100 строк, 2 сторонних библиотеки и полдня времени?
10 1332622
>>32596
Лол, какие сто срок то, подключить библиотеку и одной строкой замапить в обьект?
11 1332659
>>32596
5 минут и 8 строчек (не считая data-класса). ЧЯДНТ?

HttpClient client = HttpClient.newBuilder().build();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://demo0424665.mockable.io/hui"))
.header("Content-Type", "application/json")
.GET()
.build();

HttpResponse<String> httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());

Response response = new ObjectMapper().readValue(httpResponse.body(), Response.class);
12 1333152
>>32659
Ты компьютерный гений?
13 1333360
Поясните простыми словами, что такое JavaBean и зачем он нужен? Что такое model в MVC? Что такое JSP и зачем он нужен, кто генерирует JSP, почему нельзя заменить его на HTML страницу?
14 1333377
>>33360

>что такое JavaBean и зачем он нужен



Типа обычный класс с сериализацией и геттерами сеттерами.

Нужен чтобы скармливать интырпрайзной поеботе.

> Что такое model в MVC



хранилище данных и его логика

> Что такое JSP



Стандартный жабошаблонизатор из бородатых годов. Шаблонирует шаблоны.

> почему нельзя заменить его на HTML страницу?



Вопрос в 2к19 нужно заменить на другой:

> "Нахуя его использовать в эпоху SPA и реакта"

15 1333474
Сап, после двух месяцев самостоятельного обучения, начал потихоньку писать первый проект, попутно применяя полученные знания/техники и столкнулся с такой проблемой: я понимаю как работают классы, методы, объекты и тд, но не понимаю когда и что лучше применить.
Например, я пытаюсь написать подобие электронной школы, то есть где хранятся оценки, дата по ученикам, расписания, все такое. И вот постоянно ломаю голову для чего создавать отдельный класс, массив, объект и прочие вещи. Например создавать ли отдельные классы для отдельных предметов(уроков), использовать ли наследование при этом, либо вообще не создавать классов для этого, а вносить всю дату непосредственно в объекты(учеников). И подобные вопросы встают на каждом шагу.
Вопрос: стоит ли мне сейчас над этим так задумываться, или просто делать как удобно? Я свободно владею английским, но не могу найти подходящее объяснение в каких именно ситуациях что использовать, лишь определения по типу "что такое класс", а это и так понятно.
изображение.png322 Кб, 450x326
16 1333479
>>33474

> я понимаю как работают классы, методы, объекты и тд, но не понимаю когда и что лучше применить.

17 1333504
Двач, полный ноль в програмировании, хочу вкатиться. В моей мухосрани открываются курсы по яве, при одной компании. Требования пздц низкиеу меня с английским туго, а там всего лищь а1-а2 надо, поэтому хочу туда попасть. Основное требование это

>базовые навыки программирования с использованием любого объектно-ориентированного языка


Я в душе не ебу что такое ООП, и за сколько можно выучить джаву, чтоб жойти до этого самого ООП. И базовые навыки это на сколько?
До 8 февраля подача документов
18 1333506
>>33504

>хочу вкатиться


>не может в гугл

19 1333508
>>33506
Нормально же общались
scrin3.png56 Кб, 815x489
20 1333564
И вот это считается читабельней чем xml?
21 1333568
>>33474
Изи. Никакого наследования. Хранение в базе
PupilService
CheduleService
ReportService

И сущности PupilEntity, ScheduleEntity, LessonEntity и т.д.
22 1333590
>>33474
Всё, что является объектом - класс, урок, школа, расписание и т.д, можно и нужно сделать классом. К наследованию подходи осторожно - не применяй его там, где оно не нужно, и не плоди сложные иерархии. Предпочитай композицию наследованию.

Очевидно, что учителя и ученика можно занаследовать от абстрактного пёрсона, а вот лицей и школу разными классами делать не стоит - они должны отличаться стратегиями преподавания. Школа-интернат может наследовать интерфейс школы и тем самым декорировать как лицей, так и обычную школу, добавляя в эти классы новое поведение. Это тебе для затравки, а дальше думай сам. Можешь закодить и закинуть на гитхаб, что получится.

Но для начала настоятельно рекомендую ознакомиться, что такое SOLID, а потом прочитать Head First Design Patterns, где эта концепция раскрывается вместе с основными паттернами проектирования.
23 1333604
Есть enum класс с несколькими final int полями.
Есть кусок кода заточенный на производительность.
Есть два стула написать: x = object.getMyPropertyValue() или объявить свойство public final и написать x = object.myPropertyValue

Где:
public int getMyPropertyValue() {
return myPropertyValue
}

Аргументы за первый вариант: Это правильно с точки зрения кода
Аргументы против первого варианта: Вызов функции ради извлечения четырёх байт - не круто
Аргументы за второй метод: Это должно работать быстрее
Аргументы против второго варианта: Код менее читабельный.

Сидел ебал я себе мозг, а потом вспомнил о такой херне как оптимизация при компиляции и компоновка коротких методов в inline функции с последующим вынесением их в целевой код. Но я нихера не помню, будет ли вынесено чтение private/protected метода или нет? Сейчас что-то этот пункт в описание найти не могу, там только говориться о коротких методах.
Выберите мне стул
24 1333610
Если кому-то надо написать заебенный КрУД на Спринге, советую взять PetClinic. Офигенный CRM, в нём тонна примеров того, как надо. Хочу написать на его основе ПО для местного приюта животных, с доступом для кураторов животных, отслеживанием прививок, сбором денег.

https://github.com/spring-projects/spring-petclinic
25 1333630
Посоны, в Спринге есть аннотация @Autowired, которая судя по документации заменяет сеттеры и геттеры при связи репозитория, сервиса и контроллера. Правильно ли я понимаю, что это ужасный, построенный на рефлексии, костыль, который лучше не использовать?
26 1333635
>>33630

>Посоны, в Спринге есть аннотация @Autowired, которая судя по документации заменяет сеттеры и геттеры при связи репозитория, сервиса и контроллера. Правильно ли я понимаю, что это ужасный, построенный на рефлексии, костыль, который лучше не использовать?


А на чём ему ещё быть? Но он теоретически не так страшен, так-как по "уму" должен использоваться единожды при инициализации глобальных переменных.
27 1333638
>>33604
Сложнее инлайнить методы, которые могут быть переопределены в сабклассах. С private или static методом вероятность наоборот будет выше. Попробуй это и проверь, инлайнится или нет.
http://normanmaurer.me/blog/2014/05/15/Inline-all-the-Things/
Но оно должно того стоить - т.е. JIT должна посчитать метод достаточно горячим, чтобы от этого был профит.
С позиции дизайна, Джош Блок считает, что раскрытие иммутабельного final поля неоднозначно, но допустимо.

>>33630
Нет, ты понял неправильно. Почитай сначала, что такое inversion of control. @Autowired это добро, и эта аннотация не заменяет ни геттеры, ни сеттеры. Спринг даёт тебе IoC-контейнер и сам управляет инициализацией классов и внедрением зависимостей. @Autowired означает, что в поле твоего экземпляра нужно засунуть экземпляр другого класса из контейнера. Причем хорошей практикой является использование интерфейса, чтобы Спринг сам заинжектил подходящую реализацию. Реализация может быть выбрана на основе профиля, мок-реализация может быть использована в интеграционных тестах, и т.д.

И не используй @Autowired с private полями, желательно всё инжектить с помощью конструкторов.
28 1333769
>>33504

>английским


какой город?
29 1333792
>>33769
Гродно
Снимок.JPG16 Кб, 673x57
31 1333840
как разобрать жсон при помощи этой хуйни длинее 51200 знаков?
http://www.jsonschema2pojo.org/
32 1333843
>>33840
Попробуй плагином в идее
https://plugins.jetbrains.com/plugin/8634-robopojogenerator
33 1333844
>>33840
Попробуй это https://codebeautify.org/
34 1333851
Как в Идее настроить положение курсора после автокомплита? Например, надо написать Set<Integer>, я набираю на клавиатуре Set<Int в этом месте появляется подсказка, я жму Enter> И курсор остается внутри скобки, перед >
Типа вот так Set<Integer |>, а я же хочу вот так Set<Integer> |, чтобы без лишних нажатий набрать имя переменной и не жать End. Я что-то не понимаю? Это можно настроить?
35 1333855
>>33843
обнял
36 1333932
>>33474
>>33590

Тащем-то анон все расписал. Но я добавлю.

Если в универе не прогуливал философию, то помнишь, что Аристотель выводил форму и материю.

Представь стакан в своей голове, он нематериален – это форма, т.е. класс. Он не занимает никакого пространства.

По форме создается сущность – т.е. форма, заполненная материей (стакан на твоем столе). Это объект, созданный по некому классу. Он физически есть на диске в виде байтиков. Эти объекты по разному заполнены материей (отличаются свойствами (значением полей), один стакан толще, другой выше), тем самым, объекты одного класса отличаются друг от друга (помимо ссылки). У любого объекта есть метод .toEquals(), переопределив его можно сравнивать объекты одного класса.

Кроме того, объекты делятся на низшие (т.н. POJO или DTO) и высшие.

Низшие объекты – это тупые объекты, болванки. Они просто несут информацию. Тут подробнее (https://www.yegor256.com/2016/07/06/data-transfer-object.html). Высшие объекты это те, которые проявляют некоторую активность (т.е. имеют функции).

Кроме того, есть интерфейсы. Взять тот же стакан – основная его цель это удерживать жидкость. Т.е. он имеет некий контракт. Если он выглядит как стакан, но не имеет дна – это не стакан, т.к. он не отвечает контракту (интерфейсу) на удерживание воды – она будет выливаться.
37 1333950
>>33630
При чем тут вообще сервисы/репозитории? Это аннотация для автоматической подстановки зависимостей (бинов) из спринг-контейнера. Вообще весь спринг - это сплошная рефлексия, включая @Autowired. Короче говоря, не понял ты ничего.
38 1333967
https://pastebin.com/iDwyKyki
Достаточно MVC-шно? Или лучше метод updateColor перенести в контроллер? И еще запуск приложения через метод init это какая-то хуита, но для FX я не нашел других вариантов.
3104473547251b05810dco.jpg2,6 Мб, 4000x2664
39 1334150
Посоветуйте пожалуйста годные книги по спрингу (желательно в переводе, но не критично), на ютубе стоющих видосов не нашел. А документацию читать для меня тяжело.
40 1334152
>>34150
ПРУЖИНА В ДЕЙСТВИИ
41 1334173
>>34150
Попробуй любой из популярных курсов на udemy.
42 1334192
>>34150
смари читаешь >>34152
если не заходит и хочешь понять как внутреняя магия работает то читаешь спринг про 4 или смотришь доклад Борисова спринг потрошитель

а вообще официальные мануалы/ документации нормас вроде
43 1334203
Аноны, можно в swagger ui заменить тип параметра?
Например в методе:
public void foo(@RequestBody String bar) {...}
необходимо, чтобы вместо String отображался другой класс, но использовать класс прямо в параметре не могу.
44 1334508
Посоны, как вернуть результат из блока try catch?
есть код вида
String yoba;<-результат вернуть сюда
try{
разные действия;
yoba=результат разных действий;
}catch{}
Вывод(йоба);

Ретурн не работает
45 1334512
>>34508
Запихни в finally
46 1334594
Посоны, два вопроса.

1. В большинстве случаев в Spring.boot+Hibernate люди оборачивают методы класса-Репозитория методами класса-Сервиса, и из Контроллера вызывают уже эти классы.
В отдельных случаях из Контроллера вызывают напрямую классы Репозитория. В чём плюсы?

2. Я написал метод поиска элемента по названию. Создаю форму, получаю искомое значение, перебираю Репозиторий, выбираю совпадения, вывожу их. Все верно?
47 1334606
>>34594

>2. Я написал метод поиска элемента по названию. Создаю форму, получаю искомое значение, перебираю Репозиторий, выбираю совпадения, вывожу их. Все верно?



В смысле, не слишком ли это по велосипедному?
48 1334716
>>34594
1. репозиторий отвечает за сохранение/получение данных в бд, а сервис за обработку этих данных. можешь менять реализацию репозитория (запилить все через JDBC, например) или сервиса(после извлечения firstName добавить к нему "tvoya_mamka"), и если они сохраняют/расширяют уже имеющиеся интерфейсы, то все заебись будет. вся эта делается, чтобы твоя абстракция не зависела от конкретной реализации.
2. для себя - сойдет, но в спринге есть JpaRepository, например, который все делает без тебя. читай документацию.
49 1334721
>>34716

>2. для себя - сойдет, но в спринге есть JpaRepository, например, который все делает без тебя. читай документацию.


Там есть только
1) findById(id) - очевидный вариант
2) findOne() - хз, как он работает, но возвращает 1 результат. А я написал поиск с выводом списка подходящих вариантов (похожие названия и иные поля).
50 1334739
>>34721
Там есть все методы для всех полей, которые у тебя есть в твоей сущности, читай внимательнее.
51 1334754
>>34739
Есть метод findOne()

Returns a single entity matching the given Example or null if none was found.

Throws:
IncorrectResultSizeDataAccessException - if the Example yields more than one result.

Поиск в базе данных не по Id (PrimaryKey) может дать множество значений, поэтому разумнее вывести список.
52 1334755
>>34754

>дать множество значений


Кроме того, пользователь может искать только по одному полю из множества.
53 1334757
>>34754
Читай внимательнее про репозитории в спринге. Он сам генерирует все необходимые методы для поиска чего угодно по любым полям.
54 1334758
Это нормально, что мой парсер переводит данные сначала в одну промежуточную струкруру, потом в другую, потом еще в одну и только потом в нужную мне?
55 1334767
>>34757
Для поиска по id я использую, тут всё просто.
Optional<Book> book = this.bookRepository.findById(id);

@Override
public Book getBook(Integer id) {
//return bookRepository.findOne(id);
Optional<Book> book = this.bookRepository.findById(id);
if (book.isPresent()) {
return book.get(); // If a value is present in this Optional, returns the value, otherwise throws NoSuchElementException.
} else {
return null;
}
}


Но допустим, мне нужно создать форму поиска, позволяющую искать книгу по заголовку (пользователь может внести, например, только заголовок). Моя конструкция выглядит так:

@GetMapping("/books/search")
public String showSearchForm(Model model) {
Book book = new Book();
model.addAttribute("book", book);
return "/books/searchForBook";
}

@PostMapping("/processSearchForm")
public String processSearchForm(Book bookToFind, Model model) {
List<Book> foundBooks = new ArrayList<>();
// strict search by ID
if (bookToFind.getId() != null) {
foundBooks.add(bookService.getBook(bookToFind.getId()));
}
// search by title & author
else
{
for (Book currentBook : bookService.getAllBooks())
{
if (bookToFind.getBookTitle()!= "" && currentBook.getBookTitle().toLowerCase().contains(bookToFind.getBookTitle().toLowerCase()))
{
foundBooks.add(currentBook);
}
else if (bookToFind.getBookAuthor() != "" && currentBook.getBookAuthor().toLowerCase().contains(bookToFind.getBookAuthor().toLowerCase()))
{
foundBooks.add(currentBook);
}
}
}
model.addAttribute("books", foundBooks);
return "/books/booksList";
}


Это позволяет мне получать список со всеми книгами, в заголовке которых есть искомая строка.

1. Для чего мне нужен findOne в данной схеме?
2. При попытке реализовать findOne(Book book) у меня подсвечивается ошибка:
inferred type s for type parameter s is not within its bound should extend...

Конструкция
Optional<Book> book = this.bookRepository.findOne(Optional.of(bookToFind));
не помогает.
55 1334767
>>34757
Для поиска по id я использую, тут всё просто.
Optional<Book> book = this.bookRepository.findById(id);

@Override
public Book getBook(Integer id) {
//return bookRepository.findOne(id);
Optional<Book> book = this.bookRepository.findById(id);
if (book.isPresent()) {
return book.get(); // If a value is present in this Optional, returns the value, otherwise throws NoSuchElementException.
} else {
return null;
}
}


Но допустим, мне нужно создать форму поиска, позволяющую искать книгу по заголовку (пользователь может внести, например, только заголовок). Моя конструкция выглядит так:

@GetMapping("/books/search")
public String showSearchForm(Model model) {
Book book = new Book();
model.addAttribute("book", book);
return "/books/searchForBook";
}

@PostMapping("/processSearchForm")
public String processSearchForm(Book bookToFind, Model model) {
List<Book> foundBooks = new ArrayList<>();
// strict search by ID
if (bookToFind.getId() != null) {
foundBooks.add(bookService.getBook(bookToFind.getId()));
}
// search by title & author
else
{
for (Book currentBook : bookService.getAllBooks())
{
if (bookToFind.getBookTitle()!= "" && currentBook.getBookTitle().toLowerCase().contains(bookToFind.getBookTitle().toLowerCase()))
{
foundBooks.add(currentBook);
}
else if (bookToFind.getBookAuthor() != "" && currentBook.getBookAuthor().toLowerCase().contains(bookToFind.getBookAuthor().toLowerCase()))
{
foundBooks.add(currentBook);
}
}
}
model.addAttribute("books", foundBooks);
return "/books/booksList";
}


Это позволяет мне получать список со всеми книгами, в заголовке которых есть искомая строка.

1. Для чего мне нужен findOne в данной схеме?
2. При попытке реализовать findOne(Book book) у меня подсвечивается ошибка:
inferred type s for type parameter s is not within its bound should extend...

Конструкция
Optional<Book> book = this.bookRepository.findOne(Optional.of(bookToFind));
не помогает.
56 1334768
>>34767
Какой ты хуйней страдаешь, открой уже петклиник да посмотри как там сделано. Я не видел, но наверняка там используется интерфейс CRUDRepository и нет такого говна в контроллере.
57 1334779
>>34768

1. ПэтКлиник недалеко ушёл.
2. Да, я делаю велосипед, но только для того, чтобы разобраться.

@GetMapping("/owners/find")
public String initFindForm(Map<String, Object> model) {
model.put("owner", new Owner());
return "owners/findOwners";
}

@GetMapping("/owners")
public String processFindForm(Owner owner, BindingResult result, Map<String, Object> model) {

// allow parameterless GET request for /owners to return all records
if (owner.getLastName() == null) {
owner.setLastName(""); // empty string signifies broadest possible search
}

// find owners by last name
Collection<Owner> results = this.owners.findByLastName(owner.getLastName());
if (results.isEmpty()) {
// no owners found
result.rejectValue("lastName", "notFound", "not found");
return "owners/findOwners";
} else if (results.size() == 1) {
// 1 owner found
owner = results.iterator().next();
return "redirect:/owners/" + owner.getId();
} else {
// multiple owners found
model.put("selections", results);
return "owners/ownersList";
}
}

И репозиторий:

public interface OwnerRepository extends Repository<Owner, Integer> {

/
Retrieve {@link Owner}s from the data store by last name, returning all owners
whose last name <i>starts</i> with the given name.
@param lastName Value to search for
@return a Collection of matching {@link Owner}s (or an empty Collection if none
found)
/
@Query("SELECT DISTINCT owner FROM Owner owner left join fetch owner.pets WHERE owner.lastName LIKE :lastName%")
@Transactional(readOnly = true)
Collection<Owner> findByLastName(@Param("lastName") String lastName);
57 1334779
>>34768

1. ПэтКлиник недалеко ушёл.
2. Да, я делаю велосипед, но только для того, чтобы разобраться.

@GetMapping("/owners/find")
public String initFindForm(Map<String, Object> model) {
model.put("owner", new Owner());
return "owners/findOwners";
}

@GetMapping("/owners")
public String processFindForm(Owner owner, BindingResult result, Map<String, Object> model) {

// allow parameterless GET request for /owners to return all records
if (owner.getLastName() == null) {
owner.setLastName(""); // empty string signifies broadest possible search
}

// find owners by last name
Collection<Owner> results = this.owners.findByLastName(owner.getLastName());
if (results.isEmpty()) {
// no owners found
result.rejectValue("lastName", "notFound", "not found");
return "owners/findOwners";
} else if (results.size() == 1) {
// 1 owner found
owner = results.iterator().next();
return "redirect:/owners/" + owner.getId();
} else {
// multiple owners found
model.put("selections", results);
return "owners/ownersList";
}
}

И репозиторий:

public interface OwnerRepository extends Repository<Owner, Integer> {

/
Retrieve {@link Owner}s from the data store by last name, returning all owners
whose last name <i>starts</i> with the given name.
@param lastName Value to search for
@return a Collection of matching {@link Owner}s (or an empty Collection if none
found)
/
@Query("SELECT DISTINCT owner FROM Owner owner left join fetch owner.pets WHERE owner.lastName LIKE :lastName%")
@Transactional(readOnly = true)
Collection<Owner> findByLastName(@Param("lastName") String lastName);
58 1334781
>>34779

>Да, я делаю велосипед, но только для того, чтобы разобраться


Еще раз, разбирайся правильно. https://habr.com/ru/post/139421/
59 1334796
>>34781

>Еще раз, разбирайся правильно.


>Не буду объяснять свою позицию, буду загадочно умничать и слать в гугл.

60 1334797
>>34796
Я тебе уже все объяснил и дал ссылку на конкретный пример, но ты, видимо, просто не хочешь разбираться.
61 1334802
>>34767
Зачем ты фильтруешь в джаве, когда есть sql? Пишешь метод в BookRepository: List<Book> findByTitle(String title). Все.
По поводу findOne. Он использует EntityManager.getReference(...) и возвращает прокси (НИКОГДА null), и если объект не найден, то при первом обращении к этому прокси вывалится EntityNotFoundException (см. доки на EntityManager).
62 1334805
>>34797

>Я тебе уже все объяснил


Нет, ты токсичный дурак, который самоутверждается на анонимном форуме.
63 1334807
>>34805

>CRUDRepository


>сам генерирует все необходимые методы для поиска чего угодно по любым полям


>Там есть все методы для всех полей, которые у тебя есть в твоей сущности

64 1334809
>>34802

>Зачем ты фильтруешь в джаве, когда есть sql?


На данном этапе я работаю с h2. Когда пропишу все методы работы с объектами, переключусь с h2 на SQL.

>Пишешь метод в BookRepository: List<Book> findByTitle(String title).


Спасибо.

>По поводу findOne. Он использует EntityManager.getReference(...) и возвращает прокси (НИКОГДА null), и если объект не найден, то при первом обращении к этому прокси вывалится EntityNotFoundException (см. доки на EntityManager).


Спасибо.
65 1334812
>>34809
Бтв, я перепутал, не findOne, а getOne. Если тебе нужно найти по произвольным полям, причем некоторые могут быть null, попробуй query by example.
66 1334814
>>34809
h2 это такая же бд, хоть она у тебя и в памяти. Пиши сразу sql репозитории, потом сможешь заменить базу, а код менять не придется.
67 1334989
>>32296 (OP)
Нубский вопрос

Создал проект Spring Initializr.
Запихнул в него index.html со скриптом.
Скрип посылает запрос get.
@GetMapping метод принимает запрос и возвращает строку.
Скрипт отправлявший запрос отлавливает строку, вплоть до этого момента всё работает как и ожидалось.
Но затем содержимое html-страницы подменяется строкой (если был прописан @RESTController, иначе в ответ на запрос GET возвращается хуйня).

Как предотвратить подмену содержимого страницы?
1493920811139.jpg29 Кб, 640x640
68 1334995
Есть один джун (я), год опыта разработки, пилю круды с mybatis, поебошился с бинфакторипостпроцессорами и рефлексией, неплохо знаю oracle, в принципе знания норма. Единственная популярная вещь которую не трогал это hibernate и прочие ORM.
Джун хочет съебать из этой страны. Английский в порядке. Откуда начинать? Пока зарегался на linkedin, но что делать дальше непонятно.
69 1334996
>>34989
У тебя там какие где URL?
1) html это наверное "/index.html"
2) в form action у тебя что?

>Но затем содержимое html-страницы подменяется строкой


Ты просто перешёл на другую страницу
70 1334997
>>34989
Ты хоть ajax используешь? Если нет, то у тебя просто страница открывается с твоей строкой.
71 1334999
>>34989
нужно установить возвращаемую строку, как атрибут модели:

model.addAttribute("name", name);

включить этот атрибут в html страницу с помощью какого-нибудь thymeleaf:

<p th:text="'Hello, ' + ${name} + '!'" />
72 1335012
>>34996
>>34997
>>34999

Я вообще неправильно отправлял запрос GET. Я обращался к localhost:8080, и поэтому ответ подменял собой index.html.
Сейчас обращаюсь к localhost:8080/controller и всё отрабатывает как надо.
Единственная проблема - браузер постоянно цепляет старую версию скрипта, которая посылает запрос на localhost:8080.
Старый файл с яваскриптом цепляется из кэша браузера?
73 1335093
>>35012
Можешь в режиме инкогнито открывать.
Солидол Иваныч 74 1335119
Пацаны, если мой английский недостаточно хорош чтобы читать книги в оригинале, могу ли я spring in action третье издание переведённое прочитать? Много потеряю?
9.3 ClassAndFlowDiagram.png.png107 Кб, 1422x691
75 1335123
В какой программе можно сделать подобную диаграмму, желательно быстро (это UML или SysML)?
76 1335135
>>35119

>третье издание


ну хотя бы четвёртое, братан, там уже пятое вышло два месяца назад
77 1335136
>>35123
Попробуй starUML
Солидол Иваныч 78 1335138
>>35135
В русском только 3-е нашёл, пробовал читать пятое но пиздец быстро устаю.
79 1335150
>>35136
Спасибо, то, что надо.
80 1335374
>>34995
плиз респонд
81 1335377
>>32296 (OP)
Это нормально в ДС3 получать 70к с 5 годами опыта в серверной джаве?
82 1335389
>>35377
братан я живу в миллионнике мне дали 70к после стажировки
беги оттуда
83 1335394
>>35389
Ну, под дс 3 я имел в виду Новосибирск.
84 1335460
Всем привет.

Кто может объяснить, или скинуть годную статью по теме как происходит взаимодействие backend(Spring) с frontend(JS). Нагуглил про AJAX и прочее, но это только еще больше меня запутало. Раньше старался не лезть в мир фронтенда, но обстоятельства заставили. Например представим ситуацию: моя задача написать на серверной стороне спринговое веб-приложение которое ходит в бд и возвращает данные для отображения на странице. Как это сделать по-современному? Потому что раньше я делал это только через jsp и прочие статические вьюхи, без js на стороне клиента. Интересно как это происходит в реальном мире?
85 1335463
>>34192
>>34152
спасибо
86 1335466
>>35460
REST на бекенде (@RestController и иже с ним), и какой-нибудь способ слать HTTP запросы с фронта (в каком-нибудь Angular.js эта штука есть из коробки). Фронт ходит по REST эндпоинтам и получает данные с бекенда. Ну, это если коротко.
87 1335490
>>35466
Понял, спасибо, а есть видео/статья где это подробно описуется? Буду очень благодарен.

Еще по REST вопрос. Я так понимаю это отдача данных по HTTP обычным JSON/XML/etc ?
88 1335505
>>35490
Да ты открой гайды по спринг буту. Там есть 5 минутные гайды, где собирают такой рест сервис.
Да, обычно отдача инфы идет в формате JSON, реже в XML. Иногда бывает, что нужно отдать какой-нибудь файл, например - тут отдаешь бинарный поток.
Обычно делается так - один докер контейнер, в котором крутится nginx и твой фронт. nginx раздает статику и хранит в себе твою фронт-логику. Также nginx проксирует запросы к твоему API через себя и к твоему Spring Boot (или что там у тебя) приложению, которое развернуто в другом докер контейнере.
Такие дела.
89 1335509
Посоны, покритикуйте КрУД на Спринг.Буте -
https://github.com/spitfireoverwatch/BookManager_Spring.boot
Чего ещё к нему добавить, помимо подключения к SQL вместо H2?
90 1335521
>>35509
Добавить папку /src/test/
91 1335541
>>35509

Чем пользовался? Доки мануалы книги?
Сколько времени потратил?

1) Запили read.me где расскажи как запускать.
(mvn compile spring-boot:run)
2) Что за хипстерские maven враперы?
92 1335548
>>35521
Я добавил тест в гитигнор
93 1335549
>>35548
...зачем?
94 1335550
>>35541

>2) Что за хипстерские maven враперы?


Для сборки и запуска без установленного maven

>Чем пользовался? Доки мануалы книги?


>Сколько времени потратил?


Туториалы + документация. Потратил довольно много времени на чтение, само приложение пишется быстро. Думаю, суммарно вышло по несколько часов в течение дней четырёх. 90% - чтение.
95 1335600
>>32596
Я вот после джавы - жабаскрипт осиливаю. Пиздец это говно кривое. Просто пиздец. Как на нем писать.
Зная немного С и питон не лезет вообще, организм прям отторгает.
96 1335605
>>35509
Тестов допиши. И у тебя логика в контроллере что не ок. Переноси в сервис.
97 1335608
>>35509
Лапша из ифов в контроллере ну такое себе.
98 1335611
>>35509
ещё раз напишешь скобку на новой строке приеду и руки тебе отломаю сишник ебаный
99 1335612
>>35509
>>35608

> bookToFind.getBookTitle()!= "" && currentBook.getBookTitle().toLowerCase().contains(bookToFind.getBookTitle().toLowerCase()))


> (bookToFind.getBookAuthor() != "" && currentBook.getBookAuthor().toLowerCase().contains(bookToFind.getBookAuthor().toLowerCase()))


зачем пустую строку проверяшь наркоман
null хотел написать?
100 1335615
>>35612
Я в это даже вчитываться не стал, лол.
101 1335668
Подскажите гросс зп в дс для джуна, мидла и сеньора
102 1335670
>>35668
У нас в оффисе все программисты получают минимум 150к, и это даже не джуниоры, а какие то духи 16-ти летние после школы.
103 1335698
>>35668
Миддл с 5 годам опыта получает примерно 120к.
104 1335714
Создает ли использование в сервис-эксепшенах @ResponseStatus зависимость сервис-слоя от веб-слоя? И вообще правильно ли использовать эксепшены в сервисах, если, например, сущность не найдена, или лучше возвращать Optional.empty?
105 1335717
кто-нибудь юзал appenging гугловый? как впечатления?
106 1335718
>>35717

>app-engine

107 1335757
>>35612

>зачем пустую строку проверяшь наркоман


>null хотел написать?


Если пользователь оставляет строку поиска пустой, она возвращает "", а не null

>>35611

>ещё раз напишешь скобку на новой строке приеду и руки тебе отломаю сишник ебаный


но... но соглашение о стиле кода...
Spring MVC CRUD 108 1335760
Сломал голову и гугл не помог.
Сделал круд, даже кириллицу отображает нормально (та ещё проблема)

И я решил сам себя взломать мамкин хакер
В форме отправляю теги, но они все отображаются просто как текст!
Пишу в форме <h1>Fuck</h1>
Вывод получаю такой же <h1>Fuck</h1> (смотрю результирующий html, там лишних тегов нет, но эти теги не подсвечиваются )
С кодировкой что-то наверное?
109 1335765
>>35760
А ты блядь сам понял!
В хроме если по F12 код смотреть то там он не подсвечивает теги потому что это блядь не теги а < и >
И у видеть это можно только если нажать редактировать как html!
110 1335766
>>35765

>не теги а < и >


& lt
& gt

Ну вы поняли
111 1335777
>>35605
>>35608
Пофиксил, спасибо.

Стало красиво и аккуратно:
@PostMapping("/processSearchForm")
public String processSearchForm(Book bookToFind, Model model) {
model.addAttribute("books", bookService.getBookByFields(bookToFind));
return "/books/booksList";
}
112 1335812
часто стал видеть ОЧЕНЬ положительные отзывы о javarush, а мне как раз нужна хорошая практика и задачки.. скажите плз стоит ли тратить деньги (которых немного ибо студент) на их подписку, если нет то какие есть альтернативы ему? можете предлагать англоязычные, тк с ним все ок
113 1335828
>>35812
Нет не стоит. Выкинутые деньги. Все есть в шапке.
114 1335832
>>35812
Если тебе нужны именно КУРСЫ чтобы тебя учили, можешь сразу забить на попытки начать кодить вообще, лол.
115 1335835
>>35812

>скажите плз стоит ли тратить деньги (которых немного ибо студент) на их подписку


Да. Я с удовольствием 3/4 их курса прошёл.
116 1335836
>>35832
не курсы а задачки
117 1335843
>>35835
>>35812
Поясняю за Javarush.
Это сервис автоматической проверки кода. Ты пишешь код по заданию, валидатор проверяет код. Начинаешь с хелло ворд, но уже скоро пишешь маленькие приложения, работаешь с потоками, файлами, объектами.
Бывают очень заковыристые задачи. Валидатор в 90% случаев проверяет точно, при этом у тебя есть возможность решить поставленную задачу несколькими путями. Будет несколько задач, где валидатор будет лютовать.
Теория там вся из книг, но теорию ты можешь почерпнуть без них, из книг и туториалов. То есть вся фишка Javarush вовсе не в каких-то лекциях, семинарах, вебинарах, прочей лабуде уровня Skillbox, а именно в получении сотен часов простой практики.
Быстро пробежавь Javarush с нуля, можешь переходить к фреймворкам вроде Спринга, писать веб-приложения и КрУДы для баз данных, после чего идти и работать.
Мне лично Javarush много дал, я доволен.
118 1335860
>>35836
Осваиваешь синтаксис.
+ читаешь всякие хед ферст / кук бук с паттернами/алгоритмами.
И дальше ПРОСТО:
Пиши свое что нибудь, неважно что.
Калькулятор, часы, радио, генератор лабиринтов + решение этих лабиринтов (поиск в ширину), игры на любом движке, говномикросервисы, что угодно.
И пока ты это будешь писать будешь решать реальные задачи.
Копать стаковерфлоу и дрочить с самыми банальными моментами, которые потом войдут в подкорку.

Задачки для олимпиадников.
119 1335864
>>35843
Круды, лол. Интерфейс написать и пару аннотаций добавить. Пиздос там сложно то.
120 1335870
>>35812
Только для умственно отсталых.
121 1335889
Где можно оценить свой хеловорд на спринге?
122 1335892
>>35870
похоже на то, плохо становится когда вижу эти ресунки и ОЧЕНЬ ИНТЕРЕСНЫЕ ИСТОРИИ
123 1335894
>>35889
Сюда выкладывай, пацаны оценят!
124 1335895
Блядь, хуилы, вы мне напомнили как я будучи безработным студентом задрачивал codewars. Такая параша, господи прости меня. Какие-то математичкеские задачки, операции над массивами, хуета ебаная которая нахуй никому не нужна, про саму джаву и её особенности ноль. Даже коллекции нормально не присутсвовали по моему. Абсолютная трата времени, аж забомбило немного.
125 1335897
>>35895
А на собесе что говорил?
126 1335899
>>35895
ого, а я как раз щас этим занимаюсь
127 1335901
>>35864
Не спорю, но это, чего ждут от программистов. Хороший, большой КрУД - это CRM для бизнеса.
128 1335904
>>35895

> Такая параша, господи прости меня. Какие-то математичкеские задачки, операции над массивами


Вот кстати на Javarush упор именно в специфику Java и ООП. Все адаптеры, врапперы, паттерны.

Но в целом мне теперь Javarush кажется полностью пройденным этапом.
1463328335197022622.jpg42 Кб, 400x373
129 1335906
>>35901

>CRM


Смотри какой у меня Круд, Здоровый сука.
Логику кто за тебя писать будет?
130 1335909
аноны, насколько хорошо нужно знать jsp/jsf и шаблонизаторы типа thymeleaf? достаточно ли просто знать, что это за хуйня и уметь применять, чтобы демонстрировать работоспособность веб-страничек приложения?
131 1335910
>>35909
Jsp еще кто то использует?
132 1335911
>>35909

>шаблонизаторы типа thymeleaf?


Во всех туториалах по Спрингу используется Thymeleaf
133 1335918
>>35897
ООП, коллекции, но на самом деле по java я не так много знал (голый jdbc, зачем-то сервлеты и сё). В основном вывез за счёт того, что хорошо знал SQL/работу баз данных (транзакции блокировки хуё моё) и что шёл на стажёра.
Если бы сейчас снова с нуля учил, я честно не знаю, откуда можно начать. У спринг бута например есть туториалы, но они сводятся к тупому копипасту без объяснений, книжки в отрыве от практики тоже пользы мало принесут.
>>35904
Я чутка глянул их программу, вроде адекватно выглядит. Только цену не нашёл, если там какие-нибудь 100к как у мейл.ру, проще стажёром пойти куда-нибудь.
134 1335926
>>35911
Я с его помощью не знаю ЖС наебенил норм страничек. С показом полей по авторизацией и т д. Норм штука.
135 1335927
>>35918

>туториалы, но они сводятся к тупому копипасту без объяснений


Да ты ахуел.
https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
И это только офф сайт. Пиздос какие тут дауны сидят.
136 1335931
image.png9 Кб, 616x439
137 1336132
Бля как охуенно-то.
138 1336157
>>35931
Проверил, получаются ошибки.
Работающий вариант:
!bookToFind.getBookTitle().equals("")
139 1336160
Господа, я тут абсолютно зелёный, но поставил перед собой охуеть какую нетривиальную задачу, а именно - отпарсить 2д карту в игровой мир. Это вообще осуществимо? С какой стороны подойти?
140 1336161
>>36160
Что ты хочешь отпарсить? Картинку? Или текст?
141 1336203
>>35926
Походу да. Делаешь темплейты из html, делаешь фрагументы, и всё.
142 1336240
>>36161
Картинку. Попробовал щас свинг прикрутить, вроде прикрутился, но что дальше делать - не ебу, графовый обход по гексагонам и преобразование неведомым хуем гексагона в элемент игрового мира, мейби, но я хз
143 1336248
>>36240
Причем тут свинг? Покажи картинку, откуда у тебя там гексагоны?
144 1336309
Я делаю недосервис блогов, сделал функцию закрепления постов.
Вопрос: как лучше отдавать закреплённые посты на клиент?
Делать отдельный эндпоинт /blogs/:blogId/blog-posts/pinned
vs
Включать закреплённые посты в ответ на запрос /blogs/:blogId/blog-posts, если запрашивается самая первая страница
145 1336310
Парни, отправляю через Angular.js на Spring Boot REST эндпоинт GET запрос и он(спринг) молчит, вообще никаких сообщений. Хотя если через браузер - выдает json как положено. Накопал про какой-то CORS, попробовал добавить аннотацию @CrossOrigin на @GetMapping - нихуя. Кто знает в чем проблема?
146 1336326
Смотри в консоли браузера.
147 1336358
>>36310
все уже порешал, там ошибка была на фронтенде
148 1336360
>>34758
Ты кипяток из чайника тоже сначала через n кружек проливаешь, чтобы сделать чай?
149 1336361
>>36360
Я просто наливаю кипяток в чайник, кидаю заварку, жду и наливаю чай, а что там происходит внутри все это время мне все равно.
150 1336365
>>35714
Попробуй кидать на сервисах и на ресте ловить эдвайсом.
151 1336369
>>36361
Где берешь кипяток?
152 1336370
>>36369
Из внешней системы присылают. Для тестирования чайника беру из папки где лежат кипятки разной температуры.
153 1336395
>>36132
Бля а дальше сложно пиздец.
image.png28 Кб, 616x439
154 1336414
>>36395
Хотя норм.
Антоны, хелп ми плиз! 155 1336984
Пилю CRUD на Spring. Java + jdbc
Как по понятиям сделать?
Мне нужно сделать валидацию данных / защиту от дурака.
В каком месте нужно это делать?
Сам думаю что в сервисе, хотя хз
Controller тут только получаю нужные String и передаю дальше
Service тут проверяю корректность данных, парсинг и создание переменных нужных типов (вроде int, float). Чистые данные идут в жопу далее
DAO тут дёргаю анус базу данных через preparedStatement
Model тут просто POJO

Нужно ли тут делать DTO?
156 1336986
>>36984

>Spring


>jdbc


anon no
157 1336996
>>36986
Почему нет? Есть Spring JDBC Template.
158 1337053
>>36984

>Мне нужно сделать валидацию данных / защиту от дурака.


>В каком месте нужно это делать?


В контроллере. По крайней мере если речь о формате данных, а не о бизнес-правилах.

>Controller тут только получаю нужные String


Spring MVC уже прекрасно умеет парсить параметры в инты и флоаты. Сервисы для круда могут быть вообще не нужны.

>Нужно ли тут делать DTO?


Нет
Java вкатальщик знатно охуевает! 159 1337278
Пилю CRUD на Spring. Java + JSP + JDBC + MySQL
Сколько же я говна нахлебался пока кириллица начала работать на всех этапах.
В JSP нужно указать!
В JDBC тоже нужно указать!
В MySQL тоже само собой!
Ох ты блядь сука!
В догонку 160 1337281
>>37278
Решил ещё по умному при старте системы загружать shema.sql и data.sql!
И тут подлянка, весь гугл сломал пока понял.
Нужно то всего в properties 5 параметров datasource указать и в pom.xml подключить ещё одну зависимость.
161 1337296
>>36996

Потому что SQL-запросоебство - есть аналогия байтоебства.

Пока начальство/клиенты не начнут вайнить что не могут купить топовые сервера под СУБД - этим заниматься не нужно.
162 1337297
>>37296

Тем более для запросоебов уже давно придумали HQL, а бизнеслогика на джойнах и тем паче - на вендорлокнутых аналитических расширениях - это сразу вон из профессии и го бомжевать да перед пенсионерами оракла и фокспро 90х выёбываться.
163 1337298
>>37296

Точнее под апликейшон. СУБД как раз тыквит от SQL-мастеров с хранимками и сложносочиненными запросами из таблиц.
0362d6fa214ee8XL.jpg60 Кб, 519x425
164 1337333
сап программач, вкатился в джаву и пытаюсь устроиться джуном в местную галеру, написал тестовый круд на spring boot с гибернейтами, спринг секьюрити, спринг датой и прочими вытекающими из этого. Проект им вроде зашёл, позвали на техническое собеседование, пообещали нормально поспрашивать. За кор джаву и кор спринга вывезу, но намекнули что будут ебать за многопоточность, в которой я ну совсем не шарю, не сталкивался.
Может кто пояснить для чего она вообще реально будет нужна джуну, ну и мб ссылок покидать на статьи для быстрого вката в эту тему
165 1337349
>>37333
Сколько денег обещают?
Сколько собесов / тесовых делал уже?
166 1337355
>>37278
Делаю CRUD повышенной сложности на Spring + Hibernate + PostgreSQL + React, вообще никаких проблем с кириллицей, всё работает из коробки :)
167 1337364
>>37355
Кышь хипстота!
Из коробки у него работает!
Сразу бери jhipster , там crud из коробки!
168 1337464
>>37349
Делал тестовый после внутренних курсов галеры для быдлостудентоты(коей сам и являюсь), собственно после них меня и решили не выгонять, а дать шанс. Теперь вот техническое.
Стоит наверное сказать, что до этого про джаву просто что-то слышал и начал буквально с нуля. Так за 3 месяца и успел кое что узнать, но остались пробелы кое-где.
169 1337596
Есть List<T> (T - это template).
По факту в T попадают ссылки на объекты.
Как обратиться к полям данных этих объектов?
170 1337599
>>37596
Забыл про тайпкаст
171 1337637
>>37596
T это type.
172 1337650
Заметил, что один участок кода просто обёрнут в скобки ради одной хуйни

//code

{
//code
Calendar c = Calendar.getInstance();
}

Calendar c = Calendar.getInstance();
//code

Ну и сами вопросы. Оборачивание в скобки даёт нам эдакую вариацию чего-то вложенного, где после выполнение все объекты cg почистит и переменные фсё?

Ну и второй вопрос такое имеет вообще смысл делать? Тип почему бы просто не назвать по другому?
173 1337659
>>37333
Почитай про synchronized, volatile, про immutable классы и зачем это нужно в многопоточности, виды локов.
Знаешь, я когда-то писал себе небольшой конспект по многопоточности(чтобы быстро вспомнить всю эту фигню, страниц 5) - могу тебе скинуть скрины в телегу
174 1337679
>>37650
Смари кароче
наверное ты видел подобные блоки где-нибудь
static{
тут инициализация static переменных
}
Это называется блок статической инициализации
Так вот тобой вышеуказанное, это аналогичная херня, только не статическая, а для каждого объекта, то есть при инициализации объекта через конструктор, этот блок будет выполняться, такие дела
Смысл делать или нет решать тебе, я с таким никогда не сталкивался все всяких хитровыебанных квизов на знание возможностей языка.
Синьеры-помидоры поправьте если я обосрался где нить
175 1337722
>>37596
List<T extends MyClass>?
176 1337734
>>37650

>Оборачивание в скобки даёт нам эдакую вариацию чего-то вложенного, где после выполнение все объекты cg почистит и переменные фсё?



Как и в любом с-подобном языке оборачивание в скобки создает безымянный scope, работающий аналогично прочим scope - if(){},for(){},while(),{} int method(){} и.т.д. То есть да, переменные и объекты инициализированные в scope за его пределами убираются из стека/попадают в GC.
177 1337735
Мда блять
178 1337736
>>37735
Говнокод-с
Не обижайся
179 1337745
>>37736
Долбоёб?
sage 180 1337761
>>37745
Ты - безусловно. Хули только три цикла, а не восемь?
181 1337762
>>37761
Я то тут причём? Я ебу вообще хули их 3?
182 1337848
>>37735
Узнаю родные Структуры и Алгоритмы Обработки Данных!
183 1337850
>>37679
>>37734
Пасибо помидоры
184 1337993
Аноны, возможно ли сделать так, чтобы в query by example две даты сравнивались без учета времени (только год-месяц-день)?
185 1338276
Сап, начал читать хорстмана, перехожу с плюсов на жабу, но скоро новый сем, и времени будет на чтение мало, хочу просто заняться практикой, мб что то вроде sololearn только с серьёзными задачами после не сильно углубленного курса есть? Хорстмана летом прочту для закрепления. Если что то такое есть, киньте ссыль.
186 1338303
>>35509
Зачем букСервис файнал в контроллере?
Почему автоваришь в конструктор а не просто в свойство?
Сам нуб
187 1338306
>>35608
Лучше спецификацию добавить и динамически собирать ее?
188 1338351
в
189 1338408
Начал изучать джаву четыре месяца назад, работая ежедневно по 12 часов грузчиком-экспедитором, во время работы читая учебники - успел пока познакомиться с Хорстманном и Thinking in Java. В свободное время решаю задачи на кодеварс и жавараше; начал писать одного простого бота для хтмл-игры, но, реализовав основной функционал, не стал доделывать графический интерфейс (пробежал эти главы мельком). Потихоньку сдвинулась с мертвой точки способность придумывать логику решения поставленной задачи, но с цифрами работать отвык - математика вылетела из головы ещё где-то в восьмом классе, а в университете я учился всего полгода, получая по этому предмету стабильно неуды. Вспоминается английский постепенно, который по выпуску из школы у меня был на уровне адвансед. Собираюсь увольняться, чтобы стабильно весь день практиковать навыки написания кода. Эти четыре месяца можно сказать потрачены впустую - с таким уровнем знаний, как у меня, я мог бы разве что претендовать на место в курсе-стажировке, но увы, они сейчас в Москве доступны исключительно студентам или выпускникам вузов. На позицию джуниора с моим булькающим Java Core можно пока даже не засматриваться - необходимы как минимум фреймворки и SQL. Немного поискав в Интернете информацию о Spring и Hibernate, столкнулся с мнением, которое мне интуитивно близко по духу - программисты критикуют засилье коллег, чьи способности ограничиваются муштрой фреймворка, советуя обучение тому, на чем эти фреймворки работают, плюс часто упоминая необходимость ориентации в архитектуре (этого я не понимаю сейчас совсем).
Я эту исповедь к чему пишу: самостоятельное обучение технологиям, которые требуются на позицию джуниора, релевантно задаче найти в кратчайший срок работу? Или больше смысла будет в трате денег на то, что меня кто-то направит и объяснит актуальные, необходимые в работе шаблоны? Единой точки зрения в Сети я не нашел, а мое увлечение чтением тематической литературы как будто в этом вопросе - наименее действенный выбор.
190 1338409
>>38408

>Или больше смысла будет в трате денег на то, что меня кто-то направит и объяснит актуальные, необходимые в работе шаблоны?


Методики обучения тех, "кто не умеет, но учит" за деньги могут отличаться от "актуальных, необходимых в работе шаблонов", западзывать на n-лет. Не торопись дарить деньги таким людям.

Самое надежное это подучить уровень английского до возможности чтения, а лучше понимания на слух, и читать/смотреть актуальные курсы, лекции. На том же удеми есть более-менее актуальные курсы, которые продаются на торрентах по цене интернет-траффика (https://freecoursesite.com/ ищи java, hibernate, spring и прочие buzzwords, поглядывая на список требуемого в вакансиях на hh.ru). Конечно же, на изучение всего этого уйдет какое-то кол-во времени, также без гарантии трудоустройства.
191 1338414
>>38409
Спасибо за ссылку. К тематическому английскому, думаю, за месяц-другой привыкну.
192 1338465
Jsp/jsf где-то используется?На это тратить время?
193 1338475
>>38465
JSP в вакансиях пишут.
Для круда нужно знать.
Там реально за 2 дня то что нужно узнаешь.
194 1338485
Анон, подскажи как в своём веб приложении на сервлетах сделать регистрацию + авторизацию, в гугле реально не могу найти нормальной инфы. Нельзя же просто ебануть атрибуты и гонять их туда без шифрования или ещё какой-то защиты? Как вообще это всё работает?
196 1338488
>>38487
Бля, хотел дописать что без спринга надо.
197 1338512
>>38485
Чё никто не шарит?
198 1338519
>>38488

Тогда или ванильный Java EE 8 и жирные интырпрайз-сервера на 32+ГБ, там есть хуитки, или велосипедь сам на сессиях и кукисах. Проблема "не гонять без шифрования" решается HTTPS.
200 1338523
>>38519

>велосипедь сам на сессиях и кукисах


Вот именно это мне и надо.

>HTTPS


Ну это не интересно.
201 1338598
>>38276
бамп
202 1338605
петян, накидай клёвых шкурок look and feel для свинга, чтобы не пиздец-вырви-глаз были из прошлого. или я много прошу?
203 1338657
>>38605
Спизди у идеи.
xgUoN1GTR8g.jpg164 Кб, 960x1280
204 1338675
>>32296 (OP)
Аноны, подскажите, что с наибольшей вероятностью будут спрашивать при собеседовании на стажёра/джуна?
205 1338686
>>38675
Ты долбоёб?
206 1338688
>>38686
А еще что?
vc3pvWb0a4.jpg254 Кб, 1082x812
207 1338724
>>38688
В голосище!
>>38686
Ну правда, анон. Мне ж пиздец очково
208 1338735
>>38675
ООП. Алгоритмы и их сложность(самые бесполезные знания, но зачем то это постоянно спрашивают). Структуры данных. Возможно конкарренси в общих чертах. HTTP, возможно. Сукель скорей всего. Вон сверху лежит список вопросов.Выкидываешь оттуда фреймворки и дж-эс (если его нет в вакансии) вот это и будут спрашивать.
209 1338742
>>38735
А да анончик, забыл добавить, что 90% спрашиваемого ты никогда не применишь в практике, потому что для дерганья БД за анус через спрингдатку даже понимания инкапсуляции не надо
211 1338760
>>38757
Ты даже код не можешь скопировать со статьи?
Ищи другую где ссылка на гитхаб есть.
212 1338783
>>38760
Я скопировал, он не работает.
213 1338991
Салют, господа.
Планирую выкатиться из своей галеры в енеми компанию. Опыт 2 года. Беспокоит вопрос, нормально ли скиллов, которые я знаю, мб добрый анон даст совет, что подкачать буду рад.

Сейчас у меня в арсенале есть: Java(до 11 версии основные фичи), Spring(IoC, MVC, Security, Boot), Hibernate, RabbitMQ, Kafka, RDBMS(Postgres, юзал MySQL но не смогу за них пояснить преимуществах/недостатках), NoSQL(CouchDB), Groovy.

Из окольных тем небольшой опыт работы с JS, React, Electron, NodeJS, WebSocket.

Паттерны проектирования, опыт код ревью и бест практик чистого кода знаком, использую.

Подскажите, что еще хорошо было бы подтянуть? Буду благодарен?
Нужно ли шарить за протоколы сети TCP/IP, и т.д.?
214 1338995
>>38757
Брат, зачем тебе GUI в Java? Если это не лаба, бросай это дерьмо
215 1338997
>>38995
Причем тут вообще GUI?
216 1339059
Какие шансы в 18 лет без образования найти работу джуном? Это вообще сильно важно? Или там будут смотреть только на знания. Очень боюсь что меня пошлют нахуй из-за того что ещё слишком юн.
15469334554771.webm5,8 Мб, webm,
960x533, 1:37
217 1339084
>>39059
А что умеешь?
218 1339088
>>39084
Ну для джуна хуйня всякая, java core эксэпшоны, multithreading, коллекции, инпут оутпут и прочая ебота из руководства Шилдта , oop, sql, jdbc, сервлеты ебаные, jsp, мавены там всякие с иксэмэлями, всё хочу в спринг забурится но сложно пока.
219 1339095
>>39088
Мы вам перезвоним, войтивайти.
220 1339096
>>39088
на само деле Spring на ур-не для джуна ез освоить. Посоветую использовать стартовать используя Spring Boot. Реализую свой-мини проектик на MVC

мими-мидл-который-в-глубокой-юности-не-разобрался-в-spring-т.к.-все-сложна
image.png254 Кб, 645x773
221 1339100
>>39095

>войтивайти

222 1339180
Что эта за красная хуйня ? Делаю всё шаг за шагом за афффтором пружины в действии 5, у него все работает, у меня не может определить этот красный метод. Я не понимаю что это, он такого нигде в коде не создавал, такой метод не гуглица, как быть ананасы ?
IMG20190201103013.jpg109 Кб, 1073x288
223 1339181
11-12-58-12438.jpg48 Кб, 600x400
225 1339219
226 1339238
Взял курсовую на разработку программы шифрования и дешифрования по ключам.
Есть какие-нибудь туториалы по различным видам шифрования, использованию XOR, анализу и дешифровке?
Просто тема слишком абстрактная, хочется конкретики, поэтому прошу подтолкнуть в нужном направлении.
227 1339241
>>39238
Без туториалов не как?
Берёшь классическую книгу по криптографии, там все алгоритмы начиная от щифра цезаря заканчивая твоим ксором
228 1339250
>>39238
Эллиптическая криптография. Нахуй твой ксор, Арви ебучий.
229 1339251
>>38991
Нихуёвый такой арсенал

>Нужно ли шарить за протоколы сети TCP/IP, и т.д.?


Если собираешься в веб - да. Всё ж зависит от того, на какое место хочешь податься
230 1339253
>>39251
Ну и нахуя ему TCP/IP?
231 1339325
Пиздец, как пароль в sha256 захэшировать?
233 1339381
В RestController есть параметр:
@RequestBody @Valid @NotEmpty List<Foo> values,
нужно проверить, что лист не пуст, но аннотации не триггерятся. В чем проблема?
234 1339397
Уважаемые господа, я сижу околосисадмином в ынтырпрайзе, но поскольку позиция есть только для дева, мне сказали начинать потихоньку прогромировать на жабе (а я и не против).

Так вот, с чего конкретно начать? Учтите, что у меня нет технического образования, но есть работа в IT (что я делаю: файловые скрипты, то запарси, это автоматизируй, найди и выеби того, кто сожрал весь дискспейс, schedulers, немного ETL, немного дотнета, немного линупсов).

Стать программистом - моя мечта, и я близок к ее реализации, как никогда. Помахите.
235 1339439
>>39397
Может из тебя хотят толкового DEVOPSа сделать а ты не понял намёка?
Если прям хочешь погромировать по пробовать, бери любой язык и начинай решать простые олимпиадные задачки типо как на acmp.ru
Если сделаешь первые 50 (отсортируй по сложности и начинай с простых) задач и не захочешь всё бросить, то у тебя есть все шансы.
236 1339459
>>39381
Надо в депенденси добавить того кто имплементирует @Valid и @NotEmpty, насколько я помню.
Обычно это hibernate-validator
238 1339476
>>39459
Все добавлено. Почему-то спринг триггерит только аннотации внутри класса (когда помечаешь аннотациями поля класса + @Valid на объекте). Аннотации на самом объекте, как у меня в примере, не работают.
239 1339511
>>38757
Бмап.
240 1339559
Братишки, подскажите
Решил остановится на Жабе, скачал курс от ITVDN, но сразу появилась загвоздка, что гайд 16-го года и там используется Java SE 8, а сейчас уже есть 11.
Вот вопрос, ставить 8 как на курсах версию или 11?
241 1339568
>>39559
Ставь 11 и выбирай уровень языка 8.
242 1339906
Ребятушки, помогите.
Я начинающий программист в колхозной конторе на 700 человек.
По всем показателям и требованиям JAVA подходит как основной язык разработки.

Но у моего начальника какие-то предрассудки по поводу Java. "Все, что касается как-то Java постоянно выбивало ошибку то там, то там".

Я не хочу, чтобы отдел продолжал катиться в сторону C#/Python - все, что нужно нашему отделу это Java

Как можно смотивировать начальника на дальнейшее развитие в сторону Java? Ну, то есть, отдел разработки не против. Нужны какие-то мотивационные статьи
243 1339909
>>39906
Ну во первых, если тебе кажется, то не обязательно так и есть, а во вторых, если ты его уломаешь на жабу и потом что-то случится он тебя с говном сожрёт.
244 1339912
>>39909
1) C# имеет платную IDE
2) Платная ОС для работы c десктопом на C#
3) Платные сервера для запуска ASP.NET

JAVA) Free for all
Ну и пусть. Предприятие не проиграет от этого.
Стоимость java разработчика в разы меньше, чем C#)
245 1339914
>>39912
А ты не очень умный я смотрю...
246 1339916
>>39914
C# уже не видать нам, так как переходим на Python. потому что бесплатно. А python это те еще копейки
247 1339958
>>39912
Анончи, я тут прочитал про то, что Java станет платной. Причем довольно дорогой для русского сегмента.
248 1339960
>>39958
Ну естественно, у нас ведь рубль дешевле доллара стоит. Для нас все дороже.
249 1339961
>>39960
начальник это узнает и скажет "продолжай колупать вилкой пихон, пока этот удав бесплатный!"

Так что не стать мне разрабом java :(
250 1339963
хотя есть вариант делать всё гавно на Node.JS/ Electron
251 1340195
делают ли игры на джаве сейчас?)
253 1340204
/hc
254 1340246
>>40195
Какой-то парень на реддите сейчас регулярно выкладывает спидвидео создания простенькой 2д бродилки в стиле пиксель-арт.
255 1340288
Сап, жаваны. Я тут пишу тестовое в одну контору. И впервые пишу DAO классы через jpa. Постоянно ощущение, что делаю какое-то говно, но из знакомых никто подобное не делал. По сему пишу сюда, может кто может выделить десять минут, поскролить три класса наискось и сказать где я не прав?
256 1340289
>>40198
Это ты на какой либе сделал? fx?
257 1340309
>>40289
Там от всего fx только ImageView и WritableImage.
258 1340340
>>40288
Ну и куда скролить?
260 1340344
>>40341
Папка должна называться не daoimpl, а dao, а внутри уже impl. Дальше даже не смотрел.
261 1340345
>>40344
И на этом спасибо
262 1340348
>>40341
Это именно требование такое - голый jpa, без Springa (или EJB) для управления транзакциями? В реальном мире такое довольно редко встречается. Даже если так, копипаста из открытия транзакции, коммита и т.п. в каждом методе - это пиздец, выноси это все в отдельный общий код. Свой маленький TransactionManager можешь сделать.

Что еще бросилось в глаза - flush нет необходимости каждый раз делать, a remove не будет работать работать в таком виде, надо сначала смерджить сущность с этим EntityManager.

И интерфейсы. Вот зачем тебе интерфейсы?
263 1340356
>>40348

>голый jpa, без Springa (или EJB)


Тоже подумал, что как-то странно, но в тз ничего про спринг не написано. Так бы просто навесил везде @transactional из спринга. это же так работает?

>интерфейсы


Мне - абсолютно не зачем, но когда меня учили делать dao, то делали интерфейсы. Полагаю что это такая общепринятая практика, вдруг понадобятся разные реализации. мне то ясен хуй не понадобятся
264 1340377
>>40288
Это на ждуна? Какие там требования в вакансии (по технологиям)?
Ты прям по этому vadin-у упарывался или для тестового по быстрому обмазываешься?
265 1340379
.
image.png41 Кб, 557x395
266 1340382
>>40377
Вообще первый раз с ваадином буду разговаривать. До этого в свинге малёха формочки делал. Вроде похоже.

Я хз какая это вакансия. Написано нужен опыт работы 2 года в ИТ компании, при этом у меня в резюме написано, что я нигде не работал, но они решили кинуть мне тестовое.

Тащемто пикрилейтед
267 1340390
>>40382

>Вообще первый раз с ваадином буду разговаривать


Сейчас развелось дохуя русскоязычных ресурсов где круды на спринге разжевывают!
На тестовое задание мне кажется стараются специально редкую хуиту дать и проверить как ждун будет манулы на англицком читать и разбираться по коду что и как делать.
268 1340397
>>40390
Ну они походу реально ваадин юзают.

А что значит >круды на спринге
Там что есть какие-то встроенные инструменты для вёрстки? Насколько я знаю там можно просто через html+css+js или всякие jsp.
269 1340404
270 1340599
>>32296 (OP)
Зачем в вакансиях пишут "опыт работы с Hibernate"? Разве Spring Data недостаточно? И если нет, то какой лучший способ изучить данную технологию?
271 1340609
>>40599
BTW, где достать High-Performance Java Persistence? На либгене лежит обрезанная версия в 200 страниц. Когда на амазоне в книге более 400 страниц.
272 1340632
>>32659
Ебать сколько лишнего говна, для такой простой задачи. Какой же все-таки php красивый язык. Не то что ЭТО. Как же я рад что являюсь PHP разработчиком, настоящий программист, не то что вы джава-макаки! ёпта.
273 1340633
>>40632
Забл добавить еще, что не хуёво так админю *nix системы. Потому что php разраб - это еще и админ/devops. А вы как видите командную строку, сретесь от страха...
274 1340635
>>40344

>Папочка называется не так как я хочу значет хуйня РЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ

275 1340651
>>40341
Как писали выше - копипаст кода. Это можно исправить написав универсальные методы через лямбды.
Подключи логгер.
Может быть попробовать сделать один параметризованный интерфейс dao?
Добавить слой service, где будут кроме crud специфические методы для работы с сущностями.
277 1340671
>>40665
Нормально, только зелени маловато, такую тудушечку нужно край за неделю делать, без паники, итого за месяц 4-круда, каждый раз ты будешь чуть усложнять и добавлять новые фишечки.
278 1340674
>>40671

> зелени маловато


Углублялся в чтение шилдта.
>>40671

> такую тудушечку нужно край за неделю делать


Я хочу сейчас дописать это всё на сервлетах, а потом переписать под спринг и хибернейт.
279 1340677
>>40665
Говнокод в части JdbcConnection со статическими полями
280 1340681
>>40677
Это же удобно, ты предлагаешь везде свои объявлять?
281 1340693
>>40681
Это, в первую очередь, не работает - у тебя разные (параллельные) запросы в разных потоках через это одно общее поле обрабатываются.
282 1340695
>>40693
Бля
283 1340696
>>40651

>параметризованный интерфейс dao


Вот так хотел, но столкнулся с проблемой, что мне в findAll или других findХуяйнд надо вызывать namedQuery и туда передавать Client.class например. Так же NamedQuery имеют имена типа "Client.findAll".

>Как писали выше - копипаст кода


Вот за это и переживал, не знаю как выкрутиться. Про какие универсальные методы ты говоришь? Можешь дать пример? я знаю что такой лямбды, просто не совсем понял о чём ты конкретно
284 1340700
>>32296 (OP)

>раби


Руби, а не раби, двоешник.
285 1340702
>>40693
Тут нужен пул соединений да?
286 1340706
Или вот так ебануть и хватит?
287 1340708
>>40706
Нет не хватит
288 1340729
>>40706
Ну и говнокода ты наворотил. Загружать драйвер можно 1 раз в статическом блоке, необязательно каждый раз это делать. Почему поля в JdbcConnection не приватные? Сделай статический метод run, который возвращал бы новый Connection, а close вообще убери, Connection и так AutoCloseable, закрывай в try. И в твоей ловле эксепшенов нет вообще никакого смысла, что толку, что ты их поймал, если вызывающий код не сможет дальше работать, поскольку к бд подключения нет? Лучше добавить throws или перевыкинуть RuntimeException. Короче, переделывай.
e9f2c414623a38fbb8d7075445388310.jpg356 Кб, 1280x1417
289 1340752
290 1340765
>>32297
QA хотят раскидать между самими разработчиками и дев-опсами
291 1340767
>>32297
обоснуй
мимовкатывальщик
wojak.jpg5 Кб, 205x246
292 1340768
Где взять нормальный гайд по запуску моих хеллоуворлдов на винде двойным кликом по ярлыку? Везде какие-то многоходовые страдания и танцы с прописыванием чего-то там в консоли или установкой jarfix которая ничего не даёт. Не могут же люди так мучиться с каждой прогой, должен быть способ здорового человека?
293 1340776
>>40768
Берешь и запускаешь, в чем проблема?
image.png63 Кб, 616x439
294 1340799
бля у
295 1340801
>>40799
ух бля, трасировку лучей делаешь?
296 1340807
>>40801
Да уже сделал по сути. Остались только преломления, но я не вижу смысла их делать без полупрозрачных объектов, а с ними я не очень разобрался. А потом кроме сфер сделать полигоны, и останется только интерфейс прикрутить.
297 1340833
>>40729
Ты бля нахуй не выёбывайся
298 1340835
Сап двачеры. Работаю на C++ в местной недоконторе, получаю мало так как в моей мухосрани нет компаний, работающих на этих технологиях. Хочу свичнуться в джаву, этого дохуя.

Посоветуйте:
1. Курс/Книги/Чёт ещё по джаве, где бы не рассказывали что такое переменная, класс и прочую банальщину. Java rush говно.
2. Идею для петпроджекта. Сам я думаю написать себе кошелёк для криптовалюты, так как им бы я и сам с удовольствием пользовался, не дело в том, что там негде применить базы данных и elasticsearch какой-нибудь.
У меня с ними такой себе опыт работы, так как я в основном low level код пишу, с базами знаком очень слабо.
3. На каком уровне можно апплаиться на работу? Я уже второй год работаю программистом на C++, опыт в разработке есть. Понятно, что потребуется акклиматизация, но ведь я ж не совсём зелёный типа. Если у кого-то есть опыт свча - делитесь историями.
299 1340838
>>40835

>Книги


Если с англицким не очень то java 8 полное руководство шилдта.
300 1340841
>>40838
С английским нормальна.
301 1340842
>>40835
Сперва чекай вакансии на ждунов и смотри что там нужно по технологиям, запили фейка на хх и проси тестовые задания, там поймёшь что нужно.
1) По яве видосики технотрека майловского, годнота!
2) Круды, круды, круды, начни с простых, без гибернатов
3) Иди на честного ждуниора, ты там самый бодрый будешь среди вкатальщиков после жидбрейнса
302 1340848
>>40841
Тогда поновее бери руководство
303 1340857
>>40842

>2) Круды, круды, круды, начни с простых, без гибернатов



А можно поподробнее? CRUD -- это концепт, а не идея.
304 1340860
>>40857
Почитай выше по треду. Система учета сотрудников, библиотека, ветеринарная клиника, все что угодно с сущностями и базами данных.
305 1340863
>>40860
Хочется что-то полезное написать, а не очевидную laba1. Ну ладно, наверно полезное я сам обязан придумать. Спасибо.
306 1340864
>>40863
Все полезное уже написано.
307 1340885
>>40835
А сколько на крестах зарабатываешь и какой стек?
308 1340917
>>40833
Я ж тебе помочь хотел, дурашка. Ну не волнуйся, тебе обязательно ПЕРЕЗВОНЯТ.
309 1340919
>>40807
Всем похуй.
310 1340923
>>40919

>рряяяя

311 1340924
>>40341
Переделал через лямбды-хуямбды, реквестирую ещё немного мочи на этот код. Спасибо за советы кстати, прошлым ораторам.
312 1340931
>>40835
Я тоже вкатывальщик, но попробую посоветовать.
Certification Guide от Mala Gupta - пролистать, чтобы понять, зачем в Java string pool, зачем при конкатенации использовать StringBuilder, что такое боксинг/анбоксинг, как Java хендлит overflow/underflow у примитивов и т.п. Это базовые вещи, без знания которых можно писать код, но лучше их всё-таки знать.

Далее, освежи свои знания по ООП. Можно навернуть Head First Design Patterns. Часть книги устарела (особенно где там про удаленные вызовы), но другая вполне себе актуальна и по сей день, так как основы ООП за прошедшие 20 лет не сильно изменились. Наверни статьи про Dependency Injection и Inversion of Control.

Набей руку в SQL по sql-ex.ru.

Ознакомься с основыми коллекциями: ArrayList, LinkedList, HashMap, TreeMap, и как они работают внутри (базово, естественно). Ты должен суметь объяснить, что для ArrayList получение элемента работает за константное время, а для LinkedList за линейное. Получи общее преставления о работе со Streams.

Далее всё зависит от того, как быстро ты хочешь вкатиться. Если время поджимает, то посмотри какою-нибудь серию видео по Spring на udemy или youtube. Какое-то конкретное посоветовать не могу - мне они все довольно быстро начали казаться говном. Но они хороши для получения общего представления, чтобы не смотреть как баран на новые ворота.

Проект естественно должен собираться через maven. Для получения базового проекта с зависимостями используй https://start.spring.io/
тыкаешь switch to full version и выбираешь Web, JPA, H2, MySQL.
Таким образом ты получаешь возможность легко и быстро приступить к созданию приложения на Spring MVC и Spring Data, используя встроенные Tomcat и ин-мемори базу H2. H2 для разработки: каждый раз при старте приложения создаётся схема и данные - схема создаётся автоматом по аннотациям Entity-классов, а данные грузишь через Spring Data репозитории (которые построены на базе Хибернейта). А MySQL - для прода.

Также можно где-нибудь спереть шаблон со стилями и картинками и красиво выводить данные через Thymeleaf при околонулевых знаниях html/css, но это сугубо по желанию.

Если есть время попердолиться с Java подольше, то можешь параллельно читать Effective Java и Modern Java in action. Я начал первую - могу сказать, что местами реально читается непросто, книжка для опытных программеров.
312 1340931
>>40835
Я тоже вкатывальщик, но попробую посоветовать.
Certification Guide от Mala Gupta - пролистать, чтобы понять, зачем в Java string pool, зачем при конкатенации использовать StringBuilder, что такое боксинг/анбоксинг, как Java хендлит overflow/underflow у примитивов и т.п. Это базовые вещи, без знания которых можно писать код, но лучше их всё-таки знать.

Далее, освежи свои знания по ООП. Можно навернуть Head First Design Patterns. Часть книги устарела (особенно где там про удаленные вызовы), но другая вполне себе актуальна и по сей день, так как основы ООП за прошедшие 20 лет не сильно изменились. Наверни статьи про Dependency Injection и Inversion of Control.

Набей руку в SQL по sql-ex.ru.

Ознакомься с основыми коллекциями: ArrayList, LinkedList, HashMap, TreeMap, и как они работают внутри (базово, естественно). Ты должен суметь объяснить, что для ArrayList получение элемента работает за константное время, а для LinkedList за линейное. Получи общее преставления о работе со Streams.

Далее всё зависит от того, как быстро ты хочешь вкатиться. Если время поджимает, то посмотри какою-нибудь серию видео по Spring на udemy или youtube. Какое-то конкретное посоветовать не могу - мне они все довольно быстро начали казаться говном. Но они хороши для получения общего представления, чтобы не смотреть как баран на новые ворота.

Проект естественно должен собираться через maven. Для получения базового проекта с зависимостями используй https://start.spring.io/
тыкаешь switch to full version и выбираешь Web, JPA, H2, MySQL.
Таким образом ты получаешь возможность легко и быстро приступить к созданию приложения на Spring MVC и Spring Data, используя встроенные Tomcat и ин-мемори базу H2. H2 для разработки: каждый раз при старте приложения создаётся схема и данные - схема создаётся автоматом по аннотациям Entity-классов, а данные грузишь через Spring Data репозитории (которые построены на базе Хибернейта). А MySQL - для прода.

Также можно где-нибудь спереть шаблон со стилями и картинками и красиво выводить данные через Thymeleaf при околонулевых знаниях html/css, но это сугубо по желанию.

Если есть время попердолиться с Java подольше, то можешь параллельно читать Effective Java и Modern Java in action. Я начал первую - могу сказать, что местами реально читается непросто, книжка для опытных программеров.
313 1340964
>>40924
Я конечно не авторитетный критик, но в глаза бросается следующее.
У тебя классы Transactional и, например, ClientDAOImpl, делают по сути разные вещи - один управляет транзакцией а другой достаёт данные. Но они почему-то в одной иерахии.
Может сделать класс Transactional обычным классом и включать его в ClientDAOImpl через конструктор?
314 1340970
>>40964
Да, нормальная идея. Скорее всего так и переделаю. А по реализации транзакций через лямбды и вот этот класс замечаний нет?
315 1341051
>>40970
У меня с JPA маловато опыта, но вот какие еще мысли: у тебя при каждом вызове transaction() вызывается initTransaction();

Смотрим что происходит в этом методе:
1) entityManagerFactory.createEntityManager(); - его действительно нужно каждый раз пересоздавать? У меня сомнения на этот счёт. Но даже если всё-таки требуется, то для него справедливо всё то же самое, что я опишу ниже для EntityTransaction.

2) this.entityTransaction = this.entityManager.getTransaction();
Не думаю, что это хорошая идея. Scope каждого объекта должен быть минимальным. Следовательно транзакция должна запрашиваться в методе transaction(), и ссылка на полученный экземпляр будет жить ровно столько, сколько выполняется метод.

После завершения работы метода ссылка на транзакцию автоматически улетает со стека, и GC сможет уничтожить объект транзакции, если entityManager тоже от него избавиться. Твой же код держит ссылку на транзакцию, хотя больше он её никогда не воспользуется - ведь всё равно вызовется getTransaction() и ссылка перезатрётся.

Метод closeTransaction() можно оставить как есть, просто передавать транзакцию внутрь метода параметром.

Еще один подводный камень - это потокобезопасность. Представим, что два потока одновременно выполняют this.entityManager.getTransaction() - если метод возвращает разные объекты, то первый будет потерян, второй обхект будет помещён в поле класса. В итоге оба потока продолжат работать с одной и той же транзакцией, и я хз, к чему это приведёт.
316 1341145
>>41051

> createEntityManager(); - его действительно нужно каждый раз пересоздавать?


Нужно

>В итоге оба потока продолжат работать с одной и той же транзакцией, и я хз, к чему это приведёт.


Все будет плохо
317 1341441
Кто как инициализирует данные в бд?
Вот есть например приложение на спринге, для его работы нужна база с заполненными справочниками. Схему генерит хибер, пес бы с ней, а вот данные откуда брать - хз.
Есть вариант использовать data.sql файл, но это не очень интересно для разработки, т.к. чтобы он работал, нужно при перезапуске все из базы вытирать. Запустил дебаг - потерял результаты работы с базой из предыдущего запуска.
На сервере-то, понятное дело, это не проблема, там хоть в скрипт деплоя можно делит-инсерты вкрутить, и никому не помешает.
Пока что решил вопрос слушателем contextReloadEvent, и ручками дозабиваю базу, сохраняя все некоторое дерьмо, которое там уже накоплено, но это костыль, да и чем больше справочников, тем больше этого, по сути, ненужного кода придется поддерживать.
318 1341458
>>41441
Гугли фикстуры
319 1341561
>>41441
Вроде бы liquibase такое умеет.
320 1341799
>>41441
Вот они ебаные гибернеты нахуй!
С JDBC проблем бы не знал!
321 1341830
>>41799
Спринг и гибернейт придумали жидорептилоиды из майкрософта, чтобы сгубить родную Жабушку. И проклятые модули пришли от них же.
Надо все писать на сервлетах и JDBC, вручную запускать Tomcat и деплоить, вот это по-нашему, православному.
323 1341863
>>41840
И че дискасить? Есть гуава, на остальное похуй.
324 1341986
>>41863
Есть cactoos, на остальное похуй.

Мимо Егор Бугаенко
325 1342264
>>40917
Это был не я бро.

>Почему поля в JdbcConnection не приватные


Потому что я юзаю их в других классах.

> Сделай статический метод run, который возвращал бы новый Connection


А в чём смысл? Зачем везде создавать новые конекшоны и прочее если можно их прописать в jdbcConection и пользовать везде?
326 1342327
Нужно ли ебаться вротэндом или никто на кээсэсы смотреть не будет?
327 1342353
>>42264
Смысл в том, что Connection у каждого потока должен быть свой
328 1342368
>>42327
Нужно, конечно. Как ты будешь свои апплеты на веб-странице размещать без ксс? А в JavaFX ксс повсеместно юзается вместо layout'ов и FXML.
2018-11-30 03.12.46.jpg449 Кб, 948x1080
329 1342433
>>32296 (OP)
Аноны, помогайте, кто уже нашёл сервер лицензий/ключ на новый патч? Моя idea вырубилась :C
330 1342441
>>42327
Бери bootstrap и ебош как будто ты десигнер.
331 1342468
Поясняю как проводятся собесы на джава мидл+синера (был на днях)

– просыпаешься в 14.50 дня, берешь банку пива из холодильника чтобы опохмелиться
– в 3.00, собес (без камеры)
– поясняешь по ооп своими словами (выдал определение по Аристотелю через форму и материю)
– поясняешь по основным методам объекта (equals, hash-чето-там, что те, кто используют clone – люди не особо умные)
– неспешно поясняешь по спрингу, после рассказываешь пару историй из нелегкой жизни спринг девелопера, все все понимают, слышышь кивания и взгласы обобрения даже без камеры, 30 секунд молчания
– спрашивают про java concurrency, говоришь, что сам не сталкивался, но вот читал, что .... ответ всех устраивает, идем далее
– вопрос по БД – нормализация, индексы, транзакция – на расслабоне все поясняешь со всеми trade offs, дело двух минут, все сталкивались, все все понимают
– какой-от легкий вопрос про структуры, типа чем list отличается от likedlist (на деле посложнее), как-то на опыте выруливаешь, остальное договаривает интеврьюер, под твои возгласы, что эта хуйня нигде, по сути, не используется, "ага, это и хотели услышать"
– вопрос про хайповую джава технологию, отвечаю, что не успел выделить времени на ее изучение, но вот знаю того-то, кто сталкивался и все не так однозначно

Ну вот как-то так.

Разумеется, потом уже были более материальные вопросы про зарплату, легаси на проекте (и заверения, что я буду работать только на хипстерских с контейнерами и кубером), что чем именно я хочу заниматься.

удаленка офк
332 1342475
>>42468
Что за камера, вебка? По телефону что ли собеседовался?
333 1342508
Парни, есть у кого задачи, советы, как потрениться после изучения статик методов, и ооп? хочу закрепить, а задач нормальных найти не могу.
334 1342509
>>42508
Смотри стандартные классы JDK и думай.
335 1342511
>>42353
Так он и есть свой, и всё остальное своё, везде создаётся новый jdbcConection со своими конекшонами и оттуда всё это пользуется. Посмотри скрины ещё раз.
336 1342521
>>42509
только я немного не понял как именно можно юзать классы, в какой задаче, я был на плюсах, потом пришлось изза универа на си перейти, и там подход к решению простых задач совсем не тот, там можно функций насоздавать навпример чтобы в массиве найти макс. элемент и переместить его вместо 1 элемента, это 2-3 функции, а с классом как работать, просто рандомный класс создать и туда методов напихать и в мейне заюзать?
337 1342532
>>42511
У тебя в трех методах используется один и тот же Connection по одной только тебе известной причине. Зачем тебе вообще метод run, если он выполняет функцию конструктора, ммм? Зачем тебе prepared statement/result set внутри класса, если можно просто снаружи создать переменные? А их кстати тоже закрывать надо, ты в курсе, и делать это надо в finally, а не просто close писать.
338 1342556
>>42468
Если не выёбываешься и не пиздишь - затащил, молодец. Что по условиям работы и кэшу?
339 1342615
>>32296 (OP)
Аноны, я тут вот: https://sourceforge.net/p/jstego/code/HEAD/tree/
нашёл да-да, откопал какую-то недопиленную прогу.
Тут, по ссылке - исходник на JAVA, и jar-файл тоже доступен к закачке (Files -> Download -> jstego-0.3.jar).
Попытался запустить из под командной строки:

>java -jar jstego-0.3.jar



Вроде запускается, но не пашет нифига.

Помимо алгоритма f5 steganography,
который, кстати, на JavaScript'е имплементирован вот тут: https://github.com/username1565/js-jpeg-steg
В этом JAR-файле есть ещё какой-то интересный алгоритм jsteg.

Если кто из спецов, может допилить его, был бы благодарен.
Я также поискал здесь этот алго: https://github.com/search?q=jsteg
вижу пару исходников на Java, но ни одного рабочего jar-файла. Как компилировать - не помню уже...
Есть также исходники на C и на Go, уровень их "рабочести" - не проверял.

Если всю эту шнягу довести до ума, то нборода того же карасика - могла бы в и жипег.
Посему, просто запомните - f5 и jsteg
340 1342616
>>42615

>Помимо алгоритма f5 steganography,


>который, кстати, на JavaScript'е имплементирован вот тут: https://github.com/username1565/js-jpeg-steg


Там исходник, а демка - вот тут: https://username1565.github.io/js-jpeg-steg/
341 1342648
Кто-нибудь разбирается в liquibase?
Поясните пошагово или покажите настройки, как посредством hibernate/jpa и liquibase напихать данных в таблицы для тестирования.
342 1342750
>>42433
Лицензию купи, жлобяра. Даже обоссанный джун может позволить себе тратить $500 в год на инструмент.
343 1342753
>>41986
В голос.
344 1342759
>>42433
Цепляешь няшу в близлижащей шараге.
Регаешь на неё студенческую лицензицию на продукцию Jet Brains - https://www.jetbrains.com/student/.
Получаешь кей.
Дропаешь няшу.

Цикл замкнулся.

Повторять 1 раз в год.
345 1342793
Дайте же уже пожалуйста не хитровыебанную идею для очердного круда и я пойду писать код.
346 1342798
>>42793
Тудушечка
Ишуетракер
Доскаобъявлений
Форум
Чат
347 1342799
>>42798
Спасибо.
348 1342802
>>42799
Ты только в гит выкладывай, будем тебе с анонами кодревью делать кек
2018-10-25 00.07.13.jpg84 Кб, 720x1280
349 1342808
>>32296 (OP)
Аноны, подскажите, какого хуя в java запрещено множественное наследование от абстрактного класса(да и от любого иного), но не запрещена множественная имплементация от интерфейсов? В чём разница? Будет ли моветоном, если полностью откажусь от наследования в пользу имплементации? Удобно же. Прошу пояснений у знатаков
350 1342819
>>42808
Наследование это наследование, имплементация это имплементация, при чём тут блять абстрактные классы?
351 1342823
>>42808
Дядя, учись гуглить.
352 1342825
>>42808
Наследование в принципе - моветон. Редко, когда оно необходимо. Юзай интерфейсы смело.
353 1342829
>>42825
Wut? Более мемного вброса не видал в этом году. Эх, вот бы В ООП-ориентированном-ЯП называть имплементацию маветоном
354 1342830
>>42829
имплементациюнаследование, пардон
355 1342836
Ебать конечно иногда ахуеваешь с этих ваших jparepository, это же интерфейс нахуй, как его методы вызываются вообще шо?
356 1342837
>>42829
Наследование и правда не нужно, это анти-паттерн и применять его надо лишь в крайнем случае.
357 1342839
>>42829
Наследование следует использовать только для незначительных изменений поведения + чтоб компилятор смог отловить ошибки. Например, у тебя есть класс Jopa, у которй есть свойство цвет. По какой-то причине у тебя есть методы bringMeRedJopa и bringMeBlackJopa. Наследуешь два класса: RedJopa и BlackJopa, и вуаля, компилятор тебя обругает, если что.

Во всех остальных случаях использования наследования получаешь хрупкую архитектуру.
358 1342849
>>42839
В твоём вбросе нет конкретных кейсов, почему наследование это плохо. Пример также ничего не иллюстрирует.

Знаю, про ромбовидную проблему наследования .

Окей, пойду спрошу у гугла, что там за проблемы есть у наследования. Интересно.
359 1342872
Джава компилируемая или интерпретируемая?
360 1342873
>>42819
Отсылка к стату КакАйПросто?
361 1342875
>>42849

>В твоём вбросе нет конкретных кейсов, почему наследование это плохо


Почти любое использование наследования это плохо. Лень объяснять. Просто попробуй запилить с нуля какой-нибудь обобщенный сериализатор Object->Json/Yaml/Huiaml и обратно, с использованием различных источников/приемников - файл, память, сеть итд с возможностью побайтового/ленивого чтения, обработки ошибок итд, используя лишь наследование. Гарантирую, что соснёшь уже на этапе выстраивания иерархии наследования классов.

В наследовании нет ничего такого, ради чего его стоит повсеместно использовать. Наследование - это хитровыебанная замена копипасту. Разработчики пхп, кстати, это давно поняли и запилили traits.

>Пример также ничего не иллюстрирует.


Пример иллюстрирует один из немногочисленных случаев, когда наследование оправдано.
362 1342889
>>42875
Я и не агитирую выстраивать модули исключительно на наследовании. В большинстве случаев используется композиция. Но для конкретных кейсов - наследование отлично подходит, уменьшает кол-во бойлерплейт кода и улучшает читабельность.

В любом случае, спасибо за комментарии. Как-минимум прочту вечером пару статьй с компнями в огород наследования.
363 1342902
Какой даун посоветовал вкатываться в спринг на спринг буте?
364 1342916
>>42902
Многие статьи рекомендуют это. Why not?
Ноу дискасс, если хочешь понимать, что и как работает, нужно поднимать руками
365 1342920
>>42916

>что и как работает


Как не понимая этого можно писать работающий код?
366 1342927
>>42829
Нуфаг или тайм-тревелер из 90-ых детектед. Наследование - антипаттерн. Алсо, гугли expression problem.
367 1342939
>>42920
Есть нисходящий и восходящий подходы к изучению.
Многие рекомендую сперва ознакомиться с основными концепциями, для этого как-раз и поможет Spring Boot. Когда уже каркас небольшого проекта есть, начинаешь углубляться в дебри и т.д.
Просто если сразу вдаваться в дебри, можно там и остаться.

Не вижу ничего плохого, чтобы поднять бут-проект, поиграть с ним пару деньков, парралельно изучая, что как работает и устроено.
368 1342954
>>42819
Иди смотреть стримы унтерменшей, если можешь лишь просраться, даже вопрос не прочитав
369 1342955
>>42825
Спасибо. Прочёл всю цепочку срача с аноном, растолковал
370 1342964
>>32296 (OP)
Есть книга типа краткий курс джавы для плюсовиков?
371 1342965
>>42964
Алсо что помимо кор знать нужно? Хочу перекатиться в джависты, заебало байтоёбствовать.
372 1342988
>>42836
Магия спринга генерит тебе сыкуль и всякие штуки по названию метода интерфейса, таким образом импементируя твой интерфейс
373 1342995
Придумайте мне предметную область чтобы я запилил круд с какой-то логикой.
374 1343000
>>42468
джуном сходу ответил бы на все это
375 1343004
>>42995

Магазин дилдо
376 1343005
>>43004
А логика какая?
377 1343009
>>43005
Смысл в том, чтобы продовать несуществующий товар. Слушай сюда. Открываеешь компанию "Пидрильный клуб любителей пощекотать очко". Даешь рекламу в пидрильный журнал: мол, у тебя такой инструмент для внедрения в очко. Ну, дескать, делает то, что не может ни одно другое устройство, последний прорыв в сексуальных технологиях, удовлетворение гарантированно. Иначе возвращаешь деньги, ну и всё такое. Эти приблуды продаются по двадцать пять фунтов за штуку. Для клиента это херня, за такую кучу удовольствия. Но чеки они шлют в адрес другой компании, с приличным названием, типа, "Мелочевка Бобби" или что-то в этом роде. По двадцать пять фунтов каждый. А ты в банке обналичиваешь и получаешь деньги. А запутка вот в чем: ты отправляешь чек назад, от компании "Пидрильный клуб любителей пощекотать очко", со словами "Извините, товар из Америки не поступил, у них закончились запасы". И тогда посмотришь, сколько человек обналичат такие чеки – ни единая душа, кому охота, чтобы менеджер их банка знал, что в свободное от получения чеков время они щекочут свое очко.
378 1343011
>>43005
Уловил архитектуру проекта?
379 1343013
>>43011
Хуевую?
380 1343015
>>43013
Перечитай sql распечатку, которую я скинул выше, потом отчитайся перед тимлидом. Если ничего не поймёшь, то завтра на планёрку.
381 1343024
Столько времени прошло и только сейчас я задался вопросом: А что будет если ГС очистит наш синглтон? Данные которые хранились в нем сбросятся. Это что за пиздец получается.
319395.png886 Кб, 1366x768
382 1343025
>>43024

>2020


>синглтоны

383 1343026
>>43024
Читай про WeakReference и всю хуйню.
384 1343028
>>43024
НЕ БУ-ДЕТ! ТВЁРДО И ЧЁТКО!
Статик поля (у тебя же инстанс синглтона статик?) не очищаются коллектором.
385 1343039
>>43024
А с чего он должен его очистить? Статик ссылка на объект ведь никуда не девается
386 1343041
Как лучше всего инициализировать пустые поля объектов с типом коллекций? В конструкторе, или сразу писать private Set<T> set = new HashSet<>();?
387 1343056
>>42837

>Наследование и правда не нужно, это анти-паттерн


Если прям уж моветон и антипаттерн, почему всякие спринги, хибернейты и гуавы состоят из наследования чуть менее, чем наполовину? Это все говнокод?
388 1343067
>>42964
Java за 21 день.
389 1343076
>>42995
Ну короче я придумал, теперь придумайте мне стек технологий.
390 1343084
>>43056
Так исторически сложилось.
391 1343089
>>43041
Как тебе удобнее. Если он всегда точно будет пустой, то вообще похуй. Я обычно делаю в конструкторе.
Но тут от задачи зависит. Иногда может и так, и так неправильно, а надо вообще через параметры конструктора или через билдер, а то вдруг там будут какие-то изначальные значения?
392 1343090
>>43089
Нет, изначально он 100% пустой. Просто я использую ломбок, а так бы пихнул без задней мысли в конструктор.
393 1343102
>>43090
Прочитал про ломбок, там типа аннотацией можно указать дефолтное значение?
Хз, в конструкторе всё равно лучше. Да, если будет много конструкторов, то придётся в каждом указывать. Зато, когда ты определяешь в конструкторе, ты как бы говоришь своим кодом - я определяю мапу как пустой хэшмап, находясь в добром здравии и уме, это моё сознательное решение, принимайте его во внимание, когда захотите рефакторить.
394 1343105
>>43102
В ломбоке автоматически генерируется пустой конструктор, поэтому нет возможности там что-то задать. Можно написать конструкторы руками, конечно, но будет не стильно.
395 1343106
А еще вопрос, в какой момент будут проинициализированы поля в таком >>43041 варианте, до или после вызова конструктора?
1452007765160188106.jpg62 Кб, 1000x1000
396 1343107
>>43105

>В ломбоке автоматически генерируется пустой конструктор


Он же в джаве и так генерируется автоматически.
397 1343113
398 1343115
>>43106
>>43113
Вообще я проебался немного, до тела констуктора, но после super(...)
399 1343201
>>42902
3 анотации, 2 класса и у тебя готовая приложуха которая обрабатывает запрос с ебучей веб формы.
Что ещё надо для быстрого вката в технологию?
Бинами обмазываться? Иксэмэли править?
400 1343203
>>43201

>3 анотации, 2 класса


Надо тогда вообще в джаву вкатываться со спринг бута, хуякс хуякс и уже веб приложиуха. Что ещё надо для быстрого вката?
Циклами обмазываться? Эксэпшоны прописывать?
Снимок.JPG47 Кб, 1519x159
401 1343206
хули он с тегами выводит?
402 1343210
>>43201
Спринг секьюрити из коробки например там вообще хуйня ебаная, в любом случае придётся ебаться с конфигами.
403 1343256
>>43107
Ебан просто сути ломбока не понимает. Там аннотаций у него до жопы. Можно прописать для пустого конструктора@NoArgsConstructor, нужен, если есть не пустой, по сути как и в простой джаве, но ты пишешь это всё не в ручную, а аннотацией указываешь, и она закулисами автоматом хуярит конструктор без аргументов., для конструктора со всеми аргументами, кастомный конструктор, геттеры/сеттеры и тп.
404 1343321
Привет всем в этом солнечном треде
Считаю, что имею некоторый опыт в пагромеровании, mysql, nginx, все такое, баловался питоном, настроил бота постить что-то абстрактное в Инстаграмме и подписываться по тегам мрази банят аккаунты по первому же подозрению, но заниматься сборкой Лего по чужим апи достало, неужели вся суть программирования сводится к этому?

За месяц лениво пролистал джаву от орейли, узнал что-то новое для себя, упорядочил знания о наследовании и тд, в целом понравилось.

Хочется ЗДЕЛОТЬ С НУЛЯ что-то свое, но не пойму с чего начинать. Подсмотрел у одного индуса ГуглДрайвФтпАдаптер, хочу сделать такой же, у него говнокод какой-то. Или свой сайт с встроенными другими программами, но мне кажется тут уже не джава начинается, а JS/Django.

Как вообще проектируется проект, если нет дяди который тебе спустит ТЗ
405 1343346
>>43321

>Или свой сайт с встроенными другими программами, но мне кажется тут уже не джава начинается


Почему? Апплеты.
406 1343372
>>43346

>2к19


>Апплеты


Хороший траленг

По теме: ебани rest сервис на спринге. По ходу дополняй его всякими штуками-дрюками
407 1343390
>>43206
Ну так что дали то и выводит!
Это тебе консоль а не браузер!
408 1343391
>>43210

>Спринг секьюрити из коробки


Там в катальщику сперва круд запилить бы!
409 1343393
>>43391
Да ето изи.
410 1343404
>>32296 (OP)
Как выучить Hibernate? Требуют в каждой вакансии. А я только с Spring Data работал.
411 1343413
>>43390
Тупое гавно тупого говна. ПХП автоматически от тегов выхлоп чистит.
sage 412 1343419
>>43413
ПХП — ненужное говно без задач. Так и запиши.
413 1343432
>>43419
на самом деле это второй выбор кровавого тырпрайза после жабы
414 1343439
>>43413
С хуяли функция принта в консоль должна интерпретировать html-теги? Для него это просто строка.
415 1343550
https://kontur.ru/Files/userfiles/file/edu/CAPTCHA-сервис v2.pdf Это тз ебанутое или я ебанутый?
416 1343602
>>43550
Это на джуна? Выглядит интересно на самом деле, хотя, как мне кажется, многовато требований для тестового. Можно не торопясь написать самому, потом на собесах показывать.
417 1343611
>>43602
Это тестовое для стажировки в какой-то шараге за 30к
418 1343638
>>43611
Стажировки??? Да пошли они нахуй с такими тестовыми тогда.
419 1343687
>>43550
Это просто бесплатная работа, которую они интегрируют в свой высер, а лоху перезвонят.
421 1343719
>>43413
это ты тупое говно тупого говна, если не понимаешь что консоль и браузер это разные вещи.
422 1343757
423 1343758
>>43550
Лол. А я собирался подаваться в эту контору. Это же СКБ Контур? Пиздец говнище.
424 1343797
>>43611
Шараги не входят в топ20 ит компаний по рф.
425 1343815
>>43797
Что за рейтинг компаний? Сейчас загуглил, нашёл какую-то хуйню, в которой нет ни яндекса, ни мистера мэйлеца, только галеры разные.
426 1343823
>>43815
Много мейлру и яндекс поставляет ПО, автоматизированных систем банкам и прочему интерпрайзу? Похоже ты понятия не имеешь, о чем говоришь.

http://www.cnews.ru/reviews/rynok_it_itogi_2017/review_table/5ea292822e4f02a7c71a3495f1e456e5b320f86a
427 1343831
>>43823
То есть, ИТ-уровень компании определяется количеством аутсорса? По моему, это ты не понимаешь, о чём говоришь. А то сейчас окажется, что гугл и эппл тоже не айти-компании, как же, они же БАНКАМ программы не пишут!
428 1343840
Статья на Хабре "Как стать Java разработчиком за 1,5 года":
https://habr.com/ru/post/439432/

Ничего не понимаю. Где эти вакансии, на которые берут без знания спринга, гибернейта и кучи других фреймворков? Или его взяли из-за прохождения сертификации Oracle?
429 1343846
>>43823

>люкофт


>Епам



Топ уровня УКРАИНА. Ахахаха.
430 1343848
>>43550

Выглядит как тестовое на миддла, которое дают после прохождения собеседований, чтобы подтвердить наличие опыта и знание технологий.
431 1343862
>>43848
Выглядит как наебалово.
432 1343960
>>43848
Я как ждун вкатальщик иногда охуеваю от таких тестовых!
Так то реально всё, гуглить всякие бестпрактисы, две недели хуярить код!
433 1343988
>>43960
А разгадка проста.
Рыночек программистешек то уже все.
Еще хуже чем с юристами и бухгалтерами.
Выполняешь такой тикет на мидла, бесплатно, даже как ждуну не платят.
434 1344044
>>43988
1) Рынок программистов все
2) Заводов нет
3) В питорочках тоже

Куда работать-то? Стоматологом что ли
435 1344091
>>44044
Работать вебшлюхой. Но сначала придется пришить себе пизду
436 1344092
>>43840
Мылыш, если ты предоставишь 2 этих сертификата при устройстве на позицию джуна, будет ОЧЕНЬ большой глупостью не взять тебя
437 1344093
>>44091
Пизда не актуально же, айтипедия сказал.
438 1344095
>>44092
Если ко мне придут 2 кандида на одно место, у одного в CV будут эти 2 сертификата, у второго кровавый-стек(Спринг, Хайбернейт, etc). Я с долей 80% возьму первого.

мимо-мидл
439 1344107
Вставлю свою 5 копеек.
Вот я дохуя времени потратил на сертификат и могу сказать, что OCA - это повод позвать на собеседование. Но на самом собеседовании у тебя начнут спрашивать за ООП, паттерны, архитектурку простенькую попросят нарисовать. Если на этом поплывёшь, то ничего не светит. Я вообще охуел, когда меня на одном собеседовании спросили, как return значения внутри JVM на стеке работает и понял, что пока искать работу мне еще рановато.
440 1344191
>>44107

Конечно рановато, ведь на работе ты будешь писать компиляторы, хули ее искать, пока не напишешь свой компилятор.
441 1344265
>>43076
Ну короче я придумал и чет как-то дохуя всего. Лень.
442 1344279
>>44107

> как return значения внутри JVM на стеке работает и понял, что пока искать работу мне еще рановато.


лол, попался тебе даун который решил поумничать скорее всего, таких надо самих гнать из компании. Нахуя тебе это знать если ты джун и твоя задача будет клепать REST API на спринге?
443 1344285
>>44279
Ну да, зачем понимать, как освобождается память и другие ресурсы, для клепания крудов это совершенно лишняя информация.
В очередной раз убеждаюсь, что мелкобуквенность - стопроцентный индикатор двузначного IQ.
444 1344289
>>44285
Лол, вот типичный пример - вот таких как ты и надо гнать из компании как можно быстрее, или как минимум не давать им проводить интервью (хотя скорее всего ты школьник). Совершенно верно - для клепания крудов не нужно знать как освобождается память, нет, это не лишняя информация - но и не настолько необходимая, чтобы реджектить кандидата который этого не знает.
sage 445 1344292
>>44285
Объясни мне, нахуя мне знать, как освобождается память, если в Java у меня попросту нет даже средств для того, чтобы ею управлять (кроме Unsafe)? И это одна из ключевых фишек Джавы: разработчику вообще нахуй не надо задумываться о такой низкоуровневой хуйне и он может сосредоточиться на программировании, а не на ебле с указателями на указатели и на отлавливании утечек памяти. Поэтому данные знания действительно нахуй не нужны, если ты конечно не собираешься писать собственную JVM.
446 1344294
>>44292
Удачи без знания soft/weak reference и принципов работы gc.
sage 447 1344295
>>44294
Нужно очень сильно постараться, чтобы выстрелить себе в ногу этим :)
448 1344303
>>44279
А мне наоборот понравилось, это был хороший вопрос. Особенно если он задаётся не из воздуха, а по ходу беседы, как было в моём случае. Ты ходел бы работать с людьми, которые хорошо понимают устройство языка, или с даунами, которые только вчера хеллоу ворлд освоили, и считают, что этого достаточно?

>>44292
Ну как минимум с вышеупомянутыми слабыми ссылками ты уже обосрался, средства есть. Но ты прав, в большинстве случаев достаточно просто позволить ссылке на объект вывалиться из скоупа и не морочить себе голову. Но если пишешь свой хитрожопый кэш, коллекцию, да или просто любой другой класс, который управляет своей памятью (хранит ссылки на другие объекты), то понимать это надо.
449 1344307
>>41441

>генерить базу хибером


Убил бы нахуй.
450 1344310
>>44303

>Ты ходел бы работать с людьми, которые хорошо понимают устройство языка, или с даунами, которые только вчера хеллоу ворлд освоили, и считают, что этого достаточно?



Да, я хотел бы - но реальность такова что хороших работников не найти, поэтому на такие вещи можно закрыть глаза, если на позиции где будет работать интервьюируемый нет явной необходимости это знать. Я провел много собеседований в большую финтех компанию, и когда только начинал тоже был как ОП, спрашивал всякие "сложные" вопросы, где я хорошо разбирался (про алгоритмы например), но потом понял, что это не нужно, компании всего лишь нужно найти "приемлимого" работника на данную позицию, а не идеального.
451 1344314
>>44307
А как прально? В import.sql? Чем плоха автогенерация?
452 1344326
Начал вкатываться в джаву, написал простенькое приложение с интерфейсом через SceneBuilder. Имеется 3 файла: Main.java, Controller.java, sample.fxml. Собственно вопросы:
1) Через IDE это запускается, но как мне запустить это все через консоль? При попытке запустить через "java Main", появляется ошибка "Could not find or load main class Main.class". Пробовал различные варианты из гугла в стиле "-classpath . ", "-cp", но мне кажется, что проблема в чем-то другом.
2) Как правильно писать маленькие, прикладные программы? Уточню: есть у меня .java файл, я компилю его в .class файл. А дальше что? Каждый раз через консоль "java main.class"? Писать скрипт? Есть ли способ сделать джава код исполняемым файлом?
453 1344334
>>44326
Could not find or load main class Main.class
Надо запускать класс в котором, есть метод
"public static void main(String[] args)"

javac Class.java

java Class
wtf.png11 Кб, 621x198
454 1344335
Почему во втором случае java забывает про тип?
455 1344336
Анончики! Надоело быдлокодить! Хочу создавать приложухи и возвращаясь через год не ломать себе ноги, об свой же код. Есть годные книги о том, как правильно сделать слои приложения и как правильно писать чистый, понятный и хороший код?

Такой вопрос. Есть 3 класса, с почти одинаковыми методами. Не хочу повторять один и тот же код в 3 классах. Интерфейс не вариант использовать, так как в этих 3 классах могут потом методы отличаться.

Я сделал абстрактный класс в нём реализовал все методы, которые похожи между 3 классами. А методы которые отличаются реализовал в каждом из этих 3 классов отдельно. (Воспользовался перегрузкой методов).

Получилось следующее: Есть 4 класса. 1 класс является абстрактным и в нём по умолчанию реализованы методы, которые используются в 3 классах. В каждом из 3 классов есть по одному методу, которые реализуются по разному в каждом классе.

Это быдлокод или нормально? Просто смущает, что я создаю класс, ради одного метода.
image.png243 Кб, 400x400
456 1344346
>>44336

>Просто смущает, что я создаю класс, ради одного метода.

457 1344349
>>44346
АХАХХАХАХАХА в голосину проорал) Это этот Егорка) Который призывал отказаться от сущностей? Мол зачем создавать класс, если он ничего не умеет.
458 1344363
>>44303

>Ты ходел бы работать с людьми, которые хорошо понимают устройство языка, или с даунами, которые только вчера хеллоу ворлд освоили, и считают, что этого достаточно?



>Раздает советы насчёт работы



> Завалил собес



>Считает даунами тех, кто знает технологию хуже, чем он



>Определяет айсикью по орфографии



>Сам пишет с ошибками



Диагноз: чсвшный безработный школьник

Рекомендованное лечение: качать софт-скилы, убавить токсичность

>

459 1344440
>>44336

> Есть годные книги о том, как правильно сделать слои приложения и как правильно писать чистый, понятный и хороший код?


Очевидная Elegant Objects. Еще прочитай какую-нибудь книжку по скале\хаскелю\окамлу.
460 1344512
Решил пройти курс на степике по джава. Не могу написать в одном из заданий чё то типо привет мир.
class It's alive! It's alive! {
public static void main(String[] args) {
System.out.println("It's alive! It's alive!");
}
}
Выдает ошибку
Main.java:1: error: unclosed character literal
public class It's alive! It's alive!
^
Main.java:8: error: reached end of file while parsing
}
^
Может удастся мне помочь?
461 1344533
>>44512
Название класса должно быть одним словом
462 1344536
https://github.com/Weydile/callboard ну вы поняли.
463 1344537
>>44512
В имени класса могут быть только буквы, цифры, _ и $ (эти 2 не используй), причем имя должно начинаться с буквы.
464 1344539
>>44512

>class It's alive!

It's alive!
Думай голова, думай. Что-то в этой строке не так, только что?
465 1344543
>>44536
Нет readme.md - не смотрел.
467 1344554
>>44326
Загугли бля, там статей про это море, про манифест узнаешь еще!
468 1344563
>>44550
Ты о том что добавление пользователя нужно туда перенести?
469 1344564
>>44536
callboard/src/main/resources/templates/registration.html

27-я строчка

Уже зарегестрированы?

Ах ты пидор безграмотный! Пиздуй в макдональдс!
470 1344566
>>44564

>callboard/src/main/resources/templates/registration.html


>27-я строчка


https://github.com/Weydile/callboard/blob/master/src/main/resources/templates/registration.html#L27
тебе туда же.
471 1344568
>>44543
И что мне там для тебя написать? Как джарник в мавене собрать?
>>44564
Ыыы блять, очевидно же что это опечатка, в остальных местах написано через и.
472 1344569
>>44563
Там же авторизация и прочая хуита из коробки есть!
Глянь хелоу ворд на оф сайте про спринг секурити!
473 1344570
>>44569
Из коробки прям к бд подключается сама и авторизует?
474 1344571
>>44568

> Как джарник в мавене собрать


Ага!

А ещё какие требования к бд, где смотреть и менять её конфиги (логин пароль)
475 1344574
>>44563
Ну перенести в сервис добавление пользователя и использовать сервис в контроллере вполне можно (а может даже и нужно). Но я говорил про Throws в доках, которые ты так и не прочитал, хотя я тебе сказал это сделать.
476 1344575
477 1344577
>>44569
Регистрации юзеров в security нет.
478 1344583
>>44574
Сложно
479 1344593
я сосал меня ебали
480 1344639
Ну я сделал readme кста.
481 1344641
Можете зайти, поржать.
482 1344657
https://github.com/Weydile/callboard/commits/master
Классные названия коммитов.
483 1344689
>>44657
*8828_!==
484 1344725
Нужно было сделать блядскую пагинацию на всякое говно. Ну и справлялся я нормально, обычный GET и всё, пока не дополз до одной хуйни.
Эта хуйня - два инпут поля. Юзер может вводить туда цифры либо оставить пустим, но пагинация должна быть доступна всегда. В итоге я застрял на том, чтобы передавать эти два Integer-a в контроллер. Пробовал вставлять как @RequestParam да только в любом из раскладов у меня всегда null, наверно я не правильно передаю или ещё что.
Плодить контроллеры я не хочу, а потому не юзаю @PathVariable. По мне так это по говнокодски делать:
@GetMapping(value = "/hui/{input1}"
@GetMapping(value = "/hui/{input2}"
@GetMapping(value = "/hui/{input1}/{input2}"

Как можно нормально передавать три и более параметров в контроллер? Вот кусок кода пагинации в JSP
<form method="get" class="row" >
<select name="pageSize" class="pull-right page-selector" onchange="this.form.submit()">

Понятное дело, что я передаю один параметр - pageSize при помощи "this.form.submit()", но а как мне передать два других параметра, не плодя контроллеры на каждый пук?
485 1344730
>>44725
на форму добавь еще сколько надо параметров
типа <input name="hui" />

тогда этот hui передастся как RequestParam (..&hui=value)
486 1344735
>>44730
У меня за этими двумя инпутами уже закреплён POST да и добавить нельзя, ибо тогда фронт будет очень кривым.
Я бы хотел что-то вроде <var="input1" value=${input1}/> Так нельзя но мысль понятна.
487 1344757
>>44735
Не очень понял, но может просто добавь инпуты как hidden?
image.png151 Кб, 400x400
488 1344788
>>44757
А это может быть. Надо попробовать. Отпишу в понедельник как успехи, спасибо.
489 1344837
>>43372
Лучше JSP ебануть.
490 1344838
>>44788
А в воскресенье посмотри фильм "2001 год Космичесская Одиссея"
491 1344879
>>44725

>а как мне передать два других параметра, не плодя контроллеры на каждый пук?


@RequestParam Map<String, String> requestParams
492 1344925
>>32296 (OP)
Статичный абстрактный метод вообще невозможно сделать?
Есть абстрактный класс. Хочу, чтобы в каждом классе потомке обязательно был объявлен и определён некий статичный метод.
493 1344989
А есть какой-нибудь фреймворк, чтобы в связке html+css+js использовать джаву вместо js? Для гуя или для сайтов.
494 1344998
>>44925
Нет, переопределять можно только не статик методы.
495 1344999
>>44989

>чтобы в связке html+css+js использовать джаву вместо js


Как это? Знаю Vaadin, где можно писать только на Java, а на выходе у тебя будут формочки в браузере. Но хз, это ли ты имел в виду.
496 1345025
>>44989
JSF + PrimeFaces.
image.png140 Кб, 818x561
497 1345026
Аноны, вы же на линухах сидите? Какую себе "убунтомашину" собирали?
Собрал себе, но понимаю что для убунты оверпрайс. Естественно раздел не тот, но мне интересно именно у местных анонов спросить, у которых линух + idea + веб и сериальчики. В общем на каких машинах сидите аноны?
1384349158070.jpg294 Кб, 1920x1080
498 1345043
>>45026
Купи с рук любой ноут где стоит что то уровня i3 на авито.

Вот тебе и машина на которой можно Linux mint ставить
Разве что может ССД придется поставить.
499 1345045
>>45043
И на i3 можно комфортно с идеей работать?
500 1345088
Дали задание для собеседования:
Клиент-Серверное (под tomcat) приложение.

Разработать страницу, отображающую в браузере древовидную структуру.

Функциональность:
∙ выделенный элемент должен быть отмечен отличной от других папок цветом иконки;
∙ реализовать «ленивую» загрузку папок, искусственно добавить задержку в 2 секунды при раскрытии папки, задав такой папке иконку загрузки, при этом должна быть возможность производить различные операции и навигацию по дереву;
∙ возможность добавления/изменения/удаления узлов дерева.
∙ перенос папки, включая вложенные под-папки в выбранную папку;
∙ опционально - организовать хранение данных в БД .
Задание будет оцениваться по следующим критериям:
∙ приятный и интуитивно понятный интерфейс приложения;
∙ краткий и понятный исходный код;
∙ использование паттернов.

Что использовать для решения задачи? Я вижу только вариант с html+css+javascript на фронте и java на беке.
1370694845212.png1,4 Мб, 1479x900
501 1345096
>>45045
Да, вполне.
502 1345194
АААА БЛЯДЬ ЕБАНЫЙ ДЖАВАФХ
503 1345198
>>45026
Я в 2014 году (по старому курсу ещё) купил системник примерно за 30к (i7-3770, GeForce GT640, SATA-500, 16GB)
Оперативу Android Studio жрёт как не в себя и хром (когда много вкладок открыто).
Сейчас поди уже 32гб нужно брать на хоум тачку.
504 1345199
>>45088
Это фулстак мидл?
может всё таки фриланс? 505 1345215
Господа, как думаете стоит перекатываться с галеры на UpWork на Java бэкэнд, мидл, 100к в областном центре? Есть у кого подобный опыт?
506 1345222
>>45199
Нет, на на вакансию Intern Java Developer/Стажер. Я сейчас работаю на php и подозреваю, что у меня подход не правильный
507 1345226
Сап пацаны дали сегодня тестовое задание вывести текст в консоль, ну я их сразу нахуй послал, я блять пришёл на джуниора устраиваться а мне тут блять как с синьйора спрашивают, совсем ахуели бля.
508 1345234
>>45026

>сериальчики


Сериалобыдло, плиз. Смотри серьезный полнометражный кинематограф.
509 1345235
>>45234
Смотрю 1-2 серии доктора кто перед сном, ссу тебе в рот.
510 1345244
>>45235

>ссу себе в рот


Починил. мимо
511 1345245
>>45244
Не рвись манька, не в сем дано вникать в длинные истории, может когда-нибудь твой мозг сможет удерживать в памяти сюжеты длиньше пары часов, но пока что книги и сериалы не для тебя.
512 1345250
в сем
513 1345251
>>45245
Книги и кинематограф - для меня, сериалы - для тебя. Что тебе еще непонятно?
514 1345252
>>45251

>Книги


Донцова? Оруэл?
515 1345259
>>45215
Перекотился из офиса (3к евро на руки было) в апворк и топтал - стало 10к на руки, олсо можно перерабатывать если деньги нужны позарез, доходило и до 20к в месяц (по 80-100 часов в неделю сидел), но долго конечно так не проработаешь.
516 1345274
>>45259
На джава зарабатываешь или скала? Сколько опыт работы? Знания английского какие?
517 1345285
>>45274
Джава-реакт фулл стек. Ничего сверх естественного не делаю, всякие веб аппы с рест апи. Английский upper-intermediate я бы сказал, проблем с общением не было, кроме тех случаев когда попадались клиенты-бриты, вот там порой пиздец было ничего не понять.

Кстати ты правильно что это упомянул, это очень важно в процессе поиска клиентов, помню как то не выспался, а интервью было в 2:00 AM, так вот там я инглиш зафейлил полностью, естественно клиент решил со мной не работать (и это не смотря на длительную историю на апворке с 100% success rate все ревью хорошие и тд).
518 1345288
>>45259
Какой стек сейчас основной у тебя? только джава бэкэнды или что то еще?
519 1345293
>>45285
Реакт это который JS фрэймворк? или RxJava интерфейсы пользовательские тоже делаешь? я просто фронт очень плохо знаю в части вёрстки например
520 1345294
>>45259
Ты из россиюшки? ИП оформлял? как с налогами?
521 1345296
>>45288
react-spring-mongodb/mysql (но последнее время почему то клиенты полюбили монго)

>>45293

>Реакт это который JS фрэймворк? или RxJava интерфейсы пользовательские тоже делаешь?


Да, нет.

Кстати если еще знаешь React Native то в топтале жуткая нехватка кадров с таким скиллом, велком (можно поделить $500 referral bonus лол).
522 1345303
>>45285
Обязательно иметь скилл разговаринания на английском? общения текстом не хватит?
523 1345314
>>45296
Охуеть успешный в треде.
Дай совет вкатывальщику, куда двигаться сейчас: в активе джава, спринг, пару курсов по хибернейту, андройд бэйсик. Привлекает больше андройд, но вакансий в моем 400к мухосранске практически нет. Но я так понимаю, что даже думая про мобайл, спринг пригодится для написания тех же рест сервисов. Короче как-то я в растерянности.
524 1345330
>>45303
Обязательно, ну скажем процентов 20 клиентов не любят разговаривать и берут тебя просто на основании фидбека, даже без интервью, потом просто в слаке с ними общаешься. Но это скорее исключение, большинство любят делать видео чаты, еще и каждую неделю, а то и чаще.

>>45314
уже писал выше - React, React Native, вакансий тысячи, рейт обычно $50 и больше, но как вкатывальщик начни например с $30/h проблем найти не должно быть.
525 1345335
>>45025
фее
526 1345339
>>45330
Подожди, я правильно понимаю, что для полноценной работы с React Native все равно нужно знать Java/Object-C и Android/iOS SDK?
527 1345351
>>45339
Не знаю, я работаю только с React, просто упомянул что на топтале много вакансий на React-Native, даже дают реферал бонус в $500 если приведешь годного девелопера.
528 1345359
>>45351
Еще раз для тех кто в танке: можно ли с нуля не зная Java/Object-C и Android/iOS SDK выучить один лишь React Native за полгода и пиздовать во фриланс?
529 1345364
>>45359
React очень прост, думаю можно выучить гораздо быстрее. Еще раз - я работаю только с React (тот который для веб-аппов), с React Native пока не работал, поэтому точно не берусь сказать нужно ли там знать iOS/Android, но полагаю что вряд ли это необходимо.
530 1345368
>>45364
Я понял, спасибо. Добра.
531 1345377
>>45314

>Охуеть успешный в треде.


я тоже успешный, верь мне, я же сказал что я успешный.
532 1345392
>>45377
Ок, верю.
533 1345407
Есть хуло ворд на спринг буте.
Есть в нем кастомный ексепшен, который кидается если не найдена ентети.
Я хочу этот эксепшен поймать в контролер эдвайсе и дальше отправить статус NOT_FOUND - получить редирект на страницу 404.
Контролер для /ерорр наследован от ErrorController.
spring.mvc.throw-exception-if-no-handler-found=true - указано
Что еще надо то блять?
Перерыл гугол и уже немного заебался.
Один из вариантов / попыток :
@ExceptionHandler(NotFoundException.class)
public ResponseEntity<Object> handleUserNotFoundException(RuntimeException exc, WebRequest request){
String message = exc.getMessage();
log.error(message, exc);
return ResponseEntity.notFound().build();
534 1345409
>>45407
У меня так, например (точно работает)

@ControllerAdvice
@Slf4j
public class RESTExceptionHandler {

@ExceptionHandler(RuntimeException.class)
@ResponseBody
@ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR)
public ApiError handleRuntimeException(RuntimeException e) {
535 1345411
>>45409
Это не рест, в это весь цемес. Смутно подозреваю что надо екстендить что то другое например ResponseErrorHandler.
РЕСТ кстати работает нормльно.
Кароче, я решил это так.
Просто добавил респонс статус сверху и вернул тупо шаблон.
Я понимаю что это хуевое решение, но оно сука работает. И по тестам и если так потыкать.
@ExceptionHandler(NotFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
public String handleUserNotFoundException(RuntimeException exc, WebRequest request){
String message = exc.getMessage();
log.error(message, exc);
return "404";
}
536 1345413
>>45409
Чому свой апиЕрар не обернул в респонсЕнтитии не вернул его?
537 1345416
>>45413
Зочем? Если есть @ResponseBody то спринг обернет автоматически
538 1345522
>>45259
На джаве фриланса нет!
539 1345523
>>45364
Слушай, а у тебя есть высшее образование? Какой специальности диплом?
Screenshot 2019-02-11 at 12.58.39.png82 Кб, 1234x488
540 1345553
Мне приходит объект, я просто проверяю - если есть - то добавь еще + 400.

У меня ситуация - добавился объект, с коунтером 100.
Потом я добавляю 400 - становится 500. - но сука объект не сохраняет это состояние. ЧТО ЗА ПИЗДЕЦ?

У меня вечно 500, сколько бы я объектов туда не отправил. В каком месте жабы я оподвилился?
541 1345554
>>45553
Ну barcodeList.set там не нужен, это лишняя строчка ( я экспереминтировал другие пути), все равно не работает без этого.
542 1345570
>>45553
А у тебя equals/hashcode переопределены? А то может он просто новый элемент добавляет.
543 1345574
>>45522
Ты еще скажи, что и деда мороза тоже.
544 1345614
>>45553

Поставь breakpoint на последнюю строчку и запусти дебаггер. Если сразу идет в else, то скорее всего вот >>45570-анон прав
545 1345645
Посоны, есть потребность сделать проект со Spring.Boot, MongoDB и Gradle (я обычно работаю с Maven).
Решил использовать embed MongoDB.

Прописал зависимости так:

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'de.flapdoodle.embed:de.flapdoodle.embed.mongo'
implementation 'org.thymelea:thymeleaf'
compile group: 'cz.jirutka.spring', name: 'embedmongo-spring', version: '1.1'
}

Прописал кофигурацию:

@Configuration
public class MongoConfig {

@Bean
public MongoTemplate mongoTemplate() throws IOException {
EmbeddedMongoFactoryBean mongo = new EmbeddedMongoFactoryBean();
mongo.setBindIp("localhost");
MongoClient mongoClient = (MongoClient) mongo.getObject();
MongoTemplate mongoTemplate = new MongoTemplate(mongoClient, "embeded_db");
return mongoTemplate;
}
}

Получаю ошибку:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

ЧЯДНТ?
545 1345645
Посоны, есть потребность сделать проект со Spring.Boot, MongoDB и Gradle (я обычно работаю с Maven).
Решил использовать embed MongoDB.

Прописал зависимости так:

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'de.flapdoodle.embed:de.flapdoodle.embed.mongo'
implementation 'org.thymelea:thymeleaf'
compile group: 'cz.jirutka.spring', name: 'embedmongo-spring', version: '1.1'
}

Прописал кофигурацию:

@Configuration
public class MongoConfig {

@Bean
public MongoTemplate mongoTemplate() throws IOException {
EmbeddedMongoFactoryBean mongo = new EmbeddedMongoFactoryBean();
mongo.setBindIp("localhost");
MongoClient mongoClient = (MongoClient) mongo.getObject();
MongoTemplate mongoTemplate = new MongoTemplate(mongoClient, "embeded_db");
return mongoTemplate;
}
}

Получаю ошибку:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

ЧЯДНТ?
546 1345837
>>45645
Мож надо в application.properties что то добавить?
Путь до БД например.
547 1345838
>>45364
Почему реакт а не ангуляр?
Ангуляр + спринг намного популярней же.
Тестирование 548 1345850
Недавно вкатился в спринг, пишу довольно простую рест хуйню, один контроллер, у которого есть зависимость от сервиса через @Autowired, нужно написать тесты для контроллера, но для этого нужно сделать mock копию этого сервиса, с этим проблемы, ибо я встретил довольно много способов это сделать, пытался вникнуть, читая документацию и гайды с сайта спринга, но как-то не вышло. Есть ли какие-то ресурсы, которые помогли бы понять что происходит при мокинге, когда стоит использовать @WebMvcTest, а когда @SpringBootTest? @Mock, @MockBean или подключать MockMvc через @Autowired. Как этот MockMvc вообще подключается и почему не всегда при его подключении прописывается @AutoConfigureMockMvc? Вопросы, возможно и глупые, но хотелось бы достичь понимания.
549 1345857
>>45850
Не делай через @Autowired. Делай через конструктор с final полями.
https://dzone.com/articles/spring-di-patterns-the-good-the-bad-and-the-ugly
Еще у баедулга есть подробно на эту тему.
550 1345863
551 1345892
>>45857
Спасибо за статью, поправил, пытаюсь сделать что-то такое:

@RunWith(MockitoJUnitRunner.class)
public class MockitoControllerTest {
private PartiesRepository repository = Mockito.mock(PartiesRepository.class);
private PartyService service = Mockito.mock(PartyService.class);
private PartiesController controller = new PartiesController(service);

@Test
public void testCreation() {
assertThat(this.service).isNotNull();
}
}

Но вылетает мокитоэксепшн, который говорит, что мокнуть сервис не может. У сервиса есть зависимость от репозитория, я так понимаю, что мокнуть надо сначала его, потом сервис, а потом уже всю эту красоту к контроллеру подключать, да?
552 1345894
А как вы делаете пффф ну например полиморфизм в галерных реалиях?
553 1345901
>>45894
List<Entity> entities = new ArrayList<>();
554 1345902
>>45901
А почему не ArrayList<Entity> entities = new ArrayList<>();
555 1345903
>>45902
Потому что.
556 1345905
>>45903
Строгая типизация.
557 1345911
>>45892
Ты определеись ЧТО ты хочешь потестить, а потом уже пиши тест. Выбери только одно. Каждый метод - один случай.
Какое поведение ты исследуешь.
Я дооолго ебался с тестами по началу кстати, так что понимаю твое замешательство.
Рекомендую искать статьи про тесты только старше 2018 года и только 5й спринг ( или какая там у тебя версия), потому что сейчас тесты пишутся сильно по другому.
-------------------
У тебя нет сетапа, у тебя до теста нужно сперва сделать предварительно все.
https://dzone.com/articles/spring-boot-unit-testing-and-mocking-with-mockito
https://www.baeldung.com/spring-boot-testing
Для общего развития.
558 1345926
>>45911
Спасибо за помощь, обязательно почитаю
559 1345962
Нормально ли юзать Launch4j или придумали что-то более крутое?
560 1345984
Продублирую из прошлого треда.
На собеседовании дали задание:
Клиент-Серверное (под tomcat) приложение.

Разработать страницу, отображающую в браузере древовидную структуру.

Функциональность:

∙ выделенный элемент должен быть отмечен отличной от других папок цветом иконки;

∙ реализовать «ленивую» загрузку папок, искусственно добавить задержку в 2 секунды при раскрытии папки, задав такой папке иконку загрузки, при этом должна быть возможность производить различные операции и навигацию по дереву;

∙ возможность добавления/изменения/удаления узлов дерева.

∙ перенос папки, включая вложенные под-папки в выбранную папку;

∙ опционально - организовать хранение данных в БД .

Я как перекатывающийся из php вижу решение этой задачи как java servlet на бекенде, но в качестве фронта я вижу только html+css+js.

Причем большая часть задачи, как перенос папки, включая вложенные под-папки в выбранную папку, решается исключительно на js.

Или я не правильно думаю и есть какой-нибудь swing в браузере?
561 1345987
>>45984
JSF, JSP.
562 1346018
>>45984
Это точно для жавы а не ЖС задание?
563 1346025
Учу JDBC, скоро пойду в тырпрайз!
564 1346028
Есть ли смысл писать приложение на спринге без спринг бута? Web.xml придется создавать, или его можно настроить в коде?
565 1346047
>>45984
Двачую этого >>46018. Задание вообще на фронтендерское смахивает, непонятно зачем джава разрабу эти анимации делать и т.п. Хотя, наверное, как обычно нужен и швец, и жнец, и на дуде игрец, желательно еще и за мрот.
566 1346068
>>46018
>>46047
Глянул другие вакансии компании, им действительно требуется web разраб со знание java se и javascript
567 1346077
>>46047
Ты очевидно хотел сказать "за хуй в рот"
568 1346083
>>46047
Сделать задание и просить хотя бы 150к, даже если опыта на джаве нет. Но ждать что будут ебать 24/7 и делать будешь видимо ВСЕ.
569 1346123
Поясните за связку спринг + фронт на реакт/ангуляре.
Как оно ИРЛ?
Хуярят 2 отдельных сервака. 1 со сприрнгом, который раздает РЕСТ апи + еще 1 на ноде(?) где уже работает реакт или ангуляр апп.
Или примерно как здесь.
https://habr.com/ru/company/alfa/blog/340776/
Сливают воедино все в экстазе и единственным бэком будет собственно спринг?
570 1346136
>>46123
градлом/мевеном билдят фронт, бек, минифицированную версию фронта кладут в /static и вуаля.
image.png80 Кб, 225x227
571 1346239
>>44757
Благодарю, как раз то, что мне нужно было.

>>44879
Я не знал как закинуть их, а не как реквестить.
572 1346252
>>46136
В статике лежит нода, на которой крутится фронт?
Доступ у фронта к {жава-объектам}, как у тимлифа есть?
573 1346284
>>46252
Ноды нет. Фронт билдится один раз, во время релиза и в итоге получается папка с минифицированными ресурсами и index.html, которую копируют в статик.
574 1346295
>>46284
Это видимо другое в твоем варианте.
Когда просто импортируются скрипты в шапке хтмл.
Я про полноценный апп на фронте.
kniga-filosofija-java-600x800.jpg78 Кб, 600x800
575 1346424
>>32296 (OP)
Посоны есть ли какой-то смысл покупать в 2к19 эту книгу для самообучения ? Знаю только основы и то ...
576 1346431
>>46424
Государство Платона лучше читни, там реальная философия.
577 1346466
Можно ли при обработке документа не прерывать выполнение, если на какой-то строке возникает исключение, а продолжать, а потом кинуть одно исключение со всеми сообщениями?
578 1346483
Не пора ли перекат?
579 1346485
>>46466
Можно поймать исключения в try/catch, засунуть их все в список List<MyException>, а после выполнения метода, если список не пуст, выкинуть свой эксепшн, который в конструкторе будет принимать этот список и извлечет все сообщения сразу.
580 1346487
>>46485

>Можно поймать исключения


Можно поймать одно исключения. Я как раз и спрашиваю, как после этого продолжить с того места, на котором мы остановились. В случае построчной обработки докуента все просто, а если там что-то с вложенностью, то уже не очень.
581 1346488
>>46487
Я же сказал, поймай одно и засунь в список, выполнение продолжится после catch. Если это не подходит, то кидай код, я же не экстрасенс.
582 1346489
>>46488
Разные элементы документа обрабатываются разными классами, не копипастить же везде try/catch и списки ошибок.
583 1346490
>>46489
Ты спросил как выкинуть несколько, я тебе ответил. Больше никак.
584 1346501
Какие недостатки есть у JavaFX?
585 1346504
>>46501
Ненужность.
586 1346543
Привет, анон. Осваиваю сокеты, пытаюсь для начала запилить клиент для эхо-сервера, ничего экстраординарного. Код сервера - с оракловского сайта https://docs.oracle.com/javase/tutorial/networking/sockets/examples/EchoServer.java - c небольшой модификацией, возвращает принятую строку не как она была принята, а в верхнем регистре.
Класс клиента - https://ideone.com/v27XKw
main - https://ideone.com/xUwc87

Ожидание: клиент отправляет серверу две строки, принимает их, выводит в консоль и закрывает соединение, после чего программа завершается.
Реальность: зацикливание в методе receiveAll().

Пробовал прогонять в IntelliJ дебагом, выставив брейкпоинт на начале цикла. После приема двух строк оно перестает показывать состояние каких-либо переменных вообще.

Что я делаю не так?
587 1346545
>>46543
Добавлю, println внутри receiveAll() строки выводит, т.е. от сервера ответ все-таки есть.
image.png37 Кб, 637x39
588 1346551
Парни, я долбоеб, как передавать аргументы командной строки в метод в виде double? Я какую-то срань написал, не заводится.
589 1346554
>>46551
double zalupa = Double.parseDouble(args[0]);
590 1346556
>>46554
Спасибо, анон.
image.png75 Кб, 1062x612
591 1346950
Как понизить версию джавы для конкретного проекта в Идее?
Пикрелейтед аналогичная настройка в лучшей иде.
592 1347033
>>46950
File -> Project structure -> Language level
593 1347042
>>47033
Эту настройку я открывал. Но у меня на компе кроме 1.8 jdk никакого нет, он сам как бы должен понизить с обратной совместимостью, а не выбрать другой.
594 1347049
>>47042
Попробуй там же в Project structure в пункте Modules изменить версию.
595 1347067
>>47049
Блин, я поспешил. Там есть такое. Оу щит айм сорри.
wow-magier-artwork-4.jpg160 Кб, 1280x720
596 1347174
>>32296 (OP)
Аноны, что почитать/посмотреть по теме spring'a стоит начинающему разработчику? В моём городе в большинстве контор требуют его на позицию стажёра
597 1347187
>>47174
Spring in action 4, официальные мануалы с сайта спринга, а также баелдунг
598 1347232
>>46028
Нет никакого смысла, web.xml не нужен, но желателен, ибо апликейшен-сервер его мониторит для обновлений, а класс «в коде» - нет
599 1347234
>>46123
Приложения на реакте и ангуляре это статика, которая работает в браузере клиента. Нода используется только для сборки проекта
600 1347235
>>46543

> Что я делаю не так?


Осваиваешь сокеты в 2019. Кроме http давно ничего не нужно
601 1347239
>>47234
Попизди мне тут. Если нужен SSR, то надо поднимать отдельный сервак на Ноде для клиентского приложения.
602 1347494
>>47239
Oчевидно что задающий вопрос вообще не ебет что такое SSR
603 1347497
Сап. Книга по сетям для общего развития и чтения на парах/дома профитна? Прочёл половину архитектуры компьютера, как то слишком углубленно, читать трудновато, общая картина не слишком сложилась, да и не применю эти знания углубленные нигде. Осталась книга по сетям, после прочтения сложится понимание работы сетей, или там тоже всё глубоко уходит в цифры и номенклатуру?
604 1347499
>>32296 (OP)
Двач, посоветуй, что бы такого можно было написать, чтобы на этом проекте научиться и показать потенциальному работодателю свои возможности?
Какой проект подходит для уровня middle java developer? junior не беру, т.к. там может повести и возьмут с минимальными умениями. А надо наверняка
605 1347553
Народ хелп. Я джун.
Есть 2 направления куда зовут. Hybris и ATG от Оракла. И там и там с обучением.
На какой стул сесть?
606 1347579
>>47497
имхо лучше читать православного Олифера. В сетях тоже будет глубоко, точнее от самой истории и древних архитектур до новых всяких хуинь
607 1347580
>>47235
- сап, народ, хочу засунуть себе в жопу кактус, знаю, что будет больно и опасно. Совал вот так и вот так (скриншоты прилагаются), не лезет. Как правильно засунуть себе в жопу кактус?
- вот ты лалка, в 2019 в жопу кактусы совать, все православные посоны давно уже сосут хуй!

Сука, как я вас таких ненавижу.
608 1347582
JSP используется в реальной работе или все уже используют жс фрейворки / тимлиф?
Стоит учить или можно забить?
609 1347602
>>47579
Ну олифер подойдёт шоб иметь общее представление о работе, мб какие нюансы полезные, но не лезть в жёсткую прикладную хуйню которая будет усваиваться через 20 перечитываний и мне никогда не пригодится?
610 1347641
>>47582
Еще пока стоит.
611 1347643
Я так понимаю ораклы забили на GUI для джавы и больше не будут развиваться в этом направлени? Неужели все приложухи будут консольными?
612 1347687
>>46504
А еще?
613 1347702
>>47643
Все приложения будут в вэб. Десктоп ненужен.
614 1347703
>>47643
Только спринг и мобилки. Остальное нинужно.
615 1347707
Нет случайно в мире долбоебов занимающихся прокачкой начинающих мартышек за бесплатно? Я понимаю, что есть всякие онлайн курсы и т.д., но пока с деньгами не понятно что(возможно появятся относительно большие расходы скоро), а сам не тяну самообучение - нужно, чтобы был кто-то, кто заинтересован в моем результате, не в смысле уговаривать меня как корзиночку, а просто чтобы была ответственность перед кем-то. Вкатываться джуном пока тоже не могу, здоровье не позволяет. Опыт есть небольшой на уровне операций с коллекциями\объектами\структурками, немного sql, веба.
616 1347710
>>47582

>JSP используется в реальной работе или все уже используют жс фрейворки / тимлиф?


Во всяком легаси-говне только JSP и используется, а легаси-говно - половина вакансий Джавы.
617 1347721
>>47602
Да, вполне подойдет, где то читал что дело вкуса мол читай что хочешь. В любом случае если зайдет одна книга, то можешь читануть другую и она будет как по маслу лететь
618 1347756
>>47707
Может лучше скооперироваться и вместе что-нибудь писать?
619 1347763
Сделал рест апи на спринге. Работает нормально.
Поставил спринг секьюрити. Посадил апи за него.
Теперь если сделать запрос к апи без пароля редиректит на страницу логина.
Как отправить 403 вместо 302 на лоигн пейдж?
Спринг не выкидывает никаких ексепшенов в консоль.
Ответ мок теста:
MockHttpServletResponse:
Status = 302
Error message = null
Headers = {X-Content-Type-Options=[nosniff], X-XSS-Protection=[1; mode=block], Cache-Control=[no-cache, no-store, max-age=0, must-revalidate], Pragma=[no-cache], Expires=[0], X-Frame-Options=[DENY], Location=[http://localhost/login]}
Content type = null
Body =
Forwarded URL = null
Redirected URL = http://localhost/login
620 1347770
>>47756
Неплохая идея, кстати чет я не подумал, вопрос только с кем. Писал одно время с одним немцем модик к 3 арме довольно неплохо получалось именно с точки зрения мотивации.
621 1347929
>>47721
Спасибо)
622 1347935
>>47702
Но апплеты и вебстарт никто не юзает.
623 1347951
>>47499
Ты на одном проекте не научишься!
Загуглишь хуиту и потом сразу забудешь.
Нужно несколько крудов запилить.
Каждый сложнее предыдущего!
624 1347954
>>47707

>кто заинтересован в моем результате


Всем похуй!
Ещё переживать за тебя что ты обосрёшься!
625 1347999
Как сделать так, чтобы спринг-сервер использовал vpn либо tor (словил 429)?
626 1348033
>>47770
Оставь какие-нибудь контакты, можно попробовать
9e68d76ea2.jpg100 Кб, 293x798
627 1348222
>>32296 (OP)
Аноны, нид хелп! настраиваю спринг сикьюрити и тут понеслось.
В матчерах прописываю директории как в доках спринга, а именно:
"/static/ и /partials/". по факту ничего из этого не работает. с статиком решил так: "//*.css", прошло, а вот как с теймплейтами быть?Спринг не хочет видеть, что лежит в партишелах, но видит, что лежит в корне темплейтов. Структуру папок прилагаю. префикс шаблонизатора на "/templates/".
628 1348335
Анонсы. Работаю год в Андроиде. Устал от верстания экранов и прочей ебатни, думаю перекатиться в бекенд так как в Андроиде больше всего нравится фиксить баги в бизнес логике. Как думаете стоит ли это делать и даст ли мой опыт в Андроиде какой-то плюс при поиске работы в spring/ee?
629 1348345
>>48222
Хуйни хочу. Сори, уже понял, в чем проблема.

в лишней хромосоме
630 1348423
>>47707
Нахуй ты такой нужен джуном если самообучение не тянешь? Думаешь на галерах кому то будет интересно тебя обучать?
631 1348545
>>47499
Значит так. 3 этапа.
1.
Пишешь крад сервлетами. Авторизацию/аутентификацию/ фильтрами. Без жпа. Только сессии, только конекшн, только нативный скл. Минимальные стили . Пушишь в репу.
Важно понимать, как это работает на низком уровне. Только jsp эта вот хуииа тебе ещё понадобится в жизни. Обязательно миграции бд - самое лёгкое - флайвей. Реализовать минимальные релейшены между таблицами.

2. Крад на том же спринг буте, но уже с жпа, нормальными стилями, с бутстрапом, с нормальной спринг секьюой. Таймлиф или фримаркер. Миграция - ликвбейс. Реализовать все виды релейшенов между таблицами.

3. Фул рест крады, с джаваскриптом и норм стилями. С рассылкой почты, с рекапчами, с полным логированием, миграция на выбор.
632 1348703
>>48545
Схоронил!
Мимо другой анон
633 1348704
>>48545
Что по софту нужно знать?
Tomcat, Docker?
634 1348793
>>48704
Спринг бут сам тебе настроит томкат или андертоу, остальное зависит, насколько у вас сильно развит ci и devops. Докер, линуксовые команды, монго/постгрес/оракл.
635 1348859
>>48793
Со спринг бутом понятно, но там анон советовал по хардкору с сервлетами поебаться, вот и спрашиваю, а то там помимо томката ещё и джетти есть, вилдфлай и глассфиш!
И хз что из этого нужно ждуну вкатальщику трогать
636 1348860
>>48859
Что угодно, кроме глассфиша.
637 1348874
>>48860
Пачиму??
638 1348883
>>46504
А на чем тогда десктопные приложения пилят?
639 1348886
>>48883
На джаве? Зачем?
640 1348890
>>47187
Почему 4, если уже 5 есть?
641 1348893
>>48886
Сам не знаю, но вот идея же написана
642 1348918
>>48890
я слышал в пятом ошибочки есть или около того. Тем более в 4 показывают xml конфиги, это тоже полезно я думаю
643 1348945
>>48886
На неделе хрюша звала на вакансию с десктопом на джаве (Swing/SWT). Отказался, конечно же. Так что бывает и пишут, но устраиваться в такие места и учить UI-фреймворки не нужно энивей - вакансий мало, и после увольнения этот опыт будет бесполезен.
>>46504-кун
644 1348948
>>48918

>в 4 показывают xml конфиги, это тоже полезно


Только если собираешься месить легаси-говно. Не видел ещё ни одного проекта, где Спринг настраивался через xml - когда такое было модно, в России все пилили проекты на JavaEE, но даже там старались угорать по аннотациям.
645 1348961
>>48948
Ну да, я понимаю, что большинство предпочитает аннотации, но по хорошему же стоит понимать откуда все начиналось
646 1348983
>>48859
Да нахуй тебе ничего не надо. плагин томката для мейвена накати для сервлетов, на нем и делай.

Докер по желанию, но лучше знать. если не линкус тачка, то жопоболи наберешься.

Мимо тот анон.
647 1348987
Как клонировать коллекцию? Мне нужна копия с точно такими же значениями элементов. Я так понимаю, просто клон не сработает. Создаст новую ссылку на ту же область данных, и изменив через одну ссылку, данные изменятся для всех. Блед, как же сложно всё.
648 1349005
>>48987
new ArrayList<>(previousList)
649 1349009
>>49005
Это копия ссылок элементов. Поверхностное копирование.
650 1349018
>>49009
делай copy-конструктор и клонируй сам.
651 1349023
>>49018
Я уже по байтам копирую.
652 1349136
>>49023
Молодца, Бугаенко бы оценил.
14553037696822.jpg29 Кб, 340x604
653 1349179
>>32296 (OP)
Дайте какую-то книгу или рессурс или видео, которое обьясняет, как работает спринг под капотом, на самом низком уровне.
654 1349545
>>49179
Общего сборника, к сожалению, нет.
Что-то можно почерпнуть из Spring in Action. его нужно читать в первую очередь, там получишь объяснение довольно многих вещей.
Затем (или параллельно) рекомендую посмотреть видосы Spring-потрошитель от Борисова на ютубе.
Какие-то вещи я почерпывал в процессе изучения конкретного модуля. Например, на канале https://www.youtube.com/channel/UCLMPXsvSrhNPN3i9h-u8PYg
есть много записей докладов от самих разработчиков, где они расказывают подкапотные вещи.
655 1349551
Какую ide поставить на старенький комп? Идея слишком много памяти ест, а у меня всего 8 гигов и довольно долго все запускается, если проект более-менее серьезный. Хотелось бы че-нить менее требовательное к ресурсам.
image.png98 Кб, 1004x672
656 1349613
>>49551
netbeans,
только надо настроить как на скрине.

.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_1234567890
657 1349657
>>49551
Sublime Text
658 1349664
Посоны, а есть че по спрингу на русском почитать? Чот Spring in Action сложновато читается пока в плане английского.
659 1349740
>>49657
Саблайм это текстовый редактор, а не IDE
660 1349741
>>49664
Spring in Action на русском
image.png172 Кб, 2000x2000
661 1349866
Почему во всех примерах по рефакторингу здорового swtch/case блока после рефакторинга этот блок остается на месте?
662 1349883
>>49664
Да ты че, читаю спринг ин экшн 4, английский элементарный.
663 1349893
>>49883
Что в книгах пишут такого (seriously asking)? все что нужно в туториалах имхо, которые гораздо быстрее просканить можно.
664 1349903
>>48948
Тоже предпочитаю аннотации, но в xml конфигах есть свои плюсы, например посмотри конфиг сокет коннекшина со spring-integration [1], весь конфиг в паре строчек, на аннотациях это было бы разбросано по многим классам.

1. https://github.com/spring-projects/spring-integration-samples/blob/master/basic/tcp-client-server/src/main/resources/META-INF/spring/integration/tcpClientServerDemo-context.xml
665 1349920
>>49893
Я по туториалу с spring.io почти запилил свой таск манагер, но ощущение, что я тупо копипащу без нормального понимания кто что делает. В гайдах есть небольшие пояснения но хз.
666 1349928
>>49545
О спасибо за канал. Я прям тем же самым занимаюсь. Спринг в действии читаю и Борисова смотрю.
667 1349930
>>32296 (OP)
Я тут прочел, что начиная с java 11 больше стандартной jre у джавы не будет, и предполагается, что для каждого приложения будет генерироваться свой рантайм, в котором будут только необходимое для приложения модули, и этот рантайм надо распространять вместе с приложением. Вроде бы идея не плохая, но как же быть если у пользователя будет много джава-приложений, неужели для каждого приложения будет свой рантайм?
668 1349932
>>49930
Придумают что-нибудь типа докера.
669 1349943
>>49930
Для десктопных и сейчас многие инклюдят JRE в дистр, на случай если у пользователя нет джавы например.
670 1349950
>>49893
Я уже написал пару приложух на спрингбуте по мануалам, но это казалось мне реальной магией. Решил прояснить все чтением спринг ин экшн 5. Читаю, а там основной посыл такой "спрингбут эта круто, заморачиваться не надо, добавьте депенденси и все само заработает".
Поэтому пришлось откатиться до спринг ин экшн 4. Вот тут я реально очень многое осознал и понял.
671 1349957
>>47707
Сколько хуец см?
672 1350035
>>49943
Что, теперь три рантайма для винды, линукс и макоси надо собирать и вкладывать в приложение, не жирно ли выходит?
673 1350039
>>49950
Ну вот какой тебе смысл сейчас узнавать, что там под капотом ? Все равно на данном этапе не поймешь. Попиши крады, поделай рест. Устройся на работу, апни мидла, тогда и углубляй знания. Сейчас это тебе не надо. Многие д3 стримов не знают и живут.
674 1350053
>>50035
Инсталлятор то все равно специфик для платформы. Мы билдили .msi и .dmg отдельно например
675 1350076
>>49893
Смотря какие книги и смотря кто их пишет. 90% туториалов пишутся Васянами и это является пересказом других Васянов
676 1350106
>>50039
Меня сходу на собесе спросили про депенденси инжекшн, какие способы внедрения зависимостей я знаю, какой способ лучше использовать. Все это я как раз и вычитал в спринг ин экшн 4 пару дней назад.
677 1350464
Поясните за женерик. Если я объявляю массив примитивного типа, например char[] i , то женерик его не кушает, если от класса Character[] i - то все ок, почему?
678 1350471
>>50464
Все, я тупой, я понял.
679 1350499
хуйня.PNG9 Кб, 665x116
680 1350540
Жабоанон, помоги христа ради! Везде выставил utf-8, но с хтмл формы все равно прилетает ISO-8859-1. Что ей ещё от меня надо?
681 1350689
Есть ли какая-то книга по жабе для вкатывальщиков с других ЯП? Открыл Head First Java и ощущение будто я семилетний ребенок которому всё жуют и в рот запихивают. Есть что-то не кнутоподобное, но при этом более-менее серьезное?
682 1350785
>>49930
Это сделали для микросервисов и прочей инфраструктуры, где жирный рантайм ни к чему. Также Ораклы пилят GraalVM, который способен сгенерировать нативный бинарник: насчёт применения пока не уверен, но наверное серверлесс, IoT девайсы и тому подобное.
683 1350786
>>50106
Неужели в 5ой редакции этой инфы нет?
684 1350804
>>50786
нет.
685 1350806
>>50540
На html-странице тоже нужно выставить utf-8.

<head>
<meta charset="UTF-8">
686 1350824
>>50806
Не, перепробовал уже все. Это кодировка внутри жабы похоже или приходящая с хттп пост запросом, я точно не понял, но она зашивается в реквест и её хуй поменяешь. Я прост конвертером перевожу её. Используйте конвертер короче в таких случаях.
687 1350833
Test
688 1350834
Может кто поможет, буду очень признателен.
Ебусь там с начальным спрингом, аннотациями и передачей объектов на хытымл с контроллера
http://stackoverflow.com/questions/54761923
689 1350843
>>50824

>Это кодировка внутри жабы похоже или приходящая с хттп пост запросом


Попробуй заглянуть в запрос до того, как он провалится в жабу. Как - не знаю.
690 1350855
>>50843
Это тоже нагугливал, пишут что там в хедере как раз и указывается эта ебучая исо 8859-1. Писали пару решений как кому то помогло, но мне не помогло.
691 1350982
>>50855
А ты сам возьми да посмотри. Либо fiddler, либо просто добавь логи на фронте.
692 1351028
Как лучше получать UserDetails для текущего юзера, передав из контроллера в сервис или прямо внутри сервиса, используя SecurityContextHolder?
693 1351030
Почему Hystrix сначала кидает ошибку по таймауту, а потом выполняет метод фейн клиента? Причем независимо от величины таймаута.
694 1351086
>>32296 (OP)
Какая выгода от DI фрэймворков? Чем плохо реализовать DI просто ограничившись добавлением интерфейса в конструктор, просто сделать интерфейс IFoo, сделать класс Bar с конструктором Bar(IFoo foo), и готово, потом сам создаешь конкретные реализации IFoo и передаешь их в конструктор, безо всяких контейнеров
695 1351102
>>51086
Для больших проектов так просто удобнее и требуется меньше кода. Для маленьких конструктор вида
MyClass(A a, B b, C c) {
this.a = a;
this.b = b;
this.c = c;
}
уже будет выполнять все функции DI фреймворка.
696 1351137
>>50689
От ЕПАМА нормальная книга.
697 1351257
>>32296 (OP)

>На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.


А нахуй он нужон тогда? Чтобы сидеть офисной макакой в какой нибудь компании и с 8 до 5 пилить всякие штуки?
698 1351258
699 1351260
>>51258
Понял принял
image.png4 Кб, 704x139
700 1351274
Я у мамы погромизд
В чем прикок этой ваши джавыраш, там ведь нихуя толком не объясняется, например, че вот такое string че такое arcs нахуй оно вообще присутствует в коде или это чисто для того чтобы понять что по шаблону ты можешь что то "кодить" а дальше уже или покупай курсы или пиздуй сам учиться?
701 1351324
Объясните простым языком что такое Rest Api, пожалуйста.
702 1351355
Аноны, стоит ли покупать аккуант Ultimate Unlimited на javarush ? Аккаунт не ограничен по времени, стоит примерно 100 у.е.
703 1351376
>>51324
Архитектурный стиль поверх протокола HTTP. Простыми словами, список ссылок, к которым обращаешься с помощью HTTP-запросов, данные передаются обычно в json или xml. Например, отправив POST-запрос с данными по ссылке /users ты создашь нового пользователя, отправив GET /users, получишь список пользователей, GET /users/1 вернет пользователя с id=1. Клиент (мобильное приложение, например) потом эти данные динамически вставляет на страницу.
704 1351388
>>49551
у меня 4 гб и старый проц и запускает примерно минуту. Для тебя это долго ?
705 1351426
>>51388
У меня относительно старый проц и 8 гб оперативы и идея открывается за 1 мин 02 сек. Хотя видюха у меня гтх 1060
А дело тут в том, что жесткий диск медленный, а не проц или оперативки мало. Покупайте ССД.
мимохакер
706 1351550
посоветуйте книги или сайты с задачками по java
707 1351555
>>51376
А чем Spring MVC отличается от Spring Rest? Можно ли писать веб-приложения на rest не используя jsp?
708 1351583
>>51555

>А чем Spring MVC отличается от Spring Rest? Можно ли писать веб-приложения на rest не используя jsp?


Ты туториалы с официального сайта запусти, там простые примеры, сразу по коду всё поймёшь.
И главное запомнишь 3 аннотации которые позволят тебе минимальную приложуху создать!
709 1351627
>>51555
Spring Rest - это надстройка на MVC. Для Rest'a JSP не нужен. Используя rest, ты, грубо говоря, можешь загрузить 1 раз страницу, а потом вставлять туда полученный json (гугли single page app). В случае jsp ты генерируешь каждую html на сервере, самостоятельно вставив туда данные, и отдаешь клиенту полностью готовую страницу.
710 1351630
>>51627

>гугли single page app


Лучше ajax.
711 1351700
>>51630
Говно мамонта
712 1351766
>>51627
А jsp сейчас не используются? Большинство пишется с использованием REST api?
713 1351770
>>51627
Еще простым языком объясни, пожалуйста, что такое soap спецификация.
714 1351818
>>51766
В старых проекта используется. В новых в основном javascript-фреймворки (Angular, React, Vue и т.д.) + REST backend.

>>51770
SOAP - это протоколы (строгие стандарты, в отличие от REST) поверх xml, причем HTTP используется просто для передачи данных (только POST-запросы). Куча статей есть на эту тему.
715 1351933
Жабисты, хелп. Как в спринге реализовать долгоиграющий таск, который дергает сервисы, которые в свою очередь лезут в базу и чтото в ней меняют например.
717 1352211
На каком фреймворке будет проще реализовать накат миграций\создание с нуля БД, пусть mySQL? Нужно для говнотестов апи\бека.
718 1352222
>>52211
флайвей
719 1352263
>>52211
Ликвибейз.
720 1352475
>>51977
А ещё можно прикрутить Quartz, который охуенно гибок, но это если надо будет изъебнуться с цикличностью/персистивностью/какой другой хуйнёй.
721 1352514
>>51818
Спасибо за развернутые ответы.
изображение.png7 Кб, 509x202
722 1352654
Сап. Spring Boot + JPA + AOP.

Есть @Around-эдвайс, в котором написан примерно пикрелейтед. В случае, когда try-catch-finally завершается нормально, энтити сохраняется, а когда выбрасывается исключение - нет. ЧЯДНТ?
723 1352665
>>52654
Очевидно транзакция роллбачится от эксепшина нахуя тебе аспекты?
724 1352671
>>52665
Действительно. Вызываемый метод обёрнут в транзакцию. Это как-нибудь можно обойти?

>нахуя тебе аспекты?


Логгирование.
725 1352706
>>52654
Ха, достаточно было повесить @Order(Ordered.HIGHEST_PRECEDENCE) на @Aspect-компонент.
image.png90 Кб, 856x519
726 1353313
БЛЯЯЯЯДЬ
727 1353439
>>53313
Братюнь, это что у тебя за шляпа такая?
Опенжл? Дириктикс?
Начинай с Гнома!
image.png99 Кб, 856x519
728 1353520
>>53313
Вот я долбоеб конечно, смотрел не туда пару часов.
cokietheclown.jpg70 Кб, 925x614
729 1353566
Подскажите плез. Вот я сделал ентерпрайз приложение. В каком виде я должен нести его заказчику?
Например есть у меня сканпелиный war-файл. Я иду к заказчику, ставлю у него томкэт, базу данных. Деплою свой варник.
Но куда мне например внести (где хранить) реквизиты к БД, если у меня итоговый продукт - один war-файл?

Или я должен нести к заказчику сорцы, на месте править проперти-файл, прописывать там реквизиты БД, и все собирать мавеном? Некоторые пишут, что можно в pom-файле хранить реквизиты, чтоб сорцы не трогать вообще, но чёт не очень как по мне.

Короче, как на деле обстоит процесс дистрибуции ентерпрайз софта?
730 1353590
>>53566
проперти оверрайдятся он деплоимент через environment variables

типа:

java -Dspring.datasource.url=mysql://blahblah -Dspring.datasource.username=lox -jar superspringbootapp.jar
731 1353595
Не знаю в каком треде написать, но может кто сталкивался:

есть на AWS 2 EC2 сервера
на одном крутится некий процесс который генерирует месседжи и кидает их в ActiveMQ.
Процесс на другом сервере читает их и обрабатывает,
так вот лейтенси 100-200 мс, нужно 10-20 мс, поможет ли свитчнуть activemq на кафку? а то лень просто ради эксперимента менять.

месседжей немного где-то 300/сек
732 1353657
>>53590
-D это не environment variables, это system properties
733 1353760
>>53590
Ну с jar понял, что так можно. Кстати пароли красиво лягут в файл .bash_history

Но вот с war не совсем понятно, там в томкате же просто выбираешь файл и жмешь кнопку деплой, где задавать систем проперти.
734 1353771
>>53566

>ентерпрайз приложение.


>В каком виде я должен нести его заказчику?


>ставлю у него томкэт, базу данных.


>Деплою свой варник.


В наше время докерами нужно всё обмазывать или накройнях скрипт онитик написать на ебаше который сам всё там проставит и за деплоит.
735 1353787
>>53760
с томкатом аналогично, гугли tomcat + environment variables.
736 1354076
Дружит ли java с react? В этом стеке на сервере RestController, а за отрисовку страниц отвечает react? Или странички приходят с сервера?
737 1354115
Кто-то пользовался VS Code? Можете рассказать про него в сравнении с идеей?
738 1354198
>>54115
Ох он и джаву поддерживает, пойду пробовать
739 1354247
>>50834
Хуиту наворотил!

>type.toString().toLowerCase()


Гугли методы enum и конкретно name()
Гетеры и сетеры запили блядь.
Налепил стримов нахуя?
Привыкай писать логи на каждый чих!
Тогда по консольке будешь заранее видеть где ты проебался!
740 1354405
Только сейчас осознал, что модулям в джаве уже полтора года, а я до сих пор не поковырял их, ибо лень.
741 1354411
Кста, планирую года через 3 перейти на удалёнку на зарубежном рынке. Держу в курсе.
742 1354432
Есть какие-то годные тытуб каналы(рус\англ), чтобы на фоне послушать, дабы поискать пробелы в основах на уровне женериков, паттернов и т.п. сложности? Или лучше не ебать мозги и методично дрочить ДУМАЙПОЯВОВСКИ\Хорста? Просто от книжки засыпаю, а от видосов периодически появляется мотивация и реальный результат в виде попыток покодить услышанное.
743 1354563
Анонсы, помогите, пожалуйста, обучаюсь второй месяц.

Значит следующая ситуация. Есть четыре класса. Один - Reminder - класс из которого я делаю напоминания. Есть main, откуда я все запускаю. И есть два класса с ArrayList - один со списком напоминаний, другой с выполненными напоминаниями.

Так вот, я хочу сделать метод, чтобы из листа с напоминаниями переводить их в лист выполненных и удалять из первого листа. Получается следующий код (конечно, я все упростил для примера):
Main:

public class Main {

public static void main(String args[]) {

TaskList list = new TaskList();
Reminder rem = new Reminder();
DoneList done = new DoneList();

list.list.add(rem);
list.setDone(0);
}
}

Список напоминаний:

public class TaskList {
ArrayList<Reminder> list = new ArrayList<Reminder>();
DoneList done = new DoneList();

public void setDone(int i) {
done.done.add(list.get(i));
list.remove(i);
}
}

Список выполненныйх напоминаний

public class DoneList {
ArrayList<Reminder> done = new ArrayList<Reminder>();
}

Объясните, пожалуйста, почему "done.done.add(list.get(i));" не добавляет объект во второй лист?

Конечно, способ, наверняка, говно, но очень хочется понять почему не катит. Читал все, включая документацию и не могу найти ответа.
743 1354563
Анонсы, помогите, пожалуйста, обучаюсь второй месяц.

Значит следующая ситуация. Есть четыре класса. Один - Reminder - класс из которого я делаю напоминания. Есть main, откуда я все запускаю. И есть два класса с ArrayList - один со списком напоминаний, другой с выполненными напоминаниями.

Так вот, я хочу сделать метод, чтобы из листа с напоминаниями переводить их в лист выполненных и удалять из первого листа. Получается следующий код (конечно, я все упростил для примера):
Main:

public class Main {

public static void main(String args[]) {

TaskList list = new TaskList();
Reminder rem = new Reminder();
DoneList done = new DoneList();

list.list.add(rem);
list.setDone(0);
}
}

Список напоминаний:

public class TaskList {
ArrayList<Reminder> list = new ArrayList<Reminder>();
DoneList done = new DoneList();

public void setDone(int i) {
done.done.add(list.get(i));
list.remove(i);
}
}

Список выполненныйх напоминаний

public class DoneList {
ArrayList<Reminder> done = new ArrayList<Reminder>();
}

Объясните, пожалуйста, почему "done.done.add(list.get(i));" не добавляет объект во второй лист?

Конечно, способ, наверняка, говно, но очень хочется понять почему не катит. Читал все, включая документацию и не могу найти ответа.
744 1354588
>>54563
Логи в консоль проставь в каждую функцию и смотри что там.
745 1354607
>>54588
Не понял, к сожелению. Как это можно сделать в eclipse? Гуглить eclipse see console logs пробовал.
PHP 746 1354613
Посоны. Пишу на пыхе уже сто лет. Приблизительно столько же планирую перекатиться куда-то.

Пых знаю вдоль и поперек, от корки до корки перечитал всю документацию и пр.

Ввиду некоей похожести синтаксиса выбор пал на эту вашу джаву., но ничего о ней не знаю.

Скажите, стоит ли? Много ли времени уйдет на вкот? Какие подводные?
747 1354620
>>54563
Ты добавляешь элемент в один лист а ждёшь его в другом.
748 1354634
>>54620
Ну вот я передаю в метод setDone аргумент int i, и пытаюсь удалить пункт в списке за номером "i", это получается. Но как же тогда передать этот самый пункт в другой список? Разве list.get(i) не возвращает (returns, не знаю как по-русски правильно, тк изучаю на английском) нужный мне пункт? И done.add.add по сути указывает на нужный объект и лист в нем.
749 1354662
>>54634
возвращает, но он добавляет этот элемент в список DoneList, инициализированный внутри объекта TaskList, а это не тот же самый список, что и инициализированный внутри main().
Ну и добавь сеттеры/геттеры, ради б-га
750 1354676
>>54607
System.out.println("Хуй пизда")
Если модные лог библиотеки не подключать.
751 1354679
>>54607
Помоему эклипс перестал по дефолту окно с логами показывать

поэтому window -> show view - console
752 1354731
Test
753 1354733
Ребзя, в чём лучше всего сейчас писать ГУИ под десктоп? Сначала смотрел в сторону JavaFX, но оказалось, что его нет в моём JDK, а переустанавливать заново лень было, поэтому перешёл на Swing, ибо везде пишут, что AWT старьё вообще. Нужно на лету добавлять и удалять компоненты, может ли свинг в это красиво? Никогда до этого ГУИ не писал.
754 1354736
>>54662
Спасибо, мужик, я реально ломал голову целый день. На стак оверфлоу боялся пойти, так как говном забросают. Теперь чувствую себя тупым.

Мог бы написать, зачем в данном случае сеттеры/геттеры? Я в принципе их использую, но вот конкретно в этом примере не совсем понял.
755 1354745
>>54736
геттеры/сеттеры нужны, чтобы сохранять преемственность при наследовании и чтобы имплементацию за ними прятать.

По твоему коду еще один комментарий: я бы эти оба списка за сервисом бы спрятал, как-то нелогично, что один список в другом
756 1354754
Сап, подскажите плз, застрял с одной хуйней в спринг в действии 5 ( в главе 2-3) конкретно с передачей с контроллера на хтмл и последующим отображением. Гуглил-хуюглил, гитхабил-оверфловил, все бестолку. Уже на неделю застрял. Жалко время и свои нервы, может кто-то ткнуть ебалом что не так ?
stackoverflow.com/questions/54851353
757 1354756
>>54754
Готов скинуть кому-то пару баксов в битках за помощь, не все же тут 300кк
758 1354760
>>54745

>один список в другом


Имеется в виду, что у меня в классе с одим списком объект класса другого списка?

>за сервисом


Спасибо огромное, как это гуглить? В англ варианте так и будет java service? На данном этапе обучения не знаю что это, но, опять же, с русской терминологией не знаком.
759 1354764
>>54733
Сейчас круды кругом, так что в веб вкатывайся с базовых хтмл, ксс, йаваскрипт.
Если же тебя на будущей работке занесёт нелёгкая ковырять махровый легаси, вот на чем там десктоп нахуярен в том и разберёшь, там и ява будет 4-ая или 5-ая.
А сейчас только время зря тратишь!
Сейчас джунам на тестовое дают круды где минимум бустсрапон ну или консольное на смекалку.
760 1354765
>>54754
Да заебал ты уже!
Запрашивает Java ждун вкатальщик 761 1354768
Где блядь перекат?
Мидлы повидлы, синьоры помидоры сраные, перекатить не могут даже!

СРАМОТА!
762 1354774
>>54760

>Имеется в виду, что у меня в классе с одим списком объект класса другого списка?


да, некошерно это. Ты либо сделай что-нибудь типа такого:

public class TaskList {
ArrayList<Reminder> list = new ArrayList<Reminder>();

public ArrayList<Reminder> getDoneReminders() {
return list.filter(Reminder::isDone)
.collect(Collectors.toList());
}
public ArrayList<Reminder> getPendingReminders() {
return list.filter(r -> !r.isDone())
.collect(Collectors.toList())
}

}

public class Reminder {
private int status;
public void setDone() {
this.status = 1;
}
public boolean isDone() {
return this.status == 1;
}

Либо, сделай сервис (это просто паттерн), который будет прятать оба списка за собой, типа
public class ToDoService {
ArrayList<Reminder> pendinglist = new ArrayList<Reminder>();
ArrayList<Reminder> donelist = new ArrayList<Reminder>();

public void setDone(int i) {
donelist.add(pendinglist.remove(i))
}

public void setPending(int i) {
pendinglist.add(donelist.remove(i))
}
...
}

И обращайся к сервису, когда тебе надо поменять статус у элементов.

Сервис тогда будет тебе определять интерфейс, с которым ты можешь работать, а внутреннюю имплементацию ты потом можешь легко поменять. Например, поставить за сервисом базу данных, или использовать всего один список, как в примере выше и тд
762 1354774
>>54760

>Имеется в виду, что у меня в классе с одим списком объект класса другого списка?


да, некошерно это. Ты либо сделай что-нибудь типа такого:

public class TaskList {
ArrayList<Reminder> list = new ArrayList<Reminder>();

public ArrayList<Reminder> getDoneReminders() {
return list.filter(Reminder::isDone)
.collect(Collectors.toList());
}
public ArrayList<Reminder> getPendingReminders() {
return list.filter(r -> !r.isDone())
.collect(Collectors.toList())
}

}

public class Reminder {
private int status;
public void setDone() {
this.status = 1;
}
public boolean isDone() {
return this.status == 1;
}

Либо, сделай сервис (это просто паттерн), который будет прятать оба списка за собой, типа
public class ToDoService {
ArrayList<Reminder> pendinglist = new ArrayList<Reminder>();
ArrayList<Reminder> donelist = new ArrayList<Reminder>();

public void setDone(int i) {
donelist.add(pendinglist.remove(i))
}

public void setPending(int i) {
pendinglist.add(donelist.remove(i))
}
...
}

И обращайся к сервису, когда тебе надо поменять статус у элементов.

Сервис тогда будет тебе определять интерфейс, с которым ты можешь работать, а внутреннюю имплементацию ты потом можешь легко поменять. Например, поставить за сервисом базу данных, или использовать всего один список, как в примере выше и тд
763 1354783
>>54765
Дима, ты ? Узнал меня ? Это я, твой физрук ! Узнал тебя по твоим шизоидным высерам
764 1354785
>>54754
А Я НАПОМИНАЮ, ЧТО ЛББОЙ ИЗ ВАС ВСЕ ЕЩЁ МОЖЕТ ПОЛУЧИТЬ 5 БАКСОВ ЗА РЕШЕНИЕ ЭТОЙ ЛЕГКОЙ ЗАДАЧКИ. КОШЕЛЕК BTC прикрепляйте сразу к ответу
765 1354787
Пришла в голову идея, заставлять решать свои проблемы индусов. Какой-то задвиг или затуп, сразу давать им это задание на реализацию, за копейки и отзывы. Дайте, пожалуйста, ссылки не такие бирж
766 1354789
>>54756
скинь проект, мне лень копипастить
768 1354813
>>54811
Там намного больше классов икода на этом гите, у меня проблема в куске той главы
769 1354814
ОП-ХУЙ, ГДЕ ПЕРЕКАТ!?
770 1354817
>>54811
ты свой проект скинь, чтобы мне понять что ты наворотил. Хули мне на уже рабочий пример смотреть.
771 1354832
>>54817
Разбираюсь, как залить
772 1354930
>>45259
Ебанись, как пришел к этому и как долго шел? Ты у мамки крутой олимпиадник? И почему в шапке тогда написано, что на джаве нету фриланса?
773 1354936
>>54930
Не крутой, но участвовал да, в лучшее время был красный рейтинг, сейчас недавно попробовал на топкодере едва первую задачу решил на 160 баллов.

Не знаю почему там так написано, но могу точно сказать, что это не правда.
774 1354937
>>54936
Ты всю жизнь этим занимаешься - или вкатывальщик?
775 1354957
>>54937
3 года фриланс до этого в офисе
776 1355012
>>54764
Спс за пояснения, анон. В этом свинге, как и во всех остальных джавовских после нормальных гуй, того же qt анрил ковыряться.
777 1355068
>>55012
В Jfx норм ковыряться. Не могу остановиться никак.
778 1355174
Использовать MultipartFile напрямую в сервис-слое это бэд практис? Читал, что в сервисах не должно быть веб зависимостей, как тогда лучше передать его?
image.png86 Кб, 856x519
779 1355190
Опа че еще могу
780 1355429
>>55190
В гит залил уже?
781 1355602
>>54817
http://github.com/Denis2281488/trytaco1.git
pr/атья, чекните пж, что не так ? Не отображается корректно в бровзере.
782 1355639
>>55602
Сап, подскажите плз, застрял с одной хуйней в спринг в действии 5 ( в главе 2-3) конкретно с передачей с контроллера на хтмл и последующим отображением. Гуглил-хуюглил, гитхабил-оверфловил, все бестолку. Уже на неделю застрял. Жалко время и свои нервы, может кто-то ткнуть ебалом что не так ?
stackoverflow.com/questions/54851353
Screenshot 2019-02-26 at 12.45.07.png114 Кб, 694x1378
783 1355678
>>55602
ну ты и нахуевертил.
Короче, если я вот к такому виду приведу DesignTacoController.java (https://pastebin.com/q7f0m4D0):
1) Уберу @ModelAttribute("design") с метода с ним вообще страница /design не открывается, сыпясь с ошибкой
2) Поменяю @PostMapping на методе на @GetMapping
3) Уберу method = RequestMethod.POST с аннотации на контроллере нахуя вообще это на контроллер лепить
То в браузере у меня видать пикрелейтед

Я честно говоря хуй пойми, какую ты проблему на стековерфлоу описывал, потому как твой код ее не воспроизводит
784 1355681
>>55678
сука, двоеточие в ссылку попало. Вот правильная ссылка на пейстбин: https://pastebin.com/q7f0m4D0
785 1355737
Test
786 1355739
>>55681
Спасибо большое за ответ, у меня все так и было. До того как стал менять по советам с стака все подряд. НО БЛЯТЬ, у меня даже сейчас отображается какая-то хуйня, вместо того что у тебя. Я вроде не ебанулся ещё головой, я же запускаю мейн класс, жду когда запустится и переходжу на хтмл страницу и там выбираю иконку браузера которым я хочу отобразить ?
787 1355742
>>55739
Вот тут-то ты и косячишь.
Ты же просто смотришь браузером шаблон для таймлифа, а надо-то на сервер заходить, чтобы он как раз тебе на основании этого шаблона контроллером страницу сгенерировал.
Вот этот самый сервер как раз ты и запускаешь через TrytacoApplication.java
788 1355743
>>55742
Читай лог, который тебе приложение при запуске показывает, там будет написан порт, на котором приложение крутится. Заходишь на http://local host:порт браузером и оттуда пляшешь на свою страницу
789 1355787
>>55743
Я и запускал сервер, а потом открывал страницы.
Но вот где надо с контроллера передать что-то - открывается, но ничего не передаёт, выдает только статический текст.
Я уже подумал, что у меня сервер не запускается.
И да, в логах же выдает стандартный 8080, а из под него ни одна из 2 страниц не хочет открываться в браузере, выдает white label ошибку какую-то. Это значит, что сервер не работает ?
790 1355795
>>55787

> выдает white label ошибку какую-то


скрин и разберемся
791 1355807
Поясните за crsf в Spring Security.
Я нашел гайд для ангуляра
https://spring.io/blog/2015/01/12/the-login-page-angular-js-and-spring-security-part-ii
Где предлагают передать срсф-токен в кукисах, и как то меня это напрягает. К этому токену по идее может получить доступ любой другой сайт же. Да обратно он видимо пересылается в хедере, но это как то неправильно.
А если я хочу например фронт на реакте сделать или вообще просто на на чистом js.
+ видимо если фронт будет на другом серваке надо еще CORS настроить, но это уже не по теме.
792 1355812
>>55795
Блин, все, спасибо большое, это я идиот.
Когда сервер запущен, к тому порту надо просто имя файла было докинуть, а я фул путь прописывал и из-за этого не находилось
793 1355813
>>55812
9 из 10 ошибок это просто не поставленная запятая или какое то такое дерьмо. Глаз замыливается и не видишь очевидный косяк.
794 1355854
>>55812
Братиш, ты матчасть-то подучи. А то ты совсем какие-то нелепые ошибки делаешь
795 1356070
Джаваны, я к вам с платиновой платиной. Как изучать спринг? Ворочаю тырпрайз говнище с 2016, интегрировал Nuxeo, пердолил Liferay, джаву саму по себе подтянул, про сопутствующую поебень типа сборщиков проектов и контроля версий узнал, но потом чет приуныл с того что от проекта к проекту одно и то же говно. Сменил галеру, просидел год на проекте пятилетнем сделанном на Спринге, и чет по выходу с проекта оказалось что я толком нихуя нового и не узнал и всякие слова типа JPA, Spring Integration и прочие Boot и Security вообще темный лес. И как-то нехорошо это, 3 года опыта вроде как, Ванька Ерохин вон уже миддлом стал, а я джуниорскую поебень не осилил до сих пор.
796 1356113
>>56070
Вот курс неплохой: https://www.udemy.com/share/1000qYA0QecF9SRno=/
В нем, правда, про спринг клауд ничего нет, но это не страшно
797 1356142
>>56070

>пердолил Liferay


Надеюсь это было 6-ой liferay с 6-ой явой кек
798 1356174
>>56070
Такое возможно? Я вот безработный все еще выкурил несколько мануалов по хиберу, курс по спрингбуту с ютуба(letscode), дочитываю спринг ин экшн 4 и 5 с пройденным джаварашем.
799 1356183
>>56113
Cпасибо, анонче.

>>56142
6.2, седьмая джава. Вкатился вообще с 6 версией, под ведро кодил сначала. Сейчас на восьмой сижу.

>>56174
Ты не представляешь сколько существует говноконтор в которые ты уже можешь вкатиться без задней мысли чтобы начать набивать рабочий опыт.
2019-02-2715-23-05.png15 Кб, 541x448
800 1356257
Господа, есть один примитивный самописный парсер Wildberries, который отслеживает появление определенного размера на сайте с определенным интервалом, парся через jsoup таблицу размеров.

Подскажите, как правильно спроектировать приложение для дальнейшего возможного расширения.

Лично мне в голову лезет создание интерфейса "PageChecker" с методом "checkPage", а класс PageChecker переименовать в WildberriesPageCheckerImpl чтобы можно было добавлять другую имплементацию чекера, например, Ламоды.

Ну и SoundClipPlay переименовать в SoundClipPlayImpl, унаследовавшись от интерфейса, например, Notifier с методом "notifyApperence".

Я правильно рассуждаю? Что еще можно изменить?
801 1356386
Сап господа
Хочу вкатиться в java, сам знаю только c#
Дак вот вопрос кто работал с обоими языками, они ведь похожи?
802 1356897
Пацыки, использовать локи как флаги каких-то состояний норм идея или не очень?
803 1357163
Вот смотрите, я правильно понимаю, что DataSource это некая абстракция, позводяющая получать готовые коннекшены с БД?
DataSource хранит в себе ConnectionPool, который создаётся на сервере.
Теперь вопрос. Когда я в спринге задаю конфигурацию Datasource и описываю соединение с БД, на каком именно этапе сервер поймёт, что приложение использует датасорс и сконфигурит пул соединений? На каком этапе сервер, допустим, поймёт, что датасорса в прилодении не используется, а используется прямое подключение через jdbc и пул соединений поднимать не нужно?
804 1357169
>>56897
Приведи пример
805 1357229
>>57163

>на каком именно этапе сервер поймёт, что приложение использует датасорс и сконфигурит пул соединений



Тогда, когда ты попробуешь получить конекшен с этого датасурса.

>На каком этапе сервер, допустим, поймёт, что датасорса в прилодении не используется, а используется прямое подключение через jdbc и пул соединений поднимать не нужно?



Если ты датасурс не используешь, а идёшь напрямую в jdbc через драйвер менеджер - то сервер и не будет тебе поднимать никакого датасурса, даже если ты сконфигурил его.
806 1357233
>>57163
Блядь ну читай ты логи!
И сорцы смотри!
Тогда поймёшь что там твой спринг делает!
Можно прост использовать ждбс, можно подключить конекшен пул типо хикари
807 1357344
>>57169
Ну типа в методе берется лок по айдишнику какой-то сущности. В другом треде мы проверяем, есть ли лок на этот айдишник, и если он залочен, то кидаем исключение.
808 1357431
>>57344
Можно в JPA заюзать Pessimistic лок с timeout=0 при запросе, тогда, если поток запросит лок на уже занятый объект, то получит LockTimeoutException.
809 1357434
>>57431
Причем тут JPA?
810 1357441
>>57434
А ты пиши понятно, че тебе надо. Если ты говоришь про сущности и айдишники, то я и подумал про JPA. Попробуй с обычным локом и таймаутом то же самое, Lock.trylock может быть.
811 1357445
>>57441
Да я знаю как это делать, я спрашивал, норм ли эта практика или нет.
812 1357469
Как сделать однопоточный ThreadPoolExecutor, который при поступлении новой таски будет бросать старую?
813 1357496
Почему-то не работают инсерты в data.sql, причем файл исполняется, т.е. я пробовал вписать туда CREATE TABLE и INSERT и они работают, втф?
814 1357498
>>57496
Поправка: пробовал создать новую таблицу (успешно) и вставить в несуществующую (фейлится как и должно).
815 1357560
Сап. Подкиньте идею для библиотеки на Java, или подскажите где искать. Вкатился в спринг, но плохо понимаю потоки, reflection и т.д. Хочу догнаться по этим темам и заодно написать диплом. Времени ~3 месяца.
816 1357672
>>57560

>Вкатился в спринг,


>плохо понимаю потоки, reflection


Забудь про спринг пока йаву не вкуришь!

Про идею, делай игорю простую (времён денди) и голову не грей!
817 1357717
>>57498
Коммиты забыл
818 1357723
>>57717
Не, пробовал и с коммитами. Скрипт почему-то выполнялся до того как хибер создаст таблицы, т.е. он вставлял в старые таблицы, потом хибер их дропал и создавал заново. Как пофиксить порядок я так и не понял,разве что заменить data.sql на import.sql.
819 1357777
>>57672
сегодня же уволюсь и начну писать контру
820 1357877
Как же меня доебала эта многопоточность, ебанарот.
821 1357891
Как сочетать в 1 приложении springa Error Controller и ControllerAdvice для реста. Это реально вообще?
Контролер перехватывает 404 и вместо ответа в виде джейсона выдает страницу хтмля. Остальные эксепшены долетают видимо до эдвайса и выдается джейсон.
822 1357919
>>57891
Ох лол, я с помощью fetch а поймал респонс и распрсил его как джейсон. Оказывается сочетать можно. До этого выбивало страницу целиком.
823 1357931
Блядь, ебаный жавафх со совей ебаной конкуррентностью, пошли они нахуй если их же стандартные методы не работают блядь
824 1358765
>>32296 (OP)
Хочу шо нить по спрингу почитать.
Аноны, что по вашему мнению лучше мб читал кто нить
Spring Boot 2 Recipes или Spring. Все паттерны проектирования
ПС Spring in Action читал
825 1358900
Юзаю Spring и вот вопрос, что предпочтительнее:
Все сервисы, которые есть в приложении, пометить аннотацией @Service и инжектить в нужные места с помощью @Autowired или не помечать их как сервисы, а забивать через конструктор их экземпляры в нужные места?
826 1358954
Еще вопрос по Spring от другого анона.
Есть веб-скрвис, частично написанный на Spring и jpa. Слой Dao написан руками, без использования Repository. Как протестировать этот слой? Я понимаю, что нужно еще один persistence.xml с настройками in-memory db. Но в тестах не подхватывает entityManager bean с новыми настройками, а инжектит старый из production. Как решить?
827 1358979
>>58900
Сделать класс, в котором с помощью @Bean возвращать инстансы сервисов. Так вся конфигурация в одном месте
828 1359029
>>58900
Лучше пометить аннотацией и заинжектить. Это же Spring.
829 1359059
Может перекот?
830 1359178
>>58954
Если DAO написан руками то ты полюбому конфигурили DataSourse, верно? Так что тебе мешает сделать две конфигурации датасорса и инжектить для прода норм, а для теста какую нить H2. Можно даже профилировать типа если профиль - test, то инжектить h2, если прод то норм базу
831 1359337
>>58954
поиграйся с @Primary
832 1359356
Доброго времени суток, ситуация такая есть возможность попасть на работу в компанию Netcracker вопрос заключается в следующем в какой отдел работающие там или знакомые со структурой посоветовали бы попроситься? сейчас предлагают отдел миграции и иммиграции данных. На сколько это хорошая идея по мнению местных анонов идти в такой отдел?
833 1359543
>>59356
Идти в нетсракер в принципе идея так себе, разве что через их курсы на первое время.
834 1359595
что думаете по поводу работы в эклипс?
835 1359601
Хули гит такой ебанутый. Все через сосноль, все через жопу. Какие пулы мержы блять. Нахуя все так запутано делать.
Ебать я осилил жаву но с иногда трудом понимаю что там делать в этом сраном гите впринципе блять.
836 1359621
Поясните за oauth2.
Вот допустим я получил данные от фейсбука (например), и потом хочу зарегать пользователя себе в БД.
На основе чего мне делать пароль? Если кто то получит данные к коду то будет ясно из чего пароль создается.
Делать регистрацию не полностью автоматической, просить юзера сделать еще пароль? Смысл тогда в oauth2. Можно и так зарегаться.
837 1359705
>>59601
а Idea тебе для чего?
838 1359765
Может ли контроллер вызывать несколько сервисов подряд, учитывая что методы read-only, т.е. в транзакции они не участвуют? Например, надо получить List<A> из сервиса A, потом List<B> из сервиса B, потом конвертировать их в общий DTO в контроллере и передать клиенту List<DTO>.
839 1359792
>>59337
Лучше с @Qualifier.
840 1359793
>>59543
Почему?
841 1359795
>>59621
Oauth не для регистрации, а для аутентификации.
842 1359839
>>59601

>Хули гит такой ебанутый. Все через сосноль, все через жопу.


Сам ты пидор тупой через жопу!
Все нормальные пацаны через консоль выучили команды и делают по красоте!
А то сегодня у тебя божественная IDEA, а завтра богомерзкий Eclipse и ты блядь будешь опять читать мануал и гуглить где там и как коммит сделать.
843 1359841
>>59839
Уж лучше через консоль, чем через эклипс.
844 1359845
>>59841
Открываешь гит перспективу, подключаешь локальный гит (ссука сразу не может найти что ли?) файл открывает не от текущей директории а блядь от домашней папки сука бесит
845 1359882
>>59795
Но теоретически, я могу выдернуть данные и зарегать пользователя, записать в БД. Чем не вариант.
Правда все АПИ хотят реальный адрес сайта а не локалку.
Сейчас пердолюсь с shh. Посмотрю что получиться.
846 1359883
>>59705
Я полный нубас в гите, посяните как с ним связана идея.
847 1359884
>>59882

>зарегать пользователя, записать в БД


Зачем?
848 1359886
>>59884
Чтобы сделать ему учетку и потом дать делать что то в личном кабинете например, сохранять какую т освою хуету, которая отдельно для каждого пользователя.
849 1359887
>>59601
Качаешь себе GitKraken и не ебешься в жёпы, всё чинно-красиво драг энд дроп и подобная хрень. Один минус - не захочешь потом на соснольке прописывать, а это полезно ващета
850 1359892
>>59887
Ну я немного могу в соснольку. Но когда начинается всякое типо гит ребейз -1 ХЕАД~5 и блокнотики я ебал эту хуйню блять. Нахуй это так было делать то.
851 1359896
>>59892
Деды в терминале работали и нам велели. Один хуй, все эти ваши гиткракены и сорстри так же точно гит в бекграунде вызывают
852 1359897
>>59896
На вкус и цвет как говорится
бтв у самого за пол года только 1 раз кракен ебнулся и пришлось консолечку открыть.
853 1359907
>>59793
Овертаймы, большая текучка, в целом куча говнокодеров
854 1359909
>>59897
Ну честно сказать, я разве что мерджить/ребейзить из терминала не умею без хорошего diff тула, остальное типа коммитов/чекаутов там нечего уметь
855 1359960
>>59883
Вкури работу с гитов в консоле по официальному сайту!
Там на русском есть для дебилов
856 1359973
Нужно ли учить библиотеку swing?
857 1359977
>>59973
Конечно учи!
Потом работу сразу найдёшь хорошую!
858 1359984
>>59977
спасибо за ответ)
859 1360000
>>59977
А ты хорош.
860 1360009
Как бротли сжимать-разжимать без пердолинга?
861 1360041
Перекатите тред, черти.
862 1360070
Что писать в резюме если у меня нет опыта нихуя?
Сделал хеловорлд на спринге с БД и еще какой то хуетой типо реста + могу в ЖС немного (без фреймворков, реакт читаю сижу). Джаву кор на боле мене приемлемом уровне и алгоритмы несложные. Красно-черные деревья по памяти не напишу, но какой нить БФС осилю. Есть опыт работы манагером комерческого отдела и эконом вышка.
Что искать то куда податься.
Софт скилы норм, внешне нормис, могу пиздеть ни о чем и производить впечателние.
863 1360121
>>60070
Курсы какие-нибудь официальные проходил? Хоть на курсере, хоть на юдеми? Добавь их
864 1360133
>>60070

>Сделал хеловорлд на спринге с БД и еще какой то хуетой


У меня весь гит крудами забит, уже несколько тестовых заданий по 2 недели делаю а мне даже обратную связь не дают!
865 1360157
>>60133
Дай посмотреть? Мне тоже надо запиливать гитхаб.
866 1360185
>>60157
Что тебе мешает сейчас его запилить?
И залить туда свои хелоуворды?
867 1360282
>>60121
Неа, ничего такого.
868 1360283
>>60133
Круды то зачем плодить. Там 1 достаточно чтобы понять как работает.
869 1360285
>>60157
Деанон и т д. Я хз даже. Я туда даже бустрап прикрутил и на нем фронт .
870 1360390
Какой проект можно запилить на спринге и гибернейте, без спринг бута? Что-нибудь консольное?
871 1360402
>>60390
Тот же самый круд, только стартеры не используй и в мейне контекст создай
872 1360446
>>60402
Без спринг бута, потому что не хочу фронт рисовать и rest api пилить.
873 1360450
>>59960
Сразу после изучения свинга видимо. Следующий пункт.
874 1360451
>>60446
Ты ебанутый? Нахуя тебе спринг без апи или фронта.
875 1360457
>>60451
Например если привык к спринговым абстракциям @Scheduled, @Async и т.д, а сам http сервер не нужен, удобно.

не оп
876 1360459
>>60451
Для автоконфигураций и ioc, а ты думал зачем он?
877 1360541
>>32296 (OP)
Сап. Довольно странный вопрос: удобно ли использовать Spring Security для бекэнда - авторизация/регистрация/аутентификация и вот это вот всё, без веб клиента мобилки? Все гайды, которые видел (в том числе офицальный Spring'овый) работают с веб мордой. Если кто-то использовал, можете поделиться инфой или гайдами, как адаптировать Security, или подскажите, что можно прикрутить к Spring'у для решения этой задачи.
878 1360577
>>60283

>Там 1 достаточно чтобы понять как работает.


А через неделю вспоминать что там делать ага?
И гуглить сигнатуру основных функций
879 1360588
Это какой-то прикол?
880 1360629
Поясните за лямбды. Лично с моей говнокодерской точки зрения они перегружают код и сложны для прочтения, когда них делается что-то сложнее построчного вывода из коллекции в какую-нибудь консоль, например. И стандартные форы, где можно замечательно понимать, что делается построчно гораздо лучше, в случае когда твой код будет ещё кто-то юзать. Я не прав и лоу скилл без опыта, а батьки спокойно с полувзгляда считывают любую лямбду? Если да, то где её явно лучше юзать, чем классический подход.
881 1360844
>>60588
Про эксепшон хуй его знает, а по второй и третей всё просто.
В первом случае у тебя идёт перемножение двух интов, переполнение, а потом каст в лонг при присваивании.
Во втором у тебя сначала происходит явный каст i в long. Потом, при умножении long на int, происходит неявный каст int в long.
Приоритеты же, ёпта. Тайп каст по приоритету выше умножения.
882 1360846
>>60588
Во, по ексепшону. Короче, это ФИЧА.

>The native methods this function uses does take long values without reporting an error. You can call them using reflection. However you would have test whether they work for you on your system and using memory mapping this way, could confuse you more than be useful.


>The best approach is to create an array of MappedByteBuffers, e.g. 1 GB each in size and create a wrapper which hides this ugliness.


>While not technically a bug, it is BAD (Broken As Designed) Part of the reason this was done originally could be that 32-bit JVM could not support this, but I don't see why 64-bit JVMs still have this limit.



и
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=7147951
883 1360847
>>60844
Я был уверен, что Integer.MAX_VALUE имеет тип long.
image.png15 Кб, 1013x264
884 1360849
>>60847
В восьмой версии завезли беззнаковые костыли. Теперь хуй проссышь вообще, какой там Integer.MAX_VALUE. Но это жи жаба, хуле ты от неё хочешь.
катимся 885 1360857
Тред утонул или удален.
Это копия, сохраненная 12 марта 2019 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски