[Ответить в тред] Ответить в тред

16/08/16 - Запущен Двач Трекер
01/08/16 - Вернули возможность создавать юзердоски
09/07/16 - Новое API для капчи - внимание разработчикам приложений



Новые доски: /obr/ - Offline Battle Rap • /hv/ - Халява в интернете • /2d/ - Аниме/Беседка • /char/ - Сетевые персонажи • /wwe/ - WorldWide Wrestling Universe • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 543 | 45 | 151
Назад Вниз Каталог Обновить

Официальный™ тред Java #39 Аноним 27/07/16 Срд 13:29:49  806729  
14696153899440.jpg (302Кб, 1818x1000)
Шапка треда https://github.com/qqqlll/Java-Thread/wiki

Предыдущий тонет здесь >>798959 (OP)
Аноним 27/07/16 Срд 13:58:28  806759
Первый нах
Аноним 27/07/16 Срд 15:28:31  806805
Вы че, ебанулись? Какого хуя нет unsigned? Если мне надо индекс массива передать, мне что, блять, каждый раз нужно проверять, что он >= 0?
Аноним 27/07/16 Срд 15:34:26  806808
>>806805
Нет, не надо.
Вместо этого тебе надо каждый раз проверять, не вылетело ли вдруг исключение. Индекс ведь может оказаться и слишком большим.
Аноним 27/07/16 Срд 15:42:06  806810
>>806805
Ты дебил отрицательный индекс передавать? Проверяй контракты на стыке интерфейсов.

Ты дебил вообще массивы использовать? Работай с коллекциями.
Аноним 27/07/16 Срд 15:45:49  806813
>>806810
В контракте int, хуле. Передам-ка -142148.
Аноним 27/07/16 Срд 15:52:52  806821
>>806813
А то что int ограниченной точности, это тебя уже не смущает?

Если уж такой фашист - используй библиотеки, в которых Unsigned реализованы в виде объектной обертки (вот только из-за соображений эффективности они обычно mutable и api у них ебанутое из-за экономии на сборке мусора). Но люди тебя не поймут.
Аноним 27/07/16 Срд 16:47:43  806839
Нет перегрузки операторов, вот что действительно печально.
На днях понадобилось портировать невротебеную формулу на джаву.
В формуле большие числа, поэтому пришлось юзать биг интеджер.

Вот как я заебался переписывать.
Аноним 27/07/16 Срд 16:59:16  806844
>>806839
имплаинг с языком где есть перегрузка операторов ты б так просто все сделал что у тебя даже сомнений бы не появилось в правильности полученного кода.
Аноним 27/07/16 Срд 17:00:39  806845
>>806839
http://projects.congrace.de/exp4j/ ?
Хз что там с точной арифметикой. Вообще можно гуглить по builder formula expresssion bigdecimal

http://stackoverflow.com/questions/7258538/free-java-library-for-evaluating-math-expressions
Аноним 27/07/16 Срд 17:13:51  806850
14696288312840.png (48Кб, 236x200)
>>806839
Алсо что заставляет вас брать язык не под свои задачи и потом ругаться где-то в интернете на форумах мол язык говно потому что вам не подошел? Ну не подошел язык, так возьми другой. Возьми язык под свои задачи, возьми хаскел, который придуман на математической базе. Отсутствие unsigned int это настолько изощренная мелочная и нереалистичная высосанная из пальца проблема, что вот хуже только спросить почему в Hashtable нельзя положить null.
Аноним 27/07/16 Срд 17:33:32  806855
>>806850
Как будто кого-то интересует мнение народа из кубиклов.
Аноним 27/07/16 Срд 18:02:25  806868
>>806855
А раз за это еще и платят то вопрос совсем неуместен.
Аноним 27/07/16 Срд 19:24:57  806914
>>806850
Джава - язык йоба энтерпрайза, где часто считают деньги. Деньги моделируются как BigDecimal. Так схуяли это язык не под эту задачу?
Аноним 27/07/16 Срд 19:58:22  806939
>>806914
I che blya?
Аноним 27/07/16 Срд 20:01:43  806942
>>806914
Это где суммы такие оперируются что в лонг не влазят? 9.223372e+18 хватит всем!
Аноним 27/07/16 Срд 20:05:51  806949
>>806914
Ну раз деньги, значит, формула не "вротебеная". И даже скорее всего реализована в какой-то библиотеке (йоба-энтерпрайз же) и для тебя вообще выглядит как

CompoundInterest.cacluate(1,2,3)
Аноним 27/07/16 Срд 23:46:06  807105
>>806839
Мог бы в котлине сделать.
Аноним 27/07/16 Срд 23:52:38  807112
>>807105
А мог бы индусу зааутсорсить. Умные мысли то есть? Потому что я не слышал чтобы в котлин какие-то другие bigdecimal завезли.
Аноним 28/07/16 Чтв 00:26:22  807142
>>807112
Там перегрузка операторов есть, кловен.
Аноним 28/07/16 Чтв 01:24:14  807158
>>807142
Кловен тут только ты. Дважды уже.
Аноним 28/07/16 Чтв 07:54:22  807211
>>806839
Не могущий в массовую замену регэкспом)000
Аноним 28/07/16 Чтв 16:25:57  807448
>>807142
Ты со скалой перепутал
Аноним 28/07/16 Чтв 16:55:29  807456
>>807448
Ты со groovy перепутал
Аноним 28/07/16 Чтв 19:27:21  807563
>>807448
https://kotlinlang.org/docs/reference/operator-overloading.html

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

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

Потом в основном коде вызывать через полиморфизм нужную хуйню и всё.
Аноним 28/07/16 Чтв 23:39:09  807838
14697383497500.png (38Кб, 518x518)
Сап, джависты.
Вопрос: Что пишут на Java? Я студентота по IT-специальности, изучаю Java самостоятельно уже полгода. И тут возник вопрос: а как, в общем-то, вкатиться? Давай-те на секунду представим, что у меня есть некоторый объём знаний, которого будет достаточно для, например, джуниора. Зашёл я на сайтик по поиску работу, увидел, что в моей мухасрани 350к нет объявлению по поиск Java-кодера. Анон, расскажи, как ты вкатывался. С чего начинал? Где и как искал работу?
Аноним 28/07/16 Чтв 23:46:02  807847
>>807838
Проще всего устроиться в консалтинг/интегратор джуном. Пару лет назад вакансий в ДСах хватало.
Аноним 28/07/16 Чтв 23:50:02  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 Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
Аноним 28/07/16 Чтв 23:54:13  807859
>>807853
Когда я писал свой пост, то, конечно, понимал, что двач - не лучшее место для советов, но блять всё-таки понадеялся на то, что адекваты всё же снизойдут до меня.
Аноним 28/07/16 Чтв 23:56:37  807862
>>807847
Чтобы стать полноценным Java-программистом, мне по-любому придётся съёбывать в миллионик или ты можешь подкинуть идейку для заработка в мухасрани?
Аноним 29/07/16 Птн 00:00:22  807866
>>807859
В смысле? Я тебе добра желаю, не каждый же день приходит нюфаг с таким вопросом.

На Haskell полно удаленной работы, а вот специалистов не хватает. Некоторые компании готовы брать себе нихуя не умеющих макак за огромные деньги, чтобы научить их кодить на Haskell.
Аноним 29/07/16 Птн 08:03:43  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();
Аноним 29/07/16 Птн 08:04:20  808001
>>807862
>идейку для заработка в мухасрани
Можешь открыть свой стартап, например
Аноним 29/07/16 Птн 08:34:59  808010
Приведите, пожалуйста, пример использования inner class. Не могу понять на кой черт они нужны.
Аноним 29/07/16 Птн 08:39:57  808012
>>808010
До Java 8 их часто использовали вместо лябмд
Аноним 29/07/16 Птн 08:49:33  808014
>>808012
Ок, ну а в 8 они не нужны нахер?
Аноним 29/07/16 Птн 09:01:46  808018
>>807862
Честно хз, что работой в мухосранях, т.к. из своей свалил в ДС сразу после универа. Как вариант вкатится в андроид, написать что-нибудь своё, вообщем заиметь портфолио/профиль на гитхабе и пробовать устроиться на удаленку.
Аноним 29/07/16 Птн 09:28:06  808026
>>808014
Еще могу это добавить >>801026
Аноним 29/07/16 Птн 10:10:03  808045
... > моча > ... > пехепе > говно > ... > джява = 1С = червь пидор

cега явадаунам
Аноним 29/07/16 Птн 10:24:20  808050
>>808045
Жаль что всем похуй на твое мнение
Аноним 29/07/16 Птн 10:25:36  808052
>>808010
Хз, в яве и ее стандартных пакетах повсюду используются
Аноним 29/07/16 Птн 10:38:55  808058
>>808045
Че там в жс треде? Совсем плохо? WebAssembly пришел?
Аноним 29/07/16 Птн 11:34:35  808099
14697812759260.png (26Кб, 649x537)
14697812759261.png (20Кб, 567x416)
>>808010
Вместо ссылок.
Аноним 29/07/16 Птн 14:47:24  808226
>>806729 (OP)
Появилась необходимость освоить Java. Занимаюсь на JavaRush. Правильно ли я выбрал ресурс.
Аноним 29/07/16 Птн 14:57:43  808236
>>808226
>Занимаюсь на JavaRush. Правильно ли я выбрал ресурс.
Тоже там занимался, теперь делаю сайтики на ангуляре и бэкенд немножко могу на ноде c(^_0)э
Аноним 29/07/16 Птн 14:59:28  808239
>>808236
Я вообще занимаюсь АСУТП, но очень хочу оттуда уйти. Надеюсь, что в будущем это мне поможет.
Аноним 29/07/16 Птн 15:35:19  808291
Сап, джавабоги. Что можно читануть чтобы быстро перекатиться с убого шарпа в богоджаву?
Аноним 29/07/16 Птн 15:38:40  808297
>>808291
SpeakingJS
Аноним 29/07/16 Птн 16:02:35  808318
>>808291
поясни за убогошарп, плес
Аноним 29/07/16 Птн 16:05:44  808320
>>808318
язык божественен, но, когда дело доходит до ведра, сосёт.
Аноним 29/07/16 Птн 16:11:22  808330
>>808320
> когда дело доходит до ведра, сосёт.
А когда доходит до iOS (в сравнение с джавой)?
Аноним 29/07/16 Птн 16:12:21  808331
>>808330
до ios мне доходить пока не доводилось. моя цель сугубо ведро.
Аноним 29/07/16 Птн 16:20:55  808340
Что лично ты, анон, пишешь на Java? Что приносит тебе деньги?
Аноним 29/07/16 Птн 16:30:11  808349
14697990114120.jpg (175Кб, 848x1200)
14697990114151.jpg (479Кб, 2560x1440)
14697990114252.jpg (104Кб, 564x797)
14697990114273.jpg (1142Кб, 2500x1406)
Сап, джавач.

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

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

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

пиксрандом
Аноним 29/07/16 Птн 16:38:41  808357
14697995212890.jpg (7Кб, 196x230)
>>808349
> *Utils.java
Аноним 29/07/16 Птн 16:59:16  808381
>>808000
пиздец говнокод
Аноним 29/07/16 Птн 17:04:05  808389
>>808381
зато трипл
Аноним 29/07/16 Птн 17:21:46  808401
>>808349
Хороший код: всё по делу, ничего лишнего.
Но в энтепрайзе такое не любят, там нужно чтобы позапутаннее было, с паттернами-хуятернами.
Аноним 29/07/16 Птн 17:28:10  808407
>>808401
ну паттерны должны быть по делу, а когда у меня 4 класса, то городить ДипенденсиИнжекшоны, Стратегии и прочие Фабрики не вижу смысла. Если код будет разрастаться, тогда уже буду думать о таких вещах, пока просто хочу отладить приложение, вычистить хардкод и покрыть это дело тестами.

>>808357
> *Utils.java
что ты хотел этим сказать?
Аноним 29/07/16 Птн 17:39:18  808413
дайте игру с жавараша про змейку с классами плз.
Аноним 29/07/16 Птн 17:40:07  808414
>>808381
пиздец это вообще-то не "продакшн", а пробный код посмотреть, как делаются игры, даун тупорылый. уебывай на свой коворкинг нищая мразина.
Аноним 29/07/16 Птн 17:41:06  808415
>>808340
стриптиз танцую - вот это деньги мне приносит, а ты?
Аноним 29/07/16 Птн 17:43:42  808416
>>808414
Если ты говнокодишь осознанно, то нахуй вообще кодить тогда макак? Еще и тут свои высеры постишь, в гости тоже немытым ходишь?
Аноним 29/07/16 Птн 17:44:06  808417
>>808415
DeepBunnyHole не выдумывай. Возьми салфетку.
Аноним 29/07/16 Птн 17:51:21  808426
Википедии принес.

https://en.wikipedia.org/wiki/Maze_generation_algorithm
Аноним 29/07/16 Птн 17:53:13  808428
>>808426
уноси её нахуй
Аноним 29/07/16 Птн 17:55:34  808431
>>808407
>что ты хотел этим сказать?
Тебе экстеншен-методы для чего даны?
Аноним 29/07/16 Птн 17:55:38  808432
14698041387040.gif (91Кб, 220x220)
>>808428
Чо злой такой? Смотри гифочка.
Аноним 29/07/16 Птн 17:56:55  808433
>>808416
я спрашиваю, почему картинка не рисуется, проблема уже найдена. нахуй пройди. а пример скопирован с сайта, маня.
Аноним 29/07/16 Птн 18:11:15  808439
>>808432
Спасибо!
Аноним 29/07/16 Птн 18:13:04  808441
>>808431
В джаве? Их нет блять.
Аноним 29/07/16 Птн 18:13:50  808443
>>808433
тогда дам тебе один по настоящему ценный совет
дропай этот сайт, хуже чем писать свое говно, это учится на примерах чужого говна, только время потеряешь, а и так придется потом переучиваться
Аноним 29/07/16 Птн 18:14:14  808444
>>808431
>кстеншен-методы
>в Java-трэде
ты не ошибся трэдм?
Аноним 29/07/16 Птн 18:22:55  808453
>>808407
Пиздец в том, что *Utils - это набор статических утилитных методов, а у тебя utils передается в utils и там начинается какая-то ебатень.
Аноним 29/07/16 Птн 18:27:43  808457
>>808453
т.е. тебе не нравится название классов?
>*Utils - это набор статических утилитных методов
это какой-то кодконвеншн?
Аноним 29/07/16 Птн 18:28:56  808458
>>808457
Да. Точнее антипатерн.
Аноним 29/07/16 Птн 18:29:55  808460
>>808458
не встречал раньше, спасибо, погуглю
Аноним 29/07/16 Птн 18:30:56  808462
>>808458
В джяву экстеншн методов не завезли, приходится это терпеть.
Аноним 29/07/16 Птн 18:31:52  808463
>>808453
> набор статических утилитных методов
Вроде везде пишут, что это некошерно, и надо делать синглтоны.
Аноним 29/07/16 Птн 18:32:08  808464
>>808458
ну вот допустим в разных абсолютно автономных классах у тебя используется один и тот же метод, с хуяли тогда вынос этого метода в отдельную АБСОЛЮТНО ЧИСТУЮ функцию является антипаттерном?
Аноним 29/07/16 Птн 18:32:38  808465
>>808462
Завезли же, в 8-ю, в интерфейсы.
Аноним 29/07/16 Птн 18:34:09  808467
>>808465
Это не то. Если сорцы твои, то еще можно как угарелый навешивать на все подряд интерфейсы, полные дефолтных методов, а если нет?
Аноним 29/07/16 Птн 18:35:01  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% правильного кода, но мой подход считаю понятным для чтения и понимания, а когда написано одно а там другое - это плохо.
Аноним 29/07/16 Птн 18:35:55  808469
>>808458
Не антипаттерн а единственно возможный костыль для Джява.
Аноним 29/07/16 Птн 18:36:52  808471
>>808468
Спасибо за пример!
Аноним 29/07/16 Птн 18:36:54  808473
>>808463
На заборе тоже пишут.
Накидай плюсы и минусы каждого подхода и решай сам.

Аноним 29/07/16 Птн 18:54:40  808484
>>808463

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

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

Вообще ящитаю так, функция для какой-то работы с примитивами или коллекциями однозначно статически в - Utils.
Аноним 29/07/16 Птн 19:05:34  808490
Вы тут такие злые потому что вас либо на работе за доширак тюкают либо работу найти не можете, да? Поэтому вам так печет от тех, кто занимается прогерством в качестве хобби?
Аноним 29/07/16 Птн 19:07:24  808491
>>808443
А в чем конкретно говнокод ты можешь пояснить? в том что сцена рисуется кодом, а не в FXML?
Аноним 29/07/16 Птн 19:07:39  808492
>>808407
>> *Utils.java
Вынеси это хотя бы в отдельный пакет "common" что бы с бизнес-логикой не смешивались
Аноним 29/07/16 Птн 19:11:27  808493
>>808490
с чего такие выводы? болишьнство комментов по коду выше довольно адекватны и аргементированны
Аноним 29/07/16 Птн 19:13:04  808494
>>808492
по утилзам уже понял, зарефакторю.

А есть спецы по грэдлу? гляньте билд скрипт, плиз
Аноним 29/07/16 Птн 19:14:28  808495
Что можно на спринге написать, чтобы было не стыдно показать на собеседовании?
Аноним 29/07/16 Птн 19:21:37  808502
>>808495
программу
Аноним 29/07/16 Птн 19:35:19  808515
>>808502
Уебище, опять на связь выходишь?
Аноним 29/07/16 Птн 19:36:07  808517
>>808515
дада, я слушаю (:
Аноним 29/07/16 Птн 19:54:34  808523
>>808494
Пододжди до gradle 3.0, там наконец-то появится статическая типизация и подсказки в IDEA.
Аноним 29/07/16 Птн 19:59:59  808528
Посоветуйте вкатывающемуся в джаву годную книженцию по сему язык
Аноним 29/07/16 Птн 20:01:01  808529
>>808528
начинай с haskel для JVM
Аноним 29/07/16 Птн 20:01:33  808530
>>808528
Thinking in Java, Bruce Eckel
Аноним 29/07/16 Птн 20:10:20  808532
>>808528
https://www.ozon.ru/context/detail/id/20371540/
Хватил что бы устроиться джуном Luxor
Аноним 29/07/16 Птн 20:45:54  808538
>>808493
потому что каждый второй коммент заканчивается фразой "иди в мак, с таким говнокодом работу не найдешь". такие жирные проекции.
Аноним 29/07/16 Птн 21:03:11  808543
14698153913390.webm webm file (3780Кб, 1280x720, 00:00:59)
>>808528
Шапку для кого написали?
Аноним 29/07/16 Птн 23:40:23  808593
Такс, ебать, поступил на работу джуном, а там в огромном тырпрайз-прожекте javaee чистая, soap, неебическая куча нативных sql-запросов и ант (хотя, они сказали, что скоро на гредл пересядут, слава господу нашему, христу). И, блядь, самое главное - проект-то сделан немцами для немцев, не русскими ваньками. И что, так везде? Залупу за воротник, а не современные технологии?
Аноним 29/07/16 Птн 23:43:58  808595
>>808593
Ну а ты чего ожидал от огромного тырпрайза? Он же до ужаса инертен в этом плане, современные технологии они в молодых стартапах да и то не всегда
Аноним 29/07/16 Птн 23:47:44  808598
>>808595
но это еще ничего, вот в госконторах и некоторых банках
все еще люди на кобол и дб1 сидят
Аноним 29/07/16 Птн 23:50:26  808600
Ну хотя бы сборщик вместо анта в 2016-то можно намутить. Алсо, было забавно sonar прикручивать к этой махине: несколько десятков тысяч code smell'ов и три-четыре багов и уязвимостей.
Аноним 30/07/16 Суб 00:47:16  808616
>>808600
>три-четыре тысячи
Аноним 30/07/16 Суб 02:11:06  808640
сап двачик. занимаюсь веб-разработкой, в последнее время дохуя приходится читать по всяким линуксам, сетевым протоколам и прочему говну, укладывается все очень сложно, но картина в целом более менее начинает складываться, а интерес продолжает расти.

буду признателен, если пояснишь мне за профиты использования nginx в качестве прокси для java приложений (проще говоря, нахуй оно нужно то?). у меня слишком туго с пониманием этой хуйни, поэтому на пальцах, в несколько предложений, коротко о сути, пожалуйста.
Аноним 30/07/16 Суб 05:30:56  808670
14698458565890.png (34Кб, 655x542)
14698458565901.png (42Кб, 619x599)
14698458565912.png (36Кб, 697x527)
14698458565913.jpg (13Кб, 320x320)
Аноним 30/07/16 Суб 09:39:25  808682
>>808670
Требования высокие? Так вродеж норм и зп наверное тоже.
Аноним 30/07/16 Суб 09:58:12  808684
>>808682
#Хэштэги#Там#Где#Они#Не#Уместны
Вин-вин, хуин-хуин
Мы такие ПаСиТиФФнЫе!
У нас Фсе ДруК дРуКу улыбаЮццА! =))))))))

Аноним 30/07/16 Суб 10:11:29  808687
>>808684
На это не обращай внимание, а с требованиями что?
Аноним 30/07/16 Суб 11:58:09  808715
Почему не пашет? Должно увеличивать размер окна на 25 пикс.

http://pastebin.com/s7g9pscC
Аноним 30/07/16 Суб 14:18:32  808778
>>808010
addListener в AWT/Swing типичный пример. Нужны, чтобы не создавать лишних сущностей (имен). Но лучше, где возможно, использовать лямбды.
Аноним 30/07/16 Суб 14:21:46  808780
>>808473
>>808484
Я использую синглтоны там, где есть данные (т.е. изменяемое состояние), статические методы - как набор чистых функций (как в java.lang.Math).
Аноним 30/07/16 Суб 14:22:52  808781
>>808495
Имиджборду.
Аноним 30/07/16 Суб 14:27:10  808783
>>808670
> Но главное, зачем мы с утра спешим на работу - интересные задачи
gans_spb/О программистишках
Аноним 30/07/16 Суб 14:29:10  808786
>>808783
Что такое интересный проект? Например, это постройка марсохода, разработка алгоритмов для работы лунного модуля или там лазарной пушки. На худой конец, поиск лекарства от рака. Но когда какой-нибудь сраный портал или недобитый стартап называют интересным проектом только потому, что так решили его создатели, надо сделать шаг назад и спросить себя — не пытаются ли меня поиметь? Потому что «интересный проект» — такая же абстрактная и сугубо субъективная вещь, как и «вкусный пирожок». Никто еще ни разу не признался, что у них проект скучный и неинтересный, хотя таких проектов 99.999%. Развод из той же темы — «бонусы» и «система поощрений» — это когда ты вкалываешь как проклятый и тебе может единоразово накинут в конце года пару десятков баксов. Дадут на одну ветку бананов больше. Молодец! Возьми печеньку с полки. Заслужил.
Аноним 30/07/16 Суб 14:35:32  808794
>>808598
В Рашке кобола нет, используют 1C (он появился еще в начале 90-х).
(Visual) FoxPro в госконторах очень любят.
Аноним 30/07/16 Суб 14:49:47  808809
>>808786
С такой точки зрения фейсбук тоже не интересный проект.
Аноним 30/07/16 Суб 14:57:16  808822
>>806729 (OP)
антоши, в портфолио какие программы сделать?
Аноним 30/07/16 Суб 15:31:03  808873
>>808786
Интересный проект в таком случае - это если это твой бизнес. Тогда интересный проект. В любом другом случае ты все равно пишешь код и понимаешь, что основная денежная масса течет мимо тебя, а тебе кидают лишь огрызок с барского стола на пол, даже если это 120к в месяц.
Аноним 30/07/16 Суб 16:14:43  808946
>>808809
Не вижу в фейсбуке ничего интересного.

>>808873
Обычно когда говорят "интересный проект", то подразумевают как раз нематериальную заинтересованность. Ну типа как у Linux разработчиков.
Аноним 30/07/16 Суб 16:16:22  808950
>>808946
>как у Linux разработчиков.
А какая у них нематериальная заинтересованность?
Если ты хотел сказать про OpenSource сообщество, то такая работа вроде же не оплачивается?
Аноним 30/07/16 Суб 16:34:44  808970
думаю запилить симулятор фейсбука в командной строке как портфолио. И так, есть ли шансы что меня возьмут жуниором в контору?
Аноним 30/07/16 Суб 16:40:23  808976
>>808950
Они хотят сделать свободную операционную систему, в которой не будет зондов и ограничений.
Аноним 30/07/16 Суб 16:45:58  808980
>>808467
Возможно, еще добавят. В кресты вот уже собираются. Лямбды в жабе тоже появились после выхода нового стандарта C++, до этого все жатники кричали, что они НЕНУЖНЫ, и им достаточно анонимных классов.
Аноним 30/07/16 Суб 23:24:13  809105
>>808715
Ну помоги анон.
Аноним 31/07/16 Вск 00:54:22  809147
В нашем треде есть пришедшие к успеху? Которые с нуля до работки докачались.
Аноним 31/07/16 Вск 00:56:44  809151
Чем отличается состояния потока waiting и blocked? И правильно я понимаю, что разница между notify и notifyAll по сути в том что во втором случае потоки которые не займут монитор станут blocked даже елси до этого были waiting?
Аноним 31/07/16 Вск 01:41:31  809170
Ох не могу больше, какая же джава отвратительная. Как будто специально делали как хуже.
Вот нахуя нужен enum, если это фактически класс, а не перечисление? Зачем плодить объекты, если мне нужен простой алиас числа?
Аноним 31/07/16 Вск 08:44:19  809212
>>809147
В январе 2015 сидел без работы, без опыта и без понимания в какую сторону двигаться.
Сейчас зп 50к милионник мухосранск. Нет тян нет друзей, по вечерам хуярю код.
Аноним 31/07/16 Вск 09:01:06  809217
>>809170
Пора выпускать книгу - как перестать беспокоится о том, что плодятся лишние объекты и начать писать код
Аноним 31/07/16 Вск 10:00:38  809226
>>808014
Напиши свой однонаправленный лист без использования коллекций.
Аноним 31/07/16 Вск 10:12:26  809228
>>809170
Jvm может и не будет множить объекты.
Алсо, енамы в лжаве, это не просто алиасы к числам.
Нужен простой алиас к числам – сделай класс с final константными числовыми полями.
Аноним 31/07/16 Вск 11:11:58  809251
>>809147
В декабре написал хелловорлд. Сейчас 80к+50к квартальная премия.

Но это не мертвая джава, а модный JS и нода.
Аноним 31/07/16 Вск 11:25:23  809255
меня вот муж-олигарх содержит, занимаюсь айти чисто в рамках хобби, чтобы мозг не отуплял, вам печет доширачники?)
Аноним 31/07/16 Вск 11:26:47  809257
>>808670
лепить жаву на быдловебкодинг - какое же это убожество, просто просер ресурсов.
Аноним 31/07/16 Вск 11:39:04  809264
>>809257
двачую, джява там не затащит, её место - исключительно на параше кофемолках.
Аноним 31/07/16 Вск 11:46:44  809266
>>809255
Печет, плохо без куньчика :(
Аноним 31/07/16 Вск 11:48:09  809268
>>809257
Джва чайка. Пилить бекенд магазина рандомных ключей для ксго на джаве это дичайшее извращение.
Аноним 31/07/16 Вск 12:00:12  809276
>>808670
ой ну все, бесплатной стоматологией они меня точно уломали, уже бегу паковать чемоданы и заказывать билет в ДС.
Аноним 31/07/16 Вск 12:04:39  809284
>>809255
Блохо без сельди.
мимо-бохач
Аноним 31/07/16 Вск 12:22:03  809297
14699569240890.jpg (53Кб, 800x331)
только что успешно применила паттерн Strategy в своей змейке. это первый раз.
Аноним 31/07/16 Вск 12:27:53  809303
>>808670
Бесплатная стоматология это новый тренд, просто на западе это охуенный бенефит, ввиду того, сколько там это стоит. Наши жуёбки просто бездумно копируют.
Аноним 31/07/16 Вск 13:06:41  809333
>>809303
У нас нормальный стоматолого дохуя стоит, 2 500 рублей за один зуб, учитывая зп по мухосрани 13 т.р. - это дохуя. У нас же ультра-капитализм, маня.
Аноним 31/07/16 Вск 13:56:00  809380
>>809297
Так сельдь, суп с сиськами быро.
Аноним 31/07/16 Вск 13:56:42  809382
14699626025470.jpg (6Кб, 200x195)
Pepe кондер?
Аноним 31/07/16 Вск 14:19:02  809400
>>809333
>2 500 рублей за один зуб
Минимальный рейт в раше 0.65$, 40$ за зуб.
Минимальный рейт в мурике 8$, 1500$ за зуб.
Итого, в раше дешевле в 3 раза, там блять даже простое обследование >100$ стоит, приходится к латиносам кататься.
Аноним 31/07/16 Вск 14:24:09  809406
14699642498740.jpg (47Кб, 604x422)
>>809400
Медстраховка от работодателя? Персональная медстраховка? Obamacare для совсем нищуков? НАХУЙ ВСЕ ЭТО! БУДУ САМ ПЛАТИТЬ ЗА ВСЕ
Аноним 31/07/16 Вск 16:04:28  809473
>>808670
>3 года
>java core
ну ведь если мозги есть то кор можно и за пол года - год освоить как бог
Аноним 31/07/16 Вск 16:30:27  809498
Охуенно. Решил учить Джаву, скачал какую-то книжку для детей. Вряд ли дети осилят даже первую главу, но похуй. Там предложили скачать еклипс. Так вот, почему в нём вместо черновика запускается класс?
Аноним 31/07/16 Вск 16:47:03  809511
>>809380
на работу хочешь взять? только учти, за сиське доплатить придется.
Аноним 31/07/16 Вск 17:16:21  809546
>>809498
Ты слишком тупои, иди в ЖС тред. бля.
Аноним 31/07/16 Вск 17:18:43  809547
>>809511
А вдруг мне не понравицца? Давай смирненько запили супчик, а там посмотрим.
Аноним 31/07/16 Вск 17:26:37  809555
14699751975250.jpg (113Кб, 768x888)
Какую систему сборки посоветуете юному падавану, вкатывающемуся в Java? Ответ аргументируйте, почему именно она.
Аноним 31/07/16 Вск 17:32:04  809560
>>809473
С мозгами щас не берут. Нужны те, что без мозгов. http://ebanoe.it/2016/07/20/shitcoders/

Кстати, кто-нибудь объяснит мне термин "сыроварня"?
Аноним 31/07/16 Вск 17:43:00  809577
>>809560
Проходит время, человек втягивается. Вроде и подачки с барского стола неплохие, всё становится таким родным и таким ебаным. Постепенно на его бледных пальцах вырастают перепонки (да, прямо как у лягушек) — так чужое гавно разгребать удобно. И тут БАХ! Тебе пизда. Теперь ты уже и средний код от говна с трудом отличаешь. Теперь ты — ебаная жалкая амфибия. И на следующем стендапе начинаешь новенькому заряжать, чтобы он не впрягался. Круг замкнулся.

БОМБАНУЛО ЧЕТ
Аноним 31/07/16 Вск 17:44:20  809578
>>809577
>да, прямо как у лягушек
Как у ЖАБ.
Аноним 31/07/16 Вск 17:47:46  809582
>>809555
Мавен для понимания как строить проект, после этого переходить на грабл
Аноним 31/07/16 Вск 17:47:55  809583
>>809555
Maven. Потому что самая популярная.

>>809560
> сыроварня
Это dou
Аноним 31/07/16 Вск 17:48:28  809585
>>809560
>"сыроварня"
dou.ua
Аноним 31/07/16 Вск 17:49:39  809588
>>809583
Благодарю. Я тоже подумал, что если щас анон не ответит, то буду использовать maven, т.к. часто упоминается в вакансиях.
Про доу- а за что его так прозвали? Причем тут сыр и украинский айти-форум?
Аноним 31/07/16 Вск 17:55:59  809597
14699769595800.png (151Кб, 910x302)
14699769595831.png (35Кб, 1019x450)
>>809588
Из-за популярной пасты про сыр
Аноним 31/07/16 Вск 17:58:09  809599
14699770891420.jpg (99Кб, 900x600)
14699770891441.jpg (94Кб, 900x600)
>>809597
Спасибо.
Аноним 31/07/16 Вск 18:15:24  809610
>>809597
Хохлуши охуели, уже свои мемасы русским людям впаривают!
Аноним 31/07/16 Вск 18:22:06  809613
>>809610
Вам с хохлофобией в политач.
Аноним 31/07/16 Вск 18:28:06  809618
>>809498
> вместо черновика запускается класс
Почему у тебя вместо мозгов используются опилки?
Аноним 31/07/16 Вск 18:36:06  809628
>>809597
Хочу тоже быть украинским программистом, покупать дорогие сыры за 500 гривен и жрать их.

Заебал уже импортозамещенный сыр залупный с отечественными волосами.
Аноним 31/07/16 Вск 18:46:04  809635
>>809628
Пиздуй на удаленку в хохляцкую галеру же
Аноним 31/07/16 Вск 18:50:00  809638
>>809212
>>809251
А как практиковались? Книжки ведь быстро забываются или это только у меня так?
Аноним 31/07/16 Вск 18:52:16  809640
>>809638
А ты и читай, и пиши
Аноним 31/07/16 Вск 18:52:24  809641
>>809638
Ты просто тупой. Программирование не для тебя - дальше будет еще сложнее. Иди в системные администраторы.
Аноним 31/07/16 Вск 19:01:23  809648
>>809638
Я же написал. По вечерам хуярю код. Какие-то сложные вещи коммичу на гитхаб как заготовки, ибо запоминать это пиздец. Пару раз вбрасывал даже в этот тренд.
Аноним 31/07/16 Вск 19:50:37  809677
>>809613
Не, у меня хохлофилия, ты что!
Аноним 31/07/16 Вск 20:21:21  809701
Нихуя пока не знаю в /pr, рещил учить Жаву, начал с жавараш ? норм ?
Аноним 31/07/16 Вск 20:23:22  809702
>>809701
Кобол выбираешь . Оракал положил хуй на javaEE и сама джава медленно умирает . Будущее за универсальными языками типа JS . Рекомендую .
Аноним 31/07/16 Вск 21:18:55  809724
14699891358680.png (86Кб, 632x604)
Сап, джависты. Уже полгода изучаю Java и вот недавно заметил, что работодатели по найму Java-кодеров в требованиях, помимо самой Java, указывают ещё и вот этот Web-блок (назовём его так): JavaScript, HTML и CSS, да и много статей читал, где тоже джависты это учат. В общем, вопрос: Надо ли Java-программисту знать вот эти JavaScript, HTML и CSS?
Аноним 31/07/16 Вск 21:19:14  809725
Посоветуйте книгу на русском , решил начать программировать на Java.
Аноним 31/07/16 Вск 21:20:43  809727
>>809725
В гугле забанили? Читай Хорстаманна "Java Core".
Аноним 31/07/16 Вск 21:21:05  809728
>>809727
>Хорстманна
Фикс.
Аноним 31/07/16 Вск 21:23:46  809729
>>809724
надо
Аноним 31/07/16 Вск 21:26:10  809733
>>809724
Нужно изучать JS, потому что JS нужен как на фронте, так и на бэке, а джава не нужна. Иди к ним в тред.
>>809725
И ты тоже. Только английский еще выучи.
Аноним 31/07/16 Вск 21:27:57  809735
>>809733
Лол. А почему не в Haskell-тред?
Аноним 31/07/16 Вск 21:31:05  809738
а я C#
Аноним 31/07/16 Вск 21:35:09  809744
>>809738
А я твоя мамаша.
Аноним 31/07/16 Вск 21:36:57  809746
>>809735
Потому что хаскель ненужная параша. Только повыебываться перед самим собой.
Аноним 31/07/16 Вск 21:40:54  809749
Если у меня есть мап <Integer, Object>, и я всегда обращаюсь к ней через примитивный int, будет ли оверхед?
Аноним 31/07/16 Вск 21:43:41  809754
говорят C# лучше чем java
ето правда?
Аноним 31/07/16 Вск 21:50:53  809759
>>809749
>>809754
нет
Аноним 31/07/16 Вск 21:55:45  809763
>>809749
Анбоксинг.
>>809754
Да.
Аноним 31/07/16 Вск 22:04:46  809768
>>809759
Погуглил, кэшируются только инты от -127 до 127. Значит, с большими числами будет оверхед.
Аноним 31/07/16 Вск 22:09:42  809771
>>809768
Зачем ты думаешь о оверхеде? Пусть jit думает. Лучше бы программировать начал
Аноним 31/07/16 Вск 22:11:25  809773
>>809771
Просто он не знает что преждевременная эякуляция - корень всех зол
Аноним 31/07/16 Вск 22:12:34  809776
>>809702
>джава умирает
Уже лет 20 как умирает.
Аноним 31/07/16 Вск 22:13:48  809778
будущее за C#
Аноним 31/07/16 Вск 22:15:28  809779
>>809773
Про эякуляцию знаю, но у меня в цикле это хуячится. И погуглив бенчмарки, разница в скорости - десяток раз. Когда я уже сейчас могу парой строчек сделать не мап интеджеров, а обычный Object[].
Аноним 31/07/16 Вск 22:22:47  809784
>>809749
>>809779
Зачем тебе Object в value? Ты ведь знаешь, что люди Земли изобрели дженерики?
Аноним 31/07/16 Вск 22:25:45  809786
>>809773
Именно
>>809779
А в чем проблема? Приложение уперлось именно в этом месте?
Аноним 31/07/16 Вск 22:28:03  809789
>>809784
Я очень упростил пример.

>>809786
Пока нет. Но мне не сложно вбросить вопрос на сосаку и продолжить кодить другое место.
Аноним 31/07/16 Вск 22:31:26  809791
Норм ли делать класс abstract без конкретных методов? Чисто по логике у меня получается, что это именно класс, а не интерфейс, и не должно быть множественного наследования.
Аноним 31/07/16 Вск 22:39:43  809798
14699939836330.png (483Кб, 2300x809)
>>809746
вот тут двачую
если ты не математик или физик то тебе нахуй хаксля не нужна, в прочем если физик то тоже не нужна
мимофизик
btw зацените какие вещи на жабе с биндингами к GL можно делать.
Аноним 31/07/16 Вск 22:40:20  809800
>>809147
2 года изучала несколько яп, сейчас вот стриппухой работаю, зарплата норм.
Аноним 31/07/16 Вск 22:41:19  809802
>>809798
Говно.

регулярно смотрю стримы одного пиксель-арт артиста
Аноним 31/07/16 Вск 22:43:02  809805
>>809802
Что есть, других художников у меня нет

тоже смотрю стримы одного годного пиксель артиста
Аноним 31/07/16 Вск 22:44:40  809806
14699942806320.png (561Кб, 1325x3000)
>>809805
да и суть же не в самой графике блжат
как жопу рвать надо что бы такой результат получить
Аноним 31/07/16 Вск 22:45:12  809807
>>809805
Твой пиксель артист говно.
Аноним 31/07/16 Вск 22:45:58  809809
>>809806
на планшете бы нарисовал декорации.
мимохудожница
Аноним 31/07/16 Вск 22:47:03  809811
>>809809
Рисуешь слюной на членах?
Аноним 31/07/16 Вск 22:47:30  809813
>>809807
он учится, а я движок пилю, что бы когда он научился и нарисовал мне годноту, в эту годноту можно было бы поиграть

>>809809
но я нищий, з\п нихуя
Аноним 31/07/16 Вск 22:50:02  809816
>>809811
сексистские шутки за 300 ммм))
Аноним 31/07/16 Вск 22:50:21  809819
>>809811
на твоем не буду, обиделся?
>>809813
а это обязательно должно быть в квадратах-пикселях?
Аноним 31/07/16 Вск 22:52:00  809821
>>809819
Спс за подтверждение, хуйдожница))
Аноним 31/07/16 Вск 22:54:24  809825
>>809819
ну первоначально была идея сделать частично киберпанк пиксель-артом
а частично еще чем нибудь (например акварелью при переходе в параллельную реальность), но пока нашелся только один человек и он (скоро) может только в пиксели
Аноним 31/07/16 Вск 22:55:04  809826
>>809806
Но зочем это, если можно взять box2d+box2dlights и запилить динамическое освещение любого уровня охуенности, написав всего пару строк кода?
Аноним 31/07/16 Вск 22:58:40  809831
>>809791
А в джаве и нет множественного наследования. Нет конкретных методов - делай интерфейс. Абстрактный класс тут не нужен.
Аноним 31/07/16 Вск 23:02:18  809837
>>809826
> box2d+box2dlights
тяжеловесное вырождение же, к тому же не позволяющее контролировать весь процесс рендера
Свой велосипед он может и костыльный, но зато свой, родной, всегда знаешь чего от него ожидать и как все работает, а если что всегда можно прикрутить необходимое.

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

Аноним 31/07/16 Вск 23:05:30  809843
>>809837
box2d/box2dlights опенсорсные, тоже можно поковырять. другое дело, что там надо с++ знать
Аноним 31/07/16 Вск 23:08:52  809849
>>809843
нативный что ли?
btw его или хотя бы просто Си и так придется знать когда с графикой работаешь на уровне большем чем просто отрисовка загруженной текстуры
Аноним 31/07/16 Вск 23:16:27  809860
>>809831
Так вот я и спрашиваю, если сделать его интерфейсом, то можно будет наследоваться от другого класса, что будет нелогично в моем случае.
Аноним 31/07/16 Вск 23:18:15  809862
>>809860
если очень надо то ты можешь наследоваться от неабстрактного класса тоже
Аноним 31/07/16 Вск 23:22:48  809868
>>809862
и сразу сдохнуть от рака мозга, надеюсь
Аноним 31/07/16 Вск 23:27:23  809872
>>809868
Ну сообразность такого поступка это уже тема для другого разговора.
Аноним 01/08/16 Пнд 08:04:39  810047
>>809831
двачую этого
Spring Аноним 01/08/16 Пнд 08:06:48  810048
Пацаны, кто работает со Спринг.
С чего лучше начинать изучать этот фреймворк и java заодно? Как мне создать простое базовое веб приложение, чтобы потом по нарастающей начинать разбираться? За что отвечает spring boot? Это не то, что мне нужно?
Аноним 01/08/16 Пнд 08:34:22  810052
>>810048
либо с книжки spring in action, либо гугли наброски mkyong по спрингу. Другой годной литературы нет по нему.
Аноним 01/08/16 Пнд 08:39:23  810055
>>810052
Мне и не нужна литература. Я бы доками обошелся. Там обширная документация. Только, она не линейная.
spring in action -- я так понял, что это тупо копипаста той же документации... хотя, там, наверняка, как раз есть линейность
Аноним 01/08/16 Пнд 08:41:13  810056
>>810052
То есть, документации море. Мне просто как бы упорядочить этот разброс для быстрого старта.
Аноним 01/08/16 Пнд 08:42:59  810058
>>806729 (OP)
Сап, сосоны. Подскажите нубу чем subscribeOn отличается от observeOn в javaRX?
Аноним 01/08/16 Пнд 08:48:50  810059
>>810055
SiA - вполне себе линейная.
Аноним 01/08/16 Пнд 08:49:00  810060
>>810058
29:32 https://www.youtube.com/watch?v=Eatfi4am0HU
Аноним 01/08/16 Пнд 08:58:30  810063
>>810060
>Крута что вы сегодня пришил.
Клован ебаны.
Аноним 01/08/16 Пнд 10:44:24  810120
14700374645140.png (31Кб, 661x615)
Анонимные класс рулят.
Аноним 01/08/16 Пнд 10:55:25  810127
>>810120
фу бля
Аноним 01/08/16 Пнд 11:30:41  810139
>>810120
>Eclisp
>Pre java 8
>Inlined declarations
>System.exit
Съеби
Аноним 01/08/16 Пнд 11:48:43  810149
14700413236890.jpg (152Кб, 900x506)
>>810139
Ява кодер не сразу стал кодером.
Аноним 01/08/16 Пнд 13:21:13  810200
>>809151
Бампушенцкий!
Аноним 01/08/16 Пнд 13:32:16  810206
>>810200
JCIP
Аноним 01/08/16 Пнд 13:57:54  810219
>>810048
start.spring.io
Аноним 01/08/16 Пнд 13:59:04  810220
>>810120
>Анонимные класс
да ты охуел чтоли? для кого java 8 запилили
Аноним 01/08/16 Пнд 14:43:38  810259
>>809826
ты опять выходишь на связь мудило хохлятское со своим бокстуди.
Аноним 01/08/16 Пнд 14:56:13  810265
>>809826
На, там и не только это говно есть.
http://www.java-gaming.org/
Аноним 01/08/16 Пнд 16:31:12  810307
Аноны, как компилировать джава в исполняемый файл? Чтобы скинуть кому-то и он просто взял и запустил?
Аноним 01/08/16 Пнд 16:32:50  810308
>>810307
Ссышь в лицо тому, кто не установил джяву
Используешь launch4j
Аноним 01/08/16 Пнд 16:40:27  810309
>>810308
Благодарю.
Аноним 01/08/16 Пнд 16:40:51  810310
>>810307
https://www.youtube.com/watch?v=Dj3oh-mSZ4I с 25:10
Аноним 01/08/16 Пнд 16:43:52  810313
14700590325450.png (37Кб, 842x427)
Анон, хочу написать машрутиризатор своими руками.
Ладно, шучу. Кейс примерно такой (смотри картинку)
Итак, есть, например, 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.

Теперь собственно вопрос - куда гуглить? Есть ли какие-нибудь библиотеки, которые позволяют это сделать менее болезненно? Какие варианты вообще существуют.
Аноним 01/08/16 Пнд 16:50:37  810318
>>810310
хороший линк
добра тебе
другой анон
Аноним 01/08/16 Пнд 16:51:38  810321
Уважаемые java-господа, поясните ньюфагу на пальцах работа сборщика мусора.
В большей части литературы, которую я читал, говорится, что сборщик убивает объекты, на которые ничто не ссылается. Отсюда вопрос: например у нас есть следующий кусок кода. Есть ли вероятность, что сборщик захавает объект созданного MyFrame'а?
[CODE]...
new MyFrame();
...

class MyFrame extends JFrame {
...
}[/CODE]
Аноним 01/08/16 Пнд 16:52:05  810322
>>810321
Заебись разметка работает.
Аноним 01/08/16 Пнд 16:57:52  810326
>>810206
GOOGLE
Аноним 01/08/16 Пнд 16:58:49  810328
>>810313
А что тебе сделать то надо?
Аноним 01/08/16 Пнд 16:59:33  810329
>>810313
> куда гуглить?
1. Брокеры сообщений и менеджеры очередей - ActiveMQ, Kafka
2. ESB - Apache Camel или Spring Integration/Batch
Но я думаю это все будет оверкилл. Гораздо интереснее писать самому.
Аноним 01/08/16 Пнд 17:00:34  810330
>>810310
И тебе спасибо, анон.
Аноним 01/08/16 Пнд 17:00:49  810331
>>810321
есть
Аноним 01/08/16 Пнд 17:01:05  810332
>>810321
Странный код. Так написать нельзя. Попробуй на пастбин, может нам понятней станет чо ты там не выкупил.
Аноним 01/08/16 Пнд 17:08:06  810334
>>810332
Ок, например вот так - http://pastebin.com/SV8j2Fk3
Считается ли мусором new MyFrame(), созданный в мейне?
Аноним 01/08/16 Пнд 17:08:08  810335
>>810328
Мне нужно обращаться к API через разные Proxy Server.
Другими словами, у меня есть запрос к серверу с Rest API: [https://example.com/user=2&option=4]

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

На самом деле, план такой. Воркер генерирует запрос без ключа, передает его Proxy Controller, а тот в свою очередь уже выполняет запрос через определенный proxy, но ещё и добавляет необходимый API KEY, а ответ уже передает обратно воркеру.
Аноним 01/08/16 Пнд 17:13:23  810341
>>810329
Буду благодарен, если расскажешь немного подробней, я прочитал сейчас в общих чертах. Если не сложно, то как ты представляешь реализацию. Буду очень благодарен.
Аноним 01/08/16 Пнд 17:26:19  810350
>>810310
Публика одних задротов каких-то, костыли и тд, я ебу, нежели на яве нельзя захуячить все без этого?.
Аноним 01/08/16 Пнд 17:32:44  810354
Как в Maven получить jar-файл?
Создал я, например, класс, который выводит в консоль ХэллоуВорлд.
Как в IntellijIdea собрать проект?
Аноним 01/08/16 Пнд 17:34:38  810357
>>810354
>Как в Maven получить jar-файл?
Можешь запилить Shade Build

https://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html
Аноним 01/08/16 Пнд 17:37:33  810359
>>810357
Снова XML. Последнее время мне кажется, что иксэмэль файлы за мной следят.
Я думал можно как-то типа далее-далее-готово сделать. Мавен же в Идею интегрирован.
Аноним 01/08/16 Пнд 17:44:02  810364
>>810359
Ну это Java. Я могу ошибаться, но, вроде бы, тебе все равно придется написать xml файл для maven'a. А насчет билда - погугли что-то вроде intellij build maven jar.
Аноним 01/08/16 Пнд 17:47:47  810366
>>810335
И почему ты думаешь, что Proxy справится лучше чем Worker?
Аноним 01/08/16 Пнд 17:48:37  810367
Анон, я читаю туториал, и на моменте https://docs.oracle.com/javase/tutorial/java/concepts/interface.html я нихуя не понял.
Я правильно понимаю, что этот самый interface нужен для того, чтобы заставить класс обязательно обеспечить выполнение всех методов указанных в interface? Зачем это нужно, если так?
Этот самый interface должен быть сохранен в отдельном файле или прилеплен к методу?
Возможно я тупой, но все же.
Аноним 01/08/16 Пнд 17:49:14  810368
>>810364
Хорошо, загуглю. Ну да, Идея геренирует .pom файл с xml-описанием, но мне кажется, это как-то не руками правится.
Аноним 01/08/16 Пнд 17:50:01  810369
>>810354
>Как в Maven получить jar-файл?
mvn clean package
>Как в IntellijIdea собрать проект?
Вызовом мавен-таска package
Аноним 01/08/16 Пнд 17:51:13  810371
>>810368
pom это дескриптор сборки мавена, правится руками.
Аноним 01/08/16 Пнд 17:51:45  810372
>>810367
>тупой?
Да, дуй в ЖС тред, там нету такой хуйни.
Аноним 01/08/16 Пнд 17:52:20  810373
>>810367
>Я правильно понимаю
Да
>Зачем это нужно
Если ты наследуешь интерфейс, то стороннее приложение будет ожидать, что в твоем приложении реализованы определенные методы, указанные в интерфейсе, и будет их вызывать при необходимости.
Иначе получится ошибка, когда стороннее приложение попробует вызвать метод, а его тупо нет.

мимо-еще-не-вкатился-в-джаву, формошлепы, поправьте, если неправильно написал.
Аноним 01/08/16 Пнд 17:53:53  810375
>>810367
>чтобы заставить класс обязательно обеспечить выполнение всех методов указанных в interface?
Неабстрактный класс, реализующий интерфейс, должен реализовать все абстрактные методы интерфейса.
>Зачем это нужно, если так?
Если сейчас не понимаешь просто забей, со временем поймешь когда дойдешь до коллекций
>Этот самый interface должен быть сохранен в отдельном файле или прилеплен к методу?
В отдельном файле, как и классы.
Аноним 01/08/16 Пнд 18:03:42  810381
>>810367
учи полиморфизм
Аноним 01/08/16 Пнд 18:24:04  810394
>>810334
Ну что же вы, Бетмены? Поясните за сборщик мусора. И за анонимные классы за одной.
Аноним 01/08/16 Пнд 18:32:48  810398
>>810334
Создаться-то он то создался, но при следующей сборке умрет, так как на него никто не ссылается.
Аноним 01/08/16 Пнд 18:33:42  810399
>>810394
А что с анонимными то не понятно, он держит ссылку на объект в котором его объявили, попробуй посмотреть что из себя представляет декомпилированный анонимный класс и все поймешь.
Аноним 01/08/16 Пнд 18:36:45  810400
14700658051390.jpg (107Кб, 1152x582)
>>810399
Если посмотреть на твой ответ со стороны не знающего человека, то это полный пиздос.
Аноним 01/08/16 Пнд 18:38:10  810402
>>810400
Ну посмотри через призму учебника/гугла. Ну или сходи в js тред.
Аноним 01/08/16 Пнд 18:42:47  810405
>>810120
Да не мне не надо, я уже отметился.
>>810402
Аноним 01/08/16 Пнд 18:44:07  810408
>>810398
Окей, но тогда почему при вызове сборщика System.gc() экземпляр продолжает жить?
И вообще, получается ссылки на все, чему я хочу гарантировать вечную жизнь, должны хранится в переменных экземпляров? Ведь локальные переменные исчезают после завершения метода. Нипанятно короч.
Аноним 01/08/16 Пнд 18:46:25  810411
>>810408
Сборщик Мусора, пашет сам-по-себе, вот нахуй тебе это? Там всего-то пара никчемных методов. Когда-нибуть вернешься еще.
Аноним 01/08/16 Пнд 18:51:08  810418
>>810411
Да сборщик - дело второе. Вопрос в том, столкнусь ли я с неизвестными проблемами если продолжу писать так, как продолжу.
Аноним 01/08/16 Пнд 19:00:02  810422
>>810408
Потому что в Frame возможно хранится ссылка на самого себя же, GUI поток с ним работает и так далее.

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

class Pidor {

Pidor inner;

Pidor() {
inner = this;
}

}

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

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

Сборщик мусора собирает то, до чего уже из кода программы никак не добраться.
Аноним 01/08/16 Пнд 19:01:40  810423
>>806729 (OP)
Как вычислить степень, используя только побитовые операции?

Например, как вычислить 2^n, используя только &, |, ~, ^, <<, >>,>>>
Аноним 01/08/16 Пнд 19:01:56  810424
>>810422
Благодарю, уважаемый. Разложил по полкам.
Аноним 01/08/16 Пнд 19:04:03  810426
>Сборщик мусора собирает то, до чего уже из кода программы никак не добраться.
Забыл добавить, что за редким исключением типо weakhashmap.

Аноним 01/08/16 Пнд 19:05:09  810427
>>810426
Хотя это вроде тоже не исключение. Пока ты можешь вытащить объект из weakhashmap то на GC ему похуй, а когда не похуй, то и в weakhashmap его уже не будет.
Аноним 01/08/16 Пнд 19:05:21  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()]. Обработка ошибок уже на вызывающей стороне.
Какие подводные камни, кроме оверхеда?
Аноним 01/08/16 Пнд 19:08:33  810430
>>810428
А если кто-то отрицательное число отправит в твой класс?

Хуйню несешь какую-то. Выбрасываешь анчекед эксепшон и не ебешься.
Аноним 01/08/16 Пнд 19:10:22  810431
>>810430
Лолчто? При создании объекта ItemHolderSize, очевидно, он и сделает эту проверку в конструкторе. Если отрицательное отправят, соснут хуйца и не смогут вызвать метод, принимающий ItemHolderSize.
Аноним 01/08/16 Пнд 19:12:20  810432
>>810431
Чем блядь

new ItemHolder(-10);
отличается от
new ItemHolder(ItemHolderSize(-10));
?
Аноним 01/08/16 Пнд 19:16:23  810436
>>810432
>new ItemHolder(new ItemHolderSize(-10));
Фикс.


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

А если делаешь говно под себя, то можешь хоть abs брать и потом ебаться с поиском ошибки.
Аноним 01/08/16 Пнд 19:18:32  810439
>>810432
1) Не надо в каждом методе проверять диапазон
2) Исключение выбрасывает вызывающий метод, а не метод мой библиотеки
Ну и твое использование высосано из пальца. Обычно это будет:
byte[] buffer;
try { ItemHolderSize.parse(buffer) }
catch () {}
flush and close Аноним 01/08/16 Пнд 19:21:50  810440
Котаны, в каких случаях поток закрываем только через .close() , а в каких - с добавлением .flush()?
Аноним 01/08/16 Пнд 19:22:27  810443
>>810439
>Не надо в каждом методе проверять диапазон
Ты в конструкторе не можешь выкинуть исключение? Ебанат?
Аноним 01/08/16 Пнд 19:26:34  810448
>>810439
Вот тебе еблан пример, как надо поступать.
Вызови new ArrayList<>(-10);
И глянь как умные люди делают.
Аноним 01/08/16 Пнд 19:28:42  810453
14700689224350.png (18Кб, 437x567)
>>810443
Блять, это простой пример был.
Вот конкретно. В конструкторе проверили size, ок. Но у нас еще есть геттер, сеттер, хуетор, каждый из которых принимает slotId. И каждый раз приходится проверять диапазон slotId. Даже если эту проверку в отдельный метод isInRange() вынести, это все равно хуита.
Аноним 01/08/16 Пнд 19:31:40  810460
14700691002610.png (5Кб, 482x117)
>>810453
Ещё раз, смотришь исходные коды колекшонс фреймворка и учишься, даунич.
Аноним 01/08/16 Пнд 19:33:43  810464
>>810423
1 << n
Аноним 01/08/16 Пнд 19:37:42  810469
>>810460
Ну и это лал, что сказать. Если с тем же аргументом вызываются несколько сетов или гетов, будут лишние проверки.
Аноним 01/08/16 Пнд 19:42:01  810478
>>810469
Ты серьезно думаешь, что 2 сравнения примитива в инлайнящемся блоке медленнее чем вызов гетера из твоего класса-обертки?

Какой же ты мудель, ой блядь.
Тебя ещё обоссать надо за дрочку на скорость.
Аноним 01/08/16 Пнд 19:45:00  810483
Анон, я походу ебусь в глаза, но где тут идей тред? Вроде раньше был, а сейчас не могу найти.
Аноним 01/08/16 Пнд 19:46:34  810485
>>810483
Конечно-же внутри джава треда.
Аноним 01/08/16 Пнд 19:46:41  810486
>>810478
>чем вызов гетера из твоего класса-обертки
Тоже инлайнится, только без лишних проверок. Мой вариант быстрее почти всегда.

Тут дрочка не на скорость, а на качество кода. Гораздо приятнее видеть в примитивных методах саму их суть, а не какую-ту хуиту вроде ckeckRange(), повторяющую в каждом из них.
Аноним 01/08/16 Пнд 19:47:38  810487
>>810483
А как тебе такая идея - ИДИНАХУЙЖУЕБОК >>719798 (OP)
Аноним 01/08/16 Пнд 19:48:10  810488
>>810483
>>719798 (OP) этот?
Аноним 01/08/16 Пнд 19:49:15  810489
>>810366
Потому что Worker - просто обрабатывает данные и сохраняет их. Мне же надо скрыть местоположение этого воркера от api сервера. Не суть зачем, просто спрашиваю рекомендации.

Анон написал про шину предприятия и прочие тулзы для интеграции платформ, но я не совсем концептуально понимаю, что он хотел мне этим сказать.
Аноним 01/08/16 Пнд 19:49:39  810490
14700701796810.png (305Кб, 1135x633)
>>810488
>>810487
Да, спасибо. Макака заговнила поиск.
Аноним 01/08/16 Пнд 20:11:52  810495
>>810440
flush используется в процессе работы с потоком, close неявно вызывает flush перед закрытием
Аноним 01/08/16 Пнд 20:15:38  810498
>>810489
Ты можешь применить паттер consumer-producer с помощью BlockingQueue, и сделать так чтобы прокси брали результаты выполнения волкеров из этой самой очереди. Если еще больше абстрагироваться, ты можешь заюзаать для этого ExecutorService. Пролистай два или три треда назад, я уже объяснял это одному анону недавно, как ознакомишься задавай вопросы.
Аноним 01/08/16 Пнд 20:21:19  810503
>>810498
Про все это я знаю. Тут вопрос в другом. Есть ли какие-нибудь продвинутые технологии для этого?
Создать список проксей и как-нибудь его мэтчить - никаких проблем.
Другое дело, решение очень костыльное будет, как по мне.
Аноним 01/08/16 Пнд 20:43:34  810519
>>810503
Если уж быть до конца честным, я не понял что ты вообще хочешь. В частности, я не понял этих странных фраз:
>скрыть местоположение этого воркера от api сервера.
>я хочу, чтобы он шел через Proxy
что ты имеешь ввиду под Proxy - сервер или какую-то сущность?
>На самом деле, план такой. Воркер генерирует запрос без ключа, передает его Proxy Controller, а тот в свою очередь уже выполняет запрос через определенный proxy, но ещё и добавляет необходимый API KEY, а ответ уже передает обратно воркеру.
т.е. ты хочешь чтобы worker работал на два фронта: генерировал запросы и принимал результаты от ProxyContainer-а?

Если я тебя правильно понимаю, ты хочешь чтобы воркер и прокси ассоциировались как один к одному, так?
Тогда почему бы тебе не выделить интерфейс из прокси и научить воркера работать с этим интерфейсом, а конкретную реализацию подпихивать в конструктор воркера при каждом создании воркера? IoC или DI хз как по-умному. Воркер не будет знать ничего про реализацию твоего прокси, только про интерфейс.
Аноним 01/08/16 Пнд 20:52:13  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 серверу.
Получает ответ и отправляет его обратно воркеру.
Аноним 01/08/16 Пнд 21:20:54  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-ом.
Аноним 01/08/16 Пнд 22:48:10  810617
>>810549
В этом и проблема. У меня в воркере довольно много аналитики идет.
Есть несколько причин, почему я хочу отделить Proxy от Worker, так как через прокси пойду разные запросы (и не все воркеры их смогут обработать).
Во-вторых, я хочу организовать микросервисинг с эндпоинтом, который будет собирать статистику. И вообще все на Spring переписать, так как по ощущениям - ебусь с гвоздатым дилдаком.

Другими словами нет никаких библиотек, которые помогут мне это организовать?
Аноним 01/08/16 Пнд 22:55:48  810621
Нахуя делать дефаулт методы в интерфейсах? Разве это не порождает проблемы множественного наследования?
Аноним 01/08/16 Пнд 23:21:49  810644
>>810621
Поэтому их совсем немножко добавили, там где без этого нельзя.
К примеру: у Scala в Iterable 116 дефолтных методов, а в Java завели отдельный класс Stream.
Аноним 01/08/16 Пнд 23:36:20  810651
>>810621
Если дефолт метод реализован то дефолт реализация скрывается. Никаких проблем нет.
Аноним 01/08/16 Пнд 23:55:41  810673
14700849414130.webm webm file (1476Кб, 1280x720, 00:00:35)
14700849414531.webm webm file (862Кб, 1280x720, 00:00:21)
>>810621
>Нахуя делать дефаулт методы в интерфейсах?
Видео 1

>>810651
>Никаких проблем нет.
Ну несовсем (Видео 2)
Аноним 02/08/16 Втр 00:07:53  810688
>>810673
У меня от этих видео МЕТОД ФУ и ИНКОМПАТИБАЛ ЕРРОР.
Аноним 02/08/16 Втр 00:19:36  810698
rебята, посоветуйте какой-нибудь пак для веб-приложения что-то типо http://www.ibm.com/developerworks/ru/library/j-appfuse/index.html
для создания простого приложения для такси, для себя, недавно начал изучать джаву. Просто не знаю в какую сторону гуглить
Аноним 02/08/16 Втр 01:19:12  810759
>>810549
http://stackoverflow.com/questions/38707795/building-proxies-hub
Я накатал вопрос ещё раз, только он, к сожалению, на английском. Может быть, будет понятнее, чего я хочу.
Аноним 02/08/16 Втр 07:37:08  810844
>>810759
Накатай реализацию а мы посмотрим что там хуево. А может и сам увидишь.
Аноним 02/08/16 Втр 07:54:24  810849
Пришла в голову идея перенести java EE 7 приложение из ear-ки под wf в osgi контейнер karaf.
Веб часть с jsf на spring переписать.
ejb + jpa видимо тоже на spring спортировать.
таймерные бины тоже реализовать как то внутренними средствами.

Какие профиты кроме изучения новых технологий?
Аноним 02/08/16 Втр 07:57:42  810850
>>810621
Проблемы множественного наследования возникают при наследовании классов. У интерфейсов нет внутреннего состояния, и с этим проще.
Аноним 02/08/16 Втр 07:58:37  810851
>>810849
>Какие профиты кроме изучения новых технологий?
Spring не нов.
Аноним 02/08/16 Втр 07:59:33  810852
>>810851
Я про osgi и формирование бандлов под него
До этого я только с JЕЕ работал.
Аноним 02/08/16 Втр 08:23:46  810858
>>810849
Как по мне так переливание из пустого в порожнее. Кроме как для изучения таким заниматься щитаю не стоит.
Аноним 02/08/16 Втр 10:14:54  810901
14701220949770.png (9Кб, 469x324)
27 мегабайт на это окно, охохоохох.)
Аноним 02/08/16 Втр 10:26:43  810913
>>810901
ДЖАВА
Ж
А
В
А

ЭКОНОМНА
К
О
Н
О
М
Н
А
Аноним 02/08/16 Втр 10:31:19  810918
>>810901
Фу фу нахуй.
Это что такое? Windows XP?
Аноним 02/08/16 Втр 10:59:11  810929
>>810901
чет мало
Аноним 02/08/16 Втр 11:01:49  810932
Посаны, в этом есть какая-то логика или это ошибка разработчиков языка?
http://ideone.com/ki21LG
Аноним 02/08/16 Втр 11:01:53  810933
14701249133320.gif (17Кб, 450x450)
>>810381
Аноним 02/08/16 Втр 11:04:50  810936
>>806805
Use assert, Vader.
Аноним 02/08/16 Втр 11:09:48  810943
>>810932
String x = "qwe";
String y = x; 1 раз присвоил и сьебал
x = "asd"; поменял х, у равно qwe
//y = x;mycode, присвоил y'ку новый икс
System.out.println(y);
Аноним 02/08/16 Втр 11:11:41  810945
>>810932
Строки неизменяемым, x и y - ссылки на конкретные объекты. При присвоении двигается сама ссылка. Если тебе нужны алиас к имени переменной, то в джаве их нет.
Аноним 02/08/16 Втр 11:15:35  810949
>>810945
Зачем присваивать значения одной переменной к другой переменной, они же будут иметь одинаковые значения, зачем?
Аноним 02/08/16 Втр 11:39:16  810969
>>810945
Я это знаю. Но это уже реализация, она не должна влиять на логику выполнения. По логике при присваивании любого объекта должна просто присваиваться ссылка, объект не должен копироваться. Строка это объект. Я знаю, что на самом деле строки не копируются, а там просто ссылка ставится, потому что строки иммутабельные, но это уже реализация, а с логической точки зрения они копируются.
Аноним 02/08/16 Втр 12:01:25  810981
Кто хостился на heroku? Какие у них условия виртуализации, типо сколько мне будет выдано озу, hdd, трафика и прочего? У них на сайте не могу информацию найти.
Аноним 02/08/16 Втр 12:12:05  810987
>>810969
что куда копируется? была ведь строка "qwe", на нее, т.е. на один объект, ссылались две переменные x и y, ты изменил содержимое x, теперь создалась новая строка "asd", но y-то продолжает ссылаться на "qwe"
Аноним 02/08/16 Втр 12:40:33  811004
>>810981
7 баксов в месяц самая дешевая подписка https://www.heroku.com/pricing
ОЗУ там же. Максимальный допустимый обхем jar-ника емнип 300 мб, а статик контент хранить на хероку вообще нельзя из-за его микросервисной природы, если ток юзать cdn какойнить. Алсо можно бесплатно пользоваться если у тебя будет бот который будет твой сайт дергать раз в 30 минут.
Аноним 02/08/16 Втр 13:08:19  811043
Аноны, я так понял в джаве нет просто функций, а только классы и методы? Вот мне понадобилось рандомное число. В пхп я знаю есть ф-ция mt_rand(). А тут для этого надо новый класс создавать?
Аноним 02/08/16 Втр 13:10:02  811046
>>811043
Math.random() округлишь до целого сам.

Или напиши функцию
fun mt_rand() = Math.random().toInt()
Аноним 02/08/16 Втр 13:16:01  811051
>>811043
Функции = методы. Привыкли к своему JS бля.
Аноним 02/08/16 Втр 14:30:14  811123
>>809754
Разница примерно как между говном и мочёй.
Аноним 02/08/16 Втр 14:40:40  811129
Анон, подскажи, как запилить тунель через проксю в Java. setProperty - не вариант.
Аноним 02/08/16 Втр 18:03:41  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 отработал, отправил данные в эту шину, а дальше что?
Аноним 02/08/16 Втр 18:08:16  811274
>>811272
>Однако мне не совсем ясно принцип хранения и передачи информации.
Кемл и не хранит данные нигде сам. Он их только отрабатывает. Так что тебя ждет еще очередь activemq.
А что за хуйню там ты с проксями себе понавыдумывал, я не понялл.
Аноним 02/08/16 Втр 18:10:03  811275
>>811274
Как я выше писал - мне нужно отправлять запросы через разные прокси. Я знал про System.setProperty, которая позволяет задать host/port, но мне надо чтобы на одной машине использовалось сразу несколько прокси-серверов.

Аноним 02/08/16 Втр 18:14:42  811278
>>811275
Я не знаю, когда я слышу прокси и http, мне на ум приходит nginx. Но точно не java. При чем там систем проперти я вообще не понял.
Аноним 02/08/16 Втр 18:14:49  811279
>>811275
Олсо, вопрос про endpoint'ы. Я хочу всю мою хуйню переписать на Spring. В частности в проекте есть воркеры, proxy_controller, веб-морда и т.д.

Все это оформлено в мелких *.jar файлах, которые выполняют каждый свою задачу. Куда гуглить, анон?
Аноним 02/08/16 Втр 18:18:07  811282
>>811279
>Все это оформлено в мелких *.jar файлах, которые выполняют каждый свою задачу. Куда гуглить, анон?
Ты сначала реши зачем ты что-то делаешь, а потом уже гугли. "Хочу на спринг" - это глупость какая-то.
Аноним 02/08/16 Втр 18:18:50  811284
>>811278
Ну смотри. Есть удаленный api сервер. Я хочу к нему подключиться.

Вариант первый:
Я подключаюсь к нему напрямую. (Ну думаю никаких вопросов)

Вариант второй:
Я подключаюсь через proxy сервер (сервер между моей платформой и api сервером).

Меня интересует второй вариант. Соответственно, воплотить это в жизнь можно:
https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html
Либо
В Java 1.5 + появился класс Proxy, через который можно работать.
Аноним 02/08/16 Втр 18:20:31  811287
>>811284
>Вариант второй:
>Я подключаюсь через proxy сервер (сервер между моей платформой и api сервером).

При чем здесь java? Я вот чего не понимаю.
Аноним 02/08/16 Втр 18:28:12  811290
>>811284
Ты собрался с десятю апи ключами тягать данные с гугл мапс что ли?
Аноним 02/08/16 Втр 19:20:56  811350
Как лучше удостоверить, что нельзя создать больше одного объекта с определенным значением поля (guid)?
То есть в идеале мы могли бы десериализовывать объект из базы в конкретный объект в памяти.
Аноним 02/08/16 Втр 19:24:53  811356
>>811350
> нельзя создать больше одного объекта с определенным значением поля (guid)?
GUID внезапно уникальны.
> То есть в идеале мы могли бы десериализовывать объект из базы в конкретный объект в памяти.
Берешь и десериализуешь. Все.
Аноним 02/08/16 Втр 19:52:04  811381
Я нипонил, тут че нильзя циклом хуйню в массив захуячить?
Аноним 02/08/16 Втр 19:53:59  811382
>>811381
Не, это же ДЖАВА.
Аноним 02/08/16 Втр 19:55:09  811383
>>811382
А как же его тудой?
Аноним 02/08/16 Втр 19:59:15  811389
>>811381
В смысле хуйню в массив захуярить? Форичем конечно нельзя, простым for (int i = 0; i , n; i++) конечно можно.
Аноним 02/08/16 Втр 20:03:06  811394
>>811389
А под фор чегой писать? Add?
Аноним 02/08/16 Втр 20:12:58  811409
>>811394
hui = pizda;
Аноним 02/08/16 Втр 20:13:45  811411
>>811409
лол, скобки сожрало
hui[
i
]
Аноним 02/08/16 Втр 20:25:26  811427
14701587260620.webm webm file (1338Кб, 1280x720, 00:00:05)
>>811409
Аноним 02/08/16 Втр 20:27:47  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? Решил спросить тут.
Аноним 02/08/16 Втр 20:30:20  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, а зарезервированно скорее всего больше, зависит от реализации.
Аноним 02/08/16 Втр 20:44:02  811444
>>811433
Годно расписал, а можешь так только компаратор?
Аноним 02/08/16 Втр 21:00:52  811463
14701608529600.webm webm file (1518Кб, 1280x720, 00:00:05)
>>811433
Аноним 02/08/16 Втр 21:09:43  811467
Вот есть parent класс и child с override паблик методами, которые вызывают методы родителя через super.
Где проверять входные аргументы и бросать исключение: только в parent, в parent и child или только child?
Аноним 02/08/16 Втр 22:38:57  811541
>>811444
А что про него писать-то? Интерфейс с методом который сравнивает для объекта и должен вернуть отрицательное число если первый меньше второго, 0 если равны, и положительное если первый больше. По сути это создание отношения по какому-то признаку. В восьмой джавке добавили дефолтный метод equals, хз зачем, он кажется просто проверяет что результат сравнения равен 0. Ах да, аргументы на налл можно не проверять, ожидаемое поведение что туда не будут передавать наллы, а если передадут то он упадет с налпоинтерэксепшн. Используется во время сортировок в основном.
Аноним 02/08/16 Втр 23:10:26  811566
>>811428
Анончики, вы хоть скажите, что я долбоеб или дайте совета. Без фидбека очень тяжело сидеть. Я уже просто в объемах документации теряюсь. Скажите, что не понятно - я схемы всякие нарисую, объясню, что хочу сделать и т.д.
Аноним 02/08/16 Втр 23:32:06  811590
>>811428
> а что если воркер сдыхает? Надо его перезапустить.
Не надо, он просто ловит все исключения и логгирует.
> А как понять, что воркер сдох?
Поймал исключение или 4xx/5xx ошибку от сервера.
> Ну какой-нибудь Rest API, который сообщает состояние
Пиши все операции в БД.
> воркеров
Просто очередь runnable.
> прокси
В БД с вебуем для круд операций.
> базы
В фоне крутится pg/maria. В приложении только миграции.
Аноним 02/08/16 Втр 23:32:39  811591
>>811566
>>811590
Аноним 03/08/16 Срд 00:54:23  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/08/16 Срд 01:06:51  811642
>>811637
Допустим ты даже не пиздишь про свою криворукость в качестве дата моделера.
Допустим ты все уже денормализовал и использовал все нереляционные фишки PG.
Разбей БД на админскую и доменную.
Для апдейтов используй NativeQuery или JdbcTemplate, а не ORM.
Пиши только конечный результат в БД. Промежуточный результат храни в памяти.
> их нужно иногда выключать, когда обрабатывать нечего
Одна задача - один runnable, который сам завершается после очередной операции. Его поток возвращается в пул. При добавлении в очередь следующей задачи, стартует новый runnable
> С прокси вообще отдельная тема. Token, который завязан с proxy, имеет несколько состояний, которые мне крайне необходимо знать.
Ну и в чем именно проблема? Просто выдели это все в отдельный класс, который будет решать маппить хост/токен на прокси адрес при помощи простых предикатов.
И что тебе по ESB не ясно?
Аноним 03/08/16 Срд 01:36:53  811648
Подскажите тупому, можно ли привести bollean к числовому типу? К байту там, или к инту?
Аноним 03/08/16 Срд 01:38:59  811649
>>811648
блять, boolean
Аноним 03/08/16 Срд 01:45:46  811651
>>811648
>>811649
NEEQAQUE
Аноним 03/08/16 Срд 01:53:04  811653
>>811651
SOOOQUAAA

Третий день учу язык, а тут уже такие подляны, по простому тестовое задание не зафигачить, а лишние 20 строчек кода писать в программу из 30 строчек не хочется.
Аноним 03/08/16 Срд 01:55:01  811654
>>811653
Это делается тернарным оператором в одну строчку - какие нахуй 20 строк? И это даже типобезопаснее какого-то там каста.
Аноним 03/08/16 Срд 02:03:57  811658
>>811654
>тернарным
Это мы не проходили, это на не научили. Я так понимаю, надо уже описанными в предыдущих главах методами делать. Но слово это погуглю, да.
Аноним 03/08/16 Срд 02:05:44  811661
>>811658
> Сперва пишет на двач, а потом в гугл
Как-то не очень у тебя перспективы, другой вкатывальщик
Аноним 03/08/16 Срд 02:07:47  811663
>>811661
Я погуглил, но нигде не увидел надписи БУЛИН НЕЛЬЗЯ В ЧИСЛЕННЫЙ, поэтому уточнил.
Аноним 03/08/16 Срд 02:12:42  811664
>>811663
Я вообще про "тернарный" и неважные навыки в поиске информации.
А вот и смотри, первая ссылка в гугле:
stackoverflow.com/questions/3793650/convert-boolean-to-int-in-java
Аноним 03/08/16 Срд 02:45:03  811678
если что не бейте а лучше обоссыте

пишу простейшие хелловорлды, и ни еклипс ни идея не распознают system.out.println
в system path путь к jdk и jre прописал. такое ощущение что то ли иде-шкам нужно где-то явно указать пути к этой оракловской залупе, то ли при создании класса нужно проимпортить что-то (пробовал java.lang.io, но хуй там плавал)
мб тут кто подскажет, что я делаю не так?
Аноним 03/08/16 Срд 02:46:18  811679
>>811678
Может быть ты System с маленькой буквы пишешь?
Аноним 03/08/16 Срд 02:52:43  811681
>>811679
и с маленькой и с большой - один хер
ctrl+space не дает никаких вариантов после того как точку ставлю
system. - и тут вот он по идее должен предложить мне и ауты и хуяуты (как например на работе) - а хуйнанэ
Аноним 03/08/16 Срд 02:57:15  811682
>>811681
Ну, ты в любом случае только с большой пиши. С маленькой он не воспримет. И компилируй через командную строку пока, не запаривайся с иде. Я два учебника параллельно штудируют, в обоих советуют компилировать через цмд. тоже только вкатился
Аноним 03/08/16 Срд 03:02:21  811684
>>811682
спасибо, попробую
но если кто вдруг подскажет, как через иде это настроить - будет вообще волшебно
Аноним 03/08/16 Срд 03:21:10  811687
>>811682
>>811684
клоуны блять
из под консоли компилируют, небось еще в блокнотах код пишете
Аноним 03/08/16 Срд 03:41:07  811694
>>811687
в хуекнотах
по делу может скажешь чего?
Аноним 03/08/16 Срд 03:44:16  811695
>>811694
>>811678
Ну так и пропиши в проекте IDE путь до JDK, хуле ты?
Аноним 03/08/16 Срд 07:49:48  811755
>>811637
Странно что вроде все знаешь все умеешь, а банально вопрос сформировать не можешь
Аноним 03/08/16 Срд 10:30:56  811811
>>811428
>Следовательно, возникает вопрос: а как вообще организовать разворот всего проекта: воркеров, прокси, базы, etc?
D O C K E R
O
C
K
E
R

>>811642
>Допустим ты все уже денормализовал и использовал все нереляционные фишки PG.
А может ему в сторону нереляционного чего и взглянуть? Правда хз, что у него там за данные.

>Для апдейтов используй NativeQuery или JdbcTemplate, а не ORM.
Я думаю, что у него там вообще jdbc.
Аноним 03/08/16 Срд 11:37:24  811840
>>806729 (OP)
Не берут джава-разработчиком из-за того, что пока что мало знаю. Может, вкатиться в тестировщицыки?
Аноним 03/08/16 Срд 11:49:47  811852
>>811694
DA TI OHUEL.
Аноним 03/08/16 Срд 11:52:20  811860
14702143404720.jpg (37Кб, 672x336)
Пачаны косольки принес.
Аноним 03/08/16 Срд 11:52:42  811862
>>811840
Вопросы какие?
Аноним 03/08/16 Срд 11:54:31  811866
>>811862
java core ещё не осилил. Понимаю, что справедливо отказывают, но хочется УЖЕ начать работать, хоть стажером. Заебало сисадминство в край.
Аноним 03/08/16 Срд 12:11:30  811876
Привет аноны, к вам нуб пришел.
Есть у меня небольшое веб-приложение. Ясное дело, на джаве.
Нужно сделать так, что-бы это приложение слало POST/GET запросы на сервер, и обрабатывало полученные данные. Хочу слать запросы с помощью HttpURLConnection. Будет работать?
Аноним 03/08/16 Срд 12:31:34  811894
>>811866
Не осилил на сколько? Чем закончил?
Аноним 03/08/16 Срд 12:44:27  811900
>>811876
Если правильно сделаешь, то будет.
Аноним 03/08/16 Срд 12:56:14  811906
>>811894
Потоками.
Аноним 03/08/16 Срд 13:03:11  811911
>>811906
LoooooL.
Аноним 03/08/16 Срд 13:03:50  811912
>>811911
Ты для этого задал вопрос?
Аноним 03/08/16 Срд 13:29:32  811927
>>811912
Да. Как можно не осилить java core и искать работу? Ты же понятия не имеешь, что тебе там делать. И сисадмин ты походу такой же, как и погромист.
Аноним 03/08/16 Срд 13:38:30  811933
>>811912
Нет, ну надо хотя бы фреймворк выучить или еще че.
Аноним 03/08/16 Срд 14:01:30  811966
Там какой-то ебан хохол сказал что джаву нельзя самостоятельно выучить, всю мне мотивацию убил урод сука. Теперь только на данбас ехать остается.
Аноним 03/08/16 Срд 14:05:44  811973
>>811966
Ну ты и лолка.
Аноним 03/08/16 Срд 14:09:03  811977
>>811973
Он наебщик, да? Да?
Аноним 03/08/16 Срд 14:17:45  811985
>>811977
Можно конечно самому выучить. Ток если с тебя такое сбивает мотивацию, то похоже ее у тебя не очень много.
Аноним 03/08/16 Срд 14:21:03  811991
>>811927
Ясно-понятно. Видал я таких умников. А потом выясняется, что критикан вообще сам по знакомству в ИТ попал. Зато гонору хоть отбавляй.
Аноним 03/08/16 Срд 14:23:19  811993
>>811985
Прост мозг у меня бздливый, все время хочет оптимальный путь найти, а тут ниебаца гуру такое в щи заявляет.
Аноним 03/08/16 Срд 14:35:12  812011
>>811933
Я есть хочу сегодня. Фреймворк выучу по ходу дела.
Аноним 03/08/16 Срд 14:52:53  812038
>>812011
>Я есть хочу сегодня.
Ну так иди у мамки борщ наверни

>Фреймворк выучу по ходу дела.
Как же раздражают такие посредственности в IT (вчера он был дворником, а сегодня еба-программист).
Иному работодателю проще нанять 10 мартых без мотивации и работающих за жрат, чем пару тройку толковых ребят.
Спасибо хоть что в Java вкатываешься, хоть не пересечемся никогда.
Аноним 03/08/16 Срд 14:54:22  812043
>>812038
>не пересечемся никогда
В верстку укатился?
Аноним 03/08/16 Срд 15:08:17  812058
>>812038
>вчера он был дворником, а сегодня еба-программист
Обычное дело в IT. Говоришь, как будто что-то плохое.
Ты, похоже, с завода капчуешь.
Ещё скажи, что если не в Москве родился, то все, шансов нет никаких.
Аноним 03/08/16 Срд 15:39:08  812075
Суп, как пофиксить окно и окна при запуске ПРОГРАММЫ, у меня просто они вылязят в левом верхнем углу? Короче положение в центре экрана, как сделать?
Аноним 03/08/16 Срд 15:48:38  812080
>>812075
заебали с такими тупыми вопросами
сука, сразу видно что знаний ноль
уебывай в жс тред сука
Аноним 03/08/16 Срд 15:53:09  812085
>>812080
>>812075
Все понял котаны, не надо JS, больше нибуду.
метод: setLocationRelativeTo(null);
Аноним 03/08/16 Срд 15:59:58  812092
>>812085
сука
кому какое дело что это за метод блять
даун блять подавать метод не указывая даже из какой библиотеки, информативности НОЛЬ сука, да хоть пусть setUrMumAnus(null), нам то какое дело сука, уебывай
Аноним 03/08/16 Срд 16:02:34  812094
14702293545640.jpg (56Кб, 707x464)
>>812092
Аноним 03/08/16 Срд 16:32:24  812105
Расскажите кулсторей, как вас с одним джавакором взяли на работу.
Аноним 03/08/16 Срд 16:33:45  812107
>>812075
Почему ты формошлепную хуйню не поставил?
Аноним 03/08/16 Срд 16:52:59  812119
Тут есть анон разбирающийся в GLSL?
Аноним 03/08/16 Срд 17:03:50  812130
>>812107
Оно же не оче код делает или норм? Да и пока ручками все полезно же.
Аноним 03/08/16 Срд 17:13:40  812146
>>812130
ну если ты на говносвинге сидишь, то да неоч
Аноним 03/08/16 Срд 17:19:23  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/08/16 Срд 17:55:22  812170
>>812152
>Дальше у меня вообще начинает полное непонимание, как в этот процесс вступает Camel.
http://pastebin.com/mNBam88D

Воркеры отработанные впихивают в другую очередь и ты оттуда их забираешь. Как-то так.
Аноним 03/08/16 Срд 18:01:56  812172
>>812170
Camel - всего лишь кучка библиотек, которые помогают тебе связать твои процессе в систему. Он позволяет тебе описывать эти связи чуть проще, чем если бы ты это делал руками.
Аноним 03/08/16 Срд 18:08:20  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 и использует его?
Аноним 03/08/16 Срд 18:15:54  812184
>>812177
Я же там написал - всего лишь кучка библиотек. Т.е. кому нужны его фишечки - тот о нем знает. А кто-то просто в очередь напихивает данные. Или еще что.
Каналы же универсальны, их можно и без кемла использовать.
Отдельным сервером же в этом случае будет скорее activemq.
Аноним 03/08/16 Срд 18:19:11  812186
14702375514430.webm webm file (3682Кб, 640x640, 00:00:15)
Я так понял, что вкатывальщиков уровня хллоуворлд тут кроме меня ещё несколько есть. Давайте сделаем небольшую конфочку. Кто то что то луче других понял, сможет дать совет, кто то заметит пробел в своих знаниях и выучит что-то новое. Кто за?
Аноним 03/08/16 Срд 18:32:35  812196
>>812186
ага ага прокрастинатор ебаный, катись в свои конфочки прокрастинировать там
Аноним 03/08/16 Срд 18:33:28  812199
>>812196
а лучше съеби в ЖС тред, там все просто и учить много не надо
Аноним 03/08/16 Срд 18:34:20  812201
>>812196
Спасибо за ценнейший совет, тебе тоже всего хорошего.
Аноним 03/08/16 Срд 18:40:47  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

Что мавен от меня хочет? Гуглил, ничего не понял.
Аноним 03/08/16 Срд 18:43:07  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 году живешь.
Аноним 03/08/16 Срд 18:44:41  812214
>>812211
>2k16
>maven
не сдержался
Аноним 03/08/16 Срд 18:45:21  812216
>>812214
Так говоришь, будто есть что-то значительно лучше.
Аноним 03/08/16 Срд 18:53:40  812226
>>812184
То есть я каждой сущности при помощи camel описываю, как работать с очередью?

Типа Proxy получает ответ. и делает что-то типа from(...).split().to(response-qeue); //ещё до конца не прочитал.

Воркеры чекают очередь и вытаскивают из них данные, обрабатывая их.

Другими словами, я могу не ебаться и взять Amazon SQS? А есть ли возможность какую-нибудь фишку с нотификацией провернуть? Типа чтобы воркеру сообщали о том, что есть сообщение в очереди? А можно ли пачками данные оттуда тянуть? Лучше пилить каждому воркеру по очереди или одну большую очередь на всех воркеров?
Аноним 03/08/16 Срд 18:55:38  812232
>>812211
Спасибо
Аноним 03/08/16 Срд 18:56:03  812233
>>812216
ggggggra
Аноним 03/08/16 Срд 18:59:16  812237
>>812226
Олсо, шина данных это какое-то абстрактное понятие или что? В чем она выражается?
Аноним 03/08/16 Срд 19:01:29  812240
>>812211
Почему он по умолчанию это не может сделать? Мне все время приходится это руками писать.
Аноним 03/08/16 Срд 19:09:26  812245
>>812240
потомушта мавен
Аноним 03/08/16 Срд 19:27:26  812253
>>812211
<maven.compiler.source>1.8</maven.compiler.source>
Аноним 03/08/16 Срд 19:43:08  812267
>>812237
Блядь, вот хоть убей - не могу понять концепцию.
Я так понимаю, что проще всего мне стоит создать Camel-service, который описывает все роутеры в формате from().to();

Блядь, не. Я нихуя не понимаю. Как запилить ебучий транспорт для моих воркеров?

Аноним 03/08/16 Срд 19:54:22  812279
>>812226
>Другими словами, я могу не ебаться и взять Amazon SQS?
Ты не поверишь. http://camel.apache.org/aws-sqs.html
Ендпоинты в кемеле - это абстракция. Что там за ним: активмку, амазаон, фтп или соап - тебе наплевать. Ты просто указываешь откуда взять, что сделать и куда передать.
>А есть ли возможность какую-нибудь фишку с нотификацией провернуть?
Зачем? Ты написал from(endpoint).to() и все. jms за тебя разберется с нотификацией.
>Лучше пилить каждому воркеру по очереди или одну большую очередь на всех воркеров?
Смотря какая у тебя задача, очевидно же.
А вообще - погугли. Твои вопросы гуглятся достаточно легко.
Аноним 03/08/16 Срд 19:56:17  812282
>>812267
>Блядь, не. Я нихуя не понимаю. Как запилить ебучий транспорт для моих воркеров?
Да используй jms. Это и будет твой транспорт. А чтобы проще с ним работать и описывать поток хождения данных используй кемл. Просто либа, которая облегчает тебе жизнь.
Аноним 03/08/16 Срд 19:59:38  812287
14702435784310.png (14Кб, 629x388)
>>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, которые выполняют свой стэк задач.
Аноним 03/08/16 Срд 20:02:14  812291
>>812287
Другими словами, я хочу организовать платформу по linux way. Каждый компонент решает только одну задачу и о других компонентах не знает, а также быстро заменим.
Аноним 03/08/16 Срд 20:03:38  812293
>>812291
те ты под отдельный тип задачи отдельный сервер выделяешь?
нахуя?
Аноним 03/08/16 Срд 20:05:03  812295
>>812293
Ну потому что маштабировать надо. Workers/Analyze я могу сложить в докер на одном сервере. Не суть.
Аноним 03/08/16 Срд 20:10:06  812298
>>812105
Взяли полгода назад так в бодишоп стажером.
Аноним 03/08/16 Срд 20:16:56  812302
>>812295
>>812287
Или это совершенно не тот стэк, который мне нужен?
Аноним 03/08/16 Срд 20:18:12  812304
>>812287
Кто во всем этом начинает процесс? Кто делает запрос?
Аноним 03/08/16 Срд 20:43:26  812319
14702462069430.png (17Кб, 683x402)
>>812304
Да, я немного сократил схему.
Сначала Access token storage пытается получить токены у сервиса. То есть запрос идет к Proxy.

Затем, после того, как хоть один токен получит, включается Producer, который генерирует запрос и передает его в Proxy.

Proxy подписывает запрос токеном и выполняет его через конкретный proxy-server.

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

Если в ответе есть ошибка, то они отсылают объект обратно, Proxy передает запрос повторно. На самом деле я пока не знаю, как это корректно сделать.

Если ошибки нет, то просто сохраняем в файлик\бд.
Аноним 03/08/16 Срд 20:52:11  812320
>>812319
>Если в ответе есть ошибка, то они отсылают объект обратно, Proxy передает запрос повторно.

у меня плохо предчуствие
Аноним 03/08/16 Срд 20:54:33  812321
>>812320
Почему? Я просто буду подсчитывать количество ошибок у каждого токена и убивать его если это будет большое число.
И все же, возвращаясь к вопросу - хули делать-то?
Аноним 03/08/16 Срд 22:23:28  812403
Что за рефлексию годного почитать? Только не общего "привет хабр, сегодня мы напишем как приватное поле класса сделать setAccessible, пишите комментарии))", а обстоятельный труд.
Аноним 03/08/16 Срд 22:27:51  812412
Че запрогать в рамках обучения джавакору? Не хочу отдельные неинтересные таски. Нужна наверное какая-то простая игрушка с кучей бесполезных фишек и по такому-то паттерну, не?
Аноним 03/08/16 Срд 22:29:08  812416
>>812412
> Че
> запрогать
Javascreept zaprogay, pes.
Аноним 03/08/16 Срд 22:38:42  812423
>>812403
Пару глав в Шилдте можешь почитать.
Аноним 03/08/16 Срд 22:42:12  812424
14702533329300.png (1716Кб, 1000x916)
>>812423
Шилдт академическое говнецо, бесконечно далекое от реального и современного мира. Ты уверен, что там нормально?
Аноним 03/08/16 Срд 22:50:32  812434
>>812424
А сами рефлексии не академ говно? Или же это ништяки для хуцкера? хз-хз
Аноним 03/08/16 Срд 23:05:18  812453
>>812434
Ну, в ежедневной работе каждый день не нужно, но уж точно не
> академ говно
> ништяки для хуцкера

Вот прямо сейчас юзкейс подгоню. Метод, который принимает класс и над нужными полями делает грязные вещи. Конкретнее, допустим есть возвращаемый доменный обжект из базы. Но идентификаторы ты хочешь не long id, а PK + адрес мамаши ентити в бд. В случае идентификатора сущности в базе можно без рефлексии. А если хочешь, чтобы все было автоматически и делалось над всеми идентификаторами в классе, то без рефлексии не обойтись.
Аноним 03/08/16 Срд 23:06:10  812456
>>812453
> принимает объект
Аноним 04/08/16 Чтв 00:29:04  812551
>>812453
Я тоже когда-то угорел по рефлексии. Но в итоге - это все для фреймворков и библиотек. В рабочем коде это только скатывает твой код в говно, которое никто, кроме тебя не понимает.
Аноним 04/08/16 Чтв 00:34:11  812559
>>812551
Есть такое, мысль здравая. Но все же хотелось знать побольше, чем нафига нужно, где используется и причем тут setAccessible. Не то чтобы нужно, но для общего развития пригодится. Сам что наворачивал?
Аноним 04/08/16 Чтв 01:18:02  812594
>>812559
Всякой фигней занимался. Но если тебе интересно посмотреть на неё в действии - посмотри на внутринности спринга. Его вайринг бинов по аннотациям - самое оно.
Аноним 04/08/16 Чтв 03:47:34  812644
14702716544640.png (37Кб, 759x500)
Сап. Есть один я, который на пробу пилит веб-приложение на 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 вообще, не изменяется ничего.

С меня как обычно.
Аноним 04/08/16 Чтв 05:58:06  812659
>>812644
Берешь Spring Boot - там уже есть AutoConfiguration для Thymeleaf из коробки.
Можешь попробовать навесить Primary поверх Bean у template engine
Можешь задать другое имя для template engine и инжектить его в другие фасолины.
Аноним 04/08/16 Чтв 07:45:59  812671
>>812659
Проще выучить js.
Аноним 04/08/16 Чтв 09:44:23  812707
>>812644
>>812671
Нахуя в вебе нужна эта сраная джава со спрингом?
Аноним 04/08/16 Чтв 10:26:43  812741
>>812644
Судя по тому, что у тебя эти методы серым идея подсвечивает, ты их и в контекст то не добавил. Это твой основной файл конфигурации?
Аноним 04/08/16 Чтв 11:03:05  812762
14702977859610.png (18Кб, 456x376)
Че-то шиндовс експлорер подвисает при отрисовке.
Аноним 04/08/16 Чтв 13:07:46  812846
>>812762
while true { рисуем линию}
?
Аноним 04/08/16 Чтв 13:28:49  812858
Я опять не могу разобраться с тестированием. Суть токова: есть SpringBootApplication, у этого приложения есть RestController, в котором указан Autowired сервис. Этот сервис в тестах надо заменить сервисом-заглушкой. Разумеется, я загуглил как это сделать, но так и не нашел решения, всякие подходы с InjectMocks не сработали.
Вопрос такой: где-нибудь на гитхабе есть полный рабочий пример springboot-приложения с тестированием, где я увижу, как правильно инжектить сервисы?
Аноним 04/08/16 Чтв 13:31:26  812861
>>812858
А что ты в контроллере тестировать собрался? Там же логики нет.
Аноним 04/08/16 Чтв 13:42:12  812880
>>812861
Логики там действительно нет, обработка запроса сводится к "yobaService.process(request);". Но чтобы все удобно тестировать, мне надо разобраться, как этот yobaService в контроллере подменить сервисом-заглушкой.
Аноним 04/08/16 Чтв 13:57:57  812897
>>812880
Так и пиши тест на yobaService.
А про InjectMocks - ты поставил @RunWith(MockitoJUnitRunner.class) над классом теста?
Аноним 04/08/16 Чтв 14:07:58  812902
Деплою веб-приложение. Приложению нужны кое-какие файлы для работы. Куда их помещать чтоб они задеплоились и какой путь прописывать в коде?
Аноним 04/08/16 Чтв 14:31:14  812920
>>812897
>Так и пиши тест на yobaService.
Похоже, тебе не ясна суть проблемы. Внутри yobaService может быть fizzBuzzService который я хочу подменить еще одним стабом — как быть тогда? Вот в этой замене суть вопроса, а не в том, какой класс я тестирую.
>А про InjectMocks - ты поставил @RunWith(MockitoJUnitRunner.class) над классом теста?
Я проверял два варианта: с MockitoJUnitRunner и с SpringJUnit4ClassRunner+MockitoAnnotations.initMocks(this) в @Before-методе. В первом случае не автовайрится WebApplicationContext, во втором не инжектится заглушка.
Аноним 04/08/16 Чтв 14:39:17  812929
>>812920
>Похоже, тебе не ясна суть проблемы.
Это тебе не ясна суть проблемы. Юнит тест тестирует один класс за раз. Если ты заменил yobaService моком, то ты никогда и не доберешься до fizzBuzzService.
А если ты пилишь интеграционный тест (на контроллер, боги), то там совсем другой подход.

>В первом случае не автовайрится WebApplicationContext
Это что вообще за пиздец? Кто же контекст вайрит?
Аноним 04/08/16 Чтв 15:02:55  812960
>>812929
>Это что вообще за пиздец? Кто же контекст вайрит?
Ты меня траллировать пытаешься?
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/integration-testing.html#testcontext-ctx-management

>А если ты пилишь интеграционный тест, то там совсем другой подход.
Хорошо, что ты напомнил мне, что это называется интеграционным тестом. Я нашел нужную подсказку в документации и прописал класс конфигурации в самом тесте — работает как надо. Ура.
>(на контроллер, боги)
И что же не так с тестированием контроллера? Мне надо убедиться, что определенный POST-запрос возвращает определенный ответ — я это и тестирую.
Аноним 04/08/16 Чтв 16:55:56  813068
Бля, анон, как подключить к camel базу postgresql? Только не через Spring синтаксис, ибо spring не использую. А примеры исключительно на spring.
Аноним 04/08/16 Чтв 17:04:46  813077
>>812846
Не, прост много линий, да и вообще слабо че-то.
Аноним 04/08/16 Чтв 17:24:53  813094
>>813068
Там же вроде просто синтаксис околоспринговский, а сам спринг он не вынуждает использовать.
Аноним 04/08/16 Чтв 17:31:33  813101
>>812659
Вот, проблема в Spring Boot, как оказывается; он как раз и перекрывает мою конфигурацию. Отключил автоконфиг Thymeleaf-а - всё работает как должно. Спасибо.

>>812741
Идея коммьюнити, так что она просто не видит, что это bean-ы спринга.
Аноним 04/08/16 Чтв 17:34:32  813103
>>813101
>Вот, проблема в Spring Boot, как оказывается; он как раз и перекрывает мою конфигурацию. Отключил автоконфиг Thymeleaf-а - всё работает как должно. Спасибо.
Это вообще дрянная особенность Boot'а. Чуть подключаешь какую зависимость - сразу надо чекать "а нет ли там автоконфига, из-за которого все не будет работать".
Аноним 04/08/16 Чтв 17:38:30  813105
>>813103
А нет ли какого-нибудь способа проверить, какими классами конфигурации спринг воспользовался?
Аноним 04/08/16 Чтв 17:47:12  813108
>>813105
Что-нибудь такое может быть
@Bean
public static BeanFactoryPostProcessor postProcessor() {
return beanFactory -> beanFactory.getBeansWithAnnotation(Configuration.class).forEach((s, o) -> log.debug("config {} => {}", s, o));
}
Я бы попробовал, но ухожу уже.
Аноним 04/08/16 Чтв 18:13:27  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-ов нет, то не падает.
Аноним 04/08/16 Чтв 18:22:28  813160
>>813147
Ну ты же суть понял. Влезть в создание бинов и залогировать.
Аноним 04/08/16 Чтв 18:31:47  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, тогда при старте в логе будет показано какие автоконфигурации включены, какие отключены.
Аноним 04/08/16 Чтв 18:34:23  813172
>>813168
Не всегда удобно, не всегда подходит, не всегда знаешь вообще, что есть автоконфигурация.
Аноним 04/08/16 Чтв 18:36:39  813174
>>813172
> Не всегда удобно, не всегда подходит
В этом случае подходит.
> не всегда знаешь вообще, что есть автоконфигурация
Референс читать нужно.
Аноним 04/08/16 Чтв 19:42:31  813244
>>813174
Даже более: этот случай как раз тот, ради которого придумали spring boot.
Аноним 04/08/16 Чтв 20:22:11  813274
>>813160
Всё, с этим разобрался.

Теперь новая проблема. Есть Gson, который подключен к проекту. Jackson-а нету. Бины Gson-а инжектятся правильно, GsonHttpMessageConvertersConfiguration срабатывает, GsonHttpMessageConverter инжектится с правильным Gson-ом.

Однако, оно не используется, если контроллер отдаёт, собственно, JSON (JSON-таки отдаётся, но при этом преобразуется не с помощью прописанного мной Gson-а). Работать начинает, если прописать configureMessageConverters(), но судя по тому, что HttpMessageConvertersAutoConfiguration также срабатывает, и при этом ещё и зависит от GsoHttpMessageConvertersConfiguration, Spring Boot должен как бы сам подхватывать.

Что делать-то? Оставлять configureMessageConverters(), или есть какой-то способ ткнуть Boot мордой в то, что ему надо делать?
Аноним 04/08/16 Чтв 22:30:12  813356
>>813274
Не изобретай велосипед и уж точно не используй говносипеды и фреймворки для запуска фреймворков потому что мы слышали, что ты любишь фреймворки, поэтому мы сделали фреймворк, чтобы ты мог использовать фреймворк, когда используешь фреймворк. Выбрось нахуй этот жопорожденный спринг бут и забудь о нем. Он должен был сделать работу со спрингом проще, но по факту он лишь ее усложнил из-за лишней прослойки с концепцией черного ящика на боку которого какой-то шутник нарисовал большой дружелюбный смайлик.
Аноним 05/08/16 Птн 00:06:49  813443
>>813356
>Выбрось нахуй этот жопорожденный спринг бут и забудь о нем
Зря ты так. Вполне неплохая штука для хеллоу-веб-аппликатион.
Аноним 05/08/16 Птн 00:20:29  813449
>>813443
Вообще ни разу. Цель хеллоу х не увидеть хеллоу х, а разобрать по частям тобою написанное и сделать соответствующие выводы для себя.
Аноним 05/08/16 Птн 00:35:22  813457
>>813449
Я не про учебу. Для учебы неплохо бы начать с xml-конфигурации спринга. Самая верная и идеологически правильная. Чтобы понимать, что вообще происходит.
Аноним 05/08/16 Птн 00:41:08  813461
Лямбды используются только с интерфейсами?

нюфаг
Аноним 05/08/16 Птн 01:41:12  813492
>>813461
Ты хотел спросить могут ли они заменять только интерфейсы с одним методом (не считая дефолтных)? Да только их.
Аноним 05/08/16 Птн 02:34:29  813512
>>813492
Именно. А почему они не могут заменять также классы с одним методом? Потому что ТАК ЗДЕЛОЛИ, или есть какое-то функциональное ограничение, в силу которого это невозможно?
Аноним 05/08/16 Птн 07:48:35  813563
>>813512
Абстрактные классы несут другую идеологию нежели интерфейсы.
Аноним 05/08/16 Птн 09:30:03  813595
Хочу запилить тетрис на 2х. Какой стек выбрать?
Аноним 05/08/16 Птн 10:04:34  813618
>>813595
Spring + Hibernate. Еще посомртри в сторону Spark/Hadoop.
Аноним 05/08/16 Птн 10:11:32  813622
>>813595
NodeJS + MongoDB
Аноним 05/08/16 Птн 10:58:09  813636
>>813622
Спасибо, уже ушел.
Аноним 05/08/16 Птн 16:06:26  813825
14704023867440.png (45Кб, 875x558)
Анон, недавно взялся изучать ООП и джаву в частности, возник такой вопрос(возможно я не правильно формулирую):

Как правильно реализовать неограниченную вложенность объектов? (не технически, а сам алгоритм)
На пикрелейде пытаюсь сделать нечто подобное виртуальной папки. Т.е Папка, в ней могут быть другие папки или файлы, при этом сама папка тоже может быть в другой папке.

Я двигаюсь в правильном направлении, или совсем хуйню сделал?
Аноним 05/08/16 Птн 16:40:47  813853
>>813825
Ну тип хранишь все в коллекциях, дохуя неограниченно, в каждой папке есть коллекция папок и ссылка на родительскую дирректорию.

Мимонуб
Аноним 05/08/16 Птн 17:15:12  813899
>>813825
class File {String name;}
class Dir extends File {List<File> content;}
Хуле тебе еще надо, блджад?
Аноним 05/08/16 Птн 20:00:52  814006
14704164523190.png (95Кб, 492x469)
Че-то про показе анимаций, по экрану бегают белые полосы, но на скриншоте не видно.
Аноним 05/08/16 Птн 20:03:13  814008
14704165933580.jpg (47Кб, 492x469)
>>814006
Кое-как изобразил.
Аноним 05/08/16 Птн 20:07:27  814010
>>814006
Используй буферизацию.
Аноним 05/08/16 Птн 20:21:59  814020
14704177198930.png (13Кб, 461x287)
>>814006
>>814008
>>814010
Уже починил, не знаю с чем это связано.
Аноним 06/08/16 Суб 11:36:07  814431
14704725672120.jpg (39Кб, 485x320)
Есть таблица в сиквеле, у которой есть id. Есть другая таблица в сиквеле, у которой ключ составной - колонка со своим id и колонка с id первой таблицы. Поверх всего этого натянут Гибернейт. IDE автоматом создала по классу на кажду таблицу, класс на ключ второй таблицы и XML с маппингом. В XML у айдишника первой таблицы указан генератор identity, и всё нормально работает. Но у второй таблицы ключ взят в тэг composite-id, который не позволяет указывать внутри генератор. Записывается всё в базу нормально, все данные на месте, но когда я записываю объект сущности второй таблицы, которая с составным ключом, вместо айдишника новой строки мне возвращается 0. У первой таблицы всё было так же, но я указал руками генератор в маппинге и всё нормально заработало. Что делать? И почему вы не перекатываете утонувший тред?
Аноним 06/08/16 Суб 12:12:12  814459
14704747324630.jpg (31Кб, 512x512)
>>814431
> Что делать?
http://www.jooq.org/
Аноним 06/08/16 Суб 12:48:52  814483
>>814459
Это, конечно, прикольно, но если я приду устраиваться на работку с жуком вместо гибернейта, меня нахуй пошлют.
Аноним 06/08/16 Суб 12:51:18  814485
>>814483
А ты им расскажи почему orm говно.
Аноним 06/08/16 Суб 12:56:29  814488
>>814485
Они меня внимательно выслушают и нахуй пошлют. Лучше ты им расскажи.
Аноним 06/08/16 Суб 13:05:29  814494
14704779290850.png (229Кб, 457x318)
>>814488
Говнолегаси бд со схемой отношений - все со всеми. Нужен десяток полей из десятка разных таблиц в одном объекте.
@
ХИБЕРНЕЙТ, ЗАЩОО
@
С ЛИЦОМ БАТТХЕРТА, ПИШЕШЬ МЕМАС CREATESQLQUERY


А так берешь, джойнишь как надо в дао и хоть обвытаскивайся.

Вот это им и рассказывай. Опционально еще вскочи на стол и расскажи, что джава мертва и будущее за нодой.
Аноним 06/08/16 Суб 13:12:18  814498
Посоны, поясните нюфагу. Начал осваивать джаву, выбрал ее рандомно, типа популярно, все дела.
Но когда дело дошло до моей хотелки по использованию драйвера устройства, я обосрался. Неужели Джава не может в драйвера?
Аноним 06/08/16 Суб 13:14:24  814499
>>814498
> Начал осваивать джаву, выбрал ее рандомно, типа популярно, все дела.
Тебя наебали, джава умирает. Популярен JS. Иди к ним в тред.
> использованию драйвера устройства, я обосрался. Неужели Джава не может в драйвера?
Ты вообще читал что такое java и как работает? Native API дальше по коридору в C и C++.
Аноним 06/08/16 Суб 13:20:15  814501
>>814494
По делу-то есть что сказать?
Аноним 06/08/16 Суб 13:22:34  814502
>>814501
Ты тупой? Разбери по частям мое послание тебе.
Аноним 06/08/16 Суб 13:30:49  814504
>>814502
>нужно разобраться с ОРМ, потому что у всех работодателей оно в обязательных скиллах
>описываю ситуацию и пишу вопрос
>в ответ слышу, что ОРМ нинужно, джава мертва, а все конторы, где они используются - говно
>в добавок называют тупым
И чего я от двача ждал?
Аноним 06/08/16 Суб 13:35:56  814509
>>814504
Ты с чем-то не согласен? Опиши свой баттхерт.
Аноним 06/08/16 Суб 13:42:20  814512
>>814509
>скриптодурачок прибежал в чужой тред
>вместо ответов на вопросы начал переубеждать окружающих, заявляя, что их технологии нинужны
>назвал тупым собеседника, которому безразличны его взгляды и который пришёл сюда не за этим
>диагностировал у него батхёрт
>в следующем посте сагрится на зелёный текст
Аноним 06/08/16 Суб 13:47:07  814518
>>814512
Ты описал свой баттхерт, послушный мемас. А теперь опиши с чем ты не согласен.
> чужой тред
Какой-то петушок с нулевым опытом коммерческой разработки на Java (что так и останется) считает тред своим. Ньюфаг обезумел.
> >в следующем посте сагрится на зелёный текст
> Мам, ну скажи ему, пусть мне не отвечает. :(

Так вот, возвращаясь пройденному - разбери по частям мое послание тебе и опиши, что тебе непонятно или с чем ты не согласен.
Аноним 06/08/16 Суб 13:51:41  814519
>>814518
>скриптодурачок думает, что его кто-то будет переубеждать
Аноним 06/08/16 Суб 13:52:51  814520
>>814519
Слив обоссанного недоджуниора (которого никуда не возьмут, ибо 60 человек на 1 место) засчитан.
Аноним 06/08/16 Суб 13:55:38  814522
И все же, пацаны, есть ли смысл писать высоконагруженный сервак на джаве? А то меня этим вашим GC все пугают.
Аноним 06/08/16 Суб 13:55:42  814523
>>814520
Полегчало?
Аноним 06/08/16 Суб 13:58:33  814524
>>814523
У меня ничего не изменилось, ведь это ты обосрался, даже не программист, а не я. С простейшим хибернейтом даже разобраться не может, вообще охуеть.
>>814522
С G1 имеет.
Аноним 06/08/16 Суб 14:00:46  814525
>>814524
>С простейшим хибернейтом
>>814494
>ХИБЕРНЕЙТ, ЗАЩОО
>С ЛИЦОМ БАТТХЕРТА, ПИШЕШЬ МЕМАС CREATESQLQUERY
>С простейшим
Скриптодурачок ловко извернулся и засунул собственный хуй себе в рот.
Аноним 06/08/16 Суб 14:03:38  814526
>>814525
Безработная обоссанная манька продолжает фантазировать.
> >ХИБЕРНЕЙТ, ЗАЩОО
> >С ЛИЦОМ БАТТХЕРТА, ПИШЕШЬ МЕМАС CREATESQLQUERY
> >С простейшим
Долбоеб, ты что, вообще нихуя не понял что я тебе сказал?
Аноним 06/08/16 Суб 16:15:50  814619
>>814618 (OP)
>>814618 (OP)
>>814618 (OP)
>>814618 (OP)
>>814618 (OP)
>>814618 (OP)

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 543 | 45 | 151
Назад Вверх Каталог Обновить

Топ тредов
Избранное