Это копия, сохраненная 28 августа 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе.
https://github.com/qqqlll/Java-Thread/wiki
В идее .class файлы погляди.
https://dou.ua/lenta/articles/java-beginner-guide-1/
прочитал этот цикл статей и просто охуел
надо прочитать порядка 20-30 книг чтобы взяли джуном? а ведь это все еще надо закрепить на практике, пиздец просто
какой проект можно попробовать самостоятельно сделать во время обучения, чтобы постепенно изученные технологии там применять?
конечно, было бы ахуенно, чтобы и в резюме его показать можно было.
как я понимаю, при работе в крупных компаниях обычно приходится пилить код под соответствующую бизнес-логику и бизнес-процессы. всякие магазины, склады, поставщики, доставка, оплата и так далее.
поэтому надо пилить что-то типа интернет-магазина или сервиса доставки?
или искать бд с данными и пытаться их обработать?
просто ничего лучше в голову не приходит.
>поэтому надо пилить что-то типа интернет-магазина или сервиса доставки?
Да, берёшь спринг с хибернейтом и пилишь что-то подобное.
", а то он за первую сотню денег хочет. Не хочется платить за то что еще недавно висело в паблике.
Просто мне все еще пока что непонятно, зачем нужно так много разных технологий. Это чтобы делать сайты или писать программы для десктопа?
немного. типы данных, операции, циклы, массивы уже встречал раньше. из нового для меня: основы ООП, классы, методы, наследование, пакеты, интерфейсы, исключения.
Да.
Платят деньги за Реакт.
>EE - это тупо поддержка легаси, написанного в начале и середине нулевых?
да, за знание ЕЕ на собеседовании сразу получаешь смехуечки и на гироскутере укатываешься обратно, сейчас надо реакт, аасинхрон, микросервис докер кибана спрингбут
>EE - это ведь совсем древние технологии, ни одной новой за 2010-2018
Не совсем: EE7 - 2013, EE8 - 2017. Но безотносительно древности, ЕЕ уже не первый год как фактически вытеснен спрингом; если говорить о ЕЕ как о подходе, когда в Application Server крутятся EJB c JSF.
Корпоративный сегмент это необязательно легаси. Если, например, какой-то банк захочет запустить новый онлайн-сервис, он будет делать его на джаве, хоть даже и с нуля и на всем современном.
об этом и вопрос. что-нибудь интересное пишется сейчас на java? тут пробежался по собеседованиям в городе - четыре вакансии = четыре банка с поддержкой древнего днищща. рядом в поляндии та же петрушка. за копейки умирать со скуки - это слишком.
EE подразумевает подход, когда ты пишешь приложение с использованием этих еешных api и затем запихиваешь его в жирный application server, в котором лежат этих api реализации - EJB/CDI, реализация JPA, etc. В теории, поскольку есть стандартный api, тебя может не волновать, что именно лежит в ASе, но на практике это не работает нехера, ебаться с потрохами тоже приходится.
Спринг предлагает подход, когда ты берёшь сам спринг, берёшь лёгкий встраиваемый servlet container (или даже нетти) и сам набираешь себе другие необходимые фреймворки, на толстый AS не полагаешься. Коровый спринг заменяет еешные EJB/CDI, является более гибким и удобным, а также даёт много дополнительных приятностей, типа оберток над уродливыми api вроде jms. Вместо спринга тут в теории может быть и что-то другое, важен сам подход, когда ты сам собираешь приложение из необходимых частей.
EE также можно рассматривать просто как набор спек разной степени полезности, ни к чему не обязывающий. В это смысле он пока живёт - servlet api, jpa вполне себе применяются.
да хз. екоммерс проекты, ИоТ, зеленые проекты. миллион вариантов. неужели вся современная java упирается в банки? на бидоне куча нескучных вариантов, даже на убогом жс есть интересные предложения помимо сайтоклепания.
А ты так и останешься глупым войтивайти, вытирающим пиструн о собственный экран кудахтера.
ебать. куда ж мне до тебя - мегагуру с двача.
Упирается ли вся джава в банки? Не упирается. Бывают ли на джаве екоммерс и иот? Бывают. Найдёшь ли ты их сходу в любом мухосранске, да ещё и так, чтобы с нуля писать (а то ой легаси)? Не факт. И я бы кстати не сказал, что екоммерс сильно интереснее банков.
Запили на спринг бут веб приложение, с использованием мускул, джойнов таблиц, секюрити, рест апи, жсп страничкой с формой ввода вывода данных в бд, чтобы всё лежало на докере. Или борду сделай.
Потом кидаешь ссылку на гитхаб и на докер в резюме и отправляешь его на самые дно вакансии. Может возьмут стажером, поработать за бесплатно.
ты там хуем что-ли подавился?
Выкатывайся.
https://www.quora.com/Are-servlets-and-JSP-still-used-nowadays
JSP - легаси технология, но пишут, что ее надо знать, чтобы понимать актуальную джаву на веб.
Есть у кого-нибудь второй том Хорстманна с красивой версткой? На рутрекере лежит ужасно сверстанный рип
>что думаете про книгу Грокаем алгоритмы
Если совсем не сталкивался с алгоритмами, то самое оно. После нее обязательно читать седжвика
Я прочитал одну книгу по джаве и сейчас сеньер 3к на удаленке.
Читай effective java, остальное в мусорку.
> книгу Грокаем алгоритмы и есть ли смысл тратить время
Нет, это проеб времени. Не слушай этого >>09274 древоверта.
Идешь на https://start.spring.io/ и карабкаешься потихоньку с гайдов на офф. сайте спринга, остальное само придет.
И теперь думаю каким путем пойти.
1. Прочитать вдогонку Философию Джава Эккеля чтобы еще лучше понимать материал основ Джава
2. Забить на базовые книги и почитать Алгоритмы в Джава решая задачки на Codewars
3. Пойти сразу изучать Spring.
Что посоветуете ребят?
С недавних пор, правильно - Netcracker.
Работал там.
Советую туда пойти, дабы прочувствовать дух энтерпрайза и никогда больше не работать в подобных конторах.
Делаешь своюи обертку над B, делов-то. Только я с такой необходимостью не сталкивался.
class C extends B implements A {}
> TS
Ты скачала подумай как перегрузка работает в джаве и TS и сразу поймёшь ответ на свой вопрос.
ДЕ КО РА ТОР
Здарова анусы.
Поясните мне за вашу жабу.
Вот например я создал интерфейс. И въебал ему много имплементаций.
А потом такой в Спринге создаю ссылку на него в классе, и пишу аннотацию autowired.
На какую реализацию Спринг сам сядет, а на какую мать посадит?
Батарейка по пизде.
Сначала просмотрит на имя, если есть бин с таким именем - берёт его, если нет - возьмёт тот, который помечен primary, если такого нет - упадёт с ошибкой.
Перечитай то, что ты прочитал. Если не понял где обосрался, то значит ты войтивайти позорный и объяснять тебе что-то - что стенке Шекспира читать.
Лезь в spring reference guide и прочитай как алгоритм инъекции зависимостей в спринге.
Откройте кто-то идею и проверьте чё будет
Еще один.
> Лезь в spring reference guide и прочитай как алгоритм инъекции зависимостей в спринге.
Шин абстрактный. Допиливать компилятор ни ты, ни я не будем. А прирост производительности в числоебле не особо большой, чтобы заморачиваться.
Дебил, ты либо пиши по делу, либо иди нахуй. Сейчас блять будем всем тредом открывать и искать в тысячи страниц что там не так.
> А прирост производительности в числоебле не особо большой, чтобы заморачиваться
На стартап похуй, но вот потребление памяти при нативных билдах довольно существенно сокращается.
Хотя смотря на это https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md понимаю какая это будет ебля, что проще уже будет из раста дергать функции. Но для хелоуворда это безоговорочный шин
Именно что хеллоуворлда. Я бы посмотрел на такой график, где у оригинального приложения хотя бы 250мб расход. А то сокет один открыли и рады.
Обсирайся тогда на собеседованиях, войтивайти. Мне-то что.
>>10567
SubstrateVM норм идея, но с
> InvokeDynamic Bytecode and Method HandlesNot supported
нахуй идут.
Тогда как юзание грааля в качестве компилятора дает несколько процентов производительности - см. полугодовалой давности отчет от твиттера -
> прирост производительности в числоебле не особо большой, чтобы заморачиваться
> нахуй идут.
Чому?
> Only special use cases of invokedynamic are supported: when the invokedynamic can be reduced to a single virtual call or field access during native image generation. This is sufficient for full support of Java 8 Lambda expressions.
Лямбды не пострадают.
НАМ ТРЕБУЕТСЯ MIDDLE/SENIOR JAVA РАЗРАБОТЧИК
@
ОПЫТ КОММЕРЧЕСКОЙ JAVA-РАЗРАБОТКИ ОТ 3 ЛЕТ
@
ОТ 70 000 РУБ. НА РУКИ
В моем мухосранске похапешники больше получают.
А войтивайти итт не верят, когда им говорят, что еще бы в кобол вкатились.
>бро2006
>Но почему не FX?
Потому, что свинг _официально_ будет поддерживаться до 2026-го года.
А на самом деле - вечно, лол.
А FX они уже слили де-факто несколько лет назад.
А сейчас уже официально объявлено, что он будет исключён из jdk и jre и отдан в opensource.
Т.е. теперь он вечно останется никому не нужным тормозным говном без компонентов.
Чтобы было ещё понятнее - за всё время существования этой хуеты (fx) ни один коммерческий производитель не выпустил под него ни UI-дизайнера, ни библиотеки компонентов, ничего, вообще.
Притом, что JForm Designer (Swing) сейчас активно выпускает новые версии.
И JIDE стабильно выпускает багфиксы несколько раз в год.
И т.д.
Вот и подумай, 2006 или 2026, лол.
SWT, кстати, тоже де-факто слит.
Так что - либо веб, либо свинг.
экспертное мнение джава джуна
ну как пригодятся так и начни читать, ебана, для 99% людей они нахуй не нужны, чисто проеб времени
Понадобилось мне поднять элементарный сервер на джаве. До этого из хостингов пользовался только божественным pythonanywhere, где все элементарно блядь. Залил файлы и можешь их тут же редактировать.
Сейчас влез в heroku. Что это за хуйня вообще? Я не понимаю как это работает никак оно не заработало в итоге, где там мои исходники лежат? Куда мне выводить логи? Я уже молчу о том, что это говно отваливалось в процессе настройки.
В общем мне нужно понять с чем я вообще имел сейчас дело и как это работает, потому что выглядит прикольно и универсально. Документацию не предлагать, из нее я общей картины не вижу.
И еще мне нужен максимально простой бесплатный хостинг. Чтобы залить файлы руками, без гитов и запустить.
Проще всего настроить деплой из идеи. Логи там же смотреть будешь.
Если сервер собирается в жарник, то проще всего купить впс и там выполнить java -jar cerver.jar > logs.txt
Если деплоить на хероку, то там побольше ебатни с дескрипторами, которые поднимут твой сервер автоматически
Алсо у них же ахуенный гайд, как там можно что то не понять https://devcenter.heroku.com/articles/getting-started-with-java#introduction
Эта хуйня постоянно отваливается. Решения из гайда не помогают. сервер работает с ошибкой, но в логах этого не отображается. Короче пиздец, заебала меня эта система.
Чувак, онлайн-банкинг - это, прежде всего, куча всякой хуеты, связанной с безопасностью.
И реклама собственных банковских услуг.
Если это убрать - останется что-то вроде примитивной системы складского учёта, с мизерным функционалом. Сужу по реальным системам двух крупнейших российских банков.
Хочешь делать "бизнес" - делай CRM или типа того - учёт продаж. Можешь погуглить - есть коммерческие системы с демо-режимом - посмотри что там и как.
Я так и нихуя не понял, что это такое, кстати. Понял только, что типа на разных языках можно хуячить, а как это работает и зачем - не понял.
сеньор 4 года опыта
добавьте уже в шапку что ли
>сеньор 4 года опыта
Дожили, человек не может понять простую концепцию разжеванную 100 раз, но при этом "синьор".
Надо вызвать из Java функцию на Python.
Проблема в том, что там использутся нативные библиотеки. Кто нибудь использовал Jython+JyNI? Или jpy - a Python-Java Bridge?
Моя зарплата от этого не вырастет, поэтому лень вникать.
Нормальные пацаны на електроне дексктоп ебашат
Как альтернативу можно использовать awt browser (запуская в нем апплеты)
Ну просто я сам бывший банкир и в этой теме как рыба в воде. Вот и подумал почему бы не реализовать прежний опыт в новой ипостаси. Заодно в тот же банк можно вернуться но уже как разработчик.
Да уж лучше SWT, чем эта ссанина. Шлак, пустой с одним спейсом и одним дефольным тредом жрет ссукка 500 мегов, а через пару дней уже 2 гига.
Да у меня Идея с проектом столько занимает.
>вернуться но уже как разработчик
Участь хуже червя-пидора. Тебе бы найти идею продукта, который банкам толкать, раз ты такая рыба, да стартап свой мутить, а он геморрой хочет зарабатывать уткнувшись в монитор.
Заходил тут в стартап на собеседование. Мутят систему работы с электронными документами для банков. Что-то типа гугл-дока с совместным редактированием, историей правок, заметками и прочими плюшками. Барклайс это использует даже (с их слов).
Бро, тяжело так далеко смотреть зная только Java core. Мне бы опыта какого никакого для начала набраться
лист сразу не подходит из-за ссылочных объектов
просто берёшь и хуяришь в массив, если места нет, то создаёшь новый, копируешь в него старый с помощью System.arraycopy и продолжаешь хуярить в новый массив
и еще, от чего зависит в каком порядке вызываются потоки, почему main поток идет самым первым?
По поводу того почему начинается с 1цы только что понял сам. Метод утёнка работает.
Байтовый буфер - лучше массив - никакого оверхеда.
Но, это если буфер имеет фиксированный размер.
Иначе - ArrayList (внутри него очевидный array), или что-то специализированное.
>>11208
>Я просто сервер делаю
Посмотри Netty.
Это если нужна производительность, конечно.
Там и буферы и хуюферы, и самодельные протоколы, и всё, что надо.
Но, оно довольно непростое само по себе.
Akka на базе него сделана, например.
>>Akka на базе него сделана, например.
Не на базе. Но там используется для связи между нодами вроде.
А так да. Netty - штука из разряда лучших Java библиотек.
> пятый Spring in Action
https://www.manning.com/books/spring-in-action-fifth-edition
> Publication in Fall 2018 (estimated)
Он ещё не готов, очевидно же. Можешь только купить предрелизную версию.
Ну если не увлекаешься реактивными хуёвинами, то нет.
Но я бы посоветовал изучать оффициальный ман вместо книг. Сам по нему изучал спринг.
Я имел в виду сетевую часть, естественно.
Я просто боюсь что начну использовать ее, а там потянется куча кода и выйдет овердизайн
Дети считают, что это такой грязный хак дженериков в джаве, который делает их плохими. Взрослые дяди просто пользуются инструментом.
Не геморней чтения спринг эксепшенов
System.out.println();
System.err.println();
только в том, что out буферезует (сохраняет в хипе и потом в пуле строк) строку, а err минуя все инстанции сразу выводит? Так почему в учебных программах приучают именно к out, если err быстрей?
Посоветуйте подходящую литературу типа Cookbook`а, чтобы без лишнего философского пиздежа плз.
И вообще, у кого был подобный опыт переобувания, подскажите на что обращать внимание (ну кроме очевидного канкаренси)
В том что они созданы для разных целей? Из названия понятно что ерр поток вывода для ошибок, а аут - для всего потока говна. Только я ни разу не видел чтобы ерр кто то использовал.
В продакшене логи пишутся в файлы, где лог с ошибками это отдельный файл, и видимо до изобретения человеческих логеров было принято юзать ерр, пихая в него стектрейсы исключений.
> только в том, что out буферезует
И на тот и на другой вывод можно повесить буфер через System.setOut/Err
Есть вариант на работе заняться проектом на джаве
Вчера видел err в udp примере из netty
он причем есть только в IDE похоже, в консоли нет
Лососни-ка мой cockbook.
> я тупой войтивайти, не хочу гуглить, хочу чтобы ты все разжевал, положил мне в рот, работал моей челюстью, чтобы жевать и бесплатно меня обучил. А, еще все это бесплатно, конечно
Лол, я что, оскорбил чувства мамкиного СИНЬОРА? За что тебе платить-то, омежка? Если нечего сказать по делу, то сиди молча и не вякай, долбоёб.
>войтивайти
Неймфажим? Сколько раз ты это уже в треде использовал?
>гуглить
Вот, гугл говорит это, проблемы? Так что твой кукарек смысла не несёт.
>бесплатно
А как насчёт целой горы отборного нихуя? Вбросить ссыль на станоковерфлоу или ссыль на оракл для тебя прям дохуя труд? Что ты на борде забыл тогда? Работу ищешь?
Ясн, очередной жирный джун, который вместо прямых ответов, абстрактно размахивает руками и ни разу за весь тред ни на что не ответил, удачи тебе на стажировке.
Type erasure - это способ, которым сделали дженерики в жаве, чтобы сохранить обратную совместимость когда она ещё была важна. Суть в том, что Azaza<T1> от Azaza<T2> отличается только во время компиляции, а в рантайме это один и тот же тип (т.е. ассоциированные типы просто стираются, потому это и называется type erasure). Минус в том, что в рантайме определить пришёл ли тебе массив с интами, флоатами или другой хуйнёй попросту невозможно (на самом деле можно, попердолившись со внутренностями JVM, но так мало кто делает ибо пирформанс уходит в ноль) из-за чего во всяких библиотеках сериализации надо использовать кучу излишних атрибутов. Про пирформанс подобного решения я даже заикаться не буду. Жава явно для этого не предназначена.
Понял, пасибо, два чая тебе
>пирформанс
Чувак, type erasure для перформанса и сделано.
Хочешь перформанса в рантайме с рефлекшеном - придётся немножко поработать руками. Это не так сложно, кстати.
>Жава явно для этого не предназначена.
А что тогда предназначено?
Неужели плюсы?
Ну его на хуй, такой пирформан.
> Чувак, type erasure для перформанса и сделано.
Нет. Сделано это исключительно для обратной совместимости. Например специализация (хотя бы библиотечных) генериков сразу отпадает, а значит сделать эффективный массив с числами невозможно, всегда будет массив с объектами. И да, я сравниваю с C#, а не плюсами. В шарпе генерики сделаны полноценно с полноценными типами.
>массив
Ну, в шарпе явный акцент на выделение памяти на стеке. Т.е. производительность поднимают за счёт этого.
В джаве же массивы - это (обычно) что-то низкоуровневое - байтоебля и т.п.
Но, если честно, я не думаю, что ирл шарп сколь-нибудь заметно быстрее джавы.
Массивы в жабе с дженериками не работают, доброе утро. Как раз у массивов полный тип доступен в рантайме. Ну и, традиционно, задач для определения в рантайме дженерика привалившего объекта ни разу не было названо. Дженерики в полях и аргументах функций доступны в рантайме.
> задач для определения в рантайме дженерика привалившего объекта ни разу не было названо.
Ах, это такое нинужно? Ну напиши мне аналог https://ideone.com/M6w2xu
Посмотрим сколько строк и костылей у тебя на это уйдёт.
Ну или прокукарекай, что оно нинужно и вообще типы не нужны, ведь костыли - это так прекрасно, а если в методе нет переменной с названием clazz, так это вообще неправильный жава-код.
Ну так зачем это всё? Если ты идёшь instance of по своим аргументам, то ты уже обосрался.
Где ты там видишь instance of? Так что нинужно? Правильно, настоящий жава-программист: если мне не нужно, значит никому не нужно.
Надеюсь скоро в котлине сделают инлайн-классы с полноценными генериками. Столько кода упростится.
Конкретно в котлине я использую для написания DSL. Инлайн-функции конечно спасают и выглядит более-менее, правда описание самих классов, обрабатывающих DSL-код выглядит мегауёбищным и даже сам DSL-код порой получается костыльным. С инлайн-классами (а значит и полноценными генериками) обе проблемы элементарно решатся.
Так что. Ты достаешь тип и дальше не делаешь на нём всякие там сравнения с другими типами? Делаешь, иначе смысла нет.
И причем здесь вообще инлайн функции и как они могут хоть от чего-то спасать, когда это исключительно перформанс фича?
> И причем здесь вообще инлайн функции и как они могут хоть от чего-то спасать, когда это исключительно перформанс фича?
При том, что инлайн функции могут быть полноценными генериками (т.е. тип T будет известен и во время выполнения) и самое главное могут иметь в качестве аргумента кроссинлайн функцию, типы внутри которой тоже будут известны во время выполнения. Кроссинлайн функции - это мегафича для написания DSL-кода.
Как раз для пирформанса я инлайн функции не использую вообще, лол.
Ну это побочный эффект, лол. Из-за того, что их приходится объявлять через экстеншн функции и на самом деле они не дженерик.
Не, там смысл в том что ретрофит как-то подхватывает из интерфейса тип и передает его гсону, но нормального Class<T> у тебя нихуя нет. Как-то ебанутый TypeToken над которым происходит всевозможное колдунство.
> Из-за того, что их приходится объявлять через экстеншн функции и на самом деле они не дженерик.
Инлайн функции можно объявлять и внутри своего класса.
Ну делать их приватными. Итог такой же.
Спасибо, но мне не нужна ни твоя удача, ни стажировка.
Мне кажется там ментор перемудрил с примерами.
Там где начали про сериализацию аррайлистов я запутался.
Порядок вызова потоков в твоем варианте не гарантирован. То есть он может быть абсолютно любым. Хоть 1, 2, 3 хоть 3, 1, 2. Это больше зависит от реализации виртуальной машины и на разных платформах ты можешь получить разный результат.
Просто два разных потока. Не забывай что каждый из них можно перенаправить куда угодно в не зависимости от другого. То есть можно перенаправить .out на порт а .err в файл.
Ну а что. Эту дрянь уже из jdk выпилить хотят.
>Годно ты его
Все правильно. Сериализация не нужна, нужен конкретный и явный IO. Сериализацию делают только мудаки с интырпразом головного мозга 90х.
Hibernate не сериализует данные, долбоеб, он делает объекто-реляционный маппинг.
Ну так вот, как будет сериализовывать данные? Осторожно! Ответив, что не нужна ты покажешь, что ты залетный долбоеб и не написал ни строчки production-кода и вообще понятия не имеешь о чем говоришь.
Ты пока думай что высрать или баттхертнуть в ответ, а я пока на работу пойду.
Xml/json/protobuf
За Java serialization в коде я обычно бью по рукам. В конце концов, не на одной жабе сервисы имеем.
>Hibernate не сериализует данные
И правильно делает - умные люди писали, значит.
>Ну так вот, как будет жрать говно?
Приятного аппетита, джьявадебил.
Алло. Братушани.
Делаю модульные тесты Мохито.
А что протект методы не тестируются?
Что вообще нужно тестировать? Каждый метод или поведение?
Протектед вроде можно, приват с помощью Powermock, но оно скорее всего не нужно.
Ну ты и каждый метод нетривальный тестируешь и поведение в общем, это разные уровни.
> Ну, в шарпе явный акцент на выделение памяти на стеке. Т.е. производительность поднимают за счёт этого.
> В джаве же массивы - это (обычно) что-то низкоуровневое - байтоебля и т.п.
Как же у тебя в голове насрано, просто все в кучу перемешалось.
А как же создание исполняемых 20 мб образов, которым не нужна жре? Это же ахуенная тема.
Нет, я про jlink, он создает минимальный образ рантайма исходя из тех модулей что используются и компилирует это в нативный код. Раньше без этой тулзы образ бы весил под сотню мб
Компиляция в нативный код - фича Graal. То, о чем ты говоришь, просто не включает лишние модули в твою личную поставку jdk. Грааль и без этого говна вырежет всё лишнее, так что модули немного в другой плоскости.
Ах, это. Всё равно пока все используемые библиотеки не начнут поддерживать модули (а они в ближайшие годы не начнут, хорошо если java 9+ начнут поддерживать даже без модулей), то поддержка всего этого превратится в адский геморрой рядом с которым уменьшение размера бинарника покажется незначительной хуитой.
Фича грааль использование Substrate VM (который по сути llwm с собственным сборщиком мусора) вместо родного в 9-10 жаве G1. Он никакого отношение ни к модулям ни к жлинку не имеет и развивается как отдельный проект. Запуская бинарник собраный через жлинк, все еще существует жава рантайм и стандартная сборка мусора.
>>12295
Для древних подключаемых жарников создается default module, и по сути тут нет никакой разницы.
Да, я именно это и написал. Никак не связаны.
> Для древних подключаемых жарников создается default module, и по сути тут нет никакой разницы.
А тогда jlink работать-то будет? Ведь в библиотеках не будет описания необходимых модулей, а значит убрать лишнее из jre не получится.
Сериализация не нужна им больше
Ебётся конём энтерпрайз
У меня план таков - Колекции, Spring, SQL, html, css, javascript.
Норм? Или что-то убавить, добавить нужно?
Для базового понимания работы фронта. Да и в вакансиях много раз видел.
> Xml/json/protobuf
А протобаф, трифт и прочая дрисня это не сериализация данных? Выше по цепочке ответов утверждается, что сериализация не нужна. Так что сейчас же прекращай использовать бинарные протоколы передачи дрисни, не нужна ведь!
>>12232
Пиздуй нахуй отсюда, дебил ебаный, коли сказать ничего умного не можешь.
Тестировать нужно публичное API, а не внутренние детали реализации.
>>11550
Модули мертворожденное кривое говно, которое нахуй не нужно. Особенно в кривейшей jigsaw реализации. Кучу времени и сил убили, высрали адовое мертвое говно, которое забыли сразу же как страшный сон.
А кому все же нужны модули и при этом уже подпроекты гредла не устраивают тот юзает терпимый osgi.
>>12667
Лучше сразу учи html, css, javascript, react и иди на долларовый апворк, а не в говне без фриланса копайся.
https://paste.ofcode.org/LeMiSZvr5i4hL6switWafe
Теперь на собеседование.
Хз, в курсе на udemy их разделили.
Утверждается, что встроенная в жабу сериализации не нужна. Что там какой-то залётный писал я не знаю.
> Сериализация не нужна, нужен конкретный и явный IO. Сериализацию делают только мудаки с интырпразом головного мозга 90х.
Фу, ты устарел. Начиная с 9-ой версии, самое главное - это веб, облака, микросервисы. Всё остальное потихоньку выкидывается в руки комьюнити на помойку.
Есть паттерны MVC, MVP..
А есть паттерны Фабрика, Адаптер, Абстрактная фабрика.
Вроде и первые и вторые являются паттернами, но они вроде как разные.
Как их разгруппировать?
Допустим на собесе меня спросят: какие паттерны знаешь? И какие я должен буду назвать?
Ты из метода call() сабмитишь новые таски и ждешь их завершения. Не делай так.
Я не особо понял, что ты там делаешь, но похоже что тебе нужен ForkJoinPool.
>Как их разгруппировать?
Ты хоть бы книжку какую открыл про паттерны, или википедию сраную, хотя-бы.
Всё уже сгруппировано - паттерны поведения, паттерны охуения, и т.д. и т.п.
пользователь дает директорию, на каждую поддиректорию рекурсивно создаются таски (простейший случай, когда файл не директория - каунтер++) и добавляются в лист, потом все каунты складываются в общий, как там появляется налл я хз.
Мы тут не вдвоём, если ты не понял. Почему я это вообще объяснять должен?
Самая смешная часть этого класса - название достаточно очевидно говорит о том, что он делает. Ну и вообще класс достаточно простой (и уже не используется, эх).
конечно видел, я тупо списал этот код с книжки java fundamentals 1 horstman и вот так работает с косяками, может он думал что это для небольшой папочки, но я в параметр даю /etc/ и error
Профит с этой темы ооооочень хороший
Я хз, там консоль огромная
Не путай Java и Javascript.
> возможно ли это?
Если ты собираешься делать это один, то только в том случае, если изобретут бессмертие до того как ты отправишься в могилку.
> Подойдет ли для этого Java
Однозначно нет. На ней нет ни нормального гуя, ни пирформанса для работы с изображениями.
Внезапно он уже сделан, только не полумертвой жабе, а на успешном процветающем языке:
https://ru.wikipedia.org/wiki/Pinta
А жаба еле шевелится. Вот единственный XML сериализатор, который шел из коробки, внезапно отвалился, и в 10 уже не будет:
https://docs.oracle.com/javase/9/docs/api/java.xml.bind-summary.html
И никакие граали не помогут, доктор сказал в морг, значит в морг.
Забавен этот аутотренинг уровня Delphi фанатов 10 лет назад.
Мы все знаем, где сейчас находится Delphi, не смотря на компиляторы для Linux, MacOS и Android, юникодные строки, лямбды и прочее "успешное развитие".
Вот ТАМ же будет и жаба в 2020-х.
Так делфи помер не из-за самого себя, а из-за того что его область применения - программки для десктопа, внезапно померла с развитием веба
Дельфи помер из-за того, что его развитие остановилось лет на 10, а когда возобновилось, то уже было поздно. Ну и с ценовой политикой у них был маразм.
>программки для десктопа, внезапно померла с развитием веба
QT это раскажи
> внезапно отвалился, и в 10 уже не будет:
он есть в 10, в 11 его перенесут в из se в ее модуль (и он тоже будет)
> QT это раскажи
И что qt? Десктопный софт умирает, все более-менее нересурсоемкое уже давно на электроне, Все ресурсоемкое скоро отделят в серверную часть и перенесут в облака.
>Все ресурсоемкое скоро отделят в серверную часть и перенесут в облака.
Точнее, уже переносят. Офис перенесли, Автокад - тоже:
https://www.autodesk.ru/360-cloud
Из десктопных софтин останутся пока разве что критичный к пингу софт - игрули, аудиоредакторы (для записи вживую, для просто электронщину сводить уже давно есть облачные). Следующий виток сетевых технологий (локальные датацентры в каждом районе, как трансформаторные будки) убъет и их.
шарпо-бог
Завтра у нас сдача проекта в унике, финальная фаза. Наговнокодили твиттер-клон. Нужен стресс-тест UI. Если не трудно, залогинтесь, потыркайте, покликайте куда возможно. (обхват функций: регистрация, создание поста, изменение настроек профиля, подписка на кого-то, поиск юзеров, просмотр постов). Эта версия должна быть более-менее адаптивной (подходящей в том числе под телефоны, планшеты).
Вот серваки на которых можно зарегаться (я сделал 2, если один упадет - можно на другом):
https://ec5870ff.ngrok.io
https://ecc71f02.ngrok.io
О проекте:
3-слойная архитектура:
Thymeleaf+Bootstrap -> UI
Spring MVC -> веб-сервер
Redis -> ДБ (NoSQL, Keystore)
У вас есть 8 часов, потом тунелли закроются. Можете устроить там свой двач с блекджеком и шлюхами.
P.S. не логинтесь только с реальным паролем ;)
Задавайте вопросы, если что (можно в блогукс прямо). Думаю, если что туториал на канале запилить
Бамп, ребята
c/c++/rust
Да, а на 4ГГц 16-ядерных десктопных процессорах будут просто жарить яичницу.
Ты, что-то, совсем заблудился в волшебном мире веб-фронтенда.
nosql, какая инъекция братан?
Алсо, спасибо тем, кто принимал участие. Нашли пару тройку багов -- значит фаза была продуктивной!
Кому интересен код:
https://github.com/atimchenko92/blogux
Я пробовал дроп, не помогло.
продуктивно - я бы сказал недели три-четыре. Пилил на 98% процентов в соло. Чуть нервный срыв не получил с "коллег". Ну, по-крайней мере сделал выводы по поводу их организованности. сам вел канбан/issue в гитхаб -- сам их закрывал и решал лол
Скажу в итоге, что был приятно удивлен NoSQL-подходом. Причем сам САП-дрочер последние 5 лет. Считай обогатился новым опытом. Очень контрастирует с ABAP-рутиной, которую испытывал в своем SAP-курятнике, лол.
С чего начать изучение спринга и хибернейта? Мои основные задачи это REST/SOAP, MongoDB, Postgres. Посмотрел официальные примеры проектов и нихуя не понял. Слишком многое скрыто. Отсупление от авторского замысла грозит ебатней с конфигурацией, а как это делать, я не знаю.
>Слишком многое скрыто
ты охуеешь сколько можно сделать скрытой магии в этом спринге. Это прям как препроцессор какой.
Ты ничего не делаешь, а оно уже подсовывает тебе другой класс с другой реализацией, и ты не знаешь почему всё сломалось
Понятно. Это жуткая ебола. На чем тогда лучше писать REST/SOAP-сервисы и работать с базами? JAX-RX для сервисов сгодится?
Не мы. Новосибирску не помогаем.
Мужчина который живет за счет сопровождения обеспеченных дам бальзаковского возвраста.
Не знаю как насчет регионов, я например в дс2 начинал стажером за 12к, потом стал джуном и получал 20-100к, повысили за 1.5 года постепенно.
Когда в роиссе случился экономический пиздец, с 20 сразу до 50 подняли и заодно привязали к курсу евро.
По многопоточности. Ебучий т9
Сдесь ниже видел 1С тред.
Говна поешь? Нахуй ты спрашиваешь если даже не пытался сам искать.
Допустим, у меня есть строчка кода, -- System.out.print (x+ " " + y + " "); -- которая складывает объявленные ранее переменные и вот этот пробел внутри двойных кавычек. Что вот это значит -- " " --? Я правда пытался гуглить, но у меня не получилось, а в месте, где этот код вообще написан, это не объяснялось по ходу повествования. Заранее спасибо добрым людям за ответ!
> я только начинаю изучать java
а зачем? Уже ж божественный котлин есть, зачем после него нужна джава? Советую сразу учить его
Котлин это хорошо, но я интересуюсь именно джавой и вопрос у меня именно по ней с: Если пойму для себя, что это супер-перспективно, то перейду на котлин, конечно же, но пока не планирую
Почему, если убрать пробел, выводятся числа абсолютно другие, нежели чем с ним? Я не понимаю сссссс:
Потому что если один из аргументов + является строкой, то выполняется конкатенация, а не сложение.
Не, это жиголо.
Мертворождённое говно и один большой грязный хак.
Этой книжки нет на русском, но мне ещё рановато ее. Поэтому и спрашивал
>начальный уровень
Для начала пойми разницу между конкурентностью и паралеллизмом.
Прямо вот так вот и загугли - "java многопоточность конкурентность паралеллизм"
В процессе выяснения этого вопроса узнаешь всё, что хотел, я думаю.
эти понятия не могут не пересекаться. Ибо полюбому надо обмениваться информацией и делить ресурсы
Понятия "хуй" и "пизда" вполне себе пересекаются.
Причём, во всех смыслах.
Тем не менее, между ними есть очевидная разница.
У тебя шифт не работает?
нет, это как пчёлы и мёд
{combos = {{key = 'Home', reformers = {'RWin'}}} , down = iCommandEnginesStart, name = _('Start Procedure'), category = _('Cheat'), position = `11111111`},
{combos = {{key = 'End', reformers = {'RWin'}}} , down = iCommandEnginesStop, name = _('Stop Procedure'), category = _('Cheat'), position = `01110111`},
Так вот.Я пытаюсь прочитать фаил через readline но я заметил что эта падла пропускает некоторые строчки.А мне нужно чтобы каждую строку разбить на части по запятым и загнать в массив.Что мне надо использовать?
Не смотрел код ибо кидать нужно блять ссылкой на него а не так.
>надо
Могу предложить такое:
При записи в конце добавляешь
>+ ","
и на записи последнего параметра + "/n".
При чтении
String[] OPhui = lineToParse.split(",");
Так у тебя выйдет массив, что будет иметь все параметры, что сидят на одной строчке.
Ну и естессна достаёшь уже что тебе нужно
Kek hui = new Kek(OPhui[0], OPhui[1]).
Ты это имел в виду?
>Всем привет
Не пиши так, пожалуйста.
Я планирую пидорасить конфигурации только в крайнем случае.Потому что Я в эту поебень еще играть буду.И я понятия не имею как игра прочитает мои символы если я туда их насру.Так что мне нужно чтобы все строки читались даже если там крокозябры вместо букв.
Не еби мозги.
Загрузи файл целиком в строку, и делай с ним что хочешь.
Если не знаешь как - используй FileUtils:
https://commons.apache.org/proper/commons-io/description.html
А если знаешь как - тем более используй. А ещё лучше храни в json/yaml, ну что за говно в 2018 году.
Эх, сейчас бы в 20!8 загружать файлы целиком в память, а не использовать ченнелинг...
Ну откуда вы лезете, лол?
Отчего бы и не загрузить конфиг в несколько килобайт целиком в память?
Или даже БД на несколько Гб?
В 2018-м память стоит дешевле грязи.
Из мира современного программирования, где используют FileChannel, неблокирующее API и реактор. А также из того мира, где идею толстых мейнфреймов обоссали еще в семидесятых. И где вовсю используются фермы обычных серверов по которым равномерно распределяется нагрузка и потеря десятков нод не сказывается на доступности сервиса, а не два ебучих мейнфрейма с балансировщиком.
> Или даже БД на несколько Гб?
Да ты охуел держать инмемори БД на несколько гигабайт при этом очевидно не работая в сферах real-time computations или hft. Сри в бд на диске, а если нада кэш, то юзай распределенный кластерный кэш прозрачно поверх бд.
Заебался уже с Map<String, ? super Object>, где рекурсивно в глубину обходится дерево и по каждому value хуячить инстансофы и касты в аналогичную мапу на листе, массив или одиночное значение.
Понятно, что задача ближе к языкам с демонической типизацией, но дрочило одноглазое потрачено.
Апачевский рекурсивный обход по полям объекта не предлагать, мне нужно именно само дерево и его обработка, а не просто ходить плоским циклом по каждому узлу объектного дерева.
Другими словами - тебе очень хотелось поумничать на ночь глядя, и лучшего повода ты не нашёл.
Продолжая разговоры с самим собой, в принципе можно просто через рефлексию ходить по дереву, но че-то несколько отпугивает идея, что у всяких стрингов тоже есть поля, а в дереве мне нахуй не всралось деревянное представление стрингов вместо "простого". Хотя хули там, чарсиквенс и нумерик заблеклистить и погнали. Да, чистая рефлексия лучше подходит.
Всем спасибо и идите нахуй, петушки :3
> кукарек
> обоснование, что кукарек пиздеж
> аррряяя че умничаешь
Найс ad hominem, неумеющая в аргументированный разговор, манька.
Как дела, деградант? Уже потерял работу?
Есть по джаве книжки вроде Ритчи С или Лафоре по ++ где сразу после темы задачи?
Свинг сам по себе MVC.
Более того, MVC там очень сильно overused.
Так что ты просто не сможешь писать на нём иначе, лол.
Читни официальный JavaTutorial, например.
Попробуй посмотри примеры (демо) в JIDE - там прекрасные образцы старого (очень старого) доброго MVC.
Если захочется использовать JIDE - можно юзать триал, скачивая его постоянно, он протухает за пару месяцев.
А можно вылечить, это несложно.
Если хочется потрогать что-то взрослое - посмотри вот это (MVVM, реактивные two-way биндинги как в Vue.js):
https://github.com/Petikoch/Java_MVVM_with_Swing_and_RxJava_Examples
https://www.youtube.com/watch?v=wjZ6xJkWD-U
Если тема реактивности интересна - скачай книжку Functional Reactive Programming на allitebooks.com.
Там много большой пример на Swing и есть гитхаб.
Но, это не для начинающих, мягко говоря.
Вот это вот видео посмотри (там MVVM вручную, на очень простом примере):
https://www.youtube.com/watch?v=-IIXlqF94WA&t=42s
Поиск на youtube сделай.
> Какие перспективы андроида?
Отличные.
> Стоит ли вкатываться в программирование на Андроиде
Станешь больше зарабатывать и откроешь для себя фриланс.
Книгу читай или иди отсюда.
Зачем? Если андрюха одна из лучших ОС
А ты он даун с мертвым мозгом, который неспособен воспринимать новую информацию?
Или все остальные ведроразработчики автоматом получат знание твоей новой ОС, которой никогда не будет?
Ну шанс того, что андроид будет ещё долго жить велик.
Например: Винда уже с 80-х годов живёт и хрен кто знает, когда она помрёт.
в остальных галочка ставитсы обычно
Method breakpoint.
Раньше ещё и предупреждали, что это очень замедляет работу. Сейчас, вроде, перестали.
Ты можешь еще писать какой угодно код в этой хуйне и смотреть на результат выполнения.
и как тогда прилепить машин лернинг в проект, где используется спринг или ее?
Нет ошибка в рантайм, это когда ошибка происходит во время выполнения программы.
Когда ты хочешь идти ебать наташек, но понимаешь, что ты не аргентинец или мексиканец и остаешься дома, то это ошибка компиляции.
Когда ты вышел и подражая мексам схватил наташку за сиськи она послала тебя нахуй и подозвала ближайшего нацгвардейца за то, что ты домогался ее, ограбил и чуть было не изнасиловал и тебя сажают на бутылку, то это ошибка в рантайме.
Хоть бы спасибо сказал за доходчивое объяснение, долбоебушка.
Да это значит что ты собрал проект под неправильный мавен. Обнови мавен и ошибка должна пройти
Сделал функцию вычисления факториала. На значении в 50к, она вызывает остановку приложения. В чем проблема, как решить?
P.S.Я знаю, что можно было там через дерево эффективней решить.
3К хуёв в час
Книги хуйня. Ставишь себе задачу. И ебашишь код.
Не можешь написать ни одной строчки. Гуглишь. Делаешь инвестигейшн. Ебашишь туториалы. Пока не напишешь задачу, не ебешься с бабами.
Ну первый же результат на стаковерфлоу. От такой глубокой рекурсии всё пидорит.
>The problem here looks like its a stack overflow from too much recursion (5000 recursive calls looks like about the right number of calls to blow out a Java call stack)
>Rewriting the factorial function iteratively should fix this.
у нас на дворе за сишное оформление в яве сортиры вилкой чистят
>что о них скажете?
собственно с ними тебе и стоит ознакомиться,
Java это наверно единственный язык с нормальной документацией и спецификацией виртуальной машины, за это её все так любят,
ну а васянские курсы и говнокнижки это лишь пересказ этой документации с дивана
А, я понял, надо было сделать статический класс МАТЕМАТИЧЕСКИЕ ШТУКИ и туда все пихать?
А, я понял, вы что ли используете тело функции {
Cпасибо, перепишу в итеративном стиле.
>язык с нормальной документацией
Господи, это охуенно. Начну тогда читать туториалы, Effective Java тоже полистаю, посмотрю как будет заходить.
Советую пользоваться идеей. Ставишь курсор на название класса, хуячишь ctrl-q и тебе сразу javadoc прямо в среде.
Или можно просто исходники открыть и почитать.
Потому, что, на самом деле, это оуенная вещь.
Если её правильно готовить, конечно.
Слово "легаси" как-то заупотребляли в последние годы.
И с нормальной инструментальной поддержкой.
Остальное всё и рядом не стояло.
Это с избытком перекрывает некоторую многословность.
Ты никогда не писал в тестах <ебуче длинное имя класса> = new <ебуче длинное имя класса>(<ебучий список параметров>)? Самого не заёбываёт?
Я кодер на ассмблере.
Держи, братишка.
https://projectlombok.org/features/val
>>16289
> Function<ебуче длинное имя класса> тройкаЧетверкаСловЗаканчивающаясяFunction = new Function<ебуче длинное имя класса>(() -> {
>
>
>
>
>
>
>
>
> });
Пофиксил тебя. А вообще уже котлин надо юзать в 20!8.
>>16290
Такие заявление антипаттерн и свидетельство пиздежа об уровне.
Слив маньки-деграданта засчитан. Оставайся в прошлом, мне же больше будет работы.
Ближе к сути, давно посматривал на Java,синтаксис похожий,все то же ооп.Хочу спросить у вас,аноны,сильно ли отличается создание приложение на андроид? Стоит ли бросать c# в пользу Java? Какие преимущества перед c#? кто будет востребованней, c# или java программист?
Java.
И, внезапно, Kotlin.
На шарпе под андроид писать - это какое-то грязное извращение.
Алсо, увидел слово Microsoft - разворачивайся, и быстро иди в другую сторону.
Ты хотел сказать "разворачивайся на 360 градусов и уходи"?
Думаешь в волшебном джава мире все будет работает с полпинка?
Будет в разы проще, это я тебе как бывший решеткохолоп говорю.
Если я хочу самостоятельно что-то изучить, мне сразу искать книги или херачиться по миру видеоуроков?
Если хочешь нормально вкатиться в жабу - читай книги. Хорстманн, Эккель, Блох - все твои друзья.
Уже вкатился, мне даже пообещали заебись денег после стажировки, но чувствую себя немного долбоёбом. Вроде стараюсь хороший код писать, а получаютя наборы костылей все равно.
Пойду про паттерны что-нибудь почитаю, наверно.
Если хочешь нормально вкатиться в джаву изучай Спринг. А все эти книжки только базам учат.
Писать скрипты норм если знаешь джаву, но не знаешь питон.
Раньше на них еще DSL писали, но с котлином это стало намного задорнее.
> На работе хотят кинуть на проект на нём.
Смотря какой.
>изучай Спринг
Пишу (backend) на джаве дохуя лет уже.
Спринг не использую и не собираюсь начинать.
Не типичный пример для России, но, тем не менее.
Groovy - охуенная вещь, не слушай дураков.
Это, наверное, один из самых практичных языков.
Насчёт "не модно" - в нынешние пидорские времена это не аргумент.
Особая фишка - 100% seamless integration with Java.
Никакие котлины и скалы даже рядом не стояли.
Я на нём пишу скрипты и тесты, например.
Всё это - с использованием своих DSL, например, для работы с БД.
Но, для больших проектов он не особо годится.
Так же, как и любой динамический язык.
Котлин, кстати, не нужен.
>Всё это - с использованием своих DSL, например, для работы с БД.
>
для работы с бд нужно sql, не фулл скан и попытка разобрать эту гору данных
Про котлин я нихуя не знаю, только с груви какой-то опыт имею. А у него не seamless integration? Я думал, на нём тоже пацаны тесты хуярят или что они там делают
Не знаю что этому грувисты вышедшему в тираж со своей динамопарашей в котлине не симлес интегрейшн.
пиздец как больно что-то в грейдле из-за груви делать
Котлин - другой язык. Как и скала.
А груви - это именно better java, и в таком виде и задумывался.
Разницу между "лучше" и "другой", я надеюсь, не надо объяснять?
Graddle - мне тоже не нравится.
Только Groovy тут ни при чём.
SBT, например, лучше, хотя тоже лютая хуйня.
И скала тут тоже ни при чём.
Этого наркомана-деграданта грельсы переехали. Груви неблохи. Строго для своих задач.
Использовать груви как беттер джава (то есть потенциал для всегда) это многопушечная артиллерия.
>Использовать груви как беттер джава
Я не предлагал его _использовать_ в таком качестве.
Я сказал, что он так _задумывался_.
Более того, чуть выше я написал, как именно его стоит использовать, и что для больших проектов он не годится.
Вообще, заметно, что каникулы у синьоров
А теперь ловим отмазывающихся наркоманов.
> А груви - это именно better java, и в таком виде и задумывался.
> А груви - это именно better java
Перевожу твое же предложение для тебя для тупых объяснение. По твоему мнению груви задумывался как better java и это и есть better java.
Ну ситуации разные бывают. Но обычно когда нет других вводных данных советую самое распространенное.
>>16693
Так основы и на курсах можно взять. Я и двухтомник Java core читал и Head First java и Шилдта. Не от корки до корки все но тем не менее. Тоже что и на курсах только более подробно. Можно ограничитться head first и каким нибудь курсом хорошим.Единственно только курсы должны быть онлайн. Ибо на оффлайн все тоже самое только в 5-10 дороже.
Да, это и есть better java - по своему дизайну.
В отличие от котлина - который есть другой язык, не важно, лучше или хуже.
И ни одно из этих утверждений не содержит в себе призыва _использовать_ тот или другой язык для ежедневного программирования в качестве альтернативы java.
Ты просто немного туповат.
И тебе кажется, что ты троллишь.
>>16718
У тебя там 2 буквы лишние в последнем слове, лол.
Как?
Сидел я примерно с сентября писал приложуху под ведро, параллельно работая в фирме. Писал несколько месяцев, примерно до мая. К этому времени еще накидал клиент-серверку которую в вакансиях просят за неделю, опыт кое-какой все таки был. Висело месяца два, не поднимал резюме, работал на основной работе. Тут мне звонят и приглашают на собеседование под ведро, перед этим прособеседовали по телефону. Затем назначили день личной встречи в компании. Пришел туда, как мне сказали, что будет только проверка английского языка и основные вопросы. В итоге туда пришел андроид девелопер и позадавал мне несколько вопросиков по моим репозиториям. В целом все прошло неплохо, но поначалу мне офер не дали, а дали чуваку у которого уже был опыт коммерческой разработки. Я уже решил не уходить с нынешней работы, и потом мне опять звонят и просят пойти к ним, типа я такой охуенный, мы без тебя не можем. Но походу их тот чувак кинул и не принял офер. В итоге я их тоже развернул и не пошел работать к ним.
Сейчас буду все лето работать в поте лица, а осенью попробую съебать куда-нибудь снова, но уже серьезно подготовившись. В планах набросать еще один проектик, но не попсовую клиент-серверку, а работу с устройствами по OTG USB. Наврят ли получиться написать что-то годное, т.к. тема достаточно сложная и не популярная. Но какой-то минимум надеюсь набросаю.
CRC- контрольная сумма пакета. Контрольная сумма подсчитывается по алгоритму:
выполнение операции XOR для всех байт блока, включая ETX, но исключая STX. Данные
контрольной суммы занимают два байта и являются символьным представлением числа
в шестнадцатеричной системе исчисления.
Так а чо развернулся и ушел?
Это не шифровние, и контрольную сумму можно считать и другими методами.
Всё немножко хитрее.
Есть достаточно много разных похожих алгоритмов для контрольных сумм.
Например, "CRC 16 CCITT".
Если ты и пишешь и читаешь - выбирай любой, исходя из разрядности данных.
Если только читаешь - то то, в котором пишут на том конце.
Если то, что ты написал в посте - это весь алгоритм, то так и делай, в чём проблема? Хотя, обычно, помимо XOR делают ещё и сдвиги.
Вот так это делается:
int crc = 0;
Для_каждого_байта {
____ int myByte = getNextByte(); //где ты там их берёшь
____ crc = crc ^ myByte;
}
crc = crc & 0xFF; //Оставляем 8 бит - 1 байт
String crcStr = String.format("%02x", crc)); //HEX string с 0 в начале
& 0xFF - это обрезка старших битов до нужной разрядности (8 бит, в данном случае).
Это специфика байтоебли в джаве - т.к. нет беззнаковых байтов, приходится юзать int'ы, а они 32-x битные.
Бля, забыл, вместо crc = crc ^ myByte
должно быть crc = crc ^ (myByte & 0xFF)
Давненько байты не ебал просто, лол.
Хотя, на самом деле, похуй, что так, что так - мы же не сдвигаем ничего, а в конце всё равно обрезаем.
Мы немножко тут побайтоебим, трогать никого не будем.
>>17309
Сдвигать ничего не нужно и шифровать соответственно тоже. Нам требуется лишь удостовериться в том, что мы не теряем данные. Работа осуществляется с контроллером STM32. В документации есть пример, где показывают как расчитывать контрольную сумму, но там чисто на пальцах, а не под конкретный ЯП.
Вот сам пример, который описан в документации:
Передать блок данных 1F 00 FF 10 02 03 1A
Маскируем байты, равные DLE и ETX (10h и 03h): <1F 00 FF 10 10 02 10 03 1A>.
Добавляем в конец ETX: <1F 00 FF 10 10 02 10 03 1A 03>.
Подсчитываем <CRC>: 1F XOR 00 XOR FF XOR 10 XOR 10 XOR 02 XOR 10XOR 03 XOR 1A XOR 03 = E8.
Добавляем в начало STX: <02 1F 00 FF 10 10 02 10 03 1A 03>.
Добавляем в конец <CRC>: <02 1F 00 FF 10 10 02 10 03 1A 03 E8
Сейчас сижу на жопе и не знаю, как сделать все более менее правильно. Как понимаю у меня два стула, создать заранее готовые команды в виде строк (а их много) и вручную подсовывать все STX и ETX, либо же программно сделать добавление по пунктам. А потом уже расчитывать контрольную сумму и двигаться дальше.
Не проще взять любую готовую сишную библиотеку как раз для этого и заюзать kotlin native?
Метод crc суммы массива занимает буквально 5 строчек с тремя параметрами: начальный байт, финальный байт для xor и сам массив. Как ты думаешь, что проще: написать эти пять строк или тащить сишную либу и котлин нетив?
Или вот с таблицей:
https://introcs.cs.princeton.edu/java/61data/CRC16.java
Охуеть как сложно. Низагуглить, нископипастить.
Заранее создавать точно ничего не надо.
Надо считать всё налету, это быстро.
Вообще, то, что ты описываешь - вполне типичные вещи для этой области.
Не вижу никакой проблемы, алгоритм совершенно детский. Разве что операции с байтами тебя пугают с непривычки.
Алсо, мне кажется, что надо ещё ETX в конце добавлять (не-маскированный). Посмотри внимательно описание. Иначе, как контроллер узнает, что пакет данных закончился?
Нет, обычно STX в начале и ETX в конце.
Для этого ETX и маскируют в теле пакета.
А длина подразумевает подсчёт при приёме, а это серьёзный оверхед для контроллера.
>А длина подразумевает подсчёт при приёме, а это серьёзный оверхед для контроллера.
Эм, инрементировать переменную в прерывании - это так дохера оверхед?
Ох бляд, забыл что у вас жаба.
Могу себе позволить.
Лол, в чём проблема превратить определённый байт в два байта при передаче?
>>17678
Это охуенно.
Но, в данном случае, в условии стоит маскирование ETX (и байта, которым маскируют ETX).
Зачем, спрашивается?
Затем, чтобы добавить ETX в конце, и использовать его как маркер конца пакета (для чего он, собственно, и предназначен).
Подобные протоколы достаточно широко используются в небольших промышленных устройствах.
Да я же не против, что протоколы разные. Но ты так говоришь, будто бы это единственный верный вариант. Modbus тоже достаточно распространен в промышленных мелких устройствах.
Нет, я имел ввиду именно конкретную задачу.
Ну, и то, что подобные протоколы создавались в далёкие лохматые годы, когда подсчёт байтов в протоколе, ориентированном на команды (не на передачу данных), был реально оверхедом.
Каждый бит экономили же, лол.
Не надо пикать.
Это же для сайд-эффектов, а то, что ты написал - это какой-то пиздецовый анти-паттерн.
Надо маппить A -> A.
Внутри map-функции модифицировать то, что надо, и не трогать остальное. И лучше - копировать элементы (не мутировать), если нет серьёзных причин этого не делать.
void calculate(function callback) {
callback.call();
}
Как это сделать? Пока сделал так
void calculate(Consumer<Void> callback) {
callback.accept(null)
}
И вызов
calculate(x -> refreshTable())
Правильно ли?
>анти-паттерн
Хотя, специально загуглил - люди так делают, лол.
Ну проверяй в peek условие, и мутируй только то, что надо.
Я не в теме просто. 8 яву завезли в марте на проект, а юзать все равно никто не умеет. пиздец, да
Надо не Consumer а Runnable.
И передавать ссылку на метод:
calculate(this::refreshTable);
Или не this, а что там у тебя.
А потом - callback.run();
Это я к тому, что твой calculate должен был бы вернуть CompletableFuture.
Типа:
calculate().thenRun(this::refreshTable)
Смысл в том, что CF - это значение.
Которое можно передавать куда-то, делать цепочки обработчиков и т.п.
А если это у вас Swing - то вообще must have для асинхронных вещей. Другой мир просто.
>так это же новый поток запускать
Нет.
Runnable - это просто процедура (void функция без параметров).
Её можно, конечно, запустить в потоке. Но, для этого нужен поток, лол.
Шо? Callable, Runnable и прочие функциональные интерфейсы никакие треды не порождают.
Машину прогревала, байтоебушка юная?
Лень гуглить и, тем более, смотреть байткод.
Но, оно, просто не может компилиться в один и тот же байткод.
Потому, что тернарный - это выражение, возвращающее значение.
А if-else - нет.
>>17970
Блядь, а ведь действительно, почти одинаковый байткод.
И, кстати, вспомнил, что уже сто лет назад это всё видел, но успел забыть.
https://stackoverflow.com/questions/4706696/which-if-construct-is-faster-statement-or-ternary-operator
Обычная задачка на вычисление високосного года:
https://pastebin.com/dwrkLMQS - тернарный
https://pastebin.com/FZEL4uRX - if-else
>>17933
В самом стрессовом тесте вот такие результатыпикрелейтед
На первом пике if-else, на втором тернарный
Расход памяти даже меньше получается.
Отличная работа, Нурлан. А теперь иди изучать как выполняется в джаве бенчмаркинг и с какими особенностями машины это прежде всего связано, и не позорься больше.
Вранье. Хватает там фриланса - всякие бэкенды на спринге. Фрилансил успешно лет 5 по 30-35$ в час.
Переехать в тот где есть
Почитай про JMH
Пиздеж.
> Хватает там фриланса - всякие бэкенды на спринге. Фрилансил успешно лет 5 по 30-35$ в час.
Прямо сейчас идешь на апворк и показываешь конкретные пропозалы.
Помогайте братушане поцоны.
Пишу тесты Мохито.
Есть класс
class Class extends AbstractClass{
method(someAbstractMethodFromParentClass){
}
}
Как мне заглушить этот ебучий method? Оно мне пишет NPE в someAbstractMethodFromParentClass напостой.
ни хуя не понял
abstract class Whore {
public void leFuck() {
System.out.println("leFuck");
}
}
class YourMother extends Whore {
}
YourMother yourMother = Mockito.mock(YourMother.class);
Mockito.doNothing().when(yourMother).leFuck();
yourMother.leFuck();
Ок. Все ты шаришь.
Но усложним тебе задачу.
метод leFuck() protected в readonly файле.
Есть хоть какой-то способ замокать протектед метод в абстрактном парент классе?
> усложним тебе задачу
Я хотел тебе ответить на вопрос, который ты мог задать гуглу и получить ответ, но с такими-то заявлениями идешь нахуй в гугл. Ставить он еще свои говнозадачи кому-то будет.
Так бля в том-то и дело, что у меня реальная такая ситуация.
Хочу протестировать removeGroup, но для этого нужно сначала замокать getCartFacade().
А я не могу этого сделать, пушто он с модификатором protected в абстрактном родительском классе, который еще и readOnly.
И бля кто-то этих протектед методов по всему тестируемому классу раскидал.
Их всех нужно мне мокать.
Синьеры, запилите решение. А то не гуглится че-то нихера.
Тебе не метод мокать надо. Тебе надо мокать CartFacade. Он же через конструктор туда передаётся? Вот и передай.
Ну и да, мокают поля тестируемого класса, а не сам тестируемый класс.
Хуя чмошник.
не 20-30, а 70-80 книг за весь цикл https://dou.ua/users/staslozenko/articles/
Из этого можно хотя бы половину скипнуть?
> 70-80 книг за весь цикл
За какой цикл? Месячный, лол?
А чего не 280? Это же больше?
Не надо читать в интернетах всяких чсвшных уебанов.
То, что они перечисляют - это просто перечисление.
Человек вспоминает все известные ему буквы, и перечисляет их с умным видом.
Можешь и ты так же делать, это не сложно.
Читать все эти книги для этого совершенно не обязательно.
цикл статей, хотя в 3 частях enterprise и основах java где-то столько книг и рекомендуется, хотя ты уже ответил, и я тебя понял
>Не надо читать в интернетах всяких чсвшных уебанов.
То, что они перечисляют - это просто перечисление.
Человек вспоминает все известные ему буквы, и перечисляет их с умным видом.
Можешь и ты так же делать, это не сложно.
Читать все эти книги для этого совершенно не обязательно.
Не расстраивайся. Ты просто тупой и всратый. Как только тебя увидит любая баба на собесе, сразу попытается от тебя избавиться.
Хз, самое очевидное - откорректируй резюме для начала.
Мне вот интересно: не студента, а великовозрастного долбоёба из пхп возьмут на такие курсы?
Алсо, какой ублюдок придумал qaru? Сука, как же он меня бесит, постоянно в начале выдачи гугла
Отбой, разобрался.
у нас за такие вопросы
Жава - это кровавый энтерпрайз, а не какой-нибудь пхп, который конторы на коленке пилят. Если самоучка и устроится сразу джуном с нормальной зарплатой, ему все равно нужно будет несколько месяцев вливаться в рабочий процесс и учиться писать человеческий код.
Простите за поток мысли.
Что мешает человеку пилить дома сложные проекты + смотреть на чужие на том же гитхабе?
Ничего. Почему я и сказал - самый простой, а не единственный.
Но, в отличие от стажировки, он будет делать это бесплатно, без советов/код ревью хороших разработчиков что приводит к повышенному риску создать велосипед на костылях и без гарантии трудоустройства.
а где брать деньги на еду? Так я бы тоже год сидел дома и саморазвивался
>где
Хуй знает, я на hh нашёл. Если ты студент, по шарагам иногда рекламируются. От города зависит.
>каким бэкграундом
Базовое понимание принципов ООП и зачем оно нужно, знание java core расплывчатое понятие на самом деле, понимать, что такое jvm. Где-то дают небольшие тестовые задания, чтобы сразу отсеять совсем долбоёбов (как правило, что-нибудь с JDBC и ещё какой-нибудь технологией)
Пока я тут сру потоком мысли в тред, ещё неплохой вариант, если самому впадлу/не получается глубоко изучить - пойти работать в сопровождение, а оттуда через полгодика перекатиться в разработку.
В таком плане главное - не засидеться в сопровождении.
С тестировщика тоже, наверно, можно перекатиться, но мне почему-то кажется, что сложнее
Нет.
Зачем фрилансить эти приложухи, если их можно спиздить и опубликовать?
Он сделает сам всё хуёво
Смысли ты рекомендуешь?
Все будут делать как ты рекомендуешь?
Каждого джуна на первой работе, бросают на тесты.
Мне все методы мохито сказали покрыть а потом интеграционные писать.
да какие тебе аргументы школьник? иди литературу на лето читай дибил малолетний
нет.
Посмотри javaops, для меня там мало чего нового получилось узнать (полгода на галере отработал), но было полезно всё-равно, скопипиздил некоторые приёмы из обучающих проектов.
>год обучения
Мне интересно, люди, которые платят, чтобы их год кормили говном с ложечки, потом вообще устраиваются на работу? Я таких ещё на собесе гнал бы в шею.
Очень много про гуи и веб-приложения (алё, 2018 год на дворе, парни)
>java-апплеты в заключительном уроке
лол
хотя в принципе неплохо
>год обучения
курс, который я смотрел - 4 месяца, хуй знает чё там у тебя за год
Так, а почему в шапке нет полезных твиттер аккаунтов известных Java разработчиков? Вот, например - https://twitter.com/zhekakozlov. Человек работал в CERN. Сейчас работает в известной компании Axmor. Пишет много полезного про Java.
Может он и хороший спец, но от чсвшых "личностей" стоит держаться подальше.
Это у меня триггер просто сработал, не обращайте внимания, по другим постам может показалось. Согласен, про ЧСВ это я зря пизданул.
Просто вон те выделенные посты на скриншоте прям так отдают "зарядкой воды от телевизора", по аналогии.
Да я пишу себе всякое говно в asp.net core, а галера, в которую я пойду стажироваться от универа целиком джаву эксплуатирует. Ну и не хочу быть полным нубом в этом деле, вот.
Не надо делать кнопками.
Надо делать спрайтами на канвасе.
Гугли java game programming book, их есть.
Вот тут посмотри, например:
http://www.allitebooks.com/?s=java+game
Например, нужно найти номер страницы, на которой будет расположен Comment с id = 100 при pageSize = 50, sortBy = "score" и direction = ASC. Можно ли это вообще как-то сделать средствами Spring Data/Hibernate? Или придётся какой-нибудь нативный йоба-запрос писать для этого? Единственное, что приходит в голову, это вытаскивать все странички по очереди и проверять их на наличие Comment с заданным id, но это, очевидно, очень плохой способ, так как слишком ресурсозатратно и медленно.
>Можно ли это вообще как-то сделать средствами Spring Data/Hibernate?
Надо знать sql в 2к18, а говнообёртки оставить для базовых crud имо
>Или придётся какой-нибудь нативный йоба-запрос писать для этого
Самый базовый запрос с row_number()
>Бураху
:)
А вообще да Валеев или Елизаров (правда в последнее время он совсем обкотлинился), или там Шипилев. Но читать их свитеры/пейсбуки так себе идея, я вот от Блоха отписался потому что он все время с трампа бомбил, нахуй мне такое читать.
Смотреть презенташки, читать статейки вот оно то самое.
Как быть если ты макака, что умеет только @Autowired?
Вас таких минимум треть индустрии, не волнуйся.
Использовать constructor injection.
а что умеют немакаки?
Собственную аннотацию? Так это просто, и в большинстве случаев слишком много ненужного геморроя
Куда катимся, ты о чем?
> и где и как юзать эти ваши var'ы, или вообще не юзать?
Использовать Котлин или Ломбок.
>и где и как юзать эти ваши var'ы, или вообще не юзать?
JS уходит от var к типизации. А эти каргокультисты наоборот, вводят var
Индусы же
Ну в Жаве (в отличии, например от C++ где нет стирания типа и надо полностью описывать все шаблонные параметры, т.е. если в жаве достаточно написать huita<> asd = ...; в C++ надо писать huita<govno, mocha<koncha>> asd = ...;) оно действительно выглядит немного лишним.
Чтобы два раза не писать типы в локальных переменных (по вызову же других методов отдельный вопрос) и названия переменных были визуально на одном уровне.
Дурачок.
тестировщиками может и возьмут
Лох.
>fetch = FetchType.Eager
>avoid eager fetching, it's bad practice!
>fetch = FetchType.Lazy
>LazyInitializationException
>hibernate.lazy_load_no_trans = true
>avoid using lazy_load_no_trans, it's anti-pattern!
>я пикрелейтед
Честно не понимаю смысл ебли с хибернейтами, когда можно просто замапить sql запросы в каком-нибудь mybatis и не париться, что он там сгенерит
мимоджун ни разу не использовал хибернет
Столько крокодильчиков написал, а так и не понял главной мысли которая за всем этим стоит - таскайте из БД ровно столько, сколько нужно и ни полем меньше.
Спасибо, ознакомлюсь
0-60 км/ч - Скорость не превышена,
61-79 км/ч - Штраф 1000 руб.,
80-99 км/ч - Штраф 2000 руб.,
100-119 км/ч - Штраф 3000 руб.,
120-139 км/ч - Штраф 4000 руб.,
140-159 км/ч - Штраф 5000 руб.,
160-179 км/ч - Штраф 6000 руб.,
180 км/ч и выше - вызов полиции.
public class RoadCamera
{
public static void main(String[] args) throws IOException
{
//Параметры программы
Integer maxOncomingSpeed = 60; // km/h
Integer speedFineGrade = 20; // km/h
Integer finePerGrade = 1000; // RUB
Integer criminalSpeed = 180; // km/h
System.out.println("Введите скорость автомобиля:");
//Скорость автомобиля
Integer oncomingSpeed = Integer.parseInt((new BufferedReader(new InputStreamReader(System.in))).readLine());
if(oncomingSpeed >= criminalSpeed)
{
System.out.println("Вызов полиции...");
}
else if(oncomingSpeed > maxOncomingSpeed)
{
Integer overSpeed = oncomingSpeed - maxOncomingSpeed;
Integer gradesCount = overSpeed / speedFineGrade;
Integer fine = finePerGrade * gradesCount;
System.out.println("Сумма штрафа: " + fine);
}
else {
System.out.println("Скорость не превышена");
}
}
}
0-60 км/ч - Скорость не превышена,
61-79 км/ч - Штраф 1000 руб.,
80-99 км/ч - Штраф 2000 руб.,
100-119 км/ч - Штраф 3000 руб.,
120-139 км/ч - Штраф 4000 руб.,
140-159 км/ч - Штраф 5000 руб.,
160-179 км/ч - Штраф 6000 руб.,
180 км/ч и выше - вызов полиции.
public class RoadCamera
{
public static void main(String[] args) throws IOException
{
//Параметры программы
Integer maxOncomingSpeed = 60; // km/h
Integer speedFineGrade = 20; // km/h
Integer finePerGrade = 1000; // RUB
Integer criminalSpeed = 180; // km/h
System.out.println("Введите скорость автомобиля:");
//Скорость автомобиля
Integer oncomingSpeed = Integer.parseInt((new BufferedReader(new InputStreamReader(System.in))).readLine());
if(oncomingSpeed >= criminalSpeed)
{
System.out.println("Вызов полиции...");
}
else if(oncomingSpeed > maxOncomingSpeed)
{
Integer overSpeed = oncomingSpeed - maxOncomingSpeed;
Integer gradesCount = overSpeed / speedFineGrade;
Integer fine = finePerGrade * gradesCount;
System.out.println("Сумма штрафа: " + fine);
}
else {
System.out.println("Скорость не превышена");
}
}
}
Потому что
overSpeed = oncomingSpeed - maxOncomingSpeed; //70 - 60
gradesCount = overSpeed / speedFineGrade; //10 / 20
Итого gradesCount становится 0, ибо 10 / 20 == 0;
Может теперь вынеси всё в отдельный класс. На параметры внутри main страшно смотреть.
Пфф. Переносишь на новую строку да и всё.
Лучше уж лишних пару раз попереношить на новую строку и попереименовывать длинные классы, чем потом мне разбираться в коде с ебучими варами.
Мне вот сейчас нужно добавить фичи в чужое, некомментированое говно, а если бы проект был на десятой джаве мне бы надо было добавлять фичи в чужое некомментированое говно с ебучими варами.
Нахуй так жить.
>>16297
Пик.
>чем потом мне разбираться в коде с ебучими варами
Тоже мне аргумент. var делает код проще для чтения, уменьшая ненужный мусор. Если от вара чтение сложнее, значит, писали его кривыми руками и надо палками бить за такое.
Лямбдами тоже можно упростить код, а можно как долбоёб летить стосрочные лямбды с тремя параметрами, но это же не повод убрать лямбы из восьмой жабы? Аналогичный аргумент со стримами.
> var делает код проще для чтения, уменьшая ненужный мусор
нет. Тип переменной больше не виден. Я начал бы добавлять суффикс с типом этой переменной, чтобы не перепутать
если тип переменной не виден в ближайшей строке, значит, ты неправильно его используешь
Не знаю, дурачок ли он, но, он прав.
Код на скале, например, требует больше усилий для чтения по таким вот причинам.
Если это не хелло-фибоначчи, конечно.
Про этот ваш ебучий язык на букву к я вообще молчу.
Какой ещё пример?
Если переменная объявлена как val без типа, и ей присваивается результат вызова some.zalupa(), то такой код читается хуёво.
Или это требует особых доказательств?
Да не агрись ты, я скалу не видел никогда, вот и хотел пример. Если там как в котлине, то итак понятно.
Хибернейт не заставляет тебя все говно таскать сразу же из БД, когда тебе нужно 1 поле, равно как и делать миллиард подзапросов на каждое лейзи поле.
var bhChangedId = dbReestrElement.GetBHChangedIdByReestrId(id, reestrType) ?? id;
var activeElementId = dbReestrElement.GetReestrIdByBHChangedId(id, reestrType) ?? id;
var result = new List<BalanceHolderElementHistoryInfo>();
var elem = Get(activeElementId, reestrType, true);
var isBhElem = elem["ACTIVE"].Value.ToInteger() == 3;
var elemHistList = ((ReestrElement) elem).GetHistory();
Давай, убеди меня в очевидности угадывания типа этой var
>Хибернейт не заставляет
заставляет. По умолчанию хибернейт вытягивает весь граф объектов. Для этого он и создан.
А вытащить менее чем все поля это оче сложно и никто такое не делает
Могу, конечно, но, речь была не о скале.
Алсо, вот такое вот - createBar - вместо createBar() - это тоже не добавляет читаемости.
Вызов функции должен выглядеть как вызов функции, иначе приходится задумываться, пусть и на долю секунды.
Читаемость - дело тонкое.
Вообще, я считаю, что хипстеры-рубиблядки, вроде Поллака, сильно изгадили скалу своим пидорским пониманием того, как должен выглядеть код.
> По умолчанию хибернейт вытягивает весь граф объектов.
Вот тут ты и обосрался, манёк. Например для коллекций дефотлтное поведение лейзи. А не всю БД тащить.
> Для этого он и создан.
Хибернейт создан для объектно-реляционного маппинга. Для решения геморроя с различием объектной и реляционной парадигм. Проще говоря для круда и сохранения графа объектов.
> А вытащить менее чем все поля это оче сложно и никто такое не делает
Может у тебя в говноконторе, где срать хотели на производительность, бо больше 1 RPS никогда не бывает, так и не делают, но ты не суди всех по своему говноопыту когда даже ты толком ORM-инструмент использовать не умеешь.
При этом в описании четко сказано
@interface OutputFiles
This will cause the task to be considered out-of-date when the file paths or contents are different to when the task was last run.
Версия 4.8.1
Ты че, дурак? Что функция возвращает - такой и тип у var. Другое дело, что код - говно, что с выводом типов, что без.
>Что функция возвращает - такой и тип у var
Настало время чудесных открытий.
>Ты че, дурак?
Дурак здесь ты, ибо даже не понял о чём речь, но спешишь поделиться своим ценным мнением.
Я - другой анон, если что.
Есть смысл регаться в LinkedIn? Есть русские компании, которые выкладывают вакансии/просматривают резюме в linkedin, но не на hh?
Потому что из-за требовательности к ресурсам Джаву могут позволить себе только всякие корпорации для своих корпоративных хайлоад приложений.
переключать кодировки джавака и командной строки пробовал - отображает кириллицу из джавы только при кодировке 65001, либо при запуске командной, если не пытаться её менять, но с ошибками(в данном случае нет заглавной буквы. в других - повторяет половину строки, повторяя за ней ещё четверть и\или знаки вопроса). менял на 866, на 1251 - там вообще кириллица в монстров превращается.
в гугле такой проблемы не нашёл - у всех всё решается просто сменой кодировки.
вот результат, если не использовать заглавные буквы.
т.е. с заглавными файл не компилируется вообще, т.к. "неизвестный символ", без заглавных - кривое отображение, и только при 65001 кодировке.
Мне кажется у вас какая-то неправильная кириллица в исходных данных
Потому что безумцев нет платить левым хуилам месяц пока они будут вникать в проект, а потом доверять этим же левым хуилам изменение ядер продуктов, их логики и так далее. Это тебе не фронт, где если сделать плохо, то результат будет виден сразу и в крайнем случае работодатель на приемке расстроится.
Не слушай местных хуесосов. Зайди на upwork и вбей java или spring. Результатов не меньше чем этих ваших реактов и жабаскриптов.
Просто часто ловлю себя на мысли, что есть какая-то задача и я сижу как головоломку подбираю к ней решение, хотя наверняка есть какой-то алгоритм, зная который я бы за 10 секунд все набросал.
То, что тебе нужно - хорошая книга по алгоритмам.
Могу посоветовать начать с Algorithms Unlocked.
Автор - тот же что и у знаменитой Introduction To Algorithms (MIT), но это упрощённый вариант для начинающих.
Язык программирования там - псевдокод.
Иди нахуй, долбоеб. Опшионалс годнота за счет клевого функционального чейнинга.
Ты просто необразован, и не умеешь это готовить.
Optional - это монада.
Это работает в сочетании с стримами, например, и прочими подобными вещами.
Рекомендую читнуть Functional Programming in Java, чтобы не быть обезьяной.
Потому что там нет нихуя. Вот реально. Если ты говоришь правду, что тебе должно быть не трудно.
Поэтому ты сейчас идешь и тащишь примеры работ. Вот только ты не найдешь нихуя.
В чём разница между методом и конструктором?
В том, что метод - это не конструктор.
Или ты static factory method имеешь в виду?
И он тоже не конструктор, лол.
ссылка случайно прикрепилась
Конечно, по работе ты будешь очень часто смотреть существующие решения, главное что бы ты мог понять что к чему и почему, а не тупо копировал со стека.
Посмотрел и вкурил эталонное решение.
Как по мне, оно гениально, но я хз, как бы я применил такой подход на повседневных задачах.
Если что, вот описание задачи:
https://pastebin.com/eXXvSq3F
Это с CodeFlights, задача на собеседование от гугла.
>>24336
Вот решение
https://forum.thecoders.org/t/an-interesting-coding-problem-in-codefights/163
В комментах автор поясняет суть происходящего
Почему ссаные байтоёбы никогда не могут нормально оформлять код?
>A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
А что так? Почему на апворке 500 работ требующих ASP.NET и только 100 с Spring Framework?
Ты где так устроился за 60к джуном? Ты троллишь чтоль?
>int вместо byte
int там по условию задачи идет
>хранения булевых значений по модулю числа
Я не понял твоей придирки. Он редактирует существующий массив, не заводя новых переменных и не засоряя память -- что не так?
Спринг это тырпрайз и внутренние продукты куда левых хуил хуй впустят поговнокодить. Это тебе не лендинг запилить.
Просто меня не слишком устраивает стандартная схема БД, которую требует Spring при использовании встроенных классов.
>хранения булевых значений по модулю числа
Такое условие задачи - константное потребление памяти, он тупо не имел право выделить еще.
>>24805
>Он редактирует существующий массив, не заводя новых переменных
Мутабельность часто бьет по ебалу, в одном месте поменял, а из-за того что ссылка то одна и та же поменялось и в другом месте. В такой задачаке конечно не страшно.
>надо %хуйня_нейм% чтобы взяли джуном?
Ну йобана, КОКАЖМОЖНА.
Чтобы взяли джуном КУДА-ТО, нужно спросить предыдущего, совсем недавно взятого в это КУДА-ТО джуна и повторить его достижения.
Это шутка была, но люди порой довольно отзывчивы.
У контор требования разные же, иногда диаметрально: кому-то и студент-долбоёб сойдёт, кому-то всем приличным негосударственным господам твой опыт работы и гит важен, госструктурам - корочки. Опять же - разным конторам - разные градиенты этих областей.
Щоб тоби было, чем заняться, для начала напиши дипломную приложуху примерно до уровня других дипломных приложух.
Потом подумай, как внедрить в неё побольше тегов из строки скилзов на странице вакансии твоей мечты.
Как внедришь и заставишь работать - неси эту хуйню на собеседование и рассказывай, как чо работает.
Это засорило бы и без того "кацкерское" решение. Не очень понял в каком байте ты собрался менять знак, но вотева.
> Не очень понял в каком байте ты собрался менять знак
Я про целочисленный тип byte, о котором писал выше
Не нужен.
Конфиг сервера авторизации https://pastebin.com/8rcNfwSJ
Проблема была в том, что refresh_token_validity было -1. Я просто где-то читал, что если поставить в token_validity/refresh_token_validity 0 или отрицательное число, то токен/рефреш токен будет бесконечным.
Кстати, вот тут это и написано https://github.com/spring-projects/spring-security-oauth/commit/d8cb5c4dab0c7f296da1111dd150616510e5ae7e
>If a DefaultTokenServices or a ClientDetails has a refreshTokenValidity
less than or equal to zero, it will result in a non-expiring
refresh token.
Почему не работает?
1. Реализуй вот это. Должно работать так
2. Не получилось? Ну ты хуй, смотри как надо
3. Теперь понял? Тогда допили ещё это
Заранее всем нефти, посоны
Спижженый с епама курс спринга от ткача, например: https://www.youtube.com/channel/UCdXqgQdGW5go6nkkBbUVSMA
Effective Java (2nd Edition) by Joshua Bloch
аноны, почему второе издание, а не третье? или это у вас фак устарел?
За сим вопрос: что делать? HH - норм сайт для поиска или нет? Может, написать пару микропроектов и добавить упоминание о них в резюме и писать о них в письмах?
Какие советы можете дать?
>multitrading
В резюме так и написал?
>Может, написать пару микропроектов и добавить упоминание о них в резюме и писать о них в письмах?
Если у тебя нет ни опыта работы, ни примеров кода, твоё резюме выглядит очень так себе
>Какие советы можете дать?
Пиши кратко и по делу, не забывай сопроводительные письма.
спасибо, тогда перехожу на третий. все равно только вступление успел прочитать. ебаный английский
>В резюме так и написал?
Вообще не писал об этом, последние 10 вакансий, на которые я откликался, этого не требовали
>Если у тебя нет ни опыта работы, ни примеров кода, твоё резюме выглядит очень так себе
Понял, добавлю существующие, напишу чего нового. Стоит добавлять незначительные вещи, по типу реализации алгоритмов [spoile]Алгоритм Бойера-Мура и Кнута-Морриса-Пратта с визуализацией[/spoiler] или лучше пару крупных Курсовые, например, онлайн чатик и т.д.
>Пиши кратко и по делу, не забывай сопроводительные письма.
Так и делаю
>>25778
Позволяет менять значение переменной внутри другого потока
>Позволяет менять значение переменной внутри другого потока
неправильно. Любую переменную можно менять внутри другого потока
Мы вам перезвоним.
Спецификации Java позволяет JRE сохранять локальную копию переменной в каждом потоке, который ссылается на нее. Можно считать эти копии переменных похожими на кэш, помогающий избежать проверки главной памяти каждый раз, когда требуется доступ к значению переменной. С volitile любая перезапись переменной будет осуществляться прямо в память, минуя кеш
Кому? Если тебе, то ничего особенного в нем нет. Обычный шаблон HH-ого резюме. Перечисление навыков MySQL, ООП, коллекции, уровень английского, моя шарага. Это правда все, что там есть
Так у тебя же ни хуя в нём не написано, просто ни хуя, ни про мультипоточность, ни про коллекции. Тупо три тега стоит.
Выкинь эту мусорную вторую строку, вкопипастить туда свои
> core, collections framewok, знаю про иерархию исключений, шарю в алгоритмах, немного multitrading, servlets, MySQL достаточно хорошо, ну и англ на уровне upper intermediate только multithreading правильно напиши
, напиши, что увлекаешься жабой уже n лет, например.
Там должно быть написано, что ты знаешь/умеешь и чем ты лучше сотни других таких же резюме, а не три ленивых тега и что ты в игры любишь играть.
вдогонку, там есть кнопка "обновить дату". Я так понимаю, она нужна, чтобы HR-ы сами находили мое резюме. Смотрят ли HR-ы на дату обновления резюме, если я сам откликаюсь?
понял, спасибо
Просто кликай её когда можешь. От этого зависит высота в списке результатов
никакой корреляции, хули доебался?
>джун-экстраверт
"Эта хуйня что, ещё и разговаривать со мной будет?" - человек, смотрящий резюме probably
Расклад следующий, имеется приложение на spring boot, которое интегрируется с парочкой сервисов. Нужно как-то протестировать взаимодействие между этими сервисами и корректную работу бизнес логики.
Есть вариант накидать интеграционных тестов где будем поднимать необходимые сервисы в виде докер контейнеров.
Нормальный вариант?
Мне тоже интересно, когда может понадобиться создавать приватные переменные именно в конструкторе, а не в поле класса.
Ты уверен, что не опечатался?
В поле класса, да. Так нахуя мне нужны геттеры и сеттеры? Могу же просто их доступными где мне нужно сделать.
Я сам не шарю, но думаю так-Инкапсуляция (англ. encapsulation, от лат. in capsula) — в информатике упаковка данных и функций в единый компонент.
Плюс для читаемости кода, возможно, чтобы было видно что откуда берётся, если многое людей пишут
ох лол, какие моки? перечитай еще раз что я написал.
>Может, написать пару микропроектов и добавить упоминание о них в резюме и писать о них в письмах?
Всмысле "может"?
Конечно стоит это сделать, сильно не всякий работодатель даст тебе хотябы тест, не увидев, как ты вообще проектируешь пишешь.
1) Постарайся добавить всю хуйню, которая относится к разработке. Ты в посте много чего написал, а в навыках не всё указал.
2) Постарайся убрать всю хуйню, которая НЕ относится к разработке. Похуй всем на твои книги-игры. Просто подумай дважды: хотел бы ты работать там, куда тебя взяли за богатый внутренний мир, а не за навыки?
Бичез донт ноу баут май ИНКАПСУЛЯЦИЯ.
Бичаз любят срать мне в переменные своими корявыми методами прямо в процессе исполнения.
Бичаз такие процедурные.
Это мой первый ЯП. Через n месяцев планирую вкатываться джуном за сухарь. Всё правильно делаю?
Геттер и сеттер я в классе перепишу, когда логику менять буду. Может внутри класса я даже ТИП ПЕРЕМЕННОЙ СМЕНЮ НУ НИХУЯ СЕБЕ,
а геттер тебе его пережуёт в привычный формат, чтобы твоё поделие не наебнулось с таких кульбитов.
А если ты будешь брать переменную напрямую, то ты внезапно можешь вовсе не обнаружить её однажды. Или обнаружить вовсе не её. Или и то и другое.
И будешь лезть в мой 8 "б" класс, чтобы узнать, как нынче модно именовать переменные, и после этого переписывать ВСЁ своё дерьмо в своих классах.
Так что настоятельно рекомендую тебе ебанько брать значение методом, а не присваиванием.
Покормил.
И как часто ты меняешь имплементацю геттера, мамкин менятель? геттеры и сеттеры это антипаттерн
Ты шо, маня, совсем ебанулся? Ты же не собираешься менять переменную статическими методами?
>Сэттер предупредит, если ты собираешься записать хуйню
А есть либы для преобразования моей хуйни в то, что нужно сеттеру?
Я тебе к тому написал, что геттером ты и так возьмёшь первичный формат, Алёша, если ты не изменишь переменную статическими методом.
не подскажешь, где можно спиратить ее?
>геттерами собрался версионирование поддерживать
А ты в своих версиях только ошибки исправляешь?
Интегрировался более чем с одним сторонним проектом?
Тут под каждого госпетуха почти что отдельный API. Каждые полгода новый, блядь.
Я так вспотею прописывать в самом теле всю логику определения, какой же сервис у меня запросил данные, и в каком виде их ему предоставить.
А так - getHuinya выводит Хуйню, getLutayaHuinya - лютуюХуйню, getPoebota - Хуйню, но с орешками, getPizdecPoebota - хуйню с орешками в глазури.
Только вот вся хуйня давно уже лютая, с орешками и в глазури. А мне чистить её приходится, чтобы бывалые клиенты не подавились с непривычки.
В сеттерах делают проверки на валидность/распиливание сложного объекта по полям, в геттерах каст в правильный тип и прочие преобразования. Когда у тебя в нескольких местах кода требуется произвести нечто подобное, правильнее будет запихать логику в объект с данными.
Если говорить о кровавом энтерпрайзе и соответственно бинах, в тестах сеттерами устанавливаются всякие инжектящиеся проперти, а из геттеров получают разного рода генерируемые значения.
Ну и нахуя тебе столько гетов, когда можно в теле класса определить под каждую хуйню свою переменную?
>нахуя тебе столько гетов, когда можно в теле класса определить под каждую хуйню свою переменную
И каждую переменную преобразовывать из исходной в теле класса?
Ебать ты довоевался. Геттеры внутрь запихал и доволен, ведь геттеров нет.
Таблетки пей, валенок.
Что-то поздновато ты триггернулся, там уже 15 постов до этого шизик школьнику поясняет за легаси.
Ты говна вьебал? Нахуя тебе преобразование переменной? Сразу как надо её объявить не судьба?
Хмммммм, убогое нетипизироаанное говно, которое невозможно поддерживать с некро ООП или язык белых людей?
Питушок, плиз. Скоро Джава отправится на свалку истории, а тебя вышвырнут нахуй с работы. Ибо JS это лучший язык в истории.
Нода лучше, если:
а) проект небольшой и
б) проект никогда не дорастёт до большого или компания готова платить за переход на нормальный серверный язык, если дорастёт
А теперь посмотри на рейтинг популярности языков в принципе, мудила. Там почему-то Java на третьем месте, а ВЕСЬ js на седьмом, не говоря конкретно о твоей обосанной ноде.
Сам разобрался в своей тупизне.
>какая-то хуета точка ру
теперь пройдёмся по её источникам
java - 16%
javascript - 2%
какой-то хуёвый рейтинг имо, кого ебёт сколько раз ищут язык в гугле? Школьники и студенты не отображают реального состояния вещей
но тем не менее, жаба там тоже на порядок выше.
>GitHube
На этом я закрыл твой говнобложек, сорян. Подрасти, научись юзать гугл вместо яндекса.
Рейтинги бывают разные, например, стековерфлоу показывает, что уже как 2 года популярность js и python растет, а популярность java и c# постепенно снижается.
https://play.google.com/store/apps/details?id=wiki.algorithm.algorithms
Ну и чё ты пришёл сюда блядь? Каждый тред по десятку войтивайти приходят поныть, как они ни хуя не делают и всё сложно, и дальше чё? Тебя бедняжку пожалеть, что ты резюме отправишь ссышься? Бесишь, сука.
Да похуй же как объясняется, хоть на слониках и собачках. Главное - чтобы было понятно
Читаю вместо книг лекции на образовательных ресурсах и там же прохожу тестики.
Какие подводные?
inb4 теоретик хуев
А чому не JS, тогда уж? Он полегче будет, но при этом самый популярный и востребованный из лёгких
Собственно можно и 8 изучать. После 8 особых нововведений и не было
Даже не представлял насколько охуенной может быть статическая типизация
Привет, вкатываюсь в джаву понемногу, вопрос такой:
что окажется полезнее для имеющего опыт процедурного мартыханства - Core Java Хорстманна или Thinking in Java Эккеля?
как стать экстравертом?
>С одной стороны в вакансияй висят все эти фреймворки, с другой на собесах спрашивали за алгоритмы.
Кстати очень типично для рашкокомпаний спрашивать для галочки, просто чтоб заебался. У меня почему-то европейские компании знания алгоритмов не спрашивали. Что не удивительно, когда ты придешь на работу и спроси - где же применяются эти ваши распрекрасные знания, что вы спрашивали, тебе начнут затирать про важность основ и посадят за настолько кривой легаси, что какие там алгоритмы - там бы просто нормально написать, вменяемо, было бы большой удачей.
Это "скоро" может ещё лет 100 тянуться, так что похуй.
>Система онлайн банкинга это морда для 3 mysql таблиц?
Почти , только вместо mysql - db2 на System/Z+Symmetrix, а морда написана с использованием всех возможных J2EE интырпрайз-паттернов и крутится на websphere c обязательным применением всего купленного с попилами IBM-стека.
И всё это адово тормозит.
Для банков победнее System/Z+db2 в стеке меняется на постгрес+какой-нибудь ебанутый брендовый штеуд вроде циски ецс и СХД попроще симметрикса, а стек межделмаша меняется на стек красношляпы (жидбос и вотэто всё).
И всё это по прежнему тормозит.
И вот чтобы на всём этом иметь бабки, нужно не программистом интернет банкинга идти, а устраиваться к бандосам в КРОК и всю вышеупомянутую хуету банкам продавать.
Это копия, сохраненная 28 августа 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.