Двач.hk не отвечает.
Вы видите копию треда, сохраненную 24 мая 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
29 Кб, 614x327
Официальный™ тред Java #57 # OP #959011 В конец треда | Веб
FAQ:

Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ?
A:Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.

Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.

Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать?
A: Туториалы:
BEGINNER: http://myflex.org/books/java4kids/java4kids.htm
MEDIUM: http://www.tutorialspoint.com/java_technology_tutorials.htm
HARD: http://docs.oracle.com/javase/tutorial/

Книги:
- Head First Java, (2nd Edition) : Kathy Sierra, Bert Bates - для совсем нулячих простым языком.
- Core Java (9th edition) : Cay S. Horstmann, Gary Cornell - тоже для нубасов, но на серьёзных щщах.
- Thinking in Java (4th Edition): Bruce Eckel - для тех, кто уже умеет в программирование на другом языке, но хочет перекатиться.
- Effective Java (2nd Edition): Joshua Bloch - для тех, кто знает джаву, но хочет перестать писать костыли.
Больше здесь: http://www.proklondike.com/books/java.html
- Soft Skills: The software developer’s life manual : John Sonmez - сказки на ночь.

Видео:
https://habrahabr.ru/company/golovachcourses/blog/215275/ : 1000+ часов видео по Java на русском.

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

Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо?
A: Это очередной курс(выучи джаву за 60 секунд и получай 300к в месяц), основная цель которого - выкачать из тебя деньги.

Q: Пока читаю, все понимаю, а сам ничего сделать не могу. Что делать?
A: Практика, больше практики.
Уровня laba1.pas: http://codingbat.com/java http://codehunt.com
Чутка серьезнее: http://programmr.com/zone/java http://codingame.com/puzzles
Рулеточка: http://postimg.org/image/xdfbvgps9/
Олимпиадка: http://codeforces.com
Примеры той-проектов: http://eax.me/programming-language-learning/
Ежедневные задачки, разделены на три уровня сложности https://www.reddit.com/r/dailyprogrammer

Q: Я выучил кор, достаточно ли этого, чтоб взяли на работу?
A: Лол, конечно нет хотя некоторым всё же везёт.
Цикл статей что в каком порядке учить: http://dou.ua/lenta/articles/java-beginner-guide-1/ (заблочен РосКомПозором, юзайте прокси)

Q: Слышал, SQL знать надо обязательно. Где его учить?
A: Начни с малого: http://www.w3schools.com/sql/default.asp
Затем переходи к: http://www.sql-ex.ru/

Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут.
A: Не беда, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI
То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java

Q: Я готов к первому собеседованию.
A: Проверь свои знания здесь: http://www.quizful.net/test
И здесь: http://www.careercup.com/

Q: Вопросы на собеседование.
A: http://jsehelper.blogspot.ru/2016/01/blog-post_59.html : куча вопросов с ответами не всегда правильными
http://becomejavasenior.com/blog/2015/07/01/327-inter..

Q: Какие еще ресурсы можно почитать?
A: https://android-arsenal.com/ : android
https://google.github.io/styleguide/javaguide.html : google java style
http://blog.jooq.org/ : Java, SQL, and jOOQ
http://virtualjug.com/podcast/ : подкасты

Q: Где можно пообщаться на java тематику?
- В этом ITT треде.
- https://www.reddit.com/r/java : reddit
- http://stackoverflow.com/questions/tagged/java : платформа для вопросов и ответов

Список java фреймворков, библиотек и по на любой вкус:
https://github.com/akullpp/awesome-java

Шапка треда:
http://pastebin.com/37Ldgi60

Предыдущий: https://2ch.hk/pr/res/950088.html (М)
#2 #959040
Кто что использует для веб-проектов?
#3 #959059
>>959040
Heliantus Annum.
242 Кб, 503x711
#4 #959071
почему жава тормозит?
959078
#5 #959078
>>959071
Жава была специально создана, чтобы отмывать банковские деньги в IT. Нужно было чем-то обосновывать миллиардные траты на железо и инфраструктуру. Т.к. железо становилось все быстрее и быстрее, то потребовалось создать максимально уебанский язык программирования, чтобы никакой прогресс в железе не мог преодолеть его подводные камни.
962553
#6 #959085
>>959040
бамп темой (а то масонские заговоры уже пошли)

>Кто что использует для веб-проектов?

959100
#7 #959096
>>959040

> Кто что использует для веб-проектов?


GO
O
959105
#9 #959105
>>959096
Смотрел я на этот ГО, 100500 каких-то велосипедов, ничего толком нет путевого (я ожидал что-то типа джанги там, а там огрызки).
Такой же пустой хайп как и руби, только бюджет побольше.
И так вернемся к проверенным инструментам:

>Кто что использует для веб-проектов?

961648
#10 #959130
959164959185
#11 #959142
#12 #959164
>>959130
Play или Lift? или же Spring?
959175
#13 #959175
>>959164
Play, Akka HTTP
#14 #959185
>>959130
а на скале какие либы?
959375
#15 #959189
как сделать конектор, для подключения к БД?
саму базу поднял, а, вот, как связать её с java классом?
959205959244
#17 #959219
>>959205
я потому и обратился, что там не обнаружил ответа
ну, или же, в силу своего тупизма его не понял
959235
#18 #959235
>>959219
Напиши в гугле "подключение mysql java" и все, достаточно скопировать некоторые параметры и подставить свои логин пароль
#19 #959244
>>959189
import java.sql.*;
Connection connection = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
959246
#20 #959246
>>959244
dbUrl = "jdbc:mysql://localhost:3306/%tablename%"
959254
#21 #959254
>>959246
да, я это понимаю
проблема в том, какой именно проект выбрать?
для idea нашел, там все подробно рассказано
а для netbeans'a написано только: "выберите "приложение Java""
959263
#22 #959263
>>959254
Нахуй тебе какие-то проекты? Берешь гредл (или мавен) и хуячишь что тебе надо.
#23 #959280
>>957815
Слушай, я немного запутался окончательно с этими контроллерами. В общем, суть приложения такая - при запуске приложения делается проверка в базе, если ничего нет,
то делается запрос к api и добавляет в базу Photo с ссылкой на фотку и солом (день марсианский).

В общем, я пытаюсь как-то связать PhotoController с вызовом приложением, чтобы только один метод addPhoto вызывался. В нем бы делалась проверка на наличие чего-то в базе и потом новая фотка заносилась в базу.
Я понял что это делается через Rest, но как его связать с контроллером.
Извини, что заебываю, но ты единственный, кто помогает с этим гавном разобраться
https://github.com/Kabowyad/Test-Project/tree/api-test/src/main
#24 #959286
>>959011 (OP)

> A:Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.


То-то большинство тестовых заданий как-будто слизано с JavaRush. 30+ лвл, ни разу не пожалел насчёт вложения. Тот кто это писал явно не захаживал дальше десятого уровня.
959315
#25 #959313
>>959011 (OP)
Котаны, читаю Уоллса (Spring in action), как-раз дошёл до определения связывания обектов и охуел: Spring нужен для того, что бы мы могли программировать XML, когда программируем на Java? Аннотации отдельный разговор, если разрабы Spring забухают, то код с аннотациями соснёт при перекате на другой фреймворк.
959323959346
#26 #959315
>>959286
Так и есть. Сам когда-то проходил ради интереса, первые задания - пиздец на перепечатывания кода, но ведь они рассчитаны на совсем зелёных новичков, дальше идут вполне себе нормальные. Хотя я всё равно дропнул уровне так на 15, мне показалось слишком медленно, по книгам быстрее.
#27 #959323
>>959313
Тот факт, что в этой же книге тебе прямо капсом написали "Component Scan > Java Config > Xml" тебя вообще не смутил?
А вообще мне xml нравится. Очень удобно, централизовано. Если нет в проекте мудака, который не умеет импорты делать, то я выберу xml/groovy конфиг, а не скан.
959358
#28 #959324
Анон, что скажешь про курс "Beginner to Programmer: The Complete Java Developer Course" за авторством Tim'a Buchalka? Есть смысл на него время тратить или строго по шапке треда учиться?
Сам могу только на паскале калькулятор написать.
Курс мне подарили. Дарёному коню в зубы не смотрят.
959326
#29 #959326
>>959324
Я бы на туторилах учился. Ну или начал с С, если хочешь хард вей. Книжки по яве - почти всегда вода.
959334
#30 #959334
>>959326

>книжки по яве


Мне кажется, что бы закрепить основы самое то.
Но боюсь, что этот курс окажется той же книжкой только в браузере.
А почему все советуют начинать с С, если Ява это тот же С, только в прокаченный поправь, если не прав, по С качественнее туторы?
959341
#31 #959341
>>959334

>Мне кажется, что бы закрепить основы самое то.


Смотря что ты считаешь основами.

>А почему все советуют начинать с С, если Ява это тот же С, только в прокаченный


Ява с си имеет общего в основном синтаксис. Это никак не прокачанный си, слишком разные задачи.
Но если ты немного поучишь си, то у тебя не будет в будущем всяких глупых вопросов вроде "почему new String("хуй") == new String("хуй") - false". Ключевое слово - немного.
#32 #959344
На джаве не пишут веб?

>Кто что использует для веб-проектов?

959354960701
#33 #959346
>>959313

>то код с аннотациями соснёт при перекате на другой фреймворк.


Нет, если они бухают с другими разрабами фреймворков которые поддерживают те же аннотации (как и xml теги).

А вообще xml - самое бестолковый и переусложненный вид настроек. Впрочем как и все в джаве. Кроме стандартной либы.

Там же как у макак - чем мудренней и запутаней - тем солиднее и пускай КПД к жопе сводится.
Джава жива только лишь из-за мобильников.
959349959355
#34 #959349
>>959346
Всмысле "только из-за" мобильников? Почему тогда все предприятия крупные джаву используют? Да, во многом не удобно, да, приходится писать свои библиотеки под свои нужды. Н почему тогда другие языки почти не используют в крупных предприятиях, если джава так плоха?
959369
#35 #959354
>>959344
Spring MVC.
#36 #959355
>>959346

>А вообще xml - самое бестолковый и переусложненный вид настроек.


Хуле там переусложненного-то? имя бина и его класс? Охуеть сложность.
959370
#37 #959358
>>959323

> "Component Scan > Java Config > Xml"


А суровая реальность строго наоборот. А когда дело доходит до неймспейсов так вообще.
959360
#38 #959359
>>959011 (OP)

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


>A: Без английского ты не нужен и можешь смело идти нахуй.



А хули тут все аноны на русском общаются? Шапка треда на русском, да весь /pr на русском. Неужто никто не может в английский?
959380
#39 #959360
>>959358
Ничего не знаю. Я уже года два проектов, где основная конфигурация на xml, не видел.
Ну мы маршруты для кемла пишем в xml, потому что ява дсл - дерьмо.
#40 #959369
>>959349
Потенциал языка измеряется в том, сколько новых проектов на нем создается.
А легаси код ничего не решает (вон кобол до 2006 года был в топе по количеству написанного кода, но в 2006 ты о нем и не слышал, так же с джавой, ее спасли только мобильники)
#41 #959370
>>959355
Сравни какой-нибудь TOML с XML (какие портянки там получаются)
#42 #959374
Scala или Kotlin? На какой стул сядешь ?
959383959391
#44 #959380
>>959359
Много кто может в английский. Только твоя логика тут непонятна. Зачем им общаться на английском на русской борде?
Вся нормальная литература, материал в интернете, сообщество -- преимущественно на английском. Соответственно, если ты не можешь в английский, то очень многое теряешь.
959394
#45 #959383
>>959374
Возьму скалу дроченную срублю котлин точенный.
#46 #959391
>>959374
Для реальной разработки - Kotlin.
Для себя - Haskell.
21 Кб, 400x300
#47 #959394
>>959380
Ну-ка, забацай что-нибудь на английском, пёс.
959397959400
#48 #959397
>>959394
го ту факин хорсес, битч
#49 #959400
>>959394
БОЛЬШИЕ ДЯДИ В ПОДКАСТЕ СКАЗАЛИ ЧТО АНГЛ НАШЕ ВСЕ
@
ПОКЛОНЯЕШЬСЯ ЭТОЙ ИДЕИ
@
СИДИШЬ ВМЕСТЕ С ТЕМИ ДЯДЯМИ В ГУГЛ-ТРАНСЛЕЙТ
#50 #959403
Вот написал REST сервис на Jetty+Jersey:
http://pastebin.com/e2ZgGf5z
http://pastebin.com/BNA6sdXy
http://pastebin.com/1HHgSsbB
Не могу понять, как мне туда добавить статическое содержимое (HTML/CSS/JS)?
Допустим, в src\main\resources\web лежит страница info.html, в JAR-файле она будет в web\info.html.
И как ее показать?
959411959416960030
#51 #959410
>>959011 (OP)

> На джаве фриланса нет.


C R O S S O V E R
R
O
S
S
O
V
E
R
959448
#52 #959411
>>959403
Возьми го, не мучайся с этой жопой
959412
#53 #959412
>>959411
Некроссплатформенная параша без женериков не нужна.
959413959414
#54 #959413
>>959412

>без женериков


Джавамакаки в жизни не юзали нормальных дженериков. Этот сблев, который в джаве, хуже говна.
мимокджавист
961628
#55 #959414
>>959412

>Некроссплатформенная


Враки.

>без женериков


Это единственное что тебя останавливает, чтобы страдать в джаве?
На джаве простой веб не пишут (ты даже для ембеддед сервера взял сервлеты - насколько там надо мозги на Java EE свернуть)?

Ну натянешь потом еще спринг и хибернейт и не влезет это говно в твою vps
959415959779
#56 #959415
>>959414

>чтобы страдать в джаве?


Я серьезно, хотя джава огромна, но шаг в сторону и ты с продуктом один на один.
Либо как все юзай war - либо забудь про ембеддед, максимум лабы найдешь как пример.

Бесит го - возьми питон (джангу). Еще спасибо скажешь
959432
#57 #959416
>>959403
Ладно, я тебя достаточно помучил, но все таки открой для себя гугл

http://stackoverflow.com/questions/10284584/serving-static-files-w-embedded-jetty>>959403
959791
#58 #959432
>>959415
Ты ебанутый?
Нет правда ты кроме хеловорда хоть что то писал на явке
959451959713
#59 #959448
>>959410
Ну и много ты там заработал?
#60 #959451
>>959432
Он и на го ничего кроме хеллоуворлда не написал.
959713
#61 #959604
Поясните за скул, нахуя его учить, если сейчас почти все юзают orm? Или я не прав?
#62 #959608
>>959604
Для какой-то сложной хуйни всё равно придётся строкой писать. ORM это костыль, а полноценного и универсального DSL ещё не сделали.
959755
#63 #959615
>>959604
У нас, например, используется solr, эта хуйня для индексации данных требует sql-запросы. Для каких-то простых действий удобнее написать простенький запрос на sql или jpql. Возможно где-то вы захотите использовать фишки вашей конкретной бд. Да мало ли чего может случиться.
959833
#64 #959677
>>959604
я щитаю так - решить 50 задачек на sql-ex.ru - и тебе хватит этого на 95% на работе.
Для всего остального будут искать именно специалиста SQL узкого профиля, а тебе оно надо?
#65 #959712
>>959604
А как ты собрался орм квери писать, если ты даже sql не осилил?
#66 #959713
>>959432
>>959451
Это вы ебанутые, топите за джаву, так парню бы на вопрос ответили. Нет же, задницами попалыхали тут, тролля порадовали.
959748
#67 #959731
Сап, пацаны. Решил ебашить рест-сервис на спринге. Но вот как теперь это всё тестить. Заебашил метод, который принимает дтошку @RequestBody, но как запрос теперь сделать с этой дтошкой? Просто сделать json со структурой как моя дтошка? И как вообще потом через ангуляр запросы делать? Тоже что ли джсон отправлять?
959745960707
sage #68 #959745
>>959731
Тестирование - это для пидоров.
959758
#69 #959748
>>959713
Двачую.
мимо_гугл_кун_сша
732 Кб, 1853x2048
#70 #959750
Поясните разницу между Java и JavaScript? Что лучше учить, или Python?
мимо_с++_джуниор
959751959752
#71 #959751
959753
#72 #959752
>>959750
У тебя устаревшая картинка. И Java и JavaScript скоро канут в лету. Учи либо Lisp, либо Haskell, за ними будущее.
959783
68 Кб, 520x520
#73 #959753
959759
#74 #959755
>>959608
lukas.jpg
#75 #959758
>>959745
Бля. Ну ты понял меня. Я не про ТЕСТИРОВАНИЕ. Я про отправление запросов
959762
513 Кб, 657x516
#76 #959759
959764959818
sage #77 #959762
>>959758
Ну json, конечно. Настрой для этого какой-нибудь gson или jackson.
Вообще, нахуя тебе Spring для rest? Взял бы православный Jersey, я бы тебя тогда даже пидором называть бы не стал.
959781
#79 #959779
>>959414

>Враки.


Ставишь анус, что любой пакет на ГОвне соберется на винде без pkg-config?

>Это единственное что тебя останавливает, чтобы страдать в джаве?


Уебывай в свой тред, Илюша. Здесь обсуждается Java, а не ГОвно.
959787959792
#80 #959781
>>959762
Алло, спринг за тебя уже все настроил. Только шли структуры верные и все.
А для именно тестов у спринг мвц есть класс MockMvc.
#81 #959783
>>959752

>Lisp


>за ними будущее


Как там в 1958 году?
959788959789
#82 #959787
>>959779
Я бы назвал главной проблемой го - молодость. Нормальной иде нет, бестпрактис не выработаны, с тулчейном тоже еще не разобрались. Т.е. все проблемы не в языке, а в экосистеме. В языке лично мне только эксепшнов не хватает.
#83 #959788
>>959783
Я тебя умоляю, это же платина уровня "программирование - не твое, попробуй яваскрипт".
#84 #959789
>>959783
В том то и дело, что лисп до сих пор живее всех живых. Сколько прикладных языков типа дельфи и фортрана, перла и кобола уже умерло, а лисп здравствует.
959793
#85 #959791
>>959416
Ты сам-то пробовал эти примеры? Ни ResourceHandler, ни DefaultHandler не могут выдавать статику из JAR-файла. Внешние файлы из файловой системы выдать могут, а вот из JAR-ника - нет.
959795959796
#86 #959792
>>959779
Если дергать какой-нибудь винапи то ты обосрешься со всем. Не загоняй в абсолют, глупое ты дитя с приступами юношеского максимализма, даже джава нихера не 100% кроссплатформенная.

Что джава что го - два куска неповоротливого говна, только для первого раньше были тулзовины типа IDEA, то сейчас и го оброс IDEA - кодить на нем стало в разы приятней, чем на жабе
#87 #959793
>>959789
Так-то и фортран, и кобол, и делфи живее всех живых. То что ты не используешь их - еще ничего не значит.
#88 #959795
>>959791
Господи, да возьми ты Spring Boot и не еби мозги ни себе, ни людям. А хочешь копаться в конфигах - учись гуглить.
959800959804960709
#89 #959796
>>959791
Что тут у нас? Кто-то пытается в нагруженном веб-приложении статику из JAR показывать - ты совсем долбаеб?

Бля даже индусы знают, что контейнер распаковывает war-ники, откуда такие эксперты тут
959801959802
#90 #959800
>>959795
А еще сервер приложений установи... В том и цель, чтобы все быстро работало, не требовало деплоя и было минимум зависимостей. Никакого Spring и EJB, разумеется.

В очередной раз убеждаюсь, что здесь сидят одни макаки, которые умеют только бездумно копипастить со StackOverflow. Без понимания принципов работы.
959803
#91 #959801
>>959796
Ты не знаешь, что такое Embedded Jetty?
#92 #959802
>>959796
Даже индусы знают, что статику надо раздавать nginx'ом. Но это никак не мешает существованию WebJars.org. Иди выебывайся в другой тред.
959805959807
#93 #959803
>>959800
Spring Boot как раз и стартует на ембеддед сервере. И сделан именно для хуяк-хуяк - рест. Особенно в пачке с spring data и spring data rest.
#94 #959804
>>959795
Весна сплошная магия на магии. Все хорошо если у тебя CRUD, но как только нужно что-то по-серьезней и вне рамках фантазий разрабов - твоя жизнь превращается в ад.

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

Возьми го - и сам слепи из "кусков" независимых. Ладно еще в питонах, пхп или жс понимают как строить современный веб, но в джаве же одни корпаративные индусы и них эволюция пошла по другому пути.
959809959811
#95 #959805
>>959802
Какое грозное кукарекание, в переводе на человеческий язык означающее "Я тупой мудак и быдлокодер и не знаю ни хуя".
959812
#96 #959807
>>959802
Лол, жаба такой костыль, что индусы тянут nginx и сюда.
В чем профит разработки на жабе? Пострадать и взять nginx?
Пхпэшники обладируют стоя
#97 #959809
>>959804
Если для тебя спринг - это магия, то ты очень мало о нем знаешь. Спринг простой как двери. Ядро спринга - очень легкое и удобное. Спринг дата построен на одном абстрактном классе и простом квери генераторе. Спринг мвц вообще весь на диспетчер сервлете и трех адаптерах висит. Но ты и это не осилил, тебе и di фреймворк - магия.
959816
#98 #959811
>>959804
RESTful веб-сервис + front end к нему это нечто нестандартное?
У меня уже есть готовое решение, написанное исключительно на сервлетах/JSP и работающее под Томкатом.
Хочу просто улучшить его.
959813
#99 #959812
>>959805
А я вижу яркий подрыв пукана.
#100 #959813
>>959811
Вот я тебе и говорю: спринг мвц либо сразу бут. Это очень удобно, тебе понравится. Посмотри туторилы прямо на офф сайте, там есть один с именем прямо из твоего вопроса.
959822
#101 #959816
>>959809

>Спринг простой как двери, Спринг мвц вообще весь на диспетчер сервлете и трех адаптерах висит


>Ставишь брэкпоинт в контроллере и видишь стектрейс из ~50-70 вызовов.



"Индусские простые двери". Не братишь, спринг еще и тормозит звездец
https://www.techempower.com/benchmarks/#section=data-r13&hw=ph&test=plaintext

Нахуй заберай эту парашницу, которая хеллоу-ворд почти как скриптовые языки отдает
959817959820
#102 #959817
>>959816
А знаешь что скажет типичный Ванька-индус? Он скажет "и че, время программиста дороже железа" и будет прав. Джава крутится в таких "менфреймах" что там срали на производительность.
Джава != производительность. Просто почему ынтерпрайз не берет скажем пхп или питон - из-за косяков многопоточности и все. А так по железо их бы устраивало.
#103 #959818
>>959759
Что означает этот индус, в чем мулька этой картинки?
959819959834
#104 #959819
>>959818
Ну как. Все смешные стереотипы о яве времен нулевых в одной картинке. Я каждый раз смеюсь.
#105 #959820
#106 #959822
>>959813
На хабре пишут, что спринг тяжеловесный, приложения долго стартуют, куча зависимостей. И лучше Embedded Jetty.
У меня приложение нечто вроде онлайн-игры, требуется:
- высокая нагрузка (обновление страницы хотя бы 25 раз в секунду, для нескольких тысяч пользователей);
- быстрая NoSQL база (здесь еще не сделал выбор);
- использование ANTLR (пользователь пишет код на особом языке, который используется для управления объектами);
- на front end используется canvas (пока в 2D), с большой картой, переход на которой должен быть без задержек.
959826959831
#107 #959826
>>959822
Добавь спринг кор в проект и сделай mvn dependency:tree. Долгий старт - следствие компонент скана по куче jar файлов и проксирования бинов, но если не использовать их - платить будет не за что.
Сложное положение на чистых сервлетах ты не напишешь в любом случае - это позапрошлый век. А хочешь микросервисный шлак для тысяч запросов - и правда посмотри в сторону го или реактивного спринга, там должно быть лучше это все, но он в бете только
959835
#108 #959831
>>959822
vert.x
#109 #959833
>>959615

>solr


>требует sql-запросы


>требует


oh you
#110 #959834
>>959818
Это суть джявы.
#111 #959835
>>959826
можешь посоветовать литературу по спрингу?
959837
#112 #959837
>>959835
Документация > туторилы > Spring in Action.
959840
#113 #959840
>>959837

>Spring in Action.


Двачую.
С другой стороны спринг НИНУЖОН.
#114 #959864
Посоны, проблема следующая.

Поднят Wildfly 10. Реализовано небольшое приложение. Имеется Stateless бин с инжектированным EntityManager. Когда выполняю select запросы - все работает нормально.
Как только пытаюсь выполнить persist паадет исключение

TransactionRequiredException WFLYJPA0060 Transaction is required to perform this operation

Бин отмечен одной лишь аннотацией - Stateless. Судя по докам этого должно быть достаточно, т.к. по умолчанию включается CMT режим управления транзакциями.

Однако эта блядь все равно не создает новых транзакций!

БД - MySQL.
Wildfly запущен в standalone режиме.

Если нужна еще какая инфа - спрашивайте, предоставлю. Гугл подсказывает только то что транзакции должны работать нормально - и никто с похожей проблемой не сталкивался
959876
#115 #959876
>>959864
Ну может @Transactional
959877
#116 #959877
>>959876
Не помогает.

Сейчас расковырял свой же код - в методе бина перед собственно персистом выполняется чтение из базы (через find у энтити менеджера), что в теории может приводить к закрытию транзакции, хотя это полный бред.
959883
#117 #959883
>>959877
Смотри стек исключения
Отталкиваясь от стека начни ставить брэкпоинты.
Изучай (страдай, джава же, там будет туча абстракций)

Какой типа таблицы?
959946
#118 #959921
Ребят, тыкните носом, что нужно знать. Задача такая:
есть CSV фаил, с большим кол-вом данных. Нужно его отсортировать по третьему ряду, однако при этом сказано, что наш компьютер не обладает достаточным кол-вом оперативной памяти, из этого следует, что мы не можем просто вывести всю инфу в массив и отсортировать там. А должны делать это прямо в этом CSV фаиле. Какие мысли? У меня проблема именно с реализацией всего этого без использования массива, в котором можно было бы все это реализовать. Есть мысли о создании нового CSV фаила, и добавлять туда по одной строке с минимальный значением в 3 ряду за один проход по исходному, и т.д пока не будет выведены все. Но это выглядит очень затратно и глупо. Какие, более оптимальные варианты существуют?
959947
#119 #959946
>>959883
Да, нужно было по внимательнее свой код поковырять.
Тот самый find и падал с исключением.
Самое интересное что исключение правильно обрабатывается и пишется в лог. Проблема в том что wildfly не написал в лог это исключение, поэтому я его и не замечал
959960
#120 #959947
>>959921
Вон из профессии.
959956
#121 #959956
>>959947
конструктив?
959963
#122 #959960
>>959946
Разобрался с логированием. Не правильно передавал аргументы в метод логгера error() - там первым аргументом идет Message а не Throwable - в итоге запись не было видно.

Блять все из-за таких мелочей, а столько гемороя что я уже в реальности сомневаться стал
#123 #959963
>>959956
Конструктив: даже школьник додумается сделать merge sort.
959964
#124 #959964
>>959963
сразу после своего поста, пришла эта идея, я не так уж безнадежен. Спасибо за совет)
959982
#125 #959982
>>959964
Иди нахуй.
959991960013
#126 #959991
>>959982
хуево быть дегенератом, да?
959995960013
#127 #959995
>>959991
Тебе видней по очевидным причинам
959998
#128 #959996
Привет, джаваны. Пришлось мне тут столкнуться с JSON ответами и вот вопрос: какую либу использовать? Какую использовать моветон, а какая считается классикой?

На сайте json хуева гора библ, но какую взять - хз.
Ткните носом. Спасибо
#129 #959997
>>959996
алсо, смотрю в сторону json-simple
#130 #959998
>>959995
очевидно тут только то, что ты омежка-обиженка-битард, лол
960002960013
#131 #960002
>>959998

>КУДАХ БАБАХ КУАРЕКУ


Ясно.
960013
#132 #960003
>>959996
Иди нахуй.
960013
#133 #960013
>>960003
>>960002
>>959998
>>959991
>>959982

Введите модерацию в тематике, уберите кричащих инвалидов
960016
#134 #960016
>>960013

>Введите


Нагибайся :3
#135 #960028
>>959996
Джексон используй.
#136 #960030
>>959403
Разобрался, вот так все работает:
http://pastebin.com/6HeTsQRR
DefaultServlet выдает статику, Jersey - REST.

У Spring, как я понимаю, вот этот компонент дает аналогичные возможности:
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jetty
Но там какие-то свои аннотации вместо JAX-RS. Неудобно.
#137 #960032
>>959996
gson или jackson
См. также обзор JSON парсеров от люксофта: https://habrahabr.ru/company/luxoft/blog/280782/
960034960102
#138 #960034
>>960032

>люксофт


> https://habrahabr


Феерический дегенерат.
960038
#139 #960038
>>960034
Это корпоративный блог, наркоман. На хабре у всех такие есть.
#140 #960039
джаваджедаи, подскажите пожалуйста.
я вот запилил по гайду https://medium.com/@gustavo.ponce.ch/spring-boot-spring-mvc-spring-security-mysql-a5d8545d837d#.awgevgne0
сие приложение с авторизацией и регистрацией.
а вот если я хочу что бы я еще мог авторизироваться например не только под ADMIN(как в примере запилиено), а например еще под REG_USER?
я вот в бд добавил пользователя присвоил ему роль REG_USER.
в LoginController.java добавил метод homeRegUser() с @RequestMapping(value="/reguser/home", method = RequestMethod.GET)
мне теперь надо в классе SecurityConfiguration.java в методе configure(HttpSecurity http) что-то менять или как?
подскажите плез
960046
#141 #960046
>>960039
А проверить что уже работает ты не догадался, чудило?
Должно работать с тем конфигом без изменений, ибо

>.anyRequest().authenticated()


пропускает любой запрос от аутентифицированного юзера (в /admin/ не пропустит - там другое правило не даст).
960048
#142 #960048
>>960046
ружище я проверил. все именно так кк ты говоришь, когда заходишь под другим пользователем выкидывает ошибку. так и должно быть, но как мне показать например /reguser/home, если я авторизируюсь под REG_USER? вот в чем проблема немножко не понимаю в какю сторону копать. Т.е. если под админом логинюсь. он мне показывает /admin/home, а если под reguser то /reguser/home
960325
#143 #960102
>>960032
спасибо, Анон
#144 #960114
>>959011 (OP)
Здраститя. Мне требуется распечатать элементы стека, какой вариант православнее/быстрее?
while(stack.peek()!=null)
System.out.print(stack.pop()+" ");
или
for(Iterator it = stack.iterator();it.hasNext();) {
System.out.println(it.next());
}
????
#145 #960115
>>960114

>stack


Deque<Integer> stack = new ArrayDeque<Integer>();
Если что.
#146 #960117
>>960114
for(Iterator it = stack.descendingIterator(); it.hasNext();)
слоуфикс
960125
#147 #960125
>>960117
for (Integer it : stack) {
System.out.print(it + " ");
}
Хотя вот так.
Ну короче вариант с итератором на 1-2 показывает мс, через поп 0
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73
71 61 53 43 37 29 19 13 7 3
2
71 61 53 43 37 29 19 13 7 3
0
Выходит лучше поп юзать?
960126960159
#148 #960126
>>960125
Хотя хз, теперь одинаково по 1. Нет разницы?
#149 #960129
>>960114
Если уж разоряешь стэк и пытаешься байтоёбить, то зачем тебе лишняя проверка?
Integer it = null;
while((it = stack.poll()) != null) {
System.out.println(it);
}
960135
#150 #960135
>>960129
for(int i=0;i<100;++i){
for (Integer it : stack) {
System.out.print(it + " ");
}}
Выдаёт 44мс
for(int i=0;i<1000000;++i) {
Deque<Integer> ttt = stack;
while (tmp.peek() != null)
System.out.print(tmp.pop() + " ");
}
Выдаёт 13мс. Там такой прирост большой получается? Ну да, не нужна,не подумал, я только учусь .
960139
#151 #960139
>>960135

>такой прирост большой получается?


Да т.к. в итераторе на 3 проверки больше (hasNext, на позицию курсора и на защиту от параллельной модификации)
960141
#152 #960141
>>960139
Круто, не знал. То есть если тебе не важно состояние стека, ну типа дальше нигде он не используется и служит как вспомогательная хуета внутри метода, то всегда лучше использовать цикл+полл?
960145960150
#153 #960145
>>960141
Так-то прирост не маленький, for(int i=0;i<1000000;++i) сделал, получилось
78162
13(походу как раз и з-за убирания лишней проверки ускорилось), в 6к раз быстрее что ли, лол.
960147
#154 #960147
>>960145

>проверки ускорилось


А, там тоже 13, думал больше было.
#155 #960150
>>960141
Сложный вопрос. На твои замеры очень сильно влияет System.out.print. Если заменишь на какое-нибудь банальное действие вроде присваивания, разница не будет такой уж сильной.
960151
#156 #960151
>>960150

> System.out.print. Если заменишь на какое-нибудь банальное действие


Заменил на пустоту, выдало
169
4
960152
#157 #960152
>>960151
Ну вайл я как у тебя сделал, а не как было
for...{
...
while((it = stack.poll()) != null){
//System.out.print(it+" ");
}
}
4мс
960153
#158 #960153
>>960152
А с итератором 169
960156960157
#159 #960156
>>960153
Что-то у тебя цифры какие-то жуткие. У меня для пустоты разница не больше миллисекунды
960158960159
#160 #960157
>>960153
for(int i=0;i<1000000;++i){
for (Integer it : stack) {
//System.out.print(it + " ");
}}
169мс
Ну в общем-то так и казалось, просто не думал, что настолько разница дикая. Зато теперь знать буду, что с итераторами аккуратно надо, может сильно замедлить работу.
#161 #960158
>>960156
long startTime = System.currentTimeMillis();
for(int i=0;i<1000000;++i){
for (Integer it : stack) {
//System.out.print(it + " ");
}}
long estimatedTime = System.currentTimeMillis() - startTime;
System.out.println();
System.out.println(estimatedTime);
Может что-то не так делаю?
#162 #960159
>>960156
Ну и у меня внутри стека 1000 элементов ещё мб. На мелких значениях разницы не видно, да.
>>960125
Тут было 2 0, а когда 1 1 и тд
960163960164
#163 #960163
>>960159
Тто есть если я правильно понимаю, ибо нубас тот ещё, что в случае с итератором у нас за O(N) обращение к элементу идёт, а с полл за O(1) ну или типа того.
#164 #960164
>>960159
А как ты замеряешь время для poll ? Ты 1000000 делаешь push и вычитаешь разницу?
960165
#165 #960165
>>960164
startTime = System.currentTimeMillis();
for(int i=0;i<1000000;++i) {
Deque<Integer> tmp = stack;
Integer it = null;
while((it = stack.poll()) != null) {
//System.out.print(it+" ");
}
}
estimatedTime = System.currentTimeMillis() - startTime;
System.out.println();
System.out.println(estimatedTime);
960166
#166 #960166
>>960165
ЛоЛ, блядь, у меня ошибка там. После первой итерации там тупо пустой стек, надо вот тут вместо it = stack.poll() it = tmp.poll(), а я и ждумаю какогто хуя такие значение получаются.
960169
#167 #960169
>>960166
Анон, ну я хз, всё ранво вот такой результтат
148

3
Вот то, что внутри стека лежит
997 983 971 953 941 929 911 887 881 863 857 839 827 821 809 787 769 757 743 733 719 701 683 673 659 647 641 619 613 601 593 577 569 557 541 521 503 491 479 463 457 443 433 421 409 397 383 373 359 349 337 317 311 293 281 271 263 251 239 229 223 199 193 181 173 163 151 139 131 113 107 101 89 79 71 61 53 43 37 29 19 13 7 3
960170
#168 #960170
>>960169
public static void main(String[] args) {
Deque<Integer> stack = test();//тут то, что скинул
long startTime = System.currentTimeMillis();
for(int i=0;i<1000000;++i){
for (Integer it : stack) {
//System.out.print(it + " ");
}}
long estimatedTime = System.currentTimeMillis() - startTime;
System.out.println();
System.out.println(estimatedTime);
startTime = System.currentTimeMillis();
for(int i=0;i<1000000;++i) {
Deque<Integer> tmp = stack;
Integer it = null;
while((it = tmp.poll()) != null) {
//System.out.print(it+" ");
}
}
estimatedTime = System.currentTimeMillis() - startTime;
System.out.println();
System.out.println(estimatedTime);
}

148

3
Короче я хз.
#168 #960170
>>960169
public static void main(String[] args) {
Deque<Integer> stack = test();//тут то, что скинул
long startTime = System.currentTimeMillis();
for(int i=0;i<1000000;++i){
for (Integer it : stack) {
//System.out.print(it + " ");
}}
long estimatedTime = System.currentTimeMillis() - startTime;
System.out.println();
System.out.println(estimatedTime);
startTime = System.currentTimeMillis();
for(int i=0;i<1000000;++i) {
Deque<Integer> tmp = stack;
Integer it = null;
while((it = tmp.poll()) != null) {
//System.out.print(it+" ");
}
}
estimatedTime = System.currentTimeMillis() - startTime;
System.out.println();
System.out.println(estimatedTime);
}

148

3
Короче я хз.
960171960172960202
#169 #960171
>>960170
Так у тебя по-прежнему пустой стек после первой итерации.
#170 #960172
>>960170

>Deque<Integer> tmp = stack;


Ты просто ссылку передал и опустошил же свой stack
Тогда уж
tmp = new ArrayDeque<Integer>(stack)
Только время конструктора надо вычесть
960174960175
#171 #960174
>>960172
for(int i=0;i<1000000;++i) {
ArrayDeque<Integer> tmp = stack.clone();
Integer it = null;
while((it = tmp.poll()) != null) {
//System.out.print(it+" ");
}
}
121

155
Да, всё ок. Видимо разницы нет принципиальной, лучше использовать итератор?
#172 #960175
>>960172

> время конструктора надо вычесть


Ну хотя как нет,
131

66
Или я опять не так что-то сделал? Сколько у етбя? И как ты поступаешь обычно? Итератор всегда и мозги не ебать?
960179960180
#173 #960179
>>960175
С итератором код чище, поэтому юзай его.
960180
#174 #960180
>>960175
for(int i=0;i<1000000000;++i) {
ArrayDeque<Integer> tmp = stack.clone();
//Integer it = null;
//while((it = tmp.poll()) != null) {
//System.out.print(it+" ");
//}
}
Блин, но если ещё по два нуля добавить, то видно, что львиную долю конструктор занимает.
6181

4022
>>960179
Да ок, по таким же соображениям и юзал их всегда в общем, просто что-то запарился, хз.
960188
#175 #960182
>>960114
[code lang="scala"]
val deque = new java.util.ArrayDeque[Int](100)
(1 to 100).foreach(deque.add)
deque.forEach(println)
[/code]
960189
#176 #960188
>>960180
Да, по другому сделал без циклов и тд, тупо большой массив подаю, разница 0-1 мс. Корчое итераторы форева. Спасибо.
76 Кб, 600x346
#177 #960189
960193960197
#178 #960193
>>960189
Лол.
#179 #960197
>>960189
И читается в сто раз лучше.
public static void main(String[] args) {
ArrayDeque<Integer> stack = test();
stack.forEach((n)->System.out.print(n +" "));
}
Анон, а можно как-то покрасивше записать последний форич?
960198960201960206
#180 #960198
>>960197
Ну типа как тут
stack.forEach(System.out::println);, только чтобы через пробел было.
#181 #960201
>>960197

>И читается в сто раз лучше.


В каком месте?
960202960204
#182 #960202
>>960201
По сравнению с этим.
>>960170
960210
#183 #960204
>>960201
Ну с вайлами, поллами и прочим типа. И скорость такая же, и коротко записать модно и вообще . Итераторы тема короче.
960210
#184 #960206
>>960197
Ну, лямбду красивше не сделаешь. Может так?
stack.stream().map(x -> x + " ").forEach(System.out::print);
960211960213
#185 #960210
>>960202
>>960204
А, ну так-то ясен хуй.
#186 #960211
>>960206
Не, это оверинжениринг уже какой-то. Красивее не в смысле чтобы побольше всего крутого было, а в смысле чтобы проще записывалось и тд, не так выразился короче. Ну я думал мало ли в явеможно как-то вроде этого, а я не в курсе просто
stack.forEach(System.out::print, delimiter=" ");
или SyntaxSugarPackage.map(stack,String).join(" ")
960221
#187 #960213
>>960206

>stack.stream().map(x -> x + " ").forEach(System.out::print);


>.map(stack,String).join(" ")


А, ну лол, это ноо и есть возхможно, невнимательно глядел.
#188 #960216
Возвращаюсь сюда, поковыряв целую кучу вопрос на стэке про json и жабу. Вот распарсить простецкий json оказалось легче простого - но только если там один массив. А мне нужно распарсить json с 4 или 5 вложенными массивами. Получается распарсить только один - тот, в который все вложены. Пиздец какой-то
960225
#189 #960221
>>960211
А, не. Проще уже не будет. Если идти через Collectors.joining(" "), он тут же сиранёт, что у тебя инты, а не строки и придётся в любом случае map для каста вызывать.
Если идти через reduce, то будет неэффективная срака навроде reduce("", (x,y) -> x + " " + y, String::concat)
А ещё в итоге у тебя и там и там будет String, который придётся отдельно обернуть Arrays.stream(String::toCharArray) чтобы вызвать forEach(System.out::print). Нет пути
960223
#190 #960223
>>960221

>Нет пути


Ну и ок, не очень то и хотелось, так вполне ок.
#192 #960229
>>960225
смотри, вот мой json

http://pastebin.com/rPKQUp6T

И вот всё, что у меня получилось, это дернуть содержимое ключа "def" и пары его ключей до начала вложенного массива.
Как выдернуть, например, из массива ключи tr и другие???
960249
#194 #960264
>>960249
выглядит вроде как надо. а чистая Java как?
960272960273
#195 #960272
>>960264
Как земля.
#196 #960273
>>960264
А в джяве изволь пердолиться с аннотациями и рефлекцией.
#198 #960337
Анон, есть вопрос JSR 303 (Bean Validation) и DTO.
Предположим делаем мы некую UI форму на неком клиентском приложении. У исходной сущности присутствуют constraint аннотации на полях по указанному выше JSR 303. Bean Validation построен так, что его можно юзать как на сервер так и на клиенте. Все здорово.
НО. Есть такая практика как формирование DTO и отправка их клиентскому приложению, дабы серверные сущности не покидали пределов сервера. Это также предотвращает падение многочисленных LazyInitializationException когда detached сущность уходит из транзакционного контекста. Однако в этом случае не удастся использовать Bean Validation на клиенте, поскольку тот уже оперирует не сущностями а DTO и в итоге нужно повторять код валидации на клиенте, либо по необходимости конвертить DTO в сущность и прогонять через валидаторы.
Так как быть? Повсеместно использовать DTO на клиенте, писать дублирующийся код валидации или же допускать обработку серверных сущностей на клиенте дабы работала валидация но при этом потенциально ловить Lazy исключения?

В качестве примера могу привести проект над которым работаю в одной конторе. Там серверные сущности уходят десктопному приложению и Lazy сыпятся как из рога изобилия, не в последнюю очередь из-за криворукости тех кто работает над проектом, но все же.
Я же склоняюсь к комбинированному варианту - когда для различных форм редактирования использовать полноценные серверные сущности, при этом грамотно подходить к проектированию, а для различных браузеров и списков шде серверной сущности будет многовато юзать DTO.

Что скажешь, анон?
960339
#199 #960339
>>960337
В поддержку варианта с использованием серверных сущностей на формах редактирования говорит и тот факт что если юзать DTO то его структура в целом повоторит структуру серверной сущности и его кодирование будет более трудозатратным нежели использование серверной сущности (просто получается копируешь код серверной сущности в DTO)
Тот же Vaadin для форм редактирование предлагает удобные биндеры которые умеют работать с JSR 303.
#200 #960369
Поступила инфа, что Шарп более не моден, и банки перекатываются на Angular и прочее. А Джава вечна. Стоит перекатываться на Джаву, по вашему?
960386960403
#201 #960386
>>960369
Как связан шарп и ангуляр ? Ты сравниваешь фронт и бэк?
960396
#202 #960396
>>960386
Шарп вроде тоже юзают для написания веб приложений (ASP.NET).
К тому же автор того поста сравнивал шарп (по всей видимости с ASP.NET) с Java и Angular, т.е. бэкенд и фронтенд жавы и шарпа
#203 #960403
>>960369
Джава стухла еще во время празднования шарпа.
В тренде сейчас - го
960407
109 Кб, 750x745
#204 #960404
Пздц, тяжелый язык :С
Заебался учить, заебался натыкаться на грабли.
мимо_не_могу_вкатиться_в_джуниоры
960430
#205 #960407
>>960403
По всем тредам протёк го-чухан.
#206 #960430
>>960404
Джаву специально оверхедят абстракциями, чтобы можно было толкать продукт и получать бабосы за техподдержку
960458
#207 #960458
>>960430

>оверхедят абстракциями


Примеры?
960472960473963397
513 Кб, 657x516
#208 #960472
105 Кб, 739x710
#209 #960473
960481
#210 #960481
>>960473
Думаешь, в какой-нибудь js иначе будет? Так там ещё больше зависимостей на каждый чих.
960483960756
264 Кб, 1209x3251
#211 #960483
>>960481
Скажи спасибо смузихлёбам, совсем недавно всё делали на жквери и не выёбывались.
960484
#212 #960484
>>960483
На jquery было гораздо больше говнокода. Хорошо, что он сдох.
960485
#213 #960485
>>960484
Вот бы ещё сдох и джяваскрипт, похапе и энтерпрайзные фабрики фасолин, и все перешли на статическую типизацию и ФП.
960486960499
#214 #960486
>>960485
Ну, тред есть. TypeScript, Swift.
960488
#215 #960488
>>960486
Тренд

фикс
#216 #960499
>>960485
под ФП ты имеешь ввиду Scala?
960500
#217 #960500
>>960499
В том числе
960507
#218 #960507
>>960500
а ещё что?
960535
#219 #960535
>>960507
Хачкиль, f#, elm
#220 #960548
Слышал, что с# и java довольно похожи. Так ли легко в случаи чего будет перекатиться с одного из этих языков на другой?
960549960557
#221 #960549
>>960548
Ты будешь перекатываться не между языками, а между их инфраструктурами.
#222 #960557
>>960548
Так как C# > Java, то перекат с сишарпа в джяву, как тут уже выше сказали, заключается только в перекате на другую инфраструктуру, ну и некоторых побочных эфектов, вроде желания рыгать с убогости жабы и того, что что в ней всё делаешь, а ничего нет.

Для переката с джявы в сишарп потребуются определённые мозгоусилия для того чтоб перейти на более продвинутый язык.
960660
#223 #960637
Двач, есть вот такая ошибка:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Прохожу по сайту и вижу, что Placing one (and only one) of slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar on the class path should solve the problem.

Дело в том, что в lib у меня уже есть slf4j-api. И что значит поместить в класс паф? Я как только добавляю либу, сразу жму Build Class PAth.

Юзаю эклипс и в данном случае хотел бы именно с ним разобраться. Алсо, мож у меня не полный комплект файлов, всё-таки? И файл api хуйня, а нужен из списка? Полный текст ниже

If you are responsible for packaging an application and do not care about logging, then placing slf4j-nop.jar on the class path of your application will get rid of this warning message. Note that embedded components such as libraries or frameworks should not declare a dependency on any SLF4J binding but only depend on slf4j-api. When a library declares a compile-time dependency on a SLF4J binding, it imposes that binding on the end-user, thus negating SLF4J's purpose.
960654960718960720
#224 #960645
>>959011 (OP)
Есть ли где-то НОРМАЛЬНЫЙ гайд по RxJavе? Чтобы все по полочкам было. У меня то что есть вызывает больше вопросов чем понимания? Как получить объект из обсервера? Поясните что-то за правильную архитектуру. Допустим из одного обсвервабла я получить данные, они пошли в обсервер который что-то сделал с этими данными. Как мне дальше передать данные из обсервера куда-то?
960858960859
#225 #960648
Ты обычный раб системы, у тебя все зашибись, утром ходишь на работу, это просто чудо жизнь, ты заканчиваешь школу, но ничего не понимаешь, а потом тебя находять и в армейку ты пиляешь, а в армейке край свободный - там ты станешь мужиком, по еблу ты получаешь и поставишься рачком. Круто чистишь ты сортиры и штаны - возвращаешься домой - ну теперь то ты мужик.
Вот вернулся ты с армейки но куда идти тебе - на завод конечно, там то круто ты поверь, хотя можно и учится но учеба - ерунда.
Работай на дядю, на клубы и яхту, выбрось свободу, иди на заводы и шахты, работай, работай на шмотки и шмары, может получишь хоть что-то, а может и пару.
#226 #960654
>>960637
slf4j это логер обертка над всеми реализацями что появились для жавы. Соответственно сама обертка логировать не умеет и требует одну из реализаций. В твоем случае тебе нужно положить библиотеку реализицаию логирования и библиотеку которая выступит мостом между ними

Рассмотрим фреймворк Log4j2. Тебе понадобится
log4j-core - собственно сама библиотека логирования
log4j-api - api для подключения к другим реализациям
log4j-slf4j-impl - бридж для подключения к slf4j
slf4j-api - собственно она у тебя и так уже лежит, это api со стороны slf4j

Для чего такой изврат? Если ты пишешь конечный проект (какое-нибудь веб приложение) до достаточно библиотеки log4j которая является наилучшим логирующим решением.
Однако в случае написания каких-либо библиотек, которые изначально подразумевается использовать в других проектах ты не знаешь наверняка какая логирующая система будет использоваться у конечных пользователей твоей библиотеки. Для этого и используется slf4j враппер - таким образом ты оставляешь выбор логирующей системы конечным юзерам твоей библиотеки. А они этот выбор осуществляют через подкладывание в класпаф API и бридж либов как я описал чуть выше.
157 Кб, 618x618
503 Кб, 1062x1062
162 Кб, 600x600
#227 #960660
>>960557

> C# > Java


Двачую.
#228 #960664
Зачем вам перекатыватся если джавистам больше платят и на джаве больше работы? Или вы очередные войтивайтишники?
960672
#229 #960672
>>960664
Дай мне хотя бы один написанный на яве бигдата фреймворк. То-то!
960686960857
#230 #960686
>>960672
Это ты сейчас так неудачно пошутил?
960688
9 Кб, 200x200
#231 #960688
>>960686
Слив яваманьки засчитан!
#232 #960701
>>959344
пишут. Пожалуй самая удобная для веба, только если это не хоум пейдж
#233 #960704
>>959604
orm не нужен. Очередная мифическая серебрянная пуля.
Нынче модны noSQL, так что orm больше не нужен
#234 #960707
>>959731
скачиваешь плагин для браузера rest что-то там, выбираешь пост, в тело пишешь для начала {}
#235 #960709
>>959795

> Spring Boot


малейший шаг в сторону и ничего не работает. Там нет даже сраных сервлетов
960790
#236 #960715
Что легче парсить на Java: XML, JSON или JSONP?
960726
#237 #960718
>>960637
тебе нужна реализация SLF4J. Есть на q, забыл название
#238 #960720
>>960637
тебе нужна реализация SLF4J. Есть на q, забыл название
960729
#239 #960726
>>960715
наверно json через джексон. Тебе нужно будет только dto классы, соответствующие структуре твоего джсона
#240 #960729
>>960720
кидай - тоже с такой проблемой столкнулся
960737
#242 #960756
>>960481

>кококо, джава не оверхедна, где пруфы


>на


>кококо а вы туда, туда посмотрите



Лол, джависты даже не отрицают, что джава оверхедный кусок говнища, раздутый одним бизнесом, чтобы грести бабло с другого.
Только юный фанбой, мечтающие писать игрули на свой дешевый андроид, верят в чистоту кода джавы.
960759
#243 #960759
>>960756
абстракция над доступом к БД нужна? Нужна.
Абстракция над над слоем DAO? нужна
Абстракция над бизнес-логикой? Нужно
Абстракция над вебом? Нужно
Веб-сервер? Нужен
960768960789
#244 #960768
>>960759
Все просто. Всякие верстальщики Javascript и дебилы-байтоебы не понимают зачем нужны ООП, абстракции, интерфейсы. Ведь можно написать код и он будет работать без всего этого. Главное потом к нему больше не притрагиваться.

Поэтому в силу абсолютного непонимания и петросянят про абстрактные фабрики бинов и "оверхеды".
960778
#245 #960770
Абстрактный синглтон базы данных.
Синглтон mysql
Фабрика баз данных
Регистри, хранящая фабрику баз данных
Абстрактный строитель вывода
Строитель вывода из SQL
Абстрактный наблюдатель базы
Наблюдатель за mysql
Посредник, принимающий сообщения от наблюдателя
Абстрактная стратегия выбора баз данных
Стратегия выбора Mysql
Абстрактный декоратор стратегии выбора базы данных
Фабрика стратегий выбора баз данных
Посетитель, запускаемый посредником при получении сообщения от наблюдателя
Заместитель, принимающий посетителя и решающий, делегировать ли команду вывода виду
Абстрактный вид
Вид CLI
Абстрактная фабрика видов
Фабрика видов, возвращающая инстансы видов CLI
Прототип CLI-вида, используемый CLI-фабрикой
Абстрактная модель
Абстрактный ORM
ORM для Mysql
Модель, работающая с MySql-ORM сущностями
Абстрактная активная запись
Активная запись для mysql-ORM моделей
Абстрактный синглтон хранения моделей
Синглтон, хранящий активные записи
Абстрактный синглтон хранения видов
Синглтон, хранящий CLI-виды
Абстрактное мементо
Мементо активной записи Mysql-ORM модели
Абстрактная команда
SQL-команда
#245 #960770
Абстрактный синглтон базы данных.
Синглтон mysql
Фабрика баз данных
Регистри, хранящая фабрику баз данных
Абстрактный строитель вывода
Строитель вывода из SQL
Абстрактный наблюдатель базы
Наблюдатель за mysql
Посредник, принимающий сообщения от наблюдателя
Абстрактная стратегия выбора баз данных
Стратегия выбора Mysql
Абстрактный декоратор стратегии выбора базы данных
Фабрика стратегий выбора баз данных
Посетитель, запускаемый посредником при получении сообщения от наблюдателя
Заместитель, принимающий посетителя и решающий, делегировать ли команду вывода виду
Абстрактный вид
Вид CLI
Абстрактная фабрика видов
Фабрика видов, возвращающая инстансы видов CLI
Прототип CLI-вида, используемый CLI-фабрикой
Абстрактная модель
Абстрактный ORM
ORM для Mysql
Модель, работающая с MySql-ORM сущностями
Абстрактная активная запись
Активная запись для mysql-ORM моделей
Абстрактный синглтон хранения моделей
Синглтон, хранящий активные записи
Абстрактный синглтон хранения видов
Синглтон, хранящий CLI-виды
Абстрактное мементо
Мементо активной записи Mysql-ORM модели
Абстрактная команда
SQL-команда
960774
#246 #960774
>>960770
Таким образом довольно просто мы получаем быстрое и гибкое приложение, пригодное для дальнейшего расширения функционала и рефакторинга.
960775
#247 #960775
>>960774
Архитектура жава-приложения:
1. договариваемся к американской компанией, что сделаем софт за половину стоимости.
2. нанимаем сотни индусов русских студентов за ЖРАТ.
3. лепим невменяемое говно из жавовских опенсорсных быдлиотек, сдобренное говнокодом студентов под управлением виабушных акхикектогов.
4. слегка проябываем дедлан, поэтому в конце добиваем код хаками, лишь бы запустилось (тем более выясняется, что акхитектогы напроектировали неудобную и нерабочую хуйню, зато по умным книжкам, которых они начиталсь).
5. ????
6. Единоразовый PROFIT
7. Заклюючаем договора поддержки и сажаем на поддержку в 3 раза больше жавообезьян, чем было на разработке (оно и понятно, написать хуйню легко, а вот как потом её сопровождать?).
8. Дополнительный PROFIT в течение многих лет.
960790960795963399
#248 #960778
>>960768
нет, конечно есть перегибы.
Вот на работе такой желающий перемен гик получил власть, теперь я ебусь с этим зоопарком orm, spring-data, cassandra, абстракция над кассандрой для получения SQL92, распределенный кеш, и ещё добрый десяток новомодных дилд.

Я считаю что кроме старого доброго SQL и JdbcTemplate ничего не нужно
960781
#249 #960781
>>960778

> Я считаю что кроме старого доброго SQL и JdbcTemplate ничего не нужно


Выбрасывай JdbcTemplate нахуй и используй jOOQ.

> Вот на работе такой желающий перемен гик получил власть, теперь я ебусь с этим зоопарком orm, spring-data, cassandra, абстракция над кассандрой для получения SQL92, распределенный кеш, и ещё добрый десяток новомодных дилд.


И чем ты недоволен?
960788960793
#250 #960788
>>960781

>jOOQ


посмотрел одним глазом. Это что-то типа QueryDSL?
Если да, то:
1) Нужны некие классы с маппингом, описывающие структуру таблиц. В случае сложных запросов это проблематично
2) Невозможно понять что генерирует эта дилда, и как это дебажить. Невозможно взять запрос и скопировать его в консольку СУБД.
3) Является ли эта дилда потоко-безопасной?. С QueryDSL возникали проблемы.

>И чем ты недоволен?


все эти новомодные дилды суть разворот в прошлое, во времена до создания реляционных БД.
Как кстати и микросервисы
960796960808
#251 #960789
>>960759

>абстракция над доступом к БД нужна? Нужна.


Зачем абстракция над доступом? Ты наверно хотел сказать про JDBC-драйвер? Но это драйвер для владельцев БД, конечно в плюс, что саны сделали стандартизированный драйвер (вообще многое что грамотно они сделали). В общем программирование от интерфейсов - это гуд. Но это фича ООП.

>Абстракция над над слоем DAO? нужна


Нет, нужен стандартны DSL для доступа прям из сервиса, DAO это костыль.
Если блять дебилы ставят транзакции прям над сервисами (аннотации), то
какая нахуй DAO им, они уже сервис-слой привязывают к БД.

>Абстракция над бизнес-логикой? Нужно


Что это и зачем это, не трогай бизнес-логику, без премии оставлю.

>Абстракция над вебом? Нужно


Нету его, есть сервлеты времен CGI, а риально абстракции (набора интерфейсов) чтоб писать одинаково просто на всех embedded серверах нет.
Spring mvc не абстракция, это фреймворк (тяжелый и бестолковый).

>Веб-сервер? Нужен


Тут долбаеба унесло.
960797960814
#252 #960790
>>960775
Это архитектура зарабатывания шекелей вне зависимости от ЯП, пиздабол.
>>960709

>Там нет даже сраных сервлетов


Экспертиза уровня /pr
960794
#253 #960793
>>960781
кстати вот здесь хорошо про эти дилды расписано
http://www.sql.ru/forum/894851-177/chto-seychas-proishodit-v-it-sbera?mid=20286614#20286614

Секрет успешности проектов - не использовать нереляционные базы данных и всевозможный Hadoop
#254 #960794
>>960790
веб-приложение и без сервлетов. Через самописные костыли и самопридуманные стандарты.
Или сервлеты оно где-то внутри создает?
960798960799
#255 #960795
>>960775
Таки да, я рад что хоть кто понимает как бизнес в джаве устроен.
#256 #960796
>>960788

>2)


С jooq дел не имел, но дай угадаю. Включить дебаг?

Кстати, ты не пердолик случаем? Ну типа: только plain sql - только хардкор! Фреймворки не нужны! Зато контроль!
960801960808
#257 #960797
>>960789

>Нет, нужен стандартны DSL для доступа прям из сервиса, DAO это костыль.


как ты тогда абстрагируешься от способа хранения данных?

>Что это и зачем это, не трогай бизнес-логику


именно для этого слой бизнес-логики должен быть в отдельном слое, максимально независимом от окружения

>Нету его


можно использовать сервлеты, можно использовать spring-mvc, можно ещё какую-нибудь новомодную дилду использовать. И вот как раз для безболезненной смены дилд и нужно выделять это в отдельный слой
960807
#258 #960798
>>960794
Да есть там сервлеты, специально для таких дебилов маркетологи заставляют добавлять это говно везде, но прячут так глубоко, что ты их не увидишь.
И получается - да ваша "ХУЙНЯ_НЕЙМ" поддерживает сервлеты, берем! Дебилы, бля (с)
#259 #960799
>>960794

>Или сервлеты оно где-то внутри создает?


Оп-а! Эксперты /pr начали что-то подозревать!
Ну ты же уже спизданул десятком постов выше о том, в чем не разбираешься, с полной уверенностью знатока?
960806
#260 #960801
>>960796
sql это и есть универсальная абстракция, универсальный DSL. Или вам подавай абстракцию над абстракцией?
960812
#261 #960806
>>960799
какая разница, если нельзя получить к этому доступ
960810
#262 #960807
>>960797

>как ты тогда абстрагируешься от способа хранения данных?


Этой же DSL

>>Что это и зачем это, не трогай бизнес-логику


>именно для этого слой бизнес-логики должен быть в отдельном слое, максимально независимом от окружения


Сервис-уровен. У скрипто макак это моделью называют.

Запомни, иногда поддержка абстракции обходиться дороже чем если бы мы перелопатили руками. Я уже привел пример, что стало нормой вешать транзакции на сервис-слой и почему это всех устраивает? Потому что в реально никто не меняет каждый день одну БД на другую. В итоге все это сосалово для успокоения.
960811960814960826
#263 #960808
>>960788
Типозащищенный sqlный билдер с dsl sql-like в виде fluent interface. Поддерживает 100% всего, что можно написать на просто SQL. И предоставляет определенную абстракцию от конкретной реализации реляционной базы.

> 1) Нужны некие классы с маппингом, описывающие структуру таблиц. В случае сложных запросов это проблематично


Поддерживает как просто стринги в значения таблиц и колонок, так и использование автогенерируемых классов, описывающих структуру БД. С ними как раз вся годнота и есть, решая кучу проблем еще на этапе компиляции. Алсо автогенерация охуенно в devops-практики вписывается.

> В случае сложных запросов это проблематично


Никаких проблем.

> 2) Невозможно понять что генерирует эта дилда, и как это дебажить. Невозможно взять запрос и скопировать его в консольку СУБД.


Посмотри примеры - это SQL и есть.
Генерирует как есть - но вообще конкретные запросы в дебаге. Оттуда копируешь и вставляешь, если нужно.

> 3) Является ли эта дилда потоко-безопасной?. С QueryDSL возникали проблемы.


На 100%. Объявил DSLContext одиночной фасолиной и инжекти его хоть в анус Сатаны и долби одновременно туда тысячью хуев.

> все эти новомодные дилды суть разворот в прошлое, во времена до создания реляционных БД.


Хуй там падал в три пизды. Если задачу можно выполнить с помощью реляционной БД - следует ее использовать. Но есть задачи, где реляционщина уже не оче.
Другое дело, что noSQL всякие евангелисты и прочие барухи продвигают как замену SQL, что нихуя не верно.
>>960796
Пердолик тут как раз ты, раз ебашишь plainSql в приложениях, а не делаешь это правильно.
960815960823
#264 #960810
>>960806

>нельзя получить к этому доступ


О! Ещё одно смелое утверждение анонимного эксперта!
#265 #960811
>>960807
Куда писать plain sql, когда твоя DSL соснёт?

DSL то, кстати сам напишешь, пердоля?
960821
#266 #960812
>>960801
А теперь включи свой школьный мозг и подумай почему потребовалась абстракция над уже существующей SQL-абстракцией?? М? Давай ты сможешь понять, что в реале у каждый бд все равно есть своя специфика и приходиться надстройку делать - опять!

Дебил неопытный
960828
#267 #960814
>>960789

> Если блять дебилы ставят транзакции прям над сервисами (аннотации), то


> какая нахуй DAO им, они уже сервис-слой привязывают к БД.


Сука дебил нахуй ты ебаный, я ебал.

>>960807

> Я уже привел пример, что стало нормой вешать транзакции на сервис-слой и почему это всех устраивает?


Потому что транзакции это сервисная логика.
960824
#268 #960815
>>960808

>раз ебашишь plainSql


Ты бы хоть читал, на что отвечаешь. Бухал вчера что ли?
960816
#269 #960816
>>960815
Твой выглядел дополнением предыдущего поста ананаса. Ок, отвечу еще раз.

> Кстати, ты не пердолик случаем? Ну типа: только plain sql - только хардкор! Фреймворки не нужны! Зато контроль!


Нет. Это хуйня.
#270 #960821
960835960837
#271 #960823
>>960808
ну ок, попробую эту дилду.

Единственный недостаток plainSQL - что он не проверяется на этапе компиляции. Но твоя дилда тоже не может гарантировать корректность запроса и соотстветствие структуры БД.
И так и так это решается только юнит-тестами с реальными запросами к базе.
960836
#272 #960824
>>960814

>Потому что транзакции это сервисная логика.


Ну вот приехали.
Окей, я переезжаю на БД без поддержки транзакции - мой сервис слой виноват, или ты тупое говно?
960827960833960838
#273 #960826
>>960807

>Этой же DSL


а если я захочу заменить БД на какую-нибудь заглушку для тестовых целей?

> Я уже привел пример, что стало нормой вешать транзакции на сервис-слой


транзакции и предназначены для вешанья на бизнес-слой. Транзакции тесно связаны с бизнес-логикой
#274 #960827
>>960824
Нет, это ты долбоеб, раз решил переехать на БД без поддержки транзакций, но при этом твой код транзакционен.

Решил выиграть Формулу 1, нанял Шумахера, посадил его в машину без колес и недоумеваешь хули этот баран не обгоняет всех, он же Шумахер.
960861
#275 #960828
>>960812
И вот именно поэтому слой DAO нужно писать свой, под свою базу. А не надеяться на универсальный ORM, что он магией сделает тебе заебись.
ORM тоже не гарантирует абстракцию над базами. В нем тоже нужно хуячить nativeSQL
#276 #960833
>>960824
слой хранения данных должен обеспечивать транзакционность. Это одна из его задач
960834
#277 #960834
>>960833
бля не то написал. Средство хранения данных должно обеспечивать транзакционность
960843
#278 #960835
>>960821
Так вот и расскажи про plain sql в JPQL.
#279 #960836
>>960823

> Но твоя дилда тоже не может гарантировать корректность запроса и соотстветствие структуры БД.


Авотхуй. Как раз для этого и сделано. У тебя нихуя не скомпилируется, если метод from проебал или тебя отвлекли и написал frm. У тебя нихуя не скомпилируется, если ты используешь несуществующую таблицу или колонку. У тебя нихуя не скомпилируется, если проебался и суешь не тот тип в колонку.
И другая удобная хуйня.
960842
#280 #960837
>>960821
нинужно
#281 #960838
>>960824
Ты не тот же дебил, что про сервлеты и спринг отмочил?
#282 #960842
>>960836
чтобы гарантировать корректность запроса, в нем должен быть полноценный парсер sql. Сильно сомневаюсь в его наличии
960848
#283 #960843
>>960834
А я уже хотел тебя обоссать.
#284 #960848
>>960842
Я от Лукаса деньги за рекламу не получаю. Годноту посоветовал - юзай или продолжай писать plainSql и проебываться в рантайме.
960853
#285 #960849
пожалуй единственное для чего нужен orm - в нем удобно делать джойн связанных сущностей.
Но это порочная практика, и plainSQL закономерно бьет по рукам за попытку это сделать.
#286 #960853
>>960848
эта штука немного снижает количество опечаток, не более. Все-равно нужно будет тестировать эти запросы к реальной базе
#287 #960857
>>960672
Тебе не похуй на какие-то маняфреймворки, кретин? Ты ради бобла работаешь или ради маняфреймворков?
#288 #960858
>>960645
Бамп вопросу ыыыыыы
#289 #960859
>>960645

>RxJavе


что за очередная дилда?
960876
#290 #960860
окай. Поясните мне, в чем сакральный смысл spring-boot?
Для меня это выглядит как вместо профессионального перфоратора взять детскую игрушку, ибо она легче, и с ней разберется даже ребенок
960864
#291 #960861
>>960827

>Нет, это ты долбоеб, раз решил переехать на БД без поддержки транзакций, но при этом твой код транзакционен.



Ох я ржу, а где же гибкость и вся чипуха?
По твоей логике и DAO не нужно - ведь "раз решил переехать на другую БД"
Дебилы, бля (с)

DAO - дает абстракцию над БД. При смене БД я меняю только DAO, за счет чего мой сервис слой остается без изменения. Если я меняю БД и это затрагивает и сервис-слой - значит ты долбаеб натянул зависимость на бизнес логику
960863960866
#292 #960863
>>960861
транзакционность это пожалуй единственное исключение, когда бизнес-логика должна быть связана с хранением данных.

В частности это означает что твое средство хранения данных должно обеспечивать транзакционность
#293 #960864
>>960860

>сакральный смысл


вызывать бугурт стариканов неосиляторов
#294 #960866
>>960861
Написал пост, но стер и решил просто обоссать дебила. Ссу на тебя.
960871
#295 #960868

>Джава гибка и абстрактна.


>Но если я поменяю БД то это может затронут бизнес-слой.


>Ко-ко-ко - это база виновата, это она такая плохая, потому что должна что-то обеспечивать (транзакционность).


Лол, хуй она тебе что должна (маня-мирок джава-индусов)
960870
#296 #960870
>>960868
Ты понимаешь что такое транзакция?
960873
#297 #960871
>>960866
фикс

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


Не переживай, не первый раз рву маня-миры индусов.
#298 #960873
>>960870
Транзакция - группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными.

К бизнес логике она никаким хером не относится, это уровень персистенса
960874960881
#299 #960874
>>960873

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


Абсолютно неверно.

С такой логикой простое выполнение
select from table;
select
from table;
является транзакцией.

Погугли еще и попробуй еще раз. После этого перейдем к зачем они нужны.
960882
#300 #960876
>>960859
О, очередной школоподельщик пишущий калькулятор и желающий войтивайти
960880
#301 #960880
>>960876
Костыль, чтобы не использовать асинхронный Go
960908
#302 #960881
>>960873
Как насчёт транзакции в несколько гетерогенных баз?
960889
#303 #960882
>>960874

>Транзакция - группа последовательных операций с базой данных


>Сервис-слой это бизнес логика, изолированная от базы данных по средством слоя DAO


Помогите Доре с логикой
960885960886
#304 #960885
>>960882

> >Транзакция - группа последовательных операций с базой данных


> Абсолютно неверно.


> Погугли еще и попробуй еще раз. После этого перейдем к зачем они нужны.



Дора, почему ты такая тупая шлюха? Пиздуй делать что говорят.
960891
#305 #960886
>>960882
чем диктуется эта группа операций? Для чего нужен откат транзакции?
#306 #960889
>>960881
Блять джависты тупые мрази.
С хуяли бизнес логика должна знать о том сколько там баз данных, еще блять где они расположенны? Да?

Я уже вижу, сегодня одна база, завтра их две - и этот индус ковыряет каждый раз бизнес-логику. Лол.

Понятно что за это должен отвечать слой DAO и какое-то совокупное его подмножество.
960905
#307 #960891
>>960885
ВРЕТИ
Я ждал этого :D
960915
#308 #960905
>>960889
Дебилоид, если ты ничего сложнее круда в жизни не писал, то не проецируй.
#309 #960908
>>960880
К сожалению ты не знаешь, ни то, ни другое
960944
#310 #960910
Сильно абстрагированные фреймворки вопреки бытующему в среде «корпоративных менеджеров» мнению, не упрощают, а напротив — радикально усложняют разработку и поддержку (см статью, собственно). Это новая религия (слаба роботам, не особо популярная в среде профессиональных разработчиков, как это может показаться после чтения Хабры) возникла из иллюзорных желаний непременной монетизации любого созданного за 15 минут кода, с легкой руки Google и иже.

Популярная нынче бизнес-модель хипстер-стартаперов: берем опенсорс-библиотеки, заворачиваем это все в наши классы и методы, называем это NewBuzzword framework, придумываем этому применение, которое конструирует «уникальное предложение», делаем набор примеров в рамках концепции «уникального предложения» и пишем документацию. Все это выкладываем в свободный доступ и потом везде пишем длинные статьи сдобренные красивой инфографикой в духе «теперь вы можете за 1 минуту написать то, на что другие тратили годы» в журналах для молодняка, а в других журналах (для бизнесменов): «реальная оптимизация бизнес-процессов с новым фреймворком NewBuzzword».

Это настолько хорошо работает, что миллионы неофитов по всему миру с легкостью индокринируются в эти новые секты. Результатом этого воистину религиозного поклонения является миллионы денег налогоплательщиков выбрашенных на ветер и километры говно-кода который никто никогда не сможет поддерживать без необходимости переписывать все заново с нуля каждый раз, когда система в какой-то своей части устаревает или требует расширения спектра применения.
#311 #960915
>>960891

> аррря врети


Ах, этот сладкое чувство поражения обосравшегося собсеседника.

Ты нихуя не знаешь что такое транзакции и для чего они нужны, а что-то там кудахтаешь про архитектуру. Поэтому и несешь такую дикую хуйню.

Подмойся и пиздуй в гугл умнеть.
960942
#312 #960942
>>960915
Ты спросил что такое транзакция.
Чел кинул и ткнул носом что это ответственность слоя DAO
Вместо конструктивного ответа - подрыв пукана, отрицание, крики что все не так.

Что с вами не так? Пережрали абстракции?
960984960985
#313 #960944
>>960908
Судя по посту ты тоже не знаешь.
Конструктивный диалог жаба-макак
960959
#314 #960959
>>960944
Ох уж этот школоподельщик пишущий калькулятор. Он то все знает
#315 #960961
учу js чтобы стать фулл-стек. ебать я охуеваю от его сложности, просто пиздец
год опыта в джава
#316 #960984
>>960942

> Ты спросил что такое транзакция.


> Чел кинул


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

> это ответственность слоя DAO


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

Возьмись за ум, почитай что такое транзакции, чем они отличаются от просто выполнения нескольких операций и зачем вообще нужны. Потом прочитай зачем нужен DAO и к чему относится транзакционность.
Не надоело троллить тупостью и глотать мочу?
#317 #960985
>>960942
транзакции на сервисном слое
961022
#318 #961022
>>960985
Окей, мало сегодня ваши жопы рвались.
Что такое транзакция на сервисном слое?
И самое главное зачем она там есть, если сервисный слой не имеет отношение к доступу хранения данных (т.е. провайдером данных в данном случае может быть тупо файловая система (простые файлы))?

Вы тут полыхаете, но не один не пояснил еще.
961023961079961112
#319 #961023
>>961022
...я всегда любил джавистов, они грезят надроченными теориями абстракций, готовы лепить слой за слоем из фреймворков, чтобы добиться какой-то гибкости которую никогда не используют. А в реале, когда начинаешь копать их код, понимаешь, что они умудряются запутаться в своих же абстракциях и вообще лепят противоречивые вещи.

То что так можно разводить бизнес, оно то понятно, но себя то не обманывайте.
961579
#320 #961079
>>961022
Смотри. У тебя может быть обращение с двумя базами данных или там обращение к бд и работа с jms. И физически у тебя будет две транзакции, но бизнес-транзакция - одна. Так на каком слое с ней обращаться?
961085961579
#321 #961085
>>961079
Да даже банальное добавить-удалить-изменить - это одна транзакция, а для дао - три отдельные операции.
961447
#322 #961112
>>961022
ты троллишь что ли? допустим у тебя несколько обращений из сервиса в разные репозитории (дао). последняя завершилась неудачно, нужно откатить предыдущие. какую-то левую хуйню про абстракции загоняешь, при чём тут это вообще
#324 #961224
Блядь, можно пример случая, когда без интерфейсов и абстрактных классов никак\дают НУ ПРЯМ ОХУЕТЬ ЯВНОЕ ПРЕИМУЩЕСТВО. Год не притрагивался к ООП, снова до них дошел и снова не понимаю нахуя они НА ПРАКТИКЕ нужны.
961264961267
#325 #961264
>>961224
Если по поводу полезности интерфейсов еще как-то можно поспорить, то не понимать абстрактные классы - это просто твоя глупость.
961268961592
#326 #961267
>>961224
Универсальность, гибкость. Ты можешь отправлять в метод параметром любой класс, с любым набором свойств. Иными словами, объем кода сокращается и он становится более элегантным.
961272
#327 #961268
>>961264
Ну поясни в чем глупость? Я не отрицаю, что тупой.
961280
#328 #961272
>>961267
т.е. ты говоришь о случае когда у нас есть некий класс А с методом, принимающим на вход объекты типа интерфейс Б, от которого могут быть наследованы классы В, Г, Д и т.д.
961274961286
#329 #961274
>>961272
Да. И сразу напомню тебе, что в жабе нет перегрузок.
961283
#330 #961280
>>961268
Посмотри хотя бы на InputStream.
#331 #961283
>>961274
Перегрузок чего?
961286
#332 #961286
>>961283

>Перегрузок чего?


Методов.
>>961272
Опять же, ты можешь написать просто Б.Хуй(), а выполнится нужный реализованный метод у нужного класса (В.Хуй() или Г.Хуй() например).
961291961295
#333 #961291
>>961286

>Опять же, ты можешь написать просто Б.Хуй()


А вот это уже интересно, а что будет если реализация есть у 2 классов и она одинаковая по параметрам?
961293
#334 #961293
>>961291
Реализация по параметрам и так будет одинаковой. Ты должен реализовать метод один-в-один как он описан в интерфейсе (с тем же списком параметров).
961294
#335 #961294
>>961293
Ок, а если в классах будет разная логика реализации метода интерфейса А, то, какую дернет А.хуй() ?
961295961296
#336 #961295
>>961286
https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html

>Overloading Methods


А это тогда что по-твоему?

>>961294
Друг, у тебя тоже каша в голове. Дёрнется метод того объекта, который передашь. Иди читай про таблицы виртуальных функций.
961301961304
#337 #961296
>>961294
Зависит от того, какой конкретно класс будет находится в объекте. Сам по себе объект интерфейса создать невозможно.
961301
#338 #961301
>>961295
>>961296
А, ну это вполне логично, пойду дальше почитаю всякое, спасибо. Каша в голове потому что практики нихрена нет.
#339 #961304
>>961295

>А это тогда что по-твоему?


Батюшки, вот это я хуйню несу-то.
Сам только как месяц жабу по Хортсману начал осваивать. И что самое интересное, не могу вспомнить, где нашел текст про отсутствие перегрузок.
Сейчас перечитал - все есть. Чудеса, блеать.
961408
#340 #961318
Бляя, пасаны, кто-то ебашил на реакторе/рхжаба/реактивх? Как сделать по-нормальному несколько РЕСТ калов асинхронно, чтобы не приходилось ждать пока первый калл ответит, только потом делать второй и т.д?
И чтоб кода помеьнше было, а то сука не гуглится блядь а времени особо нет.
961324
#341 #961321
Аноны,учусь в вузике на заочном,решил вкатиться в работу. Дали тестовое,где одна из частей задания - что бы у User была возможность дать некий Book другому User (либо положить его в кучу). Делаю все на Spring+Hibernate ,но не могу найти инфы по orm one-to-many и подобному(желательно либо на русском,либо на конкретном примере). Так же из требований - использование HQL,в офф доках не нашел таблицу соответствия запросов sql -> hql
Анон,выручай
961342961344961348
#342 #961324
>>961318
Кароче бля нагуглил https://github.com/reactor/lite-rx-api-hands-on/blob/complete/src/test/java/io/pivotal/literx/Part11BlockingToReactive.java ааа найс всё в примерах, респект чувакам
961423
#343 #961342
>>961321

>Hibernate


нинужно

>orm one-to-many


аналогично

> User была возможность дать некий Book другому User


может они хотят от тебя знания ООП?
961373
#344 #961344
>>961321

>Дали тестовое


Вон из профессии.
961373
#345 #961348
>>961321

>не могу найти инфы по orm one-to-many


дно

>на русском


дно х 2

>не нашел


дно х 3

Диагноз: тебе обязательно перезвонят.
961373
#346 #961373
>>961348
>>961344
>>961342
Такие то злобные макакии.
Не серчайте,я уже нашел,что надо
#347 #961381
пацантрэ, абасцыте меня или убейте!
не могу в спрингсекьюритиконфиге разграничить доступы к страничкам в зависимости от пользователя
@Override
protected void configure(HttpSecurity http) throws Exception {

http.authorizeRequests()
.antMatchers("/").permitAll()
.antMatchers("/login").permitAll()
.antMatchers("/registration").permitAll()
.antMatchers("/admin/")
.hasAuthority("ADMIN").anyRequest().authenticated()
.and().csrf().disable().formLogin()
.loginPage("/login").failureUrl("/login?error=true")
.defaultSuccessUrl("/admin/home").loginPage("/")
.usernameParameter("email")
.passwordParameter("password")
.failureUrl("/").and().logout()
.logoutSuccessUrl("/").and()
.authorizeRequests()

.antMatchers("/").permitAll()
.antMatchers("/login").permitAll()
.antMatchers("/registration").permitAll()
.antMatchers("/worker/
")
.hasAuthority("WORKER").anyRequest().authenticated()
.and().csrf().disable().formLogin()
.loginPage("/login").failureUrl("/login?error=true")
.defaultSuccessUrl("/worker/home").loginPage("/")
.usernameParameter("email")
.passwordParameter("password")
.failureUrl("/").and().logout()
.logoutSuccessUrl("/")

.and().logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/").and().exceptionHandling()
.accessDeniedPage("/access-denied");
}
гуглил примеры. но почему-то у меня криворукого все могут залогиниться как хотят и под правами какие сами рандомно выпадут.
хелпмиплиз
#347 #961381
пацантрэ, абасцыте меня или убейте!
не могу в спрингсекьюритиконфиге разграничить доступы к страничкам в зависимости от пользователя
@Override
protected void configure(HttpSecurity http) throws Exception {

http.authorizeRequests()
.antMatchers("/").permitAll()
.antMatchers("/login").permitAll()
.antMatchers("/registration").permitAll()
.antMatchers("/admin/")
.hasAuthority("ADMIN").anyRequest().authenticated()
.and().csrf().disable().formLogin()
.loginPage("/login").failureUrl("/login?error=true")
.defaultSuccessUrl("/admin/home").loginPage("/")
.usernameParameter("email")
.passwordParameter("password")
.failureUrl("/").and().logout()
.logoutSuccessUrl("/").and()
.authorizeRequests()

.antMatchers("/").permitAll()
.antMatchers("/login").permitAll()
.antMatchers("/registration").permitAll()
.antMatchers("/worker/
")
.hasAuthority("WORKER").anyRequest().authenticated()
.and().csrf().disable().formLogin()
.loginPage("/login").failureUrl("/login?error=true")
.defaultSuccessUrl("/worker/home").loginPage("/")
.usernameParameter("email")
.passwordParameter("password")
.failureUrl("/").and().logout()
.logoutSuccessUrl("/")

.and().logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/").and().exceptionHandling()
.accessDeniedPage("/access-denied");
}
гуглил примеры. но почему-то у меня криворукого все могут залогиниться как хотят и под правами какие сами рандомно выпадут.
хелпмиплиз
961384961409
#348 #961384
>>961381
и адепты утверждают что этот выблев читаемее чем xml
961408
38 Кб, 497x336
39 Кб, 417x293
82 Кб, 1251x307
#349 #961390
Есть json такого формата.
Есть иерархия классов Response, который имеет в себе массив Photo (2ой скрин). В общем, я пытаюсь HQL-ем вытащить максимальное значение max_sol (3-ий скрин). Idea говорит, что класс Rover не замаплен. Но @Table(name = "Photo") говорит, что замаплен. Где я дебил?
961395961410961424
#350 #961395
>>961390
Тебе нужно разделить работу с базой и работу с джсон. Так называемое "разделение ответственности". Одни классы для работы с базой, суффикс Entity, другие для json, суффикс я бы сделал JsonDto. Между ними конвертер, конвертирующий Entity в JsonDto.
Это нужно чтобы структура базы не мешала структуре джсона, и наоборот. И чтобы в случае изменения базы джсон бы не пострадал.
961403
#351 #961403
>>961395
Отличная идея! Спасибо :)
#352 #961408
>>961304
В яве нет перегрузок операторов, т.е. BigDecimal'ы нужно через методы класса, а не через + складывать. Возможно ты читал про это и запутался.

>>961384
Нелюбовь к xml - это такой мем у нелюбителей явы.
#353 #961409
>>961381
Во-первых, не выкладывай код напрямую сюда.
Во-вторых, отформатируй нормально эту нечитаемую кашу.
В-третьих, зачем там два раза страница логина?
В-четвертых, я тебе, мудаку, уже выше скинул ответ на вопрос про 2 "домашние" страницы. Что за говно ты сюда приплёл вместо редиректа?
961439
#354 #961410
>>961390
@Entity
#355 #961423
>>961324
Бляяя, короче, всё хуйня, давай сначала, походу я нихуя не шарю в реактиве и эта хуйня вообще не для паралелизации вызовов. Да ну нахуй, там столько костылей надо запиливать, чтобы добиться это паралелизации вызовов. Я ещё даже нашёл на стаковерфлоу в ответах, что типа паралезация в обсерверах хуйня и не нужна, иди нахуй.
Как же тогда красиво заебашить несколько вызовов паралельных? Через акку? Она-то норм хоть к спрингу прикручивается?
44 Кб, 479x479
#356 #961424
>>961390

>серилизовать энтити в жсон


ИДИ НАААХУУУУУЙЙЙ ПИДОРАС ЕЩЁ НЕБОСЬ СЕССИЮ ОТКРЫВАЕШЬ В ВЬЮХЕ ЧТОБЫ ДЖАКСОН СМОГ ЗАСЕРИЛИЗОВАТЬ ВСЕ ЗАВИСИМЫЕ ЭНТИТИ??
961429962631
#357 #961429
>>961424
Да нет, у меня для этого сервис есть. Который к dao обращается. Не знаю от чего у тебя так бомбит. А если и бомбит, то можешь и расписать правила хорошего тона для спринга.
961430
#358 #961430
>>961429

>правила хорошего тона для спринга.


Первое правило. Никогда не использовать хибернейт
Второе правило. НИКОГДА не использовать хибернейт
961433961435961437
#359 #961433
>>961430
Да у тебя ПУНКТИК!
#360 #961435
>>961430
Неосиляторы подъехали.
961436
#361 #961436
>>961435
от него больше проблем чем пользы
#362 #961437
>>961430
У тебя сложные сущности, размазанные по паре десятков таблиц. Как будешь с ними работать, SQL-запросы писать на каждый чих?
961441
#363 #961439
>>961409
>>961409

>>Во-первых, не выкладывай код напрямую сюда.


>>Во-вторых, отформатируй нормально эту нечитаемую кашу.


прошу прощения http://pastebin.com/zmcd3X6E

>>В-третьих, зачем там два раза страница логина?


скопипастил лишнего, это все равно ничего не меняет

>>В-четвертых, я тебе, мудаку, уже выше скинул ответ на вопрос про 2 "домашние" страницы. Что за говно ты сюда приплёл вместо редиректа?


если я делаю по примеру у меня ошибка
"There was an unexpected error (type=Method Not Allowed, status=405).
Request method 'POST' not supported"
961523961525
#364 #961441
>>961437
Если сложные сущности и сложные запросы, то тем более нельзя юзать хибернейт.
Ты потратишь больше времени, пытаясь запустить это и понять почему оно тормозит
961444
#365 #961444
>>961441
Я сейчас говорю не о говноподелках, которые ты пилишь на коленке один, а о серьёзных корпоративных приложениях, которые делаются по несколько лет и за это время ещё команда успевает пару раз смениться. И я тебе гарантирую, без JPA ты ебанёшься.
961455961456
#366 #961447
>>961085
Чувак или троллит, или не понимает что такое транзакции и зачем они нужны. Поэтому несет такую дикую дичь.
31 Кб, 450x446
#367 #961453
Вечер в хату, програны. Посоветуйте, какие пакеты, которые чаще всего применяются, лучше вызубрить? Их дохуя, но чувствую что чаще всего применяются несколько. И ещё вопрос, с каких реально полезных приложений для тренировки начать? Имею в виду не всякие хеллоуворды и калькуляторы, а полезные например примочки, которые при данном начальном уровене тяжело написать но хорошо в итоге натренирует.
#368 #961455
>>961444

> Я сейчас говорю не о говноподелках, которые ты пилишь на коленке один, а о серьёзных корпоративных приложениях, которые делаются по несколько лет и за это время ещё команда успевает пару раз смениться. И я тебе гарантирую, без JPA ты ебанёшься.


Угадай почему одинбанх бузинес онлайн сейчас вполне успешно переписывается в том числе и с хибернейта на поделие одного швейцарского пацанчика.
#369 #961456
>>961444

>а о серьёзных корпоративных приложениях, которые делаются по несколько лет и за это время ещё команда успевает пару раз смениться.


Для тебя это повод для гордости? Я участвовал в проекте: принять данные по xml, расшифровать и сохранить. Этот простейший круд команда из 5 человек делала в течении года, и так не до конца. При этом оно падало от перегрузки даже на тестовой среде

Следующим проектом была система такси федерального масштаба, где на серверной части был я один. Второй проект был в разы сложней, и при этом запущен в продакшен через полгода после начала работы
961457
34 Кб, 604x343
#370 #961457
>>961456

> Я участвовал в проекте: принять данные по xml, расшифровать и сохранить. Этот простейший круд команда из 5 человек делала в течении года, и так не до конца. При этом оно падало от перегрузки даже на тестовой среде


Лолблять почему?
961459
#371 #961458
почему все (даже всякие тимлиды) говорят хибернейт, а не хайбернейт?
#372 #961459
>>961457
использование всех возможных дилдаков, модных в то время: BPM, хибернейт, веб-лоджик, дженкинс, оракл, ещё какие-то хрени.
На компьютерах разработчиков это было не развернуть из-за оракли, bpm и кучи настроек. Тестовых серваков было пара, при этом надо было изъебываться чтобы посмотреть логи. На тестовые серваки конечно-же нельзя просто так залить, заливается через коммиты с кучей валидаций, тесты и капризный дженкинс. Ни о каком дебаге конечно не могло быть и речи. Итого пробный запуск своего кода растягивался на полдня. Ещё полдня чтобы расшифровать логи и понять что не так. Ну это примерно как в старые времена, когда программы набивали на перфокарты и отдавали на ввод операторам, а результат ты мог узнать только через пару дней, в виде текста.
Плюс постоянные митинги, ибо руководство захотело поиграть во все эти скрамы и аджайлы.
961473961489
#373 #961473
>>961459
Но это больше смахивает на руожопость тех кто такую инфраструктуру породил. Гибернейт тут явно не причем. Наломать таких дров можно успешно и без БД с гибернейтом в качестве ОРМ.
961477
#374 #961477
>>961473
ну вот когда писал это такси, тоже использовал хибернейт. Потом пришлось выпиливать его из всех частых запросов. Оставил только на запросах для админки и диспетчеров.
961489
#375 #961489
>>961459
>>961477
Индексы хоть делали и следили, чтобы не было гомофуллсканов, или "какой SQL? За меня ORM все говно делает, идите нахуй, я бабочка"?
961492
#376 #961492
>>961489
именно что постоянные гомофулсканы, подгрузка связанных сущностей вопреки запретам. Плюс при сохранении/обновлении оно обновляет все поля, даже те которые не нужно. Убрал слой Entity - памяти стало жрать в два раза меньше
961496961503
#377 #961496
>>961492
Обычные orm-проблемы. Удобство удобством, а потом начинается.
961506
#378 #961503
>>961492
Ну например юзать гибернейт для формирования различных браузеров в системе или же отчетов - верх идиотизма. Такие структуры как правило агрегируют данные из разных таблиц в форме далекой от ваших задефайненных сущностей. В таком случае операцию будут затратны по ресурсам - здесь стоит применять Native SQL приподдержке профайлера вашей СУБД, с последующей конвертацией в POJO через ResultTransformer того же гибернейта (хотя в JPA 2.1 появился более удобный инструмент).

Это первое. Второе - понимать то с какими данными работает ваша система в конкретной ее части и далее вытягивать из базы их один раз через JPQL(HQL), дабы в дальнейшем не было кучи мелких подзапросов.

О таких вещах вообще не думают когда работают с ORM а потому получается что инструмент во всем виноват.
961513
#379 #961505
Помогите, пожалуйста. Что-то я не понимаю.
Вот есть RestService и вылетает ошибка java.lang.NullPointerException net.yan.service.DtoConverter.convertToModel(DtoConverter.java:22)
Окей, я стал в addPhoto передавать не ResponseJsonDto, а сразу массив PhotoJsonDto. Не помогло. Окей. Проверил, а получаю ли я вообще ResponseJsonDto. Да, получаю и id, imgSrc смог спокойно вытащить.
Вроде бы, и конфиг правильно настроил.
https://github.com/Kabowyad/Test-Project/tree/api-test/src/main/java/net/yan
961509
#380 #961506
>>961496
Верно подмечено - ORM это всегда компромисс. Вы получаете удобство в одной части прикладных задач, но в другой будут возникать траблы. Выходом как правило явялется гибридное решение - применять ОРМ там где ОРМ справляется хорошо, в остальных местах использовать Native SQL.
#381 #961509
>>961505
ой блять, просто пиздец. Забыл поставить JsonValue и все сломалось.
#382 #961513
>>961503
ну да, куча нюансов и возможных граблей. А написание plainSQL занимает не так уж много времени, плюс это надежнее.
961516
#383 #961516
>>961513
Все зависит от объемов. Если это мелко проект - спорить не стану. При количестве сущностей около пятидесяти - native sql становится проблемой. Собственно из-за этого и стали придумывать ОРМ, что бы не писать огромную кучу кода. И тут все по Макконелу: меньше кода -> снижение сложности -> упрощение в сопровождении и меньшее шансов наклепать баги.
961519
#384 #961519
>>961516
больше hql - больше шансов стрельнуть себе в ногу
961539
#385 #961523
>>961439
Экстрасенсы все на тнт. Хуй знает что ты там не осилил. Ебись-дебаж сам (как и все работающие прогеры).
961551
350 Кб, 700x674
#386 #961525
>>961439

> если я делаю по примеру у меня ошибка


> "There was an unexpected error (type=Method Not Allowed, status=405).


> Request method 'POST' not supported"


Читать мы, конечно, не умеем.
#387 #961526
помидоры, подкиньте пожалуйста идею веб аппликухи, чтобы потренироваться в спрингах, хиберах и т д, что использует большинство нормальных гребцов.
за пару лет работал только с сервлетами и osgi. в связи с перекатом на другое место работы, хочу немного подготовиться.
у самого в мыслях только бложики да твитторы
961528961813
#388 #961528
>>961526
Spring in action читай со второй главы. Будешь Плевателя делать.
961529961531
#389 #961529
>>961528

> со второй раздела

961531
#390 #961531
>>961528
>>961529
благодарю
961533
#391 #961533
>>961531
Лучше дал себя в срачельничек поиметь - вот лучшая благодарность.
961534
#392 #961534
>>961533
Два Ануса Дрануса этому Косадесу.
#393 #961538
Анусы, они повсюду.
961540
21 Кб, 481x481
#394 #961539
>>961519

> hql

#395 #961540
>>961538
Даже у меня самого есть анус, а значит я сам себя драть могу.
#396 #961551
>>961523
>>961523

>>Ебись-дебаж сам(как и все работающие прогеры)


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

>>Читать мы, конечно, не умеем


ну конечно ты тут один у нас читать умеешь, толкь интересно схуали метод пост нот супортед!?
значт придругом конфге он супортед, стоит поменять конфиг и уже нет, куда он делся? мм??
эй метод "ПОСТ" где ты????
я порвался, можете меня уносить!
961555
#397 #961555
>>961551
Слушай, паренек. Давай будем няшками-поняшками и посмотрим правде в глаза. Программирование очевидно не твое.

Почему бы тебе не попробовать Javascript?
961562962010
#398 #961562
>>961555
интересное предложение, но я уже прошел собеседование на должность гей-шлюхи сзароботком 400ккк/сек
#399 #961579
>>961023
>>961079

>Ты не знаешь что такое транзакция, дай определение.


>На...


>Все не правильно, "врети"!


>Хорошо, скажите тогда правильное определение


>Не скажу, но вот смотри, если тут...


Дебилы бля (с)

Слив с транзакциями в сервис-слое засчитан.
961584
#400 #961584
>>961579
уёбывай уже, порватка
961595
#401 #961592
>>961264
Ты по сути говори, хули ты тут своими абстракциями пальцы растопыриваешь, мышь бля.
21 Кб, 480x640
#402 #961595
>>961584
Не транзетивненько, слившийся гандон.

Баранам дали DAO чтобы те отделили код от носителей данных, так джава-макаки умудрились транзакцию (вещь, исключительно специфичная для БД) - натянуть на сервис слой.

Нахуй вам тогда DAO, если вы уже запороли абстракцию, возьмите сразу Active Record в сервис слой - это будет однохуйствено (вы так же будете привязаны только к носителю реляционных БД, но как макаки не будете писать бойлерплейт).
961605
#403 #961605
>>961595
Ясно понятно. Уёбывай.
961614
#404 #961614
>>961605
Тот самый случай, когда тебя открыто унижают по твоей любимой джаве, а ты даже ответить по теме не можешь
961618
#405 #961618
>>961614
Да заебешься каждому мимокрокодилу что-то там доказывать. Итогом все равно будет "азаза, слив засчитан", а за ним придет следующий и все по новой.
961624
#406 #961624
>>961618
Бедняга, возьми платочек.

Сами отвечают в стиле азаза. Ничего конструктивного я не увидел (даже банального "правильного" определения транзакции в контексте сервис слоя) а потом аноны плохие.
Ну то есть, как бы ты на себя не дрочил сейчас (на свое ЧСВ), ты ровно такой же скам который сам только что и описал.

PS ...и да, за огрехи архитектуры топят единицы, так что не пизди что приходится часто доказывать мимокракодилам подобное.
#407 #961628
>>959413
Какой потешный дебил. Ни дженериков, ни наследования интерфейсов не осилил и еще гордится этим.
961630
#408 #961630
>>961628
У тебя паранойя, ты меня путаешь с кем-то.
Хотя может это маневры такие
961632
#409 #961632
>>961630
Может быть, я кукаретиков, кукарекающих об овеществлении дженериков, не различаю.
https://www.youtube.com/watch?v=402QPeOnIy4
#410 #961648
>>959105
он не для веба создавался. net/http был впилен на скорую руку за месяц до релиза чисто ради привлечения внимания\популярности. пилить на го прикладуху типа веба - это миллионы велосипедов. на нем байтики ебать хорошо, но это типа непопулярно сегодня
#411 #961669
>>961193
Это не тебе решать, чмоня.
#412 #961679
>>959040
DropWizard + Angular2
#413 #961686
>>959011 (OP)
Аноны, как в RxJavе сделать цепочку обсерваблов? Вот допустим я хочу передавать данные из одного обсервабла в другой, из него в третий и т.д, а в конце получить нужный мне объект. С помощью чего это можно реализовать?
961718
#414 #961718
>>961686
flatMap / switchMap
#415 #961730
>>961193
Делай пулл реквест, хули.
#416 #961755
Сап джаваны, работаю макакой в тырпрайзе второй месяц. Пишу в основном на hql, но иногда пригодиться на netive sql. Пазовые вещи знаю, трудности возникают редко. Но все же, насколько важно глубокое знание sql, ну и что посоветуете почитать ?
961944962037
#417 #961769
Привет, двач-джавач. Долгая ебля с JSON принесла свои плоды и что-то стало вырисовываться. Мы имеем ответ от сервера в виде пока что говнокода - лишь бы работало и выдавало JSON-строку. Так что тут не придирайтесь. Вот она

https://pastebin.com/X2AFZaiE

И мы имеем такой же тестовый класс, в котором я выдрачиваю все эти внутренние штуки.

https://pastebin.com/GzKLKXMB

Я ничего не понимаю, что идет не так. Ах,да - вот простой мэйн класс - https://pastebin.com/BW5bQyex

А теперь самое главное. Когда в строке для перевода было Tale во время работы - всё работало. Теперь же выдает нуль поинтер эксепшн.
Но работает со словом хелло.
Вы можете сказать мол, оно ж тебе показывает, где ошибка. Так вот - ошибка в якобы вот тут

JSONObject getNullPoint = (JSONObject)getSyn.get(0);

Да вот только если закомментить метод и просто распечатать линк, то мы увидим, что поле syn действительно есть и эксепшн не может появиться, потому что ответ JSON от апи построен по одному формату! В общем, работает всё раз на раз, в чём подвох-то, джаваны?

Алсо, знаю, что говнокод, извините. На слове Hello исправно выдает мне массивы значений. Вот пример вывода

hello
Перевод привет
Значения [hi, welcome]
Синонимы [приветствие]
Переводы [привет]
961772
#418 #961772
>>961769

>restTemplate.exchange(url, method, request, resultType).getBody()


Ты вот это что-ли написал?
#419 #961780
>>959011 (OP)
Какие возрастные ограничения для джунов в России? Слышал, что после 25 уже не берут.
961781961945961946
#420 #961781
>>961780
После 19 уже не берут.
961786
#421 #961786
>>961781
хз, я в 17 шёл, сказали что у же на верхней границе
#422 #961813
>>961526

>у самого в мыслях только бложики да твитторы



Как будто что-то плохое. С точки зрения тимлидов корзинок и хипсторов сеньеров хуесосов собеседователей
962299
13 Кб, 287x319
#423 #961825
Пишу код на Java Swing в редакторе от NetBeans.
Формочка состоит из текстового окна и кнопки. Хочу, чтоб текстовое поле было расширяемое (растягиваемое), а кнопка-нерастягиваемая наоборот (при изменении размеров окна). Сейчас набросал пикрилейтед, но похоже придется править вручную
961933
#424 #961878
Поясните за JNDI, а лучше - дайте какой-нибудь годный туториал, где всё будет кратко и по делу. У меня какое-то очень смутное представление о нём, то есть я понимаю, что это API для доступа к службам имен и каталогов, но нахуя? То есть мы можем по этому имени обратиться к службе, файлу или там компоненту, но зачем? Разве нет других способов? Если есть - почему именно JNDI?
961951
#425 #961933
>>961825
Swing, похоже, древний мем.
Взял Gridlayout и сделал по примеру: https://docs.oracle.com/javase/tutorial/uiswing/examples/layout/GridBagLayoutDemoProject/src/layout/GridBagLayoutDemo.java Вроде более-менее получилось
#426 #961944
>>961755
Правила расстановки знаков препинания в русском языке.
#427 #961945
>>961780
Это так.
#428 #961946
>>961780
Говорят, старше 15 уже нет смысла даже пытаться.
Сам вкатился в 27, один друг в 26, знаю двоих вкатился в 30+.
#429 #961951
>>961878
Твоя программа говорит дай говно, буду в нем рыться.

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

А если еще в файлике с jvm пропертями сделаешь, чтобы можно было указывать конкретные имена jndi говен, чтобы твоя программа работала с говном не по конкретному имени говна, а по проперти имени говна, так вообще будешь помидоркой сука ты ебаная хуила беспардонная.
961952
#430 #961952
>>961951
Заебись, спасибо.
#431 #961956
Слушайте, а вы часто пишете nested и inner классы?
Когда вообще есть смысл их использовать?
961967962031
#432 #961967
>>961956
Только когда тебя просят предоставить для общественного пользования свой срачельничек. Его надо беречь для настоящих товарищей.
#433 #962010
>>961555
дружище я победил наконец-то это хуету!!! во пиздец я тупой был (да таким же и остался). спасибо, что хоть немножк направлял меня, ну тоси-боси там это. кароч заебись
962034
#434 #962031
>>961956
я пишу ток анонимные классы, т.е лямбды.
97 Кб, 1600x1067
#435 #962034
#436 #962037
>>961755
Перелезай с hql на jpa predicate. Или на querydsl.
Тебе потом спасибо скажут.
962264
sage #437 #962056
>>959040
PHP же
962191
#438 #962191
>>962056
Двачую, на жабе веб пилить - это боль из тонны бойлерплейта.
#439 #962202
Здрасти. Пишут что так можно сменить прокси в рантайме на лету, но этот код на питоне. Поясните как его переписать под джаву.

driver.command_executor._commands['executePhantomScript'] = ('POST', '/session/$sessionId/phantom/execute')
driver.execute('executePhantomScript', {'script': '''phantom.setProxy("10.0.0.1", 12345);''', 'args' : [] })
962817
#440 #962264
>>962037
Чому jpa predicate лучше ?
962296
#441 #962296
>>962264
валидация синтаксиса на этапе компиляции
#442 #962299
>>961813
ну типа знаешь, ничего свежего. хотя тут наверное не стоит выебываться, а надо сидеть и пробовать/делать
#443 #962413
Суп, господа.
Нужно настроить конвертацию документов из docx в pdf. Пробовал ебашить через apache.poi и docx4j (3.2.2), форматирование идёт по пизде. Попробовал docx4j 3.3.3 - работает заебись, но он на самом деле не сам конвертирует а гоняет документы на сервак и там конвертирует, хотите на локалке - купите свой сервак и разворачивайте, не вариант. Посоветуйте нормальные варианты, наверняка многие ебались с подобными задачами.
962499962500
#444 #962493
Почему в шапке нет ничего про выбор ide? Чем пользуетесь?
мимо-ньюфаг
962495962498962584
#445 #962495
>>962493
Все нормальные разработчики пользуются Idea, что тут обсуждать-то.
#446 #962498
>>962493
Есть только одна православная IDE и это - IDEA. Нечего обсуждать.
962584962608962613
#447 #962499
>>962413
смотри что найдёт гугол

java convert doc to pdf
963001
#448 #962500
>>962413
Если хочешь чтобы ничего не ехало, то бери шарп и пиши свой сервис. Там конвертация вроде почти из коробки есть.
963001
#449 #962553
>>959078

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


Но ведь кобол уже был изобретён.
#450 #962578
Жавач, что по FX глянуть? Вроде научился лепить формочки в Scene Builder и прикручивать ксс, но думаю, упускаю кучу основных возможностей, например биндинги, бины какие-то, обсервабл коллекции и т.д. Желательно на русском, ну или на иглише, но чтоб последовательно все, а не короткими хау-ту.
#451 #962584
>>962495
>>962498
Лол, тупые хомячки, жрущие проприетарщину.
>>962493
Выбирай Eclipse, хоть он и старый, но он свободный. Это главный критерий любого здравомыслящего программиста и вообще свободного человека.
962589
264 Кб, 1435x873
#452 #962589
>>962584

>Можешь помочь аутисту мне. Что здесь не так

962594962599
#453 #962594
>>962589
Жми контрол+1, либо на лампочки и делай импорт.
25 Кб, 440x450
#454 #962599
>>962589
Ты ахуел чтоле сука?

А ну быстро съебал в 1С тред, если свой мордорский так любишь, что даже КЛАССЫ по пидарашьи называешь. Конченый.
962600
14 Кб, 260x216
15 Кб, 260x216
#456 #962608
>>962495
>>962498
Двум ценителям два чая
962611
#457 #962611
>>962608
Ты, наверно, ещё и на WXP сидишь, ведь это проверенный временем, стабильный продукт.
962614
#458 #962613
>>962495
>>962498
сосачую. Я даже из личных денег купил годовую лицензию на идею. Ибо оно того стоит
#459 #962614
>>962611
а ты сидишь на линуксе из-за ШВАБОДКИ?
"Да я жру говно. Но это говно ШВАБОДНОЕ"
962913
#460 #962629
>>962495
к примеру, для того, чтобы работать с БД, нужна ultimate версия
эт не оч удобно
962636962639
#461 #962631
>>961424

що не так? если не в продакшен, а что-то тестовое, то сойдет, JsonIgnore и иже с ним вешаешь куда надо и все

я так за 20 минут со спринг дата рест ангуляр2 с сервером связал, тот еще и контроллеры сгенерил с документацией

короче ентити в джейсон конвертить самое то для MVP или написания чего-то на коленке

+ в дата ресте есть проекции, можно вообще не заморачиваться
#462 #962636
>>962629
Ну так купи, если нужна
#463 #962639
>>962629
для работы с бд нужна специализированная программа, а не идея
962647
#464 #962647
>>962639
ну, в плане, чтобы соединение настроить
JDBC
962652962661
#465 #962652
>>962647
Ват? Соединение ты из кода пишешь, лол.
Просматривать также можно сторонним софтом.
962658
#466 #962658
>>962652
ну да, но, чтобы ж подключить драйвер, нужно то поле, Databases
962664
#467 #962661
>>962647
ты гуем чтоли настраиваешь?
#468 #962664
>>962658
открой для себя maven
962701
#469 #962701
>>962664
Пиздец, пошёл ты нахуй с такими советами. Меня аж передернуло, когда я про него вспомнил.
962707962967
#470 #962707
>>962701
Толсто
962775
#471 #962775
>>962707
Че толсто? Я серьёзно говорю. Не понимаю, как можно в 2017 году им пользоваться.
962789
#472 #962789
>>962775
Что не так с ним? С учетом того, что груви (и gradle вместе с ним) как бы канул в Лету?

Да и IDE иногда с трудом жрет этот gradle
962796962824
#473 #962796
>>962789

>gradle вместе с ним как бы канул в Лету?


Насколько знаю не без помощи владык котлина ;)
#474 #962817
>>962202
бамп
#475 #962824
>>962789
Можно подробнее почему gradle умер?
962845
#476 #962845
>>962824
Его автор сказал "скала все равно лучше".
962850
#477 #962850
>>962845
На gradle это как влияет? Никто не заставляет на экзотическом Groovy писать весь проект.
962852
#478 #962852
>>962850
А гредл всегда был билд тулзом для груви. Для проекта на яве он банально избыточен.
#479 #962881
Всем привет. Может кому советом будет не впадлу помочь, потому что не у кого толком спросить. В чем суть: На сколько сложно вообще джаверу релоцироваться из говностраны я например из Беларуси с говнообразованием в райские штаты и прочую европу? И легче ли это сделать учась в вузе там?
#480 #962883
Хочу перекатиться к вам с крестов. Есть книжки/туториалы для не новичков?
962885962889
#481 #962885
>>962883
книжку брюса эккеля можешь почитать по синтаксису
#482 #962889
>>962883

>Хочу перекатиться к вам с крестов. Есть книжки/туториалы для не новичков?


>



прочел только эффектив джава, 2.5 года джава макака, полет норм

а, ну и по джава 8 прочел книженку, там всего 120 страниц было

вообще по джаве пробегись и котлин учи
#483 #962891
Почаны, если у класса нет стейта, то он автоматически thread-safe?
962892962895
#484 #962892
>>962891
Поздравляю, ты изобрёл static-методы в ЖАббе.
#485 #962895
>>962891
И с чего бы? Вот если еще и аргументы методов представляют собой immutable objects, вот тогда твоя попка прикрыта.
962903
#486 #962903
>>962895
Во, спасибо, это все разъяснило.
#487 #962909
Кстати, а чем тогда собирать, если Maven и Gradle ненужное говно, как тут пишут?
Я пытался SBT освоить, пиздец какой-то, непонятно ни хрена, документации нормальной нет.
962915
#488 #962913
>>962614
А на чем еще должен сидеть жабогосподин? Сперму хлебают только дотнет петухи, которые хуже червя похапешника.
962922962958
#489 #962915
>>962909

не слушай местных дебилов, градл или мавен значения не имеет для 95% проектов

SBT это вообще для скалы

решай проблемы по ходу возникновения, не накручивай

ну и если аллергия на xml, то градл
#490 #962922
>>962913
Коммерческие продукты всегда лучше опенсорс говна. Жаба тоже коммерческая
962969
#491 #962958
>>962913
чем тебе дотнетчики не угодили?
#492 #962965
Вопрос от вкатывающегося: на unix системах разработка отличается от винды? какие-то имплементации open jdk/jre. стоит ли укатываться на винду?
962974
#493 #962967
>>962701
Альтернативы кроме анта? cmake?
963257
#494 #962969
>>962922

>Коммерческие продукты всегда лучше опенсорс


толстовато
962972
#495 #962972
>>962969
для пользователя всегда лучше
для разработчиков всегда хуже
#496 #962973
Как сделать entityManager thread safe в EJB ?
962998
#497 #962974
>>962965
Сношишь open и ставишь нормальную проприетарную. Все просто
962988963091
#498 #962988
#499 #962998
>>962973
Насколько я помню, вся ejb-инжектуемая хуита всегда thread-safe.

У нас на работе возник срач. Длинные чейны из стримов (Stream.of(huita).map(...).map(...).filter(...).map(...)...) - хорошо или плохо?
963004963018963286
#500 #963001
>>962499
Пока что ничего такого не нашёл, чтобы при этом не ломалась разметка. Вообще я удивлён, я думал это достаточно часто встречающайся задача.
И проблема втом, что это не просто пара обзацев текста с картинками, а ебанутые печатные форм с таблицами, прочерками, местами отформатированные пробелами и всё такое, пиздец, в общем.

>>962500
Это понятно, но мне нужна конвертация в рамках уже существующего приложения.
963021963088
#501 #963004
>>962998
Хоть хуита выглядит круто и удобно, но в функциональном стиле в легкую можно сделать нечитаемую хуиту, логику которой ты сам забудешь через неделю. Мне кажется, в разумных приделах норм. А вообще на работе до сих пор на 7 сидим, так что я с фичами 8 только поверхностно знаком.
#502 #963018
>>962998

>хорошо или плохо?


плохо читаема и нет возможности закомментировать часть.
Каргокульт на функциональщину
963286
#503 #963021
>>963001
может через какой-нибудь виртуальный принтер в pdf?
963038
#504 #963038
>>963021
Да хуй знает, наверное можно как-то через опен офис, надо поискать. Пока что всё, что я узнал - пакетов для конвертации дохуя, но все они нихуёво так стоят.
#505 #963067
Анон,можно ли в Spring security привязать авторизацю из xml файла к сущностям в бд?
Ну типа у меня есть в бд таблица с User ,там есть user name="vasya" lname="popov" password="huilo",в настройках спринга висит <security:authentication-manager>,где все эти юхеры перечисленны. Можно как то донастроить в этом файле,что бы при аутентификации эта хуйня лезла в бд,связывала username из файла с username из бд и открывала операции для работы конкретно с ЭТИМ user из базы данных
963070963309
#506 #963070
>>963067
upd
или надо через jdbc связывать?
#507 #963077
Есть ли что-нибудь не связанное с вебом и Android? Раньше (года 2 назад) попадалась вакансия на микроконтроллеры, сходил на собеседование и соснул, ибо не знал OSGi.
963094
#508 #963088
>>963001

>Это понятно, но мне нужна конвертация в рамках уже существующего приложения.


Тогда можешь и не пытаться. Или платить дохера денег. Enjoy microsoft proprietarshina
963099
#509 #963091
>>962974
не слушайте этого проприетарного дауна. оставляй openjdk, всё равно не увидишь разницы (её и нет почти)
963109
#510 #963094
>>963077
если англ в порядке, то попробуй удалённо на зарубежные компании с Javafx. на ней тоже есть проекты
#511 #963099
>>963088
Ладно, может можно придумать какое-то альтернативное решение? Суть в том, что у пользователя должна быть возможность просматривать превьюшки документов, хранящихся в системе, собственно поэтому и происходит конвертация доков в пдф.
#512 #963107
>>963099
И почему нельзя отдельным openoffice или шарповским сервисом сделать?
963121
#513 #963109
>>963091
У оракла VM быстрее, а так нет разницы, 8 версию OpenJDK поддерживает.
#514 #963111
>>963099
Вот какая-то библиотека для docx:
http://www.docx4java.org/trac/docx4j
963121
#515 #963112
>>963099
Вот это еще посмотри:
https://code.google.com/archive/p/jodconverter/
963121
#516 #963121
>>963111
Смотрел. Их конвертер не особо-то бесплатный, а старые версии глючат.
http://converter-eval.plutext.com/

>>963112

>WARNING! This project is no longer maintained The code has been moved to GitHub in the hope that somebody else will fork and maintain it.


Вот это немного смутило, если честно. Да и всё равно нужен установленный ОО.

>>963107
Потому что я тупой и боюсь, что это будет сложно, а я никогда ничего такого не делал. Ну и сервер на стороне заказчика, доступа к нему нет, а я слабо представляю, как это всё должно настраиваться.
Хотя, похоже что у меня нет выбора, видимо придётся так и делать.
963144
#517 #963144
>>963121

>Потому что я тупой и боюсь, что это будет сложно


Так почитай, как сервисы на C# делать. С микрософтовским офисом он точно из коробки умеет работать, редактировать документы, выполнять VBA скрипты... На работе когда-то этим занимался.
Если нужно именно на жабе - ищи библиотеки для прикручивания к ней COM/ActiveX, это единственный способ доступа к вордовскому API.
#518 #963149
PDF кстати можно создавать и при печати (VBA скриптом) через виртуальный принтер, если настроить его на сервере.
#519 #963223

> Stream.of(huita).filter(...).forEach(...)


Поясните в каком порядке это все выполняется. Я правильно понимаю что сначала массив полностью прогонится через filter, а потом то что прошло проверку еще раз в forEach? То есть 2 отдельных цикла. Тогда если мне нужно исключить всего 1 элемент, то получается O(n^n - 1), когда в обычном цикле эти 2 операции можно сделать за линейную сложность.
963263
#520 #963257
>>962967
Gralde и Bazel.
#521 #963263
>>963223
нет, каждый элемент пройдёт через цепочку только один раз.
первый элемент проходит через фильтр - дальше к нему применяется то, что написано в foreach, второй не прошёл фильтр - отбрасывается.
#522 #963286
>>963018
Двачую
>>962998
если в комбинаторах неоднократно что-то большее, чем method references или если лямбды из больше чем одной строки, очевидно хуйня получается. Как раз наблюдаю один такой проект - сплошная лапша нечитаемая.
#523 #963298
Где перекат епта?
963301963302
#524 #963301
>>963298
ща, обожди
#525 #963302
>>963298
Мы мертвы.
#527 #963309
>>963067
Может и можно, но ведь я не полезу за тебя в гугл, малыш.
#528 #963312
>>963099

>превьюшки документов


А при чем тут pdf?
#529 #963358
Пацаны, поясните за Maven, что это и для чего?
963360
#530 #963360
>>963358
Хуйня для даунов.
963396
#531 #963396
>>963360

>kykareky


Ок, а по сути что-нибудь можно сказать?
#532 #963397
>>960458
Там только ридеров райтеров несколько штук разных, с разницей в том, что одни исключения бросают, а другие нулл.
963453
#533 #963399
>>960775

>невменяемое говно из жавовских опенсорсных быдлиотек, сдобренное говнокодом студентов под управлением виабушных акхикектогов.


Люто, бешено двачую, на неделю меня хватило, но не более. В жаву больше ни ногой.По крайней мере бесплатно..
#534 #963453
>>963397
Нихуя не понял, можешь нормальным языком писать, а не джава сеньеором.
963494
#535 #963494
>>963453
Дебил не осилил понятие декораторов.

И не догадывается, что в его динамикодрисне они тоже есть, только могут называться аляповато и бессистемно, а для ридеров/райтеров в utf8, скажем, выпускают даже несовместимые версии языка/vm.
404 Кб, 1600x904
#536 #963842
Пагни, по хардкору, что нельзя сделать на Питоне или ЖСкрипт, то что можно сделать на Джаве??? Чем он отличается и чем он особо хорош. Объясните пожалуйта буд-то вы объясняете своему инвестору, которые выделяет деньги одному из трёх стартапов, 1 - Джава, 2 - Питон, 3 - ЖаваСкрипт.
963845
sage #537 #963845
>>963842
Что угодно можно сделать на чем угодно. Вопрос в стоимости, времени на разработку, сложности дальнейшей поддержки.
963858964443
#538 #963858
>>963845
Ок. Тогда почему джава популярнее остальных языков, он что, дешевле? Быстрее? -Нет. Так почему тогда.
963861964426
sage #539 #963861
>>963858
Популярнее JavaScript и PHP из-за низкого порога вхождения.
963912
#540 #963912
>>963861

>из-за низкого порога вхождения.


Что это значит? Легкий язык?
45 Кб, 927x647
#541 #963930
Котаны, нужен ваш совет. До недавних пор писал исключительно бекэнд, а тут внезапно потребовалось педалить ещё и фронт. Какую книгу/цикл статей можете посоветовать, чтобы в сжатые сроки уложить в голове кашу из жс, ангуляра и рактива? Сейчас каждый фикс превращается в жопную боль на весь день, потому что нет понимания, что и как там работает.
963933
#542 #963933
>>963930
Я, кстати, тредом промахнулся, но может это и к лучшем, наверняка тут ещё такие есть.
361 Кб, 745x690
#543 #964426
>>963858
Отвечайте же!
964437
sage #544 #964437
>>964426
Ответил тебе за щеку.
964625
#545 #964443
>>963845
За слова отвечаешь?
964448
sage #546 #964448
>>964443
Отвечаю тебе за щеку.
964625
54 Кб, 700x466
#547 #964625
>>964448
>>964437
Porvanka, smeni plastinu.
964944
sage #548 #964944
>>964625
Сменил тебе за щеку.
965011
33 Кб, 600x406
#549 #965011
>>964944
Накатил тебе за шеку дауну, дауну.
#550 #965648
Аноны,помогите студенту. У нас есть две сущности,Студент и Книга. Книги можно давать почитать другому студенту. Для этого надо использовать три таблицы
Таблица Книга(id,title)
Таблица Студент(id, name)
и таблица отношений книга+студент(внешний ключ на айди книги,внешний ключ на айди студента-владельца книги,айди текущего читателя)
Как это сделать? Пишу на java,так что и пишу тут
965649966113
#551 #965649
>>965648
upd
в качетсве бд использую h2
#552 #966113
>>965648
Берешь и делаешь. Что тебе не понятно?
Гугли jdbc, если совсем нулевый, и в путь-дорогу
#553 #970526
Здарова чайники, нужна ваша помощь. Вкатывают в кложур, нужна ваша помощь, есть у меня файл project-stadalone.jar, как мне теперь его распростронять вреди пользователей? Не будут же они его через консоль запускать в виде
java -jar target/uberjar/project-standalone.jar лол. Скажет JRE установлен на пеке, что дальше делать с этим jar архивом?
976911
#554 #976911
>>970526

>


дабалкликни по джарнику ёмаё
976976
#555 #976976
>>976911
Спасибо, о великий некромант :) Я то и сам понял, только нихуя не происходило. Была ошибка одна, но гордый жава-машин стеснялся об этом сообщить, уже пофиксил.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 24 мая 2017 года.

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

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