Всем привет. Как получить значение из перечисления? Я имею ввиду как получить из Summer 15? Метод s.ordinal() вернет 1, а я хочу получить 15. Надо обязательно создать метод s.getInner() ?
enum Season { Spring(10), Summer(15), Autumn(20), Winter(25);
>>1095627 >Объясните разницу между СЕРВЕРОМ ПРИЛОЖЕНИЙ ВЕБ СЕРВЕРОМ ВЕБ ПРИЛОЖЕНИЕМ И КОНТЕЙНЕРОМ СЕРВЛЕТОВ?
>СЕРВЕРОМ ПРИЛОЖЕНИЙ Некая программа, которая работает как прослойка между сетью и приложениями(оформленными в виде программных модулей\библиотек). Она предоставляет возможности по управлению работой\загрузкой приложений, и обеспечивает маршрутизацию трафика между ними.
>ВЕБ СЕРВЕРОМ Веб сервер эт программа принимающая и отвечающая http запросы по http протоколу. Как правило веб сервер как минимум может отдавать файлы из файловой системы.
>ВЕБ ПРИЛОЖЕНИЕМ Это может быть много чего. Приложение работающее в бравзере, если коротко. Совокупность технологий клиентских(js html) и серверных(php js go lua ruby итд) .
Есть форма на jsp странице, как сделать так, чтобы данные из текстового поля считывались по нажатию на клавишу Enter, чтобы не делать отдельную кнопку?
>>1097234 Я все таки на джаве попробую, в конторе просто в перспективе смогу войти в разработку мобильного приложения, но это мечты с мокрыми трусишками. Но с чего-то надо начинать.
>>1097298 >Я все таки на джаве попробую Нет, на Джаве хуже. В Хаскелле есть: - QuickCheck - для рандомизированного тестирования. И нет, ScalaCheck гораздо хуже, там даже заебёшься сиды восстанавливать. И ScalaCheck - это даже не Джава, это Скала, в самой Джаве нет вообще нихуя. - HUnit - для тестирования примерами. - hspec - объединяет QuickCheck и HUnit, нам ведь и то и другое тестирование нужно. - tasty - как QuickCheck, тольк тестирование не рандомизованное, а тотальное. Полезно для критичных аглоритмов, работаютщих на ограниченном наборе данных. - criterion - это не тестер, а бенчмаркер. Но так как производительность программы не менее важна, чем её корректность, любому нормальному тестировщику нужен классный бенчмаркер, вычисляющий все статистические параметры тестируемой функции и предстающей их в нагладной форме http://www.serpentine.com/criterion/fibber.html
Ах да, то, что я перечислил, это самая "попса" от Хаскелля. То, чем в Хаскелле пользуются самые нубы. Библиотеки, которым уже лет по 5-10. С полным списком библиотек тестирования можно ознакомиться здесь https://hackage.haskell.org/packages/#cat:Testing Но я не стал их тебе предлагать, поскольку я сам нуб, а Хаскель - это, сука, продвинутый эксперементальный язык, там много такого, куда лучше не залазить, если ты не профи, потому что это реально эксперементальный cutting edge компьютерных технологий. Но что я предложил - это уже довольно олдовые решения, их уже на другие языки портировать начали. И я тебе советую подойти с своему главному джава-программисту и спросить "а есть ли у вас в Джаве такая функциональность?" После этого он покраснеет, потом побледнеет, потом глазами в непонятке непонятке поводит, потом скажет, что не нужно, потому что удел джава-программистов - страдать и плакать над каждой строчкой, а потом охуеет, онемеет, головой покачает, снова охуеет в печали, потом прозреет и переведет всю разработку на Хаскель. Ну или уволит тебя нахуй от батхёрта. Всё-таки не каждый джава-обмудок сможет смириться с тем, что освоивший Хаскель и теорию категорий тестировщик как программист гораздо эффективнее любого сеньёр-джависта.
Почему для скалы нет библиотеки со структурами данных, которые бы по максимуму использовали тайпклассы? Например, чтобы в хэшмапе вместо методов equals и hashCode использовались тайпклассы Eq и Hash из cats.
Конфигурирую Spring Security, прописал: http.authorizeRequests().antMatchers("/test/").hasRole("ADMIN"); На тестовый рестконтроллер все равно попадаю, что делаю не так, что я упустил? Контроллер замапен в /test/test
>>1098550 Потому что Скала толком не может в тайплевел, если начать его активно использовать, получается раздутое тормозное говно, которое компилируется по полгода. Фактически Скала - это немного улучшенное ООП.
>>1099259 > получается раздутое тормозное говно, которое компилируется по полгода. Найс манямирок. Про микросервисную архитектуру и компилятор zinc с инкрементальной компиляцией ты видимо ничего не слышал.
>>1094694 (OP) Анон выручай, парюсь уже не первый день. Упрощенно у меня есть два класса, в одном Swing-овое окно и всякие вычисления(это не важно), и на нем есть кнопка, которая должная делать скриншот самого себя. По нажатию на эту кнопку вызывается второй класс, который делает его скриншот. Вся проблема в том, что когда я двигаю или ресайзю свинговое окно, я все равно все время получаю данные о его первичном положении при запуске. Вот кусок кода где я получаю положение и размер окна: //узнаем размер ContactEditor ContactEditor ContEdit = new ContactEditor(); int WinX = ContEdit.getWidth(); int WinY = ContEdit.getHeight(); System.out.println("Window size: " + WinX + " x " + WinY); //узнаем положение ContactEditor Point Loc = ContEdit.getLocation(); //делаем скриншот в буфер return new Robot().createScreenCapture(new Rectangle(Loc.x,Loc.y,WinX,WinY)) ;
Есть для Java/Kotlin тру модерн веб стэк, наподобие как в Clojure? Чтобы без ООП-головного мозга было. Лямбды юзать, и вообще чтобы всё минималистично.
>>1099431 проблему решил, но пока что еще не знаю как это работает, буду читать больше доки и рефы. Солюшн был в создании пустого класса public class SecurityWebInitializer extends AbstractSecurityWebApplicationInitializer {}
>>1099552 Потому, что на галеры никто не хочет, а кресты в стандарте 2011 года оказались пригодны для средних продуктовых компаний. За чем там будущее — никто заранее не знает. Если сейчас оперативная память подешевеет в 10 раз, Ява ещё вам всем покажет LOL.
>кресты все еще живы и развиваются намного быстрее Кресты так наразвивали, что получилась смесь бульдога с носорогом. Сколько сейчас страниц занимает спека, 1500, 2000, 2500?
Няши, подскажите, где можно найти гайдов\книг\чего угодно по использованию OpenNLP с джавой? На ютубе только связка с R как его прицепить к программе на джаве я понятия не имею. И стоит ли вообще использовать NLP? Нужно парсить много текста, и чисто теоретически можно попробовать заебаться с регекспами, но хз...
>>1099563 >Это когда успела? Уже несколько лет как не пишут новые проекты. Осталось только легаси >Кресты так наразвивали, что получилась смесь бульдога с носорогом. Сколько сейчас страниц занимает спека, 1500, 2000, 2500? Около 2000. Но зато писать стало намного легче, чем это было до С++11.
>>1099624 >Уже несколько лет как не пишут новые проекты. Откуда статистика?
>Около 2000. Но зато писать стало намного легче, чем это было до С++11. 2000 страниц спека и писать стало легче? Мне кажется это взаимоисключающие вещи.
Скачал IntellIJ, активировал полную версию, пытаюсь задеплоить проект с ejb в томкат, нихуя не получается, пытаюсь задеплоить в томЕЕ, все еще хуже. В томкате не получалось привязать сам ejb к jndi имени, в томЕЕ вообще нихуя не понятно, почему. Может мавеновский проект было бы проще настроить? А то я выбрал обычный идеевский проект и навставлял туда framework support. А еще это все должно быть выполнено на версии J2EE.
>>1099754 у тебя в голове каша, ejb в томкате никак не запустится. в идее ВСЕГДА выбирай проект по системе сборке. всё эти пресеты типа ЕЕ или спринга - вообще не нужны
>>1099801 >ejb в томкате никак не запустится Я уже прочитал про это, но в ТомЕЕ оно даже не деплоится. Если пресеты не нужны, то как мне EJB писать? С ними там все автоматом делается.
>>1099816 проект мавен/грэдл, добавляешь зависимость до ejb, пишешь, компилируешь, закидываешь варник в папку деплоя своего сервера приложений. стартуешь сервер ручками не через идею (напиши скрипты для всего этого для удобства). дебажить можно через remote debug или как он там называется. укажешь localhost и порт
>>1099823 >стартуешь сервер ручками не через идею (напиши скрипты для всего этого для удобства) Почему? Вообще, когда я делал в коммьюнити идее сервлеты, там так и было, сборка мавеном, а деплой через батник. Но в алтимейт разве это все нельзя настроить?
>>1099826 не знаю даже, а зачем? Мне так удобнее, задеплоенный проект и ide никак не связаны. Ты хочешь на каждый чих рестартовать весь сервер, нажав кнопку в идее? а если варников 20 штук, а изменения только в одном? на маленьком проекте может и норм, но на большом монолите не имеет смысла по времени
Ананасы, почему количество потребляемой памяти постоянно ростет до определенного момента? По идее в этот момент программа не должна делать ничего, там процесс висит на таймере. Вот что показывает JVM.
>>1095925 Кстати, кроме шуток, рнр в последней версии взял очень много плюшек от Java (вроде как приглашали икспертов из ява-сообщества). И это хорошо.
Кто нибудь может пояснить для чего в жабе нужна такая ебически длинная вереница пакетов? И почему они всегда начинаются с com.* ? это какой то стандарт? как гуглить эту херню?
Я всегда клал хуй на 125 папок вложенных одну в другую и все проекты делал в одной корневой папке, а в неё уже вкладывал другие пакеты с классами, которые я создал. Зачем нужно 5 раз вкладывать папки одну в другую, чтобы на 5м уровне вложенности уже создавать проект, но на 4й никогда не заходить?
>>1099741 я не стал писать, что еще работаю с базами данных, Swing, всякие xml, json и прочее, так как это очевидные вещи. Указал SE, чтобы уточнить, что не знаю EE и Spring.
>>1094694 (OP) Доброго времени суток многоуважаемые господа. Прошу прощения за последующую сумбурность письма, но в в деле программирования я ничего не понимаю. Собственно, излагаю: Занимаюсь наглой реклмой путём добавляения в друзья с нескольких аккаунтов к участникам групп конкурентов (продажи в моём городе). Чтобы не добавлять два раза одного человека с разных фейков, я заношу его страницу в закладки браузера. ВНИМАНИЕ ВОПРОС Можно ли сделать так, чтобы те, кого я добавил в закладки браузера не появлялись в списках участников групп? Ибо заебался открывать одни теже страницы.
>>1099832 для рестарта в IDE не нужно пересобирать проект, потому на большом монолите такой подход удобнее. Кроме того, можно статику подгружать "на лету"
Антон, хочу для самообучения повторить проект уровня zona или popcorn time, который парсит хуй знает откуда торренты и открывает видосы на лету Дай каких нибудь советов для формирования фундамента подобных проектов Десктоп буду писать первый раз, до этого тупо говновеб был, поэтому пока уровень мизерный Писать буду на java, парсить с curl. Хороший выбор для начала?
>>1094694 (OP) Сап, котаны, как вкатиться в джаву? Учил Core, писал хэллоуворлды, понимание есть и уже хочется вкатиться, ибо на работе будет развитие быстрее. Как в ДС найти вакансии стажера/джуниора, кроме как на хх.ру?
Такой вопрос, если у меня есть БД, есть ДАО для некоторых сущностей в этой БД, есть классы этих сущностей, надо ли мне писать еще один класс для отображения этих сущностей в виде таблицы в javafx?
>>1100559 Могут. Но мой тебе совет анон, используй Spring Feign с REST API вместо RMI, - это более гибкий подход. RMI ведь использует сериализацию для передачи объектов, что добавляет головной боли.
Изучаем Java (2-е издание, 2012) К. Сьерра, Б. Бейтс не устарела еще? Вроде есть посвежее версия, но хз где ее найти на русском. в гайде был, знаю про английский мимо нубас с почти нулевым бэкграундом
>>1100883 >Изучаем Java (2-е издание, 2012) К. Сьерра, Б. Бейтс не устарела еще? Вряд ли. Для даунов таких как я - это как раз самое-то. Помнится, они там рассматривают материал по джаве пятой. А на сегодняшний момент девятая вышла, для нуля незначительное различия. После книги этой потом все можно наверстать.
>>1101156 >Еще и Головоча полезно смотреть я слышал. Спс, подписался. скажешь что нить про Философию Джава Эккеля? вообще, скачал себе вот Хид Ферст, Философию, плюс еще хочу пройти базовый курс на Степике. Ну и еще первые хеллоу ворлд на джавараш. Для начала же пойдет?
>>1101162 Я не советчик и сам еще учусь. Но на мой взгляд, достаточно и этого материала: одной книги и Головоча. Thinking of Java можно на потом, через месяц глянуть. Еще говорят почитать нужно структуры данных и алгоритмы. На этом думаю все. Как раз на 2-3 месяца хватит.
Вот задачка. Надо чтобы строки вывелись 4 раза. Как это можно сделать не меня вторую часть? В предыдущей поменял, JR это засчитала, но это тупой копипастинг. Как сделать чтобы цикл прокручивал эти две команды?
public class Solution { public static void main(String[] args) { //add your code here }
public static void print2Times(String s) { System.out.println(s); System.out.println(s); } }
>>1100743 >есть классы этих сущностей jpa-классы имеешь в виду? да, надо, javafx точно не должен оперировать jpa-классами, нужно развязать их, добавь отдельные дто для отображения, даже если они будут всё дублировать.
Работал всего в одном месте. Мы в нем юзаем e-commerce платформу atg. В ней куча всего самописного. Никакого jpa, ioc-контейнер свой. Ну и ко всему прочему довольно массивный и хорошо кастомизируемый commerce-фреймворк. Хотелось бы пописать на различных спрингбутах, хайбернейтах и прочих популярных технологиях, но я не понимаю, где это возможно. Вот вы, аноны, которые все это юзаете, вы что полностью все с нуля пишете? Если рассматривать конкретно сферу e-commerce, то не юзать никакого e-commerce фреймворка просто глупо, но все эти фреймворки находятся внутри больших платформ со своими правилами, а не полной поддержкой EE или спринга. Существует конечно hybris, который под собой имеет спринг, но вот JPA там все равно не пахнет.
>>1101972 А что тебя не устраивает? Завтра добавится поле на представлении в fx, которое берётся не из базы, а вычисляется, ты его будешь в jpa лепить? А завтра добавится экспорт в xml, или ещё какая-нибудь срань. Ты вообще представляешь какая ебота начинается, когда количество этих полей выходит за рамки хеллоуворлда? Где-то блять поля заполняются, где-то не заполняются т.к. не нужны, сущности имеют ссылки друг на друга, в этом дереве потом ХУЙ разберёшься. Знаю не по-наслышке. Каждую хуету нужно проверять в дебаге и смотреть, будет ли тут у тебя это значение или нет. Ничего страшного в том, чтобы нахуячить количество классов нет. Они решают только одну задачу и изменение в xml dto никак не затронет другую логику. Вообще пишу какие-то очевидные вещи
Объясните мне по порядку, как настроить датасурс, чтобы сессионный бин мог его использовать для соединения с бд? Сервер ТомЕЕ. Я уже обкаколся, все перепробовал, никак не работает. Выдает какие-то ебанутые ошибки либо просто не видит JNDI имя.
>>1102009 > Работал всего в одном месте. Мы в нем юзаем e-commerce платформу atg. В ней куча всего самописного. Никакого jpa, ioc-контейнер свой. Ну и ко всему прочему довольно массивный и хорошо кастомизируемый commerce-фреймворк. Бежать надо из таких мест. Ты дрочишь хуйню и развития нет, а в других местах эта оракловая мидлварь, написанная через палку индусами, никому не всралась и не пригодится. > вы что полностью все с нуля пишете Смотря что ты имеешь под словом "все". Велосипеды как в твоем говне не пишутся, а используются фреймворки и технологии, соответственно на их написание и поддержку время не тратится. А бизнес-логика - вполне. Потому что бизнесы разные и кое-че уже запиленное сначала подходит, а с течением времени стоимость поддержки и дописывания такого говна становится невообразимой. Недавно был в одной французской компании - они как раз такой монолит на основе какой-то тырпрайзной мидлвари переписывали на микросервисы. >>1102243 jndilookup
>>1102350 >jndilookup Нихера не работает. Лукапил с jsp, где мне и надо использовать этот бин, лукапил из метода бина setDataSource, лукапил из setEntityContext, инжектил через аннотацию, ничего не работает.
>>1102368 Да, ты говно. > Может уже скажешь, в чем я не прав? Я тебе не учитель.
Разбери мой пост >>1102358 по частям, проанализируй его, разбери цитату и ответ, пиздуй нахуй из треда, вне его подумай где ты облажался и больше никогда так не делай. Потом возвращайся.
>>1102360 Господи, какая блевота. Жабамакакам реально нравится жрать такое говно вместо нормального кода, который ясно и понятно показывает свои намерения?
>>1102360 Господи, какая блевота. Жабамакакам реально нравится жрать такое говно вместо нормальных технологий и нормального кода, который ясно и понятно показывает свои намерения?
>>1102350 Анон, серьезно? Только пж без троллингану или легенько можно у меня еще 2 недели испытательного срока за которые можно съебаться с этого мидлварного полулегаси говнища, далее контракт на 3 года. Сам понимаю, что вряд ли это дерьмина пригодится за пределами моей конторы, но согласился на такое ради опыта, и не думаю, что получится найти другую работу, если сейчас уйду
>>1100883 Книги не нужны. Ты их все равно не прочитаешь. Можешь быть уверен. Книги тебя не научат программировать. Только практика, алгоритмические задачи и проекты.
>>1103032 В джаве нет внутренних методов. Ты можешь размешать анонимные классы или лямбды в методе, можешь размешать внутренние классы в классах, но не более.
Ещё вопрос от нафани: я вызываю метод с параметрами(a, b) он возвращает мне c, но как мне достать из него ещё и a и b? Чтобы вывести, например System.out.println("Результат умножения "+a+" и "+b+" равняется "+с);
Кто нибудь пояснит мне что за хуйня? Маплю сущности из бд, две таблицы, связь один ко многим между ними. Проект спринг бут из манула со спринг ио, все работает четко. Как только пробую организовать связь в сущностях, когда типом поля сущности 2 будет тип сущности 1, чтобы добавить аннотацию @ManyToOne и так далее, то при запуске выскакивает ошибка, что у меня нет какого то йобаного бина под названием entityManagerFactory, которого у меня быть не может, я ведь не создавал его. Куда гуглить? Мб я не так сущности оформляю? Или спринг бут автоматически конфигурит только до определенного момента, когда между таблицами появляется связь?
Новичок в java. Необходимо автоматически собрать и запустить несколько консольных программ с разными параметрами, используя для этого ant либо intellij. Каким образом такое можно сделать? Есть хорошие туториалы?
>>1103305 В джаве параметры передаются по ссылке(кроме примитивов). Если ты в своем методе изменишь a и b, то ты изменишь их везде. Еще как вариант - обернуть a, b и c в класс и вернуть этот класс.
Видимо секрет какой то есть, например какую то злоебучую аннотацию надо указать, чтобы автоконфиг спринг бута срабатывал, а не посылал на настройку entityManagerFactory.
>>1103305 Там, где ты вызовешь свой метод, ты будешь использовать свои параметры а и b, так что у тебя и так будет возможность их использовать, нахуя их от метода обратно получать?
>>1103617 Я просто хотел избежать лишних строк с объявлением переменных int a = x; int b = y; и задавать их сразу в method(x, y); Но так они получаются локальными. В общем, я понял, что это выходят костыли, спасибо. Уже пытался сделать, чтобы метод возвращал массив int [a, b, c], но на это мне пока знаний не хватило, как и на то, чтобы реализвать это >>1103540
>javax.naming.NameNotFoundException: Name [Object] is not bound in this Context. Unable to find [Object]. Что это за охуевшая хуйня? Я нигде Object не лукаплю.
>>1103001 ну а как подойти к этому? > Только практика, алгоритмические задачи и проекты. с чего то надо же начинать. Думал, с книг то начну анон>>1100883
Двощ, дай пожалуйста советов мудрых. Посоветуй книгу для быстрого, но качественного вкатывания в Джаву. Навыки программирования есть и вполне хорошие для непрофессионала (давно пишу автотесты на скриптовых языках и небольшие тулзы). Джаву когда-то учил и даже писал небольшие проекты по учебе, но это было очень давно. В общем понимаю, что читать базовую книгу будет очень скучно, но хочется хорошую основу. фак читал, в общем сейчас выбираю между несколькими стульями:
1) Schildt - Java 8 The Complete Reference Ninth Edition 2) Eckel - Thinking in Java 4th edition 3) Horstmann - Core. Java 10th edition (2 части) Склоняюсь к 3-му варианту, но очень прошу дать мудрых советов.
Какой из стульев (не обязательно из списка) выбрать?
И куда двигаться дальше (понятно, что определяется конкретной задачей, но я говорю про базовые навыки, нужные так или иначе всем). Спасибо, двощ.
>>1103954 Шилдт как по мне написан суховато, но у него очень много листингов по которым можно самому догадаться что и как работает, у Хорстмана наоборот написано интереснее, но примеров меньше. Я бы выбрал скорее Хорстмана, но хороши обе.
>>1103954 можешь просто пролистать, выборочно прочитать что-то, нет смысла читать все эти книги, проще начни писать какие то проекты, читай туториалы которые короче и без лишней (поначалу) информации. Я лично ни одну из этих книг не прочитал.
>>1103943 Тебе надо jdk установить, а не jre. И аналогично прописать в path. Алсо у тебя она какая-то странная, обычно там куча всего уже прописано. Не надо создавать свою, нужно добавить путь к уже имеющейся. А проще всего поставить идею, там все изкаробки.
Расскажите пожалуйста про библиотеку retrofit. Почему её лучше использовать чем стандартную библиотеку с HTTP запросами? На гитхабе написано всего лишь, что она лучше обеспечивает безопасность типов.
>>1104066 На случай если установщик не пропишет в path все сам, очевидно. Ну и понимание того, что происходит вообще, когда ты нажимаешь волшебную кнопку Run в идейке.
>>1104065 Сравни как сделать любой запрос с ретрофитом, и как сделать запрос через httpUrlConnection. После первого раза поймешь. А потом представь что тебе не просто надо сделать запрос, но неплохо бы логнуть, добавить токен и тд.
>>1104069 Я вообще считаю, как и люди, учившие меня синдром утёнка, ололо, что до определённого момента новичку IDE использовать нельзя. Только консоль, только хардкор. Пусть всласть поебётся. Зато сразу ТВЁРДО И ЧЁТКО усвоит, как происходит компиляция и запуск, что такое classpath и как использовать jar-библиотеки, нахуя нужны пакеты и как они организованы, как самому создавать jar и что такое MANIFEST.MF, как отлаживаться, писать нативные методы, декомпилировать существующие классы, ну и всё такое. А то большинство джуниоров даже после многих месяцев толком объяснить всё это не в состоянии. Кнопочка в идее всё делает за них.
Сап джаваны. Уже вдоволь написавшись хеллоуворлдов решил что стоит переходить к изучению веб разработки, но хз с какого бока подобраться. Порекомендуйте ньюфагу откуда начать и куда двигаться?
>>1104105 1. Основы frontend - html/css/js. Реакт и прочие ангуляры оставь на потом, а то охуеешь. 2. Когда начнешь понимать как сделать простенькую страницу, переходишь на backend и понимаешь как это дело формируется и отдается: сервлеты + tomcat. 3. Потом уже Spring MVC (он использует сервлеты под капотом) + любой шаблонизатор (freemarker/thymeleaf). 4. Дальше вникаешь в аутентификацию и авторизацию (Spring security). 5. Теперь реальзуешь свой первый REST API на backend. На frontend используешь jquery + AJAX.
Это были основы full-stack прогера в 2010-ом.
В 2017 используют React/Angular/View. Смело принимаешься за их изучение и готовишься расширять очко карман, чтоб туда помещались 300хуёвк.
>>1104105 разберись с бд (с функциями не ебись, так чисто на уровне запросов), затем jdbc. сделай консольную приложуху, чтобы инфу сохранять, записывать и т.д. изучаешь дальше jpa (hibernate), делаешь всё то же самое, но с ним вместо jdbc потом html+css+js на w3schools.com потом лучше сервлеты, на них запили crud с ajax. твой бэк отдавал бы данные в json. пили сразу controller-service-dao, где controller принимает запросы, обращается на сервис, отдаёт ответ от сервиса в json-формате service отвечает на запросы контроллера, реализует бизнес-логику, запрашивает данные из дао dao - слой доступа к базе данных и только потом спринг
>>1104126 Всмысле? Ретрофит тащит за собой okhttp, а там это есть, это же простые интерсепторы, ну ладно для логов нужно еще подключить logging-interceptor okhttp'шный.
>>1094694 (OP) Я хочу организовать диалог с пользователем через консоль, чтобы было так: Enter user Id <Id пользователя> <результаты выполнения> Enter user Id ... И так пока пользователь не введет CTRL+D. Вот такой кусок кода, в упрощенном виде: Scaner reader = new Scaner(System.out); while (reader.hasNext()) { System. out .println("Enter user ID"); int userId = reader.nextInt(); List<ItemType> results = foo(userId); for (ItemType result : results) { System. out .println(result); } } Однако, программа сначала ждет ввод, и только потом печатает приглашение на ввод, то есть получается так: <Id пользователя> Enter user Id <результаты выполнения> Проблема решается, если сделать так: Scaner reader = new Scaner(System.out); System. out .println("Enter user ID"); while (reader.hasNext()) { int userId = reader.nextInt(); List<ItemType> results = foo(userId); for (ItemType result : results) { System. out .println(result); } System. out .println("Enter user ID"); } Но, вот, не понимаю, отчего первый вариант не работает, так, как я ожидаю. Не можете объяснить?
>>1104161 Браток, может тебе чем другим занятся? Вагоны там разгружать или в дворники. Ты прочитай построчно что ты написал в программе и подумай. Hint: погугли do while.
>>1104250 Я лишь указал, на то что там нет поддержки этого из коробки, а у тебя уже ВСЁ. Я сам пользуюсь retrofit-ом и уже несколько раз велосипедил это.
>>1103567 Их до этого необходимо скомпилировать. При этом всё, т.е. и сборка, и запуск, должно быть в одном скрипте (который формата ant, желательно. Слышал, что можно хоть как-то не вручную это сделать, применив экспорт из какой-нибудь ide, например. Вообще, это что-то вроде тестирования получается, и такая задача, конечно, не похожа на уникальную). Такое требование, а для себя бы, наверное, что-нибудь другое применил
>>1104306 encode(String) для строки с двойными ковычками. Ну и порефакторить можно: - Map<Class, Function<T, String>> вместо кучи if-ов. - Вынести общую логику encode для object и map. - Использовать StringBuilder везде.
>>1104243 >Hint: погугли do while. do while не поможет тут нихрена, конечно, в первый раз все выполнится как надо, но потом из-за hasNext() все равно нарушиться задуманный порядок. Тут, может, подойдет сделать примерно такой рекурсивный метод: void inputLoop(Scanner scanner) { System.out.println("Enter ID"); if (scanner.hasNext()){ int userId = scanner.nextInt(); ... inputLoop(scanner); } else{ return; } }
Сап, джаваны. Хочу написать клиент-серверную приложуху. На сервере будет крутится простая бд, клиенты будут вносить данные, порой распечатывать отчеты. Для гуя планирую использовать javafx, для отчетов - jasperreports. Собственно вот в чем вопросы: 1. Как реализовывать протокол обмена между клиентами и сервером? Первый приходящий в голову вариант - использовать сокеты и таскать по ним сериализованные данные. Но в век, когда для сложения 2+2 есть фреймверки это как-то не правильно. Быть может подскажете какую-нибудь библиотеку/фреймверк? 2. Как правильно организовать авторизацию? Я хочу использовать ldap. Но как именно? Передавать логин/пароль на сервер и проверять авторизацию там не хочется. Почти уверен, что есть иной способ.
>>1104610 По первому вопросу могу посоветовать не ебать себе голову (хотя бы на начально уровне) и всё-таки ебануть обмен данными через сериализацию. После того, как удастся сделать так, перепилить всё на REST.
А вот второй вопрос мне самому интересен, подожду советов более опытного анона.
>>1104610 1. REST, RPC, да хоть GraphQL - без разницы. Главное, чтоб работало. 2. В чем проблема с передачей логина/пароля? Нормальная практика. Не ясно ещё зачем тебе это. Для аутентификации или авторизации?
>>1104610 >Передавать логин/пароль на сервер и проверять авторизацию там не хочется Естественно, потому что пароль передавать нельзя. Только в зашифрованном виде, и сравнивать его с зашифрованной версией. Все так и делается.
>>1104653 > Для аутентификации или авторизации? Скорее для авторизации. Мне нужно убедится, что пользователь выдает себя за себя (или лучше - убедится, что клиент запущен в контексте определенного пользователя домена) и на основании этого принимать решение о доступности различной информации.
>>1104662 Ну так не еби мозг и передавай логин/пароль без всяких заморочек с хэшами. Это твой софт внутри твоего предприятия - нет причины параноить. Единственное, нужно использовать https, конечно. Хотя, чувствую, что у вас там всем похуй.
>>1104804 потом из-за таких как-ты вся система вскрывается одним скриптом. "Ну если софт внутренний, то никаких угроз быть не может ЫЫЫЫЫЫ БЛЯДЬ". Я хуею. https спаси, сохрани и избави нас от лукавого. Ну а так да, похуй
Дублирую из ньюфаг треда. Есть один BlockingQueue. Задача - из одного потока, который принимает пакеты, запоминать их, чтобы другой читал и обрабатывал, гугол сказал его для этого и использовать. Но появилась проблема с проебом пакетов. Поебавшись, я выяснил, что если поток, забирающий элементы из очереди, крутится в цикле не очень быстро, то некоторые добавленные в очередь элементы просто исчезают/не читаются. Причем чем дольше работает поток перед тем как запросить следующий элемент, тем больше их скипается. ЧЯДНТ и как исправить?
>>1104610 1) rmi, hessian, restful 2) ldap по хэшу
Но я бы не морочился с javafx, а запилил бы api и статику, которая это api бы дергала. Какой-нибудь ангуляр или extjs. Взял бы spring boot, data jpa, web.
В этом случае толстый клиент ну просто нахуй не всрался, т.к добавляет целую кучу проблем по разработке двух приложений вместо одного, транспортные проблемы и другую хуйню.
Берешь бут и просто делаешь что надо. А юзеров пускаешь через ангуляр или там что знаешь из js. Если ничего не знаешь, то используй ваадин. Если показалось слишком просто и хочешь выебнуться - распили сервак на микросервисы. А толстый клиент оставь в прошлом веке - ему место лишь в молодости твоей матери.
>>1104883 Ненене, только не ваадин. Это очень плохая идея. Потом зеебешься его из проекта выпиливать. Если с яваскриптом все плохо, то лучше наделать темплейтов на thymeleaf или freemarker и по минимуму юзашуть jquery. Самое ебучее свойство впадина - необходимость пересобирать весь проект, чтобы изменить даже малюсенький кусок ui. Это пиздец как бесит.
>>1104836 >>1104883 Была такая идея. Меня останавливает то, что большая часть пользователей предприятия привыкла именно к десктопным клиентам (тут куча всего на делфи, лол).
Народ, срочно нужна ваша помощь. Мне не нужна программа, достаточно посоветовать просто алгоритм, метод, звучит просто, но я не могу допереть до сих пор.
Короче, в городе есть жители и пять групп. У каждого жителя может быть комбинация трех навыков из пяти (навыки A, B, C, D, E). Нужно написать такой SkillSorter, который будет принимать вашего жителя с навыками(допустим ABC или CDE) и на основе этих навыков распределять его в одну из групп.
При этом цель – чтоб во всех группах было примерно равное число всех навыков и общее число участников во всех группах тоже было примерно равное(не одинаковое).
Т.е. написать такой распределитель который смотрит на навыки и на основе них решает в какую группу кого добавить(группы я наверно через ArrayList делать буду).
У кого какие идеи есть? За кривокосой язык описания прошу прощения.
P.S. Навыки могут повторяться, типа DDC и так далее.
Да. То есть я просто пишу "AAC" и программа должна на основе этих трех навыков выбрать группу. Так, чтоб и (1)навыков в одной группе было примерно одинаково и (2)чтоб людей между пятью группами тоже было примерно одинаково. Это два главных критерия.
>>1104949 >навыков в одной группе было примерно одинаково Всмысле сумма A в первой группе такая же как во второй, ..., в пятой и так для всех навыков? Звучит как метод последовательных уступок.
У человека может быть три навыка из пяти возможных, при чем могут повторяться, типа AAC или AAA.
Я делаю программу с меню, интерфейсом, где могу добавлять людей, удалять, сохраняю это в текстовом файле. Группы я делаю через ArrayList.
Но я понятия не имею как сделать такой метод -распределитель, который бы сам решал куда в какую группу добавлять человека на основе того, чтоб во первых число навыков в одной группе было примерно одинаковое, а во-вторых чтоб число людей в группе в целом было примерно динаковое.
>>1104954 >Но я понятия не имею как сделать такой метод -распределитель Я и говорю что это похоже на метод уступок, то есть вначале мы пытаемся удовлетворить одному условию, а дальше опираясь на допустимые уступки удовлетворииь остальным поочередно. Тут тебе математика нужна, что бы модель правильно составить. https://math.semestr.ru/simplex/concessions.php
>>1104959 >Тут тебе математика нужна Я не хочу идеальный способ решать этот вопрос, поэтому вряд ли.
Самое легкое это было бы работать с людьми у которых один навык повторяется несколько раз – AAA/ВВВ/... или AAD/BBC/..., потому что можно просто добавлять их туда где этого самого навыка меньше всего. Это просто.
Мне интересно что делать с теми, у кого все три навыка разные.
Хм. Делаешь группы для всех вариантов. При добавлении чувака сперва определяешь группу с наименьшим размером, куда этот чувак может влезть. При наличии нескольких групп - рандомно кидаешь в одну из них. Должно сработать.
>>1104839 >>1104829 Короче, если кому интересно, почему-то если сразу брать байты из пакета и их передавать все пашит, а пакеты все херят хуй знает почему
>>1104839 > while (10 < System.currentTimeMillis()) уровень говняности твоего кода просто зашкаливает. И блять, выложи его на пастбин, читать нихуя не удобно
>>1105471 Сказано же тебе, олигофрен, что томкат самый простейший в настройке контейнер фуулпрофайлЕЕ. Если ты дебилоид не можешь настроить его то нехуй тебе делать в ЕЕ Иди пхп учи маня
>>1105484 За щеку ты себе спид подцепил, олигофрен. Тебе в логе написано, говножуй, что ресурс адаптер не найден. Ты его в конфиге сервера создал? Нет? Пиздуй пхп учи ссанина.
>>1105137 Так и не понял, в чем дело. Создал BMP Entity Bean нахуй тебе это говно мамонта, вызываю метод поиска по первичному ключу, затем пытаюсь получить значение имени из таблицы. Но выскакивает эта ошибка. Я так понимаю, при попытке вызвать методы компонентного интерфейса что-то не то происходит.
Уже года два пишу хелоуворлды на яве, не знаю, в какую ветку качаться дальше, в энтерпрайз со сприграми-хуингами или в андроид. Вакансий один хуй что там, что там - полторы штуки на весь город.
>>1105752 А тут смотри сам, что тебе нравится больше: формошлепство или вращение тонн данных на хую. Хочешь формошлепить или игрульки писать - качай андроид. Хочешь дохуидриллион навыков и работе с морем кода - качай Энтерпрайз и дуй щеки от чсв
class XMLHelloSayer implements HelloSayer { void sayHello () throws IOException { // а вот здесь у меня в реализации кидаются также // ParserConfigurationException и SAXException, // Что с ними делать? Делать new IOException().addSuppresed(e)? } }
>>1105909 Лучше оборачивай эксепшены в свои (а уже конкретные засовывай через cause), так ты не будешь привязан к апи стандартной либы (а ещё хуже чужой либы) Так же возможно имеет смысл расмотреть идею делать все свои исключения как рантайм (иногда проверяемые исключения портят всю картину в лямбдах)
>>1105921 если полный ноль, то попробуй. но не жди, что научишься программировать. будешь уметь говнокодить методами по 500 строк. как совсем энтри левел можно, потом читай мартина и фаулера, изучай паттерны
>>1105921 никогда не учил языки по книгам. Чтобы изучить язык, нужно сразу начать писать на нем полезный для себя проект, а все знания пополнять в гугле, пусть поначалу запросы и будут простейшие, типа "как создать приватный метод". А изучать по книгам стоит только паттерны, практически все они пригодятся на любом языке, а гугл уже не сможет подсказать, как изящнее всего через паттерны решить такую-то проблему.
А почему? Мне Java, в отличие от других языков, понравился именно тем, что он насильственно заставляет обрабатывать ошибки, а это значит надежность и так далее.
> Прочти в Чистом коде Роберта Мартина. Там классная глава про проверяемые исключения
Прочитал. Не вполне согласен с Мартином. В самом начале он пишет, что checked exc. фактически являются частью сигнатуры. Следовательно, добавление нового checked exc. на низком уровне -- это ровно то же самое, как если бы этот низкоуровневый метод вместо String стал возвращать что-то другое, например Set<String>, что автоматически повлечет изменения во всех остальных местах, клиентах этого метода.
И, кстати, он не пишет про то, что "всем заебало", как это описывает >>1106106
Другой аргумент: если метод стал кидаться еще одним исключением, надо убедиться, что все клиенты этого метода также станут обрабатывать и его. Именно это является залогом известной Java-надежности.
Третий аргумент: известно, что throw -- это то же, что и return, но управление возвращается в некую другую плоскость (в Java это блок catch). В юниксовых процессах программы получают вход в своих аргументах, результат возвращают в stdout, а ошибки -- в другую "плоскость", в stderr. Аналогия, думаю, понятна.
Вот. Так что мой вопрос >>1105909 остается актуальным. Как это сделать в том духе, который царил в Java до прихода мыслей вроде "а давайте откажемся от checked exc."?
Можно ли в джаве или игнорировать пустые кастомные проперти? Допустим есть hui.jopa.
В application.properties он определен как hui.jopa=pizda Запуская же джарник java -Dhui.jopa= -jar jarname значение пизды перезатирается. Можно ли сделать, чтобы значения из -D не перетирали системные переменные из других источников, если они пустые?
Суть в том, что на третьем пункте у происходит умножение значений массивов, последующее складывание и запись как одного значения в массив результата. Так как количество значений в массивах должно быть неограничено просто Integer нельзя использовать.
Это как обоснование использования Big Decimal.
Вопрос: почему интерпретатор жалуется? вроде же всё переведено в Big Decimal или как это показать явно?
>>1106704 Познакомься с type erasure. Очевидно Dice возвращает тебе list без дженерика, а в нем лежат Integer. Правильный тип второго листа - Array List<Integer>.
>>1106704 Тебе коротко или подробно? Коротко: тебе в js/python тред. Подробно: Как видишь в сигнатуре твоего метода записано что он возвращает просто ArrayList, из-за стирания типов в рантайме компилятор ничего не может сделать тебе и позволяет присвоить это ArrayList<BigDecimal>'y, но если ты попробуешь достать оттуда BigDecimal - получишь cat exception, так как там очевидно лежит не BigDecimal, а Integer. Вот что ты можешь сделать что бы избежать подобных проблем: 0) Съебать и никогда не трогать жабу; 1) Поменять сигнатуру метода, пусть возвращает ArrayList<BigDecimal> (сменить название метода на simpleRand, так принято, в идеале возвращать List<BigDecimal>, но в твоем случае тебе бы даже хватило Iterable<BigDecimal>); 2) Соответственно тебе нужно сменить внутренности метода, что бы в список добавлялись BigDecimal'ы; 3) Поменять алгоритм, твои вложенные циклы работать не будут, так как decimal2.size() верент 0, ведь ты еще ничего не положил в список;
>>1106720 >3) Поменять алгоритм, твои вложенные циклы работать не будут, так как decimal2.size() верент 0, ведь ты еще ничего не положил в список;
Да я просто для примера забыл дописать т.к. столкнулся первее с этой проблемой.
>0) Съебать и никогда не трогать жабу; Выбираю другой вариант
>1) Поменять сигнатуру метода, пусть возвращает ArrayList<BigDecimal> (сменить название метода на simpleRand, так принято, в идеале возвращать List<BigDecimal>, но в твоем случае тебе бы даже хватило Iterable<BigDecimal>);
Понятно, так и думал. Просто хотелось узнать это единственный способ ? Просто этот метод ArrayList<Integer> используется не только этим кодом и поэтому надо везде всё перелопачивать. мне казалось есть более простой и элегантный способ преобразования из обычного типа данных в Big Decimal
>>1106729 Если тебе важно что бы там был Integer, тогда конечно можешь после получения списка интов превратить их в BigDecimal, вариантов тьма, самый простой и тупой-немодный: final List<BigDecimal> decimals = new ArrayList<>(ints.size()); for (Integer integer : ints) { ____decimals.add(new BigDecimal(integer)); } Можно короче: final List<BigDecimal> decimals = ints.stream().map(BigDecimal::new).collect(Collectors.toList());
>>1106720 >decimal2.size() верент 0, ведь ты еще ничего не положил в список Положил, когда создавал decimal2 из decimal. Упадёт потом, на 24-ой строке, когда i будет >= длине decimal2 (а это случится, ведь на этой же 24-ой строке элемент удаляется из начала списка, а все элементы сдвигаются). Короче, пиздец, а не код.
blank line для повышения читаемости кода. Одна пустая строка между методами, внутри которых между логическими блоками тоже есть пустые строки - это же хуево для читаемости, разве нет (особенно если есть есть строки документации перед сигнатурами) Почему нельзя использовать две между методами, и по одной для разбиения логики?
>>1107133 Двачую гугловский. Раньше обмазывался табами в 4 пробела, но после того как переехал на гуглостайл — с него уже не слезу. Реально людьми для людей сделано.
>>1099966 И откуда вы выползаете блядь? Для индексации, навигации, для разрешения конфликта имён, для разделения отдельных программных продуктов в проекте. Полное имя класса - это уже информация о том, что он из себя представляет и кем сделан.
Аноны, только не пинайте сильно. Я собираю jar-ник в идее мавеном, но он не запускается по двойному клику. Консольное приложение, через java -jar запускается без ошибок. В pom файле указан manifest и main class. В чем может быть проблема?? Гугл не помогает.
>>1109001 Дело в том, что от прошлого проекта в идее jar-ник запускается нормально по двойному клику, но я забыл, что именно менял в проекте. Посмотрел уже все настройки и pom файл, все идентично. Так что с ассоциациями все должно быть в порядке.
сап двачуны, есть статическая мапа со значениями (патчи для БД). Как лучше всего сделать, чтоб в одной сборке проекта в мапе лежали одни значения, а в другой - другие значения? Сборщик ant, но не знаю, как через него это сделать (и можно ли вообще)
Ебашил парсилки для файловых систем, бекапов и тд, импрувил вилкой перформанс по ним. Хочу те же задачи по перфу и море бекенда без намека на веб-морду. Думаю съебаться из-за того, что могу прогореть с плюсами в долгосрочной перспективе.
Не шарю. Если в тырпрайз джаве нужно знать 100500 фреймворков и это рили критикал, то шансы небольшие. Если больше решает светлая голова, то шансы есть.
>>1109350 Тогда ты тупой даун и у тебя не работает то, что работает у тысяч других. Медицина здесь бессильна - тред сисадминов в воркаче ждет тебя. >>1109352 Никаких шансов.
Девелоперы. Какие ОС стоят у вас на работе. Собираюсь поставит линуксо ОС и разобраться, но не знаю какую (их там куева туча). Мне конечно и на Винде норм. Это чисто для галочки в резюме
>>1109111 За реакцию на двойной клик по jar-нику отвечает не Java, а операционная система в твоём случае, вероятнее всего, Windows. Поэтому тебе нужно ассоциировать jar-файлы с утилитой java (если аппликуха консольная) либо javaw (если графическая).
Суп, пасаны. Я у мамы девелопер с небольшим (около полутора лет) опытом коммерческой разработки. Из технологий ничего особенно интересного, так исторически сложилось, что практически всё это время хуярил под EJB, JPA, постгря, вот это всё. Сейчас наконец подвернулся интересный проект, микросервисы на спринге, hadoop, всё как у людей. А дело, собственно, вот в чём. Я ленивое хуйло, которое в основном изучает что-то только когда сталкивается с этим чем-то лбом, а нужно же духовно расти, иначе пиздец, хочется всё-таки стать успешным специалистом, а не вечным крудошлёпом. Как вы саморазвиваетесь? Пишите свои проекты? Книжки читаете? Статьи? Каналы на ютубе? Раньше как-то проще было, дрочишь себе основы по порядку и уже хорошо, а теперь нужно думать куда дальше двигаться. Если посоветуете, не знаю, подборку книг или пару интересных каналов на ютубе - будет совсем охуенно.
Я тут одну хуйню придумал, но пока не знаю будет она работать или нет: 1. Есть набор классов он загружен в ClassLoader1 этот код запускается 2. Код из 1 загружает в ClassLoader2 несколько классов из папки /dir1 3. Код из 1 загружает в ClassLoader3 несколько классов из папки /dir2 4. Третий шаг повторяется несколько раз 5. Классы созданные в пунктах 3-4 создают объекты реализованные в ClassLoader1, далее объекту из ClassLoader2 который тоже реализует интерфейс из ClassLoader1 передаются объекты из 3-4. 6. Объект созданный при помощи ClassLoader2 работает. 7. В какой-то левый момент времени. Объекты из него убираются. 8. Повторяем шаги 3-4 для других Класслоадеров и других классов реализующих всё-тоже самое. По документам классы из 3-4 шага будут выгружены из памяти, поэтому можно повторять такое бесконечно и проблем с памятью не будет.
>>1109714 А гредл может выкачивать с cекретного ftp новые jar файлы причем даже не зная ничего о их содержимом кроме имени класса который нужно загрузить и при этом не прерывать работу?
>>1109716 > А гредл может выкачивать с cекретного ftp новые jar файлы причем даже не зная ничего о их содержимом кроме имени класса Может. > который нужно загрузить и при этом не прерывать работу Открой для себя жигсу, если ты презренный монолитоблядок, или открой для себя удивительный мир блю грин деплоймента, если ты микросервисогосподин, а не ебись с дрисней, которая в кривых руках все равно работать не будет. Или в жопу иди, потому что тебе это не нужно, если ты диванный теоретик.
Подскажите, пожалуйста, нужно по заданию в универе сделать парсер картинок с сайтов и самих, собственно сайтов, чтобы потом можно было открыть без подключения к интернету и просмотреть копию сайта (если там не динамически подружраются данные, конечно). Что читать, чтобы это сделать? Никто об этом не пишет, потому что мало кто парсит не через всякие jsoup, а пользоваться сторонними библиотеками нам запрещено. Что читать и куда воевать?
>>1110152 Тебе парсить картинки нужно. Не, ну можешь, конечно, фильтры, там, понакладывать, свертки или вообще попиксельно анализировать, но это кагбе заебешься. Что за картинки-то?
>>1110194 Ты дз в универе шоль никогда не сдавал? Проходишь скомпилированные тесты, потом показываешь оригинальный код, чтобы проверили форматирование и соответствие конвенции об оформлении, дабы код не выглядел как говно. Иначе не принимают если похоже на быдлокод- - тоже не принимают, иначе это говно можно было бы в лоб просто проходом по html сделать
Оцените, что мне скинули, для обучения по вакансии на qa. Я нихуя не понял, едва ведущий без предупреждения с вертухи зарядил про какой-то public class и сборщик мусора, без каких-либо пояснений. Только начал смотреть, но я правильно понимаю, что любой видеокурс из гайда в шапке будет лучше чем это творение? https://drive.google.com/drive/folders/1XLW_vf-o8k1UCD1s9oTX8XfAe68Tpavv
>>1110611 Погугли «C# 2010. Ускоренный курс для профессионалов» (Трей Нэш) и начни с неё. Не смотри, что 2010 год и C#, она до сих пор не устарела, во всех языках из большой тройки всё примерно одинаково. Потом читай по диагонали «Cracking the Coding Interview» (Gayle Laakmann), там уже атсруальные на 2017 год примеры на Жаббе.
>>1109558 Да, предыдущее приложение действительно было графическое, а это консольное. Перевязял ассоциацию на java. Теперь по двойному клику запускается окно консольки и тут же исчезает. Хотя через команду java -jar опять же все без ошибок.
>>1110962 >запускается окно консольки и тут же исчезает Твое приложение запускается, отрабатывает и завершается. Это нормальное поведение. Хочешь, что бы осталась висеть консоль - добавь в конце своего приложения что-то, что будет ожидать ввода пользователя.
Итак, у меня 70 дней, чтобы надрочить жабу так, чтобы взяли кодить хотя бы за 30к. Есть небольшой бэк в виде js html css на уровне школьника-любителя. Начал с курса Бучалки на юдеми.
Сап, джаваны, есть небольшая идея сделать бота в телеграме который принимает от юзера сообщение и отправляет его на определенную почту. Сам кроме простых http запросов ничего особо не писал, хотел бы узнать с какого угла начать чтобы двигаться в правильном направлении.
Говнокодю селениум-автотесты, хочу сделать архитектуру покрасивше, а то перед пацанами стыдно. Может знает кто, чего можно читнуть базового, именно по проектированию структуры, чтоб с лучшими практиками и всё такое
>>1111147 держи в курсе. сам год на php работаю (симфони), но в среднесрочной перспективе хотелось бы перейти на джаву. правда в этом во всем смущает уходить на меньшую зп
Сейчас будет очень, очень странный вопрос. Есть небольшая библиотека, которую однако будет трудно перенести на другой язык. Есть микросервис оьертка для библиотеки который сидит слушает порт и отвечает в силу своих возможностей. Суть такова - нужно уменьшить количество потребляемой памяти, сейчас оно потребляет около 20мб. Нужно уменшить, чем больше тем лучше. Код уже заточен на это, как оптимизировать через параметры jvm?
сап двач. на зимних каникулах решил заняться чем - то полезным. собираюсь написать морской бой по сети (клиент-сервер). в начале думал полностью на жабе сделать (это по идее намного проще), но решил что надо осваивать веб. короче, пришел к следующему: 1) покупаю какой нить хост, куда кладу сервер, полностью написанный на жабе. 2) и пишу клиент на жабаскрипте(учить его буду по ходу)
вопрос такой, как будут общаться клиент и сервер ? и еще такой вопрос: вот допустим я купил хост, написал сервер на жабе который открывает serversocket на порту 80. вот по идее когда кто нить ткнет по моей странице -- браузер сформирует запрос на этот хост и порт 80 ? потом сработает мой серверсокет (ниче что они на разных языках написаны ? сервер на жабе, а тот же хром например на сях и асме) и я смогу отправить html форму с клиентом на js ? а ведь мне еще нужно отправить ресурсы игры(у меня есть текстурки анимированной воды, ламповые кораблики пиксельные, звуки взрывов)...это все можно будет передать ?
Насколько вообще скучна ява? Есть что нибудь повеслее? Сейчас учу спринг и как то оно прям хз, мотвирует съебывать из айти подальше. Ил когда освою, мешанина из конфигов хмлек и аннотаций сольется в моей голове в прекрасную картину? Подозреваю что будет та же рутина. Облизываюсь на МЛчик, но в математике не силен.
Всем привет. Пытаюсь разобраться с такой вещью, как classpath. Вопрос: почему не запускается команда с пика? Кодировка совершенно точно ANSI, проверено и перепроверено.
чет реально нехуя не пойму вот есть у меня fxml разметка интерфейса, у которой есть свой контроллер этот контроллер и будет выступать в роли view в mvc?
Как найти опенсорс проект, в который я мог бы покоммитить? Мидл 1 год опыта. Для повышения скилла хочу участвовать в опенсорс, но если взять какой-нибудь Spring или Hibernate - это же пиздец монстры, в них хер разберёшься.
>>1115843 Устройся лучше на место работы получше. Опенсурс - это фейк, там быдлокод быдлокодом. Все решения примитивны до невозможности, всё ядро написано профессиональными программистами на зарплате (пивотал/red hat). Лучше подготовься получше к интервью и ищи БОЛЬШОЙ проект, чтобы он желательно был кор проектом компании, вокруг которого весь бизнес построен - так будет гарантия, что в него вливают неплохо бабло и туда нанимают дорогих программистов. И копайся в их фреймворке, когда устроишься - дохуя чего нового для себя откроешь.
>>1115902 Чайку. Участие в попенсорсе тебе толком ничего не даст (если это не твой проект). В сложных проектах, которые написаны программистами на зарплате, хуй разберешься за пару выходных, да и левые хуи им не нужны. 0звездные попенсорсы не нужны. Попенсорсы средней руки, которые вроде и используются (например тобой), но вроде и не спрингернейт, зачастую наговнокожены и авторы очень редкостно хранят свой говнокод - добавление нового функционала в нормальном виде воспринимается вахтерами в штыки и твой пр хуй куда замержат. В результате просто прикручиваешь артифакторю к своему форку и юзаешь запиленные тобой фичи.
Попенсорс это здорово и офигенно, когда ты его юзаешь, но когда ты его пишешь и это не твой попенсорс - это бесплатная работа.
согласен, коммиты в опенсорс пригодны только для того чтобы разобраться во фреймворке + строчки в резюме, ну и как бонус ЧСВ
лол с челов, которые думают, что весь опенсорс написан исключительно ради благотворительности, тот же Pivotal имеет десятки сильнейших РАБотников, которые на полной ставке хуячат код явно не за еду и воду
>>1094694 (OP) Не бейте ссаными тряпками, а лучше помогите студентоте. Есть вот такое задание, но у меня с ним всё почему-то хуёво. "Напишите программу, которая читает с клавиатуры данные про студентов группы (№, фамилия, имя, город, адрес, телефон, средняя оценка) и записывает данные в файле на диске. После этого читает данные из файла и выводит на экран только тех людей, которые выполняют условие из варианта (желательно составить меню, которое позволит: создание файла; вывод на экран содержимого файла; добавление данных; изменение данных; обработка данных согласно варианту; удаление данных; выход из программы и другие). Вариант: вывести студентов со средней оценкой 7 или меньше"
Умудрился сделать только чтение с клавы, запись на диск и вывод на экран студентов что удовлетворяют условию варианта. Проблемес в том, что нихуя не получается сделать меню и всё что в нём требуется, ошибок просто дохуя и я не понимаю их. Может кто дать совет или поделиться ссылкой нахуй где я смогу разузнать по своей теме? А то облазил весь гугл и нихуя не нашел кроме пары тройки примеров и теории.
Можно ли (стоит ли) начинать учить сразу спринг, если веб приложений на java не писал? Писал только околокалькуляторные десктоп приложения c использованием javafx и взаимодействием через jdbc с mysq бд. Ну еще условное приложение несуществующего интернет магазина под ведро, но это уже совсем другая история
Сапчан! Нашёл на просторах интернета упражнение: "Напишите рекурсивный метод отображающий строку задом на перед." Сам не решил, пришлось гуглить, нашел. Но не могу понять как оно работает. https://pastebin.com/jFqS4cEN
Непонятно почему строка: return rewrite (in.substring(1)) + in.charAt(0);
Возвращает строку задом наперед, если substring, согласно этой статье: http://proglang.su/java/strings-substring возвращает строку с указанного индекса , а charAt добавляет символ с индексом 0. Тогда, если мы на вход приходит строка "1234", то на выходе должна быть "2341", а получается задом наперед. Не могу понять почему.
>>1122139 Чтоб понять, что происходит, можешь просто запустить дебаг мод и смотреть. Он "заходит" в этот метод 4 раза, потом "выходит" 4 раза. После первого прохода, когда он доходит до этой строки, ин = "321" и остяется rewrite ("321") + "4". Запускается метод rewrite опять, и +"4" продолжают "висеть" и ждать пока все выполнится. Сложно объяснить. И когда ин становится просто "1", то мы попадаем в return in; Однако мы не "полностью" покидаем этот метод, ибо это метод вызвал сам себя еще 3 раза и конечно же ждет свое значение.
>>1122182 А, я кажется начинаю понимать: входим в метод со строкой "4321". Этот метод возвращает себе же "321" + "4". Но возвращаемое значение является входным для следующего, и мы снова переносим первый символ вперед и получаем "21" + "34" . За тем еще раз и получаем "1" + "234". И еще раз и получаем "null" + "1234", эта прогонка вызывает метод еще раз и выполняет условие in.length()<= 1 и так мы выходим из метода с переписанной задом на перед строкой. Я правильно понял?
>>1122259 Ну да, почти. На первом возврате у нас будет return rewrite("321") + "4" На втором return rewrite("21") + "3" + "4" На третьем return rewrite("1") + "2" + "3" + "4" Тут длина стринга наешго уже равняется один и поэтому мы поподем в блок, где просто return in. То есть в конце имеем return "1" + "2" + "3" + "4" До null-а мы не дойдем, ибо там меньше или равно единицы. К тому же, если ты попытаешься узнать длину null-а, получишь наллпоинтер.