Шапка треда https://github.com/qqqlll/Java-Thread/wikiПредыдущий тонет здесь >>798959 (OP)
Первый нах
Вы че, ебанулись? Какого хуя нет unsigned? Если мне надо индекс массива передать, мне что, блять, каждый раз нужно проверять, что он >= 0?
>>806805Нет, не надо.Вместо этого тебе надо каждый раз проверять, не вылетело ли вдруг исключение. Индекс ведь может оказаться и слишком большим.
>>806805Ты дебил отрицательный индекс передавать? Проверяй контракты на стыке интерфейсов.Ты дебил вообще массивы использовать? Работай с коллекциями.
>>806810В контракте int, хуле. Передам-ка -142148.
>>806813А то что int ограниченной точности, это тебя уже не смущает?Если уж такой фашист - используй библиотеки, в которых Unsigned реализованы в виде объектной обертки (вот только из-за соображений эффективности они обычно mutable и api у них ебанутое из-за экономии на сборке мусора). Но люди тебя не поймут.
Нет перегрузки операторов, вот что действительно печально.На днях понадобилось портировать невротебеную формулу на джаву.В формуле большие числа, поэтому пришлось юзать биг интеджер.Вот как я заебался переписывать.
>>806839имплаинг с языком где есть перегрузка операторов ты б так просто все сделал что у тебя даже сомнений бы не появилось в правильности полученного кода.
>>806839http://projects.congrace.de/exp4j/ ?Хз что там с точной арифметикой. Вообще можно гуглить по builder formula expresssion bigdecimalhttp://stackoverflow.com/questions/7258538/free-java-library-for-evaluating-math-expressions
>>806839Алсо что заставляет вас брать язык не под свои задачи и потом ругаться где-то в интернете на форумах мол язык говно потому что вам не подошел? Ну не подошел язык, так возьми другой. Возьми язык под свои задачи, возьми хаскел, который придуман на математической базе. Отсутствие unsigned int это настолько изощренная мелочная и нереалистичная высосанная из пальца проблема, что вот хуже только спросить почему в Hashtable нельзя положить null.
>>806850Как будто кого-то интересует мнение народа из кубиклов.
>>806855А раз за это еще и платят то вопрос совсем неуместен.
>>806850Джава - язык йоба энтерпрайза, где часто считают деньги. Деньги моделируются как BigDecimal. Так схуяли это язык не под эту задачу?
>>806914I che blya?
>>806914Это где суммы такие оперируются что в лонг не влазят? 9.223372e+18 хватит всем!
>>806914Ну раз деньги, значит, формула не "вротебеная". И даже скорее всего реализована в какой-то библиотеке (йоба-энтерпрайз же) и для тебя вообще выглядит как CompoundInterest.cacluate(1,2,3)
>>806839Мог бы в котлине сделать.
>>807105А мог бы индусу зааутсорсить. Умные мысли то есть? Потому что я не слышал чтобы в котлин какие-то другие bigdecimal завезли.
>>807112Там перегрузка операторов есть, кловен.
>>807142Кловен тут только ты. Дважды уже.
>>806839Не могущий в массовую замену регэкспом)000
>>807142Ты со скалой перепутал
>>807448Ты со groovy перепутал
>>807448https://kotlinlang.org/docs/reference/operator-overloading.htmlЭкстендишь бигдесимикал и наслаждаешься операторами.Можно сделать отдельный котлин класс имплементящий интерфейс нужных операций и перенести туда код.Потом в основном коде вызывать через полиморфизм нужную хуйню и всё.
Сап, джависты. Вопрос: Что пишут на Java? Я студентота по IT-специальности, изучаю Java самостоятельно уже полгода. И тут возник вопрос: а как, в общем-то, вкатиться? Давай-те на секунду представим, что у меня есть некоторый объём знаний, которого будет достаточно для, например, джуниора. Зашёл я на сайтик по поиску работу, увидел, что в моей мухасрани 350к нет объявлению по поиск Java-кодера. Анон, расскажи, как ты вкатывался. С чего начинал? Где и как искал работу?
>>807838Проще всего устроиться в консалтинг/интегратор джуном. Пару лет назад вакансий в ДСах хватало.
>>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 Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
>>807853Когда я писал свой пост, то, конечно, понимал, что двач - не лучшее место для советов, но блять всё-таки понадеялся на то, что адекваты всё же снизойдут до меня.
>>807847Чтобы стать полноценным Java-программистом, мне по-любому придётся съёбывать в миллионик или ты можешь подкинуть идейку для заработка в мухасрани?
>>807859В смысле? Я тебе добра желаю, не каждый же день приходит нюфаг с таким вопросом.На Haskell полно удаленной работы, а вот специалистов не хватает. Некоторые компании готовы брать себе нихуя не умеющих макак за огромные деньги, чтобы научить их кодить на Haskell.
Почему картинка не отрисовывается? ошибок нет. 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();
>>807862>идейку для заработка в мухасраниМожешь открыть свой стартап, например
Приведите, пожалуйста, пример использования inner class. Не могу понять на кой черт они нужны.
>>808010До Java 8 их часто использовали вместо лябмд
>>808012Ок, ну а в 8 они не нужны нахер?
>>807862Честно хз, что работой в мухосранях, т.к. из своей свалил в ДС сразу после универа. Как вариант вкатится в андроид, написать что-нибудь своё, вообщем заиметь портфолио/профиль на гитхабе и пробовать устроиться на удаленку.
>>808014Еще могу это добавить >>801026
... > моча > ... > пехепе > говно > ... > джява = 1С = червь пидорcега явадаунам
>>808045Жаль что всем похуй на твое мнение
>>808010Хз, в яве и ее стандартных пакетах повсюду используются
>>808045Че там в жс треде? Совсем плохо? WebAssembly пришел?
>>808010Вместо ссылок.
>>806729 (OP)Появилась необходимость освоить Java. Занимаюсь на JavaRush. Правильно ли я выбрал ресурс.
>>808226>Занимаюсь на JavaRush. Правильно ли я выбрал ресурс.Тоже там занимался, теперь делаю сайтики на ангуляре и бэкенд немножко могу на ноде c(^_0)э
>>808236Я вообще занимаюсь АСУТП, но очень хочу оттуда уйти. Надеюсь, что в будущем это мне поможет.
Сап, джавабоги. Что можно читануть чтобы быстро перекатиться с убого шарпа в богоджаву?
>>808291SpeakingJS
>>808291 поясни за убогошарп, плес
>>808318язык божественен, но, когда дело доходит до ведра, сосёт.
>>808320> когда дело доходит до ведра, сосёт.А когда доходит до iOS (в сравнение с джавой)?
>>808330до ios мне доходить пока не доводилось. моя цель сугубо ведро.
Что лично ты, анон, пишешь на Java? Что приносит тебе деньги?
Сап, джавач.Пишу бота который транслирует переписку из Skype чата в Gitter, пишу на Java, и буду рад, если вы вгляните на мой код и подскажете что и где плохо, и как это сделать лучше.Также буду рад совету знатоков Gradle и Groovy по поводу срипта сборки проекта.Ссылка на репозиторий - https://github.com/last-khajiit/skype2gitterпиксрандом
>>808349> *Utils.java
>>808000пиздец говнокод
>>808381зато трипл
>>808349Хороший код: всё по делу, ничего лишнего.Но в энтепрайзе такое не любят, там нужно чтобы позапутаннее было, с паттернами-хуятернами.
>>808401ну паттерны должны быть по делу, а когда у меня 4 класса, то городить ДипенденсиИнжекшоны, Стратегии и прочие Фабрики не вижу смысла. Если код будет разрастаться, тогда уже буду думать о таких вещах, пока просто хочу отладить приложение, вычистить хардкод и покрыть это дело тестами.>>808357> *Utils.javaчто ты хотел этим сказать?
дайте игру с жавараша про змейку с классами плз.
>>808381пиздец это вообще-то не "продакшн", а пробный код посмотреть, как делаются игры, даун тупорылый. уебывай на свой коворкинг нищая мразина.
>>808340стриптиз танцую - вот это деньги мне приносит, а ты?
>>808414Если ты говнокодишь осознанно, то нахуй вообще кодить тогда макак? Еще и тут свои высеры постишь, в гости тоже немытым ходишь?
>>808415DeepBunnyHole не выдумывай. Возьми салфетку.
Википедии принес.https://en.wikipedia.org/wiki/Maze_generation_algorithm
>>808426уноси её нахуй
>>808407>что ты хотел этим сказать?Тебе экстеншен-методы для чего даны?
>>808428Чо злой такой? Смотри гифочка.
>>808416я спрашиваю, почему картинка не рисуется, проблема уже найдена. нахуй пройди. а пример скопирован с сайта, маня.
>>808432Спасибо!
>>808431В джаве? Их нет блять.
>>808433тогда дам тебе один по настоящему ценный советдропай этот сайт, хуже чем писать свое говно, это учится на примерах чужого говна, только время потеряешь, а и так придется потом переучиваться
>>808431>кстеншен-методы>в Java-трэдеты не ошибся трэдм?
>>808407Пиздец в том, что *Utils - это набор статических утилитных методов, а у тебя utils передается в utils и там начинается какая-то ебатень.
>>808453т.е. тебе не нравится название классов?>*Utils - это набор статических утилитных методовэто какой-то кодконвеншн?
>>808457Да. Точнее антипатерн.
>>808458не встречал раньше, спасибо, погуглю
>>808458В джяву экстеншн методов не завезли, приходится это терпеть.
>>808453> набор статических утилитных методовВроде везде пишут, что это некошерно, и надо делать синглтоны.
>>808458ну вот допустим в разных абсолютно автономных классах у тебя используется один и тот же метод, с хуяли тогда вынос этого метода в отдельную АБСОЛЮТНО ЧИСТУЮ функцию является антипаттерном?
>>808462Завезли же, в 8-ю, в интерфейсы.
>>808465Это не то. Если сорцы твои, то еще можно как угарелый навешивать на все подряд интерфейсы, полные дефолтных методов, а если нет?
>>808457Конвешн-хуйвеншн. Это просто сложившаяся практика. Я бы на твоем месте сделал что-то типа:class SkypeWorker { void setCredentials(String login, String passord){...} void setListener(SkypeListener listener){...} void start(){...}}interface SkypeListener { void onMessage(String name, String message);}Ну а имплементацию интерфейса хоть в анонимным классом, хоть как.Не бывает на 100% правильного кода, но мой подход считаю понятным для чтения и понимания, а когда написано одно а там другое - это плохо.
>>808458Не антипаттерн а единственно возможный костыль для Джява.
>>808468Спасибо за пример!
>>808463На заборе тоже пишут.Накидай плюсы и минусы каждого подхода и решай сам.
>>808463Нужно кодить с учетом ООП.Работа с абстракциями - функции отвечающих за эти абстракции действий принадлежащих объекту который должен выполнять эти действия.Какое-то специфическое утилитарное байтоебство - в байтоебном методе.Вообще ящитаю так, функция для какой-то работы с примитивами или коллекциями однозначно статически в - Utils.
Вы тут такие злые потому что вас либо на работе за доширак тюкают либо работу найти не можете, да? Поэтому вам так печет от тех, кто занимается прогерством в качестве хобби?
>>808443А в чем конкретно говнокод ты можешь пояснить? в том что сцена рисуется кодом, а не в FXML?
>>808407>> *Utils.javaВынеси это хотя бы в отдельный пакет "common" что бы с бизнес-логикой не смешивались
>>808490с чего такие выводы? болишьнство комментов по коду выше довольно адекватны и аргементированны
>>808492по утилзам уже понял, зарефакторю.А есть спецы по грэдлу? гляньте билд скрипт, плиз
Что можно на спринге написать, чтобы было не стыдно показать на собеседовании?
>>808495программу
>>808502Уебище, опять на связь выходишь?
>>808515дада, я слушаю (:
>>808494Пододжди до gradle 3.0, там наконец-то появится статическая типизация и подсказки в IDEA.
Посоветуйте вкатывающемуся в джаву годную книженцию по сему язык
>>808528начинай с haskel для JVM
>>808528Thinking in Java, Bruce Eckel
>>808528https://www.ozon.ru/context/detail/id/20371540/Хватил что бы устроиться джуном Luxor
>>808493потому что каждый второй коммент заканчивается фразой "иди в мак, с таким говнокодом работу не найдешь". такие жирные проекции.
>>808528Шапку для кого написали?
Такс, ебать, поступил на работу джуном, а там в огромном тырпрайз-прожекте javaee чистая, soap, неебическая куча нативных sql-запросов и ант (хотя, они сказали, что скоро на гредл пересядут, слава господу нашему, христу). И, блядь, самое главное - проект-то сделан немцами для немцев, не русскими ваньками. И что, так везде? Залупу за воротник, а не современные технологии?
>>808593Ну а ты чего ожидал от огромного тырпрайза? Он же до ужаса инертен в этом плане, современные технологии они в молодых стартапах да и то не всегда
>>808595но это еще ничего, вот в госконторах и некоторых банкахвсе еще люди на кобол и дб1 сидят
Ну хотя бы сборщик вместо анта в 2016-то можно намутить. Алсо, было забавно sonar прикручивать к этой махине: несколько десятков тысяч code smell'ов и три-четыре багов и уязвимостей.
>>808600>три-четыре тысячи
сап двачик. занимаюсь веб-разработкой, в последнее время дохуя приходится читать по всяким линуксам, сетевым протоколам и прочему говну, укладывается все очень сложно, но картина в целом более менее начинает складываться, а интерес продолжает расти.буду признателен, если пояснишь мне за профиты использования nginx в качестве прокси для java приложений (проще говоря, нахуй оно нужно то?). у меня слишком туго с пониманием этой хуйни, поэтому на пальцах, в несколько предложений, коротко о сути, пожалуйста.
>>808670Требования высокие? Так вродеж норм и зп наверное тоже.
>>808682#Хэштэги#Там#Где#Они#Не#УместныВин-вин, хуин-хуинМы такие ПаСиТиФФнЫе!У нас Фсе ДруК дРуКу улыбаЮццА! =))))))))
>>808684На это не обращай внимание, а с требованиями что?
Почему не пашет? Должно увеличивать размер окна на 25 пикс.http://pastebin.com/s7g9pscC
>>808010addListener в AWT/Swing типичный пример. Нужны, чтобы не создавать лишних сущностей (имен). Но лучше, где возможно, использовать лямбды.
>>808473>>808484Я использую синглтоны там, где есть данные (т.е. изменяемое состояние), статические методы - как набор чистых функций (как в java.lang.Math).
>>808495Имиджборду.
>>808670> Но главное, зачем мы с утра спешим на работу - интересные задачиgans_spb/О программистишках
>>808783Что такое интересный проект? Например, это постройка марсохода, разработка алгоритмов для работы лунного модуля или там лазарной пушки. На худой конец, поиск лекарства от рака. Но когда какой-нибудь сраный портал или недобитый стартап называют интересным проектом только потому, что так решили его создатели, надо сделать шаг назад и спросить себя — не пытаются ли меня поиметь? Потому что «интересный проект» — такая же абстрактная и сугубо субъективная вещь, как и «вкусный пирожок». Никто еще ни разу не признался, что у них проект скучный и неинтересный, хотя таких проектов 99.999%. Развод из той же темы — «бонусы» и «система поощрений» — это когда ты вкалываешь как проклятый и тебе может единоразово накинут в конце года пару десятков баксов. Дадут на одну ветку бананов больше. Молодец! Возьми печеньку с полки. Заслужил.
>>808598В Рашке кобола нет, используют 1C (он появился еще в начале 90-х).(Visual) FoxPro в госконторах очень любят.
>>808786С такой точки зрения фейсбук тоже не интересный проект.
>>806729 (OP)антоши, в портфолио какие программы сделать?
>>808786Интересный проект в таком случае - это если это твой бизнес. Тогда интересный проект. В любом другом случае ты все равно пишешь код и понимаешь, что основная денежная масса течет мимо тебя, а тебе кидают лишь огрызок с барского стола на пол, даже если это 120к в месяц.
>>808809Не вижу в фейсбуке ничего интересного.>>808873Обычно когда говорят "интересный проект", то подразумевают как раз нематериальную заинтересованность. Ну типа как у Linux разработчиков.
>>808946>как у Linux разработчиков.А какая у них нематериальная заинтересованность?Если ты хотел сказать про OpenSource сообщество, то такая работа вроде же не оплачивается?
думаю запилить симулятор фейсбука в командной строке как портфолио. И так, есть ли шансы что меня возьмут жуниором в контору?
>>808950Они хотят сделать свободную операционную систему, в которой не будет зондов и ограничений.
>>808467Возможно, еще добавят. В кресты вот уже собираются. Лямбды в жабе тоже появились после выхода нового стандарта C++, до этого все жатники кричали, что они НЕНУЖНЫ, и им достаточно анонимных классов.
>>808715Ну помоги анон.
В нашем треде есть пришедшие к успеху? Которые с нуля до работки докачались.
Чем отличается состояния потока waiting и blocked? И правильно я понимаю, что разница между notify и notifyAll по сути в том что во втором случае потоки которые не займут монитор станут blocked даже елси до этого были waiting?
Ох не могу больше, какая же джава отвратительная. Как будто специально делали как хуже.Вот нахуя нужен enum, если это фактически класс, а не перечисление? Зачем плодить объекты, если мне нужен простой алиас числа?
>>809147В январе 2015 сидел без работы, без опыта и без понимания в какую сторону двигаться.Сейчас зп 50к милионник мухосранск. Нет тян нет друзей, по вечерам хуярю код.
>>809170Пора выпускать книгу - как перестать беспокоится о том, что плодятся лишние объекты и начать писать код
>>808014Напиши свой однонаправленный лист без использования коллекций.
>>809170Jvm может и не будет множить объекты.Алсо, енамы в лжаве, это не просто алиасы к числам.Нужен простой алиас к числам – сделай класс с final константными числовыми полями.
>>809147В декабре написал хелловорлд. Сейчас 80к+50к квартальная премия. Но это не мертвая джава, а модный JS и нода.
меня вот муж-олигарх содержит, занимаюсь айти чисто в рамках хобби, чтобы мозг не отуплял, вам печет доширачники?)
>>808670лепить жаву на быдловебкодинг - какое же это убожество, просто просер ресурсов.
>>809257двачую, джява там не затащит, её место - исключительно на параше кофемолках.
>>809255Печет, плохо без куньчика :(
>>809257Джва чайка. Пилить бекенд магазина рандомных ключей для ксго на джаве это дичайшее извращение.
>>808670ой ну все, бесплатной стоматологией они меня точно уломали, уже бегу паковать чемоданы и заказывать билет в ДС.
>>809255Блохо без сельди.мимо-бохач
только что успешно применила паттерн Strategy в своей змейке. это первый раз.
>>808670Бесплатная стоматология это новый тренд, просто на западе это охуенный бенефит, ввиду того, сколько там это стоит. Наши жуёбки просто бездумно копируют.
>>809303У нас нормальный стоматолого дохуя стоит, 2 500 рублей за один зуб, учитывая зп по мухосрани 13 т.р. - это дохуя. У нас же ультра-капитализм, маня.
>>809297Так сельдь, суп с сиськами быро.
Pepe кондер?
>>809333>2 500 рублей за один зубМинимальный рейт в раше 0.65$, 40$ за зуб.Минимальный рейт в мурике 8$, 1500$ за зуб.Итого, в раше дешевле в 3 раза, там блять даже простое обследование >100$ стоит, приходится к латиносам кататься.
>>809400Медстраховка от работодателя? Персональная медстраховка? Obamacare для совсем нищуков? НАХУЙ ВСЕ ЭТО! БУДУ САМ ПЛАТИТЬ ЗА ВСЕ
>>808670>3 года>java coreну ведь если мозги есть то кор можно и за пол года - год освоить как бог
Охуенно. Решил учить Джаву, скачал какую-то книжку для детей. Вряд ли дети осилят даже первую главу, но похуй. Там предложили скачать еклипс. Так вот, почему в нём вместо черновика запускается класс?
>>809380на работу хочешь взять? только учти, за сиське доплатить придется.
>>809498Ты слишком тупои, иди в ЖС тред. бля.
>>809511А вдруг мне не понравицца? Давай смирненько запили супчик, а там посмотрим.
Какую систему сборки посоветуете юному падавану, вкатывающемуся в Java? Ответ аргументируйте, почему именно она.
>>809473С мозгами щас не берут. Нужны те, что без мозгов. http://ebanoe.it/2016/07/20/shitcoders/Кстати, кто-нибудь объяснит мне термин "сыроварня"?
>>809560Проходит время, человек втягивается. Вроде и подачки с барского стола неплохие, всё становится таким родным и таким ебаным. Постепенно на его бледных пальцах вырастают перепонки (да, прямо как у лягушек) — так чужое гавно разгребать удобно. И тут БАХ! Тебе пизда. Теперь ты уже и средний код от говна с трудом отличаешь. Теперь ты — ебаная жалкая амфибия. И на следующем стендапе начинаешь новенькому заряжать, чтобы он не впрягался. Круг замкнулся.БОМБАНУЛО ЧЕТ
>>809577>да, прямо как у лягушекКак у ЖАБ.
>>809555Мавен для понимания как строить проект, после этого переходить на грабл
>>809555Maven. Потому что самая популярная.>>809560> сыроварняЭто dou
>>809560>"сыроварня"dou.ua
>>809583Благодарю. Я тоже подумал, что если щас анон не ответит, то буду использовать maven, т.к. часто упоминается в вакансиях.Про доу- а за что его так прозвали? Причем тут сыр и украинский айти-форум?
>>809588Из-за популярной пасты про сыр
>>809597Спасибо.
>>809597Хохлуши охуели, уже свои мемасы русским людям впаривают!
>>809610Вам с хохлофобией в политач.
>>809498> вместо черновика запускается классПочему у тебя вместо мозгов используются опилки?
>>809597Хочу тоже быть украинским программистом, покупать дорогие сыры за 500 гривен и жрать их. Заебал уже импортозамещенный сыр залупный с отечественными волосами.
>>809628Пиздуй на удаленку в хохляцкую галеру же
>>809212>>809251А как практиковались? Книжки ведь быстро забываются или это только у меня так?
>>809638А ты и читай, и пиши
>>809638Ты просто тупой. Программирование не для тебя - дальше будет еще сложнее. Иди в системные администраторы.
>>809638Я же написал. По вечерам хуярю код. Какие-то сложные вещи коммичу на гитхаб как заготовки, ибо запоминать это пиздец. Пару раз вбрасывал даже в этот тренд.
>>809613Не, у меня хохлофилия, ты что!
Нихуя пока не знаю в /pr, рещил учить Жаву, начал с жавараш ? норм ?
>>809701Кобол выбираешь . Оракал положил хуй на javaEE и сама джава медленно умирает . Будущее за универсальными языками типа JS . Рекомендую .
Сап, джависты. Уже полгода изучаю Java и вот недавно заметил, что работодатели по найму Java-кодеров в требованиях, помимо самой Java, указывают ещё и вот этот Web-блок (назовём его так): JavaScript, HTML и CSS, да и много статей читал, где тоже джависты это учат. В общем, вопрос: Надо ли Java-программисту знать вот эти JavaScript, HTML и CSS?
Посоветуйте книгу на русском , решил начать программировать на Java.
>>809725В гугле забанили? Читай Хорстаманна "Java Core".
>>809727>ХорстманнаФикс.
>>809724надо
>>809724Нужно изучать JS, потому что JS нужен как на фронте, так и на бэке, а джава не нужна. Иди к ним в тред. >>809725И ты тоже. Только английский еще выучи.
>>809733Лол. А почему не в Haskell-тред?
а я C#
>>809738А я твоя мамаша.
>>809735Потому что хаскель ненужная параша. Только повыебываться перед самим собой.
Если у меня есть мап <Integer, Object>, и я всегда обращаюсь к ней через примитивный int, будет ли оверхед?
говорят C# лучше чем javaето правда?
>>809749>>809754нет
>>809749Анбоксинг. >>809754Да.
>>809759Погуглил, кэшируются только инты от -127 до 127. Значит, с большими числами будет оверхед.
>>809768Зачем ты думаешь о оверхеде? Пусть jit думает. Лучше бы программировать начал
>>809771Просто он не знает что преждевременная эякуляция - корень всех зол
>>809702>джава умираетУже лет 20 как умирает.
будущее за C#
>>809773Про эякуляцию знаю, но у меня в цикле это хуячится. И погуглив бенчмарки, разница в скорости - десяток раз. Когда я уже сейчас могу парой строчек сделать не мап интеджеров, а обычный Object[].
>>809749>>809779Зачем тебе Object в value? Ты ведь знаешь, что люди Земли изобрели дженерики?
>>809773Именно>>809779А в чем проблема? Приложение уперлось именно в этом месте?
>>809784Я очень упростил пример.>>809786Пока нет. Но мне не сложно вбросить вопрос на сосаку и продолжить кодить другое место.
Норм ли делать класс abstract без конкретных методов? Чисто по логике у меня получается, что это именно класс, а не интерфейс, и не должно быть множественного наследования.
>>809746вот тут двачуюесли ты не математик или физик то тебе нахуй хаксля не нужна, в прочем если физик то тоже не нужнамимофизикbtw зацените какие вещи на жабе с биндингами к GL можно делать.
>>8091472 года изучала несколько яп, сейчас вот стриппухой работаю, зарплата норм.
>>809798Говно.регулярно смотрю стримы одного пиксель-арт артиста
>>809802Что есть, других художников у меня неттоже смотрю стримы одного годного пиксель артиста
>>809805да и суть же не в самой графике блжаткак жопу рвать надо что бы такой результат получить
>>809805Твой пиксель артист говно.
>>809806на планшете бы нарисовал декорации.мимохудожница
>>809809Рисуешь слюной на членах?
>>809807он учится, а я движок пилю, что бы когда он научился и нарисовал мне годноту, в эту годноту можно было бы поиграть>>809809но я нищий, з\п нихуя
>>809811сексистские шутки за 300 ммм))
>>809811на твоем не буду, обиделся?>>809813а это обязательно должно быть в квадратах-пикселях?
>>809819Спс за подтверждение, хуйдожница))
>>809819ну первоначально была идея сделать частично киберпанк пиксель-артома частично еще чем нибудь (например акварелью при переходе в параллельную реальность), но пока нашелся только один человек и он (скоро) может только в пиксели
>>809806Но зочем это, если можно взять box2d+box2dlights и запилить динамическое освещение любого уровня охуенности, написав всего пару строк кода?
>>809791А в джаве и нет множественного наследования. Нет конкретных методов - делай интерфейс. Абстрактный класс тут не нужен.
>>809826> box2d+box2dlightsтяжеловесное вырождение же, к тому же не позволяющее контролировать весь процесс рендераСвой велосипед он может и костыльный, но зато свой, родной, всегда знаешь чего от него ожидать и как все работает, а если что всегда можно прикрутить необходимое.+Многому можно научится
>>809837box2d/box2dlights опенсорсные, тоже можно поковырять. другое дело, что там надо с++ знать
>>809843нативный что ли?btw его или хотя бы просто Си и так придется знать когда с графикой работаешь на уровне большем чем просто отрисовка загруженной текстуры
>>809831Так вот я и спрашиваю, если сделать его интерфейсом, то можно будет наследоваться от другого класса, что будет нелогично в моем случае.
>>809860если очень надо то ты можешь наследоваться от неабстрактного класса тоже
>>809862и сразу сдохнуть от рака мозга, надеюсь
>>809868Ну сообразность такого поступка это уже тема для другого разговора.
>>809831двачую этого
Пацаны, кто работает со Спринг.С чего лучше начинать изучать этот фреймворк и java заодно? Как мне создать простое базовое веб приложение, чтобы потом по нарастающей начинать разбираться? За что отвечает spring boot? Это не то, что мне нужно?
>>810048либо с книжки spring in action, либо гугли наброски mkyong по спрингу. Другой годной литературы нет по нему.
>>810052Мне и не нужна литература. Я бы доками обошелся. Там обширная документация. Только, она не линейная.spring in action -- я так понял, что это тупо копипаста той же документации... хотя, там, наверняка, как раз есть линейность
>>810052То есть, документации море. Мне просто как бы упорядочить этот разброс для быстрого старта.
>>806729 (OP)Сап, сосоны. Подскажите нубу чем subscribeOn отличается от observeOn в javaRX?
>>810055SiA - вполне себе линейная.
>>81005829:32 https://www.youtube.com/watch?v=Eatfi4am0HU
>>810060>Крута что вы сегодня пришил.Клован ебаны.
Анонимные класс рулят.
>>810120фу бля
>>810120>Eclisp>Pre java 8>Inlined declarations>System.exitСъеби
>>810139Ява кодер не сразу стал кодером.
>>809151Бампушенцкий!
>>810200JCIP
>>810048start.spring.io
>>810120>Анонимные классда ты охуел чтоли? для кого java 8 запилили
>>809826ты опять выходишь на связь мудило хохлятское со своим бокстуди.
>>809826На, там и не только это говно есть.http://www.java-gaming.org/
Аноны, как компилировать джава в исполняемый файл? Чтобы скинуть кому-то и он просто взял и запустил?
>>810307Ссышь в лицо тому, кто не установил джявуИспользуешь launch4j
>>810308Благодарю.
>>810307https://www.youtube.com/watch?v=Dj3oh-mSZ4I с 25:10
Анон, хочу написать машрутиризатор своими руками. Ладно, шучу. Кейс примерно такой (смотри картинку)Итак, есть, например, 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 Controller2.1. Proxy controller присваивает отдельный прокси2.2. Выполняет запрос. 2.3. Получает ответ. 3. Передает ответ одному из Worker'ов, например, через Load Balancer. Теперь собственно вопрос - куда гуглить? Есть ли какие-нибудь библиотеки, которые позволяют это сделать менее болезненно? Какие варианты вообще существуют.
>>810310хороший линкдобра тебе другой анон
Уважаемые java-господа, поясните ньюфагу на пальцах работа сборщика мусора. В большей части литературы, которую я читал, говорится, что сборщик убивает объекты, на которые ничто не ссылается. Отсюда вопрос: например у нас есть следующий кусок кода. Есть ли вероятность, что сборщик захавает объект созданного MyFrame'а?[CODE]...new MyFrame();...class MyFrame extends JFrame {...}[/CODE]
>>810321Заебись разметка работает.
>>810206GOOGLE
>>810313А что тебе сделать то надо?
>>810313> куда гуглить?1. Брокеры сообщений и менеджеры очередей - ActiveMQ, Kafka2. ESB - Apache Camel или Spring Integration/BatchНо я думаю это все будет оверкилл. Гораздо интереснее писать самому.
>>810310И тебе спасибо, анон.
>>810321есть
>>810321Странный код. Так написать нельзя. Попробуй на пастбин, может нам понятней станет чо ты там не выкупил.
>>810332Ок, например вот так - http://pastebin.com/SV8j2Fk3Считается ли мусором new MyFrame(), созданный в мейне?
>>810328Мне нужно обращаться к API через разные Proxy Server. Другими словами, у меня есть запрос к серверу с Rest API: [https://example.com/user=2&option=4]Вместо того, чтобы его отправлял сам Worker, я хочу, чтобы он шел через Proxy. В целом, я мог бы был назначить каждому воркеру по Proxy серверу, однако один воркер должен генерировать очень много запросов с разными API keys. На самом деле, план такой. Воркер генерирует запрос без ключа, передает его Proxy Controller, а тот в свою очередь уже выполняет запрос через определенный proxy, но ещё и добавляет необходимый API KEY, а ответ уже передает обратно воркеру.
>>810329Буду благодарен, если расскажешь немного подробней, я прочитал сейчас в общих чертах. Если не сложно, то как ты представляешь реализацию. Буду очень благодарен.
>>810310Публика одних задротов каких-то, костыли и тд, я ебу, нежели на яве нельзя захуячить все без этого?.
Как в Maven получить jar-файл?Создал я, например, класс, который выводит в консоль ХэллоуВорлд.Как в IntellijIdea собрать проект?
>>810354>Как в Maven получить jar-файл?Можешь запилить Shade Buildhttps://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html
>>810357Снова XML. Последнее время мне кажется, что иксэмэль файлы за мной следят.Я думал можно как-то типа далее-далее-готово сделать. Мавен же в Идею интегрирован.
>>810359Ну это Java. Я могу ошибаться, но, вроде бы, тебе все равно придется написать xml файл для maven'a. А насчет билда - погугли что-то вроде intellij build maven jar.
>>810335И почему ты думаешь, что Proxy справится лучше чем Worker?
Анон, я читаю туториал, и на моменте https://docs.oracle.com/javase/tutorial/java/concepts/interface.html я нихуя не понял. Я правильно понимаю, что этот самый interface нужен для того, чтобы заставить класс обязательно обеспечить выполнение всех методов указанных в interface? Зачем это нужно, если так?Этот самый interface должен быть сохранен в отдельном файле или прилеплен к методу?Возможно я тупой, но все же.
>>810364Хорошо, загуглю. Ну да, Идея геренирует .pom файл с xml-описанием, но мне кажется, это как-то не руками правится.
>>810354>Как в Maven получить jar-файл?mvn clean package>Как в IntellijIdea собрать проект?Вызовом мавен-таска package
>>810368pom это дескриптор сборки мавена, правится руками.
>>810367>тупой?Да, дуй в ЖС тред, там нету такой хуйни.
>>810367>Я правильно понимаюДа>Зачем это нужноЕсли ты наследуешь интерфейс, то стороннее приложение будет ожидать, что в твоем приложении реализованы определенные методы, указанные в интерфейсе, и будет их вызывать при необходимости. Иначе получится ошибка, когда стороннее приложение попробует вызвать метод, а его тупо нет.мимо-еще-не-вкатился-в-джаву, формошлепы, поправьте, если неправильно написал.
>>810367>чтобы заставить класс обязательно обеспечить выполнение всех методов указанных в interface?Неабстрактный класс, реализующий интерфейс, должен реализовать все абстрактные методы интерфейса.>Зачем это нужно, если так?Если сейчас не понимаешь просто забей, со временем поймешь когда дойдешь до коллекций>Этот самый interface должен быть сохранен в отдельном файле или прилеплен к методу?В отдельном файле, как и классы.
>>810367учи полиморфизм
>>810334Ну что же вы, Бетмены? Поясните за сборщик мусора. И за анонимные классы за одной.
>>810334Создаться-то он то создался, но при следующей сборке умрет, так как на него никто не ссылается.
>>810394А что с анонимными то не понятно, он держит ссылку на объект в котором его объявили, попробуй посмотреть что из себя представляет декомпилированный анонимный класс и все поймешь.
>>810399Если посмотреть на твой ответ со стороны не знающего человека, то это полный пиздос.
>>810400Ну посмотри через призму учебника/гугла. Ну или сходи в js тред.
>>810120Да не мне не надо, я уже отметился. >>810402
>>810398Окей, но тогда почему при вызове сборщика System.gc() экземпляр продолжает жить? И вообще, получается ссылки на все, чему я хочу гарантировать вечную жизнь, должны хранится в переменных экземпляров? Ведь локальные переменные исчезают после завершения метода. Нипанятно короч.
>>810408Сборщик Мусора, пашет сам-по-себе, вот нахуй тебе это? Там всего-то пара никчемных методов. Когда-нибуть вернешься еще.
>>810411Да сборщик - дело второе. Вопрос в том, столкнусь ли я с неизвестными проблемами если продолжу писать так, как продолжу.
>>810408Потому что в Frame возможно хранится ссылка на самого себя же, GUI поток с ним работает и так далее.Если сделать классclass Pidor {Pidor inner;Pidor() {inner = this;}}То сборщик мусора его не уберет.Пока твое окошко маячит перед тобой, то на него что-то ссылается. Его гуй поток отрисовывает, и сборщик мусора его не убьет.Сборщик мусора собирает то, до чего уже из кода программы никак не добраться.
>>806729 (OP)Как вычислить степень, используя только побитовые операции?Например, как вычислить 2^n, используя только &, |, ~, ^, <<, >>,>>>
>>810422Благодарю, уважаемый. Разложил по полкам.
>Сборщик мусора собирает то, до чего уже из кода программы никак не добраться.Забыл добавить, что за редким исключением типо weakhashmap.
>>810426Хотя это вроде тоже не исключение. Пока ты можешь вытащить объект из weakhashmap то на GC ему похуй, а когда не похуй, то и в weakhashmap его уже не будет.
Вот я все думаю, использовать ли эксепшены в паблик методах.Допустим, у нас есть сущность 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()]. Обработка ошибок уже на вызывающей стороне.Какие подводные камни, кроме оверхеда?
>>810428А если кто-то отрицательное число отправит в твой класс?Хуйню несешь какую-то. Выбрасываешь анчекед эксепшон и не ебешься.
>>810430Лолчто? При создании объекта ItemHolderSize, очевидно, он и сделает эту проверку в конструкторе. Если отрицательное отправят, соснут хуйца и не смогут вызвать метод, принимающий ItemHolderSize.
>>810431Чем блядьnew ItemHolder(-10);отличается отnew ItemHolder(ItemHolderSize(-10));?
>>810432>new ItemHolder(new ItemHolderSize(-10));Фикс.Тупой ебанат какой-то, выбрасываешь illegal argument exception со значением размера и тебе потом спасибо скажут.А если делаешь говно под себя, то можешь хоть abs брать и потом ебаться с поиском ошибки.
>>8104321) Не надо в каждом методе проверять диапазон2) Исключение выбрасывает вызывающий метод, а не метод мой библиотекиНу и твое использование высосано из пальца. Обычно это будет:byte[] buffer;try { ItemHolderSize.parse(buffer) } catch () {}
Котаны, в каких случаях поток закрываем только через .close() , а в каких - с добавлением .flush()?
>>810439>Не надо в каждом методе проверять диапазонТы в конструкторе не можешь выкинуть исключение? Ебанат?
>>810439Вот тебе еблан пример, как надо поступать.Вызови new ArrayList<>(-10);И глянь как умные люди делают.
>>810443Блять, это простой пример был.Вот конкретно. В конструкторе проверили size, ок. Но у нас еще есть геттер, сеттер, хуетор, каждый из которых принимает slotId. И каждый раз приходится проверять диапазон slotId. Даже если эту проверку в отдельный метод isInRange() вынести, это все равно хуита.
>>810453Ещё раз, смотришь исходные коды колекшонс фреймворка и учишься, даунич.
>>8104231 << n
>>810460Ну и это лал, что сказать. Если с тем же аргументом вызываются несколько сетов или гетов, будут лишние проверки.
>>810469Ты серьезно думаешь, что 2 сравнения примитива в инлайнящемся блоке медленнее чем вызов гетера из твоего класса-обертки?Какой же ты мудель, ой блядь.Тебя ещё обоссать надо за дрочку на скорость.
Анон, я походу ебусь в глаза, но где тут идей тред? Вроде раньше был, а сейчас не могу найти.
>>810483Конечно-же внутри джава треда.
>>810478>чем вызов гетера из твоего класса-оберткиТоже инлайнится, только без лишних проверок. Мой вариант быстрее почти всегда.Тут дрочка не на скорость, а на качество кода. Гораздо приятнее видеть в примитивных методах саму их суть, а не какую-ту хуиту вроде ckeckRange(), повторяющую в каждом из них.
>>810483А как тебе такая идея - ИДИНАХУЙЖУЕБОК >>719798 (OP)
>>810483>>719798 (OP) этот?
>>810366Потому что Worker - просто обрабатывает данные и сохраняет их. Мне же надо скрыть местоположение этого воркера от api сервера. Не суть зачем, просто спрашиваю рекомендации. Анон написал про шину предприятия и прочие тулзы для интеграции платформ, но я не совсем концептуально понимаю, что он хотел мне этим сказать.
>>810488>>810487Да, спасибо. Макака заговнила поиск.
>>810440flush используется в процессе работы с потоком, close неявно вызывает flush перед закрытием
>>810489Ты можешь применить паттер consumer-producer с помощью BlockingQueue, и сделать так чтобы прокси брали результаты выполнения волкеров из этой самой очереди. Если еще больше абстрагироваться, ты можешь заюзаать для этого ExecutorService. Пролистай два или три треда назад, я уже объяснял это одному анону недавно, как ознакомишься задавай вопросы.
>>810498Про все это я знаю. Тут вопрос в другом. Есть ли какие-нибудь продвинутые технологии для этого? Создать список проксей и как-нибудь его мэтчить - никаких проблем. Другое дело, решение очень костыльное будет, как по мне.
>>810503Если уж быть до конца честным, я не понял что ты вообще хочешь. В частности, я не понял этих странных фраз:>скрыть местоположение этого воркера от api сервера.>я хочу, чтобы он шел через Proxyчто ты имеешь ввиду под Proxy - сервер или какую-то сущность?>На самом деле, план такой. Воркер генерирует запрос без ключа, передает его Proxy Controller, а тот в свою очередь уже выполняет запрос через определенный proxy, но ещё и добавляет необходимый API KEY, а ответ уже передает обратно воркеру. т.е. ты хочешь чтобы worker работал на два фронта: генерировал запросы и принимал результаты от ProxyContainer-а?Если я тебя правильно понимаю, ты хочешь чтобы воркер и прокси ассоциировались как один к одному, так?Тогда почему бы тебе не выделить интерфейс из прокси и научить воркера работать с этим интерфейсом, а конкретную реализацию подпихивать в конструктор воркера при каждом создании воркера? IoC или DI хз как по-умному. Воркер не будет знать ничего про реализацию твоего прокси, только про интерфейс.
>>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 серверу. Получает ответ и отправляет его обратно воркеру.
>>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-ом.
>>810549В этом и проблема. У меня в воркере довольно много аналитики идет. Есть несколько причин, почему я хочу отделить Proxy от Worker, так как через прокси пойду разные запросы (и не все воркеры их смогут обработать). Во-вторых, я хочу организовать микросервисинг с эндпоинтом, который будет собирать статистику. И вообще все на Spring переписать, так как по ощущениям - ебусь с гвоздатым дилдаком. Другими словами нет никаких библиотек, которые помогут мне это организовать?
Нахуя делать дефаулт методы в интерфейсах? Разве это не порождает проблемы множественного наследования?
>>810621Поэтому их совсем немножко добавили, там где без этого нельзя.К примеру: у Scala в Iterable 116 дефолтных методов, а в Java завели отдельный класс Stream.
>>810621Если дефолт метод реализован то дефолт реализация скрывается. Никаких проблем нет.
>>810621>Нахуя делать дефаулт методы в интерфейсах?Видео 1>>810651>Никаких проблем нет.Ну несовсем (Видео 2)
>>810673У меня от этих видео МЕТОД ФУ и ИНКОМПАТИБАЛ ЕРРОР.
rебята, посоветуйте какой-нибудь пак для веб-приложения что-то типо http://www.ibm.com/developerworks/ru/library/j-appfuse/index.htmlдля создания простого приложения для такси, для себя, недавно начал изучать джаву. Просто не знаю в какую сторону гуглить
>>810549http://stackoverflow.com/questions/38707795/building-proxies-hubЯ накатал вопрос ещё раз, только он, к сожалению, на английском. Может быть, будет понятнее, чего я хочу.
>>810759Накатай реализацию а мы посмотрим что там хуево. А может и сам увидишь.
Пришла в голову идея перенести java EE 7 приложение из ear-ки под wf в osgi контейнер karaf.Веб часть с jsf на spring переписать.ejb + jpa видимо тоже на spring спортировать.таймерные бины тоже реализовать как то внутренними средствами.Какие профиты кроме изучения новых технологий?
>>810621Проблемы множественного наследования возникают при наследовании классов. У интерфейсов нет внутреннего состояния, и с этим проще.
>>810849>Какие профиты кроме изучения новых технологий?Spring не нов.
>>810851Я про osgi и формирование бандлов под негоДо этого я только с JЕЕ работал.
>>810849Как по мне так переливание из пустого в порожнее. Кроме как для изучения таким заниматься щитаю не стоит.
27 мегабайт на это окно, охохоохох.)
>>810901ДЖАВАЖАВАЭКОНОМНАКОНОМНА
>>810901Фу фу нахуй.Это что такое? Windows XP?
>>810901чет мало
Посаны, в этом есть какая-то логика или это ошибка разработчиков языка?http://ideone.com/ki21LG
>>810381
>>806805Use assert, Vader.
>>810932String x = "qwe";String y = x; 1 раз присвоил и сьебалx = "asd"; поменял х, у равно qwe//y = x;mycode, присвоил y'ку новый иксSystem.out.println(y);
>>810932Строки неизменяемым, x и y - ссылки на конкретные объекты. При присвоении двигается сама ссылка. Если тебе нужны алиас к имени переменной, то в джаве их нет.
>>810945Зачем присваивать значения одной переменной к другой переменной, они же будут иметь одинаковые значения, зачем?
>>810945Я это знаю. Но это уже реализация, она не должна влиять на логику выполнения. По логике при присваивании любого объекта должна просто присваиваться ссылка, объект не должен копироваться. Строка это объект. Я знаю, что на самом деле строки не копируются, а там просто ссылка ставится, потому что строки иммутабельные, но это уже реализация, а с логической точки зрения они копируются.
Кто хостился на heroku? Какие у них условия виртуализации, типо сколько мне будет выдано озу, hdd, трафика и прочего? У них на сайте не могу информацию найти.
>>810969что куда копируется? была ведь строка "qwe", на нее, т.е. на один объект, ссылались две переменные x и y, ты изменил содержимое x, теперь создалась новая строка "asd", но y-то продолжает ссылаться на "qwe"
>>8109817 баксов в месяц самая дешевая подписка https://www.heroku.com/pricingОЗУ там же. Максимальный допустимый обхем jar-ника емнип 300 мб, а статик контент хранить на хероку вообще нельзя из-за его микросервисной природы, если ток юзать cdn какойнить. Алсо можно бесплатно пользоваться если у тебя будет бот который будет твой сайт дергать раз в 30 минут.
Аноны, я так понял в джаве нет просто функций, а только классы и методы? Вот мне понадобилось рандомное число. В пхп я знаю есть ф-ция mt_rand(). А тут для этого надо новый класс создавать?
>>811043Math.random() округлишь до целого сам.Или напиши функциюfun mt_rand() = Math.random().toInt()
>>811043Функции = методы. Привыкли к своему JS бля.
>>809754Разница примерно как между говном и мочёй.
Анон, подскажи, как запилить тунель через проксю в Java. setProperty - не вариант.
>>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 отработал, отправил данные в эту шину, а дальше что?
>>811272>Однако мне не совсем ясно принцип хранения и передачи информации. Кемл и не хранит данные нигде сам. Он их только отрабатывает. Так что тебя ждет еще очередь activemq.А что за хуйню там ты с проксями себе понавыдумывал, я не понялл.
>>811274Как я выше писал - мне нужно отправлять запросы через разные прокси. Я знал про System.setProperty, которая позволяет задать host/port, но мне надо чтобы на одной машине использовалось сразу несколько прокси-серверов.
>>811275Я не знаю, когда я слышу прокси и http, мне на ум приходит nginx. Но точно не java. При чем там систем проперти я вообще не понял.
>>811275Олсо, вопрос про endpoint'ы. Я хочу всю мою хуйню переписать на Spring. В частности в проекте есть воркеры, proxy_controller, веб-морда и т.д. Все это оформлено в мелких *.jar файлах, которые выполняют каждый свою задачу. Куда гуглить, анон?
>>811279>Все это оформлено в мелких *.jar файлах, которые выполняют каждый свою задачу. Куда гуглить, анон?Ты сначала реши зачем ты что-то делаешь, а потом уже гугли. "Хочу на спринг" - это глупость какая-то.
>>811278Ну смотри. Есть удаленный api сервер. Я хочу к нему подключиться. Вариант первый: Я подключаюсь к нему напрямую. (Ну думаю никаких вопросов)Вариант второй: Я подключаюсь через proxy сервер (сервер между моей платформой и api сервером). Меня интересует второй вариант. Соответственно, воплотить это в жизнь можно: https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.htmlЛибоВ Java 1.5 + появился класс Proxy, через который можно работать.
>>811284>Вариант второй: >Я подключаюсь через proxy сервер (сервер между моей платформой и api сервером). При чем здесь java? Я вот чего не понимаю.
>>811284Ты собрался с десятю апи ключами тягать данные с гугл мапс что ли?
Как лучше удостоверить, что нельзя создать больше одного объекта с определенным значением поля (guid)?То есть в идеале мы могли бы десериализовывать объект из базы в конкретный объект в памяти.
>>811350> нельзя создать больше одного объекта с определенным значением поля (guid)?GUID внезапно уникальны.> То есть в идеале мы могли бы десериализовывать объект из базы в конкретный объект в памяти.Берешь и десериализуешь. Все.
Я нипонил, тут че нильзя циклом хуйню в массив захуячить?
>>811381Не, это же ДЖАВА.
>>811382А как же его тудой?
>>811381В смысле хуйню в массив захуярить? Форичем конечно нельзя, простым for (int i = 0; i , n; i++) конечно можно.
>>811389А под фор чегой писать? Add?
>>811394hui = pizda;
>>811409лол, скобки сожрало hui[ i ]
>>811409
>>811290Ну типа того. В целом именно к этому и сводится. >>811287Несколькими постами выше я спрашивал: бля, анон, придумал хуйню. Есть ли идеи какие-нибудь. Ничего не ответили. Если у тебя есть идеи, как сделать ассоциацию token => proxy[host/port] без кучи серверов и без использования Java, то буду безмерно благодарен, если расскажешь об этом. Так как желания ебаться с этим вообще нет никакого. Однако другого решения я не вижу. Мало того, что мне нужна связка proxy=>token, так как на другом ip токен считается недействительным, так ещё и proxy могут дохнуть, их нужно отлавливать, досыпать новые и т.д. Я не представляю, как сделать это без собственной реализации. >>811282Окей. Разъясняю. На данный момент есть несколько десятков воркеров (это именно виртуальные машины, на которых запущены приложения, которые делают запросы и обрабатывают их). Работает все, конечно, заебись, но недостаточно. Сначала возникла необходимость разворачивать и убивать их автоматически. Можно через cli какой-нибудь делать, но это все равно ручной труд. Захотелось кнопочку в веб интерфейсе, которая все сделает за тебя. Затем возникла проблема: а что если воркер сдыхает? Надо его перезапустить. Надо допилить кнопочку, которая перезапускает. А как понять, что воркер сдох? Надо чтобы он отсылал статистику. Как это делать? Ну какой-нибудь Rest API, который сообщает состояние. В итоге таких кейсов набралось дохуя. Я стал гуглить, а что же есть в Java, чтобы из коробки сделать быстро и эффективно приложение с Rest API, но так чтобы много не ебаться. Нашел Spring, который решает всю мою боль. Подкупили их туториалы, которые обозначают required time: 15 minutes. Почитав, я пришел к выводу, что прямо сесть и поехать - не выйдет и придется разбираться. Однако альтернативы придумать не могу. Следовательно, возникает вопрос: а как вообще организовать разворот всего проекта: воркеров, прокси, базы, etc? Решил спросить тут.
>>811394Ты куда пихаешь и что блять? В массивы нельзя пихать, они не ресайзятся, ты им один раз место выделил и обращаешься по индексу. В списки можно добавлять с помощью add(obj). Можно вставлять внутрь списка по add(int, obj), но только если у коллекции УЖЕ такой размер, причем не зарезервированный, а именно использованный. Так что если тебе просто заполнить список то просто add().final List<Integer> list = new ArrayList<>(10); //10 это резерв, а не размер, размер равен 0for (int i = 0; i < 12; i++) list.add(i);Теперь размер 12, а зарезервированно скорее всего больше, зависит от реализации.
>>811433Годно расписал, а можешь так только компаратор?
>>811433
Вот есть parent класс и child с override паблик методами, которые вызывают методы родителя через super. Где проверять входные аргументы и бросать исключение: только в parent, в parent и child или только child?
>>811444А что про него писать-то? Интерфейс с методом который сравнивает для объекта и должен вернуть отрицательное число если первый меньше второго, 0 если равны, и положительное если первый больше. По сути это создание отношения по какому-то признаку. В восьмой джавке добавили дефолтный метод equals, хз зачем, он кажется просто проверяет что результат сравнения равен 0. Ах да, аргументы на налл можно не проверять, ожидаемое поведение что туда не будут передавать наллы, а если передадут то он упадет с налпоинтерэксепшн. Используется во время сортировок в основном.
>>811428Анончики, вы хоть скажите, что я долбоеб или дайте совета. Без фидбека очень тяжело сидеть. Я уже просто в объемах документации теряюсь. Скажите, что не понятно - я схемы всякие нарисую, объясню, что хочу сделать и т.д.
>>811428> а что если воркер сдыхает? Надо его перезапустить.Не надо, он просто ловит все исключения и логгирует.> А как понять, что воркер сдох?Поймал исключение или 4xx/5xx ошибку от сервера.> Ну какой-нибудь Rest API, который сообщает состояниеПиши все операции в БД.> воркеровПросто очередь runnable.> проксиВ БД с вебуем для круд операций.> базыВ фоне крутится pg/maria. В приложении только миграции.
>>811566>>811590
>>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, который дирижирует этим цирком уродов. Идея с шиной предприятия мне очень понравилась, так как как раз этот роутинг очень и очень нужен, чтобы приложения могли общаться между собой.
>>811637Допустим ты даже не пиздишь про свою криворукость в качестве дата моделера.Допустим ты все уже денормализовал и использовал все нереляционные фишки PG.Разбей БД на админскую и доменную.Для апдейтов используй NativeQuery или JdbcTemplate, а не ORM.Пиши только конечный результат в БД. Промежуточный результат храни в памяти.> их нужно иногда выключать, когда обрабатывать нечегоОдна задача - один runnable, который сам завершается после очередной операции. Его поток возвращается в пул. При добавлении в очередь следующей задачи, стартует новый runnable> С прокси вообще отдельная тема. Token, который завязан с proxy, имеет несколько состояний, которые мне крайне необходимо знать.Ну и в чем именно проблема? Просто выдели это все в отдельный класс, который будет решать маппить хост/токен на прокси адрес при помощи простых предикатов.И что тебе по ESB не ясно?
Подскажите тупому, можно ли привести bollean к числовому типу? К байту там, или к инту?
>>811648блять, boolean
>>811648>>811649NEEQAQUE
>>811651SOOOQUAAAТретий день учу язык, а тут уже такие подляны, по простому тестовое задание не зафигачить, а лишние 20 строчек кода писать в программу из 30 строчек не хочется.
>>811653Это делается тернарным оператором в одну строчку - какие нахуй 20 строк? И это даже типобезопаснее какого-то там каста.
>>811654>тернарным Это мы не проходили, это на не научили. Я так понимаю, надо уже описанными в предыдущих главах методами делать. Но слово это погуглю, да.
>>811658> Сперва пишет на двач, а потом в гуглКак-то не очень у тебя перспективы, другой вкатывальщик
>>811661Я погуглил, но нигде не увидел надписи БУЛИН НЕЛЬЗЯ В ЧИСЛЕННЫЙ, поэтому уточнил.
>>811663Я вообще про "тернарный" и неважные навыки в поиске информации.А вот и смотри, первая ссылка в гугле:stackoverflow.com/questions/3793650/convert-boolean-to-int-in-java
если что не бейте а лучше обоссытепишу простейшие хелловорлды, и ни еклипс ни идея не распознают system.out.printlnв system path путь к jdk и jre прописал. такое ощущение что то ли иде-шкам нужно где-то явно указать пути к этой оракловской залупе, то ли при создании класса нужно проимпортить что-то (пробовал java.lang.io, но хуй там плавал)мб тут кто подскажет, что я делаю не так?
>>811678Может быть ты System с маленькой буквы пишешь?
>>811679и с маленькой и с большой - один херctrl+space не дает никаких вариантов после того как точку ставлюsystem. - и тут вот он по идее должен предложить мне и ауты и хуяуты (как например на работе) - а хуйнанэ
>>811681Ну, ты в любом случае только с большой пиши. С маленькой он не воспримет. И компилируй через командную строку пока, не запаривайся с иде. Я два учебника параллельно штудируют, в обоих советуют компилировать через цмд. тоже только вкатился
>>811682спасибо, попробуюно если кто вдруг подскажет, как через иде это настроить - будет вообще волшебно
>>811682>>811684клоуны блять из под консоли компилируют, небось еще в блокнотах код пишете
>>811687в хуекнотахпо делу может скажешь чего?
>>811694>>811678Ну так и пропиши в проекте IDE путь до JDK, хуле ты?
>>811637Странно что вроде все знаешь все умеешь, а банально вопрос сформировать не можешь
>>811428>Следовательно, возникает вопрос: а как вообще организовать разворот всего проекта: воркеров, прокси, базы, etc?D O C K E ROCKER>>811642>Допустим ты все уже денормализовал и использовал все нереляционные фишки PG.А может ему в сторону нереляционного чего и взглянуть? Правда хз, что у него там за данные.>Для апдейтов используй NativeQuery или JdbcTemplate, а не ORM.Я думаю, что у него там вообще jdbc.
>>806729 (OP)Не берут джава-разработчиком из-за того, что пока что мало знаю. Может, вкатиться в тестировщицыки?
>>811694DA TI OHUEL.
Пачаны косольки принес.
>>811840Вопросы какие?
>>811862java core ещё не осилил. Понимаю, что справедливо отказывают, но хочется УЖЕ начать работать, хоть стажером. Заебало сисадминство в край.
Привет аноны, к вам нуб пришел.Есть у меня небольшое веб-приложение. Ясное дело, на джаве.Нужно сделать так, что-бы это приложение слало POST/GET запросы на сервер, и обрабатывало полученные данные. Хочу слать запросы с помощью HttpURLConnection. Будет работать?
>>811866Не осилил на сколько? Чем закончил?
>>811876Если правильно сделаешь, то будет.
>>811894Потоками.
>>811906LoooooL.
>>811911Ты для этого задал вопрос?
>>811912Да. Как можно не осилить java core и искать работу? Ты же понятия не имеешь, что тебе там делать. И сисадмин ты походу такой же, как и погромист.
>>811912Нет, ну надо хотя бы фреймворк выучить или еще че.
Там какой-то ебан хохол сказал что джаву нельзя самостоятельно выучить, всю мне мотивацию убил урод сука. Теперь только на данбас ехать остается.
>>811966Ну ты и лолка.
>>811973Он наебщик, да? Да?
>>811977Можно конечно самому выучить. Ток если с тебя такое сбивает мотивацию, то похоже ее у тебя не очень много.
>>811927Ясно-понятно. Видал я таких умников. А потом выясняется, что критикан вообще сам по знакомству в ИТ попал. Зато гонору хоть отбавляй.
>>811985Прост мозг у меня бздливый, все время хочет оптимальный путь найти, а тут ниебаца гуру такое в щи заявляет.
>>811933Я есть хочу сегодня. Фреймворк выучу по ходу дела.
>>812011>Я есть хочу сегодня.Ну так иди у мамки борщ наверни>Фреймворк выучу по ходу дела.Как же раздражают такие посредственности в IT (вчера он был дворником, а сегодня еба-программист).Иному работодателю проще нанять 10 мартых без мотивации и работающих за жрат, чем пару тройку толковых ребят.Спасибо хоть что в Java вкатываешься, хоть не пересечемся никогда.
>>812038>не пересечемся никогдаВ верстку укатился?
>>812038>вчера он был дворником, а сегодня еба-программистОбычное дело в IT. Говоришь, как будто что-то плохое.Ты, похоже, с завода капчуешь.Ещё скажи, что если не в Москве родился, то все, шансов нет никаких.
Суп, как пофиксить окно и окна при запуске ПРОГРАММЫ, у меня просто они вылязят в левом верхнем углу? Короче положение в центре экрана, как сделать?
>>812075заебали с такими тупыми вопросамисука, сразу видно что знаний нольуебывай в жс тред сука
>>812080>>812075Все понял котаны, не надо JS, больше нибуду.метод: setLocationRelativeTo(null);
>>812085сукакому какое дело что это за метод блятьдаун блять подавать метод не указывая даже из какой библиотеки, информативности НОЛЬ сука, да хоть пусть setUrMumAnus(null), нам то какое дело сука, уебывай
>>812092
Расскажите кулсторей, как вас с одним джавакором взяли на работу.
>>812075Почему ты формошлепную хуйню не поставил?
Тут есть анон разбирающийся в GLSL?
>>812107Оно же не оче код делает или норм? Да и пока ручками все полезно же.
>>812130ну если ты на говносвинге сидишь, то да неоч
>>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.
>>812152>Дальше у меня вообще начинает полное непонимание, как в этот процесс вступает Camel.http://pastebin.com/mNBam88DВоркеры отработанные впихивают в другую очередь и ты оттуда их забираешь. Как-то так.
>>812170Camel - всего лишь кучка библиотек, которые помогают тебе связать твои процессе в систему. Он позволяет тебе описывать эти связи чуть проще, чем если бы ты это делал руками.
>>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 и использует его?
>>812177Я же там написал - всего лишь кучка библиотек. Т.е. кому нужны его фишечки - тот о нем знает. А кто-то просто в очередь напихивает данные. Или еще что.Каналы же универсальны, их можно и без кемла использовать.Отдельным сервером же в этом случае будет скорее activemq.
Я так понял, что вкатывальщиков уровня хллоуворлд тут кроме меня ещё несколько есть. Давайте сделаем небольшую конфочку. Кто то что то луче других понял, сможет дать совет, кто то заметит пробел в своих знаниях и выучит что-то новое. Кто за?
>>812186ага ага прокрастинатор ебаный, катись в свои конфочки прокрастинировать там
>>812196а лучше съеби в ЖС тред, там все просто и учить много не надо
>>812196Спасибо за ценнейший совет, тебе тоже всего хорошего.
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.5error: multi-catch statement is not supported in -source 1.5Что мавен от меня хочет? Гуглил, ничего не понял.
>>812207>error: try-with-resources is not supported in -source 1.5>error: multi-catch statement is not supported in -source 1.5http://stackoverflow.com/questions/16723533/how-do-you-specify-the-java-compiler-version-in-a-pom-xml-fileСкажи мавену, что ты в 2016 году живешь.
>>812211>2k16>mavenне сдержался
>>812214Так говоришь, будто есть что-то значительно лучше.
>>812184То есть я каждой сущности при помощи camel описываю, как работать с очередью? Типа Proxy получает ответ. и делает что-то типа from(...).split().to(response-qeue); //ещё до конца не прочитал. Воркеры чекают очередь и вытаскивают из них данные, обрабатывая их. Другими словами, я могу не ебаться и взять Amazon SQS? А есть ли возможность какую-нибудь фишку с нотификацией провернуть? Типа чтобы воркеру сообщали о том, что есть сообщение в очереди? А можно ли пачками данные оттуда тянуть? Лучше пилить каждому воркеру по очереди или одну большую очередь на всех воркеров?
>>812211Спасибо
>>812216ggggggra
>>812226Олсо, шина данных это какое-то абстрактное понятие или что? В чем она выражается?
>>812211Почему он по умолчанию это не может сделать? Мне все время приходится это руками писать.
>>812240потомушта мавен
>>812211<maven.compiler.source>1.8</maven.compiler.source>
>>812237Блядь, вот хоть убей - не могу понять концепцию. Я так понимаю, что проще всего мне стоит создать Camel-service, который описывает все роутеры в формате from().to();Блядь, не. Я нихуя не понимаю. Как запилить ебучий транспорт для моих воркеров?
>>812226>Другими словами, я могу не ебаться и взять Amazon SQS?Ты не поверишь. http://camel.apache.org/aws-sqs.htmlЕндпоинты в кемеле - это абстракция. Что там за ним: активмку, амазаон, фтп или соап - тебе наплевать. Ты просто указываешь откуда взять, что сделать и куда передать.>А есть ли возможность какую-нибудь фишку с нотификацией провернуть?Зачем? Ты написал from(endpoint).to() и все. jms за тебя разберется с нотификацией.>Лучше пилить каждому воркеру по очереди или одну большую очередь на всех воркеров?Смотря какая у тебя задача, очевидно же.А вообще - погугли. Твои вопросы гуглятся достаточно легко.
>>812267>Блядь, не. Я нихуя не понимаю. Как запилить ебучий транспорт для моих воркеров? Да используй jms. Это и будет твой транспорт. А чтобы проще с ним работать и описывать поток хождения данных используй кемл. Просто либа, которая облегчает тебе жизнь.
>>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, которые выполняют свой стэк задач.
>>812287Другими словами, я хочу организовать платформу по linux way. Каждый компонент решает только одну задачу и о других компонентах не знает, а также быстро заменим.
>>812291те ты под отдельный тип задачи отдельный сервер выделяешь? нахуя?
>>812293Ну потому что маштабировать надо. Workers/Analyze я могу сложить в докер на одном сервере. Не суть.
>>812105Взяли полгода назад так в бодишоп стажером.
>>812295>>812287Или это совершенно не тот стэк, который мне нужен?
>>812287Кто во всем этом начинает процесс? Кто делает запрос?
>>812304Да, я немного сократил схему. Сначала Access token storage пытается получить токены у сервиса. То есть запрос идет к Proxy. Затем, после того, как хоть один токен получит, включается Producer, который генерирует запрос и передает его в Proxy. Proxy подписывает запрос токеном и выполняет его через конкретный proxy-server.Полученный запрос идет в обработку воркерам, которые смотрят, что там им прислали. Если в ответе есть ошибка, то они отсылают объект обратно, Proxy передает запрос повторно. На самом деле я пока не знаю, как это корректно сделать.Если ошибки нет, то просто сохраняем в файлик\бд.
>>812319>Если в ответе есть ошибка, то они отсылают объект обратно, Proxy передает запрос повторно. у меня плохо предчуствие
>>812320Почему? Я просто буду подсчитывать количество ошибок у каждого токена и убивать его если это будет большое число.И все же, возвращаясь к вопросу - хули делать-то?
Что за рефлексию годного почитать? Только не общего "привет хабр, сегодня мы напишем как приватное поле класса сделать setAccessible, пишите комментарии))", а обстоятельный труд.
Че запрогать в рамках обучения джавакору? Не хочу отдельные неинтересные таски. Нужна наверное какая-то простая игрушка с кучей бесполезных фишек и по такому-то паттерну, не?
>>812412> Че > запрогать Javascreept zaprogay, pes.
>>812403Пару глав в Шилдте можешь почитать.
>>812423Шилдт академическое говнецо, бесконечно далекое от реального и современного мира. Ты уверен, что там нормально?
>>812424А сами рефлексии не академ говно? Или же это ништяки для хуцкера? хз-хз
>>812434Ну, в ежедневной работе каждый день не нужно, но уж точно не> академ говно> ништяки для хуцкераВот прямо сейчас юзкейс подгоню. Метод, который принимает класс и над нужными полями делает грязные вещи. Конкретнее, допустим есть возвращаемый доменный обжект из базы. Но идентификаторы ты хочешь не long id, а PK + адрес мамаши ентити в бд. В случае идентификатора сущности в базе можно без рефлексии. А если хочешь, чтобы все было автоматически и делалось над всеми идентификаторами в классе, то без рефлексии не обойтись.
>>812453> принимает объект
>>812453Я тоже когда-то угорел по рефлексии. Но в итоге - это все для фреймворков и библиотек. В рабочем коде это только скатывает твой код в говно, которое никто, кроме тебя не понимает.
>>812551Есть такое, мысль здравая. Но все же хотелось знать побольше, чем нафига нужно, где используется и причем тут setAccessible. Не то чтобы нужно, но для общего развития пригодится. Сам что наворачивал?
>>812559Всякой фигней занимался. Но если тебе интересно посмотреть на неё в действии - посмотри на внутринности спринга. Его вайринг бинов по аннотациям - самое оно.
Сап. Есть один я, который на пробу пилит веб-приложение на 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 вообще, не изменяется ничего.С меня как обычно.
>>812644Берешь Spring Boot - там уже есть AutoConfiguration для Thymeleaf из коробки.Можешь попробовать навесить Primary поверх Bean у template engineМожешь задать другое имя для template engine и инжектить его в другие фасолины.
>>812659Проще выучить js.
>>812644>>812671Нахуя в вебе нужна эта сраная джава со спрингом?
>>812644Судя по тому, что у тебя эти методы серым идея подсвечивает, ты их и в контекст то не добавил. Это твой основной файл конфигурации?
Че-то шиндовс експлорер подвисает при отрисовке.
>>812762while true { рисуем линию}?
Я опять не могу разобраться с тестированием. Суть токова: есть SpringBootApplication, у этого приложения есть RestController, в котором указан Autowired сервис. Этот сервис в тестах надо заменить сервисом-заглушкой. Разумеется, я загуглил как это сделать, но так и не нашел решения, всякие подходы с InjectMocks не сработали.Вопрос такой: где-нибудь на гитхабе есть полный рабочий пример springboot-приложения с тестированием, где я увижу, как правильно инжектить сервисы?
>>812858А что ты в контроллере тестировать собрался? Там же логики нет.
>>812861Логики там действительно нет, обработка запроса сводится к "yobaService.process(request);". Но чтобы все удобно тестировать, мне надо разобраться, как этот yobaService в контроллере подменить сервисом-заглушкой.
>>812880Так и пиши тест на yobaService.А про InjectMocks - ты поставил @RunWith(MockitoJUnitRunner.class) над классом теста?
Деплою веб-приложение. Приложению нужны кое-какие файлы для работы. Куда их помещать чтоб они задеплоились и какой путь прописывать в коде?
>>812897>Так и пиши тест на yobaService.Похоже, тебе не ясна суть проблемы. Внутри yobaService может быть fizzBuzzService который я хочу подменить еще одним стабом — как быть тогда? Вот в этой замене суть вопроса, а не в том, какой класс я тестирую.>А про InjectMocks - ты поставил @RunWith(MockitoJUnitRunner.class) над классом теста? Я проверял два варианта: с MockitoJUnitRunner и с SpringJUnit4ClassRunner+MockitoAnnotations.initMocks(this) в @Before-методе. В первом случае не автовайрится WebApplicationContext, во втором не инжектится заглушка.
>>812920>Похоже, тебе не ясна суть проблемы.Это тебе не ясна суть проблемы. Юнит тест тестирует один класс за раз. Если ты заменил yobaService моком, то ты никогда и не доберешься до fizzBuzzService.А если ты пилишь интеграционный тест (на контроллер, боги), то там совсем другой подход.>В первом случае не автовайрится WebApplicationContextЭто что вообще за пиздец? Кто же контекст вайрит?
>>812929>Это что вообще за пиздец? Кто же контекст вайрит?Ты меня траллировать пытаешься?http://docs.spring.io/spring/docs/current/spring-framework-reference/html/integration-testing.html#testcontext-ctx-management>А если ты пилишь интеграционный тест, то там совсем другой подход.Хорошо, что ты напомнил мне, что это называется интеграционным тестом. Я нашел нужную подсказку в документации и прописал класс конфигурации в самом тесте — работает как надо. Ура.>(на контроллер, боги)И что же не так с тестированием контроллера? Мне надо убедиться, что определенный POST-запрос возвращает определенный ответ — я это и тестирую.
Бля, анон, как подключить к camel базу postgresql? Только не через Spring синтаксис, ибо spring не использую. А примеры исключительно на spring.
>>812846Не, прост много линий, да и вообще слабо че-то.
>>813068Там же вроде просто синтаксис околоспринговский, а сам спринг он не вынуждает использовать.
>>812659Вот, проблема в Spring Boot, как оказывается; он как раз и перекрывает мою конфигурацию. Отключил автоконфиг Thymeleaf-а - всё работает как должно. Спасибо.>>812741Идея коммьюнити, так что она просто не видит, что это bean-ы спринга.
>>813101>Вот, проблема в Spring Boot, как оказывается; он как раз и перекрывает мою конфигурацию. Отключил автоконфиг Thymeleaf-а - всё работает как должно. Спасибо.Это вообще дрянная особенность Boot'а. Чуть подключаешь какую зависимость - сразу надо чекать "а нет ли там автоконфига, из-за которого все не будет работать".
>>813103А нет ли какого-нибудь способа проверить, какими классами конфигурации спринг воспользовался?
>>813105Что-нибудь такое может быть @Bean public static BeanFactoryPostProcessor postProcessor() { return beanFactory -> beanFactory.getBeansWithAnnotation(Configuration.class).forEach((s, o) -> log.debug("config {} => {}", s, o)); }Я бы попробовал, но ухожу уже.
>>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-ов нет, то не падает.
>>813147Ну ты же суть понял. Влезть в создание бинов и залогировать.
>>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, тогда при старте в логе будет показано какие автоконфигурации включены, какие отключены.
>>813168Не всегда удобно, не всегда подходит, не всегда знаешь вообще, что есть автоконфигурация.
>>813172> Не всегда удобно, не всегда подходитВ этом случае подходит.> не всегда знаешь вообще, что есть автоконфигурацияРеференс читать нужно.
>>813174Даже более: этот случай как раз тот, ради которого придумали spring boot.
>>813160Всё, с этим разобрался.Теперь новая проблема. Есть Gson, который подключен к проекту. Jackson-а нету. Бины Gson-а инжектятся правильно, GsonHttpMessageConvertersConfiguration срабатывает, GsonHttpMessageConverter инжектится с правильным Gson-ом.Однако, оно не используется, если контроллер отдаёт, собственно, JSON (JSON-таки отдаётся, но при этом преобразуется не с помощью прописанного мной Gson-а). Работать начинает, если прописать configureMessageConverters(), но судя по тому, что HttpMessageConvertersAutoConfiguration также срабатывает, и при этом ещё и зависит от GsoHttpMessageConvertersConfiguration, Spring Boot должен как бы сам подхватывать.Что делать-то? Оставлять configureMessageConverters(), или есть какой-то способ ткнуть Boot мордой в то, что ему надо делать?
>>813274Не изобретай велосипед и уж точно не используй говносипеды и фреймворки для запуска фреймворков потому что мы слышали, что ты любишь фреймворки, поэтому мы сделали фреймворк, чтобы ты мог использовать фреймворк, когда используешь фреймворк. Выбрось нахуй этот жопорожденный спринг бут и забудь о нем. Он должен был сделать работу со спрингом проще, но по факту он лишь ее усложнил из-за лишней прослойки с концепцией черного ящика на боку которого какой-то шутник нарисовал большой дружелюбный смайлик.
>>813356>Выбрось нахуй этот жопорожденный спринг бут и забудь о немЗря ты так. Вполне неплохая штука для хеллоу-веб-аппликатион.
>>813443Вообще ни разу. Цель хеллоу х не увидеть хеллоу х, а разобрать по частям тобою написанное и сделать соответствующие выводы для себя.
>>813449Я не про учебу. Для учебы неплохо бы начать с xml-конфигурации спринга. Самая верная и идеологически правильная. Чтобы понимать, что вообще происходит.
Лямбды используются только с интерфейсами?нюфаг
>>813461Ты хотел спросить могут ли они заменять только интерфейсы с одним методом (не считая дефолтных)? Да только их.
>>813492Именно. А почему они не могут заменять также классы с одним методом? Потому что ТАК ЗДЕЛОЛИ, или есть какое-то функциональное ограничение, в силу которого это невозможно?
>>813512Абстрактные классы несут другую идеологию нежели интерфейсы.
Хочу запилить тетрис на 2х. Какой стек выбрать?
>>813595Spring + Hibernate. Еще посомртри в сторону Spark/Hadoop.
>>813595NodeJS + MongoDB
>>813622Спасибо, уже ушел.
Анон, недавно взялся изучать ООП и джаву в частности, возник такой вопрос(возможно я не правильно формулирую):Как правильно реализовать неограниченную вложенность объектов? (не технически, а сам алгоритм)На пикрелейде пытаюсь сделать нечто подобное виртуальной папки. Т.е Папка, в ней могут быть другие папки или файлы, при этом сама папка тоже может быть в другой папке.Я двигаюсь в правильном направлении, или совсем хуйню сделал?
>>813825Ну тип хранишь все в коллекциях, дохуя неограниченно, в каждой папке есть коллекция папок и ссылка на родительскую дирректорию.Мимонуб
>>813825class File {String name;}class Dir extends File {List<File> content;}Хуле тебе еще надо, блджад?
Че-то про показе анимаций, по экрану бегают белые полосы, но на скриншоте не видно.
>>814006Кое-как изобразил.
>>814006Используй буферизацию.
>>814006>>814008>>814010Уже починил, не знаю с чем это связано.
Есть таблица в сиквеле, у которой есть id. Есть другая таблица в сиквеле, у которой ключ составной - колонка со своим id и колонка с id первой таблицы. Поверх всего этого натянут Гибернейт. IDE автоматом создала по классу на кажду таблицу, класс на ключ второй таблицы и XML с маппингом. В XML у айдишника первой таблицы указан генератор identity, и всё нормально работает. Но у второй таблицы ключ взят в тэг composite-id, который не позволяет указывать внутри генератор. Записывается всё в базу нормально, все данные на месте, но когда я записываю объект сущности второй таблицы, которая с составным ключом, вместо айдишника новой строки мне возвращается 0. У первой таблицы всё было так же, но я указал руками генератор в маппинге и всё нормально заработало. Что делать? И почему вы не перекатываете утонувший тред?
>>814431> Что делать?http://www.jooq.org/
>>814459Это, конечно, прикольно, но если я приду устраиваться на работку с жуком вместо гибернейта, меня нахуй пошлют.
>>814483А ты им расскажи почему orm говно.
>>814485Они меня внимательно выслушают и нахуй пошлют. Лучше ты им расскажи.
>>814488Говнолегаси бд со схемой отношений - все со всеми. Нужен десяток полей из десятка разных таблиц в одном объекте.@ХИБЕРНЕЙТ, ЗАЩОО@С ЛИЦОМ БАТТХЕРТА, ПИШЕШЬ МЕМАС CREATESQLQUERYА так берешь, джойнишь как надо в дао и хоть обвытаскивайся. Вот это им и рассказывай. Опционально еще вскочи на стол и расскажи, что джава мертва и будущее за нодой.
Посоны, поясните нюфагу. Начал осваивать джаву, выбрал ее рандомно, типа популярно, все дела.Но когда дело дошло до моей хотелки по использованию драйвера устройства, я обосрался. Неужели Джава не может в драйвера?
>>814498> Начал осваивать джаву, выбрал ее рандомно, типа популярно, все дела.Тебя наебали, джава умирает. Популярен JS. Иди к ним в тред.> использованию драйвера устройства, я обосрался. Неужели Джава не может в драйвера?Ты вообще читал что такое java и как работает? Native API дальше по коридору в C и C++.
>>814494По делу-то есть что сказать?
>>814501Ты тупой? Разбери по частям мое послание тебе.
>>814502>нужно разобраться с ОРМ, потому что у всех работодателей оно в обязательных скиллах>описываю ситуацию и пишу вопрос >в ответ слышу, что ОРМ нинужно, джава мертва, а все конторы, где они используются - говно>в добавок называют тупымИ чего я от двача ждал?
>>814504Ты с чем-то не согласен? Опиши свой баттхерт.
>>814509>скриптодурачок прибежал в чужой тред>вместо ответов на вопросы начал переубеждать окружающих, заявляя, что их технологии нинужны>назвал тупым собеседника, которому безразличны его взгляды и который пришёл сюда не за этим>диагностировал у него батхёрт>в следующем посте сагрится на зелёный текст
>>814512Ты описал свой баттхерт, послушный мемас. А теперь опиши с чем ты не согласен.> чужой тредКакой-то петушок с нулевым опытом коммерческой разработки на Java (что так и останется) считает тред своим. Ньюфаг обезумел.> >в следующем посте сагрится на зелёный текст> Мам, ну скажи ему, пусть мне не отвечает. :( Так вот, возвращаясь пройденному - разбери по частям мое послание тебе и опиши, что тебе непонятно или с чем ты не согласен.
>>814518>скриптодурачок думает, что его кто-то будет переубеждать
>>814519Слив обоссанного недоджуниора (которого никуда не возьмут, ибо 60 человек на 1 место) засчитан.
И все же, пацаны, есть ли смысл писать высоконагруженный сервак на джаве? А то меня этим вашим GC все пугают.
>>814520Полегчало?
>>814523У меня ничего не изменилось, ведь это ты обосрался, даже не программист, а не я. С простейшим хибернейтом даже разобраться не может, вообще охуеть.>>814522С G1 имеет.
>>814524>С простейшим хибернейтом >>814494>ХИБЕРНЕЙТ, ЗАЩОО>С ЛИЦОМ БАТТХЕРТА, ПИШЕШЬ МЕМАС CREATESQLQUERY>С простейшим Скриптодурачок ловко извернулся и засунул собственный хуй себе в рот.
>>814525Безработная обоссанная манька продолжает фантазировать. > >ХИБЕРНЕЙТ, ЗАЩОО> >С ЛИЦОМ БАТТХЕРТА, ПИШЕШЬ МЕМАС CREATESQLQUERY> >С простейшим Долбоеб, ты что, вообще нихуя не понял что я тебе сказал?
>>814618 (OP)>>814618 (OP)>>814618 (OP)>>814618 (OP)>>814618 (OP)>>814618 (OP)