Это копия, сохраненная 7 мая 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ?
A:Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать?
A: Туториалы:
BEGINNER: http://myflex.org/books/java4kids/java4kids.htm
MEDIUM: http://www.tutorialspoint.com/java_technology_tutorials.htm
HARD: http://docs.oracle.com/javase/tutorial/
Книги:
- Head First Java, (2nd Edition) : Kathy Sierra, Bert Bates - для совсем нулячих простым языком.
- Core Java (9th edition) : Cay S. Horstmann, Gary Cornell - тоже для нубасов, но на серьёзных щщах.
- Thinking in Java (4th Edition): Bruce Eckel - для тех, кто уже умеет в программирование на другом языке, но хочет перекатиться.
- Effective Java (2nd Edition): Joshua Bloch - для тех, кто знает джаву, но хочет перестать писать костыли.
Больше здесь: http://www.proklondike.com/books/java.html
Видео:
https://habrahabr.ru/company/golovachcourses/blog/215275/ : 1000+ часов видео по Java на русском.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо?
A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко обьявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять сраз скопипасти этот кусок кода". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Пока читаю, все понимаю, а сам ничего сделать не могу. Что делать?
A: Практика, больше практики.
Уровня laba1.pas: http://codingbat.com/java http://codehunt.com
Чутка серьезнее: http://programmr.com/zone/java http://codingame.com/puzzles
Рулеточка: http://postimg.org/image/xdfbvgps9/
Олимпиадка: http://codeforces.com
Примеры той-проектов: http://eax.me/programming-language-learning/
Q: Я выучил кор, достаточно ли этого, чтоб взяли на работу?
A: Лол, конечно нет хотя некоторым всё же везёт.
Вот майндмап с джава-технологиями: https://atlas.mindmup.com/2015/10/3d59a040592a0133d02a5d31ebcc5420/java/index.html
Цикл статей что в каком порядке учить: http://dou.ua/lenta/articles/java-beginner-guide-1/ (заблочен РосКомПозором, юзайте прокси)
Q: Слышал, SQL знать надо обязательно. Где его учить?
A: Начни с малого: http://www.w3schools.com/sql/default.asp
Затем переходи к: http://www.sql-ex.ru/
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут.
A: Не беда, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI
То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Q: Я готов к первому собеседованию.
A: Проверь свои знания здесь: http://www.quizful.net/test
И здесь: http://www.careercup.com/
Q: Вопросы на собеседование.
A: http://jsehelper.blogspot.ru/2016/01/blog-post_59.html : куча вопросов с ответамине всегда правильными
http://becomejavasenior.com/blog/2015/07/01/327-interview-questions-java-developer/
Q: Какие еще ресурсы можно почитать?
A: https://android-arsenal.com/ : android
https://google.github.io/styleguide/javaguide.html : google java style
http://blog.jooq.org/ : Java, SQL, and jOOQ
http://virtualjug.com/podcast/ : подкасты
Q: Где можно пообщаться на java тематику?
A: В этом ITT треде
https://www.reddit.com/r/java : reddit
http://stackoverflow.com/questions/tagged/java : платформа для вопросов и ответов
Список java фреймворков, библиотек и по на любой вкус:
https://github.com/akullpp/awesome-java
Предыдущий тред тонет тут >>692136 (OP)
Автор не претендует на абсолютную истину, если вы сможете ПРОСТО ВЗЯТЬ И УСТРОИТЬСЯ - буду за вас только рад.
Здравствуй, ночной.
Знаю, что на двоще всегда было дохуя желающих вкатиться в погроммирование, так что я решил, что моя история может быть кому-то полезна.
Сам я долбоёб 26 лет от роду, пару раз повернувший не туда. Дело в том, что после института (сам я у мамы инженер-математик) мне предложили работу быдлоадмина. Я легко согласился и, разобравшись со своим кругом обязанностей, начал заниматься тем, чем заниматься явно не стоило - играть в игры на рабочем месте, двачевать капчу и смотреть сериалы. Перспектив особых не было, да я и не стремился, наслаждаясь тем, что я нихуя не делаю, а мне за это ещё и платят. Через пару лет до меня дошло, что зп нихуя не растёт, новые обязанности мне никто не предлагает, сам я ничего не делаю и вообще я хуй и дальше так нельзя. Тут я решил, что развиваться именно в администрировании у меня нет никакого желания, вспомнил о том, что в институте мне нравилось кодить и решил пойти в погроммисты. В качестве языка я довольно быстро выбрал джаву: освоить проще, чем плюсы, платят больше, чем за пыху или жабаскрипт, вакансий вроде бы достаточно.
От нехуй делать я даже записался на какие-то курсы, не то, чтобы в этом была реальная необходимость, но я подумал, что корочка каких-то курсов лучше, чем ничего. Выучив кор за несколько месяцев я пошёл искать работу и тут оказалось, что никому я нахуй не нужен в качестве младшего разработчика. Были варианты неоплачиваемых стажировок, но я тогда рассудил лашара, что не хочу бросать стабильную работу ради нестабильных перспектив. В конце концов, я просто забил хуй и отложил поиски в долгий ящик. Ящик оказался не таким уж долгим: в начале прошлого года контору начало колбасит, массовые увольнения стали регулярными, а в середине лета начальство сообразило, что им уже нахуй не нужно столько сисадминов, и в итоге большую часть повыгоняли нахуй. Так, 1 августа прошлого года я оказался в свободном плавании.
Тогда я сообразил, что если сейчас снова устроюсь быдлоадмином - могу так и остаться на этой работе навсегда, время идёт, а моложе я с годами не становлюсь. Отдельная квартира уже была, тянке я наобещал "да норм, пару месяцев поживём на твою зп, а потом и подвернётся что-то".
Достаточно понял, что нихуя ничего не подворачивается, никаких стажировок не видно, а брать к себе за еду никто не хочет, видать кризис сказался. Спустя пару месяцев я познакомился с аноном из /pr/, который оказался настоящим няшей: добавился в скайпике и стал отвечать на разные мои идиотские вопросы по трудоустройству, по резюме, не ленился заглядывать в мой говнокод и говорить, что стоит поправить. Он же подсказал, чтов ДС2 можно устроиться в джава-школу при компании T-Systems, которые готовы около 3 месяцев обучать людей бесплатно и с некоторой вероятностью трудоустраивать после обучения.
Я дождался ближайшей школы, набор в которую начался только в конце октября. Отбор был достаточно жёсткий, тестики, разговорный английский, очень доёбистое техническое собеседование, но я оказался не совсем хуем и поступил. Занятия начались в ноябре и продлились до середины января. Всё это время я пиздец как въёбывал (пожалуй, за эти пару месяцев я потратил на учёбу столько же, сколько за 5 лет в институте), но результаты были неплохими: я освоил Spring (достаточно распространённый фреймворк), Hibernate (либа для ORM), тестирование, логгирование, веб-сервисы, немного EJB, написал небольшой проект (примерно 3к строк кода) - рабочее веб-приложение, сорт оф интернет-магазин.
Потом получилось не особо удачно: в T-Systems меня так и не взяли, как и ещё половину обучавшихся. Я не особо расстроился и решил, что всё это хуйня и что теперь-то я без проблем найду себе работу, но внезапно оказалось, что нихуя подобного. Выяснилось, что на весь ДС2 буквально 3-4 конторы готовы брать людей без опыта и конкуренция к ним, надо думать, нихуёвая. В общем, со всеми этими спрингами и хибернейтами я оказался нинужен. Спустя месяца полтора я ощутил максимум безысходности: шёл 8 месяц без работы, с момента окончания джава-школы меня позвали буквально на 2 собеседования, и оба раза отказали, мол, эх, ты няша, но нам бы мидла с опытом. Ну и тян меня ни разу не упрекнула в том, что я безработное хуйло, но я уже и сам начал гореть, да и вряд ли её сильно радовало столько времени кормить меня и оплачивать жильё а уж её мамка, должно быть, и вовсе сгорела, хотя ни разу ничего мне говорила. В общем, я уже был готов искать работу админом. но тут мне наконец (наконец!) улыбнулась удача.
Дело в том, что с месяц назад одна знакомая тянка (которую тоже не взяли в Т, к слову) позвала меня за компанию на ярмарку вакансий, но в итоге сама заболела и не поехала. Я приехал, побродил среди стендов, позаполнял анкетки, подоёбывался до представителей разных компаний, послушал лекции, да и съебал. Пару недель спустя обо мне внезапно вспомнили и из одной конторы прислали тестовое задание, которое я, разумеется, благополучно сделал. Потом меня позвали на собеседование, которое было, прямо скажем, странным. Собеседовался я на стажёра, требованиями к которому писали буквально базовые навыки, но ебали меня джва с половиной часа, не считая предварительных минут двадцати болтовни с HR, которая заодно проверила английский. Спрашивали вообще всё, начиная с базовых принципов ООП (не на уровне "перечислите", как это обычно бывает, а именно подробно), продолжая кучей примеров на наследование, перегрузку, переопределение, порядок инициализации, многопоточность, коллекции, итераторы, вебсервисы, скопы спринговых бинов, принципы работы хибера, задачки на логику, куда же без них. Ушёл я чувствую себя в край заёбаным и разбитым, но внезапно взлетело и через несколько дней я получил оффер.
Интерновская зп, прямо скажем, далеко не предел мечтаний 24, но хули делать. Через пару месяцев обещают перевод в джуны и увеличение зп в два раза, ну и вообще контора выглядит достаточно перспективной, условия работы приятные, впрочем, там будет видно.
Автор не претендует на абсолютную истину, если вы сможете ПРОСТО ВЗЯТЬ И УСТРОИТЬСЯ - буду за вас только рад.
Здравствуй, ночной.
Знаю, что на двоще всегда было дохуя желающих вкатиться в погроммирование, так что я решил, что моя история может быть кому-то полезна.
Сам я долбоёб 26 лет от роду, пару раз повернувший не туда. Дело в том, что после института (сам я у мамы инженер-математик) мне предложили работу быдлоадмина. Я легко согласился и, разобравшись со своим кругом обязанностей, начал заниматься тем, чем заниматься явно не стоило - играть в игры на рабочем месте, двачевать капчу и смотреть сериалы. Перспектив особых не было, да я и не стремился, наслаждаясь тем, что я нихуя не делаю, а мне за это ещё и платят. Через пару лет до меня дошло, что зп нихуя не растёт, новые обязанности мне никто не предлагает, сам я ничего не делаю и вообще я хуй и дальше так нельзя. Тут я решил, что развиваться именно в администрировании у меня нет никакого желания, вспомнил о том, что в институте мне нравилось кодить и решил пойти в погроммисты. В качестве языка я довольно быстро выбрал джаву: освоить проще, чем плюсы, платят больше, чем за пыху или жабаскрипт, вакансий вроде бы достаточно.
От нехуй делать я даже записался на какие-то курсы, не то, чтобы в этом была реальная необходимость, но я подумал, что корочка каких-то курсов лучше, чем ничего. Выучив кор за несколько месяцев я пошёл искать работу и тут оказалось, что никому я нахуй не нужен в качестве младшего разработчика. Были варианты неоплачиваемых стажировок, но я тогда рассудил лашара, что не хочу бросать стабильную работу ради нестабильных перспектив. В конце концов, я просто забил хуй и отложил поиски в долгий ящик. Ящик оказался не таким уж долгим: в начале прошлого года контору начало колбасит, массовые увольнения стали регулярными, а в середине лета начальство сообразило, что им уже нахуй не нужно столько сисадминов, и в итоге большую часть повыгоняли нахуй. Так, 1 августа прошлого года я оказался в свободном плавании.
Тогда я сообразил, что если сейчас снова устроюсь быдлоадмином - могу так и остаться на этой работе навсегда, время идёт, а моложе я с годами не становлюсь. Отдельная квартира уже была, тянке я наобещал "да норм, пару месяцев поживём на твою зп, а потом и подвернётся что-то".
Достаточно понял, что нихуя ничего не подворачивается, никаких стажировок не видно, а брать к себе за еду никто не хочет, видать кризис сказался. Спустя пару месяцев я познакомился с аноном из /pr/, который оказался настоящим няшей: добавился в скайпике и стал отвечать на разные мои идиотские вопросы по трудоустройству, по резюме, не ленился заглядывать в мой говнокод и говорить, что стоит поправить. Он же подсказал, чтов ДС2 можно устроиться в джава-школу при компании T-Systems, которые готовы около 3 месяцев обучать людей бесплатно и с некоторой вероятностью трудоустраивать после обучения.
Я дождался ближайшей школы, набор в которую начался только в конце октября. Отбор был достаточно жёсткий, тестики, разговорный английский, очень доёбистое техническое собеседование, но я оказался не совсем хуем и поступил. Занятия начались в ноябре и продлились до середины января. Всё это время я пиздец как въёбывал (пожалуй, за эти пару месяцев я потратил на учёбу столько же, сколько за 5 лет в институте), но результаты были неплохими: я освоил Spring (достаточно распространённый фреймворк), Hibernate (либа для ORM), тестирование, логгирование, веб-сервисы, немного EJB, написал небольшой проект (примерно 3к строк кода) - рабочее веб-приложение, сорт оф интернет-магазин.
Потом получилось не особо удачно: в T-Systems меня так и не взяли, как и ещё половину обучавшихся. Я не особо расстроился и решил, что всё это хуйня и что теперь-то я без проблем найду себе работу, но внезапно оказалось, что нихуя подобного. Выяснилось, что на весь ДС2 буквально 3-4 конторы готовы брать людей без опыта и конкуренция к ним, надо думать, нихуёвая. В общем, со всеми этими спрингами и хибернейтами я оказался нинужен. Спустя месяца полтора я ощутил максимум безысходности: шёл 8 месяц без работы, с момента окончания джава-школы меня позвали буквально на 2 собеседования, и оба раза отказали, мол, эх, ты няша, но нам бы мидла с опытом. Ну и тян меня ни разу не упрекнула в том, что я безработное хуйло, но я уже и сам начал гореть, да и вряд ли её сильно радовало столько времени кормить меня и оплачивать жильё а уж её мамка, должно быть, и вовсе сгорела, хотя ни разу ничего мне говорила. В общем, я уже был готов искать работу админом. но тут мне наконец (наконец!) улыбнулась удача.
Дело в том, что с месяц назад одна знакомая тянка (которую тоже не взяли в Т, к слову) позвала меня за компанию на ярмарку вакансий, но в итоге сама заболела и не поехала. Я приехал, побродил среди стендов, позаполнял анкетки, подоёбывался до представителей разных компаний, послушал лекции, да и съебал. Пару недель спустя обо мне внезапно вспомнили и из одной конторы прислали тестовое задание, которое я, разумеется, благополучно сделал. Потом меня позвали на собеседование, которое было, прямо скажем, странным. Собеседовался я на стажёра, требованиями к которому писали буквально базовые навыки, но ебали меня джва с половиной часа, не считая предварительных минут двадцати болтовни с HR, которая заодно проверила английский. Спрашивали вообще всё, начиная с базовых принципов ООП (не на уровне "перечислите", как это обычно бывает, а именно подробно), продолжая кучей примеров на наследование, перегрузку, переопределение, порядок инициализации, многопоточность, коллекции, итераторы, вебсервисы, скопы спринговых бинов, принципы работы хибера, задачки на логику, куда же без них. Ушёл я чувствую себя в край заёбаным и разбитым, но внезапно взлетело и через несколько дней я получил оффер.
Интерновская зп, прямо скажем, далеко не предел мечтаний 24, но хули делать. Через пару месяцев обещают перевод в джуны и увеличение зп в два раза, ну и вообще контора выглядит достаточно перспективной, условия работы приятные, впрочем, там будет видно.
Работаю четвертый день, пью чай, заполняю документацию о себе, пью кофе, хожу на стендапы, пью чай, заебываю окружающих вопросами типа "чому soapUI опять какую-то хуйню выдал", хожу на тесты по английскому и семинары на тему того, как охуенно строить карьеру в нашей компании, обедаю, играю с пасанами в кикер, пью чай с печеньками, ковыряю очередной вебсервис, пытаюсь понять, хули я не могу его запустить, читаю /pr/, кофе пью. Разного чая дохуя, кофеварка с кофемолкой, сиропы разные, сливки, печеньки. Сам код еще ни разу не видел, на просьбу его показать отвечают, что потом.
Я по началу думал, что я записал это и забыл.
Лучше б свою кулстори написал.
Заходят в тред ньюфаги и каждый второй с вопросами о том, насколько легко вкатиться, что делать, куда идти. А в ответ истории разной степени охуительности, от "проходишь первые 10 уроков джавараша, а потом просто идёшь и устраиваешься" до "даже и не пытайся".
Java persistence with hibernate
Beginning hibernate
Spring in action.
Третья. Хибер сам по себе не так уж сложен, прочитай пару статей и юзай.
Спасибо анон, а можешь еще с одним вопросом помочь? Я очень много читаю, но слишком мало пишу код. Просто не понимаю что писать, все примеры в книжках слишком абстрактные, а когда доходит дело до реальных задач, то я просто теряюсь. Как заставить
Себя писать код?
Ну, вот и читай Spring in Action там по ходу как раз показывают, как свой твиттер запилить. Достаточно реальная задача для тебя?
А если ты решил считать 0 байтов?
Вполне, пойду читать. Спасибо тебе, няша.
Аноны, прочитал эккеля, смотрел видяшки/читал хабр - разобрался с сервлетами, jsp, jsf, хибером. Думал смогу устроиться джуном, но че то нихуя. 13 просмотров за 2 недели, и ни одного звонка. Думаю че пока учить дальше: jee или spring? Посмотрел hh и вроде как jee никому не высралось, правильно? Что лучше начать читать spring в действии или spring для профессионалов? Или ещё что посоветуете?
Один парень на работе говорит, что es лучше юзать при поиске по нескольким полям. Но ведь много кто юзает es и не парится.
И ещё, в некоторых примерах говорится "индексирование записей занимает X часов". Индексирование, насколько я понимаю, это и есть запись?
>Посмотрел hh и вроде как jee никому не высралось, правильно?
Да. Даже на собеседованиях, когда говорят про J2EE, спрашивают только сервлеты.
>spring в действии
Лучше написана, лучше читается, лучше воспринимается, говняная обложка боюсь её читать чтобы не лопнула.
>spring для профессионалов
Хреновый перевод, написана сложно, божественная обложка. Один парень говорит, что разбирается много тонкостей, но это непроверенная инфа.
>Аноны, прочитал эккеля, смотрел видяшки/читал хабр - разобрался с сервлетами, jsp, jsf, хибером. Думал смогу устроиться джуном, но че то нихуя. 13 просмотров за 2 недели, и ни одного звонка.
Тебя это удивляет?
Ну, тогда читай на здоровье.
В любой момент, если что-то будет непонятно, сможешь перечитать в in action.
И, кстати, когда дойдёшь до рестов, советую прочитать в обеих книгах если будешь читать для профессионалов. В in aciton разбирается пара сервисов, с которыми обычно взаимодействуют энтерпрайзные прилаги.
Да
Спасибо, добрый человек
Сначала пользователь вводит одно число - размерность квадратной матрицы. Вопрос в том, что мне надо вывести диалог ввода каждой из несколько матриц, и количество TextField-ов зависит от количества элементов. Как это все отобразить? То есть как сделать определенное количество TextField и потом пройтись по них?
Передаёшт массив нулевой длины и получаешь 0. Потому что данные в потоке есть, а читать некуда.
Тогда страдай. Ды даже не конкретизировал какие потоки, а их в джаве трое.
В общем посоветуй хорошего чтива анон.
я джва года ждал такую шапку, два jvm опу
Если хочешь одностраничник на angular, то jsp вообще не нужно. Голый html-каркас со скриптами, которые дергают твой REST на джаве.
Вот туториал по ресту на спринге: https://spring.io/guides/gs/rest-service/
С ангуляром разберешься сам.
Не нужны вообще никому.
Историческая справка: апплеты создавались для того, чтоб занять нишу, позже полностью занятую флешем. Вот уже и флеш умер, а апплеты за каким-то хуем до сих пор в книги пихают.
Понятно, спасибо за ответ, а то я совсем зелёный :)
Спросил на "авось пригодятся", ну или может быть потом знание этих апплетов поможет в дальнейшем изучения Java. Пойду-ка я учить потоки и исключительные ситуации.
Вот это как раз охуенно важно, учи.
google://"слабоумие"
Тонко.
>Привет, господа. Объясните, когда лучше использовать ElasticSearch?
Один парень на работе говорит, что es лучше юзать при поиске по нескольким полям. Но ведь много кто юзает es и не парится.
И ещё, в некоторых примерах говорится "индексирование записей занимает X часов". Индексирование, насколько я понимаю, это и есть запись?
Бамп.
Там нет инфы по поводу лицензии всего контента.
Рад что у тебя наконец-то получилось, надеюсь, ты теперь съебешь из моего треда.
Пару месяцев назад из моей команды уволился коллека, перешел на удаленку в спб. Сегодня мне досталась участь мержить его наработки в основную ветку, я там чуть не повесился с его дрисни, откуда такие вообще берутся блять, и как убеждают других что они что-то умеют?
1. Каждый второй файлик отформатирован, даже если в нем нет изменений.
2. При этом длины строк > 150 символов как бы норма у него, главное что спереди пробельчиками выровняно.
3. То, что средой не отформатировано (видать забыл парень) написано как в приходе - нет единого стиля, переносы не используются.
4. Код лапшевидный и непродуманный, какие-то псевдо-глобальные переменные размазанные по проекту, костыльные решения тривиальных задач. Метод
doWork() {
..try {
....init();
....prepare();
....doJob();
....finish();
..} (catch Exception e) {
..logger.error(e);
}
Это просто вершина долбоебизма, просто блять прыгай по этим методам и смотри что они там делают, ломай голову нахуя были приняты какие-то промежуточные решения и запоминай состояние глобальных переменных которые эта ересь меняет.
5. Знание английского - полный ноль, не умеет даже образовывать множественную форму существительных. Но не стесняется этого и активно срет своим суржиком в коментах и коде.
6. При перемещении файлов удаляет их и пересоздает с нуля (абсолютное непонимание принципов работы систем контроля версий)
7. Закоммичены файлы среды разработки и даже билд директори.
8. Но ни одна таска не закоммичена атомарно, нехватающие файлы лежат где-то на 5 ревизий впереди, ни один срез в итоге не компиляется, даже последний.
9. Скрипты сборки написаны явно на СО, некоторые скомпиленные классы оказываются продублированы до трех раз. Либы лежат в корне war а не в WEB-INF/lib, при этом лежат неиспользуемые либы, при этом либы вообще не должны быть внутри war-ника, когда продукт поставляется в ear.
10. Хотел заюзать StringUtils из apache commons, но заюзал из springframework - даже не заметил.
Эта тварь все еще в моем городе, если ты читаешь это строки, падла, знай, что при встрече я тебя на смех подниму за все твои грешки, мразь, так что в офис тебе ообратная дорога закрыта.
Рад что у тебя наконец-то получилось, надеюсь, ты теперь съебешь из моего треда.
Пару месяцев назад из моей команды уволился коллека, перешел на удаленку в спб. Сегодня мне досталась участь мержить его наработки в основную ветку, я там чуть не повесился с его дрисни, откуда такие вообще берутся блять, и как убеждают других что они что-то умеют?
1. Каждый второй файлик отформатирован, даже если в нем нет изменений.
2. При этом длины строк > 150 символов как бы норма у него, главное что спереди пробельчиками выровняно.
3. То, что средой не отформатировано (видать забыл парень) написано как в приходе - нет единого стиля, переносы не используются.
4. Код лапшевидный и непродуманный, какие-то псевдо-глобальные переменные размазанные по проекту, костыльные решения тривиальных задач. Метод
doWork() {
..try {
....init();
....prepare();
....doJob();
....finish();
..} (catch Exception e) {
..logger.error(e);
}
Это просто вершина долбоебизма, просто блять прыгай по этим методам и смотри что они там делают, ломай голову нахуя были приняты какие-то промежуточные решения и запоминай состояние глобальных переменных которые эта ересь меняет.
5. Знание английского - полный ноль, не умеет даже образовывать множественную форму существительных. Но не стесняется этого и активно срет своим суржиком в коментах и коде.
6. При перемещении файлов удаляет их и пересоздает с нуля (абсолютное непонимание принципов работы систем контроля версий)
7. Закоммичены файлы среды разработки и даже билд директори.
8. Но ни одна таска не закоммичена атомарно, нехватающие файлы лежат где-то на 5 ревизий впереди, ни один срез в итоге не компиляется, даже последний.
9. Скрипты сборки написаны явно на СО, некоторые скомпиленные классы оказываются продублированы до трех раз. Либы лежат в корне war а не в WEB-INF/lib, при этом лежат неиспользуемые либы, при этом либы вообще не должны быть внутри war-ника, когда продукт поставляется в ear.
10. Хотел заюзать StringUtils из apache commons, но заюзал из springframework - даже не заметил.
Эта тварь все еще в моем городе, если ты читаешь это строки, падла, знай, что при встрече я тебя на смех подниму за все твои грешки, мразь, так что в офис тебе ообратная дорога закрыта.
можешь пойти на хуй
ИМО просто бекенд лучше, так как gwt вроде потихоньку загибается.
В плане хуевости, на нем только гугл толковые вещи и пишет, ибо нет больше долбоебов кто поведется на эту парашу
>На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Почему так, аноны? Можете пояснить?
Тк на джаве пишут веб, десктоп не пишут. Причем веб в больших конторах=> Фриланс не нужен. Можно андроидом заняться, но там странная джава
узнал себя?
Уже сделал бот автопилот на uoPilot - полностью поведением похож на человека - все движения/кликания рандомные, не дерганые.
Есть опыт >2 лет жавы. Spring hibernate. Сейчас сижу без работы.
Как мне видится - в окне приложения какая-то сторонняя программа считывает текст в нужном прямоугольнике -скидывает это в жаву(хз как пока). Жава ебала -в принципе я приебался к ней зря конечно - но хочется углублять свой навык именно в жаве - обращается к БД.
Также работа с api евы - тут не гуглил.
Отображение - идеально конечно в маленьком окошке рямо поверх игры - ну на худой конец через браузер.
В общем требование - легковесность. Как по системным требованиям, так и по коду.
Делаю это ибо нравится и пришел в еву именно ради этого.
> spring hibernate
> требование - легковесность
Does not compute.
Посмотри Spark framework или vert.x если надо легковесное решение.
А если хочешь спринг и хибер - то чем spring boot не подходит?
Не обязательно spring hibernate.
Благодарю за ответ. Сам участвовал только в 1 проекте, а дополнительно что-то изучать без практической необходимости не было желания. Ленивый.
Так погуглил - spring boot позволяет меньше настраивать вначале, ибо он сам настраивается исходя из депенденси в пом. Но по сути - это то же самое что и своими руками, только ты хз что происходит.
Чет планирую написать вначале как умею на spring hibernate maven wildfly spring data - максимально тяжеловесно.
А потом переписать на jdbc, возможно EJB(как раз поизучаю) и еще что-нибудь - и охуеть от полученной легковесности. Я ведь охуею, не?
Натурально так. Не думал же ты что доку имбы писали?
В конечном счете, ядро решает сколько байт будет считано. Может и 0 байт быть.
Ты долбоеб?
>Объясните, когда лучше использовать компьютер?
Один парень на работе говорит, что компьютер лучше юзать при поиске в интернете. Но ведь много кто юзает компьютер и не парится.
Ты промахнулся.
А так загуглишь вакансии в ДС, и gwt там вполне актуально.
Поясните за текущие реалии Android фриланса, аноны или адноид фриланс идет на спад и лучше вкатываться в вебмакакинг или энтерпрайз?
Сайтики клепать не очень интересно, а приложения хочется делать.
Все блять, разобрался
Играюсь с libgdx, столкнулся с негуглимой(для меня) проблемой:
При отрисовке TiledMap двигающейся камерой карту начинает рвать на части между тайлами, пикрелейтед.
Почему так? Как поправить? Куда копать?
код:
https://github.com/desu2/blinker/blob/master/core/src/com/mygdx/game/screens/Blinker.java
dropwizard&ebean
Что это такое?
Пример кода из книги хэд фёрст.
Всё остальное ясно как божий день, а вот почему HOUR OF DAY равняется 16 не могу понять
http://pastebin.com/dVaJ0eeJ
А, блять, понял походу.
это то что в set стоит время 15.40, а 15.40 - это типа четвертый час, а значит 16 часов. верно??
>>706125
нет. всё ещё не понял.
сделал со своим временем, выдало 11.
У меня меж тем уже 3 часа ночи
>>706125
>>706124
Блять, простите долбоёба.
Я так понял, что 11 он выдаёт по умолчанию, а я, долбоёб, забыл использовать get(HOUR_OF_DAY)
через него врде всё верно выдает
почитай потом про joda time на досуге
Да, пояснили быстра блд!
Почему в оп-посте написано что "На джаве фриланса нет"?
Куча предложений для андроид приложений, например вот тут https://www.weblancer.net/jobs/?category_id=2 треть всех проектов из категории "прикладное программирование" это андроид.
Андроид => Java => Фриланс есть
При этом заявок от фрилансеров оче мало, работать некому.
Ну, блять, познай себя, вначале, ёба.
Что тебе ближе: формы клепать, кнопочки, со страницами работать, юзер интерфейс придумывать. И вообще, можешь ли ты в красоту, любишь ли. Если это тебе в кайф - иди во фронтэнд.
Если не любишь это, не можешь - тогда в бэкэнд. Или просто нахуй. Все просто.
Удаленка мимо. Это исключение. В бодишопах, которых большинство из контор нашей реальности, такое очень редко практикуется. К тому же, прежде чем дохуя независимым стать, надо поработать ударно несколько лет, стать годным мидлом, хотя бы. Самостоятельно, а особенно хиккуя, таким не стать. А тут один загуглил "фриланс", и теперь пиздит, что фриланс на джаве есть. Другой - "удаленка", и тоже кудахчет. Я нагуглил, как мамку твою ебали.
Коммандная работа, общение со стороной заказчика, офис, овертаймы, митинги - это реальность джава тырпрайза. Дохуя хекка тут не сможет работать. Но умеренный интроверт - возможно. Если может в общение.
Если ты хочешь сидеть дома, быть дохуя независимым и закрытым - иди в другие технологии\языки. Хуле тут непонятного? Что вы все к джаве прицепились? Джавараша начитались? Есть же то, что идеально подходит под ваши желания.
Языки выбираются под проекты. Джава - для другого. А андроид - это андроид. Он не только на джаве, к тому же.
>Коммандная работа, общение со стороной заказчика, офис, овертаймы, митинги - это реальность джава тырпрайза.
Кстати, не понимаю, почему постоянно говорят так, словно это что-то плохое?
Это для обычно-куна норма. А для дру-хикки - ад. Большинство из них, во фриланс хочет же. Это другая среда. Ну дык и подбирай инструмент под нее. Учи php, ruby, javaScript хотя бы. Нет же, давай им именно джаву и именно во фрилансе.
Принимайте реальность, блеать! Хватит фантазировать.
Кстати, никогда не понимал стремления хикканов во фриланс. Там же даже чтоб заказ получить, нужно порядочно посоциоблядствовать, не говоря уж о том, что с клиентом на связи надо быть постоянно и клещами вытаскивать требования. Лучше уж сидеть тихо в углу офиса, пиля очередную интеграцию по четко описанному ТЗ.
1) Репозиторий использует класс маппер, чтобы конвертировать бизнес-логика-классы в entity-классы. Например repository.save(mapper.mapUserFomEntity(userEntity)); Это нормально? Иначе бизнес-классы или энтити должны знать друг о друге, что недопустимо.
2) Для конверсии маппер вручную инстанциирует классы бизнес логики и энтити, например User user = new UserImpl(); Это нормально, или использовать внедрение зависимостей? Если да, то внедрять класс, являющийся имплементацией а потом вызывать implClass.newInstance()? Либо делать через context.getBean() и настроить контекст возвращать бин, являющийся уже инстанциированным пустым объектом класса implClass? Стоит ли абсолютно везде избегать ручной инстанциации и использовать внедрение?
3) Делать для каждого энтити свой репозитарий? UserRepository, AccountRepository и т.д.?
4) Если на уровне сервиса нужно создать пользователя и создать счет для нового пользователя, нормально ли если UserService обращается к AccountService или лучше избегать такой межсервисной зависимости?
5) Хорошо ли бины-сервисы внедрять как статические объекты?
6) Какие книги почитать про вопросы такого рода?
Привет аноны.
Помогите мне додуматься как пройтись по ArrayList вида <Abonnent>. У абоннента есть куча параметров: фио, телефон, адрес и все они предствалены как String.
Хочу сделать чтобы можно было искать по имени (допустим что они все уникальные) и выводить к примеру нужный адрес.
Понятно, что нужен цикл for, но все равно ничего не понятно. Как выудить параметр имя из абонента, чтобы сравнить его с тем что ищем и как потом отобразить адрес.
>Как выудить параметр имя из абонента, чтобы сравнить его с тем что ищем и как потом отобразить адрес.
Что мешает запилить методы getName() и getAddress() и использовать их в цикле?
У твоего класса должны быть либо геттеры либо паблик поля с параметрами(что не гуд). Вот в цикле извлекай и сравнивай через equals.
Abonent findPhone(ArrayList<Abonent> abonents, String phone){
for(Abonent abonent: abonents) if(abonent.getPhone().equals(phone)) return abonent;
return null;
}
Джавагои, освоившие джаву 8 конечно обосрут, но идите нахуй.
Если идти в ногу со временем, то будет что-то типа:
abonents.stream().filter(abonent -> name.equals(abonent.getName())).findFirst();
Получишь Optional<Abonent>
Лучше не забивай ему голову этим, рано пока
Спасибо, но немного не то. Нужны только основные алгоритмы и СД, а тут, за исключением нескольких разделов, интересные и нетривиальные для меня штуки, которые не нужны в абсолютном большинстве случаев.
Уже похуй на алгоритмы, перестал плакать и нашёл всё нужное.
Есть что-то по СД? По-прежнему ищу справочник.
Похоже, что заебись. Большое спасибо.
1) >что недопустимо
С чего решил?
2) зависит от первого вопроса, but anyway KISS.
3) yes
4) normalno
5) no
6) hz
Месяца два назад я втянулся в программирование.
Всегда хотел это делать, ну вот на 22-м году жизни стал как-то реализовывать свою мечту.
В что-то въезжаю уже, в что-то нет: это явление нормальное, со временем разберусь. Всё равно это хобби, причём без привязки к языку. Просто начал с джавы, не знаю даже почему.
В общем, вкатываюсь сюда со своим будильником. Может, костыли(уверен, что точно есть) или велосипеды. Но всё-таки.
Класс, с которого всё начиналось. В нём весь движ:
http://pastebin.com/UxFAWdDt
Здесь унылый GUI и ActionListener:
http://pastebin.com/tfGdrHmX
Тут устанавливаем время для будильника:
http://pastebin.com/3TjvTn7a
Это выбор файла со звуком(как экспортнуть проект круто - я не знаю, так что в приложенном архиве есть звуки для теста)
http://pastebin.com/aVgmqSb3
В общем, что добавить хочу: время реализовал в AM-PM, так что если будете вводить время, например, 5 часов 00 минут, то пишите в первое окошечко 5, во второе 00.
перед 5 ноль не ставьте. с минутами также, если 5 минут - то пишите 5.
Не исправлял эту штуку, всё-таки проект не для реализации какой-то и даже не для личного пользования.
Будильник реагирует на файлы формата .wav
Нормальный wav, настоящий, а не удаленный ,mp3 и дописанный .wav(знаю умельцев, которые считают, что они так этот файл конвертируют).
А, ну и да, где заметите пустые методы мэйн - не обращайте внимания, они были нужны для теста во время написания этой штуки.
Нормальных фалообменников не знаю, а заводить гитхабы и другие вещи, удобные программистам, с моим уровнем ещё рановато.
Кто не подозревает меня в коварстве, для вас часы-будильник лежат тут:
http://rghost.ru/7FxwfYZxN
Что скажете? Спасибо, Аноны.
Месяца два назад я втянулся в программирование.
Всегда хотел это делать, ну вот на 22-м году жизни стал как-то реализовывать свою мечту.
В что-то въезжаю уже, в что-то нет: это явление нормальное, со временем разберусь. Всё равно это хобби, причём без привязки к языку. Просто начал с джавы, не знаю даже почему.
В общем, вкатываюсь сюда со своим будильником. Может, костыли(уверен, что точно есть) или велосипеды. Но всё-таки.
Класс, с которого всё начиналось. В нём весь движ:
http://pastebin.com/UxFAWdDt
Здесь унылый GUI и ActionListener:
http://pastebin.com/tfGdrHmX
Тут устанавливаем время для будильника:
http://pastebin.com/3TjvTn7a
Это выбор файла со звуком(как экспортнуть проект круто - я не знаю, так что в приложенном архиве есть звуки для теста)
http://pastebin.com/aVgmqSb3
В общем, что добавить хочу: время реализовал в AM-PM, так что если будете вводить время, например, 5 часов 00 минут, то пишите в первое окошечко 5, во второе 00.
перед 5 ноль не ставьте. с минутами также, если 5 минут - то пишите 5.
Не исправлял эту штуку, всё-таки проект не для реализации какой-то и даже не для личного пользования.
Будильник реагирует на файлы формата .wav
Нормальный wav, настоящий, а не удаленный ,mp3 и дописанный .wav(знаю умельцев, которые считают, что они так этот файл конвертируют).
А, ну и да, где заметите пустые методы мэйн - не обращайте внимания, они были нужны для теста во время написания этой штуки.
Нормальных фалообменников не знаю, а заводить гитхабы и другие вещи, удобные программистам, с моим уровнем ещё рановато.
Кто не подозревает меня в коварстве, для вас часы-будильник лежат тут:
http://rghost.ru/7FxwfYZxN
Что скажете? Спасибо, Аноны.
Для первого раза - отлично.
Самое сложное в программировании - это придумывание имён переменных и классов. Почитай стандарты по оформлению кода. Не используй однобуквенные имена переменных, за исключением счётчика цикла. Ну и координаты x, y может быть ещё.
Используй возвращаемые значения. Вместо "xxx.ChooseFile();", "File selectedFile = xxx.selecFile();", например.
Про велосипеды. Почитай про DateFormatter. JOptionPane может возвращать введённые текстовые значения, например. Ну и в Java есть стандартный класс таймера, ага.
Спасибо, Анон! Как раз курю инфу по всем API, связанным с временем.
И про возвращаемые значения тоже.
Буду работать)
Схоронил, спасибо
JMH для бенчмарка кусков кода, например.
не туда
Зависит от контейнера. Судя по всему у тебя томкет. Вот можешь отсюда списать:
https://github.com/hdghg/wstest
Работа с контекстом здесь:
https://github.com/hdghg/wstest/blob/master/src/main/webapp/META-INF/context.xml
https://github.com/hdghg/wstest/blob/master/src/main/java/com/mycompany/db/SchemaCreator.java
https://github.com/hdghg/wstest/blob/master/src/main/webapp/WEB-INF/web.xml
Проверял на томкат-7 и java 1.6, на версиях выше тоже должно, по идее, работать.
nextLine() ровно то, что я передаю на сервер. А nextDouble() выкидывает исключение.
Лезь в сурцы и дебажь, если пользуешься идеей то для этого делать ничего не надо:
1. Ставишь курсор на метод который у тебя фейлится (nextDouble()), и нажимаешь F4
2. Дальше ставишь бряку на строчке которая по видимому фейлится (CTRL+F8).
3. запускаешь прогу в отладке (ALT+SHIFT+F9)
4. Воспроизводишь проблему. Когда дойдет бряки, программа встанет на паузу. В это время ты можешь посмотреть значения переменных. Тебе нужно посмотреть что возвращает processFloatToken(next(floatPattern()))
5. Нажимаешь ALT+F8, в верхнее поле вставляешь processFloatToken(next(floatPattern())).
6. Нажимаешь ALT+V или Evaluate
7. Смотришь результат, делаешь выводы.
Что сказать-то хотел?
Больше денег.
j-profiler
может кто пояснить что не так сделал?
https://github.com/imbaclearic/webexam.git
Двойная буферизация.
говорят, что всё чтиво под заголовком "for dummies" - говно.
несколько книг из этой серий(не по кодингу), которые были в моих руках, действительно были унылыми. хотя какие-то представления давали, это да.
В шапке есть всё, что тебе надо. Проверенное тысячами, зачем что-то выдумывать?
Допустим, есть 2 параметра: длина length и плотность density.
Из них надо расставить юнитов, то есть при плотности 10 и длине 40 будет 4 юнита. Я не могу понять как рандомно раскидать их по линии.
Почему не 5?
for (int i = 0; i < length / density; i++) {
units.pos = random.nextInt(length);
}
Чем такое не подходит?
не знаю, не админ
просто надо купить уроки и стать джуном через месяц?
не понимаю нахуя смотреть эти курсы, ты читать не умеешь? Во всех курсах, которые я листал и которые хотя бы можно смотреть и не вытекали глаза с ушами (головач к таким не относится, наверное, это самые уебанские видео) было 80% воды, тупо тратится больше времени, чем на книгу.
не понимаю нахуя читать эти книги, ты гуглить не умеешь? Во всех книгах, которые я листал и которые хотя бы можно читать и не вытекали глаза (хорстманн к таким не относится, наверное, это самые уебанские книги) было 80% воды, тупо тратится больше времени, чем на статью.
кому-то удобнее воспринимать видео и аудио, кому-то книги, кто-то сразу смотрит код и статьи лекции почему-то в универах ОК, а видео сразу делают их хуевыми, лол
Можешь
>книги не нужны, хочу смотреть видяшки дебилов, которые зарабатывают на дебилах, и быть сеньором
Забавно
Есть такое дело с ней, да. Документация хороша, но ей сильно не хватает каких-то коммон кейсов на все классы.
А если это какой-нибудь Дэн Абрамов или Мейерс?
Или гомология групп?
наверное забавно быть ограниченным дебилом который судить информацию по формату, а не по её качеству, кек
да иди смотри головача, отличные курсы, мне же лучше
>>Цикл статей что в каком порядке учить: http://dou.ua/lenta/articles/java-beginner-guide-1/ (заблочен РосКомПозором, юзайте прокси)
есть рабочий линк? 404
Мы поспим, а ты постой
"Перейдите в папку object и выполните команду
javac HelloDate java"
ну и что от меня требуется сделать?
Наверное, нужно сначала научитья пользоваться компуктером, и только потом учить жаву. Подсказка:cmd
Первая ссылка по запросу "командная строка Windows":
http://sonikelf.ru/vvodnaya-statya-po-rabote-v-konsoli-chto-takoe-konsol-komandy-konsoli-i-prochee-takoe-raznoe-cmd/
Кстати, в >>709602 пропущена точка в HelloDate.java
Каждые 1 минуту я получаю дохуя данных до млн строк. Они представляют из себя просто строку на 3-20 символов. Паршу->обрабатываю и добавляю каждую строку в лист. Через минуту операция повторяется и лист обновляется новыми данными добавляет/удаляет (не)имеющиеся. Подход in-memory хранения является обоснованным с точки зрения частого изменения больших объемов данных и поиска, который может происходить когда угодно. Но есть одна большая проблема - вся эта хуйня занимает больше 500мб озу да, это критично и я не знаю как это исправить. Думал насчет БД, но там будет очень медленная обработка данных (поддержание актуальной инфы), которая будет происходить каждую минуту. А больше способов я и не знаю... Ананасы, помогите советом.
но ведь 500 мб озу для джавы немного, может тебе джава не нужна?
Попробуй эту библиотечку, может подойдет. https://habrahabr.ru/post/187234/
Можешь еще попробовать ограничить объем озу jvm сверху, ток будь готов что гц с ума будет сходить.
Если ничего не катит >>683573 (OP)
Расскажи подробнее про данные. Какого вида строки? Почему такой маленький размер (до 20 символов) и всегда ли выполняется это условие? По чему идет поиск - по всей строке, случайному куску, началу строки? Нужны все результаты поиска, или n первых, или n случайных? Что известно про поисковые запросы - может их только фиксированное множество? Почему ограничение 500 мегабайт, это же мелочь?
Попробуй Redis с mass insert.
тот же анон, что пилил будильник постами выше
Зачем я это делаю? я просто познаю API. В данном случае - календарь. Ну и пытаюсь использовать Thread, хотя не всегда получается как надо.
В любом случае нарабатываю опыт.
Кто хочет что-то посоветовать, показываю код:
С этого класса всё началось, в нём же сам механизм часиков:
http://pastebin.com/mCt4d812
А вот и главный класс, в котором сам фрэйм и Actions:
http://pastebin.com/hhyZrqdG
Ну и последний класс, в котором я долгое время тщетно пытался реализовать появление JLabel текста через Thread, но каждый раз получал что-то типа:
сначала выводило верно - Нью-Йорк. Когда кликал на другую кнопку получалось анджелесЛос-.
Так и не понял в чём шутка юмора, видать не реализуют "анимацию текста" через Thread. Гугланул уже по завершении, узнал про AnimatedText.
В любом случае класс остался, через него делаю Label с городом, хотя без него было легче обойтись(возможно).
Вот он:
http://pastebin.com/uPn8NxEN
Те, кто хочет посмотреть на уже готовый проект(а готовый он работает, честно и исправно!)
скачать его можно тут:http://rghost.ru/75MLkvQnp
Не бойся, там ничего нет. Разве не видишь по моему коду, что я и простые вещи с трудом пишу, не говоря уже о вирусах?;)
В общем, кто хочет - комменьте, кто не хочет - проходите мимо.
Спасибо за мнение, Аноны, и за возможность публиковать свои первые шаги тут.
Trove для примитивов, а тут же строки, разве что хранить их как последовательные массивы и хранить начала и концы.
шг
Файлы циферблата и стрелок будут в png.
Текущие представление о том, как это должно будет работать:
рисуем круг(наверное через графикс, верно? не работал ещё с ним).
Рисуем углы в этот круг.
ставим anchor point в середину круга, к нему привязываем эти палочки-углы.
Если прибавляется секунда - угол наклоняется на один градус.
Минута - тоже.
Час - тоже.
поверх этих палочек-углов привязать png файлы.
верный план?
кстати, извините за флуд, но почему в наше время все придираются к ";)" или к "))" или к "=)" ?
Я это даже среди взрослых замечал.
ладно школьники это не любят, мол, олдскул и не комильфо.
но взрослые люди-то почему? разве нет сразу осознания, что перед тобой человек твоего поколения?(аськи, агенты etc)
Я так годов с 7х-5х пишу, наверное. привычка.
хотя даже в те годы это были единственные смайлы, которые я использовал(хД терпеть не мог).
OReilly_Java_Cookbook_3rd_Edition
курю на ингрише без переводчика, но всё же выполнять 2 задачи разом(понимать+переводить) слегка утомляет
Здесь так не принято, сразу видно ньюфага. Появляются ассоциации с вконтактиком, одноклассниками и прочими бытлятниками, и отпадает желание отвечать.
Ох, ну пиздец ты зануда. То есть он написал вполне себе нормальный пост, и тут ПИЗДЕЦ СУКА СКОБОЧКА ГЛАЗА КРОВЬЮ НАЛИЛИСЬ ВКОНТАКТИКИ ОДНОКЛАССНИКИ ПИЗДЕЦ БЫДЛО ЕБАНОЕ. Лучше б ты на содержание смотрел, а не на смайлики.
момоолдфаг
Тип проебал здесь 8 лет. Ну и даун, пиздец, сколько же всего полезного мог сделать за это время.
Пост и не читается, если в зону видимости попадают скобки.
Мне-то похуй, я читаю, если по теме. Но в твоих же интересах повысить рейтинг своего поста.
В чужой монастырь со своим уставом не принято входить.
Надо понимать, когда уместно, а когда нет. Это как с пердежом.
слушай, пацан :( Ты с олдфагом разговариваешь, так что больше уважения!
Я ещё на ТОМ дваче был, который на so оканчивается!
Смайлик твой просто очень мило выглядит, если мысленно поменять окончания и закрыть глаза, то можно представить, что это тяночка написала тот пост. Тяночки очень любят такие wink смайлики, как бы такое кокетливое подмигивание. Короче, смайлик к месту это хорошо.
В жопу раз или в жопу раз?
Какой-то анон начинает срач за другого анона, и все думают, что это один и тот же анон, хотя анонов может уже быть и 3 и 5 и более, а со стороны похоже на срач двух.
А что FX не запилили?
Вырисовывай не пнгшками, а пикселями
Анон, в следующий раз пиши название .jar файла латиницей и без пробелов.
Нет, функция в стиле си это статический метод.
Он пиздит. Это не Hell word
сеньоры помидоры, ответьте джуниору на тупой вопрос, я что-то читаю-читаю и не понимаю.
Если у нас есть
HashMap myMap;
и мы пытаемся в каком-то куске сделать что-то вроде
syncronized(myMap)
То как это вообще сработает ? Если к мапе кто-нибудь обратится из другого не синхронайзед куска кода, то он будет ждать пока не освободится ресурс, то есть кто-то кто занял синхронайзед не выйдет оттуда?
Кроме того, я так и не понял, везде пишут что HashMap это не потокобезопасный и все дела? Но правильно я понимаю, если сделать в куске кода
syncronized(myMap)
то все будет окей и типа все будет потокобезопасно ?
Если напишешь блок syncronized(myMap) то обезопасишь себя от concurrentModificationException, тобишь исключит одновременную запись и чтение и ошибку. Если тебе надо многопоточно использовать то проще взять готовый безопасный HashMap из пакета java.util.concurrent
Линк: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html
Джява по умолчанию сразу резервирует 100-300 метров памяти, вне зависимости от использования
Вполне понятный вопрос, если человек только открыл статью про синхронизацию
http://pastebin.com/cLgeZxEF
Http://pastebin.com/4HH2nHp4
(неделяжавануб).
> Если к мапе кто-нибудь обратится из другого не синхронайзед куска кода, то он будет ждать пока не освободится ресурс
Нет. Несинхронайзед код сможет делать с мамой что угодно и когда угодно независимо от того, есть ли кто-то в синхронайзед блоке.
> если сделать в куске кода syncronized(myMap) то все будет окей и типа все будет потокобезопасно ?
Нет. Потокобезопасно будет только если все места, где производится чтение и запись, сделать синхронайзед по одному объекту.
Кстати, слово synсhrоnized - в спамлисте, а ты пропускаешь в нем h
article.php?view=flat&page=3&mode=1
надо получить название параметра и значения
view flat
page 3
mode 1
Узнаешь про какой-нибудь stringtokenizer - вообще охуеешь.
а твоя ссылка мне не подошла, вываливается в эксепшн даже если такая строчка например
article.php?view=flat&page=3&&mode=1
Охренные посоны делают регулярочки
Читал экзамплы со gripPane, но там везде используют статику, как потом обратиться к нужному элементу?
Кто этот сплит писал? Почему не предупредил меня об возможном эксепшене?
<code>
public class My2 {
public static void main(String[] args) {
String s="name=";
String[] y = new String[2];
y=s.split("=");
System.out.println(y[0] + y[1]);
}
}
</code>
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
А хули он должен был туда что-то класть? Ему дали строку типа "а," и сказали разделить запятыми, он и разделил.
Он ее не разделил, а вывалил эксепшн, передал в y[1] что-то за пределами массива a.toCharArray().
Ты даун, блять.
>String[] y = new String[2];
>y=s.split("=");
>System.out.println(y[0] + y[1]);
Ты сначала пишешь в y ссылку на пустой массив из 2 элементов, на второй строчке присваиваешь этой переменной тот массив, который вернул метод сплит (он из 1 элемента), а в третьей строке пытаешься вывести второй элемент массива, состоящего из 1 элемента. Естественно ты ошибку получаешь.
Схуяли ты вообще решил, что ты можешь одним "=" сделать поэлементное присваивание?
помоему даун тут ты, если я напишу
...
y[0]="";
y[1]="";
y=s.split("=");
System.out.println(y[0] + y[1]);
результат будет тот же.
>y[0]="";
>y[1]="";
>y=s.split("=");
>System.out.println(y[0] + y[1]);
>результат будет тот же
Ну конечно он будет тот же. Ты в строке
>y=s.split("=")
Присваиваешь у ссылку на массив из одного элемента, а в следующей хочешь получить первый и второй элементы. Но второго элемента у массива нет, поэтому ты и получаешь исключение. Так понятнее?
>Если к мапе кто-нибудь обратится из другого не синхронайзед куска кода, то он будет ждать пока не освободится ресурс, то есть кто-то кто занял синхронайзед не выйдет оттуда?
Если к мапе кто-нибудь обратится из другого не синхронайзед куска кода, то проблемы у него будут только в случае если он делает операцию вида read-write.
Например, код if(ref == null) { ref = "something"; } -- это read-write. Допустим, два треда имеют этот участок кода, только во втором треде присваивается "something_more". Без синхронизации этот код -- источник т.н. race condition, т.е. ситуации, когда состояние данных в результате выполнения конкурентной операции всякий раз определяется практически случайно, исходя из того, какой поток изменил данные последним. Дальнейший код обоих потоков работает, по сути, с неопределённым значением: в этот раз оно то что нужно, а в другой раз -- какая-то хуйня "блядь, какого хуя тут 3, когда я присвоил 2?! ... Сука, ну а щас-то почему 2, а не 3?!!". Поэтому поток выполнения программы становится недетерминированным.
Всё concurrency, в общем-то, вертится вокруг задачи атомизации цепочки read-write.
syncronized -- это блокирующий вид атомизации: потоки выстраиваются в очередь и ждут, пока освободится лок; атомизация достигается за счёт того, что read-write происходит во временных границах лока, и никакой код, синхронизированный этим локом, не может изменить состояние данных в промежутке между этими границами.
Есть неблокирующая атомизация -- алгоритмы и структуры данных, основанные на инструкции Compare And Set (CAS). Её смысл в том, что код, желающий изменить данные, сначала запоминает состояние этих данных, изменяет данные, и пытается записать изменения, вызвав CAS с двумя аргументами: первый -- запомненное состояние данных, второй -- изменённое (обновлённое) состояние данных, которое необходимо записать. Если запомненное состояние совпадает с текущим, то изменения записываются. В противном случае попытка записи считается неудачной, и записывающему предлагается пойти нахуй попытаться ещё раз, если очень нужно. Неблокирующими данный вид алгоритмов назван потому, что при такой организации никого не заставляют принудительно пассивно ждать доступа к данным: вместо этого ожидание активное, вида "do - check (всегда быстро) - do - check ...", вместо "do - wait (потенциально долго) - do - wait ..."
Подробнее и академичнее на эту тему можно прочитать, например, в Википедии: https://en.wikipedia.org/wiki/Non-blocking_algorithm
Я мб где-то утрировал, конечно, но как-то так оно мне видится.
>Если к мапе кто-нибудь обратится из другого не синхронайзед куска кода, то он будет ждать пока не освободится ресурс, то есть кто-то кто занял синхронайзед не выйдет оттуда?
Если к мапе кто-нибудь обратится из другого не синхронайзед куска кода, то проблемы у него будут только в случае если он делает операцию вида read-write.
Например, код if(ref == null) { ref = "something"; } -- это read-write. Допустим, два треда имеют этот участок кода, только во втором треде присваивается "something_more". Без синхронизации этот код -- источник т.н. race condition, т.е. ситуации, когда состояние данных в результате выполнения конкурентной операции всякий раз определяется практически случайно, исходя из того, какой поток изменил данные последним. Дальнейший код обоих потоков работает, по сути, с неопределённым значением: в этот раз оно то что нужно, а в другой раз -- какая-то хуйня "блядь, какого хуя тут 3, когда я присвоил 2?! ... Сука, ну а щас-то почему 2, а не 3?!!". Поэтому поток выполнения программы становится недетерминированным.
Всё concurrency, в общем-то, вертится вокруг задачи атомизации цепочки read-write.
syncronized -- это блокирующий вид атомизации: потоки выстраиваются в очередь и ждут, пока освободится лок; атомизация достигается за счёт того, что read-write происходит во временных границах лока, и никакой код, синхронизированный этим локом, не может изменить состояние данных в промежутке между этими границами.
Есть неблокирующая атомизация -- алгоритмы и структуры данных, основанные на инструкции Compare And Set (CAS). Её смысл в том, что код, желающий изменить данные, сначала запоминает состояние этих данных, изменяет данные, и пытается записать изменения, вызвав CAS с двумя аргументами: первый -- запомненное состояние данных, второй -- изменённое (обновлённое) состояние данных, которое необходимо записать. Если запомненное состояние совпадает с текущим, то изменения записываются. В противном случае попытка записи считается неудачной, и записывающему предлагается пойти нахуй попытаться ещё раз, если очень нужно. Неблокирующими данный вид алгоритмов назван потому, что при такой организации никого не заставляют принудительно пассивно ждать доступа к данным: вместо этого ожидание активное, вида "do - check (всегда быстро) - do - check ...", вместо "do - wait (потенциально долго) - do - wait ..."
Подробнее и академичнее на эту тему можно прочитать, например, в Википедии: https://en.wikipedia.org/wiki/Non-blocking_algorithm
Я мб где-то утрировал, конечно, но как-то так оно мне видится.
Groovy
Внесу правки, заодно извиняюсь за неточности.
К первому абзацу хочу добавить, что проблема там будет не только при совмещении read+write. На самом деле, если в одном потоке менять структуру данных, а в другом читать её, и всё это не синхронизировать, то если операция write не атомарна, то читающий поток может получить inconsistent read, т.е. такое состояние структуры данных, над которой уже началась, но ещё не закончилась операция изменения. Так что в этом случае операции read и write нужно синхронизировать / атомизировать.
для начального уровня
на кодакадеми задания для совсем даунов, я уже не могу
Иди нахуй со своим джаварашем
Чому тогда не kotlin?
Что за тестовое задание было?
Intellij beans
Бабочка.
google: Spring REST
Сорян за нубский вопрос, как создать массив состоящий из массивов?
Вообщем разобрался сам.
Что хочешь. Можешь вообще ничего не выбрать. Значит лишь то, что по двойному клику на файл будет запускаться идея, чтобы его отобразить.
на счет массивов, знал, а за эрэйлист спасиб
Спасите глупую душу новобранца.
Я тут немного балуюсь с формами и вот хочу вставить одну форму в другую, ну тип окошечко в окошечке, но ничего не выходит. Подскажите, ЧЯДНТ. Мысли насчет .add() были, но тоже зафейлил.
http://pastebin.com/3yXTBUiK
Бля, пиздос, вот я тупой, почаны. Просто забыл задать размер.
И над этой хуйней парился около часа.
>>712294
Хотя... Вопрос сохраняется. Тут открывается два приложения параллельно. Можно ли сделать так, чтобы вторая форма работала в первой, но не запускалась параллельным окном.
.cs
Это называется Multiple Document Interface. Тебе нужны JDesktopPane и JInternalFrame. Например: http://www.deitel.com/articles/java_tutorials/20060505/
Че ж ты раньше не сказал? Пацаны то и не знали.
Сам по себе критерий времени самоокупаемости говно, так еще и срок какой - пол года! Вложения уровня /pr/ просто.
Seems legit. Спасибо.
Аноны, что у джуна могут спросить из канкарента?
и вот с чего в недоумении
читал про j2ee и все пропитано "ну все щас усё модульное и быстра и проста мжно сделать все!"
читаю про спринг то же самое римерно ток еще плюсом "и быстрее чем j2ee!"
глазом задел про play и там опять сука обещают скорость разраотки
так какого хуя тогда на джаве с ее развитием все такое все равно долгое ебаный стыд
Как создать поток, как проследить что он завершился, как подождать его завершения, зачем нужны wait, notify, notifyAll. Если на все ответишь начнут копать про потокобезопасные коллекции, семафоры, иммутабельность, тредпуллы, FutureTask. Это уже эдвенсед, на будущее.
что долгое? Разработка долгая? Всякие методики ведения проектов для того и придуманы чтобы растянуть процесс разработки и срубить побольше бабла с заказчика. Это не относится к фреймворкам вообще никак.
сука так и знал что джава это ЗОГ дело
ну бля почему используют EE а не play или spring? Когда-то была причина и выбрали свинг. Не прыгать со старых наработок на новое молодежное у них ума хватило. Фх тоже говно, кстати.
Ещё почему считается хорошим тоном использовать статические методы вместо обычных?
А там где ты это вычитал, не объясняется, чтоли?
Статические методы это аналоги функций в си, они не привязаны к объекту, а значит, из них нельзя обратиться к экземпляру класса, в котором они описаны. Хорошим тоном считается использовать статические методы там, где не нужна привязка к объекту и обычные методы там, где нужна работа с объектом класса, в котором метод описан.
Если метод не зависит от состояния экземпляров класса (т.е. в методе не используются нестатические свойства и методы класса) и не нужен в иерархии наследования -- делай его статическим.
А зачем? Компилятор его и так девертуализирует и возможно заинлайнит.
Зачем вообще статические методы, кроме фабрик и утилитных-классов?
Вообще там где я читал, пишут довольно пространственно. То есть static для методов которые не собираешься переписывать, которые не нуждаются в инстансе класса... Вообще часто ли они используются в настоящих проектах, много ли занимают памяти, может ещё какие-то детали связанные с ними есть?
>нормально ли это для говнопроекта к резюме?
Нормально. На самом деле по себе могу сказать, что тебе охуенно повезет, если кто-то вообще откроет твой проект: HRы в этом нихуя не понимают, тем людям, на которых тебя спихнут, скорее всего будет лень.
>подумой, дай советов по реализации
Запили всё это на спринге, охуенно будет, базарю.
Открываешь последнюю ссылку оп поста и ищешь пункт - подкасты. Смотришь если нравится, там две ссылки. Я хотел их включить в оп пост, но передумал, потому что у многих проблемы с инглишем и они как дауны дрочат джавараш.
То что искал, благодарю.
Затем, что сигнатура функции служит подсказкой другим программистам, как она себя ведет и должна использоваться. Так что, блять, пиши информативные, корректные сигнатуры; если функция де-факто статическая - то пусть она будет статическая, это ж несложно.
Менее важно, конечно, если ты для себя говнокодишь, только приличным людям не показывай.
Синглтоны?
И для ведра еще советуют использовать статик методы, но мне кажется это экономия уровня отказа от енамов и сохранении спичек.
> Классу необходим метод для работы которого не нужны данные конкретного инстанса
> Не буду делать его статическим чтобы не плодить костылей))) а вызывать буду (new YobaClass()).staticheskiiMetod() или синглтонн ебну типа про))))
Два чаю адеквату.
Этот индус порвался...
Если это утилитный-класс/шабрика или сингтон, то это норма.
В ином случае, у тебя макароны, вместо кода (или давай живой пример, когда это нужно)..
Статик методы полезны, когда есть стэйтлесс код.
Например можно сделать интерфейс который будет давать возможность делать универсальный nullчек или сортировку чере статки метод, очень удобно.
Извини, ты сейчас утилитный класс (который в C# заменяется экстеншен методами) описал
или я что-то не понял (особенно "чере статки метод")?
Нет, не про классы.
Есть некий набор классов который реализуют один интерфейс, у них есть общий метод по умолчанию, он выполняет некую логику, но перед выполнением, проводит внутренние проверки переменных например. Так вот, статическим методом интерфейса можно скрыть эту логику проверки и для всех, кто реализует этот интерфейс она будет не видна . Ну не охуенно ли?
Иди отстоси банан, архитектор.
Это можно делать без статических методов в рамках наследования (Template Method).
можно, но в этом случае ты прикрепляешься к наследуемому классу, а через интерфейс обычное расширение.
Что-то мне это сходу напомнило "Constant Interface Antipattern", но там другая мотивация.
Вообще это как-то не явно, а если другой разработчик унаследует твой интерфейс.
Как он узнает, что ему нужно сначала вызвать этот статический-метод?
Ему не нужно его вызывать напрямую, он часть логики метода по умолчанию, например может быть.
> но перед выполнением, проводит внутренние проверки переменных например
Под этим ты подразумеваешь, что но вызывает другие методы интерфейса (других "переменных" в интерфейсе нет (static поля еще конечно)).
Ну честно, делать "шаблонный метод" на дефолтных методах - это изврат.
И ты даже не сможешь запретить его переопределение (final там запрещен).
> Ну не охуенно ли?
Нет, нихуя не охуенно.
1) Напомню, что разговор о статических методах. Какие переменные ты там проверять собрался? У тебя состояние в статических переменных хранится? Пиздец тебе случится сразу же, как только твое приложение придется заскейлить больше чем на одну машину.
2) "статическим методом интерфейса можно скрыть эту логику проверки и для всех, кто реализует этот интерфейс она будет не видна". Переопределил (случайно) этот дефолтный метод - и снова пиздец тебе, нет больше никакой проверки.
3) Один из классов имплементит еще и другой интерфейс с точно таким же методом. И тебе снова пиздец, потому что ты должен сам реализовать этот же метод и не забыть добавить все проверки из своего интерфейса.
сорта говна, юзай grails
1) main, utils, вся хуйня.
2) Иммутабельность и простота понимания кода. Когда внутри метода вызывается статик метод, то ты понимаешь, что, скорее всего, там нет никаких сайд-эффектов и состояние самого объекта не изменилось. Конечно, это не относится к изменению статических полей (читай глобальных переменных), но такие методы должны быть очевидны, либо за это нужно несчадно пиздить арматурой.
3) Статический метод, который возвращает объект анонимного класса. Нужно, чтобы у объекта анонимного класа не было ссылки на объект объемлющего класса.
Неужто пидорнули гопидора модера.
Полгода в бане сидел котаны.
Сашивацте ваши вопросы.
Хуячу на ее6 ее7 осги под фьюз.
Сть книжки
Ру это попытка скопипиздить джейбос фордж. По мне так кривая. Спринг бут - говно. Яваобьявления бинов - говно. Только хмл только хардкор.
Вилдфлай сварм или просто внедренный андертоу - сила.
Груви
кстате чего все все время гонят на хмл? все в одном месте, шикота жеж ведь
ты иксемельников по 20000 строк не видел
Спрингбутодебилам неприятно, что нужно помнить о дескрипторах развертывания, о конфигах персистентности и прочем типа настроек сервлетов, фильтров и рилмов секурити, что помимо контекста конфигурится в хмл.
Спрингбутодебилам проще перекомпилить свой хеловорд.
О том что хмл + аннотации рулят знают лишь труспрингодрочеры.
В ЕЕ особо альтернативы хмл и нет лол. Хотя cdi работает на аннотацияз и beam.xml уже скорее флажок. Персистентности в хмл, что удобно, ибо датасорсы один фиг лучше делать контейнероуправляемые.
Транзакционность в контейнере и на аннотациях везде. Jms в контейнере.
Джава конфигурится говно для хеловордов.
Вот когда увидишь проект на 10 к бинов с переборкой в 20 минут, тогда полюбишь хмл, сука
Джава конфиг в любом случае лучше, т. к. есть рантайм проверка + легче рефракторинг проводить. А свое говно оставь себе. У меня все.
>кряяя
Какая разница, в сущности, куда 10к бин дефинишнов засуть -- в две-три конфигурации или в один beans.xml?
Так Бут для хэлловорлдов и создавался.
Нет я про идею
Мм, ну да, есть такая тема..
http://www.learnjavaonline.org/
Хз, судя по всему совсем основы, ну и знания теории тебе это не даст, а на собеседованиях ее нужно знать.
Непонятно на кого рассчитано: для нуба слишком коротко, для перекатывающихся - слишком поверхностно.
Азы синтаксиса освоить можно, но программить там не научишься.
if ("ip".equals("ig")) возвращает true?
Пикрилейтед
Разобрался, отбой.
Можно более детально за теорию, это типа надо знать, ооп, джава кор/адвансед, или как работает JVM, JIT, и вот это все?
Ну, меня на интерна спрашивали всякие нюансы вроде организации HashMap, устройство памяти и принципы работы gc, порядок инициализации и всё такое, на подобных сайтах ты ничего такого не узнаешь.
В шапке
Q: Пока читаю, все понимаю, а сам ничего сделать не могу. Что делать?
A: Практика, больше практики.
Уровня laba1.pas: http://codingbat.com/java http://codehunt.com
Чутка серьезнее: http://programmr.com/zone/java http://codingame.com/puzzles
Рулеточка: http://postimg.org/image/xdfbvgps9/
Олимпиадка: http://codeforces.com
Примеры той-проектов: http://eax.me/programming-language-learning/
> Хибер сам по себе не так уж сложен
да и не особо нужен, т.к. у спринга свой ORM есть - Spring Data JPA
1) Репозитории прячешь внутри сервисов,
2) Во-первых в контексте хранятся компоненты системы, энтити и модели туда просто незачем складывать. Во-вторых есть специальные конвертеры, которые за тебя всю рутину сделают - Dozer, Orika.
3) Да
4) Наоборот, так и нужно делать. https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
5) Нет, в этом просто нет смысла, spring по умолчанию все бины-сервисы создает как синглтоны. К тому же статики очень хреново покрываются тестами.
6) Да хотя бы Spring in Action осиль.
Пукнул на дауна.
Ебанько ты как вообще учил ее?
Слушай папу уебок.
Jpa само по себе подразумевает что ему требуется провайдер. Опенджпа, эклипслинк, хибернейт. В спринге хибернейт по дефолту.
И в частности spring-data-jpa работает именно поверх спринга.
Поверх хибернейта конечно.
Они бывают контейнерные и аппликешен уровня.
Например. Если ты постоянно работаешь с одной базой, и деплоишь свои бины в сервер приложений, например жбосс или вилдфлай. То можно на уровне самого жбоса подключить драйвер субд как модуль и создать контейнерный датасорс.
Затем в апликухе, создаешь персистенс юнит, который ссылается на дждни ссылку датасорса внутри контейнера. И при деплое персистенс юниты создадутся контейнером.
Но тут надо помнить ято отдавая персистенс юниты и датасорсы контейнеру ты так же передаешь управление транзакциями им м
Потому если ты будешь пытаться в инжекченом энтитиманагере вручную управлять транзакциями то получишь по ебалу эксепшеном.
Потрогали ссаный спрингбут и возомнили себя яваприматами.
Охуели.
Пусть начинающие тут с СЕ и свингами тусуются. А под ЕЕ отдельный тред
Дак в этом вся суть спринго-индусов. Думают, что Спринг -- это какая-то альтернатива EE-решениям, а не обёртка над ними.
Расскажи за распределенные кеши на кластерах.
на последующие костыли похуй тк все равно займет меньше времени чем джаба-интерпраз
кто им продал эту идею что все надо лопатить десятилетиями?
Потому что петон это скриптоговно. А jvm это тру хросплатформа. На юниксах, на мейнфреймах.
бля точно, я даун
Для этого есть Groovy, который буквально всем лучше Python'а (кроме популярности).
Нужна.
> классы
> asm/си
???
> крестоблядям норм
Они просто не слышали про рефакторинг и никогда не смотрят свой код дважды.
Большие проекты на Си используют ООП либы. Вообще все компиляторы и трансляторы срут асмом.
Это ты вообще к чему написал?
Мы вроде говорил про написание своего кода, а не про использование сторонних библиотек/компиляцию.
Я просто выебнуться хотел
помогите пожалуйста
есть сжатая строка вида "h3jv2sf" например, нужно её распаковать в строку вида "hhhjvvsf", или же например строка "fe2rt2w", её нужно распаковать в строку вида "feerttt";
подскажите как это сделать, тут нужно использовать регулярные выражения? хотя бы алгоритм подскажите
число любым, оно обозначает количество вхождений символа, стоящего перед числом
Еб твою увожаемый, что за разметка.
Поставь бесплатную.
Как-то так http://pastebin.com/X5n8wXCG
P.S.
В врот я ебал джава стримы, после LINQ это просто какой-то пиздец.
Где можно про стримы почитать, няша?
спасибо. А почему эта реализация не эффективна?
но мы ещё не проходили стримы, как решить эту задачу без них? Хотя бы общий алгоритм
Да на любом JVM языке, кроме Java это будет 1-2 строки.
Вот пример на Kotlin (хотя для читабельности лучше разбить).
Нет, не норм, тогда уж лучше эклипс, если так принципиальна лицензия.
Нетбинс норм. Хеловордов писать можно. Джавафх умеет рисовать. Ее умеет хорошо. Спринг не особо. Осги не особо. Груви умеет. Интеграцию с серверами умеет.
Если нужно легкое иде вполне сойдет. Эклипс мощнее конечно.
Идеядебилы идут нахуй
Но с мавеном и архетипами работает тоже нарм
Собсно проблема на пиках. Невидимые баттоны, наводишь мышкой - появляются.
Вангую, что проблема из-за paint(Graphics g), но я слишком тупой.
С меня как всегда нихуя нефть.
http://pastebin.com/8nzWPzcw
Вот эта хуйня в main.
JFrame frame = new JFrame();
frame.setSize(600, 800);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.add(panel); //Тот самый класс
frame.setVisible(true);
aay lmao
Бери NetBeans, та же Idea, только без привлечения сотен евангиелистов и тысяч рекламы. И даже не думай смотреть в сторону блядского Eclipse, а всем, кто им пользуется, сразу же плюй в лицо.
Привет, дефективный.
Меня вот что смущает, языку уже более 20 лет. Есть ли смысл вкладываться? Не помрет он к 20му году?
Может в долгосрочной перспективе питон или руби получше будет? Какова вообще вероятность, что компании начнут массовую миграцию с Явы? Насколько это вообще реально? От чего зависит? Вот сидит банк на приложении java, что то (что?) случилось и давай переезжать на питон.
К примеру (только лишь ПРИМЕРУ) пользуется компания windows, хуякс и только платная подписка работает для обновлений - поехали на линукс, хули.
правильно, я бы начинал учить котлин
Что за хипстерские бредни?
20 лет - это плюс, а не минус. Причём, охуенный плюс.
Сейчас джава единственный язык для разработки бизнес-приложений. И ничего другого не предвидится. Да и нужды нет. Хочется экзотики - есть Скала, Кложура и Груви.
Скала не займёт большую долю рынка, как я думаю, особенно, после появления 8-й джавы. Котлин - вообще хуета, призванная почесать самолюбие парней из джетбрейнс.
Питон - практически закончился, несовместимость 2-й и 3-й версий была большой стратегической ошибкой. Не говоря уже о том, что это динамика, и для серьёзных промышленных применений не годится. Руби - это вообще несерьёзно.
Такие дела.
Scala на самом деле очень хороша, но в полной мере познать ее можно только после 3 лет на Java, обмазавшись функциональной теорией (академическими знаниями). В свете этого она гарантированно не займет большую долю рынка, но "JVM-специалист" использовать ее вместо Java время от времени просто обязан.
У Python есть жизнь в Data и прочих Science.
Ruby и Kotlin - игрушки без будущего для модных ребят.
Язык не помрет, но в процессе изучения стандартной библиотеки, сотен JSR и десятков middleware с фреймворками вполне можешь помереть ты.
Чем же в этом плане Java отличается от другого языка? Ну кроме того, что разработчики Java хотя бы пытаются в дизайн API, в отличии от джсников, пыхарей, пистонщиков, крестоблядей и прочих.
Объемом.
Сейчас с 0 проще взять какой-нибудь JS: учишь Angular, Node.js и Lodash - ты в шоколаде, высокооплачиваемый full-stack разработчик, котирующийся на биржах и в офисах.
> Объемом
Зависит от задач.
В JS нужно знать хуеву тучу инструментов - npm, bower, gulp, require.js и прочую парашу. В Java - Maven и Gradle, которые в свою очередь лучше всех этих инструментов вместе и каждого в отдельности.
Априори качество JS кода хуже Java. Поэтому вместо небольшого количества хорошо сдизайненных либ мы получаем миллион велосипедных микрозависимостей уровня leftpad без перформанса, тестов и документации.
Вертикально масштабировать Node.JS вообще невозможно - у тебя всегда будет один процесс, один поток и лапша из промайзов. Чтобы вертикально масштабировать контейнеры сервлетов, http-akka/play, vert.x нужно приблизительно нихуя.
Поэтому Java+JS фуллстек разработчик > просто Node+JS фуллстек разработчик.
Знать кучу однокнопочных инструментов труда не составляет совершенно, 15 минут на документацию и ты можешь других учить (при наличии мозга ofc).
Качество JS кода покрывается озвученным Lodash, умеешь пользовать - количество факапа стремится к нулю. Ну и Моча всегда на месте, можно даже пьяным свое парное экстремальное программирование применять.
Node не про вертикальное масштабирование, используй микросервисы.
Скала говно.
Бай дизайн.
Для функциональщины есть кложур.
Ну а жс на бэкэнде это вообще лол. Хипсторкам может и пойдет, но в хайлоаде это ебаное говно
Может быть, ты только хэллоуворлды писать и способен. Поигрался - а теперь иди жить в другие сферы.
И не переживай особо, весь Двач в таких "программистах".
На свете больше двух профессий.
Учи например вилдфлай и ее7. Как надрочишься пилить круды приходи. Расскажу про некст левел
ща в процессе спрингоосвоения
внезапно охуел от простоты IoC и не понял почему об этом все так пиздят будто это рокет саенс
в ее немного все пугает, но думаю все равно неизебжно надо будет изучать это дело
проблемс в том что я остро чувствую собственную диванность проводя вечера читая про очередную йобу
Сложность в больших проектах.
Когда hot deploy через жопу.
Когда ты не знаешь в каком из десятков BeanPostProcessor какие проперти вставляются и в каком порядке.
Когда имплементишь свой ApplicationContext.
Когда тасуешь бины из профиля в профиль, пытаясь минимизировать граф зависимостей.
Но вот когда пытаешься закастомайзить Spring Security, Spring Data или Spring Boot - вот это реально индусоподелия.
Ебать ты дебил.
Который год пилю ЕЕ под жбосы.
Хайлоаде кластеризация и лоадбалансинг во все поля
он еще и не думаю что трал
знакомый говорил что думал начать на груви писать но потом псмотрел что ему БОЛЬШЕ ДЕСЯТИ ЛЕТ и передумал
Не упоминай это дерьмо всуе.
Уходи в рор тред.
Тут жаба.
Рор наверно говно, никогда не видел на рор что-то серьезнее хипсторских перделок. Но возможно за пределами моего мирка что то есть.
Короче спроси у хипсторов
Гитзхаб
Даже если допустить, что ты действительно пилишь что-то высоконагруженное, оно совсем не означает, что основная задача Java - хайлоад. Олсо, оно тем более не означает, что весь web - это хайлоад, и для Node.js там места нет.
Для справки, хайлоад - это когда для тебя критичны мелкие оптимизации, а не какая-то абстрактная баззвордщина в твоей голове.
Рорудо.
Хочешь поговорить про оптимизацию нагрузки?
Ну давай поговорим.
На каком уровне?
Jpa? Ejb? Jta?
Недавно было. Если через мавен делал проект, то манифест должен быть в созданой мавеном папке resources
Плагин к мавену настроить надо. Тогда из командной строки работать будет
>>716564
Нет ты, лол. Давай про jpa уровень
Нужно полное имя класса с пакетом
Банки и прочая хуйня долго не слезут, потомучто им нет смысла внедрять плющки что сть в новомодных темах, их сраное гавно на джаве будет хаватся бизнессом еще долго не зависимо от того насколько он отсталое и не гибкое. Онм сами то нихуя не понимают как можно сделать лучше. Поэтому пили и не грусти.
Основное контингент разрабов там это сраные дедки под 40 лет, которые не то что открыть и почитать о новых технологиях не могут, они бля посрасть то сходить без посторонней помощи не в состоянии.
Куда там мля хайлоад, пару лямов вьебали, купили сраное гавно от IBM скейлить инстансы примитивным способом, сами, то энтерпрайз макаки нихуя сделать не могут.
По кадрам , джава хуже джаваскрипта, зомби армия, которая вроде делала хайлоад судя по резюме, а в итоге городила костыли на безнадежных платформах и писала доки, которые потом выкинули, всеравно нихуя не понять.
По кадрам IT сфера в беспросветном анальном отверстии, все не могут нихуя, но специалисты на рынке присутствуют, просто они хороших условий и соблазнительной зарплаты хотят. Не можете обеспечить - чья тут вина-то?
Для банков и остольного финансового сектора это хуйня, специалисты там никгода не нужны были.
Ну а хули тогда кукарекать, что нимогут.
Нихуя себе как спрингодетей разорвало.
Ее жил, жив и будет жить.
Вот отрелизят ее8 и ваш сосущий спринг станет вообще нинужен.
Смотря на резюме джаваскриптера, и увидев там хайлоад, шанс встреить человека, который реально разбирается в этом, намного выше, чем в ситуации с резюме джава разработчика.
Вонь вебсферы чую я.
Имб железо. Ибм Ява 5. Ссаная вебсфера. Бгг.
Хуже нее нет.
Слава Аллаху что я с жбосом все эти годы работаю.
а чем тебе джава поможет, что там есть такое магическое изкоробки чтобы не юзать лоадбалансер и кучу нод?
Да с чего ты взял, что все на свете нужно масштабировать, а вокруг только мир хайлоада, ебанный шизофреник?
Ты же наверное опять про платформы говоришь, в которых все за тебя сделали, но факт остается фактом, их покупают а используют на 10-20 процентов? и как вообще их интегрировать в общкю систему никто не знает, но они сильны и написаный на джаве.
Лол.
Погугли что такое сервер приложений.
Про человеческое горизонтальное и вертикальное масштабирование.
Про девопс в мире jvm.
Это тебе не ссаная нода.
>>716645
Потому что я считаю что у явы всего 2 нишы. ЕЕ и ведроид. Остальное ее применение - не оптимально. Есть более быстрые языки и вм, которым не нужен прогрев для максимальной производительности
А у тебя back-end сугубо EE ограничивается?
Ладно, не продолжай, я уже понял, что ты отбитый.
Ой только не говори про интеграцию.
,jvm самая развитая в плане интеграции платформа.
Тут и камел, и рест, и ws, и orb и куча иных стандартизированых технологий.
И ключевое слово тут стандарт. Ява промышленный стандарт в интеграции.
это да, но только когда покупаешь платформу, они почему-то самое вкусное, как на зло, не поддерживают(платите еще денег, может всучим гавно решение), а свои джава обезьяны кладут на стандарт, что же такое? на бумаге хорошо а на практике гавно какое-то получается.
Гугли про вилдфлай - самая продвинутая на данный момент платформа под ее.
Гугли про Апач караф - самая продвинутая платформа под осги.
>>716661
Ну я ж говорю ты спрингопетух
елси ты решил покичится, что в джаве тоже опенсорс силен, то не надо мы уже знаем как это работает.
Удачи, если у вас все так просто со сменой стандартов, то я вам могу только пособолезновать, что вы выбрали не самый легкий путь. Везде, где разрещено что-то еще, моментально от джавы уходят, можешь тролить дальше.
Ты меня тралируешь?
Еап на продакшене. Переходить с версии на версию естественно в мире жбоса.
Это не тухлая вебсфера же.
Моча опять забанит а то.
Хочу ее тред.
Конечно, забанят, нахуй твой джкбос вообще кому-то нужен, унылое тяжелое говно в век микросервисов.
А теперь идешь и смотришь сравнение производительности вебсерверов с динамикой.
И видишь что андертоу с джсп дает пососать всему что движется
ты то хоть сам лично это проверял и взвешивал все за и против, или будешь мне тыкать опромои от левада центр?
не, не наркоман в отлтичии от тебя практик, а не теоретик, все это говно я уже прошел, были у меня ПМы, кто тоде эти гафики сувал, и пробовали это все, но это уже другая история.
забей, тут уже троли подключились.
я это не писал
Микросервисы.
Основная их задачка отдавать джейсон через рест.
https://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=json
Что же мы видим?
Насмешил содомит.
В топ 10 по производительности 7 мест у явы а остальные 3 у с/крестов.
Говно путон и руби где то на уровне похапе.
http://pastebin.com/BbaQpxTu
Оно у тебя зацикливается похоже.
И вообще зачем тебе typeadapter?
Оно у тебя его пытается создавать в конских количествах
Так java.nio.file.Path. toString у него возвращает текстовую версию файлового пути.
лол
так и используй toString
а valueOf у тебя возвращает текстовое представление обьекта
а там хуита а не строка
Между прочим, String.valueOf null-safe, а Object.toString - нет
Ну анон, ну ни траль. Path переопределяет Object'овский toString, который и используется в String.valueOf, единственное предназначение которого - null-safety. Шо я так пишу, шо Path#toString,
хотя считывать строку "null" как файловый путь - плохая идея, это надо переделать
мимо ньюфаг
можно оба, ангуляр со спрингом частенько фигачат
Весь код, который относится к этому, я выложил в тот pastebin. Хоть убей, не вижу никаких циклических ссылок.
С чего Path будет содержать ссылки на другой Path, если я указываю Gson-у TypeAdapter для Path'а?
сделаю, сделаю, успокойся
Нет, криво выразился. Я сам преобразую Path в строку с помощью TypeAdapter, с чего Gson должен лезть туда и копаться?
Не знай. Ебашь фронтенд на jsf как ленин завещал.
>>716944
И в той ссылке идет ссылка на http://stackoverflow.com/a/24319892/1411598
Гдt так же рекомендуют null в ретурне
Алсо там же написано, что если ты используешь интерфейс, а Path это интерфейс, то используй registerTypeHierarchyAdapter
Вот оно, анон! Спасибо!
Видимо, registerTypeAdapter работает только для инстансов выбранного класса, но не для подклассов. Поэтому Gson брал не мой TypeAdapter, а пытался сам засериализовать муть с циклическими ссылками.
Вкатывайся.
Вот только начинать сразу со спринга плохая идея.
Там подразумевается что ты уже в курсе что такое сервлеты, персистентность, транзакционность да и вообще много чего.
Начни с ЕЕ чистого.
Лучше со стека редхата.
Cdi, ejb, jpa, jta, jax-rs для начала.
Если непонятно то читни гонсалвеса - изучаем яву ее7. Там много лишнего но сама книга норм.
Бля. Я бы сказал что через jpa. Но сдается в хеловорде проще вручную конекшенами управлять))
Для курсача сделай красиво. С использованием jpa.
Сначала спроектируй базу.
Тутесть 2 подхода.
1. База уже готовая.
2. Делаешь с нуля.
Если первое то реверсом генеришь энтити классы , по ним генеришь контроллеры и пилишь дао, ну и работаешь с базой.
Во втором случае сначала создаешь ентити классы вручную.
Уже сразу полезли в голову фасадные классы для еджбишек и рест контроллеры.
Хуй знает как в СЕ принято работать с базами.
Я привык через jpa и бины
Тебе веб приложение надо или клиентское?
С джавафх/свингом я тебе помогу не больше учебника.
За все годы ни разу не делал чего то сложнее пары кнопочек на фрейме
Веб. Вывести таблицу студентов, и сделать сортировку по разным полям + что бы на странице было n строк и соответственно разбитие на страницы.
На бакенде у тебя 2 пути.
1 простой.
Проектируешь базу в графическом редакторе субд. Ну там мусклворкбенч или мссклстудио.
Затем в нетбинсе создаешь проект ынтерпрайз придожения.
Затем реверсом генеришь энтити из таблиц.
Затем добавляешь в проект веб приложение. Тип jsf2.2 с primefaces. Генеришь себе странички. В принципе уже будет работать. Потом правишь примафейсовские странички под себя. Добавляешь функционала к уровню бизнеслогики и отображения. Деплоишь в вилдфай. Профит.
2. Посложнее.
Вместо веб приложения на jsf генеришь рест контролеры. Затем обмазываешься js и рисуешь формочки.
3. Вариант для любителей.
Вместо ЕЕ используешь спринг. Спрингруу нагенерит тебе всего говна что я выше описал. Даже сервер прилодений не нужен будет
Пиздец я хуйню написал.
2 пути а сам написал три.
Написал на бакенде а в пунктах и фронт.
КОроче на бакенде выбираешь или спринг или ее. И там и там есть и реверсинг энтити из таблиц, и генерация рест контроллеров.
На фронте или js-ом обмазываешься. Или jsf-ом с либами
Еще раз спасибо. Давно вкатился в ынтерпрайз и как так сейчас дела обстоят, какой порог вхождения ?
Да.
Ебашу на ЕЕ под джейбосы.
Если честно то все там просто.
Если долго этим заниматься, то деплой и генерация бойлерплейта - почти на автомате.
Основное время занимает как раз таки бизнеслогика
А да.
Если хочешь коротко. То можешь просто почитать туториал оркала
https://docs.oracle.com/javaee/7/tutorial/index.html
Там есть все вкратце.
А еще JHipster.
То что нужно, а то спринг трудно давался, какие то бинсы, хмл, конфиги, после jse не очень понятно.
Бины пошли из ejb. Причем в ejb3 они стали попроще. С sfsb slsb mbean все равно придется работать. Хотя с аннотациями проще. Хмл в виде дескрипторов развертывания есть и в ее. Но многое уже больше дань традиции. Bean.xml сейчас скорее флаг для активации подсистемы, а используют аннотации. Persistence.xml остается. Web.xml для описания настройки сервлетов/маппинга и фильтров остался. Ну и отдельные компоненты еще используют хмл файлы.
Возможно в ее8 их выкинут из стандарта, возможно сделают жабаконфиг как в спринге
Этот тонет.
И Плес норм оппик
Перекати сам, что ты как этот.
Это все великолепно, сфеерический конь в вакуме. Тест пустоты. А самое интересное, это оверхед часть, отличный показатель. Ваш фреймворк гавно, потомучто хелоу ворлд печатает медленно.
Перекат
Надо красиво спиздеть в резюме про основные ачивменты и решенные сложности в разработке приложения на сервлетах+jdbc+mysql, которое я еще нихуя не разрабатывал. Мордой, по легенде, не занимался.
С меня как обычно.
Это копия, сохраненная 7 мая 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.