Это копия, сохраненная 29 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
0. Минимальный список технологий, которые нужно знать, чтоб взяли стажером: https://atlas.mindmup.com/2015/10/3d59a040592a0133d02a5d31ebcc5420/java/index.html
Цикл статей что в каком порядке учить: http://dou.ua/lenta/articles/java-beginner-guide-1/ (заблочен РосКомПозором, юзайте прокси)
1. Туториалы есть?
BEGINNER: http://myflex.org/books/java4kids/java4kids.htm
MEDIUM: http://www.tutorialspoint.com/java_technology_tutorials.htm
HARD: http://docs.oracle.com/javase/tutorial/
2. Я зануда и я хочу умные книжки.
1. Head First Java, (2nd Edition) : Kathy Sierra, Bert Bates - для совсем нулячих простым языком.
2. Core Java (9th edition) : Cay S. Horstmann, Gary Cornell - тоже для нубасов, но на серьёзных щщах.
3. Thinking in Java (4th Edition): Bruce Eckel - для тех, кто умеет в хеллоуворлд на другом языке.
4. Effective Java (2nd Edition): Joshua Bloch - для тех, кто знает язык, но хочет перестать писать костыли.
Больше здесь: http://www.proklondike.com/books/java.html
3. Я не умею читать и хочу видео!
Пожалуйста http://dou.ua/forums/topic/8113/
http://habrahabr.ru/company/golovachcourses/blog/215275/
4. А где практиковаться?
Уровня 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/
5. Что насчет SQL?
Начни с малого: http://www.w3schools.com/sql/default.asp
Затем переходи к: http://www.sql-ex.ru/
В качестве чтива рекомендую: http://oreilly.com/catalog/sqlhks/chapter/
6. Java EE, Java FX:
https://www.youtube.com/channel/UCYTFfeXufxZM5pdC_OEmJwg
https://github.com/KriechelD/YouTubeChannel
7. Всё это хорошо, но без алгоритмов меня на работу не возьмут.
Не беда, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI
То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
8. Я готов к первому собеседованию.
Проверь свои знания здесь: http://www.quizful.net/test
И здесь: http://www.careercup.com/
Предыдущий тред тонет здесь: >>659397 (OP)
сага прилипла
В Java 8 есть достаточно полезные нововведения, о которых потом можно спокойно прочитать отдельно. Из них, например, лямбды и Stream API.
То есть это не критично и быстро исправляется за короткий промежуток времени? Спасибо, я уж думал половину материала надо будет перелопачивать.
Живет и развивается, однако, сам подход писать фронтенд на бекенд-языке в 2016 является некошерным. Ибо идет намешивание клиентской архитектуры и серверной.
можно догнать вот этим циклом туториалов http://docs.oracle.com/javase/tutorial/java/index.html
>Ибо идет намешивание клиентской архитектуры и серверной.
Ты уверен, что в этом виноват язык, а не дебри архитекторских костылей?
Да.
Ага, переборщили явно.
Я сгорел нахуй, кто б меня взял на 45. Или на 30. Или на 15. Блять, да хоть стажёром за спасибо.
Уже от безысходности отправляю резюме не только по ДС2, но и в ближайшие города. лол. Меня, конечно, один хуй не возьмут, но так на душе спокойнее.
Долго перечислять. В общем, всем. Общего - только слово в названии.
помогите пожалуйста запустить программу из командной строки,есть класс Hai, у меня почему-то выводится "Could not find or load main class Hai", программа написана в intellij idea, полный путь к файлу Hai.java E:\Workspace\check\src\dil\e\ziddi, а полный путь к файлу Hai.class E:\Workspace\check\out\production\check\dil\e\ziddi, и почему-то программа не компилируется. Что я делаю не так?
Спасибо. Документацию читать или посоветуете годный ресурс ?
жява май фейворит плягляминг лянгвиж)
че сказать то хотел?))
По погружению рыбки
Значит пишу как в книге
public class fish {
int currentDepth=0;
public int dive(int howDeep) {
currentDepth = currentDepth+howDeep;
if (currentDepth > 100) {
System.out.println("Я маленькая рыбка и не могу плавать глубже 100 метров");
currentDepth = currentDepth - howDeep;
} else {
System.out.println("Ныряю на глубину " + howDeep + " футов");
System.out.println("Я на глубине " + currentDepth + " футов ниже уровня моря");
}
return currentDepth;
}
}
Там с экстендс пет но меня интересует именно метод дайв, так что этот кусок будет работать
Вызываю на выполнение
public class FishMaster {
public static void main(String[] args) {
fish myFish = new fish();
myFish.dive(2);
myFish.dive(97);
myFish.dive(3);
}
}
Работает, все нормально как в примере
Ныряю на глубину 2 футов
Я на глубине 2 футов ниже уровня моря
Ныряю на глубину 97 футов
Я на глубине 99 футов ниже уровня моря
Я маленькая рыбка и не могу плавать глубже 100 метров
Теперь тут же вроде как можно писать такую конструкцию и как я думаю должно работать так же
currentDepth = +howDeep;
currentDepth = -howDeep;
Вместо соответствующих строчек в классе фиш
currentDepth = currentDepth +howDeep;
currentDepth = currentDepth -howDeep;
Но если так написать, то результат
Ныряю на глубину 2 футов
Я на глубине 2 футов ниже уровня моря
Ныряю на глубину 97 футов
Я на глубине 97 футов ниже уровня моря
Ныряю на глубину 3 футов
Я на глубине 3 футов ниже уровня моря
То есть каждый раз при вызове класса фиш глубина 0 метров в начале, почему так, объясните пожалуйста. Я смотрю что в классе фиш мы описываем конечно переменную вначале int currentDepth=0;
Но когда конструкция currentDepth = currentDepth +howDeep; То в правом currentDepth мы почему-то имеем значение с прошлого ретурна.
По погружению рыбки
Значит пишу как в книге
public class fish {
int currentDepth=0;
public int dive(int howDeep) {
currentDepth = currentDepth+howDeep;
if (currentDepth > 100) {
System.out.println("Я маленькая рыбка и не могу плавать глубже 100 метров");
currentDepth = currentDepth - howDeep;
} else {
System.out.println("Ныряю на глубину " + howDeep + " футов");
System.out.println("Я на глубине " + currentDepth + " футов ниже уровня моря");
}
return currentDepth;
}
}
Там с экстендс пет но меня интересует именно метод дайв, так что этот кусок будет работать
Вызываю на выполнение
public class FishMaster {
public static void main(String[] args) {
fish myFish = new fish();
myFish.dive(2);
myFish.dive(97);
myFish.dive(3);
}
}
Работает, все нормально как в примере
Ныряю на глубину 2 футов
Я на глубине 2 футов ниже уровня моря
Ныряю на глубину 97 футов
Я на глубине 99 футов ниже уровня моря
Я маленькая рыбка и не могу плавать глубже 100 метров
Теперь тут же вроде как можно писать такую конструкцию и как я думаю должно работать так же
currentDepth = +howDeep;
currentDepth = -howDeep;
Вместо соответствующих строчек в классе фиш
currentDepth = currentDepth +howDeep;
currentDepth = currentDepth -howDeep;
Но если так написать, то результат
Ныряю на глубину 2 футов
Я на глубине 2 футов ниже уровня моря
Ныряю на глубину 97 футов
Я на глубине 97 футов ниже уровня моря
Ныряю на глубину 3 футов
Я на глубине 3 футов ниже уровня моря
То есть каждый раз при вызове класса фиш глубина 0 метров в начале, почему так, объясните пожалуйста. Я смотрю что в классе фиш мы описываем конечно переменную вначале int currentDepth=0;
Но когда конструкция currentDepth = currentDepth +howDeep; То в правом currentDepth мы почему-то имеем значение с прошлого ретурна.
http://www.w3schools.com/html/default.asp
>>674127
Двачую этого, книжки нужны только чтобы мусор в голове уложить после сотни перелистанных ответов на СО.
>>674145
ты путаешь "a-=b" с "c= -d" первый это сложение, второй это инверсия знака.
+= и -= , а не =+ и =-
x += y означает увеличить x на значени y, -= соответственно отнять.
Теперь твои варианты:
x =- y - присвоить иксу значение "минус игрек". Т.е. если y = 10, то x = -10.
x =+ y просто присваивает значение y никак его не меняя (ни разу не видел, чтоб использовалось, в я зык добавили видимо чисто для симметрии с минусом)
краткость - с. т.
Хуйню не неси.
У тебя случайно не jre вместо jdk стоит? Проверь виндовские enviromental variables. Или набери командной строке echo %PATH%
при запуске в командной строке "java -version " вывелось что-то вроде java se runtime environment, но у меня установлен jdk и jre, но даже после удаления jre всё-равно не работает программа, и ещё, у меня путь к файлу jdk это C:\Program Files\Java\jdk1.8.0_74, а после удаления папки jre в C:\Program Files\Java\ командная строка при команде "java" пишет не удаётся найти файл C:\ProgramData\Oracle\Java\javapath\java.exe
как это исправить? как сделать так, чтобы командная строка искала jdk в C:\Program Files\Java\jdk1.8.0_74?
Сделано для экономии ресурсов. Чтоб макаки не передавали объекты как параметры.
спасибо, понял
Давал почитать знакомым, говорили, мол, норм, на джуниора вполне сойдёт.
Алсо чудеса - сегодня получил два приглашения на интервью. Серьёзно, полтора месяца тишины и тут мне назначают два собеседования в один, блять, день. Что-то с этим миром не так, сижу вот, судорожно дрочу вопросы с собеседований.
Давай, не упускай шанс, удачно пройти! Отпишись потом.
https://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-mapping-entity
>Depending on whether you annotate fields or methods, the access type used by Hibernate will be field or property. The EJB3 spec requires that you declare annotations on the element type that will be accessed, i.e. the getter method if you use property access, the field if you use field access
ДС2, но от безысходности откликнулся даже на вакансии в ДС и ближайших городах, ну а хули нет.
Кстати, нашёл вот такую неплохую подборку джуновских вопросов, да ещё с ответами, кому-то может пригодиться, так что оставлю здесь.
http://jsehelper.blogspot.ru/2016/01/blog-post_59.html?m=1
>Как пометить файл executable в убунту
http://lmgtfy.com/?q=Как+пометить+файл+executable+в+убунту&l=1
Бляяяяяяя
а я хотел в джаву вкатиться, а тут все вкатывальщики хуй сосут судя по тебе. бляяяя
сука пиздец
походу внатуре один пхп остается и говноверстка
пиздеееец пойду сторожем тогда хули
пиздец вопросы
Это че все спрашивают? Вы че ебанутые? дауны блять
нахуя все это
нахуя дудосить блять7 Приезжай! в ебло мне дай!
Можно ли данные из массива (к примеру ArrayList<Integer[][][]>) записать в файл на жесткий диск? И потом эти файлы прочитать?
Объясню.
К примеру у меня есть 10.000 изображений, которые по пиксельно забиты в массив. И что бы не держать эти Mb на диске, я хочу читать их из какого нибудь .dat
Возможно ли это сделай или забить, т.е. полный бред?
Бляяяя, ты траллишь что ли? На ДС-2 нет джава вакансий? Или может у тебя нет софтскиллз?
Мимо тоже ДС-2 скоро вкатываюсь.
Я бы с гуглом отвечал.
ахаха, обоссаться, у тебя там всего два проекта. и те с полторастрочным крудом.
ты что ебанутый? потрать несколько лет на набивание портфолио, потом приходи
вообще как ты можешь ЗНАТЬ все эти технологии, если у тебя на них ни одного проекта нет? типа прошел курсы на кодеакадемии и документацию прочитла? пиздец манька.
>ахаха, обоссаться, у тебя там всего два проекта. и те с полторастрочным крудом.
>>675439
>вообще как ты можешь ЗНАТЬ все эти технологии, если у тебя на них ни одного проекта нет?
>по ссылке проект под 3 тысячи строк, с которым я ебался два месяца
Вот сейчас обидно было.
>написал один магазинчик на джава УЭБ, который можно за неделю на пхп фреймворке сделать с версткой
>2 месяца
кек
>указал, что прошёл джава-школу в T-Systems
>два с лишним месяца мозгоебли, 80 часов лекций, персональняй куратор, который регулярно доёбывается по скайпу с вопросами в духе "чо, как код пишется"
>половину закончивших после обучения взяли на начальную ставку в 60к
>типа прошел курсы на кодеакадемии и документацию прочитла? пиздец манька
Уже жду, что мне сейчас по хардкору пояснят, что чтобы устроиться джуном за бутерброды я должен 5 лет ебашить код. Особенно смешно с учётом того, что каждый второй пограммист на вопрос "что ты знал, когда устраивался джуном" отвечает в духе "нуу, эта, кор там, коллекции тип, остальное по ходу дела учил".
>>675455
Ой, ну всё, перестань, я уже понял, что за неделю я должен был с нуля разобраться в принципах веба, сервлетах с фильтрами, прочитать за вечер Spring in Action и EJB in Action, узнать основы вёрстки, которую никогда не делал.
По срокам, кстати, я немного напиздел, там месяц даётся, чтобы запилить приложение на сервлетах и фильтрах, и ещё месяц, чтобы полностью перенести его на спринг, допилить к нему второе небольшое приложение на EJB и сделать так, чтобы они через веб-сервисы нашли общий язык.
сажи индусне
फक यू
Бамп
Когда у тебя собес? Расскажи как все пройдет. Сам в точно таком же положении как и ты(скиллы и проекты как и у тебя, только без сертификатов, сам все учил), найти работу долго не могу. ДС.
нет, вот объясни мне нахуя делать веб на java, если есть руби, питон, пхп, нода жиес в конце концов, специально разработанные для этого инструменты. нет блять, усложню себе задачу сделаю инет магаз на жаве .
Ты идиот, подобные проекты на джава пишут не ради самих магазинов/блогов, а чтобы разобраться в инструментах и понять суть работы( спринг хибернейт), а потом использовать уже на работе, где пилят здоровый веб-аппликейшен( не обычный сайт, а большое веб-приложение с логикой, алгоритмами, плотное взаимодействиями с бд и т.д.)
Конечно, бро, вечером отпишусь. Хотя я бы на твоем месте не рассчитывал на интересные кулстори, насколько я знаю эту контору, сегодня мне дадут какой-нибудь даунский тест уровня "отсортируй массив", целью которого является исключить совсем отбитых кандидатов, а техническое интервью в другой день назначат.
>>675490
Очевидно из-за того, что я даун и всегда мечтал запилить интернет-магазин на джаве в ходе обучения необходимо запилить веб приложение. Есть разные варианты, сайт мобильного оператора с тарифами, скидками, акциями и прочим, сайт компании грузоперевозок с расчетом маршрутов, сайт компании по продаже железнодорожных билетов на разные маршруты, мне вот, как видишь, интернет-магазин достался.
Программа пишет число (то, что в переменной а) прописью.
Программа, вроде как, работает, но я чувствую что можно было написать лучше, компактнее, выше, сильнее и, наверняка, что-то с ней не так.
В общем, анончики, оценивайте, критикуйте, обоссывайте, пинайте, но скажите что в ней не так.
> new String()
""
> String str
StringBuilder
> String dig(int a, int b)
String dig(int "что-нибудь осмысленное", int "что-нибудь осмысленное")
> switch/cash
HaspMap<Integer, String>
> Java
Kotlin
в настройках проекта выставлена старая версия. Если мавен то гугли maven source version, если что-то другое то гугли что-то другое.
читаю только этот и перезвоним-треды. Доставляет боль неосиляторов.
Стоит ли бежать учить всякие пхп, если живешь в мухосранях?
2 года в офисе, а потом на фриланс удаленку. Ну и еще можно вкатиться в андроид на той же джаве
Метод должен выводить на экран ближайшее к 10 из двух чисел, записанных в аргументах метода.
http://pastebin.com/vZVJksX1
Затупил. все.
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
Гостевуха: spring, hibernate, html5
Охуенный собес. Суть в том, что, если честно, я уже был в этой компании пол года назад, так что сейчас получил то же самое задание. Задание, к слову, совершенно даунское, алгоритм в несколько строчек проанализировать, элемент в начало связного списка вставить да небольшую задачку на логику решил. Теперь остается ждать, пока проверят и техническое собеседование.
В прошлый раз я у них, кстати, дико соснул. После такого первого этапа обрадовался тому, какой я охуенный, и в итоге на втором почувствовал себя школьником, который решил похвастаться тем, как он круто умножает в столбик, а ему предложили интеграл взять. Унижали меня почти час, и всё это время я хотел проводиться сквозь землю. Интервьювер тыкал в меня пальцем и всячески унижал. Не юзаешь ант и мавен? Пиздос, чем же ты проекты собираешь? JUnit использовал? Нет? Мде. Логирование? Ясно. Как в UML агрегация обозначается? Ммм... А с базами как работаешь? Через JDBC? Лел. А вообще знаешь какие-нибудь модные фреймворки? Ты хоть веб сервер можешь от сервлеты контейнера отличить, погроммист?))) Мало того, что я нихуя из этого не знал, я еще и в элементарных вещах косячил, помнится, когда меня спрашивали про внутреннее устройство HashMap я какой-то дикой хуйни наговорил.
В общем, обоссали меня тогда знатно, а в качестве утешения потом позвонили и сказали, мол, в качестве уступки мы можем тебе предложить неоплачиваемую стажировку на 2 месяца. Потом, разумеется, позвонили еще раз и сказали, что нет, чувак, неоплачиваемую стажировку мы тебе тоже не предложим, иди нахуй.
Ну, теперь-то я у мамы умный и у меня будет возможность вернуться с триумфом. Или опять обосраться.
Скорее всего тебе просто не перезвонят. но я надеюсь на обратное, иначе мне тоже могут не перезвонить. примерно похожая история была
Потому что ты нихуя не знаюешь с одним мелким калькулятором, курсы свои для домохозяек и (ой бля ваще ржач) аэродинамическую вышку в жопу себе запихать можешь, вот. Зато ЧСВ то какое, шел бы бэгбон лучше почистил или битрикс.
Да не, эти перезвонят, в прошлый раз же перезвонили, а задание даунское, один хрен я что в прошлый раз все сделал, что в этот. Интереснее будет посмотреть, как на этот раз техническое интервью будет проходить.
Входишь в комнату собеседования, тебе говорят "ааа, это ты. Ну мди нахуй тогда сразу". Шучу.
А вообще бесят такие интервьюверы, которые за счет собеседуемых повышают себе самооценку.
"Ну какой же ты тогда программист?))". Ну охуеть. Ты тащемта и не программист и лишь хочешь им стать.
Но если все так, как ты говоришь, то лучше не иди к ним работать. Если такие хуесосы поднимают себе самооценку за счет кандидатов, то с коллегами и подчиненными и вообще с атмосферой на работе будет не лучше.
Если человек не знает про внутреннюю реализацию хешмапа, то это не дает право человеку, который знает, издеваться над ним и унижать его.
Отношения должны быть деловыми - не подходите, до свидания. А не шуточки и издевательства.
Вообще-то дает, этому самоуверенному петуху с калькулятором надо с мелкого веба начинать на скриптоязыках, делать дескоп для себя, а потом уже пытаться осилить многонагруженные серверы с хайлоадом и паралелльными тредами. приятно читать, как его опустили, хехе
Чем хочет, тем и занимается. Тебя вообще ебать не должно.
А я, знаете, серьёзно думал, что у вас тут в /pr/ душа, сидят, значит, мидлы да синьоры-помидоры, работку обсуждают, с ньюфагами опытом делятся, советы мудрые дают. А на деле как будто в /b/ зашёл, только бы спиздануть. И вышка у меня, оказывается, аэродинамическая,
И приложение на спринге с хибером в калькулятор превратилось. В чем суть-то, сказать что хотел? Что я не программист? Так я как бы в курсе. Что ты типа круче меня? Мне, собственно говоря, похуй, но если ты работаешь с джавой, а я нет, то это вроде как само собой разумеется. Или ты пытаешься меня каким-то образом расстроить? Совсем глупо, почему я должен всерьез воспринимать чьи-то слова на анонимном форуме?
>>675632
Какие скриптоязыки, какой мелкий веб? Почему-то практически все разработчики на джаве, с которыми я общался начинали именно с той же джавы. Может мне пойти версткой позаниматься? Охуенно поможет, ага.
>>675630
Да я всё равно пойду, если возьмут. Не знаю, что за хуйню написал воинствующий мамкин анонимас выше про мое запредельное ЧСВ, но я сейчас и стажером за спасибо пошёл бы, отработать хоть несколько месяцев опыта ради. Ну и из альтернатив пока только ко собеседование в ещё одну контору, куда мне добираться около 2 часов, а график у них с полудня до девяти вечера, лол. Хотя я бы и туда пошел, чего уж там душой кривить.
А тем временем знакомому, с которым вместе джава-школу проходили в т-системс 60к дали, в этом месяце командировка в гермашку, полетит с руководством отдела знакомиться. Эх, припекает немного.
Возможно я диван, но тебе не кажется, что либо:
а) Ты пиздишь и знаешь всё, что указывал в резюме не на том уровне, на который ты можешь пойти работать
б) Что это просто НЕ ТВОЁ?
Лол, так это и ежу понятно. А вот то, как там значения сортируются по корзинам, как они перераспределяется и для чего нужен лоад фактор я, увы, не знал.
В своё оправдание могу сказать, что требования у вакансии примерно такие:
>Понимание принципов структурного программирования, теории реляционных баз данных.
>Опыт работы с базами данных, знание языка запросов SQL.
>Понимания принципов объектно-ориентированного программирования, знание одного или нескольких языков высокого уровня (C++, java, pascal).
Я вот, скажем, не ожидал, что на вакансии уровня "знать Паскаль и принципы ООП" меня выебут за то, что я спринг с хибернейтом не знал.
>>675669
Так ведь проблема в том, что работодатель не знает, на каком уровне я это все знаю. Чтобы узнать, он должен сначала со мной интервью провести, а не зовут же, вон, первое собеседование за полтора месяца.
А про уровень... Так я вроде не в рокет саенс хочу, а джуном за еду.
Её стоит. Если тебе не нравятся сервлеты посмотри в сторону vert.x и ratpack. Play имеет смысл, если ты пишешь на scala.
Был у нас на обучении один мужик, 32 лвл, разработкой никогда не занимался. а тут, значит, внезапно решил вкатиться. Мужик довольно сильно отставал, в основном из-за того, что по будням времени не хватало из-за работы (несколько человек во время обучения уволились с основной работы из-за того, что времени не хватало), а по выходным он проводил время с женой и ребёнком. На новогодних праздниках, когда я сутками въёбывал, он поехал с семьёй в финку. В итоге на фмнальном показе (а показать нужно было, значит, два приложения, одно на спринге, второе на EJB), второе приложение у него не запустилось. Вообще. Он тогда развёл руками и сказал, мол, ничего не знаю, дома всё работало, а тут чот сломалось, хуй знает кароч. Окай, сказали ему, запусти тогда SoapUI и покажи, что у тебя рест-контроллер на первом приложении работает. Запустил. Нихуя не работает. Не знаю, развёл он руками, раньше всё работало, чот поломалось, само наверное. В итоге показывал только одно приложение. причём по ходу у него вылезла какая-то хуита вместо того. что он добавлял в заказ, он и в тот раз развёл руками и сказал. мол, не знаю, странно, чот раньше всё работало.
В общем, мужика, само собой, взяли, а я эпично соснул хуйца, хоть весь функционал полностью работал и никаких багов на показе замечено не было.
О чём это я? Нет, ничего плохого я к мужику не чувствую. Даже скорее наоборот, в какой-то степени за него рад, повезло, хули тут делать, хотя может договорился как-то. Вот только хуй я теперь сдамся и дропну, вот просто из принципа. Устроюсь куда-нибудь за еду и буду работать ради опыта. Дадут неоплачиваемую стажировку в другом городе - поеду туда, буду снимать комнату в каком-нибудь клоповнике и въёбывать за запись в трудовой книжке и этот ваш "опыт коммерческой разработки". Хотя всё равно не понимаю, почему всё это так сложно, когда постоянно слышу истории на тему "я вообще когда устраивался нихуя не знал, пару месяцев почитал про кор и пошёл стажёром, щас мидлом норм работается".
Был у нас на обучении один мужик, 32 лвл, разработкой никогда не занимался. а тут, значит, внезапно решил вкатиться. Мужик довольно сильно отставал, в основном из-за того, что по будням времени не хватало из-за работы (несколько человек во время обучения уволились с основной работы из-за того, что времени не хватало), а по выходным он проводил время с женой и ребёнком. На новогодних праздниках, когда я сутками въёбывал, он поехал с семьёй в финку. В итоге на фмнальном показе (а показать нужно было, значит, два приложения, одно на спринге, второе на EJB), второе приложение у него не запустилось. Вообще. Он тогда развёл руками и сказал, мол, ничего не знаю, дома всё работало, а тут чот сломалось, хуй знает кароч. Окай, сказали ему, запусти тогда SoapUI и покажи, что у тебя рест-контроллер на первом приложении работает. Запустил. Нихуя не работает. Не знаю, развёл он руками, раньше всё работало, чот поломалось, само наверное. В итоге показывал только одно приложение. причём по ходу у него вылезла какая-то хуита вместо того. что он добавлял в заказ, он и в тот раз развёл руками и сказал. мол, не знаю, странно, чот раньше всё работало.
В общем, мужика, само собой, взяли, а я эпично соснул хуйца, хоть весь функционал полностью работал и никаких багов на показе замечено не было.
О чём это я? Нет, ничего плохого я к мужику не чувствую. Даже скорее наоборот, в какой-то степени за него рад, повезло, хули тут делать, хотя может договорился как-то. Вот только хуй я теперь сдамся и дропну, вот просто из принципа. Устроюсь куда-нибудь за еду и буду работать ради опыта. Дадут неоплачиваемую стажировку в другом городе - поеду туда, буду снимать комнату в каком-нибудь клоповнике и въёбывать за запись в трудовой книжке и этот ваш "опыт коммерческой разработки". Хотя всё равно не понимаю, почему всё это так сложно, когда постоянно слышу истории на тему "я вообще когда устраивался нихуя не знал, пару месяцев почитал про кор и пошёл стажёром, щас мидлом норм работается".
Продолжай ебать, все получиться.
Знаю тоже немало примеров когда брали на работку по сути только с джавой, я знаком с этими людьми и уверен что у них там рельно только кор(никакой рефлексии, аннтотаций, многопоточности). Но это в наших краях(батькоподданный я).
С другой стороны работка не только ради записи, там рельно ты хаваешь в десятки раз больше инфы, чем если дома самому задрачивать. Пол года назад ходил на курсы при конторе, типа как ты, только хуй я в конце что написал. Но там я за пару дней делал в разы больше чем сейчас за пол месяца, вроде и маюсь днями, что-то пишу, а результат мизерный. На курсах были сроки, появлялось чуточку ответственности, чувсто "не быть самым днищем в группе". Все это неплохо мотивировало. А на работе там еще добавится нихуевый такой стимул в виде бабла и пиздюлей в случае проеба сроков. Пиздаболы про не твое пусть идут нахуй, в каждом треде таких как говна в нужнике.
> Приложение без логика — нахуй. Короче ты хуй с горы и максимум тебе работать рабом в авторской галере.
Логирония и аутсорсной. Ебанный телефон с его автокомлитом.
>Я когда на Junior шёл, пиздел с вьювером про java memory model, про многопоточность, про сложность конкретного алгоритма, про рекурсию и имьютабельность данных.
Я тоже могу про все эти вещи убедительно пиздеть, что, как и зачем. Но вот только если ты не писал кода один хуй тебе эти знания помогут.
Другой-анон
Что за культ блять? Нет денег? Сиди у мамки на шее или жопой иди торгуй, нахуй они так унижаются?
Так я описал просто случай из жизни на тему "как я пытался устроиться пол года назад ничего не зная и меня послали нахуй". Ясное дело, что сейчас у меня и хибер, и логирование, и тесты, да и попиздеть на озвученные темы я вполне могу. Другое дело, что попиздеть я могу, руками там помахать, а опыта реальной разработки это не заменит.
>>675774
В 26 на шее у мамки особо не посидишь, а время только уходит, и чем раньше я смогу получить реальный опыт - тем лучше. И, раз уж на то пошло, лучше работать за еду и получать опыт, чем сидеть дома, листать книжки и этого самого опыта не получать.
Ладно, сорян, пасаны, я вам и так весь тред засрал своими охуительными историями, съебу, пожалуй. Будут новости - отпишусь.
Ну так если ты понимаешь как что устроено в памяти. Где лежат переменные. Как работает гц, чем они отличаются. Зачем нужны фантомные и слабые ссылки. Если понимаешь стоимость работы коллекций в каких случаях какую коллекцию стоит юзать ты вряд ли это все просто звучил из умных книжек. Да и какое собеседование без кода. По рекурсии я писал нахождение цикла в двухсвязном списке прямо на листочке. В целом это было довольно крутое собеседование с толковым чуваком. Что и стало решением пойти к ним, а не к чувакам которые просили написать какое-то говно на спринге и хибернейте.
Честно, я не понимаю, как можно в ДСах не найти работу на джаве. Ты явно делаешь что-то не так.
Вот здесь >>673828 это что за скриншоты? Хедхантер какой-то? Короче, на помойку его. Во-первых, эйчары знают, что хорошие кадры на хедхантере не пасутся. Во-вторых, твое резюме там теряется среди тысячи точно таких же.
Пилишь годное резюме в ПДФе, делаешь упор на то, что уже работал в ОйТи, и что очень успешно прошел курсы, а вот и результат на гитхабе, никакой лишней хуйни типа "неженат, вод.кат.Б". Убеждаешься что оно четко и стильно выглядит, сверстай с бутстрапом. Берешь список самых больших бодишопов и шлешь резюме на hHKyrANUSmegabodyshoJ8rpPUNCTUMc#7?om, в письме пишешь "Здравствуйте, я Сычев, опыта хуй да нихуя, но умею много, а амбиций еще больше, не знаю есть ли у вас вакансии на джуна, но лучше бы вам такую открыть под меня, пока я не ушел к конкурентам ну хотя бы резюме гляньте, ну позязя"
И да, хедхантеры - нахуй. У нас в Украшке есть dou.ua и джинни, мне бы и в голову не пришло размещать резюме на одном сайте с продаванами и курьерами. Должны же во встающей с колен быть аналоги, на хабре том же вроде вакансии пиарят, хз.
А варианты устроиться не в бодишоп есть?
>Ну так если ты понимаешь как что устроено в памяти. Где лежат переменные. Как работает гц, чем они отличаются. Зачем нужны фантомные и слабые ссылки. Если понимаешь стоимость работы коллекций в каких случаях какую коллекцию стоит юзать ты вряд ли это все просто звучил из умных книжек.
Ну перестань, чтобы знать как там всё в памяти устроено достаточно внимательно Эккеля прочитать и пару тематических статей.
>>675806
Должно быть ты прав, надо больше спамить напрямую. Впрочем, я и так практически во все крупные конторы писал.
Кстати, если кому из желающих вкатиться ньюфагов интересно, завтра в ДС2 будет такая вот хуита проходить, думаю, очень неплохо туда сходить.
http://it-sobytie.ru/events/6047
Я про фриланс. Андроидом можно фрилансить
>а вот и результат на гитхабе,
с этим одностраничным крудом его пошлют разве что. я не понимаю, что тут все так удивляются, пусть сидит и набивает портфолио, изучает другие скриптовые языки и фреймворки, он же нихуя не знает и не делал.
Во-первых. не знаю, почему ты так упорно называешь моё говноприложение одностраничным крудом, но это, очевидно, не так. Вот. сёрьёзно, хибернейт есть, спринг есть, разные роли пользователей, хуйня всякая.
Во-вторых, я лично знаю человек 7, которые успешно устроились с таким же одностраничным крудом.
В-третьих, возможно сейчас очень хуёвое время, но мой знакомый, окончивший такую же школу в начале прошлого года (его тоже не взяли. через пару месяцев, впрочем, прислали оффер) за пару недель с таким же крудом получил оффер в четырёх конторах.
В четвёртых... И, это, пожалуй, самая печальная часть - всем глубоко поебать, что там у меня в портфолио. Я более чем уверен, что в большинстве контор, куда я своё резюме присылал, мой код даже не смотрели. Почему? Да ясен хуй почему - джуниоров сейчас как говна, на каждую вакансию налетает несколько десятков претендентов, и на фоне человека с опытом хотя бы в несколько месяцев работы резюме типа "я никогда не работал, но я умный, правда, возьмите меня" смотрятся жалко. Какой бы такой человек не был "типа умный" - первые пару месяцев толку с него всё равно будет чуть больше, чем нихуя, а от того, который хоть где-то хоть как-то работал таки можно ожидать профит. Ещё десяток технологий в резюме при отсутствии реального опыта только усилит ощущение "вон даун какой, накопипастил из википедии названий и думает, что что-то знает".
>>675861
С одной стороны, аннотациями удобнее. С другой, ты можешь захотеть для разных баз или ещё каких ситуаций иметь разные настройки, в таком случае удобнее запилить несколько xml и использовать тот, который сейчас нужен.
есть элементарные тесты джюнит http://pastebin.com/KCf0mXqE
которые в кмд спокойно выполняются путём "mvn test" http://pastebin.com/sWMRpEkW
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.288 sec
Results :
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
но стоит сделать преднамеренную ошибку в одном из результатов, как всё ломается нахуй. Вот так, например:
public void canDivideSixOnTwo(){
int answer = 6/2;
assertEquals("6/2=3", 4, answer );
И вместо того, чтобы вывести результат ран 3, фейлор 1 он меня хуями кроет http://pastebin.com/Ya4PgyW1
Когда приложение довольно большое, то помнить где какие аннотации навешены становится сложно, и иметь весь конфиг в одном месте становится удобнее. Другое дело, что XML - это боль и унижение, поэтому сейчас в основном юзают джава-конфиг. Это все о спринге, конечно. Как там в хибере с этим - хз, давно с ним не работал.
>>675884
mvn clean test и у тебя сломается и рабочая версия, лол. Таки мавен почему-то не видит конпелятор, проверь пути.
Почему бы тебе не устроиться по специальности? Наверняка в ДСах эти авиаинженеры - востребованная профессия.
Вероятно из-за того, что я окончил прикладную математику и по специальности я как раз и должен её прикладывать либо в экономике, либо в инженерном деле, либо в программировании. Но поскольку экономики у нас не было вообще нихуя, инженерное дело у нас было на таком охуительном уровне, что я, закончив кораблестроительный университет о кораблях не знаю ничего вообще (наше знакомство с кораблями закончилось тем, что был один семестр гидродинамики, где мы решали йоба-уровнения, вообще не представляя, к чему ирл они прикладываются), а программирование мне хотя бы интересно, да и в институте нас пытались чему-то учить. Да и диплом у меня был как раз связанный с программированием, раз уж на то пошло, у меня там был генератор случайных ландшафтов и визуализация всего этого под DirectX.
Блять, а писал же на плюсах, а потом всё дропнул и хуи пинал да эникеил, сейчас уже вообще ничего на плюсах не вспомню. Вернуться бы в прошлое и дать себе пиздюлей.
зато ты наверное, знаешь, что такое алгоритмы и числа фиббоначи, хехе
Двач.
Судя по году окончания универа, лет 24-26.
Очень информативно. Я хочу через программный код страницы узнать линк внутри php.А т.к мои знания в программировании в районе 0, то и спрашиваю совет здесь
Пикрандом.
Это я на российские перевёл.
Поделись кодом например плокс, а то я не одного J2ME в глаза не видел.
вот почитал я тут все про вкатывальщика
сука пиздец
ну бля пиздец
ХУЛИ ТАК ДОХУЯ ЗНАТЬ-ТО НАДО НА ДЖУНА И ВСЕ РАВНО ХУЙ СОСЕТ В ДС
БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
я обречен походу.
Я пистон мучал, но он же для детей и домохозяек, на всю москву 20 вакансий и даже в них половине нужен пхп\жава. Сука пиздец. Думал в жаву вкатиться, а тут ну пиздец.
Бля посоны я лягуха теперь. Как жить-то а?
Через стажировку. Представляешься эйчарам, проходить собеседование, потом стажировка.
Студентом устраивался, что нужно было знать? Чет на их сайте вообще никакой инфы про стажировку, курсы и т.д., да и сайт фирмы, а не филиала минска
Мало кто из фирм выкладывает инфу про стажировку.
Как и везде. Кор, JSP, Servlet, Spring, Hibernate, JPA.
БЛЯЯЯ
>>676717
Короче дерзай, все будет окей, не зацикливайся на жаве. Вот у меня двух друзей, да и меня самого взяли работать без какого-либо опыта, мы конечно, точнее нас просто порекомендовал друг, а он устроился с помощью друга мамки, но не суть. Знаю кучу ущербов которые просто пошли тестировщиками и ничего - нормально, тебе же меньше 20?
... и 400кб изображение магическим образом превратились в 10мб
Похоже придется каждый раз конвертировать изображение...
>>676772
Использовать сериализацию вместо того что бы нормально записать изображение в файл, норм че.
>>676774
У меня есть изображения в jpg. 30 000 штук. 4 гб.
И если это все сериализовать, то получится 280гб. Да и не факт, что это будет работать быстрее, чем считывание каждого изображения во временный массив, когда мне оно потребуется.
Ладно, не буду ходить вокруг да около: я хочу сделать так же, только на джаве.
https://vimeo.com/146492001
Алгоритм я уже написал и протестил на меньших объемах, но я не понимаю, как можно моментально загружать в память массив в 300гб
Тебе не кажется что джава не очень подходит для таких вещей? Да и гигов ты загнул, еще небось не учел что можно изворачиваться через нативную кучу?
>Тебе не кажется что джава не очень подходит для таких вещей?
даже это мне не поможет? https://www.ibm.com/developerworks/ru/library/j-javadev2-15/
>Да и гигов ты загнул, еще небось не учел что можно изворачиваться через нативную кучу?
Я знаю, что такое нативная библиотеке, но нативная куча..
Окей.
Я сериализировал массив ArrayList<File> из 1000 файлов (400мб), и у меня получился файл весом... в 78 кб. Я попытался загрузить и записать его из него изображение ... и у меня это получилось.
Что это мать его за магия?!?
>точнее нас просто порекомендовал друг, а он устроился с помощью друга мамки, но не суть
Ага, вообще не суть. Я так через знакомых тян устраивал на работу, инженером по работе с БД. Она о существовании SQL узнала за два дня до собеседования, и ничего, уже год как работает.
ПИЗДЕЦ
У МЕНЯ ШАНСОВ НЕТ
БЛЯТЬ
ПРИДЕТСЯ ИДТИ РАБОТАТЬ СТОРОЖЕМ
БЛЯТЬ
ПИЗДЕЦ
Я ХОЧУ В ЖАВУ, А ШАНСОВ НЕТ
АЛЛАХ МОЛЮ ТЕБЯ, ПУСТЬ Я ВЫУЧУ ЖАВУ И НАЙДУ РАБОТУ, АМИНЬ
> но я не понимаю, как можно моментально загружать в память массив в 300гб
поставь твердотельник, че ты как бомж?
И зачем по-твоему там загружать все изображения в память одновременно? Оно совсем не так работает. Две части: первая обучает нейронную сеть на дохуиллионе изображений (по очереди), вторая использует обученную сеть для распознавания.
Ой, ну не толсти, я реальный случай описал. И в этом реальном случае зп через год почему-то только 30-35, а никак не 200.
Я тоже реальный описала. Ну ладно з.п. до падения рубля 200 была, щас 100))
>подобный тому, каким проверяют ньюфагов в конторах на старте
Не знаю, но вот годный: https://www.efset.org/ если время есть можешь пройти https://www.efset.org/efset-plus/ на 2 часа
В конторах обычно проверяют устным собеседованием, просят рассказать о себе, о своих проектах, это всё.
+ нормальная либа для работы со временем
Нужно что-то с ключиками делать, подписывать. И возможно эти подписи где-то регать, что бы джава на компе поняла что ты не хуй собачий, хотя там можно поменять настройки на типа доверять просто подписанным, или вообще всем.
Устроился джуном в дс2 зная только кор, и имея небольшое представление о спринге и хибернейт. В гитхабе был чат и калькуляторкоторый работал через консоль. Сам 19 лвл и параллельно получаю не профильную вышку. Такие дела, так что не унывай, вакансия вакансии рознь.
П.с. не понимаю почему у анонов из соседнего треда бомбануло.
Забей на них болт и продолжай читать дальше.
>2 предложения на java дескоп на апворке
>одному из них 2 месяца
Что-то не варю я в ООП, там видать свои методы какие-то.
В общем, учился я удалять объекты из List.
Пример вот:
http://pastebin.com/fcB4dfmJ
Всё успешно работает и всё хорошо.
Решил сделать с ООП:
попробовал сделать типа морской бой, как в книге, но главу ещё не читал, потому что с листом чуть-чуть работал, да и вообще люблю сначала сам выебать себе мозги и потом прочесть главу, так круче запоминаю, типа набил шишки и всё такое.
в общем, мэйн класс:
http://pastebin.com/0D38QRdS
Исполняемый:
http://pastebin.com/Nq2XfhAT
Попал-потопил определяет хорошо, но лист.ремув почему-то не срабатывает, и поэтому, если ввести верную цифру второй раз, он всё равно пишет "попал", хотя должно быть мимо.
Подскажите, что я делаю не так?
Почему, когда делал в одном классе с Hui, Pidar - всё выходило, и прекрасно удалялись имена из массива, а в этот раз нет?
Олсо, главу прочту, но сами понимаете, там всё весьма слегка затрагивается, и шаг влево-вправо - и ты уже нихуя не можешь.
Спасибо, Анон
>но лист.ремув почему-то не срабатывает, и поэтому, если ввести верную цифру второй раз, он всё равно пишет "попал", хотя должно быть мимо.
потому что при array.remove(i), у тебя удаляется i значение в массиве, и он сдвигается, i заполняя i+1, i+1 заполняя i+2 и т.д.
Эм, не совсем понял.
Смотри, в первом примере я ведь делаю то же самое.
Проверил через list.size.
Если ввести все 4 варианта, то листсайз становится 0;
Во втором же варианте, с несколькими классами и массивами, размер всегда стабильно равен 2.
ПОчему так?
и ещё очень странная штука - почему в первом варианте размер листа равен 4м(столько же элементов в массиве),
а во втором случае размер листа равен 2м?
как так получается, ведь в массиве минимум 3 числа
напиздел, 2 - это если введенное число верно, 3 - если нет.
но ниже двух не опускается.
хотя цель - получить эмпти лист
Я бы смотрел на контрибьюшен джуна в какие-нибудь опенсорс проекты, вряд ли в его собственных проектах я б увидел что-то оригинальное. Ну если контрибьюшена нет, тогда б уже смотрел на код его собственных - какая направленность, сложность проекта, архитектурные решения, выбор инструментов, фрэймворков, либ, ну и собственно поревьювал сам код, попросил обьяснить чтонибудь
>>677652
Спасибо за ответ. Но всё же, не могли бы немного конкретизировать по поводу сложности? Вот, скажем, мне интересно написать мессенджер. Какими функциями он должен обладать, чтобы стать твёрдым, добротным проектом джуниора? Регистрация, список контактов, возможность передачи файлов, создание конференций, шифрование трафика. Что ещё можно прикрутить?
Если ты пишешь его именно чтобы показать какой ты крутой и разностороннеразвитый кодер, то поработай в разных направлениях прикрути ему api например, поддержку каких-нибуть популярных стандартов мессенджеров, интеграцию с чем-нибудь, хоть с стеми же социалочками, интернационализацию или встронный переводчик сообщений, хз.. Покажи что ты при необходимости можешь легко врубиться в какую-нибудь поеботу. На архитектурном уровне заюзай паттерны, фреймворки мэйнстримные, чтобы видели что ты можешь в них, ну или если не мэйнстримные, то чтобы мог пояснить почему именно их выбрал
Ты бы знал, как ты сейчас мою самооценку повысил...
Лол, а я вспомнил на днях как читал статью о работе vtable в cpp и сразу понял.
Статья, к слову https://habrahabr.ru/post/51229/
Попробую остальные:
1 - полная конкатенация строк и чисел, никакой промежуточной суммы чисел.
3 - "Does it really works?", т.к. short circuit evaluation
а где можно подобные практические вопросы проработать? (желательно посложнее, конечно, а то что-то совсем легко)
Если что, книги для сертификаций OCA и OCP уже для Java 8 есть.
зачем вообще эти тесты и этот форум? там сальные нерды собираются, чтобы перепихнуться?
Никогда не понимал зачем такие вопросы, это же чистое мозгоебство, никто в своем уме так не напишет, в чем я ошибаюсь?
Да ни в чём. Самого такие вопросы в которых надо сэмулировать компилятор бесят. Особенно если тест на с++, "вот вам diamond inheritance с виртуальными и невиртуальными функциями с десятью перегрузками где каждый тип имеет имплисит каст к восьми другим, при этом не скажем к каким. Что выведет этот код..."
Или не ебать мозги и считать файлы в массив и потом работать с массивом файлов?
Я ебанусь скоро.
У класса File (в твоём случае он содержит путь к папке), есть метод listFiles(), который возвращает массив всех файлов File[].
я нипонял, детектилось где? на дескопе? в браузере? очевидно что нужно гуглить в сторону работы с экраном, скрины экрана вот это вот все.
Нихуя не понел.
- берешь библиотеку для работы с экраном и мышкой
- отмечаешь координаты твой таблички
- мышка входит в предел
- мышка двигается
- ...
- профит
>>678464
>- отмечаешь координаты твой таблички
Проблема в том, что их должен задавать пользователь. Гуглю, но не могу найти нужное, чтобы как-то рамку на экран выводило или типа того. Программа висит на переднем плане и детектит движение в заданном регионе(тупо скрины сравнивает с промежутком), а пользователь в это время спокойно работает в другой программе позади нее.
типа набираешь Sys а она предлагает System
ну берешь экран, детектишь положение мышки на момент клика, детектишь мышку, когда она уже не кликнута, из двух координат делаешь квадрат, не?
Имею в виду, именно в компаниях.
Неудобно же. По воздуху же не щелкнется, а так пользователь куда-нибудь какой-нибудь ярлык потащит или типа того.
Idea only
Если компания кукарекает про ДОРАГА подумай стоит ли тебе там работать и слышать каждый месяц "ну Антош потерпи до следующего, зачем тебе эта з/п"?
Я почему за тебя этот вопрос должен решать, мразь тупая? давай денег, я тебе напишу это приложение, нет? нахуй иди отсюдова
У тебя есть разные mouse events, вот от них и строй визуальный куб по координатам мыши.
http://alvinalexander.com/java/java-custom-mouse-cursor-xy-coordinates-position
https://docs.oracle.com/javase/tutorial/2d/geometry/arbitrary.html
:c
Не совсем понял, что именно нужно, но подозреваю, что проблема в динамическом формировании имени ссылки. В таком случае лучше воспользоваться Map'ой (Map<String, Object>, например) и при создании объекта, класть его в мапу под соответствующим ключом (имя файла).
Как AngularJS сочетается с JSP?
Я что-то теряю, или не так понимаю?
Спасибо!
Двачую вопрос, та же ситуация: хочется в веб, а JSP кажется не лучшим вариантом.
Вроде как модно реактор/angular'ом рендерить на клиенте
А ну конечно быть немодным этож смертельный грех, в гей-клубы пускать не станут
Дело не в моде.
Я задаю себе вопрос, например, для чего нужны JSP и чем они отличаются от *.html-страниц? Только тем, что они могут обрабатывать JSTL. С помощью JSTL можно писать логику представления (view). Но на страницах в любом случае будет JavaScript, который как раз-таки и обрабатывает логику представления.
То есть при использовании JSTL всё выглядит так:
Сервлет-контроллер обрабатывает запрос и, например, добавляет POJO-объект в ответ и перенаправляет на JSP-страницу->JSP компилируется контейнером в сервелет, который получает из POJO-объекта данные и представляет их нужным образом (например, в таблице), затем генерирует HTML и отправляет ответ. Браузер получает и интерпретирует HTML, выполняет javascript, содержащийся в HTML.
То есть Браузер->Servlet->POJOs->JSP(Servlet)->HTML+JS
Тогда зачем нужна дополнительная прослойка в виде JSP? Удобнее кажется так:
Браузер->Servlet->JSON->HTML+JS
То есть вместо JSP работающего с POJO получаем JavaScript работающий с JSON.
Что здесь не так?
>>679097-кун
Джаву знаю на очень начальном уровне, но для тестеров (как говорят), доскональное знание языка и не требуется.
С чего начинать, что надо знать?
Учи ангуляр - работы больше на нем, никто на жаве не пишет веб.
Может быть в этот момент MainApp==null?
Попробуй поставить на эту строчку breakpoint, запусти дебаггер и в панели 'variables' посмотри какое в этот момент значение у переменной MainApp.
Либо внутри MainApp.resize() имеет место быть работа с переменной, ссылающейся на null.
Ньюфаг же, на пальцах объясняю.
Так и есть, MainApp null, меня интересует ПОЧЕМУ он null? Я же вроде прописал ебанину какую-то вверху там, как правильно-то его передать?
А я уже разобрался сам :Р
CP controller = loader.getController();
controller.setMainApp(this);
Забыл вот это в MainApp прописать при вызове сцены, хех.
У тебя вверху переменная mainApp объявлена, но не инициализированна.
Ты говоришь:
>>private MainApp mainApp;
"Создайте коробочку mainApp, в которую можно положить объект класса MainApp"
А нужно:
>>private MainApp mainApp = new MainApp();
"Создайте коробочку mainApp, в которую можно положить объект класса MainApp и положите внутрь новый объект класса MainApp"
Есть десктопное приложение, в нем реализован сбор не пойманных исключений и отправка их по почте мне как автору. Фактически приложение используя учетные данные от гугло почты, авторизиуется там и отправляет письмо на тот же ящик. Я в свою очередь потом проверяю почту и таким образом узнаю о проблемах возникавших у пользователя.
Такой вариант мне не особо нравится, учетные данные от почты хранятся в открытом виде. Плюс к этому в будущем хотелось бы собирать некоторую дополнительную аналитику от приложения.
Какие есть еще варианты по доставке исключений?
1 Напиши сам
2 Подними систему тикетов и заводи issue через ее API
3 Специализированные сервисы Crash Report
4 ????
5 Да тут тысячи вариантов
Поднимать свой сервер для приема тикетов от удаленных инстансов это тот еще геморой, проект у меня маленький, да и тяну я его один.
По третьему варианту гугл пока дает только платные сервисы.
Для зекачеров, не понимающих почему при private MainApp MainApp значение MainApp равно null, спрашивающих, как переносить J2ME на Android и "даже не тративших время на такую хуйню" как GUI и консольные утилиты, IDEA Community Edition вполне хватит.
Ну блять ты хочешь и рыбку съесть и на хуй не сесть?
Попробуй поднять redmine в openshift будет тормозное убожество, но зато БЕШПЛАТНО.
>Ну блять ты хочешь и рыбку съесть и на хуй не сесть?
Как сказать, коммерческой выгоды от проекта я получать не собираюсь, к тому же у меня нет в распоряжении машины работающей круглосуточно, которую можно было бы использовать в качестве сервера.
Логично что я ищу сторонние бесплатные варианты.
К слову нагуглить удалось rollbar.com — есть возможность юзать бесплатно, не без ограничений конечно же, но для мелкопроекта подходит идеально.
roll
Java Puzzlers, Spring Puzzlers
На самом деле если контора адекватная, то скорее будете обсуждать твой гитхаб и/или тестовое задание. У тебя же есть тестовые проекты, pet projects?
Те, кто листал/учил учебник хэд фёрст, ответьте: мне одному консольная версия потопи сайт а-ля морской бой показалась какой-то костыльной и перемудрённой???
всё ведь можно было сделать пиздец как просто.
это та, которая в русском издании со страницы 176 начинается.
Мне тоже этот пример не понравился. Пропустил её и благополучно учусь дальше. Вообще книга хорошая, но слишком поверхностная.
Если я правильно понимаю, ApplicationContext это будто область глобальных переменных, в которой инициализируются и хранятся бины, доступные из любой части приложения. Так же можно создавать дочерние контексты, например в рамках http-сессии, где будут храниться бины, нужные только в рамках этой сессии.
Например, для сайта, на котором можно заказывать билеты на поезд, заказанные пользователем билеты будут храниться в контексте сессии, а сервис по получению расписания будет существовать в рамках контекста ApplicationContext?
Пускай это так. Есть другой вопрос: в каком месте инициализировать ApplicationContext? Например, для web-приложения сделать некий InitializationServlet, поставить в настройках <load-on-startup>1</>, и там прописать
ApplicationContext context = new ClassPathXmlApplicationContext("/../..");?
Буду благодарен за наводки, ибо в туториалах игрушечные примеры, из которых не понятно как всё это используется в реальной жизни.
>в каком месте инициализировать ApplicationContext
Он инициализируется сам при деплое приложения внутренними сервисами фреймворка. Можно инжектить контекст в любое место посредством @Autowired.
WebApplicationContext так же инициализируется не вручную, а автоматически при парсинге конфига (XML, либо java-style). Сессионный контекст -- аналогично, создаётся фреймворком.
Нет. Разве что тестовое задание для прошлой конторы и парсер для excel-файлов. Раньше работал только над большой системой одной компании.
такое же мнение. но книга крутая, у меня в бумажной версии, прямо в руках.
удалось магазине найти уцененку, абсолюнто случайно. уценена из-за маленькой коцки на обложке.
купил за 500р
Короче нашел сайт вендор с недорогими ценами, посмотрел какое у них апи, сделал похоже.
Не могу написать интеграционные тесты, не знаю как эмулировать HttpURLConnection.
И еще, у меня есть метод который обрабатывает данные и как результат логирует строку. Как написать для него тесты?
Ну и прокомментируйте пожалуйста код с точки зрения ООП.
https://ideone.com/OhemGn
Ну смотри, я создаю httpURLConnection с помощью url их сервера, от этого httpURLConnection получаю inputStream, и уже с него считываю респонс как строку. Но у меня нет даже аакаунта на их сервере, у меня тупо заглушки в пропертис.
Так вот - как сделать такую обманку httpURLConnection которая как будто подключается и подменяет ответ сервера на тот который я хочу потестить?
ХЗ как правильно описать, что-то гуглю но все не то что мне нужно.
Сделай моки для HttpUrlConnection и InputStream, у него повесь на getInputStream (или при вызове какого метода там инпут стрим приходит) выдачу мокнутого InputStream. У мока InputStream на метод считывания "респонса как строки" повесь выдачу нужного респонса (корректного или некорректного, в зависимости от того, какое поведение целевого юнита надо протестить). Возможно, там ещё какие-то моки надо будет сделать для объектов, которые участвуют в заданном промежутке.
Вот первые страницы из гугла про моки, которые мне кажутся более-менее доходчивыми:
https://habrahabr.ru/post/72617/
http://martinfowler.com/articles/mocksArentStubs.html
http://www.methodsandtools.com/archive/archive.php?id=122
Ещё вместо ручного парсинга XML в виде строки рекомендую использовать хотя бы тот же JAXB.
Спасибо тебе, доходчиво пояснил.
Да у меня и так с этим скелетоном ноут проект собирает за 12 минут, а за 7 поднимает сервер, чувствую если продолжу тащить в него библиотеки проект тупо перестанет запускаться:)
У тебя массив не меняется потому что. Удаляется из списка, но не массива.
Тогда советую взять на заметку, и если будешь кому-то показывать, говорить, что знаешь, что парсить XML руками -- метод дидов.
Остальное пока лень смотреть. Разве что могу посоветовать взять за привычку проверять входные параметры методов на валидность (проверка на неравенство ссылок null'у, логическая корректность и прочее -- помимо явной и понятной установки ограничений на параметры это нужно в том числе и для того, чтобы приложение порождало исключение как можно быстрее (fail-fast), а не в тот момент, когда выясняется проблема, а некое внутреннее состояние может быть уже "загрязнено" предшествующими действиями). В Java 8 (или 7, хз) завезли java.util.Objects.require... для этого. Я лично для этих целей использую Preconditions из guava.
List<String> list = new ArrayList<>();
ArrayList<String> list = new ArrayList<>();
И похожий вопрос с классами. Допустим у меня есть два класса:
public class Bird {}
public class Penguin extends Bird {}
//какой то код...
Bird p1 = new Penguin();
Penguin p1 = new Penguin();
Кури полиморфизм и то чем отличаются тип ссылки и тип объекта, тут в двух словах не объяснишь.
Да я уже покурил, ты объясни конкретно, где какие методы можно использовать, а где какие нельзя из-за ссылки.
ArrayList -- класс, List -- интерфейс. ArrayList по совместительству реализует интерфейс List.
Во втором случае, Bird -- более общий класс, а Penguin -- более специализированный. При обращении инстансу пингвина через ссылку типа Bird с объектом пингвина можно будет работать только как с экземпляром Bird. Допустим, у пингвина есть метод "нырнуть под воду", так вот по ссылке Bird ты не увидишь у объекта пингвина этого метода. Увидишь только более общие методы типа "чирикнуть".
Как же ты покурил если не понимаешь?
Когда ты создаешь List<String> list = new ArrayList<>(); то это значит что ты создаешь ссылку типа List(это интерфейс но может быть и обычный класс при наследовании) на объект типа ArrayList.
Это счиатется правильным с точки зрения ООП. Ты например можешь в цикле вызывать один и тот же метод у всех объектов с одинаковыми типами ссылок, но разными реализациями.
кто сможет охуенно доходчиво рассказать про дженерики?
первая ссыока ведет на картинку с древом java технологий
>>679829
Я ищу подобие codeacademy, только на русском и бесплатно, чтобы начать изучать java, есть такие?
На Google.com есть хорошие курсы, там еще подробной инфы по технологиям есть, мечта, а не ресурс
Примерный стак технологий для этой цели можешь написать?
Антош, похоже?
https://ideone.com/OhemGn
Класс теста в самом низу, не поленись пожалуйста пролистать.
У меня просто еще с liquibase запара случилась, надо разбираться. Пока не разберусь у меня констекст не инициализируется и тесты не запускаются. Такая вот беда.
cmd.exe /c start.bat
Error: Unable to access jarfile tester.jar
D:\Test>java -jar tester.jar
Process finished with exit code 1
Как пофиксить?
Охуенное описание проблемы. Мог бы с таким же успехом написать "покушал супчика, ничего не работает, как пофиксить?"
Что в батнике? Где джарник лежит? При чем здесь идея? Из какой папки запускаешь?
В батнике: java -jar tester.jar
Джарник лежит в в домашней директории, запускаю из папки проекта, сам файл лежит в папке target.
Антоша, это опять я. Тест в https://ideone.com/OhemGn почему-то не запускается, пишет
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'documentationPluginsBootstrapper' и No qualifying bean of type [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping]
Не может инициализировать контекст короче, нет каких-то бинов, причем системных, а не тех на которые я могу повлиять. Как пофиксить?
>>680028 кун
И как, по-твоему, оно должно угадать где лежит джарник?
Сложно разбираться в твоём коде, так как он плохо структурирован.
Какой юнит тестируется? Иными словами, что есть "System Under Test" в твоём случае?
Зачем тебе в тесте два UserRepository, причём, один мок, а другой -- реальный сервис? Используй мок, и задавай ему нужное поведение.
Вместо @Inject используй @Mock, а на тот объект, куда надо протащить моки-зависимости - @InjectMocks. Короче, первая страница гугла по запросу "Mockito + Spring" в помощь.
@Inject -- если с самого начала пользуешься спрингом, лучше использовать @Autowired + @Qualifier или использовать инъекции в конструктор, а сами компоненты объявлять через @Bean только в @Configuration-классах -- так можно будет легко в случае чего переключиться на другой DI-фреймворк, т.к. сами классы не будут зависеть от логики спринга.
Что касается UnsatisfiedDependencyException -- скорее всего, какой-то контроллер зависит от некоего documentationPluginsBootstrapper, для которого не найдено bean-definition (иными словами, в контейнере нет соответствующего компонента -- ты либо не объявил соответствующий @Bean-метод в Application.java, либо не пометил @Component-ом соответствующий класс, либо не прописал соответствующий <bean> в beans.xml).
Если тебе нужно протестировать некий метод -- смотришь в его реализацию, вычленяешь используемые компоненты-зависимости и сценарии обращения к ним. В тесте мокаешь
эти компоненты и сценарии. То есть, вместо сценария SUT -> side-component -> {side-component inner routine} -> result -> SUT does smth with result ты получаешь сценарий SUT -> mock-side-component -> (mock?)-result -> SUT does smth with (mock?)-result.
В данном случае это позволяет не выполнять {side-component inner routine} (которая может быть довольно замысловатой и зависеть от кучи других компонентов), а сразу вернуть нужный результат.
> Какой юнит тестируется? Иными словами, что есть "System Under Test" в твоём случае?
Тестируется следующий метод отправки сообщения: в метод приходит аргумент строка(тип), из текущего секьюрити контекста вытаскивается логин текущего пользователя, по этому логину ищется в юзер репозитории юзер, из юзера берется номер телефона и локаль. В статическом методе с помощью типа, локали и номера телефона генерируется запрос который представляет собой строку в xml формате.
Строка как аргумент передается объекту реквест билдер, который уже в свою очередь использует еще один объект для создания httpURLConnection и так далее. Реквести билдер и его поведения я указал как мок.
Ответ передается в самый первый метод который я собственно тестирую, где парсится статическим методом вспомогательного класса.
В текущем варианте у меня где-то NPE, а конкретно на этапе вытаскивания юзера из базы данных. Почему-то ничего не находит, хотя я этот юзер репозитори тоже мокнул в свою очередь и указал ему что при поиску по логину он должен всегда возвращать мне определенного пользователя.
> Зачем тебе в тесте два UserRepository, причём, один мок, а другой -- реальный сервис? Используй мок, и задавай ему нужное поведение.
Уже убрал.
> Вместо @Inject используй @Mock, а на тот объект, куда надо протащить моки-зависимости - @InjectMocks. Короче, первая страница гугла по запросу "Mockito + Spring" в помощь.
Вот за это спасибо. Я пытался сделать похожее через метод ReflectionUtils спринг-теста.
> @Inject -- если с самого начала пользуешься спрингом, лучше использовать @Autowired + @Qualifier или использовать инъекции в конструктор, а сами компоненты объявлять через @Bean только в @Configuration-классах -- так можно будет легко в случае чего переключиться на другой DI-фреймворк, т.к. сами классы не будут зависеть от логики спринга.
Inject это же аннотация java beans, а спринг его реализует, если я правильно понимаю. Ну то есть инжект более универсальная аннотация.
Все остальное пофиксил.
В любом случае, большое тебе спасибо, анон, я с твоей помощью здорово продвинулся в этих тестах.
> Какой юнит тестируется? Иными словами, что есть "System Under Test" в твоём случае?
Тестируется следующий метод отправки сообщения: в метод приходит аргумент строка(тип), из текущего секьюрити контекста вытаскивается логин текущего пользователя, по этому логину ищется в юзер репозитории юзер, из юзера берется номер телефона и локаль. В статическом методе с помощью типа, локали и номера телефона генерируется запрос который представляет собой строку в xml формате.
Строка как аргумент передается объекту реквест билдер, который уже в свою очередь использует еще один объект для создания httpURLConnection и так далее. Реквести билдер и его поведения я указал как мок.
Ответ передается в самый первый метод который я собственно тестирую, где парсится статическим методом вспомогательного класса.
В текущем варианте у меня где-то NPE, а конкретно на этапе вытаскивания юзера из базы данных. Почему-то ничего не находит, хотя я этот юзер репозитори тоже мокнул в свою очередь и указал ему что при поиску по логину он должен всегда возвращать мне определенного пользователя.
> Зачем тебе в тесте два UserRepository, причём, один мок, а другой -- реальный сервис? Используй мок, и задавай ему нужное поведение.
Уже убрал.
> Вместо @Inject используй @Mock, а на тот объект, куда надо протащить моки-зависимости - @InjectMocks. Короче, первая страница гугла по запросу "Mockito + Spring" в помощь.
Вот за это спасибо. Я пытался сделать похожее через метод ReflectionUtils спринг-теста.
> @Inject -- если с самого начала пользуешься спрингом, лучше использовать @Autowired + @Qualifier или использовать инъекции в конструктор, а сами компоненты объявлять через @Bean только в @Configuration-классах -- так можно будет легко в случае чего переключиться на другой DI-фреймворк, т.к. сами классы не будут зависеть от логики спринга.
Inject это же аннотация java beans, а спринг его реализует, если я правильно понимаю. Ну то есть инжект более универсальная аннотация.
Все остальное пофиксил.
В любом случае, большое тебе спасибо, анон, я с твоей помощью здорово продвинулся в этих тестах.
ExecutorService executor = Executors.newFixedThreadPool(5);
public Task task = new Task<Void>() {
@Override public Void call() throws InterruptedException {
.... // здесь код, который меняет число на Label
return null;
}
};
@FXML
public void start(){
.....
executor.execute(task);
}
@FXML
public void stop(){
count.setText("");
task.cancel(true);
// executor.shutdownNow();
}
>>680500
>>680569
По веб-сервисам нужны описание требований контейнеров к проектам, описания структур проектов, сравнение контейнеров между собой как по количеству фич, так и по способам реализации проектов (если с примерами будет - вообще збс) и т.д.
Мавен - с нуля и подробно.
Куча написанных индусами тредов со стаковерфлоу и джавагиккодс, которые сводятся к хуете типа "кароч вот у меня всё вот так, скопируй и тебя тож заработает" и "а вот в тэге дипенденсис у нас зависимости, пишешь туды эклипс и дальше выбираешь хуиту нужную и всё работает" нахуй не нужны.
Партия феньков авансом.
Thread sss;
public void start(){
......
Task task = new Task<Void>() {
@Override public Void call() throws InterruptedException {
......//счетчики всякие
return null;
}
};
if(sss!=null){
if(!sss.isAlive()){
System.out.println("sss не ноль и не живая, нажали старт");
sss = new Thread(task);
sss.start();}
}else{
System.out.println("sss ноль, первое включение");
sss=null;
sss = new Thread(task);
sss.start();}
}
@FXML
public void stop(){
......
sss.interrupt();
}
Самое интересное и пока для меня непонятное — в случае, когда sss уже работает(то есть НЕ ноль и живая) и нажимается старт, она начинает работу заново, хотя этот вариант в if'ах никак не описан. То есть, судя по выдаче консоли, sss не задается заново, а в start() как-то заново инициализируется task и подсовывает в sss дефолтные начальные данные, запуская ее счетчики заново. Хуй знает, как это работает, но по выдаче в консоли так и есть. Какая-то магия ебаная, но копии не плодятся и это главное.
познающий javafx нюфак
Thread sss;
public void start(){
......
Task task = new Task<Void>() {
@Override public Void call() throws InterruptedException {
......//счетчики всякие
return null;
}
};
if(sss!=null){
if(!sss.isAlive()){
System.out.println("sss не ноль и не живая, нажали старт");
sss = new Thread(task);
sss.start();}
}else{
System.out.println("sss ноль, первое включение");
sss=null;
sss = new Thread(task);
sss.start();}
}
@FXML
public void stop(){
......
sss.interrupt();
}
Самое интересное и пока для меня непонятное — в случае, когда sss уже работает(то есть НЕ ноль и живая) и нажимается старт, она начинает работу заново, хотя этот вариант в if'ах никак не описан. То есть, судя по выдаче консоли, sss не задается заново, а в start() как-то заново инициализируется task и подсовывает в sss дефолтные начальные данные, запуская ее счетчики заново. Хуй знает, как это работает, но по выдаче в консоли так и есть. Какая-то магия ебаная, но копии не плодятся и это главное.
познающий javafx нюфак
http://pastebin.com/yxwGkDAR
Не понял вопроса.
Это не такая глубокая тема требующая чего-то фундаментального. Ну попробуй почитать JSR 224 или Restful или что ты там хочешь.
>В текущем варианте у меня где-то NPE, а конкретно на этапе вытаскивания юзера из базы данных. Почему-то ничего не находит, хотя я этот юзер репозитори тоже мокнул в свою очередь и указал ему что при поиску по логину он должен всегда возвращать мне определенного пользователя.
Наверное, у тебя в сервис по какой-то причине не заинъекчен мок репозитория, и мок отдельно валяется рядом и ничего не делает. А NPE возникает потому, что т.к. тест выполняется вне контейнера спринга (без @RunWith(SpringJUnit4Runner.class) и указания конфига), то и реального репозитория тоже не создано, который инъектится при стандартном сценарии.
Подробнее, как работает внедрение зависимостей с помощью @InjectMocks:
http://docs.mockito.googlecode.com/hg/1.9.5/org/mockito/InjectMocks.html
>Inject это же аннотация java beans, а спринг его реализует, если я правильно понимаю. Ну то есть инжект более универсальная аннотация.
Можно проектировать так, что ты не будешь зависеть от конкретнго DI-фреймворка. Используй внедрение через конструкторы без сеттеров (для immutable-сущностей) и через конструкторы/сеттеры (для всех остальных). Тогда тебе не придётся писать конкретные аннотации в своих классах, а весь конфиг чего и куда инъектить (по сути сценарий создания IoC-контейнера) будет лежать отдельно и уже опираться на конкретный DI-фреймворк (Spring, Guice, Java EE CDI и т.д.). Хотя, если уверен, что останешься со спрингом, то можно, конечно, прямо в классах для удобства завязываться на его аннотации.
Пиши на джаве REST-сервисы, а веб -- на чём хочешь.
По мавену: http://www.sonatype.org/nexus/resources/resources-book-links-and-downloads
Сначала поверхностно просмотреть maven by example, потом читать главы из maven reference, которые кажутся нужными.
>Это не такая глубокая тема требующая чего-то фундаментального.
Залез к индусу, нашёл параметры для @WebService (endpointInterface, serviceName, targetNamespace), в targetNamespace прописал http://localhost:8080/имяобъекта/имясервлета. В web.xml в параметр url-pattern засунул /имяобъекта/имясервлета. Гружу на Томкат - Томкат показывает мне 404. Отключаю Томкат, запускаю прямо из Идеи - WSDL генерится збс (страничку на JSP пилить не стал, она не нужна в проекте), значит, всё работает. Запускаю Нетбинс, копирую туда весь код - а он опять не деплоится, причём с ошибкой, по которой Гугл выдаёт тысячи причин и вариантов решения. Удаляю url-pattern - деплоится вроде бы без ошибок, но показывает 404. Просидел полтора дня, так ничего и не заработало. И это при том, что у меня Мавен сначала файлы классов в проект просто не добавлял, выкидывал только библиотеки из зависимостей. И ведь в конце концов выяснится, что я файлы проекта по папкам не так разложил.
И откуда я должен узнать, как targetNamespace, url-pattern и Endpoint.publish() реагируют друг на друга? Какие свойства должны быть у сервлета, чтобы Томкат его нормально подхватил? Нужна мне sun-jaxws.xml или нет? На стаковерфлоу этого нет, а за вопросы минусят и кидают ссылками на абсолютно левые темы.
>Ну попробуй почитать JSR 224 или Restful или что ты там хочешь.
Охуительный совет просто. "Как пройти в библиотеку? - Ногами по улице, потом в дверь" Иди нахуй, тупая мразь.
что-то уже похоже на то, что искал.
Да ты что.
Чем проще тем лучше. Нахуй монстров и магию. Guice + легковесный веб фрейм + db query builder.
Будет работать быстрее, стартовать быстрее, отладка проще, не надо думать какого говна натворил бут или хибер.
Приходит такой джун на собеседование и на вопрос о Спринге говорит тимлиду: "Чем проще тем лучше. Нахуй монстров и магию." А тимлид ему говрит: "Пошёл нахуй".
Оке, почитаю на досуге про эти вещи
Тимлид ответит:
>Будет работать быстрее, стартовать быстрее, отладка проще, не надо думать какого говна натворил бут или хибер.
Кулстори.
А если тимлид тебя нагнуться попросит?
Нагнешься конечно, ты за рамки системы выйти не сумеешь. Все жрут говно и ты обязан.
>контора год пилит согласованный с заказчиком проект на Спринге
>приходит джун и начинает перетаскивать его на какую-то никому не известную хуйню
>лицо тимлида
Ну да, нахуй чето менять вообще, давайте еще лет двадцать это говно мамонта шебуршить. А че, стабильность.
Ну, во-первых, да - стабильность.
Во-вторых, если spring для тебя магия, то ты просто неосилятор, уж извини.
И в-третьих, что ты имеешь ввиду под монстром? Огромное количество написанного кода на все случаи жизни? Да у спринга много компонентов, но их стараются разделять и не скидывать в одну "либу для всего".
Больше похоже на хейт нитаких как все идущих против системы хипстушков.
Хотя для гостевухи, может и перебор.
>Огромное количество написанного кода на все случаи жизни?
Если на джаваговне уже написан код на все случаи жизни, то что делают все эти толпы индусов? Или всё-таки джава настолько хуёва, что даже тривиальная задача требует написание дикого количества бойлерплейта?
Джун, кстати, всё правильно говорит, а тимлид - необучаемый дебил. Я когда узнаю, что контора использует спринг, просто встаю и ухожу с собеседования, потому что это однозначный диагноз конторе.
>хейт нитаких как все идущих против системы хипстушков.
Так и есть. Это либо клованы из пхп треда, либо необучаемые.
По делу нечего ответить?
Не угадал, пытайся лучше.
>хипстушков
Проиграл, слово передает всю суть
uses-a - это когда один класс использует методы другого класса, но сами классы не зависят друг от друга.
has-a - это когда один класс имеет имеет методы, зависящие от другого класса.
is-a - один класс наследуется от другого.
П.с. такие отношения только в джаве или в других ооп языках тоже?
И поэтому ты безработный.
https://bitbucket.org/dksurname/rolik/
Как бы мне не было стыдно показывать свои попытки в программирование, совершенствоваться по другому не получается. Приму любую критику. По самой игре тоже можно, но она пока сыровата для оценки, а вот кода уже прилично настучал.
А что не так с его кодом?
Не волнуйся так, за него мне тоже, конечно, стыдно. Но к решению проблем надо подходить последовательно. Так что, тут я рад видеть любую критику именно кода. А вот когда я запощусь в каком-нибудь izd, обязательно приходи и закидывай меня говном за мой нелитературный Русский и безграмотный рунглиш.
>>681189
Да я уже. Только не на заводе, а на рынке. Тащемта, я в программисты на постоянку и не мечу. За критику спасибо, но, если не сложно, распиши, что именно делает этот код "говнищем" и как мне это исправить. А то, что он в целом плох, я итак знаю.
Достаточно неплохой джуновский код. Из мелких деталей больше всего няпрягает постоянный вызов одних и тех же методов вместо того, чтоб закешировать результат (особенно часто такое с ResourceLoader.getInstance()).
Более глобально - код низкоуровневый и очень процедурный, кругом массивы примитивов, развесистые if/else и switch/case.
Смотри для примера класс DungeonMap. В нем пять массивов, каждое значение в котором представляет один аспект клетки на карте. И несколько методов, которые с этими значениями работают (isObstacle(x, y), isVisited(x.y)). Лучше сделать один массив, в котором объекты, каждый из которых знает все об этой клетке и имеет методы isObstacle(), isVisited() и т.д. Дальше, метод useTile(): этот мутный свитч - попытка эмулировать полиморфизм, его лучше заменить полиморфизмом настоящим, тогда каждый тип тайла будет сам определять какие изменения происходят с этим тайлом когда он юзается.
Не бросай. На энтузиазме в свободное время такую пепяку соорудить - это достаточно круто. Почитай Effective Java на досуге, заметишь много вещей, которые сможешь улучшить у себя.
user, product, user_order, product_order
user и product -- обособленные таблицы без foreign key'ев на другие таблицы. user_order имеет foreign key на user, а procuct_order -- по foreign key'ю на user и product.
Хотя, казалось бы, причём тут Java.
java при том что проект который делается по этой базе пишется на java:)
Спасибо, то что надо.
>часто такое с ResourceLoader.getInstance()
Не очень понятно, как это сделать красивее. Вот, есть у меня класс, загружающий ассеты (getTR метод, например, загружает, грубо говоря, спрайт - картинку). Так как он везде (где хоть как то задействована графика) нужен, использую синглтон. Что именно мне "закешировать"?
>класс DungeonMap
Да, надо бы сделать класс для отдельного тайла. Сейчас, когда ты об этом написал, я и вправду вижу, что можно было бы сделать красивее (надо сказать, что массивы и всякие isObstacle методы, вероятно, всё равно останутся, так как используются алгоритмами поиска пути и поля зрения в другом месте).
>мутный свитч ... тогда каждый тип тайла будет сам определять какие изменения происходят с этим тайлом
Но разве в таком случае этот свитч исчезнет? Фактически он просто "переедет" в 7 разных мест (классов, которые будут друг от друга отличаться только методом use) или даже целиком без изменений в другое место (если сделать обобщённый класс клетки). И в чём тогда профит?
мне, лично, удобно делать всё в паре методов, без гор дополнительных классов.
ну и в мэйне люблю настрочить обильно.
Мне кажется, или ООП только усложняет всё?
даже элементарную операцию приходится делать за несколько ходов, в то время как процедуркой можно сделать всё за 1-2 строчки кода.
Хотя я понимаю плюсы ООП в гигантском проекте, но до этого я явно не тяну и ещё долго не смогу.
А ещё с процедурным у меня получается всё хорошо и даже сложные штуки, а когд я пробую сделать ООП я сбиваюсь в элементарной хуйне, потому что мне кажется, что код - это просто обилие текста пиздец несвязанного.
как будто рабочий стол с разбросанными вещами - кому-то мож так и удобно, но я люблю когда всё строго и всё понятно
Напиши сложный проект процедурно, посмотрим на тебя. Ну какой-нибудь интернет-магазин. Клево было бы. Строго и понятно.
> ResourceLoader.getInstance()
Я всего лишь имел в виду, что у тебя десять его вызовов подряд, как в конструкторе Player, например. Достаточно создать переменную
ResourceLoader resourceLoader = ResourceLoader.getInstance();
и дальше работать с ней. Во-первых, короче. Во-вторых, то, что в каждой строке новый вызов, наталкивает на мысль что getInstance() может возвращать разные объекты на каждый вызов, а это, насколько я понимаю, не так.
> Но разве в таком случае этот свитч исчезнет?
Да, если все сделать по уму, свитча не будет нигде. Смотри, пусть вся инфа о клетке будет в классе MapTile, каком-то примерно таком:
class MapTile {
LightMap light;
TileType tileType;
}
Теперь добавь пропертей в TileType:
enum TileType {
doorHC(doorHO, false, false),
doorHO(doorHC, true, false),
...
public final TileType typeAfterUse;
public final boolean isPassable;
public final boolean isWall;
...
private TileType(TileType typeAfterUse, boolean isPassable, boolean isWall) { ... }
}
Теперь весь этот свитч можно заменить одной строкой:
tile[x][y].tileType = tile[x][y].tileType.typeAfterUse;
Ты там в свитче еще заполнял массивы walls и wallsAndDoors - это теперь не нужно, вместо них можно или обращаться напрямую к tileType.isPassable / isWall, или (лучше) сделать методы в MapTile которые будут делать это же.
> ResourceLoader.getInstance()
Я всего лишь имел в виду, что у тебя десять его вызовов подряд, как в конструкторе Player, например. Достаточно создать переменную
ResourceLoader resourceLoader = ResourceLoader.getInstance();
и дальше работать с ней. Во-первых, короче. Во-вторых, то, что в каждой строке новый вызов, наталкивает на мысль что getInstance() может возвращать разные объекты на каждый вызов, а это, насколько я понимаю, не так.
> Но разве в таком случае этот свитч исчезнет?
Да, если все сделать по уму, свитча не будет нигде. Смотри, пусть вся инфа о клетке будет в классе MapTile, каком-то примерно таком:
class MapTile {
LightMap light;
TileType tileType;
}
Теперь добавь пропертей в TileType:
enum TileType {
doorHC(doorHO, false, false),
doorHO(doorHC, true, false),
...
public final TileType typeAfterUse;
public final boolean isPassable;
public final boolean isWall;
...
private TileType(TileType typeAfterUse, boolean isPassable, boolean isWall) { ... }
}
Теперь весь этот свитч можно заменить одной строкой:
tile[x][y].tileType = tile[x][y].tileType.typeAfterUse;
Ты там в свитче еще заполнял массивы walls и wallsAndDoors - это теперь не нужно, вместо них можно или обращаться напрямую к tileType.isPassable / isWall, или (лучше) сделать методы в MapTile которые будут делать это же.
"Как сделать из jar бинарник, который запустится на любой машине без JRE?"
Тыкнулся в парочку (на скрине):
RoboVM все понятно и просто, но только под OSX
Avian вроде подо все, но не понятно как в бинарник скомпилировать.
GCJ говорят глючный и почти не развивается.
Excelsior JET - лицензия не опенсорсная.
Говорят в Java 9 (или 10) будет AOT из коробки:
https://www.youtube.com/watch?v=Xybzyv8qbOc
бля аш запятую позабыл
Задавал уже этот вопрос.
Просто как-то обидно, сидишь пишешь, а пользоваться могут только такие же кодерочки из иде.
>>681521
Нет, просто ничего сложнее калькулятора я не писал. А в нем хватило 2х классов. Один с формулами и свингом, второй с мэйном.
А если бы я каждый метод сложения - умножения прописывал бы в новом методе-эт заняло бы гораздо больше времени, как по мне
даун не может погуглить манифест жава подписать программу?
Выглядит интересно. Завтра сделаю. Спасибо.
reroll
>без статической типизации я бы так и не узнал зачем мне ide вместо редактора
А тут я не понял.
Приведи пример uses-a.
Скриптописатель захотел выебнуться на серьёзные проекты со сложной архитектурой, но подскользнулся на собственном говне и пизданулся тупой харей в эту же вонючую лужу.
зато твой код очень сложно поддерживать и поймешь его только ты
На наших нет пока этой книги.
я неофит, только постигаю, но по рекомендациям старших товарищей хочу в идее, не в эклипсе
С телефона пишу.
Хортсмана, без вариантов. Философия тебя в уныние вгонит и самооценку убьёт, потому что ты нихрена в ней не поймёшь. Те, кто её новичкам советуют читать, - просто выёбываются. Пидоры.
а я нормально ответил. ораклы дают тебе всё что надо чтобы стать дохуя программером. лично я читал и хорстманна и философию, и видеолекции смотрел и еще кучу всякой хуйни, и, само собой, джавадок. и всё это параллельно. и был толк
>>682031
А ещё лучше, если ты полный ноль, то Head First. В шапке всё во втором пункте есть в правильном порядке.
Спасибо
Ну я не полнейший неофит так что возьму Хорсмана
Я понимаю но книжное изложение основ мне нравиться больше
https://glot.io/new/java - an open source pastebin with runnable snippets and API.
JQuery
По крайней мере код легко читается и хорошо документирован. Ты по-моему прибедняешься, антоша.
Подтвердил, что я студент - в течении трёх часов(и это в воскресенье-то) прислали ключ к EE-версии
Аналогов плагинов практически нет, сами же плагины в маркете отсутствуют. Только если с триальной ультимейт снять, и на коммюнити повесить, но я такого ещё не пробовал.
Сделал. Хотя пришлось немного повелосипедить с TileTypes. Суть: если я передавал в перечислении в скобках ссылку на значение определяемое ниже, или на само себя, получал ошибку (вроде ExceptionInitializeError, не помню точно). Ну, т.е. мне как бы указывали, что я пытаюсь использовать то, чего ещё нет. Пришлось сделать отдельное поле-строку и метод, который сопоставляет её с элементами перечисления. Короче, http://tinyЮrl.com/z3z3xob (тиниюрл, видимо, в спам листе, а полная ссылка на конкретный код слишком длинная). Может, есть какое то решение получше?
>>682170
Спасибо, конечно, но я не прибедняюсь. Код у меня, может, и повыше уровня "мой первый проект после javarush", но всё равно объективно плох. Причём, я даже не вижу в чём именно, до тех пор, пока настоящий программист меня носом не ткнёт. Нет опыта. И вообще, у меня вместо нормального решения задачи часто просто говнокод с решением "в лоб". Типа, как на картинке слева.
Интеллектуалным автокомплитом, возможностями рефакторинга и анализом кода на рефакторинг, нормальным интерфейсом.
А вообще, на хабре кучу раз разобрано, включая статьи, как приблизить эклипс по удобству к идее.
На год
Да, не подумал об этом нюансе. Передавать строкой - хреновый вариант: если переименуешь в коде, но забудешь переименовать в строке, код все равно скомпилится, но упадет в рантайме. Наверное, я бы сделал EnumMap<TileType, TileType> и заполнил бы эту мапу в статическом блоке.
Анончик, будь так добр, посоветуй полностью зеленому начинающему программисту свежий материал по Java.
Ты прав, за неделю, прошедшую со времени создания треда, всё в шапке жутко устарело.
BEGINNER: http://myflex.org/books/java4kids/java4kids.htm
Ну вот этот туториал, например.
Он 2011 года, 5 лет прошло.
Хочешь сказать, что можно спокойно обучаться по нему?
> The New Edition (2015)
> The new edition of the book is called Java Programming for Kids, and it covers the latest syntax of Java 8 and the JavaFX8 framework
>
> For now only the English version of the book is available.
>
> Read It Here
В глаза долбимся?
Это говорят дорогие и качественные разработчики.
Библии две тысячи лет а книги лутше до сих пор нет и никогда не будет!!!!!1
>>682513
Пиздец, иди нахуй из моего треда. Без английского ты нужен только своей мамке.
А нахуя изучать программирование на русском? Потом будешь встречаться с общепринятой терминологией на английском и зависать, пытаясь вспомнить и сопоставить русское соответствие. Мне уже книги по программированию на русском читать просто _неудобно_ (или дискомфортно, как-то так).
Если знаешь английский, то и не еби мозги.
другой мимоанон
Подскажи тогда качественной и свежей литературы на английском.
Смотрю по отзывам, половина списка из ОП-поста - говно.
Наивный
Задача первая. Игра в города. Дан набор городов неповторяющихся, построить самую длинную цепочку.
Задача вторая. Даны два отсортированных файла, считать и записать в третий, без дублей, сортировка должна сохраниться.
Собственно, мякота в том, что набирать нужно всё это в блокноте, впрочем, интернетами пользоваться можно.
Эккеля
В истории сохранённый файлов в нотепаде я видел десятка полтора работ других претендентов естественно, что самих файлов там не было, так что наверняка будут проверять не "шоп работало", а именно тонкости.
>набирать нужно всё это в блокноте
Ты смотри, попадёшь к ним, а они там на блокноте вместо IDE пишут.
Да они вообще предупредили, что если и берут без опыта, то по анальному контракту на 15 месяцев. Впрочем, я и не против, другое дело, что они меня хуй возьмут, как мне кажется.
Сам ты говно, отличная литература для таких нубов, как ты. Иди нахуй, ты мне не нравишься.
Первая какая-то адская хрень. Свести к графам и юзать поиск в глубину с экспоненциальной сложностью?
глянул вики - таки не полиномиальна: neerc.ifmo.ru/wiki/index.php?title=Динамическое_программирование#Отсутствие оптимальной подструктуры
Вторая наоборот выглядит элементарной. Какой-то странный контраст.
>это первая часть собеседование, отбор перед нормальным техническим собеседованием.
>набирать нужно всё это в блокноте
>если и берут без опыта, то по анальному контракту на 15 месяцев.
Какая-то подозрительная контора. Кто такие?
Не палим годноту быдлу.
Ты реально ебнутый. Почему, по-твоему, в шапке именно эти книги? Или ты на самом деле думаешь, что там хуйня, а хорошие книги тебе не показывают из жадности? И да, я не помню, когда последний раз читал книгу по программированию на русском.
Ох ты ж, внезапно позвонили и пригласили на второй этап собеседования, я даже удивлён немного, готов был услышать охуительные истории о том, что сейчас мы не можем предложить вам эту вакансию, но обязательно свяжемся в будущем.
>>682621
Первую задачу свёл к очевидному поиску в глубину: запилил множество элементов (то, которое Set) и рекурсивную функцию, в которую передавал Set, из которого я убрал один элемент и LinkedList, ну и там дальше по рекурсии для каждого элемента этого множества. Если продолжать цепь в этой ветке не получается - сравнивал её с максимальной цепью и заменял её на новую. если она оказалась длиннее.
Собственно, с этим заданием и проебался большую часть времени, я вообще не большой фанат рекурсии, а уж писать это без возможности проверить код - боль и унижение.
Ну, со второй и так всё понятно - читал по очереди то из одного, то из второго файла и тут же писал в третий, чтобы не забивать память хранением отдельных списков. Читал, правда, с помощью Scanner, это вроде как зашквар немного, но мне было лень читать посимвольно, а у него удобный метод для построчного чтения.
Тебе ответил другой анон, и да, на год.
Нельзя и за деньги купить "навсегда". Только на год.
Ты сам кто по масти, что читал, что учил?
>682657
>Читал, правда, с помощью Scanner, это вроде как зашквар немного
почему зашквар? (кроме того, что пацаны с двача так сказали)
Да я и сам не знаю, если честно, когда-то сказали, что он работает медленнее, чем bufferedreader, а я и поверил.
а жава сама умеет создавать консольное приложение или все консольные нужно запускать через cmd?
я понимаю
но только когда с конпилировал код в .jar
он не запускается по двойному щелчку и не выводит консоль
что нужно прописать и где чтоб он консоль генерировал?
а вот это хуй знает, не пробовал. наверное через консоль запуск, ну путь там прописать, ещё что.
ща сам попробую
хуй тебя поймёшь.
ты типа консоль сам написать хочешь или что?
в винде в общем жми вин+R
пиши cmd
там пиши java -путь к файлу.jar
Enter.
Выдаст баг - поймёшь, что за хуйня.
Вообще, знакомство с командной строкой - первая глава в учебниках, ман.
Потому что это некроссплатформенно. На винде одна консоль (если не считать альтернативные) - cmd, на линуксах десятки различных эмуляторов терминалов, на макоси ещё какая-то.
Любое джава приложение - консольное. Даже с графическим интерфейсом. Даже на андроиде.
Запустишь через консоль - получишь ввод/вывод.
что блять не понятного
я говорю что я хочу чтоб в моей программе консоль САМА вызывалась и показывалась пользователю по двойному щелчку на фаил .jar
что здесь не понятно?
я не хочу каждый раз лазить в командную строку и мой конечный пользователь тоже не хочет лазить в командную строку
сделай GUI, ёпт
Напиши для своего прекрасного конечного пользователя bat-файл (охуеть, такие есть!). Плюс sh-скрипт для юниксов.
абсурд какой-то
можно же сделать библиотеку универсального вызова которая бы сама платформу распозновала
либо сделай батник, который будет открывать консоль и в ней автоматом уже твой жаба-проджект.
профит
По твоим "сгенерировать консоль" хуй было понять, что тебе нужно.
Генерировать консоль, лол. Буду форсить.
>я говорю что я хочу чтоб в моей программе консоль САМА вызывалась и показывалась пользователю по двойному щелчку на фаил .jar
Сделай батник, хули. Других способов не видел, кроме гуя, естественно.
https://coderwall.com/p/ssuaxa/how-to-make-a-jar-file-linux-executable
В сперме, конечно, так нельзя.
ты дебил в гугол не можешь? есть спец. программы, которые компилируют jar в ехе
> Думаю начать с java-rush, нормальный вариант?
Большинство дропает и забивает на джаву — в каждом треде минимум пару человек громко обьявляют, что начинают, жалуются на тупые задания, а потом куда-то пропадают.
> сколько времени потребуется для устройства на работу джуном
Тут по соседству тридцать какой-то тред устраивающихся, спроси у них. За полгода реалистично, если въебывать.
Скоро перекат, надо не забыть добавить в шапку про английский и джавараш
Нормальный вариант. Но после него лучше ещё ментора найти на несколько месяцев, на мой взгляд.
Ага, чому нет. Приходит джун на собеседование, слышит про графы, посылает всех нахуй и уходит. В том же ДС2 вакансий по джаве, куда не нужен опыт коммерческой разработки просто пруд пруди, вон на хедхантере их аж целых четыре.
>>682984
Можешь и с джавараша начать, тут тебе, правда, скажут, что он говно, но это связано с тем, что первые пара заданий там на перепечатывание кода, а дальше практически никто не заходил, лол. В платной части вообще начинаются уже совершенно приличные задания, к слову.
Если очень въёбывать, то за пол года (может год) ты действительно выйдёшь на нужный уровень, но потом ты в любом случае столкнёшься с нихуёвой конкуренцией, джуновских вакансий очень мало, конкуренция по паре десятков таких же долбоёбов на место.
Ого, так может лучше не с джавы начать, если там конкуренция пиздец и с вакансиями проблемы.
Хороший вариант, только если это не будет единственный источник знаний. Вот видеокурсы:
https://stepic.org/course/Java-Базовый-курс-187
http://rutracker.org/forum/viewtopic.php?t=4717700
Начать советую с первого.
Из книжек советую паралельно начать читать : Head First Java(сам вкатывался с помощью этой книги, очень годная если у тебя нету никакого опыта). Дальше Эккель или Хорстманн.
При условии плотного изучения языка часов по 5-6 в день, в течении года, возьмут ли на работу ?
Я не ищу сверх космических заработков. Интересует планка долларов в 500 особо не напрягаясь ? Реальная ли это планка заработка для начинающий мартышки-фрилансера ?
Просто ну очень уж хочется бросить работу и сидеть дома никуда не выходя. Ненавижу окружающий мир, хочу жить дома как в пещере.
Если ты будешь плотно задротить по 5-6 часов в день в течение года, то через год работу ты найдёшь без проблем, но мне ну ни разу не верится, что ты будешь столько заниматься.
Вот только ты с языком ошибся, джава это не про фриланс.
Только в офисе с джавой работать ?
А какой язык для фриланса ? Почему то на биржах для фрилансеров на джаве вроде много заданий или я не там смотрел хз
Типа вместо:
public class Kek {
public static final String TAG = "kek";
}
Будет:
public class Kek {
public static final String TAG = "kek";
}
Что думаете?
>Почему то на биржах для фрилансеров на джаве вроде много заданий
Покажи, что ли, даже интересно стало, вдруг это я не там смотрел, лол.
Да, моя ошибка. Это я спутал со всякими работами ру и ХХ. Ты прав.
А на всяких биржах фриланса кто наиболее ценнен и нужен в наше время ? Какой язык ?
Че ты нас так обижаешь?
ууууу-у-у-у аж расстроил. Мне хотелось учить что-то высокоинтелектуальное, а не это дерьмо. Я думал веб уже вымер, но судя по всему чёт как-то не очень то и вымирает. Даже жаль
>Мне хотелось учить что-то высокоинтелектуальное, а не это дерьмо
Высокоинтеллектуальное заказывают в крупных компаниях, а у фрилансера Васи.
Джава, за исключением ведра, и всякого встраиваемого дерьма, тоже веб параша, только для банков.
Это фреймворк для создания игр и приложений написанный на Java с использованием C и C++ (для более быстрой работы). Он позволяет писать кроссплатформенные игры и приложения используя один код.
Ваш КО
Сейм стори, устроился через стажировку в первый месяц поиска.
Могу отвечать на вопросы.
1. говнокод и бред
2. работать будет долго, очень долго (на реальном количестве городов).
Поэтому сразу вопрос: какие пути оптимизации Вы видите?
>>683509
http://ideone.com/ou4USb
Вот набросал тебе свой вариант. Не то, чтобы он совсем правильный. Но на собеседование пойдёт.
1) import java.lang.* - lol
2) throws java.lang.Exception - lol²
3) миллион add'ов заменяить на Arrays.asList("Москва", "Саратов", "Зажопинск", ...); - но джуну простительно.
4) TownsGame.maxDepth и maxHead - в щи с вертухи тебе за использование статических переменных.
5) Из-за этого код получился невменяемым:
maxHead = null;
new TownsGame();
if (maxHead != null) {
// нормальный человек подумает, что сюда выполнение никогда не дойдет. Какого хуя переменная так неочевидно меняется в конструкторе?
}
6) Смотрим в конструктор TownsGame. Ебануться! Так вот куда ты запихнул всю логику. Алё, конструкторы не для этого придумали!
7) nextT, eChar, fChar - отличные имена переменных. На самом деле нет.
8) В логику даже вникать лень после всего этого.
Итог: всё достаточно плохо. Могу поверить, что этот код работает, но даже в этих ста строчках разобраться сложно, а напиши ты проект хотя бы на несколько тысяч строк - он был бы неподдерживаемым, нечитаемым и очень хрупким. Больше практики, постоянно рассматривай код с точки зрения "как сделать его максимально понятным", пересматривай свои программы через неделю-две после написания и смотри, что можно улучшить.
Зачем ты используешь ArrayList для множества неповторяющихся элементов? Про Set не слышал?
А вообще - ужасно запутанно и неочевидно, можно в 2 раза короче всё это сделать. Ну и пихать логику в конструктор - пиздец, конечно.
Анон, как у Eclipse сделать свернутые вьшки (1 пик) "плоскими" (2 пик) и красивыми? У Aptana Studio и LiClipse видел такое.
Открываешь Spring in Action и читаешь по порядку. Главу про аспекты можешь пропустить, после MVC можешь особо не читать.
Блин, а я и не помню. Вроде бы да, но нужны минимальные основы. Впрочем, хибер - вещь не настолько сложная, прочитай пару статей, напиши хеллоуворлд и считай, что базовое представление у тебя уже есть.
Учи плюсы, коли так. Или питон. А джава - это энтерпрайз. Еще вариант для тебя, возможно - андроид.
Фриланс - это веб, в основном. Php, javascript, ruby - это то, на чем можно зарабатывать сидя дома и попивая чаек. А на джаве придется сидеть в офисе и общаться со стороной заказчика.
Расскажи про энтерпрайз. Чем именно там занимаются, насколько перспективна эта область, есть ли интересные проекты?
Энтерпрайз - это Java 1.5 и ковыряние в говне, которое написали до тебя десятки аутистов.
Тырпрайз это когда 1 контора кормит 50 человек, которые за это устраивают митинги, спринты, скрамы, показы, переработки, доработки, тестирования, миграции, релизы, патчи. Высок шанс что используемые технологии будут устаревшими на 2+ поколения, а в руководстве консервативные консерваторы. Тем не менее энтерпрайз это как правило опыт работы с высоконагруженными системами, охуенно большими хранилищами и базами, опыт распределения нагрузок всех сортов, а при активной жизненной позиции еще и опыт продвижения в проект новых технологий.
раз есть выбор, катись куда интересно.
http://www.javafind.net/gate.jsp?q=/library/36/java6_full_apidocs/com/sun/java/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState.html
Видишь, что нет перед словом class слова public?
Вот никак и не терпим - тупо потому, что не пользуемся.
Жыза, сук.
Судить будут не по сути проекта, а по качеству кода и архитектуры.
Мой текущий уровень не высокий - из майндмапа в шапке могу более-менее уверенно поговорить о basic и oop, урывки из advanced. Есть знакомые, с которыми могу проконсультироваться по возникающим вопросам.
Над форматом взаимодействия пока не думал, надо вместе решать. И да, я работаю и учусь, поэтому обучение 24/7 не смогу при всём желании гарантировать, но и ебланить тоже не собираюсь.
Фейкопочта - meowfake90}%z00ANUSgmLhvailPUNCTUMLTscom
List<Bla_Bla> list = new ArrayList<Bla_Bla>(); конструкции.
Компилится легаси 8 jdk, собирается через ant. В идее для проекта выставлен уровень совместимости с 1.5.
Так вот, можно ли как-нибудь настроить компилятор и идею, чтобы использовать diamond оператор и при этом продолжать пользоваться 5 рантаймом?
Есть конфа в телеграме
Постоянно ковыряем "кишочки' жавы, матёрые волки подбрасывают хитрые вопросы.
https://telegram.me/joinchat/Bbfo5gUiYnQn8tWtl0OlrA
https://vk.com/khasang
вылетело в рекламных записях в вк
Javarush или Coursera ? с Английский все впорядке.
Коммерческая хуета, паблик накручен.
ты это серьезно сейчас?
А может и не костыли.
Написал в общем камень, ножницы, бумага. На большее фантазии не хватило.
использовал 3 класса.
Класс Игрока:
http://pastebin.com/GuCeL1rp
Класс "движка" игры:
http://pastebin.com/7NF68ESe
Класс с мэйном:
http://pastebin.com/TgXgBx1v
В итоге выводит вот такое(вывод может и другим быть):
1й игрок кидает
Бумага
2й игрок кидает
Бумага
Ничья!
Время повторить!
1й игрок кидает
Ножницы
2й игрок кидает
Камень
Второй игрок победил!
Гляньте код, пожалуйста, оцените и распишите здесь, если не затруднит вас)
Спасибо, Аноны!
А может и не костыли.
Написал в общем камень, ножницы, бумага. На большее фантазии не хватило.
использовал 3 класса.
Класс Игрока:
http://pastebin.com/GuCeL1rp
Класс "движка" игры:
http://pastebin.com/7NF68ESe
Класс с мэйном:
http://pastebin.com/TgXgBx1v
В итоге выводит вот такое(вывод может и другим быть):
1й игрок кидает
Бумага
2й игрок кидает
Бумага
Ничья!
Время повторить!
1й игрок кидает
Ножницы
2й игрок кидает
Камень
Второй игрок победил!
Гляньте код, пожалуйста, оцените и распишите здесь, если не затруднит вас)
Спасибо, Аноны!
Господа, почему я стили подключаю, а они не находятся. XML файл у меня большой, не знаю, где там стили искать.
Стили лежат в папке с классом.
scene.getStylesheets().add("styles.css");
мар 13, 2016 4:35:39 PM
com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
WARNING: Resource "styles.css" not found.
Двач, пожалуйста, оцени, хочу знать косяки свои и работать над ними
Некошерно, переименуй Let's Go в Let's get it started!
Имена классов это существительные. Пишутся КамелКейсом с заглавной буквы, имена переменных и методов кемелКейсом со сточной буквы. Методы это глаголы. Зачем ты объявил pl3 если ты его не используешь, что вообще такое Playa, это какой-то диалект? Почему vars без модификатора доступа, а c с модификатором?
Вообще для самоучки ты хорош, но те же цели можно было достичь более простым способом. https://ideone.com/z1BQYs
Попробовал решить первую задачу и решил как ОП, если я правильно понял, что он решал через графы направленные.
Держите моё гавно - http://ideone.com/qOUEZA
Спасибо, Анон.
pl3 объявлял ещё когда думал сделал её на троих, но после передумал)
Спасибо за критику, Playa - эт потому что где-то в глубине проекта валялся класс Player.
Учёл, буду работать над собой
Код читаемый? А то, я думаю, что нихуя не понятно. Надо пару методов переименовать.
задачка по алгоритмам предполагает процедурное решение, у тебя же решение по всем канонам ООП. Ты хотел выебнуться что умеешь применять инкапсуляцию, полиморфизм и наследование? Хуй ты напишешь решение с автосгенерированными методами в блокноте. \u2192 - эт че? Вызываешь dfs у какого-то класса, который якобы должен в себе содержать только логику поиска в ширину, но он почему-то знает об окружающем мире, о городах этих. Реализацию так и не понял, сложна нихуя не понятна. N - это для уроков матеши оставь, там будешь искать N. Сокращения в жабе это дикость, максимум - аббревиатуры. SEOfString - это что? яннп. На должность SEO хочешь? Почему мягкий знак есть в исключениях, а твердого знака и ы нету? if (start != that.start) return false; - попахивает попытками оптимизации. Что, программа проседала по скорости? hashCode в SEOfString зачем? Строки дают прекрасный хешкод. Вообще, если массив не меняется в ходе выполнения, почему бы не хранить индексы слипающихся городов вместо стека?
Что такой пассивно-агрессивный? Я вообще выебываться не хотел. Просто хотел узнать нормас написал или нет.
>\u2192 - эт че?
стрелочка вправо в юникоде
>Вызываешь dfs у какого-то класса, который якобы должен в себе содержать только логику поиска в ширину, но он почему-то знает об окружающем мире, о городах этих.
На самом деле он ничего не знает. Просто я назвал для удобства так переменные. Метод dfs возвращал максимальную последовательность относительно стартового элемента. Так что ты можешь туда что угодно запихнуть и будет работать.
>На должность SEO хочешь?
Не, не хочу. Start, end of string.
>Почему мягкий знак есть в исключениях, а твердого знака и ы нету?
Добавь в массив и будет. На твердый знак слова не заканчиваются, на "Ы" есть даже в россии города.
>f (start != that.start) return false; - попахивает попытками оптимизации. Что, программа проседала по скорости?
Я вообще не понимаю о чем ты. Это идея сгенерировала. Я удалил ради тебя всякое гавно и оставил, только нужное гавно. Держи - http://ideone.com/Q41tWs
тогда все норм
Да, но только один с тем же названием, что и файл. И все классы с другими названиями в той же области видимости, что и главный класс, должны иметь модификатор доступа protected (или, что равносильно, быть без модификатора доступа).
Точно.
Будут ли у меня проблемы в работе без знания этих алгоритмов и стр. данных?. Смогу ли я их параллельно с работй усвоить или усвоение базы знаний я проебал? В работе придется вникать в проект и вникать в фреймворки, вот и думаю, что на остальное у меня времени не хватит.
Прямо срочно - алгоритмы не понадобятся. А большинству джава-макак не понадобятся вообще никогда. Тем не менее, стоит как минимум иметь общее представление, вдруг повезет и попадешь на интересный проект где таки нужно уметь в алгоритмы. Почитай Седжвика на досуге.
Не успею сделать что-нибудь удельное и меня попрут из конторы
Спасибо.
ПЕРЕКОТ: >>687417 (OP)
ПЕРЕКОТ: >>687417 (OP)
ПЕРЕКОТ: >>687417 (OP)
ПЕРЕКОТ: >>687417 (OP)
ПЕРЕКОТ: >>687417 (OP)
Это копия, сохраненная 29 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.