М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 30 августа 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

302 Кб, 1818x1000

Официальный™ тред Java #39 27 Июл, 13:29 #806729 В конец треда | Веб

Шапка треда https://github.com/qqqlll/Java-Thread/wiki

Предыдущий тонет здесь >>798959 (OP)

Ответы>>808226>>808822>>810058>>810423>>811840

27 Июл, 13:58 #2 #806759

Первый нах

27 Июл, 15:28 #3 #806805

Вы че, ебанулись? Какого хуя нет unsigned? Если мне надо индекс массива передать, мне что, блять, каждый раз нужно проверять, что он >= 0?

Ответы>>806808>>806810>>810936

27 Июл, 15:34 #4 #806808

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

27 Июл, 15:42 #5 #806810

>>806805
Ты дебил отрицательный индекс передавать? Проверяй контракты на стыке интерфейсов.

Ты дебил вообще массивы использовать? Работай с коллекциями.

Ответы>>806813

27 Июл, 15:45 #6 #806813

>>806810
В контракте int, хуле. Передам-ка -142148.

Ответы>>806821

27 Июл, 15:52 #7 #806821

>>806813
А то что int ограниченной точности, это тебя уже не смущает?

Если уж такой фашист - используй библиотеки, в которых Unsigned реализованы в виде объектной обертки (вот только из-за соображений эффективности они обычно mutable и api у них ебанутое из-за экономии на сборке мусора). Но люди тебя не поймут.

27 Июл, 16:47 #8 #806839

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

Вот как я заебался переписывать.

Ответы>>806844>>806845>>806850>>807105>>807211

27 Июл, 16:59 #9 #806844

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

27 Июл, 17:00 #10 #806845

>>806839
http://projects.congrace.de/exp4j/ ?
Хз что там с точной арифметикой. Вообще можно гуглить по builder formula expresssion bigdecimal

http://stackoverflow.com/questions/7258538/free-java-library-for-evaluating-math-expressions

48 Кб, 236x200

27 Июл, 17:13 #11 #806850

>>806839
Алсо что заставляет вас брать язык не под свои задачи и потом ругаться где-то в интернете на форумах мол язык говно потому что вам не подошел? Ну не подошел язык, так возьми другой. Возьми язык под свои задачи, возьми хаскел, который придуман на математической базе. Отсутствие unsigned int это настолько изощренная мелочная и нереалистичная высосанная из пальца проблема, что вот хуже только спросить почему в Hashtable нельзя положить null.

Ответы>>806855>>806914

27 Июл, 17:33 #12 #806855

>>806850
Как будто кого-то интересует мнение народа из кубиклов.

Ответы>>806868

27 Июл, 18:02 #13 #806868

>>806855
А раз за это еще и платят то вопрос совсем неуместен.

27 Июл, 19:24 #14 #806914

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

Ответы>>806939>>806942>>806949

27 Июл, 19:58 #15 #806939

>>806914
I che blya?

27 Июл, 20:01 #16 #806942

>>806914
Это где суммы такие оперируются что в лонг не влазят? 9.223372e+18 хватит всем!

27 Июл, 20:05 #17 #806949

>>806914
Ну раз деньги, значит, формула не "вротебеная". И даже скорее всего реализована в какой-то библиотеке (йоба-энтерпрайз же) и для тебя вообще выглядит как

CompoundInterest.cacluate(1,2,3)

27 Июл, 23:46 #18 #807105

>>806839
Мог бы в котлине сделать.

Ответы>>807112

27 Июл, 23:52 #19 #807112

>>807105
А мог бы индусу зааутсорсить. Умные мысли то есть? Потому что я не слышал чтобы в котлин какие-то другие bigdecimal завезли.

Ответы>>807142

28 Июл, 00:26 #20 #807142

>>807112
Там перегрузка операторов есть, кловен.

Ответы>>807158>>807448

28 Июл, 01:24 #21 #807158

>>807142
Кловен тут только ты. Дважды уже.

28 Июл, 07:54 #22 #807211

>>806839
Не могущий в массовую замену регэкспом)000

28 Июл, 16:25 #23 #807448

>>807142
Ты со скалой перепутал

Ответы>>807456>>807563

28 Июл, 16:55 #24 #807456

>>807448
Ты со groovy перепутал

28 Июл, 19:27 #25 #807563

>>807448
https://kotlinlang.org/docs/reference/operator-overloading.html

Экстендишь бигдесимикал и наслаждаешься операторами.

Можно сделать отдельный котлин класс имплементящий интерфейс нужных операций и перенести туда код.

Потом в основном коде вызывать через полиморфизм нужную хуйню и всё.

38 Кб, 518x518

28 Июл, 23:39 #26 #807838

Сап, джависты.
Вопрос: Что пишут на Java? Я студентота по IT-специальности, изучаю Java самостоятельно уже полгода. И тут возник вопрос: а как, в общем-то, вкатиться? Давай-те на секунду представим, что у меня есть некоторый объём знаний, которого будет достаточно для, например, джуниора. Зашёл я на сайтик по поиску работу, увидел, что в моей мухасрани 350к нет объявлению по поиск Java-кодера. Анон, расскажи, как ты вкатывался. С чего начинал? Где и как искал работу?

Ответы>>807847>>807853

28 Июл, 23:46 #27 #807847

>>807838
Проще всего устроиться в консалтинг/интегратор джуном. Пару лет назад вакансий в ДСах хватало.

Ответы>>807862

28 Июл, 23:50 #28 #807853

>>807838
>изучаю Java самостоятельно уже полгода
Надеюсь ты уже понял что Java неудачный вариант для новичка. Язык сложный, возможностей мало, работы тоже мало, а на каждую вакансию десяток макак. Сейчас каждый школьник учит java, а потом не знает что делать с ним. Лучше попробуй Haskell. На нём и конкуренция пониже, и зарплаты больше, и сам язык понятней. Если никогда не занимался программированием, то начинать лучше всего с Haskell - после него другие языки учатся быстрее. Работы полно, платят отлично. По книгам. Если есть хоть немного знаний программирования, читай это: http://www.ozon.ru/context/detail/id/30425643/ Если совсем новичок, пойдет эта книга: http://www.ozon.ru/context/detail/id/28346038/ Ну и куча онлайн-учебников. Вот, например: https://anton-k.github.io/ru-haskell-book/book/home.html Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.

Ответы>>807859

28 Июл, 23:54 #29 #807859

>>807853
Когда я писал свой пост, то, конечно, понимал, что двач - не лучшее место для советов, но блять всё-таки понадеялся на то, что адекваты всё же снизойдут до меня.

Ответы>>807866

28 Июл, 23:56 #30 #807862

>>807847
Чтобы стать полноценным Java-программистом, мне по-любому придётся съёбывать в миллионик или ты можешь подкинуть идейку для заработка в мухасрани?

Ответы>>808001>>808018

29 Июл, 00:00 #31 #807866

>>807859
В смысле? Я тебе добра желаю, не каждый же день приходит нюфаг с таким вопросом.

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

29 Июл, 08:03 #32 #808000

Почему картинка не отрисовывается? ошибок нет.

Group root = new Group();
Scene theScene = new Scene( root );
theStage.setScene( theScene );

Canvas canvas = new Canvas( 400, 200 );
root.getChildren().add( canvas );

GraphicsContext gc = canvas.getGraphicsContext2D();

gc.setFill( Color.RED );
gc.setStroke( Color.BLACK );
gc.setLineWidth(2);
Font theFont = Font.font( "Times New Roman", FontWeight.BOLD, 48 );
gc.setFont( theFont );
gc.fillText( "Hello, World!", 60, 50 );
gc.strokeText( "Hello, World!", 60, 50 );
String path = "/resources/earth.png";
Snake.class.getResourceAsStream(path);
// URL location = Snake.class.getProtectionDomain().getCodeSource().getLocation();
Image earth = new Image( path);
gc.drawImage( earth, 1800, 1000 );
theStage.show();

Ответы>>808381

29 Июл, 08:04 #33 #808001

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

29 Июл, 08:34 #34 #808010

Приведите, пожалуйста, пример использования inner class. Не могу понять на кой черт они нужны.

Ответы>>808012>>808052>>808099>>808778

29 Июл, 08:39 #35 #808012

>>808010
До Java 8 их часто использовали вместо лябмд

Ответы>>808014

29 Июл, 08:49 #36 #808014

>>808012
Ок, ну а в 8 они не нужны нахер?

Ответы>>808026>>809226

29 Июл, 09:01 #37 #808018

>>807862
Честно хз, что работой в мухосранях, т.к. из своей свалил в ДС сразу после универа. Как вариант вкатится в андроид, написать что-нибудь своё, вообщем заиметь портфолио/профиль на гитхабе и пробовать устроиться на удаленку.

29 Июл, 09:28 #38 #808026

>>808014
Еще могу это добавить >>801026

sage 29 Июл, 10:10 #39 #808045

... > моча > ... > пехепе > говно > ... > джява = 1С = червь пидор

cега явадаунам

Ответы>>808050>>808058

29 Июл, 10:24 #40 #808050

>>808045
Жаль что всем похуй на твое мнение

29 Июл, 10:25 #41 #808052

>>808010
Хз, в яве и ее стандартных пакетах повсюду используются

29 Июл, 10:38 #42 #808058

>>808045
Че там в жс треде? Совсем плохо? WebAssembly пришел?

26 Кб, 649x537

20 Кб, 567x416

29 Июл, 11:34 #43 #808099

>>808010
Вместо ссылок.

29 Июл, 14:47 #44 #808226

>>806729 (OP)
Появилась необходимость освоить Java. Занимаюсь на JavaRush. Правильно ли я выбрал ресурс.

Ответы>>808236

29 Июл, 14:57 #45 #808236

>>808226
>Занимаюсь на JavaRush. Правильно ли я выбрал ресурс.
Тоже там занимался, теперь делаю сайтики на ангуляре и бэкенд немножко могу на ноде c(^_0)э

Ответы>>808239

29 Июл, 14:59 #46 #808239

>>808236
Я вообще занимаюсь АСУТП, но очень хочу оттуда уйти. Надеюсь, что в будущем это мне поможет.

29 Июл, 15:35 #47 #808291

Сап, джавабоги. Что можно читануть чтобы быстро перекатиться с убого шарпа в богоджаву?

Ответы>>808297>>808318

29 Июл, 15:38 #48 #808297

>>808291
SpeakingJS

29 Июл, 16:02 #49 #808318

>>808291
поясни за убогошарп, плес

Ответы>>808320

29 Июл, 16:05 #50 #808320

>>808318
язык божественен, но, когда дело доходит до ведра, сосёт.

Ответы>>808330

29 Июл, 16:11 #51 #808330

>>808320
> когда дело доходит до ведра, сосёт.
А когда доходит до iOS (в сравнение с джавой)?

Ответы>>808331

29 Июл, 16:12 #52 #808331

>>808330
до ios мне доходить пока не доводилось. моя цель сугубо ведро.

29 Июл, 16:20 #53 #808340

Что лично ты, анон, пишешь на Java? Что приносит тебе деньги?

Ответы>>808415

175 Кб, 848x1200

479 Кб, 2560x1440

104 Кб, 564x797

1142 Кб, 2500x1406

29 Июл, 16:30 #54 #808349

Сап, джавач.

Пишу бота который транслирует переписку из Skype чата в Gitter, пишу на Java, и буду рад, если вы вгляните на мой код и подскажете что и где плохо, и как это сделать лучше.

Также буду рад совету знатоков Gradle и Groovy по поводу срипта сборки проекта.

Ссылка на репозиторий - https://github.com/last-khajiit/skype2gitter

пиксрандом

Ответы>>808357>>808401

7 Кб, 196x230

29 Июл, 16:38 #55 #808357

>>808349
> *Utils.java

Ответы>>808407

29 Июл, 16:59 #56 #808381

>>808000
пиздец говнокод

Ответы>>808389>>808414

29 Июл, 17:04 #57 #808389

>>808381
зато трипл

29 Июл, 17:21 #58 #808401

>>808349
Хороший код: всё по делу, ничего лишнего.
Но в энтепрайзе такое не любят, там нужно чтобы позапутаннее было, с паттернами-хуятернами.

Ответы>>808407

29 Июл, 17:28 #59 #808407

>>808401
ну паттерны должны быть по делу, а когда у меня 4 класса, то городить ДипенденсиИнжекшоны, Стратегии и прочие Фабрики не вижу смысла. Если код будет разрастаться, тогда уже буду думать о таких вещах, пока просто хочу отладить приложение, вычистить хардкод и покрыть это дело тестами.

>>808357
> *Utils.java
что ты хотел этим сказать?

Ответы>>808431>>808453>>808492

29 Июл, 17:39 #60 #808413

дайте игру с жавараша про змейку с классами плз.

29 Июл, 17:40 #61 #808414

>>808381
пиздец это вообще-то не "продакшн", а пробный код посмотреть, как делаются игры, даун тупорылый. уебывай на свой коворкинг нищая мразина.

Ответы>>808416

29 Июл, 17:41 #62 #808415

>>808340
стриптиз танцую - вот это деньги мне приносит, а ты?

Ответы>>808417

29 Июл, 17:43 #63 #808416

>>808414
Если ты говнокодишь осознанно, то нахуй вообще кодить тогда макак? Еще и тут свои высеры постишь, в гости тоже немытым ходишь?

Ответы>>808433

29 Июл, 17:44 #64 #808417

>>808415
DeepBunnyHole не выдумывай. Возьми салфетку.

29 Июл, 17:51 #65 #808426

Википедии принес.

https://en.wikipedia.org/wiki/Maze_generation_algorithm

Ответы>>808428

29 Июл, 17:53 #66 #808428

>>808426
уноси её нахуй

Ответы>>808432

29 Июл, 17:55 #67 #808431

>>808407
>что ты хотел этим сказать?
Тебе экстеншен-методы для чего даны?

Ответы>>808441>>808444

91 Кб, 220x220

29 Июл, 17:55 #68 #808432

>>808428
Чо злой такой? Смотри гифочка.

Ответы>>808439

29 Июл, 17:56 #69 #808433

>>808416
я спрашиваю, почему картинка не рисуется, проблема уже найдена. нахуй пройди. а пример скопирован с сайта, маня.

Ответы>>808443

29 Июл, 18:11 #70 #808439

>>808432
Спасибо!

29 Июл, 18:13 #71 #808441

>>808431
В джаве? Их нет блять.

29 Июл, 18:13 #72 #808443

>>808433
тогда дам тебе один по настоящему ценный совет
дропай этот сайт, хуже чем писать свое говно, это учится на примерах чужого говна, только время потеряешь, а и так придется потом переучиваться

Ответы>>808491

29 Июл, 18:14 #73 #808444

>>808431
>кстеншен-методы
>в Java-трэде
ты не ошибся трэдм?

29 Июл, 18:22 #74 #808453

>>808407
Пиздец в том, что *Utils - это набор статических утилитных методов, а у тебя utils передается в utils и там начинается какая-то ебатень.

Ответы>>808457>>808463

29 Июл, 18:27 #75 #808457

>>808453
т.е. тебе не нравится название классов?
>*Utils - это набор статических утилитных методов
это какой-то кодконвеншн?

Ответы>>808458>>808468

29 Июл, 18:28 #76 #808458

>>808457
Да. Точнее антипатерн.

Ответы>>808460>>808462>>808464>>808469

29 Июл, 18:29 #77 #808460

>>808458
не встречал раньше, спасибо, погуглю

29 Июл, 18:30 #78 #808462

>>808458
В джяву экстеншн методов не завезли, приходится это терпеть.

Ответы>>808465

29 Июл, 18:31 #79 #808463

>>808453
> набор статических утилитных методов
Вроде везде пишут, что это некошерно, и надо делать синглтоны.

Ответы>>808473>>808484

29 Июл, 18:32 #80 #808464

>>808458
ну вот допустим в разных абсолютно автономных классах у тебя используется один и тот же метод, с хуяли тогда вынос этого метода в отдельную АБСОЛЮТНО ЧИСТУЮ функцию является антипаттерном?

29 Июл, 18:32 #81 #808465

>>808462
Завезли же, в 8-ю, в интерфейсы.

Ответы>>808467

29 Июл, 18:34 #82 #808467

>>808465
Это не то. Если сорцы твои, то еще можно как угарелый навешивать на все подряд интерфейсы, полные дефолтных методов, а если нет?

Ответы>>808980

29 Июл, 18:35 #83 #808468

>>808457
Конвешн-хуйвеншн. Это просто сложившаяся практика. Я бы на твоем месте сделал что-то типа:
class SkypeWorker {
void setCredentials(String login, String passord){...}
void setListener(SkypeListener listener){...}
void start(){...}
}

interface SkypeListener {
void onMessage(String name, String message);
}

Ну а имплементацию интерфейса хоть в анонимным классом, хоть как.

Не бывает на 100% правильного кода, но мой подход считаю понятным для чтения и понимания, а когда написано одно а там другое - это плохо.

Ответы>>808471

29 Июл, 18:35 #84 #808469

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

29 Июл, 18:36 #85 #808471

>>808468
Спасибо за пример!

29 Июл, 18:36 #86 #808473

>>808463
На заборе тоже пишут.
Накидай плюсы и минусы каждого подхода и решай сам.

Ответы>>808780

29 Июл, 18:54 #87 #808484

>>808463

Нужно кодить с учетом ООП.
Работа с абстракциями - функции отвечающих за эти абстракции действий принадлежащих объекту который должен выполнять эти действия.

Какое-то специфическое утилитарное байтоебство - в байтоебном методе.

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

Ответы>>808780

29 Июл, 19:05 #88 #808490

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

Ответы>>808493

29 Июл, 19:07 #89 #808491

>>808443
А в чем конкретно говнокод ты можешь пояснить? в том что сцена рисуется кодом, а не в FXML?

29 Июл, 19:07 #90 #808492

>>808407
>> *Utils.java
Вынеси это хотя бы в отдельный пакет "common" что бы с бизнес-логикой не смешивались

Ответы>>808494

29 Июл, 19:11 #91 #808493

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

Ответы>>808538

29 Июл, 19:13 #92 #808494

>>808492
по утилзам уже понял, зарефакторю.

А есть спецы по грэдлу? гляньте билд скрипт, плиз

Ответы>>808523

29 Июл, 19:14 #93 #808495

Что можно на спринге написать, чтобы было не стыдно показать на собеседовании?

Ответы>>808502>>808781

29 Июл, 19:21 #94 #808502

>>808495
программу

Ответы>>808515

sage 29 Июл, 19:35 #95 #808515

>>808502
Уебище, опять на связь выходишь?

Ответы>>808517

29 Июл, 19:36 #96 #808517

>>808515
дада, я слушаю (:

29 Июл, 19:54 #97 #808523

>>808494
Пододжди до gradle 3.0, там наконец-то появится статическая типизация и подсказки в IDEA.

29 Июл, 19:59 #98 #808528

Посоветуйте вкатывающемуся в джаву годную книженцию по сему язык

Ответы>>808529>>808530>>808532>>808543

29 Июл, 20:01 #99 #808529

>>808528
начинай с haskel для JVM

29 Июл, 20:01 #100 #808530

>>808528
Thinking in Java, Bruce Eckel

29 Июл, 20:10 #101 #808532

>>808528
https://www.ozon.ru/context/detail/id/20371540/
Хватил что бы устроиться джуном Luxor

29 Июл, 20:45 #102 #808538

>>808493
потому что каждый второй коммент заканчивается фразой "иди в мак, с таким говнокодом работу не найдешь". такие жирные проекции.

3780 Кб, Webm

29 Июл, 21:03 #103 #808543

>>808528
Шапку для кого написали?

29 Июл, 23:40 #104 #808593

Такс, ебать, поступил на работу джуном, а там в огромном тырпрайз-прожекте javaee чистая, soap, неебическая куча нативных sql-запросов и ант (хотя, они сказали, что скоро на гредл пересядут, слава господу нашему, христу). И, блядь, самое главное - проект-то сделан немцами для немцев, не русскими ваньками. И что, так везде? Залупу за воротник, а не современные технологии?

Ответы>>808595

29 Июл, 23:43 #105 #808595

>>808593
Ну а ты чего ожидал от огромного тырпрайза? Он же до ужаса инертен в этом плане, современные технологии они в молодых стартапах да и то не всегда

Ответы>>808598

29 Июл, 23:47 #106 #808598

>>808595
но это еще ничего, вот в госконторах и некоторых банках
все еще люди на кобол и дб1 сидят

Ответы>>808794

29 Июл, 23:50 #107 #808600

Ну хотя бы сборщик вместо анта в 2016-то можно намутить. Алсо, было забавно sonar прикручивать к этой махине: несколько десятков тысяч code smell'ов и три-четыре багов и уязвимостей.

Ответы>>808616

30 Июл, 00:47 #108 #808616

>>808600
>три-четыре тысячи

30 Июл, 02:11 #109 #808640

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

буду признателен, если пояснишь мне за профиты использования nginx в качестве прокси для java приложений (проще говоря, нахуй оно нужно то?). у меня слишком туго с пониманием этой хуйни, поэтому на пальцах, в несколько предложений, коротко о сути, пожалуйста.

34 Кб, 655x542

42 Кб, 619x599

36 Кб, 697x527

13 Кб, 320x320

30 Июл, 05:30 #110 #808670

Ответы>>808682>>808783>>809257>>809276>>809303>>809473

30 Июл, 09:39 #111 #808682

>>808670
Требования высокие? Так вродеж норм и зп наверное тоже.

Ответы>>808684

30 Июл, 09:58 #112 #808684

>>808682
#Хэштэги#Там#Где#Они#Не#Уместны
Вин-вин, хуин-хуин
Мы такие ПаСиТиФФнЫе!
У нас Фсе ДруК дРуКу улыбаЮццА! =))))))))

Ответы>>808687

30 Июл, 10:11 #113 #808687

>>808684
На это не обращай внимание, а с требованиями что?

30 Июл, 11:58 #114 #808715

Почему не пашет? Должно увеличивать размер окна на 25 пикс.

http://pastebin.com/s7g9pscC

Ответы>>809105

30 Июл, 14:18 #115 #808778

>>808010
addListener в AWT/Swing типичный пример. Нужны, чтобы не создавать лишних сущностей (имен). Но лучше, где возможно, использовать лямбды.

30 Июл, 14:21 #116 #808780

>>808473
>>808484
Я использую синглтоны там, где есть данные (т.е. изменяемое состояние), статические методы - как набор чистых функций (как в java.lang.Math).

30 Июл, 14:22 #117 #808781

>>808495
Имиджборду.

30 Июл, 14:27 #118 #808783

>>808670
> Но главное, зачем мы с утра спешим на работу - интересные задачи
gans_spb/О программистишках

Ответы>>808786

30 Июл, 14:29 #119 #808786

>>808783
Что такое интересный проект? Например, это постройка марсохода, разработка алгоритмов для работы лунного модуля или там лазарной пушки. На худой конец, поиск лекарства от рака. Но когда какой-нибудь сраный портал или недобитый стартап называют интересным проектом только потому, что так решили его создатели, надо сделать шаг назад и спросить себя — не пытаются ли меня поиметь? Потому что «интересный проект» — такая же абстрактная и сугубо субъективная вещь, как и «вкусный пирожок». Никто еще ни разу не признался, что у них проект скучный и неинтересный, хотя таких проектов 99.999%. Развод из той же темы — «бонусы» и «система поощрений» — это когда ты вкалываешь как проклятый и тебе может единоразово накинут в конце года пару десятков баксов. Дадут на одну ветку бананов больше. Молодец! Возьми печеньку с полки. Заслужил.

Ответы>>808809>>808873

30 Июл, 14:35 #120 #808794

>>808598
В Рашке кобола нет, используют 1C (он появился еще в начале 90-х).
(Visual) FoxPro в госконторах очень любят.

30 Июл, 14:49 #121 #808809

>>808786
С такой точки зрения фейсбук тоже не интересный проект.

Ответы>>808946

30 Июл, 14:57 #122 #808822

>>806729 (OP)
антоши, в портфолио какие программы сделать?

30 Июл, 15:31 #123 #808873

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

Ответы>>808946

30 Июл, 16:14 #124 #808946

>>808809
Не вижу в фейсбуке ничего интересного.

>>808873
Обычно когда говорят "интересный проект", то подразумевают как раз нематериальную заинтересованность. Ну типа как у Linux разработчиков.

Ответы>>808950

30 Июл, 16:16 #125 #808950

>>808946
>как у Linux разработчиков.
А какая у них нематериальная заинтересованность?
Если ты хотел сказать про OpenSource сообщество, то такая работа вроде же не оплачивается?

Ответы>>808976

30 Июл, 16:34 #126 #808970

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

30 Июл, 16:40 #127 #808976

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

30 Июл, 16:45 #128 #808980

>>808467
Возможно, еще добавят. В кресты вот уже собираются. Лямбды в жабе тоже появились после выхода нового стандарта C++, до этого все жатники кричали, что они НЕНУЖНЫ, и им достаточно анонимных классов.

30 Июл, 23:24 #129 #809105

>>808715
Ну помоги анон.

31 Июл, 00:54 #130 #809147

В нашем треде есть пришедшие к успеху? Которые с нуля до работки докачались.

Ответы>>809212>>809251>>809800

31 Июл, 00:56 #131 #809151

Чем отличается состояния потока waiting и blocked? И правильно я понимаю, что разница между notify и notifyAll по сути в том что во втором случае потоки которые не займут монитор станут blocked даже елси до этого были waiting?

Ответы>>810200

31 Июл, 01:41 #132 #809170

Ох не могу больше, какая же джава отвратительная. Как будто специально делали как хуже.
Вот нахуя нужен enum, если это фактически класс, а не перечисление? Зачем плодить объекты, если мне нужен простой алиас числа?

Ответы>>809217>>809228

31 Июл, 08:44 #133 #809212

>>809147
В январе 2015 сидел без работы, без опыта и без понимания в какую сторону двигаться.
Сейчас зп 50к милионник мухосранск. Нет тян нет друзей, по вечерам хуярю код.

Ответы>>809638

31 Июл, 09:01 #134 #809217

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

31 Июл, 10:00 #135 #809226

>>808014
Напиши свой однонаправленный лист без использования коллекций.

31 Июл, 10:12 #136 #809228

>>809170
Jvm может и не будет множить объекты.
Алсо, енамы в лжаве, это не просто алиасы к числам.
Нужен простой алиас к числам – сделай класс с final константными числовыми полями.

31 Июл, 11:11 #137 #809251

>>809147
В декабре написал хелловорлд. Сейчас 80к+50к квартальная премия.

Но это не мертвая джава, а модный JS и нода.

Ответы>>809638

31 Июл, 11:25 #138 #809255

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

Ответы>>809266>>809284

31 Июл, 11:26 #139 #809257

>>808670
лепить жаву на быдловебкодинг - какое же это убожество, просто просер ресурсов.

Ответы>>809264>>809268

31 Июл, 11:39 #140 #809264

>>809257
двачую, джява там не затащит, её место - исключительно на параше кофемолках.

31 Июл, 11:46 #141 #809266

>>809255
Печет, плохо без куньчика :(

31 Июл, 11:48 #142 #809268

>>809257
Джва чайка. Пилить бекенд магазина рандомных ключей для ксго на джаве это дичайшее извращение.

31 Июл, 12:00 #143 #809276

>>808670
ой ну все, бесплатной стоматологией они меня точно уломали, уже бегу паковать чемоданы и заказывать билет в ДС.

31 Июл, 12:04 #144 #809284

>>809255
Блохо без сельди.
мимо-бохач

53 Кб, 800x331

31 Июл, 12:22 #145 #809297

только что успешно применила паттерн Strategy в своей змейке. это первый раз.

Ответы>>809380

31 Июл, 12:27 #146 #809303

>>808670
Бесплатная стоматология это новый тренд, просто на западе это охуенный бенефит, ввиду того, сколько там это стоит. Наши жуёбки просто бездумно копируют.

Ответы>>809333

31 Июл, 13:06 #147 #809333

>>809303
У нас нормальный стоматолого дохуя стоит, 2 500 рублей за один зуб, учитывая зп по мухосрани 13 т.р. - это дохуя. У нас же ультра-капитализм, маня.

Ответы>>809400

31 Июл, 13:56 #148 #809380

>>809297
Так сельдь, суп с сиськами быро.

Ответы>>809511

6 Кб, 200x195

31 Июл, 13:56 #149 #809382

Pepe кондер?

31 Июл, 14:19 #150 #809400

>>809333
>2 500 рублей за один зуб
Минимальный рейт в раше 0.65$, 40$ за зуб.
Минимальный рейт в мурике 8$, 1500$ за зуб.
Итого, в раше дешевле в 3 раза, там блять даже простое обследование >100$ стоит, приходится к латиносам кататься.

Ответы>>809406

47 Кб, 604x422

31 Июл, 14:24 #151 #809406

>>809400
Медстраховка от работодателя? Персональная медстраховка? Obamacare для совсем нищуков? НАХУЙ ВСЕ ЭТО! БУДУ САМ ПЛАТИТЬ ЗА ВСЕ

31 Июл, 16:04 #152 #809473

>>808670
>3 года
>java core
ну ведь если мозги есть то кор можно и за пол года - год освоить как бог

Ответы>>809560

31 Июл, 16:30 #153 #809498

Охуенно. Решил учить Джаву, скачал какую-то книжку для детей. Вряд ли дети осилят даже первую главу, но похуй. Там предложили скачать еклипс. Так вот, почему в нём вместо черновика запускается класс?

Ответы>>809546>>809618

31 Июл, 16:47 #154 #809511

>>809380
на работу хочешь взять? только учти, за сиське доплатить придется.

Ответы>>809547

31 Июл, 17:16 #155 #809546

>>809498
Ты слишком тупои, иди в ЖС тред. бля.

31 Июл, 17:18 #156 #809547

>>809511
А вдруг мне не понравицца? Давай смирненько запили супчик, а там посмотрим.

113 Кб, 768x888

31 Июл, 17:26 #157 #809555

Какую систему сборки посоветуете юному падавану, вкатывающемуся в Java? Ответ аргументируйте, почему именно она.

Ответы>>809582>>809583

31 Июл, 17:32 #158 #809560

>>809473
С мозгами щас не берут. Нужны те, что без мозгов. http://ebanoe.it/2016/07/20/shitcoders/

Кстати, кто-нибудь объяснит мне термин "сыроварня"?

Ответы>>809577>>809583>>809585

31 Июл, 17:43 #159 #809577

>>809560
Проходит время, человек втягивается. Вроде и подачки с барского стола неплохие, всё становится таким родным и таким ебаным. Постепенно на его бледных пальцах вырастают перепонки (да, прямо как у лягушек) — так чужое гавно разгребать удобно. И тут БАХ! Тебе пизда. Теперь ты уже и средний код от говна с трудом отличаешь. Теперь ты — ебаная жалкая амфибия. И на следующем стендапе начинаешь новенькому заряжать, чтобы он не впрягался. Круг замкнулся.

БОМБАНУЛО ЧЕТ

Ответы>>809578

31 Июл, 17:44 #160 #809578

>>809577
>да, прямо как у лягушек
Как у ЖАБ.

31 Июл, 17:47 #161 #809582

>>809555
Мавен для понимания как строить проект, после этого переходить на грабл

31 Июл, 17:47 #162 #809583

>>809555
Maven. Потому что самая популярная.

>>809560
> сыроварня
Это dou

Ответы>>809588

31 Июл, 17:48 #163 #809585

>>809560
>"сыроварня"
dou.ua

31 Июл, 17:49 #164 #809588

>>809583
Благодарю. Я тоже подумал, что если щас анон не ответит, то буду использовать maven, т.к. часто упоминается в вакансиях.
Про доу- а за что его так прозвали? Причем тут сыр и украинский айти-форум?

Ответы>>809597

151 Кб, 910x302

35 Кб, 1019x450

31 Июл, 17:55 #165 #809597

>>809588
Из-за популярной пасты про сыр

Ответы>>809599>>809610>>809628

99 Кб, 900x600

94 Кб, 900x600

31 Июл, 17:58 #166 #809599

>>809597
Спасибо.

31 Июл, 18:15 #167 #809610

>>809597
Хохлуши охуели, уже свои мемасы русским людям впаривают!

Ответы>>809613

31 Июл, 18:22 #168 #809613

>>809610
Вам с хохлофобией в политач.

Ответы>>809677

31 Июл, 18:28 #169 #809618

>>809498
> вместо черновика запускается класс
Почему у тебя вместо мозгов используются опилки?

31 Июл, 18:36 #170 #809628

>>809597
Хочу тоже быть украинским программистом, покупать дорогие сыры за 500 гривен и жрать их.

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

Ответы>>809635

31 Июл, 18:46 #171 #809635

>>809628
Пиздуй на удаленку в хохляцкую галеру же

31 Июл, 18:50 #172 #809638

>>809212
>>809251
А как практиковались? Книжки ведь быстро забываются или это только у меня так?

Ответы>>809640>>809641>>809648

31 Июл, 18:52 #173 #809640

>>809638
А ты и читай, и пиши

31 Июл, 18:52 #174 #809641

>>809638
Ты просто тупой. Программирование не для тебя - дальше будет еще сложнее. Иди в системные администраторы.

31 Июл, 19:01 #175 #809648

>>809638
Я же написал. По вечерам хуярю код. Какие-то сложные вещи коммичу на гитхаб как заготовки, ибо запоминать это пиздец. Пару раз вбрасывал даже в этот тренд.

31 Июл, 19:50 #176 #809677

>>809613
Не, у меня хохлофилия, ты что!

31 Июл, 20:21 #177 #809701

Нихуя пока не знаю в /pr, рещил учить Жаву, начал с жавараш ? норм ?

Ответы>>809702

31 Июл, 20:23 #178 #809702

>>809701
Кобол выбираешь . Оракал положил хуй на javaEE и сама джава медленно умирает . Будущее за универсальными языками типа JS . Рекомендую .

Ответы>>809776

86 Кб, 632x604

31 Июл, 21:18 #179 #809724

Сап, джависты. Уже полгода изучаю Java и вот недавно заметил, что работодатели по найму Java-кодеров в требованиях, помимо самой Java, указывают ещё и вот этот Web-блок (назовём его так): JavaScript, HTML и CSS, да и много статей читал, где тоже джависты это учат. В общем, вопрос: Надо ли Java-программисту знать вот эти JavaScript, HTML и CSS?

Ответы>>809729>>809733

31 Июл, 21:19 #180 #809725

Посоветуйте книгу на русском , решил начать программировать на Java.

Ответы>>809727>>809733

31 Июл, 21:20 #181 #809727

>>809725
В гугле забанили? Читай Хорстаманна "Java Core".

Ответы>>809728

31 Июл, 21:21 #182 #809728

>>809727
>Хорстманна
Фикс.

31 Июл, 21:23 #183 #809729

>>809724
надо

31 Июл, 21:26 #184 #809733

>>809724
Нужно изучать JS, потому что JS нужен как на фронте, так и на бэке, а джава не нужна. Иди к ним в тред.
>>809725
И ты тоже. Только английский еще выучи.

Ответы>>809735

31 Июл, 21:27 #185 #809735

>>809733
Лол. А почему не в Haskell-тред?

Ответы>>809746

31 Июл, 21:31 #186 #809738

а я C#

Ответы>>809744

31 Июл, 21:35 #187 #809744

>>809738
А я твоя мамаша.

31 Июл, 21:36 #188 #809746

>>809735
Потому что хаскель ненужная параша. Только повыебываться перед самим собой.

Ответы>>809798

31 Июл, 21:40 #189 #809749

Если у меня есть мап <Integer, Object>, и я всегда обращаюсь к ней через примитивный int, будет ли оверхед?

Ответы>>809759>>809763>>809784

31 Июл, 21:43 #190 #809754

говорят C# лучше чем java
ето правда?

Ответы>>809759>>809763>>811123

31 Июл, 21:50 #191 #809759

>>809749
>>809754
нет

Ответы>>809768

31 Июл, 21:55 #192 #809763

>>809749
Анбоксинг.
>>809754
Да.

31 Июл, 22:04 #193 #809768

>>809759
Погуглил, кэшируются только инты от -127 до 127. Значит, с большими числами будет оверхед.

Ответы>>809771

31 Июл, 22:09 #194 #809771

>>809768
Зачем ты думаешь о оверхеде? Пусть jit думает. Лучше бы программировать начал

Ответы>>809773

31 Июл, 22:11 #195 #809773

>>809771
Просто он не знает что преждевременная эякуляция - корень всех зол

Ответы>>809779>>809786

31 Июл, 22:12 #196 #809776

>>809702
>джава умирает
Уже лет 20 как умирает.

31 Июл, 22:13 #197 #809778

будущее за C#

31 Июл, 22:15 #198 #809779

>>809773
Про эякуляцию знаю, но у меня в цикле это хуячится. И погуглив бенчмарки, разница в скорости - десяток раз. Когда я уже сейчас могу парой строчек сделать не мап интеджеров, а обычный Object[].

Ответы>>809784>>809786

31 Июл, 22:22 #199 #809784

>>809749
>>809779
Зачем тебе Object в value? Ты ведь знаешь, что люди Земли изобрели дженерики?

Ответы>>809789

31 Июл, 22:25 #200 #809786

>>809773
Именно
>>809779
А в чем проблема? Приложение уперлось именно в этом месте?

Ответы>>809789

31 Июл, 22:28 #201 #809789

>>809784
Я очень упростил пример.

>>809786
Пока нет. Но мне не сложно вбросить вопрос на сосаку и продолжить кодить другое место.

31 Июл, 22:31 #202 #809791

Норм ли делать класс abstract без конкретных методов? Чисто по логике у меня получается, что это именно класс, а не интерфейс, и не должно быть множественного наследования.

Ответы>>809831

483 Кб, 2300x809

31 Июл, 22:39 #203 #809798

>>809746
вот тут двачую
если ты не математик или физик то тебе нахуй хаксля не нужна, в прочем если физик то тоже не нужна
мимофизик
btw зацените какие вещи на жабе с биндингами к GL можно делать.

Ответы>>809802

31 Июл, 22:40 #204 #809800

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

31 Июл, 22:41 #205 #809802

>>809798
Говно.

регулярно смотрю стримы одного пиксель-арт артиста

Ответы>>809805

31 Июл, 22:43 #206 #809805

>>809802
Что есть, других художников у меня нет

тоже смотрю стримы одного годного пиксель артиста

Ответы>>809806>>809807

561 Кб, 1325x3000

31 Июл, 22:44 #207 #809806

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

Ответы>>809809>>809826

31 Июл, 22:45 #208 #809807

>>809805
Твой пиксель артист говно.

Ответы>>809813

31 Июл, 22:45 #209 #809809

>>809806
на планшете бы нарисовал декорации.
мимохудожница

Ответы>>809811>>809813

31 Июл, 22:47 #210 #809811

>>809809
Рисуешь слюной на членах?

Ответы>>809816>>809819

31 Июл, 22:47 #211 #809813

>>809807
он учится, а я движок пилю, что бы когда он научился и нарисовал мне годноту, в эту годноту можно было бы поиграть

>>809809
но я нищий, з\п нихуя

Ответы>>809819

sage 31 Июл, 22:50 #212 #809816

>>809811
сексистские шутки за 300 ммм))

31 Июл, 22:50 #213 #809819

>>809811
на твоем не буду, обиделся?
>>809813
а это обязательно должно быть в квадратах-пикселях?

Ответы>>809821>>809825

31 Июл, 22:52 #214 #809821

>>809819
Спс за подтверждение, хуйдожница))

31 Июл, 22:54 #215 #809825

>>809819
ну первоначально была идея сделать частично киберпанк пиксель-артом
а частично еще чем нибудь (например акварелью при переходе в параллельную реальность), но пока нашелся только один человек и он (скоро) может только в пиксели

31 Июл, 22:55 #216 #809826

>>809806
Но зочем это, если можно взять box2d+box2dlights и запилить динамическое освещение любого уровня охуенности, написав всего пару строк кода?

Ответы>>809837>>810259>>810265

31 Июл, 22:58 #217 #809831

>>809791
А в джаве и нет множественного наследования. Нет конкретных методов - делай интерфейс. Абстрактный класс тут не нужен.

Ответы>>809860>>810047

31 Июл, 23:02 #218 #809837

>>809826
> box2d+box2dlights
тяжеловесное вырождение же, к тому же не позволяющее контролировать весь процесс рендера
Свой велосипед он может и костыльный, но зато свой, родной, всегда знаешь чего от него ожидать и как все работает, а если что всегда можно прикрутить необходимое.

+Многому можно научится

Ответы>>809843

31 Июл, 23:05 #219 #809843

>>809837
box2d/box2dlights опенсорсные, тоже можно поковырять. другое дело, что там надо с++ знать

Ответы>>809849

31 Июл, 23:08 #220 #809849

>>809843
нативный что ли?
btw его или хотя бы просто Си и так придется знать когда с графикой работаешь на уровне большем чем просто отрисовка загруженной текстуры

31 Июл, 23:16 #221 #809860

>>809831
Так вот я и спрашиваю, если сделать его интерфейсом, то можно будет наследоваться от другого класса, что будет нелогично в моем случае.

Ответы>>809862

31 Июл, 23:18 #222 #809862

>>809860
если очень надо то ты можешь наследоваться от неабстрактного класса тоже

Ответы>>809868

31 Июл, 23:22 #223 #809868

>>809862
и сразу сдохнуть от рака мозга, надеюсь

Ответы>>809872

31 Июл, 23:27 #224 #809872

>>809868
Ну сообразность такого поступка это уже тема для другого разговора.

01 Авг, 08:04 #225 #810047

>>809831
двачую этого

Spring 01 Авг, 08:06 #226 #810048

Пацаны, кто работает со Спринг.
С чего лучше начинать изучать этот фреймворк и java заодно? Как мне создать простое базовое веб приложение, чтобы потом по нарастающей начинать разбираться? За что отвечает spring boot? Это не то, что мне нужно?

Ответы>>810052>>810219

01 Авг, 08:34 #227 #810052

>>810048
либо с книжки spring in action, либо гугли наброски mkyong по спрингу. Другой годной литературы нет по нему.

Ответы>>810055>>810056

01 Авг, 08:39 #228 #810055

>>810052
Мне и не нужна литература. Я бы доками обошелся. Там обширная документация. Только, она не линейная.
spring in action -- я так понял, что это тупо копипаста той же документации... хотя, там, наверняка, как раз есть линейность

Ответы>>810059

01 Авг, 08:41 #229 #810056

>>810052
То есть, документации море. Мне просто как бы упорядочить этот разброс для быстрого старта.

01 Авг, 08:42 #230 #810058

>>806729 (OP)
Сап, сосоны. Подскажите нубу чем subscribeOn отличается от observeOn в javaRX?

Ответы>>810060

01 Авг, 08:48 #231 #810059

>>810055
SiA - вполне себе линейная.

01 Авг, 08:49 #232 #810060

>>810058
29:32 https://www.youtube.com/watch?v=Eatfi4am0HU

Ответы>>810063

01 Авг, 08:58 #233 #810063

>>810060
>Крута что вы сегодня пришил.
Клован ебаны.

31 Кб, 661x615

01 Авг, 10:44 #234 #810120

Анонимные класс рулят.

Ответы>>810127>>810139>>810220>>810405

sage 01 Авг, 10:55 #235 #810127

>>810120
фу бля

01 Авг, 11:30 #236 #810139

>>810120
>Eclisp
>Pre java 8
>Inlined declarations
>System.exit
Съеби

Ответы>>810149

152 Кб, 900x506

01 Авг, 11:48 #237 #810149

>>810139
Ява кодер не сразу стал кодером.

01 Авг, 13:21 #238 #810200

>>809151
Бампушенцкий!

Ответы>>810206

01 Авг, 13:32 #239 #810206

>>810200
JCIP

Ответы>>810326

01 Авг, 13:57 #240 #810219

>>810048
start.spring.io

01 Авг, 13:59 #241 #810220

>>810120
>Анонимные класс
да ты охуел чтоли? для кого java 8 запилили

01 Авг, 14:43 #242 #810259

>>809826
ты опять выходишь на связь мудило хохлятское со своим бокстуди.

01 Авг, 14:56 #243 #810265

>>809826
На, там и не только это говно есть.
http://www.java-gaming.org/

01 Авг, 16:31 #244 #810307

Аноны, как компилировать джава в исполняемый файл? Чтобы скинуть кому-то и он просто взял и запустил?

Ответы>>810308>>810310

01 Авг, 16:32 #245 #810308

>>810307
Ссышь в лицо тому, кто не установил джяву
Используешь launch4j

Ответы>>810309

01 Авг, 16:40 #246 #810309

>>810308
Благодарю.

01 Авг, 16:40 #247 #810310

>>810307
https://www.youtube.com/watch?v=Dj3oh-mSZ4I с 25:10

Ответы>>810318>>810330>>810350

37 Кб, 842x427

01 Авг, 16:43 #248 #810313

Анон, хочу написать машрутиризатор своими руками.
Ладно, шучу. Кейс примерно такой (смотри картинку)
Итак, есть, например, 3 воркера, которые посылают запросы на условный target сервер (зеленый круг). Запрос идет в формате обычного restAPI, то есть
[https://example.com/user=1&option=2]
[https://example.com/user=2&option=3]
[https://example.com/user=2&option=4]
1. Запрос выполняется исключительно по защищенному соединению.
2. Ответ в JSON формате.
3. API не передает никаких индификаторов тго, кто запрос послал, поэтому возвращенный ответ по телу идентифицировать нельзя.

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

1. Worker генерирует запрос в формате выше
2. Передает его в Proxy Controller
2.1. Proxy controller присваивает отдельный прокси
2.2. Выполняет запрос.
2.3. Получает ответ.
3. Передает ответ одному из Worker'ов, например, через Load Balancer.

Теперь собственно вопрос - куда гуглить? Есть ли какие-нибудь библиотеки, которые позволяют это сделать менее болезненно? Какие варианты вообще существуют.

Ответы>>810328>>810329

01 Авг, 16:50 #249 #810318

>>810310
хороший линк
добра тебе
другой анон

01 Авг, 16:51 #250 #810321

Уважаемые java-господа, поясните ньюфагу на пальцах работа сборщика мусора.
В большей части литературы, которую я читал, говорится, что сборщик убивает объекты, на которые ничто не ссылается. Отсюда вопрос: например у нас есть следующий кусок кода. Есть ли вероятность, что сборщик захавает объект созданного MyFrame'а?
[CODE]...
new MyFrame();
...

class MyFrame extends JFrame {
...
}[/CODE]

Ответы>>810322>>810331>>810332

01 Авг, 16:52 #251 #810322

>>810321
Заебись разметка работает.

01 Авг, 16:57 #252 #810326

>>810206
GOOGLE

01 Авг, 16:58 #253 #810328

>>810313
А что тебе сделать то надо?

Ответы>>810335

01 Авг, 16:59 #254 #810329

>>810313
> куда гуглить?
1. Брокеры сообщений и менеджеры очередей - ActiveMQ, Kafka
2. ESB - Apache Camel или Spring Integration/Batch
Но я думаю это все будет оверкилл. Гораздо интереснее писать самому.

Ответы>>810341

01 Авг, 17:00 #255 #810330

>>810310
И тебе спасибо, анон.

01 Авг, 17:00 #256 #810331

>>810321
есть

01 Авг, 17:01 #257 #810332

>>810321
Странный код. Так написать нельзя. Попробуй на пастбин, может нам понятней станет чо ты там не выкупил.

Ответы>>810334

01 Авг, 17:08 #258 #810334

>>810332
Ок, например вот так - http://pastebin.com/SV8j2Fk3
Считается ли мусором new MyFrame(), созданный в мейне?

Ответы>>810394>>810398

01 Авг, 17:08 #259 #810335

>>810328
Мне нужно обращаться к API через разные Proxy Server.
Другими словами, у меня есть запрос к серверу с Rest API: [https://example.com/user=2&option=4]

Вместо того, чтобы его отправлял сам Worker, я хочу, чтобы он шел через Proxy. В целом, я мог бы был назначить каждому воркеру по Proxy серверу, однако один воркер должен генерировать очень много запросов с разными API keys.

На самом деле, план такой. Воркер генерирует запрос без ключа, передает его Proxy Controller, а тот в свою очередь уже выполняет запрос через определенный proxy, но ещё и добавляет необходимый API KEY, а ответ уже передает обратно воркеру.

Ответы>>810366

01 Авг, 17:13 #260 #810341

>>810329
Буду благодарен, если расскажешь немного подробней, я прочитал сейчас в общих чертах. Если не сложно, то как ты представляешь реализацию. Буду очень благодарен.

01 Авг, 17:26 #261 #810350

>>810310
Публика одних задротов каких-то, костыли и тд, я ебу, нежели на яве нельзя захуячить все без этого?.

01 Авг, 17:32 #262 #810354

Как в Maven получить jar-файл?
Создал я, например, класс, который выводит в консоль ХэллоуВорлд.
Как в IntellijIdea собрать проект?

Ответы>>810357>>810369

01 Авг, 17:34 #263 #810357

>>810354
>Как в Maven получить jar-файл?
Можешь запилить Shade Build

https://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html

Ответы>>810359

01 Авг, 17:37 #264 #810359

>>810357
Снова XML. Последнее время мне кажется, что иксэмэль файлы за мной следят.
Я думал можно как-то типа далее-далее-готово сделать. Мавен же в Идею интегрирован.

Ответы>>810364

01 Авг, 17:44 #265 #810364

>>810359
Ну это Java. Я могу ошибаться, но, вроде бы, тебе все равно придется написать xml файл для maven'a. А насчет билда - погугли что-то вроде intellij build maven jar.

Ответы>>810368

01 Авг, 17:47 #266 #810366

>>810335
И почему ты думаешь, что Proxy справится лучше чем Worker?

Ответы>>810489

01 Авг, 17:48 #267 #810367

Анон, я читаю туториал, и на моменте https://docs.oracle.com/javase/tutorial/java/concepts/interface.html я нихуя не понял.
Я правильно понимаю, что этот самый interface нужен для того, чтобы заставить класс обязательно обеспечить выполнение всех методов указанных в interface? Зачем это нужно, если так?
Этот самый interface должен быть сохранен в отдельном файле или прилеплен к методу?
Возможно я тупой, но все же.

Ответы>>810372>>810373>>810375>>810381

01 Авг, 17:49 #268 #810368

>>810364
Хорошо, загуглю. Ну да, Идея геренирует .pom файл с xml-описанием, но мне кажется, это как-то не руками правится.

Ответы>>810371

01 Авг, 17:50 #269 #810369

>>810354
>Как в Maven получить jar-файл?
mvn clean package
>Как в IntellijIdea собрать проект?
Вызовом мавен-таска package

01 Авг, 17:51 #270 #810371

>>810368
pom это дескриптор сборки мавена, правится руками.

01 Авг, 17:51 #271 #810372

>>810367
>тупой?
Да, дуй в ЖС тред, там нету такой хуйни.

01 Авг, 17:52 #272 #810373

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

мимо-еще-не-вкатился-в-джаву, формошлепы, поправьте, если неправильно написал.

01 Авг, 17:53 #273 #810375

>>810367
>чтобы заставить класс обязательно обеспечить выполнение всех методов указанных в interface?
Неабстрактный класс, реализующий интерфейс, должен реализовать все абстрактные методы интерфейса.
>Зачем это нужно, если так?
Если сейчас не понимаешь просто забей, со временем поймешь когда дойдешь до коллекций
>Этот самый interface должен быть сохранен в отдельном файле или прилеплен к методу?
В отдельном файле, как и классы.

01 Авг, 18:03 #274 #810381

>>810367
учи полиморфизм

Ответы>>810933

01 Авг, 18:24 #275 #810394

>>810334
Ну что же вы, Бетмены? Поясните за сборщик мусора. И за анонимные классы за одной.

Ответы>>810399

01 Авг, 18:32 #276 #810398

>>810334
Создаться-то он то создался, но при следующей сборке умрет, так как на него никто не ссылается.

Ответы>>810408

01 Авг, 18:33 #277 #810399

>>810394
А что с анонимными то не понятно, он держит ссылку на объект в котором его объявили, попробуй посмотреть что из себя представляет декомпилированный анонимный класс и все поймешь.

Ответы>>810400

107 Кб, 1152x582

01 Авг, 18:36 #278 #810400

>>810399
Если посмотреть на твой ответ со стороны не знающего человека, то это полный пиздос.

Ответы>>810402

01 Авг, 18:38 #279 #810402

>>810400
Ну посмотри через призму учебника/гугла. Ну или сходи в js тред.

Ответы>>810405

01 Авг, 18:42 #280 #810405

>>810120
Да не мне не надо, я уже отметился.
>>810402

01 Авг, 18:44 #281 #810408

>>810398
Окей, но тогда почему при вызове сборщика System.gc() экземпляр продолжает жить?
И вообще, получается ссылки на все, чему я хочу гарантировать вечную жизнь, должны хранится в переменных экземпляров? Ведь локальные переменные исчезают после завершения метода. Нипанятно короч.

Ответы>>810411>>810422

01 Авг, 18:46 #282 #810411

>>810408
Сборщик Мусора, пашет сам-по-себе, вот нахуй тебе это? Там всего-то пара никчемных методов. Когда-нибуть вернешься еще.

Ответы>>810418

01 Авг, 18:51 #283 #810418

>>810411
Да сборщик - дело второе. Вопрос в том, столкнусь ли я с неизвестными проблемами если продолжу писать так, как продолжу.

01 Авг, 19:00 #284 #810422

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

Если сделать класс

class Pidor {

Pidor inner;

Pidor() {
inner = this;
}

}

То сборщик мусора его не уберет.

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

Сборщик мусора собирает то, до чего уже из кода программы никак не добраться.

Ответы>>810424

01 Авг, 19:01 #285 #810423

>>806729 (OP)
Как вычислить степень, используя только побитовые операции?

Например, как вычислить 2^n, используя только &, |, ~, ^, <<, >>,>>>

Ответы>>810464

01 Авг, 19:01 #286 #810424

>>810422
Благодарю, уважаемый. Разложил по полкам.

01 Авг, 19:04 #287 #810426

>Сборщик мусора собирает то, до чего уже из кода программы никак не добраться.
Забыл добавить, что за редким исключением типо weakhashmap.

Ответы>>810427

01 Авг, 19:05 #288 #810427

>>810426
Хотя это вроде тоже не исключение. Пока ты можешь вытащить объект из weakhashmap то на GC ему похуй, а когда не похуй, то и в weakhashmap его уже не будет.

01 Авг, 19:05 #289 #810428

Вот я все думаю, использовать ли эксепшены в паблик методах.
Допустим, у нас есть сущность ItemHolder. В конструктор передается его размер. Есть несколько вариантов, что мы будем делать:
1) Принимаем int size и сразу делаем new Item[size]. Если size отрицательный или слишком большой, нам похуй.
2) Принимаем int size и добавляем проверку if (size < 0 || size > MAX_SIZE) throw [...]. Скорее всего, выбросим unchecked-исключение. Но тогда смысла мало в этой проверке. Только чтобы раньше крашнуться. И если мы принимаем size в 10 методах, в каждом придется делать эту же проверку.
И вот я чисто логически пришел к такому варианту, скорее всего, он уже где-то описан:
3) Создаем свой тип ItemHolderSize, который гарантирует, что заинкапсулированный int в правильном диапазоне. Принимаем ItemHolderSize size и спокойно делаем new Item[size.intVal()]. Обработка ошибок уже на вызывающей стороне.
Какие подводные камни, кроме оверхеда?

Ответы>>810430

01 Авг, 19:08 #290 #810430

>>810428
А если кто-то отрицательное число отправит в твой класс?

Хуйню несешь какую-то. Выбрасываешь анчекед эксепшон и не ебешься.

Ответы>>810431

01 Авг, 19:10 #291 #810431

>>810430
Лолчто? При создании объекта ItemHolderSize, очевидно, он и сделает эту проверку в конструкторе. Если отрицательное отправят, соснут хуйца и не смогут вызвать метод, принимающий ItemHolderSize.

Ответы>>810432

01 Авг, 19:12 #292 #810432

>>810431
Чем блядь

new ItemHolder(-10);
отличается от
new ItemHolder(ItemHolderSize(-10));
?

Ответы>>810436>>810439

01 Авг, 19:16 #293 #810436

>>810432
>new ItemHolder(new ItemHolderSize(-10));
Фикс.

Тупой ебанат какой-то, выбрасываешь illegal argument exception со значением размера и тебе потом спасибо скажут.

А если делаешь говно под себя, то можешь хоть abs брать и потом ебаться с поиском ошибки.

01 Авг, 19:18 #294 #810439

>>810432
1) Не надо в каждом методе проверять диапазон
2) Исключение выбрасывает вызывающий метод, а не метод мой библиотеки
Ну и твое использование высосано из пальца. Обычно это будет:
byte[] buffer;
try { ItemHolderSize.parse(buffer) }
catch () {}

Ответы>>810443>>810448

flush and close 01 Авг, 19:21 #295 #810440

Котаны, в каких случаях поток закрываем только через .close() , а в каких - с добавлением .flush()?

Ответы>>810495

01 Авг, 19:22 #296 #810443

>>810439
>Не надо в каждом методе проверять диапазон
Ты в конструкторе не можешь выкинуть исключение? Ебанат?

Ответы>>810453

01 Авг, 19:26 #297 #810448

>>810439
Вот тебе еблан пример, как надо поступать.
Вызови new ArrayList<>(-10);
И глянь как умные люди делают.

18 Кб, 437x567

01 Авг, 19:28 #298 #810453

>>810443
Блять, это простой пример был.
Вот конкретно. В конструкторе проверили size, ок. Но у нас еще есть геттер, сеттер, хуетор, каждый из которых принимает slotId. И каждый раз приходится проверять диапазон slotId. Даже если эту проверку в отдельный метод isInRange() вынести, это все равно хуита.

Ответы>>810460

5 Кб, 482x117

01 Авг, 19:31 #299 #810460

>>810453
Ещё раз, смотришь исходные коды колекшонс фреймворка и учишься, даунич.

Ответы>>810469

01 Авг, 19:33 #300 #810464

>>810423
1 << n

01 Авг, 19:37 #301 #810469

>>810460
Ну и это лал, что сказать. Если с тем же аргументом вызываются несколько сетов или гетов, будут лишние проверки.

Ответы>>810478

01 Авг, 19:42 #302 #810478

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

Какой же ты мудель, ой блядь.
Тебя ещё обоссать надо за дрочку на скорость.

Ответы>>810486

01 Авг, 19:45 #303 #810483

Анон, я походу ебусь в глаза, но где тут идей тред? Вроде раньше был, а сейчас не могу найти.

Ответы>>810485>>810487>>810488

01 Авг, 19:46 #304 #810485

>>810483
Конечно-же внутри джава треда.

01 Авг, 19:46 #305 #810486

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

Тут дрочка не на скорость, а на качество кода. Гораздо приятнее видеть в примитивных методах саму их суть, а не какую-ту хуиту вроде ckeckRange(), повторяющую в каждом из них.

01 Авг, 19:47 #306 #810487

>>810483
А как тебе такая идея - ИДИНАХУЙЖУЕБОК >>719798 (OP)

Ответы>>810490

01 Авг, 19:48 #307 #810488

>>810483
>>719798 (OP) этот?

Ответы>>810490

01 Авг, 19:49 #308 #810489

>>810366
Потому что Worker - просто обрабатывает данные и сохраняет их. Мне же надо скрыть местоположение этого воркера от api сервера. Не суть зачем, просто спрашиваю рекомендации.

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

Ответы>>810498

305 Кб, 1135x633

01 Авг, 19:49 #309 #810490

>>810488
>>810487
Да, спасибо. Макака заговнила поиск.

01 Авг, 20:11 #310 #810495

>>810440
flush используется в процессе работы с потоком, close неявно вызывает flush перед закрытием

01 Авг, 20:15 #311 #810498

>>810489
Ты можешь применить паттер consumer-producer с помощью BlockingQueue, и сделать так чтобы прокси брали результаты выполнения волкеров из этой самой очереди. Если еще больше абстрагироваться, ты можешь заюзаать для этого ExecutorService. Пролистай два или три треда назад, я уже объяснял это одному анону недавно, как ознакомишься задавай вопросы.

Ответы>>810503

01 Авг, 20:21 #312 #810503

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

Ответы>>810519

01 Авг, 20:43 #313 #810519

>>810503
Если уж быть до конца честным, я не понял что ты вообще хочешь. В частности, я не понял этих странных фраз:
>скрыть местоположение этого воркера от api сервера.
>я хочу, чтобы он шел через Proxy
что ты имеешь ввиду под Proxy - сервер или какую-то сущность?
>На самом деле, план такой. Воркер генерирует запрос без ключа, передает его Proxy Controller, а тот в свою очередь уже выполняет запрос через определенный proxy, но ещё и добавляет необходимый API KEY, а ответ уже передает обратно воркеру.
т.е. ты хочешь чтобы worker работал на два фронта: генерировал запросы и принимал результаты от ProxyContainer-а?

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

Ответы>>810526

01 Авг, 20:52 #314 #810526

>>810519
Блин, так и понял, что спутают с proxy шаблоном проектирования.

Суть в чем.
Есть некий API сервер (не мой), который не должен знать откуда конкретно идет запрос.

Есть список Proxy серверов, которые гоняют тафик через себя. Тупо сервера, которых в интернете навалом.

Есть воркер, который должен сохранять данные в базу.

Запросы, которые посылают воркеры:
[https://example.com/user=1&option=2&api_key=?]
[https://example.com/user=2&option=3&api_key=?]
[https://example.com/user=2&option=4&api_key=?]

Соответственно, у меня идея такая. Воркер генерирует запросы без api_key. Меняет user, option и т.д.Передает их на контроллер proxy серверов.
Тот в свою очередь добавляет api_key и отправляет запрос через proxy сервер к api серверу.
Получает ответ и отправляет его обратно воркеру.

Ответы>>810549

01 Авг, 21:20 #315 #810549

>>810526
Короч. Хз. Как бы сделал я:

--- App.class#main(String[] args) ---
ExecutorService service = Executors.newFixedThreadPoolExecutor(100);
for (String url:proxyUrls) {
service.submit(new Worker(url));
}
service.shutdown();

--- Worker.class ---
public class Worker {
private String url;
Worker(String url) {this.url = url};
public void run() {
// do call to proxy
// save results to database
}
}

Комментарии:
Я предлагаю создавать тредпул и наполнять его воркерами, задача которых преобразовать url, обратиться к api через прокси на свое усмотрение и сохранить результат в бд. Потом из бд уже отдельно доставать и анализировать удобными для этого средствами. В воркере нечего анализировать (по крайней мере ты не написал что хочешь что-то анализировать), поэтому результат хранить в воркере тоже нет смысла, пусть убиваются garbage collector-ом.

Ответы>>810617>>810759

01 Авг, 22:48 #316 #810617

>>810549
В этом и проблема. У меня в воркере довольно много аналитики идет.
Есть несколько причин, почему я хочу отделить Proxy от Worker, так как через прокси пойду разные запросы (и не все воркеры их смогут обработать).
Во-вторых, я хочу организовать микросервисинг с эндпоинтом, который будет собирать статистику. И вообще все на Spring переписать, так как по ощущениям - ебусь с гвоздатым дилдаком.

Другими словами нет никаких библиотек, которые помогут мне это организовать?

01 Авг, 22:55 #317 #810621

Нахуя делать дефаулт методы в интерфейсах? Разве это не порождает проблемы множественного наследования?

Ответы>>810644>>810651>>810673>>810850

01 Авг, 23:21 #318 #810644

>>810621
Поэтому их совсем немножко добавили, там где без этого нельзя.
К примеру: у Scala в Iterable 116 дефолтных методов, а в Java завели отдельный класс Stream.

01 Авг, 23:36 #319 #810651

>>810621
Если дефолт метод реализован то дефолт реализация скрывается. Никаких проблем нет.

Ответы>>810673

1476 Кб, Webm

862 Кб, Webm

01 Авг, 23:55 #320 #810673

>>810621
>Нахуя делать дефаулт методы в интерфейсах?
Видео 1

>>810651
>Никаких проблем нет.
Ну несовсем (Видео 2)

Ответы>>810688

02 Авг, 00:07 #321 #810688

>>810673
У меня от этих видео МЕТОД ФУ и ИНКОМПАТИБАЛ ЕРРОР.

02 Авг, 00:19 #322 #810698

rебята, посоветуйте какой-нибудь пак для веб-приложения что-то типо http://www.ibm.com/developerworks/ru/library/j-appfuse/index.html
для создания простого приложения для такси, для себя, недавно начал изучать джаву. Просто не знаю в какую сторону гуглить

02 Авг, 01:19 #323 #810759

>>810549
http://stackoverflow.com/questions/38707795/building-proxies-hub
Я накатал вопрос ещё раз, только он, к сожалению, на английском. Может быть, будет понятнее, чего я хочу.

Ответы>>810844

02 Авг, 07:37 #324 #810844

>>810759
Накатай реализацию а мы посмотрим что там хуево. А может и сам увидишь.

Ответы>>811272

02 Авг, 07:54 #325 #810849

Пришла в голову идея перенести java EE 7 приложение из ear-ки под wf в osgi контейнер karaf.
Веб часть с jsf на spring переписать.
ejb + jpa видимо тоже на spring спортировать.
таймерные бины тоже реализовать как то внутренними средствами.

Какие профиты кроме изучения новых технологий?

Ответы>>810851>>810858

02 Авг, 07:57 #326 #810850

>>810621
Проблемы множественного наследования возникают при наследовании классов. У интерфейсов нет внутреннего состояния, и с этим проще.

02 Авг, 07:58 #327 #810851

>>810849
>Какие профиты кроме изучения новых технологий?
Spring не нов.

Ответы>>810852

02 Авг, 07:59 #328 #810852

>>810851
Я про osgi и формирование бандлов под него
До этого я только с JЕЕ работал.

02 Авг, 08:23 #329 #810858

>>810849
Как по мне так переливание из пустого в порожнее. Кроме как для изучения таким заниматься щитаю не стоит.

9 Кб, 469x324

02 Авг, 10:14 #330 #810901

27 мегабайт на это окно, охохоохох.)

Ответы>>810913>>810918>>810929

02 Авг, 10:26 #331 #810913

>>810901
ДЖАВА
Ж
А
В
А

ЭКОНОМНА
К
О
Н
О
М
Н
А

sage 02 Авг, 10:31 #332 #810918

>>810901
Фу фу нахуй.
Это что такое? Windows XP?

02 Авг, 10:59 #333 #810929

>>810901
чет мало

02 Авг, 11:01 #334 #810932

Посаны, в этом есть какая-то логика или это ошибка разработчиков языка?
http://ideone.com/ki21LG

Ответы>>810943>>810945

17 Кб, 450x450

02 Авг, 11:01 #335 #810933

>>810381

02 Авг, 11:04 #336 #810936

>>806805
Use assert, Vader.

02 Авг, 11:09 #337 #810943

>>810932
String x = "qwe";
String y = x; 1 раз присвоил и сьебал
x = "asd"; поменял х, у равно qwe
//y = x;mycode, присвоил y'ку новый икс
System.out.println(y);

02 Авг, 11:11 #338 #810945

>>810932
Строки неизменяемым, x и y - ссылки на конкретные объекты. При присвоении двигается сама ссылка. Если тебе нужны алиас к имени переменной, то в джаве их нет.

Ответы>>810949>>810969

02 Авг, 11:15 #339 #810949

>>810945
Зачем присваивать значения одной переменной к другой переменной, они же будут иметь одинаковые значения, зачем?

02 Авг, 11:39 #340 #810969

>>810945
Я это знаю. Но это уже реализация, она не должна влиять на логику выполнения. По логике при присваивании любого объекта должна просто присваиваться ссылка, объект не должен копироваться. Строка это объект. Я знаю, что на самом деле строки не копируются, а там просто ссылка ставится, потому что строки иммутабельные, но это уже реализация, а с логической точки зрения они копируются.

Ответы>>810987

02 Авг, 12:01 #341 #810981

Кто хостился на heroku? Какие у них условия виртуализации, типо сколько мне будет выдано озу, hdd, трафика и прочего? У них на сайте не могу информацию найти.

Ответы>>811004

02 Авг, 12:12 #342 #810987

>>810969
что куда копируется? была ведь строка "qwe", на нее, т.е. на один объект, ссылались две переменные x и y, ты изменил содержимое x, теперь создалась новая строка "asd", но y-то продолжает ссылаться на "qwe"

02 Авг, 12:40 #343 #811004

>>810981
7 баксов в месяц самая дешевая подписка https://www.heroku.com/pricing
ОЗУ там же. Максимальный допустимый обхем jar-ника емнип 300 мб, а статик контент хранить на хероку вообще нельзя из-за его микросервисной природы, если ток юзать cdn какойнить. Алсо можно бесплатно пользоваться если у тебя будет бот который будет твой сайт дергать раз в 30 минут.

02 Авг, 13:08 #344 #811043

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

Ответы>>811046>>811051

02 Авг, 13:10 #345 #811046

>>811043
Math.random() округлишь до целого сам.

Или напиши функцию
fun mt_rand() = Math.random().toInt()

02 Авг, 13:16 #346 #811051

>>811043
Функции = методы. Привыкли к своему JS бля.

02 Авг, 14:30 #347 #811123

>>809754
Разница примерно как между говном и мочёй.

02 Авг, 14:40 #348 #811129

Анон, подскажи, как запилить тунель через проксю в Java. setProperty - не вариант.

Ответы>>811272

02 Авг, 18:03 #349 #811272

>>811129
>>810844
Короче. С проксями я вычитал про класс Proxy
Запилил что-то типа
new Proxy(Proxy.Type.HTTP, new InetSocketAddress("host", port));

В итоге на Proxy Controller будет коллекция в формате
Timestamp=>ClientObj
Где Timestamp - время последнего вызова объекта.
ClientObj - собственно объект с хостом\портом + всякие другие важные данные.

Worker будет отсылать в json формате запросы к Proxy Controller, тот будет их выполнять и возвращать результаты обратно в контроллер.

Другой вопрос:
Поясните за Camel/Integration. Мне понравилась идея с шиной предприятия, потому что если воркер помер, то его просто перезапущу и т.д.
Однако мне не совсем ясно принцип хранения и передачи информации.

Вот Proxy Controller отработал, отправил данные в эту шину, а дальше что?

Ответы>>811274

02 Авг, 18:08 #350 #811274

>>811272
>Однако мне не совсем ясно принцип хранения и передачи информации.
Кемл и не хранит данные нигде сам. Он их только отрабатывает. Так что тебя ждет еще очередь activemq.
А что за хуйню там ты с проксями себе понавыдумывал, я не понялл.

Ответы>>811275

02 Авг, 18:10 #351 #811275

>>811274
Как я выше писал - мне нужно отправлять запросы через разные прокси. Я знал про System.setProperty, которая позволяет задать host/port, но мне надо чтобы на одной машине использовалось сразу несколько прокси-серверов.

Ответы>>811278>>811279

02 Авг, 18:14 #352 #811278

>>811275
Я не знаю, когда я слышу прокси и http, мне на ум приходит nginx. Но точно не java. При чем там систем проперти я вообще не понял.

Ответы>>811284

02 Авг, 18:14 #353 #811279

>>811275
Олсо, вопрос про endpoint'ы. Я хочу всю мою хуйню переписать на Spring. В частности в проекте есть воркеры, proxy_controller, веб-морда и т.д.

Все это оформлено в мелких *.jar файлах, которые выполняют каждый свою задачу. Куда гуглить, анон?

Ответы>>811282

02 Авг, 18:18 #354 #811282

>>811279
>Все это оформлено в мелких *.jar файлах, которые выполняют каждый свою задачу. Куда гуглить, анон?
Ты сначала реши зачем ты что-то делаешь, а потом уже гугли. "Хочу на спринг" - это глупость какая-то.

Ответы>>811428

02 Авг, 18:18 #355 #811284

>>811278
Ну смотри. Есть удаленный api сервер. Я хочу к нему подключиться.

Вариант первый:
Я подключаюсь к нему напрямую. (Ну думаю никаких вопросов)

Вариант второй:
Я подключаюсь через proxy сервер (сервер между моей платформой и api сервером).

Меня интересует второй вариант. Соответственно, воплотить это в жизнь можно:
https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html
Либо
В Java 1.5 + появился класс Proxy, через который можно работать.

Ответы>>811287>>811290

02 Авг, 18:20 #356 #811287

>>811284
>Вариант второй:
>Я подключаюсь через proxy сервер (сервер между моей платформой и api сервером).

При чем здесь java? Я вот чего не понимаю.

Ответы>>811428

02 Авг, 18:28 #357 #811290

>>811284
Ты собрался с десятю апи ключами тягать данные с гугл мапс что ли?

Ответы>>811428

02 Авг, 19:20 #358 #811350

Как лучше удостоверить, что нельзя создать больше одного объекта с определенным значением поля (guid)?
То есть в идеале мы могли бы десериализовывать объект из базы в конкретный объект в памяти.

Ответы>>811356

02 Авг, 19:24 #359 #811356

>>811350
> нельзя создать больше одного объекта с определенным значением поля (guid)?
GUID внезапно уникальны.
> То есть в идеале мы могли бы десериализовывать объект из базы в конкретный объект в памяти.
Берешь и десериализуешь. Все.

02 Авг, 19:52 #360 #811381

Я нипонил, тут че нильзя циклом хуйню в массив захуячить?

Ответы>>811382>>811389

02 Авг, 19:53 #361 #811382

>>811381
Не, это же ДЖАВА.

Ответы>>811383

02 Авг, 19:55 #362 #811383

>>811382
А как же его тудой?

02 Авг, 19:59 #363 #811389

>>811381
В смысле хуйню в массив захуярить? Форичем конечно нельзя, простым for (int i = 0; i , n; i++) конечно можно.

Ответы>>811394

02 Авг, 20:03 #364 #811394

>>811389
А под фор чегой писать? Add?

Ответы>>811409>>811433

02 Авг, 20:12 #365 #811409

>>811394
hui = pizda;

Ответы>>811411>>811427

02 Авг, 20:13 #366 #811411

>>811409
лол, скобки сожрало
hui[
i
]

1338 Кб, Webm

02 Авг, 20:25 #367 #811427

>>811409

02 Авг, 20:27 #368 #811428

>>811290
Ну типа того. В целом именно к этому и сводится. >>811287
Несколькими постами выше я спрашивал: бля, анон, придумал хуйню. Есть ли идеи какие-нибудь. Ничего не ответили.
Если у тебя есть идеи, как сделать ассоциацию token => proxy[host/port] без кучи серверов и без использования Java, то буду безмерно благодарен, если расскажешь об этом. Так как желания ебаться с этим вообще нет никакого.
Однако другого решения я не вижу. Мало того, что мне нужна связка proxy=>token, так как на другом ip токен считается недействительным, так ещё и proxy могут дохнуть, их нужно отлавливать, досыпать новые и т.д. Я не представляю, как сделать это без собственной реализации.

>>811282
Окей. Разъясняю. На данный момент есть несколько десятков воркеров (это именно виртуальные машины, на которых запущены приложения, которые делают запросы и обрабатывают их). Работает все, конечно, заебись, но недостаточно.

Сначала возникла необходимость разворачивать и убивать их автоматически. Можно через cli какой-нибудь делать, но это все равно ручной труд. Захотелось кнопочку в веб интерфейсе, которая все сделает за тебя.

Затем возникла проблема: а что если воркер сдыхает? Надо его перезапустить. Надо допилить кнопочку, которая перезапускает.

А как понять, что воркер сдох? Надо чтобы он отсылал статистику. Как это делать? Ну какой-нибудь Rest API, который сообщает состояние.

В итоге таких кейсов набралось дохуя. Я стал гуглить, а что же есть в Java, чтобы из коробки сделать быстро и эффективно приложение с Rest API, но так чтобы много не ебаться.

Нашел Spring, который решает всю мою боль. Подкупили их туториалы, которые обозначают required time: 15 minutes. Почитав, я пришел к выводу, что прямо сесть и поехать - не выйдет и придется разбираться. Однако альтернативы придумать не могу.

Следовательно, возникает вопрос: а как вообще организовать разворот всего проекта: воркеров, прокси, базы, etc? Решил спросить тут.

Ответы>>811566>>811590>>811811

02 Авг, 20:30 #369 #811433

>>811394
Ты куда пихаешь и что блять? В массивы нельзя пихать, они не ресайзятся, ты им один раз место выделил и обращаешься по индексу. В списки можно добавлять с помощью add(obj). Можно вставлять внутрь списка по add(int, obj), но только если у коллекции УЖЕ такой размер, причем не зарезервированный, а именно использованный. Так что если тебе просто заполнить список то просто add().
final List<Integer> list = new ArrayList<>(10); //10 это резерв, а не размер, размер равен 0
for (int i = 0; i < 12; i++) list.add(i);
Теперь размер 12, а зарезервированно скорее всего больше, зависит от реализации.

Ответы>>811444>>811463

02 Авг, 20:44 #370 #811444

>>811433
Годно расписал, а можешь так только компаратор?

Ответы>>811541

1518 Кб, Webm

02 Авг, 21:00 #371 #811463

>>811433

02 Авг, 21:09 #372 #811467

Вот есть parent класс и child с override паблик методами, которые вызывают методы родителя через super.
Где проверять входные аргументы и бросать исключение: только в parent, в parent и child или только child?

02 Авг, 22:38 #373 #811541

>>811444
А что про него писать-то? Интерфейс с методом который сравнивает для объекта и должен вернуть отрицательное число если первый меньше второго, 0 если равны, и положительное если первый больше. По сути это создание отношения по какому-то признаку. В восьмой джавке добавили дефолтный метод equals, хз зачем, он кажется просто проверяет что результат сравнения равен 0. Ах да, аргументы на налл можно не проверять, ожидаемое поведение что туда не будут передавать наллы, а если передадут то он упадет с налпоинтерэксепшн. Используется во время сортировок в основном.

02 Авг, 23:10 #374 #811566

>>811428
Анончики, вы хоть скажите, что я долбоеб или дайте совета. Без фидбека очень тяжело сидеть. Я уже просто в объемах документации теряюсь. Скажите, что не понятно - я схемы всякие нарисую, объясню, что хочу сделать и т.д.

Ответы>>811591

02 Авг, 23:32 #375 #811590

>>811428
> а что если воркер сдыхает? Надо его перезапустить.
Не надо, он просто ловит все исключения и логгирует.
> А как понять, что воркер сдох?
Поймал исключение или 4xx/5xx ошибку от сервера.
> Ну какой-нибудь Rest API, который сообщает состояние
Пиши все операции в БД.
> воркеров
Просто очередь runnable.
> прокси
В БД с вебуем для круд операций.
> базы
В фоне крутится pg/maria. В приложении только миграции.

Ответы>>811591>>811637

02 Авг, 23:32 #376 #811591

>>811566
>>811590

03 Авг, 00:54 #377 #811637

>>811590
Примерно такое решение сейчас и работает, только беда в том, что слишком много проблем возникает при эксплуатации этой системы.

Хочу отметить, что это все же не простая приложуха, которая полчаса отработает и будет заброшена в папку old_projects, а небольшая платформа, которую я хочу крутить 24/7 и не сидеть перед монитором, проверяя корректность её работы.

Какие же проблемы сейчас возникли:

База данных. Использую Postgresql, но она как-то слабо вывозит. Конечно, существует вариант арендовать очень дорогую базу, но это мне не по карману. Речь идет о пропускной способности в 100 000 insert'ов в секунду и примерно 1000 update'ов в секунду. Сюда ещё добавим вариант с тем, что в БД будет отправляться статистика работы + всякие meta данные.

Если даже усраться и использовать все плюшки, которые предлагает postgresql, то возникнет ещё одна проблема. База данных - это не endpoint. После сбора данных ещё происходит их анализ, который выполняет отдельная группа воркеров, которая не меньше насилует базу данных всевозможными запросами.

Следующая проблема - объем данных. Postgresql, который я могу позволить себе, уже не особо вывозит его. Простенький join уже занимает около 70 секунд. (inb4: у тебя запрос хуевый). Есть одно решение, которое удовлетворяет потребностей, но оно не поддерживает update/delete операций, что совсем не вписывается в рамки этой задачи.

Закрыв глаза на то, что было пару кейсов, когда нужно было перезапускать воркеров, я столкнулся с ситуацией, что их нужно иногда выключать, когда обрабатывать нечего. Развернуть 10 воркеров довольно легко, но когда речь идет о 100? Ну можно всякие knife и прочее использовать, но как по мне - это ад.

С прокси вообще отдельная тема. Token, который завязан с proxy, имеет несколько состояний, которые мне крайне необходимо знать.

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

03 Авг, 00:54 #377 #811637

>>811590
Примерно такое решение сейчас и работает, только беда в том, что слишком много проблем возникает при эксплуатации этой системы.

Хочу отметить, что это все же не простая приложуха, которая полчаса отработает и будет заброшена в папку old_projects, а небольшая платформа, которую я хочу крутить 24/7 и не сидеть перед монитором, проверяя корректность её работы.

Какие же проблемы сейчас возникли:

База данных. Использую Postgresql, но она как-то слабо вывозит. Конечно, существует вариант арендовать очень дорогую базу, но это мне не по карману. Речь идет о пропускной способности в 100 000 insert'ов в секунду и примерно 1000 update'ов в секунду. Сюда ещё добавим вариант с тем, что в БД будет отправляться статистика работы + всякие meta данные.

Если даже усраться и использовать все плюшки, которые предлагает postgresql, то возникнет ещё одна проблема. База данных - это не endpoint. После сбора данных ещё происходит их анализ, который выполняет отдельная группа воркеров, которая не меньше насилует базу данных всевозможными запросами.

Следующая проблема - объем данных. Postgresql, который я могу позволить себе, уже не особо вывозит его. Простенький join уже занимает около 70 секунд. (inb4: у тебя запрос хуевый). Есть одно решение, которое удовлетворяет потребностей, но оно не поддерживает update/delete операций, что совсем не вписывается в рамки этой задачи.

Закрыв глаза на то, что было пару кейсов, когда нужно было перезапускать воркеров, я столкнулся с ситуацией, что их нужно иногда выключать, когда обрабатывать нечего. Развернуть 10 воркеров довольно легко, но когда речь идет о 100? Ну можно всякие knife и прочее использовать, но как по мне - это ад.

С прокси вообще отдельная тема. Token, который завязан с proxy, имеет несколько состояний, которые мне крайне необходимо знать.

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

Показать весь текст
Ответы>>811642>>811755

03 Авг, 01:06 #378 #811642

>>811637
Допустим ты даже не пиздишь про свою криворукость в качестве дата моделера.
Допустим ты все уже денормализовал и использовал все нереляционные фишки PG.
Разбей БД на админскую и доменную.
Для апдейтов используй NativeQuery или JdbcTemplate, а не ORM.
Пиши только конечный результат в БД. Промежуточный результат храни в памяти.
> их нужно иногда выключать, когда обрабатывать нечего
Одна задача - один runnable, который сам завершается после очередной операции. Его поток возвращается в пул. При добавлении в очередь следующей задачи, стартует новый runnable
> С прокси вообще отдельная тема. Token, который завязан с proxy, имеет несколько состояний, которые мне крайне необходимо знать.
Ну и в чем именно проблема? Просто выдели это все в отдельный класс, который будет решать маппить хост/токен на прокси адрес при помощи простых предикатов.
И что тебе по ESB не ясно?

Ответы>>811811>>812152

03 Авг, 01:36 #379 #811648

Подскажите тупому, можно ли привести bollean к числовому типу? К байту там, или к инту?

Ответы>>811649>>811651

03 Авг, 01:38 #380 #811649

>>811648
блять, boolean

Ответы>>811651

03 Авг, 01:45 #381 #811651

>>811648
>>811649
NEEQAQUE

Ответы>>811653

03 Авг, 01:53 #382 #811653

>>811651
SOOOQUAAA

Третий день учу язык, а тут уже такие подляны, по простому тестовое задание не зафигачить, а лишние 20 строчек кода писать в программу из 30 строчек не хочется.

Ответы>>811654

03 Авг, 01:55 #383 #811654

>>811653
Это делается тернарным оператором в одну строчку - какие нахуй 20 строк? И это даже типобезопаснее какого-то там каста.

Ответы>>811658

03 Авг, 02:03 #384 #811658

>>811654
>тернарным
Это мы не проходили, это на не научили. Я так понимаю, надо уже описанными в предыдущих главах методами делать. Но слово это погуглю, да.

Ответы>>811661

03 Авг, 02:05 #385 #811661

>>811658
> Сперва пишет на двач, а потом в гугл
Как-то не очень у тебя перспективы, другой вкатывальщик

Ответы>>811663

03 Авг, 02:07 #386 #811663

>>811661
Я погуглил, но нигде не увидел надписи БУЛИН НЕЛЬЗЯ В ЧИСЛЕННЫЙ, поэтому уточнил.

Ответы>>811664

03 Авг, 02:12 #387 #811664

>>811663
Я вообще про "тернарный" и неважные навыки в поиске информации.
А вот и смотри, первая ссылка в гугле:
stackoverflow.com/questions/3793650/convert-boolean-to-int-in-java

03 Авг, 02:45 #388 #811678

если что не бейте а лучше обоссыте

пишу простейшие хелловорлды, и ни еклипс ни идея не распознают system.out.println
в system path путь к jdk и jre прописал. такое ощущение что то ли иде-шкам нужно где-то явно указать пути к этой оракловской залупе, то ли при создании класса нужно проимпортить что-то (пробовал java.lang.io, но хуй там плавал)
мб тут кто подскажет, что я делаю не так?

Ответы>>811679>>811695

03 Авг, 02:46 #389 #811679

>>811678
Может быть ты System с маленькой буквы пишешь?

Ответы>>811681

03 Авг, 02:52 #390 #811681

>>811679
и с маленькой и с большой - один хер
ctrl+space не дает никаких вариантов после того как точку ставлю
system. - и тут вот он по идее должен предложить мне и ауты и хуяуты (как например на работе) - а хуйнанэ

Ответы>>811682

03 Авг, 02:57 #391 #811682

>>811681
Ну, ты в любом случае только с большой пиши. С маленькой он не воспримет. И компилируй через командную строку пока, не запаривайся с иде. Я два учебника параллельно штудируют, в обоих советуют компилировать через цмд. тоже только вкатился

Ответы>>811684>>811687

03 Авг, 03:02 #392 #811684

>>811682
спасибо, попробую
но если кто вдруг подскажет, как через иде это настроить - будет вообще волшебно

Ответы>>811687

03 Авг, 03:21 #393 #811687

>>811682
>>811684
клоуны блять
из под консоли компилируют, небось еще в блокнотах код пишете

Ответы>>811694

03 Авг, 03:41 #394 #811694

>>811687
в хуекнотах
по делу может скажешь чего?

Ответы>>811695>>811852

03 Авг, 03:44 #395 #811695

>>811694
>>811678
Ну так и пропиши в проекте IDE путь до JDK, хуле ты?

03 Авг, 07:49 #396 #811755

>>811637
Странно что вроде все знаешь все умеешь, а банально вопрос сформировать не можешь

Ответы>>812152

03 Авг, 10:30 #397 #811811

>>811428
>Следовательно, возникает вопрос: а как вообще организовать разворот всего проекта: воркеров, прокси, базы, etc?
D O C K E R
O
C
K
E
R

>>811642
>Допустим ты все уже денормализовал и использовал все нереляционные фишки PG.
А может ему в сторону нереляционного чего и взглянуть? Правда хз, что у него там за данные.

>Для апдейтов используй NativeQuery или JdbcTemplate, а не ORM.
Я думаю, что у него там вообще jdbc.

03 Авг, 11:37 #398 #811840

>>806729 (OP)
Не берут джава-разработчиком из-за того, что пока что мало знаю. Может, вкатиться в тестировщицыки?

Ответы>>811862

03 Авг, 11:49 #399 #811852

>>811694
DA TI OHUEL.

37 Кб, 672x336

03 Авг, 11:52 #400 #811860

Пачаны косольки принес.

03 Авг, 11:52 #401 #811862

>>811840
Вопросы какие?

Ответы>>811866

03 Авг, 11:54 #402 #811866

>>811862
java core ещё не осилил. Понимаю, что справедливо отказывают, но хочется УЖЕ начать работать, хоть стажером. Заебало сисадминство в край.

Ответы>>811894

03 Авг, 12:11 #403 #811876

Привет аноны, к вам нуб пришел.
Есть у меня небольшое веб-приложение. Ясное дело, на джаве.
Нужно сделать так, что-бы это приложение слало POST/GET запросы на сервер, и обрабатывало полученные данные. Хочу слать запросы с помощью HttpURLConnection. Будет работать?

Ответы>>811900

03 Авг, 12:31 #404 #811894

>>811866
Не осилил на сколько? Чем закончил?

Ответы>>811906

03 Авг, 12:44 #405 #811900

>>811876
Если правильно сделаешь, то будет.

03 Авг, 12:56 #406 #811906

>>811894
Потоками.

Ответы>>811911

03 Авг, 13:03 #407 #811911

>>811906
LoooooL.

Ответы>>811912

03 Авг, 13:03 #408 #811912

>>811911
Ты для этого задал вопрос?

Ответы>>811927>>811933

03 Авг, 13:29 #409 #811927

>>811912
Да. Как можно не осилить java core и искать работу? Ты же понятия не имеешь, что тебе там делать. И сисадмин ты походу такой же, как и погромист.

Ответы>>811991

03 Авг, 13:38 #410 #811933

>>811912
Нет, ну надо хотя бы фреймворк выучить или еще че.

Ответы>>812011

03 Авг, 14:01 #411 #811966

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

Ответы>>811973

03 Авг, 14:05 #412 #811973

>>811966
Ну ты и лолка.

Ответы>>811977

03 Авг, 14:09 #413 #811977

>>811973
Он наебщик, да? Да?

Ответы>>811985

03 Авг, 14:17 #414 #811985

>>811977
Можно конечно самому выучить. Ток если с тебя такое сбивает мотивацию, то похоже ее у тебя не очень много.

Ответы>>811993

03 Авг, 14:21 #415 #811991

>>811927
Ясно-понятно. Видал я таких умников. А потом выясняется, что критикан вообще сам по знакомству в ИТ попал. Зато гонору хоть отбавляй.

03 Авг, 14:23 #416 #811993

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

03 Авг, 14:35 #417 #812011

>>811933
Я есть хочу сегодня. Фреймворк выучу по ходу дела.

Ответы>>812038

03 Авг, 14:52 #418 #812038

>>812011
>Я есть хочу сегодня.
Ну так иди у мамки борщ наверни

>Фреймворк выучу по ходу дела.
Как же раздражают такие посредственности в IT (вчера он был дворником, а сегодня еба-программист).
Иному работодателю проще нанять 10 мартых без мотивации и работающих за жрат, чем пару тройку толковых ребят.
Спасибо хоть что в Java вкатываешься, хоть не пересечемся никогда.

Ответы>>812043>>812058

03 Авг, 14:54 #419 #812043

>>812038
>не пересечемся никогда
В верстку укатился?

03 Авг, 15:08 #420 #812058

>>812038
>вчера он был дворником, а сегодня еба-программист
Обычное дело в IT. Говоришь, как будто что-то плохое.
Ты, похоже, с завода капчуешь.
Ещё скажи, что если не в Москве родился, то все, шансов нет никаких.

03 Авг, 15:39 #421 #812075

Суп, как пофиксить окно и окна при запуске ПРОГРАММЫ, у меня просто они вылязят в левом верхнем углу? Короче положение в центре экрана, как сделать?

Ответы>>812080>>812085>>812107

03 Авг, 15:48 #422 #812080

>>812075
заебали с такими тупыми вопросами
сука, сразу видно что знаний ноль
уебывай в жс тред сука

Ответы>>812085

03 Авг, 15:53 #423 #812085

>>812080
>>812075
Все понял котаны, не надо JS, больше нибуду.
метод: setLocationRelativeTo(null);

Ответы>>812092

03 Авг, 15:59 #424 #812092

>>812085
сука
кому какое дело что это за метод блять
даун блять подавать метод не указывая даже из какой библиотеки, информативности НОЛЬ сука, да хоть пусть setUrMumAnus(null), нам то какое дело сука, уебывай

Ответы>>812094

56 Кб, 707x464

03 Авг, 16:02 #425 #812094

>>812092

03 Авг, 16:32 #426 #812105

Расскажите кулсторей, как вас с одним джавакором взяли на работу.

Ответы>>812298

03 Авг, 16:33 #427 #812107

>>812075
Почему ты формошлепную хуйню не поставил?

Ответы>>812130

03 Авг, 16:52 #428 #812119

Тут есть анон разбирающийся в GLSL?

03 Авг, 17:03 #429 #812130

>>812107
Оно же не оче код делает или норм? Да и пока ручками все полезно же.

Ответы>>812146

03 Авг, 17:13 #430 #812146

>>812130
ну если ты на говносвинге сидишь, то да неоч

03 Авг, 17:19 #431 #812152

>>811755
>Странно что вроде все знаешь все умеешь,
Я нихуя не умею, но есть желание разобраться. Другая проблема, что я схожие задачи решал ранее через веб реализации (меньший объем данных, скорость не важна), поэтому быстро подсел на REST api, когда каждая нода просто отчитывалась\выполняла задачу по сраному get/post запросу.

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

>>811642
>Допустим ты даже не пиздишь про свою криворукость в качестве дата моделера.
Пизжу. База данных вообще больное место проекта. Однако сделать две таблички с ключом и отношением один ко многим, а потом написать join, который объединит вторую с первой таблицу может даже школьник в 9 классе.

>Допустим ты все уже денормализовал и использовал все нереляционные фишки PG.
Зачем использовать нереляционные фишки, когда есть нереляционный БД? Тот же clickhouse позволяет хранить тысячи тонн информации, маштабировать кластер, получать доступ к ещё не агрегированным данным и импортировать данные с огромной скоростью, в то время как PG - позволяет всего лишь 32TB информации (если память не изменяет) на таблицу.

>Для апдейтов используй NativeQuery или JdbcTemplate, а не ORM.
Как ниже анон сказал, действительно у меня jdbc был. Мне кто-то жука посоветовал, но это вообще оверкилл для этой задачи. Посмотрю, что ты предлагаешь.

>Одна задача - один runnable, который сам завершается после очередной операции.
Есть воркер, который в тредпуле - тут никаких проблем. Все красиво работает, прямо доволен. Но я говорю про воркер, как виртуальную машину, на которой уже запущено приложение. Вот именно эту VM надо иногда останавливать\перезагружать\убивать. Про докер отличное замечание. Собираюсь его использовать.

>Ну и в чем именно проблема?
Проблем никаких. После 20 минут тестов я понял, что надо. Только я хочу вынести эту задачу на отдельную VM.

>И что тебе по ESB не ясно?
Да я хуй знает, что за сущность это. Я понял, что это охуенный роутер, который позволяет организовать интеграцию.

Окей, camel использует сервис очередей, в которых хранит месседжы, который потом роутит.

Вопрос. Как попасть данным в эту очередь? Вот у меня есть выработанный файл на 20 млн строк. Обычный csv файл.

Я хочу его разделить между воркерами (отдельный виртуальные машины), а в случае если воркер дохлый, то не дай б-г лишней информации ему не скинуть.

Дальше у меня вообще начинает полное непонимание, как в этот процесс вступает Camel.

03 Авг, 17:19 #431 #812152

>>811755
>Странно что вроде все знаешь все умеешь,
Я нихуя не умею, но есть желание разобраться. Другая проблема, что я схожие задачи решал ранее через веб реализации (меньший объем данных, скорость не важна), поэтому быстро подсел на REST api, когда каждая нода просто отчитывалась\выполняла задачу по сраному get/post запросу.

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

>>811642
>Допустим ты даже не пиздишь про свою криворукость в качестве дата моделера.
Пизжу. База данных вообще больное место проекта. Однако сделать две таблички с ключом и отношением один ко многим, а потом написать join, который объединит вторую с первой таблицу может даже школьник в 9 классе.

>Допустим ты все уже денормализовал и использовал все нереляционные фишки PG.
Зачем использовать нереляционные фишки, когда есть нереляционный БД? Тот же clickhouse позволяет хранить тысячи тонн информации, маштабировать кластер, получать доступ к ещё не агрегированным данным и импортировать данные с огромной скоростью, в то время как PG - позволяет всего лишь 32TB информации (если память не изменяет) на таблицу.

>Для апдейтов используй NativeQuery или JdbcTemplate, а не ORM.
Как ниже анон сказал, действительно у меня jdbc был. Мне кто-то жука посоветовал, но это вообще оверкилл для этой задачи. Посмотрю, что ты предлагаешь.

>Одна задача - один runnable, который сам завершается после очередной операции.
Есть воркер, который в тредпуле - тут никаких проблем. Все красиво работает, прямо доволен. Но я говорю про воркер, как виртуальную машину, на которой уже запущено приложение. Вот именно эту VM надо иногда останавливать\перезагружать\убивать. Про докер отличное замечание. Собираюсь его использовать.

>Ну и в чем именно проблема?
Проблем никаких. После 20 минут тестов я понял, что надо. Только я хочу вынести эту задачу на отдельную VM.

>И что тебе по ESB не ясно?
Да я хуй знает, что за сущность это. Я понял, что это охуенный роутер, который позволяет организовать интеграцию.

Окей, camel использует сервис очередей, в которых хранит месседжы, который потом роутит.

Вопрос. Как попасть данным в эту очередь? Вот у меня есть выработанный файл на 20 млн строк. Обычный csv файл.

Я хочу его разделить между воркерами (отдельный виртуальные машины), а в случае если воркер дохлый, то не дай б-г лишней информации ему не скинуть.

Дальше у меня вообще начинает полное непонимание, как в этот процесс вступает Camel.

Показать весь текст
Ответы>>812170

03 Авг, 17:55 #432 #812170

>>812152
>Дальше у меня вообще начинает полное непонимание, как в этот процесс вступает Camel.
http://pastebin.com/mNBam88D

Воркеры отработанные впихивают в другую очередь и ты оттуда их забираешь. Как-то так.

Ответы>>812172>>812177

03 Авг, 18:01 #433 #812172

>>812170
Camel - всего лишь кучка библиотек, которые помогают тебе связать твои процессе в систему. Он позволяет тебе описывать эти связи чуть проще, чем если бы ты это делал руками.

03 Авг, 18:08 #434 #812177

>>812170
Тогда у меня сразу несколько вопросов на эту тему. Вопросы архитупые, так как меня смущают методы from/to. С интеграцией Java приложений я первый раз сталкиваюсь и не осознаю задумку.

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

Есть сервера:
[192.168.10.5] - Proxy server, который выполняет запросы.
[192.168.10.6] - Сервер producer.
[192.168.10.7-10] - Сервера с worker.

Workflow я представляю себе примерно такой.

Producer генерирует запрос типа: https://api.server/user=1&option=1;

Кидает его в Proxy Controller, который выполняет его, добавив к нему токен.

В случае, если запрос 200 OK, то тот должен быть передан Worker'у. (Воркер может его вернуть на повторное выполнение, если найдет какую-то ошибку в ответе).

То есть между этими тремя сущностями гуляет объект, например, client, который содержит важные поля типа proxy/host/request/timeout/etc.

Соответственно Camel должен быть где-то между ними. Что вообще по себе представляет этот инстанс? Отдельный сервер, который стучится по FTP/Protocol name, забирая данные, или задумка такова, что каждая нода в цепочке знает о camel и использует его?

Ответы>>812184

03 Авг, 18:15 #435 #812184

>>812177
Я же там написал - всего лишь кучка библиотек. Т.е. кому нужны его фишечки - тот о нем знает. А кто-то просто в очередь напихивает данные. Или еще что.
Каналы же универсальны, их можно и без кемла использовать.
Отдельным сервером же в этом случае будет скорее activemq.

Ответы>>812226

3682 Кб, Webm

03 Авг, 18:19 #436 #812186

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

Ответы>>812196

03 Авг, 18:32 #437 #812196

>>812186
ага ага прокрастинатор ебаный, катись в свои конфочки прокрастинировать там

Ответы>>812199>>812201

03 Авг, 18:33 #438 #812199

>>812196
а лучше съеби в ЖС тред, там все просто и учить много не надо

03 Авг, 18:34 #439 #812201

>>812196
Спасибо за ценнейший совет, тебе тоже всего хорошего.

03 Авг, 18:40 #440 #812207

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project webappRunnerSample: Compilation failure: Compilation failure:
error: try-with-resources is not supported in -source 1.5
error: multi-catch statement is not supported in -source 1.5

Что мавен от меня хочет? Гуглил, ничего не понял.

Ответы>>812211

03 Авг, 18:43 #441 #812211

>>812207
>error: try-with-resources is not supported in -source 1.5
>error: multi-catch statement is not supported in -source 1.5
http://stackoverflow.com/questions/16723533/how-do-you-specify-the-java-compiler-version-in-a-pom-xml-file
Скажи мавену, что ты в 2016 году живешь.

Ответы>>812214>>812232>>812240>>812253

03 Авг, 18:44 #442 #812214

>>812211
>2k16
>maven
не сдержался

Ответы>>812216

03 Авг, 18:45 #443 #812216

>>812214
Так говоришь, будто есть что-то значительно лучше.

Ответы>>812233

03 Авг, 18:53 #444 #812226

>>812184
То есть я каждой сущности при помощи camel описываю, как работать с очередью?

Типа Proxy получает ответ. и делает что-то типа from(...).split().to(response-qeue); //ещё до конца не прочитал.

Воркеры чекают очередь и вытаскивают из них данные, обрабатывая их.

Другими словами, я могу не ебаться и взять Amazon SQS? А есть ли возможность какую-нибудь фишку с нотификацией провернуть? Типа чтобы воркеру сообщали о том, что есть сообщение в очереди? А можно ли пачками данные оттуда тянуть? Лучше пилить каждому воркеру по очереди или одну большую очередь на всех воркеров?

Ответы>>812237>>812279

03 Авг, 18:55 #445 #812232

>>812211
Спасибо

03 Авг, 18:56 #446 #812233

>>812216
ggggggra

03 Авг, 18:59 #447 #812237

>>812226
Олсо, шина данных это какое-то абстрактное понятие или что? В чем она выражается?

Ответы>>812267

03 Авг, 19:01 #448 #812240

>>812211
Почему он по умолчанию это не может сделать? Мне все время приходится это руками писать.

Ответы>>812245

03 Авг, 19:09 #449 #812245

>>812240
потомушта мавен

03 Авг, 19:27 #450 #812253

>>812211
<maven.compiler.source>1.8</maven.compiler.source>

03 Авг, 19:43 #451 #812267

>>812237
Блядь, вот хоть убей - не могу понять концепцию.
Я так понимаю, что проще всего мне стоит создать Camel-service, который описывает все роутеры в формате from().to();

Блядь, не. Я нихуя не понимаю. Как запилить ебучий транспорт для моих воркеров?

Ответы>>812282

03 Авг, 19:54 #452 #812279

>>812226
>Другими словами, я могу не ебаться и взять Amazon SQS?
Ты не поверишь. http://camel.apache.org/aws-sqs.html
Ендпоинты в кемеле - это абстракция. Что там за ним: активмку, амазаон, фтп или соап - тебе наплевать. Ты просто указываешь откуда взять, что сделать и куда передать.
>А есть ли возможность какую-нибудь фишку с нотификацией провернуть?
Зачем? Ты написал from(endpoint).to() и все. jms за тебя разберется с нотификацией.
>Лучше пилить каждому воркеру по очереди или одну большую очередь на всех воркеров?
Смотря какая у тебя задача, очевидно же.
А вообще - погугли. Твои вопросы гуглятся достаточно легко.

Ответы>>812287

03 Авг, 19:56 #453 #812282

>>812267
>Блядь, не. Я нихуя не понимаю. Как запилить ебучий транспорт для моих воркеров?
Да используй jms. Это и будет твой транспорт. А чтобы проще с ним работать и описывать поток хождения данных используй кемл. Просто либа, которая облегчает тебе жизнь.

14 Кб, 629x388

03 Авг, 19:59 #454 #812287

>>812279
У меня уже две страницы гугла прокликаны на русском\английском\немецком. Я просто не знаю, что гуглить.

См. пикчу.
Я хочу себе коробку, которая будет решать что и куда отправлять.

По порядку
Proxy:
На вход: json object (proxy/port/token/request)
На выход: json object(proxy/port/token/request/data);

Worker_n:
На вход: json object (как выше)
На выход: csv файл, с обработанной информацией.

Analyze_n:
На вход: csv файл
На выход: csv файл

4. ???
Сохранить в базу данных.

Как тут данные друг от друга тягать? Или я вообще концептуально обосрался? Все прямоугольники - отдельные сервера с ip адресами и приложениями на Java, которые выполняют свой стэк задач.

Ответы>>812291>>812302>>812304

03 Авг, 20:02 #455 #812291

>>812287
Другими словами, я хочу организовать платформу по linux way. Каждый компонент решает только одну задачу и о других компонентах не знает, а также быстро заменим.

Ответы>>812293

03 Авг, 20:03 #456 #812293

>>812291
те ты под отдельный тип задачи отдельный сервер выделяешь?
нахуя?

Ответы>>812295

03 Авг, 20:05 #457 #812295

>>812293
Ну потому что маштабировать надо. Workers/Analyze я могу сложить в докер на одном сервере. Не суть.

Ответы>>812302

03 Авг, 20:10 #458 #812298

>>812105
Взяли полгода назад так в бодишоп стажером.

03 Авг, 20:16 #459 #812302

>>812295
>>812287
Или это совершенно не тот стэк, который мне нужен?

03 Авг, 20:18 #460 #812304

>>812287
Кто во всем этом начинает процесс? Кто делает запрос?

Ответы>>812319

17 Кб, 683x402

03 Авг, 20:43 #461 #812319

>>812304
Да, я немного сократил схему.
Сначала Access token storage пытается получить токены у сервиса. То есть запрос идет к Proxy.

Затем, после того, как хоть один токен получит, включается Producer, который генерирует запрос и передает его в Proxy.

Proxy подписывает запрос токеном и выполняет его через конкретный proxy-server.

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

Если в ответе есть ошибка, то они отсылают объект обратно, Proxy передает запрос повторно. На самом деле я пока не знаю, как это корректно сделать.

Если ошибки нет, то просто сохраняем в файлик\бд.

Ответы>>812320

03 Авг, 20:52 #462 #812320

>>812319
>Если в ответе есть ошибка, то они отсылают объект обратно, Proxy передает запрос повторно.

у меня плохо предчуствие

Ответы>>812321

03 Авг, 20:54 #463 #812321

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

03 Авг, 22:23 #464 #812403

Что за рефлексию годного почитать? Только не общего "привет хабр, сегодня мы напишем как приватное поле класса сделать setAccessible, пишите комментарии))", а обстоятельный труд.

Ответы>>812423

03 Авг, 22:27 #465 #812412

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

Ответы>>812416

03 Авг, 22:29 #466 #812416

>>812412
> Че
> запрогать
Javascreept zaprogay, pes.

03 Авг, 22:38 #467 #812423

>>812403
Пару глав в Шилдте можешь почитать.

Ответы>>812424

1716 Кб, 1000x916

03 Авг, 22:42 #468 #812424

>>812423
Шилдт академическое говнецо, бесконечно далекое от реального и современного мира. Ты уверен, что там нормально?

Ответы>>812434

03 Авг, 22:50 #469 #812434

>>812424
А сами рефлексии не академ говно? Или же это ништяки для хуцкера? хз-хз

Ответы>>812453

03 Авг, 23:05 #470 #812453

>>812434
Ну, в ежедневной работе каждый день не нужно, но уж точно не
> академ говно
> ништяки для хуцкера

Вот прямо сейчас юзкейс подгоню. Метод, который принимает класс и над нужными полями делает грязные вещи. Конкретнее, допустим есть возвращаемый доменный обжект из базы. Но идентификаторы ты хочешь не long id, а PK + адрес мамаши ентити в бд. В случае идентификатора сущности в базе можно без рефлексии. А если хочешь, чтобы все было автоматически и делалось над всеми идентификаторами в классе, то без рефлексии не обойтись.

Ответы>>812456>>812551

03 Авг, 23:06 #471 #812456

>>812453
> принимает объект

04 Авг, 00:29 #472 #812551

>>812453
Я тоже когда-то угорел по рефлексии. Но в итоге - это все для фреймворков и библиотек. В рабочем коде это только скатывает твой код в говно, которое никто, кроме тебя не понимает.

Ответы>>812559

04 Авг, 00:34 #473 #812559

>>812551
Есть такое, мысль здравая. Но все же хотелось знать побольше, чем нафига нужно, где используется и причем тут setAccessible. Не то чтобы нужно, но для общего развития пригодится. Сам что наворачивал?

Ответы>>812594

04 Авг, 01:18 #474 #812594

>>812559
Всякой фигней занимался. Но если тебе интересно посмотреть на неё в действии - посмотри на внутринности спринга. Его вайринг бинов по аннотациям - самое оно.

37 Кб, 759x500

04 Авг, 03:47 #475 #812644

Сап. Есть один я, который на пробу пилит веб-приложение на Spring+Thymeleaf. Thymeleaf третьей версии. В вебе совсем ньюфаженька, пишу как могу.

Так вот, лежит папка resources в рабочей директории. Из неё спокойно считываются как статичные ресурсы, так и обычные view-ы. Однако Thymeleaf мало того, что каждый раз одаривает меня предупреждением, что "HTML5"-режим deprecated и а-я-яй, так ещё и ругается, что не может найти путь classpath:/templates, которого, очевидно, нет, ведь всё хранится в папке resources.
View-ы и fragment-ы (th:fragment) он спокойно отдаёт и всё работает, но предупреждения несколько напрягают.

Путём восхитительного дебага с помощью System.out.println оказалось, что спринг, вообще-то, не особо желает пользоваться моим TemplateEngine, хотя и принимает во внимание мой ITemplateResolver. При этом метод создания TemplateEngine не вызывается вообще.
В TemplateEngine-е, который выдаётся мне при создании ViewResolver-а, кроме моего ITemplateResolver-а содержится ещё какой-то левый.

Если убрать метод templateEngine вообще, не изменяется ничего.

С меня как обычно.

Ответы>>812659>>812707>>812741

04 Авг, 05:58 #476 #812659

>>812644
Берешь Spring Boot - там уже есть AutoConfiguration для Thymeleaf из коробки.
Можешь попробовать навесить Primary поверх Bean у template engine
Можешь задать другое имя для template engine и инжектить его в другие фасолины.

Ответы>>812671>>813101

04 Авг, 07:45 #477 #812671

>>812659
Проще выучить js.

Ответы>>812707

04 Авг, 09:44 #478 #812707

>>812644
>>812671
Нахуя в вебе нужна эта сраная джава со спрингом?

04 Авг, 10:26 #479 #812741

>>812644
Судя по тому, что у тебя эти методы серым идея подсвечивает, ты их и в контекст то не добавил. Это твой основной файл конфигурации?

Ответы>>813101

18 Кб, 456x376

04 Авг, 11:03 #480 #812762

Че-то шиндовс експлорер подвисает при отрисовке.

Ответы>>812846

04 Авг, 13:07 #481 #812846

>>812762
while true { рисуем линию}
?

Ответы>>813077

04 Авг, 13:28 #482 #812858

Я опять не могу разобраться с тестированием. Суть токова: есть SpringBootApplication, у этого приложения есть RestController, в котором указан Autowired сервис. Этот сервис в тестах надо заменить сервисом-заглушкой. Разумеется, я загуглил как это сделать, но так и не нашел решения, всякие подходы с InjectMocks не сработали.
Вопрос такой: где-нибудь на гитхабе есть полный рабочий пример springboot-приложения с тестированием, где я увижу, как правильно инжектить сервисы?

Ответы>>812861

04 Авг, 13:31 #483 #812861

>>812858
А что ты в контроллере тестировать собрался? Там же логики нет.

Ответы>>812880

04 Авг, 13:42 #484 #812880

>>812861
Логики там действительно нет, обработка запроса сводится к "yobaService.process(request);". Но чтобы все удобно тестировать, мне надо разобраться, как этот yobaService в контроллере подменить сервисом-заглушкой.

Ответы>>812897

04 Авг, 13:57 #485 #812897

>>812880
Так и пиши тест на yobaService.
А про InjectMocks - ты поставил @RunWith(MockitoJUnitRunner.class) над классом теста?

Ответы>>812920

04 Авг, 14:07 #486 #812902

Деплою веб-приложение. Приложению нужны кое-какие файлы для работы. Куда их помещать чтоб они задеплоились и какой путь прописывать в коде?

04 Авг, 14:31 #487 #812920

>>812897
>Так и пиши тест на yobaService.
Похоже, тебе не ясна суть проблемы. Внутри yobaService может быть fizzBuzzService который я хочу подменить еще одним стабом — как быть тогда? Вот в этой замене суть вопроса, а не в том, какой класс я тестирую.
>А про InjectMocks - ты поставил @RunWith(MockitoJUnitRunner.class) над классом теста?
Я проверял два варианта: с MockitoJUnitRunner и с SpringJUnit4ClassRunner+MockitoAnnotations.initMocks(this) в @Before-методе. В первом случае не автовайрится WebApplicationContext, во втором не инжектится заглушка.

Ответы>>812929

04 Авг, 14:39 #488 #812929

>>812920
>Похоже, тебе не ясна суть проблемы.
Это тебе не ясна суть проблемы. Юнит тест тестирует один класс за раз. Если ты заменил yobaService моком, то ты никогда и не доберешься до fizzBuzzService.
А если ты пилишь интеграционный тест (на контроллер, боги), то там совсем другой подход.

>В первом случае не автовайрится WebApplicationContext
Это что вообще за пиздец? Кто же контекст вайрит?

Ответы>>812960

04 Авг, 15:02 #489 #812960

>>812929
>Это что вообще за пиздец? Кто же контекст вайрит?
Ты меня траллировать пытаешься?
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/integration-testing.html#testcontext-ctx-management

>А если ты пилишь интеграционный тест, то там совсем другой подход.
Хорошо, что ты напомнил мне, что это называется интеграционным тестом. Я нашел нужную подсказку в документации и прописал класс конфигурации в самом тесте — работает как надо. Ура.
>(на контроллер, боги)
И что же не так с тестированием контроллера? Мне надо убедиться, что определенный POST-запрос возвращает определенный ответ — я это и тестирую.

04 Авг, 16:55 #490 #813068

Бля, анон, как подключить к camel базу postgresql? Только не через Spring синтаксис, ибо spring не использую. А примеры исключительно на spring.

Ответы>>813094

04 Авг, 17:04 #491 #813077

>>812846
Не, прост много линий, да и вообще слабо че-то.

04 Авг, 17:24 #492 #813094

>>813068
Там же вроде просто синтаксис околоспринговский, а сам спринг он не вынуждает использовать.

04 Авг, 17:31 #493 #813101

>>812659
Вот, проблема в Spring Boot, как оказывается; он как раз и перекрывает мою конфигурацию. Отключил автоконфиг Thymeleaf-а - всё работает как должно. Спасибо.

>>812741
Идея коммьюнити, так что она просто не видит, что это bean-ы спринга.

Ответы>>813103>>813168

04 Авг, 17:34 #494 #813103

>>813101
>Вот, проблема в Spring Boot, как оказывается; он как раз и перекрывает мою конфигурацию. Отключил автоконфиг Thymeleaf-а - всё работает как должно. Спасибо.
Это вообще дрянная особенность Boot'а. Чуть подключаешь какую зависимость - сразу надо чекать "а нет ли там автоконфига, из-за которого все не будет работать".

Ответы>>813105

04 Авг, 17:38 #495 #813105

>>813103
А нет ли какого-нибудь способа проверить, какими классами конфигурации спринг воспользовался?

Ответы>>813108>>813168

04 Авг, 17:47 #496 #813108

>>813105
Что-нибудь такое может быть
@Bean
public static BeanFactoryPostProcessor postProcessor() {
return beanFactory -> beanFactory.getBeansWithAnnotation(Configuration.class).forEach((s, o) -> log.debug("config {} => {}", s, o));
}
Я бы попробовал, но ухожу уже.

Ответы>>813147

04 Авг, 18:13 #497 #813147

>>813108
Падает на строчке beanFactory.getBeansWithAnnotation(Configuration.class):

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration$DispatcherServletConfiguration': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration$DispatcherServletConfiguration$$EnhancerBySpringCGLIB$$29bf56ad]: No default constructor found; nested exception is java.lang.NoSuchMethodException: org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration$DispatcherServletConfiguration$$EnhancerBySpringCGLIB$$29bf56ad.<init>()

Если указывать другую аннотацию, с которой bean-ов нет, то не падает.

Ответы>>813160

04 Авг, 18:22 #498 #813160

>>813147
Ну ты же суть понял. Влезть в создание бинов и залогировать.

Ответы>>813274

04 Авг, 18:31 #499 #813168

>>813101
>>813105
Ну раз Spring Boot подключен, то лучше не конфигурировать бины, а пользоваться автоконфигурацией и прописывать проперти
docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties
Можно поставить logging.level.org.springframework.boot.autoconfigure.logging.AutoConfigurationReportLoggingInitializer в DEBUG, тогда при старте в логе будет показано какие автоконфигурации включены, какие отключены.

Ответы>>813172

04 Авг, 18:34 #500 #813172

>>813168
Не всегда удобно, не всегда подходит, не всегда знаешь вообще, что есть автоконфигурация.

Ответы>>813174

04 Авг, 18:36 #501 #813174

>>813172
> Не всегда удобно, не всегда подходит
В этом случае подходит.
> не всегда знаешь вообще, что есть автоконфигурация
Референс читать нужно.

Ответы>>813244

04 Авг, 19:42 #502 #813244

>>813174
Даже более: этот случай как раз тот, ради которого придумали spring boot.

04 Авг, 20:22 #503 #813274

>>813160
Всё, с этим разобрался.

Теперь новая проблема. Есть Gson, который подключен к проекту. Jackson-а нету. Бины Gson-а инжектятся правильно, GsonHttpMessageConvertersConfiguration срабатывает, GsonHttpMessageConverter инжектится с правильным Gson-ом.

Однако, оно не используется, если контроллер отдаёт, собственно, JSON (JSON-таки отдаётся, но при этом преобразуется не с помощью прописанного мной Gson-а). Работать начинает, если прописать configureMessageConverters(), но судя по тому, что HttpMessageConvertersAutoConfiguration также срабатывает, и при этом ещё и зависит от GsoHttpMessageConvertersConfiguration, Spring Boot должен как бы сам подхватывать.

Что делать-то? Оставлять configureMessageConverters(), или есть какой-то способ ткнуть Boot мордой в то, что ему надо делать?

Ответы>>813356

04 Авг, 22:30 #504 #813356

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

Ответы>>813443

05 Авг, 00:06 #505 #813443

>>813356
>Выбрось нахуй этот жопорожденный спринг бут и забудь о нем
Зря ты так. Вполне неплохая штука для хеллоу-веб-аппликатион.

Ответы>>813449

05 Авг, 00:20 #506 #813449

>>813443
Вообще ни разу. Цель хеллоу х не увидеть хеллоу х, а разобрать по частям тобою написанное и сделать соответствующие выводы для себя.

Ответы>>813457

05 Авг, 00:35 #507 #813457

>>813449
Я не про учебу. Для учебы неплохо бы начать с xml-конфигурации спринга. Самая верная и идеологически правильная. Чтобы понимать, что вообще происходит.

05 Авг, 00:41 #508 #813461

Лямбды используются только с интерфейсами?

нюфаг

Ответы>>813492

05 Авг, 01:41 #509 #813492

>>813461
Ты хотел спросить могут ли они заменять только интерфейсы с одним методом (не считая дефолтных)? Да только их.

Ответы>>813512

05 Авг, 02:34 #510 #813512

>>813492
Именно. А почему они не могут заменять также классы с одним методом? Потому что ТАК ЗДЕЛОЛИ, или есть какое-то функциональное ограничение, в силу которого это невозможно?

Ответы>>813563

05 Авг, 07:48 #511 #813563

>>813512
Абстрактные классы несут другую идеологию нежели интерфейсы.

05 Авг, 09:30 #512 #813595

Хочу запилить тетрис на 2х. Какой стек выбрать?

Ответы>>813618>>813622

05 Авг, 10:04 #513 #813618

>>813595
Spring + Hibernate. Еще посомртри в сторону Spark/Hadoop.

05 Авг, 10:11 #514 #813622

>>813595
NodeJS + MongoDB

Ответы>>813636

05 Авг, 10:58 #515 #813636

>>813622
Спасибо, уже ушел.

45 Кб, 875x558

05 Авг, 16:06 #516 #813825

Анон, недавно взялся изучать ООП и джаву в частности, возник такой вопрос(возможно я не правильно формулирую):

Как правильно реализовать неограниченную вложенность объектов? (не технически, а сам алгоритм)
На пикрелейде пытаюсь сделать нечто подобное виртуальной папки. Т.е Папка, в ней могут быть другие папки или файлы, при этом сама папка тоже может быть в другой папке.

Я двигаюсь в правильном направлении, или совсем хуйню сделал?

Ответы>>813853>>813899

05 Авг, 16:40 #517 #813853

>>813825
Ну тип хранишь все в коллекциях, дохуя неограниченно, в каждой папке есть коллекция папок и ссылка на родительскую дирректорию.

Мимонуб

05 Авг, 17:15 #518 #813899

>>813825
class File {String name;}
class Dir extends File {List<File> content;}
Хуле тебе еще надо, блджад?

95 Кб, 492x469

05 Авг, 20:00 #519 #814006

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

Ответы>>814008>>814010>>814020

47 Кб, 492x469

05 Авг, 20:03 #520 #814008

>>814006
Кое-как изобразил.

Ответы>>814020

05 Авг, 20:07 #521 #814010

>>814006
Используй буферизацию.

Ответы>>814020

13 Кб, 461x287

05 Авг, 20:21 #522 #814020

>>814006
>>814008
>>814010
Уже починил, не знаю с чем это связано.

39 Кб, 485x320

06 Авг, 11:36 #523 #814431

Есть таблица в сиквеле, у которой есть id. Есть другая таблица в сиквеле, у которой ключ составной - колонка со своим id и колонка с id первой таблицы. Поверх всего этого натянут Гибернейт. IDE автоматом создала по классу на кажду таблицу, класс на ключ второй таблицы и XML с маппингом. В XML у айдишника первой таблицы указан генератор identity, и всё нормально работает. Но у второй таблицы ключ взят в тэг composite-id, который не позволяет указывать внутри генератор. Записывается всё в базу нормально, все данные на месте, но когда я записываю объект сущности второй таблицы, которая с составным ключом, вместо айдишника новой строки мне возвращается 0. У первой таблицы всё было так же, но я указал руками генератор в маппинге и всё нормально заработало. Что делать? И почему вы не перекатываете утонувший тред?

Ответы>>814459

31 Кб, 512x512

06 Авг, 12:12 #524 #814459

>>814431
> Что делать?
http://www.jooq.org/

Ответы>>814483

06 Авг, 12:48 #525 #814483

>>814459
Это, конечно, прикольно, но если я приду устраиваться на работку с жуком вместо гибернейта, меня нахуй пошлют.

Ответы>>814485

06 Авг, 12:51 #526 #814485

>>814483
А ты им расскажи почему orm говно.

Ответы>>814488

06 Авг, 12:56 #527 #814488

>>814485
Они меня внимательно выслушают и нахуй пошлют. Лучше ты им расскажи.

Ответы>>814494

229 Кб, 457x318

06 Авг, 13:05 #528 #814494

>>814488
Говнолегаси бд со схемой отношений - все со всеми. Нужен десяток полей из десятка разных таблиц в одном объекте.
@
ХИБЕРНЕЙТ, ЗАЩОО
@
С ЛИЦОМ БАТТХЕРТА, ПИШЕШЬ МЕМАС CREATESQLQUERY

А так берешь, джойнишь как надо в дао и хоть обвытаскивайся.

Вот это им и рассказывай. Опционально еще вскочи на стол и расскажи, что джава мертва и будущее за нодой.

Ответы>>814501>>814525

06 Авг, 13:12 #529 #814498

Посоны, поясните нюфагу. Начал осваивать джаву, выбрал ее рандомно, типа популярно, все дела.
Но когда дело дошло до моей хотелки по использованию драйвера устройства, я обосрался. Неужели Джава не может в драйвера?

Ответы>>814499

06 Авг, 13:14 #530 #814499

>>814498
> Начал осваивать джаву, выбрал ее рандомно, типа популярно, все дела.
Тебя наебали, джава умирает. Популярен JS. Иди к ним в тред.
> использованию драйвера устройства, я обосрался. Неужели Джава не может в драйвера?
Ты вообще читал что такое java и как работает? Native API дальше по коридору в C и C++.

06 Авг, 13:20 #531 #814501

>>814494
По делу-то есть что сказать?

Ответы>>814502

06 Авг, 13:22 #532 #814502

>>814501
Ты тупой? Разбери по частям мое послание тебе.

Ответы>>814504

06 Авг, 13:30 #533 #814504

>>814502
>нужно разобраться с ОРМ, потому что у всех работодателей оно в обязательных скиллах
>описываю ситуацию и пишу вопрос
>в ответ слышу, что ОРМ нинужно, джава мертва, а все конторы, где они используются - говно
>в добавок называют тупым
И чего я от двача ждал?

Ответы>>814509

06 Авг, 13:35 #534 #814509

>>814504
Ты с чем-то не согласен? Опиши свой баттхерт.

Ответы>>814512

06 Авг, 13:42 #535 #814512

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

Ответы>>814518

06 Авг, 13:47 #536 #814518

>>814512
Ты описал свой баттхерт, послушный мемас. А теперь опиши с чем ты не согласен.
> чужой тред
Какой-то петушок с нулевым опытом коммерческой разработки на Java (что так и останется) считает тред своим. Ньюфаг обезумел.
> >в следующем посте сагрится на зелёный текст
> Мам, ну скажи ему, пусть мне не отвечает. :(

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

Ответы>>814519

06 Авг, 13:51 #537 #814519

>>814518
>скриптодурачок думает, что его кто-то будет переубеждать

Ответы>>814520

06 Авг, 13:52 #538 #814520

>>814519
Слив обоссанного недоджуниора (которого никуда не возьмут, ибо 60 человек на 1 место) засчитан.

Ответы>>814523

06 Авг, 13:55 #539 #814522

И все же, пацаны, есть ли смысл писать высоконагруженный сервак на джаве? А то меня этим вашим GC все пугают.

Ответы>>814524

06 Авг, 13:55 #540 #814523

>>814520
Полегчало?

Ответы>>814524

06 Авг, 13:58 #541 #814524

>>814523
У меня ничего не изменилось, ведь это ты обосрался, даже не программист, а не я. С простейшим хибернейтом даже разобраться не может, вообще охуеть.
>>814522
С G1 имеет.

Ответы>>814525

06 Авг, 14:00 #542 #814525

>>814524
>С простейшим хибернейтом
>>814494
>ХИБЕРНЕЙТ, ЗАЩОО
>С ЛИЦОМ БАТТХЕРТА, ПИШЕШЬ МЕМАС CREATESQLQUERY
>С простейшим
Скриптодурачок ловко извернулся и засунул собственный хуй себе в рот.

Ответы>>814526

06 Авг, 14:03 #543 #814526

>>814525
Безработная обоссанная манька продолжает фантазировать.
> >ХИБЕРНЕЙТ, ЗАЩОО
> >С ЛИЦОМ БАТТХЕРТА, ПИШЕШЬ МЕМАС CREATESQLQUERY
> >С простейшим
Долбоеб, ты что, вообще нихуя не понял что я тебе сказал?

06 Авг, 16:15 #544 #814619

>>814618 (OP)
>>814618 (OP)
>>814618 (OP)
>>814618 (OP)
>>814618 (OP)
>>814618 (OP)

Тред утонул или удален.
Это копия, сохраненная 30 августа 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion