Это копия, сохраненная 5 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ?
A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.
Сейчас все советуют Hyperskill. Более продуманный план обучения. Но, как и любой %COURSENAME% не гарантирует тебе успешного вката. Выучиться можно и самостоятельно, не отдавая свои кровные васянам-наставникам.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред. Но в последнее время увеличивается количество вакансий на удаленке в связи с ковидом. Но, возможно, как вся эта мракобесия закончится, всех обратно загонят в стойло.
Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать?
A: Книги: https://libgen.is
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо?
A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко объявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять раз скопипасти этот кусок кода и выведи в консоль". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Пока читаю, все понимаю, а сам ничего сделать не могу. Что делать?
A: Практика, больше практики. Уровня laba1.pas: http://codingbat.com/java http://codehunt.com https://hyperskill.org все говно, есть литкод Примеры той-проектов: http://eax.me/programming-language-learning/
Q: Я выучил кор, достаточно ли этого, чтоб взяли на работу?
A: Лол, конечно нет. Вот майндмап с джава-технологиями: https://coggle.it/diagram/WqgTTNMJtPiHph_q/t/java-development-in-2018
Q: Слышал, SQL знать надо обязательно. Где его учить?
A: Начни с малого: http://www.w3schools.com/sql/default.asp Затем переходи к: http://www.sql-ex.ru/
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут.
A: Не все конторы дрочат на подход Яндекса который спиздил подход гугла. Но для крупных фирм знать алгоритмы маст хев уже на уровне джуна/трейни, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Q: Я готов к первому собеседованию.
A: Проверь свои знания здесь: http://www.quizful.net/test И здесь: http://www.careercup.com/
Q: Вопросы на собеседование.
A: http://jsehelper.blogspot.ru/2016/01/blog-post_59.html : куча вопросов с ответамине всегда правильными http://becomejavasenior.com/blog/2015/07/01/327-interview-questions-java-developer/
Перед тем, как задать вопрос Как вайти в айти?, ознакомься с вики:
https://github.com/qqqlll/Java-Thread/wiki
https://github.com/random76/Java-Thread/wiki
Видишь аниме в шапке? Значит каноничный.
Мертвый тред мертвого языка.
codecunt
что-то вы переборщили с рисованными жинками
Кринжовая шапка, а книги с упражнениями опять забыли! Оп - посох.
Смотрите, во всех гайдах итератор из коллекций присваивают в интерфейсную переменную, к примеру:
Iterator iterator = stringArrayList.iterator();
Я раньше с интерфейсными переменными не сталкивался, почитал про них, но задался вопросом. Ведь если есть объект итератора, который отдаёт iterator(), то есть и класс, который этот объект породил. Так вот, как мне создать переменную с типом этого класса и присвоить в него объект, который отдаёт iterator()? Я порылся в классе ArrayList, и там внутри есть класс Itr, но он приватный, следовательно я нихуя не смогу создать такую переменную, выходит? типа Itr itrerator = stringArrayList.iterator() Только присвоить объект интерфейсной переменной? Или я где-то ошибся и не то смотрю? Просто странная херня какая-то, вроде есть объект, а мне его некуда положить, кроме этой самой интерфейсной переменной.
> я нихуя не смогу создать такую переменную, выходит?
Да, в этом и смысл инкапсуляции, что ты не знаешь конкретный тип и работаешь через интерфейс.
Ты ничего никуда не кладёшь. Всё уже положили за тебя.
Ты получаешь _ссылку_ на значение.
И эта ссылка имеет какой-то реальный тип - тот самый приватный класс.
Но, ты этого не знаешь (и не должен), и просто работаешь с ней, как со ссылкой на объект, реализующий данный интерфейс.
Более того, один и тот же объект может реализовывать несколько интерфейсов. И ты можешь с ним работать, как с одним или с другим или с третьим интерфейсом.
>Да, в этом и смысл инкапсуляции
А разве там не смысл в объединении полей и методов, а так же разграничении их видимостей?
>>1903853
>Ты ничего никуда не кладёшь. Всё уже положили за тебя.
>Ты получаешь _ссылку_ на значение.
Ошибся в своём посте, извиняюсь, забыл про ссылочный тип.
>Но, ты этого не знаешь (и не должен), и просто работаешь с ней, как со ссылкой на объект, реализующий данный интерфейс.
А почему так? Почему кто-то сделал такую реализацию, когда я все-таки имею доступ к объекту приватного класса, но только через его ссылку с типом его интерфейсов? В чем суть таких ограничений? Чтобы я сам не мог создать объект приватного класса?
> А разве там не смысл в объединении полей и методов, а так же разграничении их видимостей?
Я проебался чуток, не инкапсуляция. Не настолько важно, как это называется в ООП, просто ты абстрагируешься от конкретного типа и работаешь через интерфейс.
> Почему кто-то сделал такую реализацию, когда я все-таки имею доступ к объекту приватного класса, но только через его ссылку с типом его интерфейсов?
У этого больше плюсов, чем минусов. Ты можешь думать об итераторе как о самостоятельной сущности и передавать его в любой метод, который принимает любые итераторы. Работая же с конкретным типом далеко не уйти.
>А почему так?
Тебе уже ответили, но, я добавлю.
Это один из основных принципов хорошего дизайна в ООП - разделение интерфейса и его реализации.
Код "на той стороне" может меняться как угодно, и тебе это не создаст никаких проблем, т.к. этот код соблюдает свой контракт (реализует интерфейс).
>я все-таки имею доступ к объекту приватного класса
Нет, ты _не_ имеешь доступа к объекту приватного класса.
Только если через reflection, но, это другая тема.
Ты имеешь доступ к _некоему_ объекту, и всё, что ты можешь о нём знать - это то, что он реализует данный интерфейс. И всё. Ничего другого (не предусмотренного интерфейсом) ты сделать не можешь.
я так и не понял как джава выглядит, картинки разные же
Кодстайл на первом пике ужасный, конечно.
>>1904322
По мне так второй пик подходит больше всего: серьёзная, строгая, не прощает ошибок, действует наверняка.
Действительно, почему же он не может найти работу с голой джавой в 2021 году? Айти фсе
серьезная, строгая - это жава 1.4
а 15я жаба, с лямбдами, дженериками и ломбоком в жопе уже не та
дто никогда не должно наследоваться от энтити, т.к. суть дто как раз-таки в том, чтобы отображать пользователю только нужную ему информацию, отсюда следует, что в дто может и не быть полей энтити
самый простой пример @Entity User и UserDto, где в энтити содержится поле пароля, а в дто - нет
вообще по возможности избегай наследования. Сделай конвертер, в конвертере добавление дополнительной информации.
Есть либы для автоматизации создания конвертеров, например mapstruct
Там, в целом, нормальные вопросы.
Но:
- Русская терминология
- Местами некорректно сформулированы
- Несбалансирован уровень сложности
Нужно всячески избегать русскоязычных источников информации.
Вот например:
- Где и как вы можете использовать закрытый конструктор?
Какой закрытый конструктор, сука? Кто его закрыл, блядь?
Private is not closed.
Расскажите про классы-загрузчики и про динамическую загрузку классов.
Чочо бля?
И так далее.
Надо просто не переводить джавистские термины, если уж делать русский контент.
Окей, может это и не ДТО. Суть в том, что объект именно этого класса содержит дополнительную информацию.
Отпиши проблемы, которые возникнут с модулями. Кстати, новый год уже наступил.
Как там палеозое?
Ох, как же хорошо что выкатился из этого засилья дедов не способных к изменениям
Если тебе нужно именно объект того же класса[/i, но, с дополнительными полями, то, надо сначала подумать - зачем?
Дополнительных полей в том же классе нет, и, чтобы их использовать, надо использовать другой класс.
В любом случае, есть всего три возможных варианта:
- Entity будет просто публичным свойством. Чистая композиция.
- Делегирование - entity будет приватным свойством, и его методы будут делегированы наверх.
- Наследование.
Многое зависит от того, сделано ли у тебя всё на интерфейсах или на конкретных классах.
И куда же ты выкатился?
И что такое есть в java > 8, что стоило бы траты времени?
Я вот ничего такого там не увидел за все эти годы.
> Optional
Ну, вместо варов и прочей ненужной хуиты им стоило бы добавить что-то из синтаксиса скалы для работы с монадами.
А то монады сделали, а сахарку - хуй.
Вот колхозники и бугуртят.
в goвно
> что стоило бы траты времени?
вот это ключевой момент, про который я и писал, что деды не хотят обновляться, потому что там типо ничего важного нет, а новые баги можно собрать
Как бы я согласен, что после 8 джавы нет каких то новых супер крутый фич, как в 8. Но тут дело привычки, есть всякие незначительные библиотечные функции, те же вары, которые на первый взгляд выглядят как говно, и то что они вообще не нужны в жабе, но если начать использовать привыкаешь
Собственно меня это и заебало, что ты сидишь и у тебя ничего нового в языке фактически не просиходит, потому что поднять версию это целое событие
Стандартная.
Двачую, что там по няшным маняме темам? Только чтоб читабельно было.
>в goвно
>заебало, что ничего нового в языке фактически не просиходит
Туда ли ты выкатился, пацанчик?
Го - очень консервативный язык.
Специально таким задуман.
Сказки про го-2 - это именно сказки, чтобы сгладить бугурт неосиляторов б-жественного минимализма.
Что за проекты у тебя сейчас на го, кстати?
Тоже подумываю о перекате.
Долго не буду описывать. Крч, я вкатывальщик/свитчер.
Учу 4 месяца java. Уже вот-вот мб устроюсь даже.
Только у меня как-то все из под палки делается. Все ждал (и сейчас продолжаю ждать) что станет интересно, но пока чет не очень-то интересно.
Но я все равно не забью/не откажусь от джавы. Потому что остальное меня интересует еще меньше.
Ну так вот, вопрос:
Что вы делаете, когда мотивация/интерес к языку падает?
Как подстегнуть интерес к кодингу?
Мб как-то обмануть мозг можно?
Если я делаю расширяющее приведение, но в классах-наследниках методы родителя были @Override, то в доступных методах объекта будут вызываться методы родителя или уже предопределенные методы потомка?
Простейшая регулярочка без рекурсии и прочего (я специально удалил все кроме href) умирает с .find(). Она где-то там уходит в вечный цикл и вяло грузит процессор.
Регулярочка с текстом: https://regex101.com/r/EFoRah/1
Вот что скачивается (тот текст): https://cheatsheetseries.owasp.org/News.xml
Ну и репл: https://repl.it/join/ilxryqwa-lebonbus
Я чуть продвинутее начинающего и не понимаю почему оно умирает. Это проблема разрешимости и вычислительной сложности? Или JRE15.0.1 забагованный? В Java другие методы для поиска подстрок есть (кроме методов String)?
Хватит парсить хтмл регулярками.
Ты уверен, что задачу скачивания википедии никто до тебя не делал? API Википедии смотрел?
каждый день как на каторгу. Пытался выкатиться на завод - там ещё хуже. Стройка - там тяжело и холодно. Так и живу и каждый день заставляю себя ковыряться в говне
>>1905783
Аноны, я такое же ленивое хуйло, так возможно помогу советом.
Вообще говоря, понятное дело, что программирование довольно рутинное и не слишком захватывающее занятие, но возможно дело в том, что у вас проблемы с нейрохимическими процессами, например вы потребляете много дешевого дофамина, и от того не получаете его от других вещей успехи в выполнении рабочих задач, например. Не буду рекламировать, но в интернете куча лекций и вебинаров за относительные копейки, которые рассказывают, как нужно менять свой образ жизни. Небольшой результат может дать.
К примеру, сильнее всего мотивацию убивает алкоголь, вещества и просмотр порно я не из секты нофапа, но просто не злоупотребляйте этим. А, к примеру, простые отжимания по утрам вам очень хороший буст на день дадут.
Если ты без троллинга пишешь, то это действительно может быть частью твоей проблемы. Хотя может у тебя либидо очень высокое и это норм. Ну хотя бы не смотри на голых тяночек в холостую.
Я другой анон, но это не просто часть, а корень моих проблем. Причем делать с этим что-то смысла я уже не вижу.
>
Дрочка да, стараюсь удерживаться до 1го раза в неделю. Алкоголем не злоупотребляю, никогда не пью один. Тем самым, выпивка примерно раз в 2 недели, в среднем. Сиги не курю (хотя, задумывался даж начать. Говорят, никотин концентрацию улучшает).
Спортом занимаюсь.
Но еще всякие беды с башкой типа СДВГ мне мешают.
Ну и какой-то ебанутый страх.
Вот собираюсь я учить Spring, а сам себе заранее навыдумывал, что он сложный и не подъемный. И тупо целый день даже сесть за него не могу. делаю все что угодно, лишь бы не то что надо
если не дрочить каждый день - то на работе появляется желание подрочить и посмотреть картинки
Так я так и делаю лол.
> Причем делать с этим что-то смысла я уже не вижу.
Ну если бы ты не видел смысла, то ты бы не писал об этом в жаба-треде. А так все в твоих руках. Я - это ты, но который начал справляться. Что тебе мешает?
>>1905826
>появляется желание подрочить и посмотреть картинки
Это не у тебя появляется желание, а у твоего базового мозга млекопитающего. Человек то очень хитрое по устройству существо, и наш мозг очень хорошо умеет считать соотношение затраты энергии/поощрение (дофамин). У мужчины одна из базовых целей - оплодотворение для увеличение потомства, поэтому когда ты открываешь порносайт, где дохуя бегает потенциально оплодотворяемых девочек, то твой мозг говорит что ты делаешь все правильно и даёт тебе конскую порцию дофамина. И за этой огромной дозой, небольшое дофаминовое поощрение от написания строчки кода ты потом хуй почувствуешь.
Короче, не хочу оффтопить в треде, если интересно - самостоятельно поизучайте сабж.
>>1905824
Так в этом и фишка, что ты начинаешь с малого. Весь твой полезный день - превозмогания, в той или иной степени.
>>1905825
>Вот собираюсь я учить Spring, а сам себе заранее навыдумывал, что он сложный и не подъемный.
Анон, ну тебе неплохо бы мозгоправу, наверное.
>И тупо целый день даже сесть за него не могу. делаю все что угодно, лишь бы не то что надо
Хотя мне кажется, что у тебя может быть классическая прокрастинация, что тоже нихуя не просто, на самом деле. Копай в эту сторону мб.
>Что тебе мешает?
Мне кажется моему мозгу уже нанесен непоправимый ущерб. Учитывая, что я с подросткового возраста дрочу почти каждый день и не останавливаюсь, это все имеет какие-то последствия.
А какие категории в порно тебе нравятся?
>Учитывая, что я с подросткового возраста дрочу почти каждый день и не останавливаюсь, это все имеет какие-то последствия
Я думаю, что это и близко не настолько критичный аргумент, чтобы так негативно судить о своих возможностях. Может тебе оно и не во вред. Да и, возможно, тебе ничего не мешает уменьшить частоту всего фапа, если она избыточна. Но за такими обсуждениями тебе уже в /sex или /me.
>Начал дрочить уже после совершеннолетия
Ты ничего не перепутал? Я фапал еще в детстве, в 11-12 лет точно.
Нет, у меня одна мысль о фапе вызывала рвотный рефлекс, хотя соответствующие картинки всё равно иногда смотрел лет с 15. Раз в одну-две недели кончал во сне и шёл менять трусы.
>расширяющее приведение
Не надо использовать такие слова.
Не умничай, просто скажи что приводишь к типу субкласса/потомка.
>предопределенные
Пере-определённые
Да, если кастуешь к субклассу, они и будут вызываться.
Иначе - какой в этом смысл?
>>1906022
Тебе бы к психотерапевту.
Какая-то детская травма.
Добавлю, что тут есть контр-интуитивные вещи.
"Расширять" и "супер" - кажутся близкими словами.
Но, в ООП - это противоположности.
Субкласс (потомок) расширяет набор свойств суперкласса (предка).
Но, одновременно и сужает область его применения.
Поэтому, слова "расширять" и "сужать" лучше просто не использовать.
Ну хз, меня пока все устраивает. Тут скорее вопрос в том, что в джаве то есть сахарок в новых версиях, ты пытаешься заставить команду обновиться, а в тебе выливают рассказы про то, что сколько багов можно поймать. В го сами проекты более модно молодежные стартаперские, да и ребята кто работает помоложе.
> Что за проекты у тебя сейчас на го, кстати?
Ну вообще тут это деанон, но да похуй, одна такая компания из 4 букв, у которой почти все на голанге
Из того, что конкретно нравится в го после джавы, так это отсутсвие магии спринга, какое то большее ощущения контроля над тем, что ты пишешь
Желательн, на русском
А мне говорили наоборот, что это последняя надежда джава-мира, потому что шарпы как раз развиваются, вводят крутые фичи, а джава просто стоит на месте и сосёт бибу.
И что если бы не котлин, то все чёткие модные пацаны бы уже свалили с джавы на те же шарпы и здесь остались только ретрограды, которые всё равно скоро умрут, от старости.
Я ее постил в каких-то разделах и мб еще в твиттере.
Про лису чет не понимаю намека. Видимо, не он(она)
Иронично,
Хотя, ничего удивительного. Каждый топит за своё болото.
Жаль только ты так быстро веришь на слово и не проверяешь.
Раз ты решил учить жабу ты ведь решил? или че тут делаешь?, то как порядочная гадюка, хорошо было бы ознакомиться с перспективами языка перед еблей
Читаю обычный txt сканером, типа вот так:
Scanner input = new Scanner(new File("file.txt"))
При этом сканер выкидывает экспешон:
java.io.FileNotFoundException: file.txt (No such file or directory)
Файл сначала положил в директорию пакета в src, затем думал попробовать в директорию пакета в out положить, но увидел, что IDEA его туда уже сама положила. Мб жабамашине какие-то права надо дать на чтение?
IDEA обновлена, сижу с macOS 10.15.7
Ах да, забыл, jdk1.8.0_241
Понятие "текущий каталог" (current directory) тебе знакомо?
Если нет - познакомься.
Файл без абсолютного пути ищется в текущем каталоге.
Если это проект идеи - то тек. каталог - корень проекта.
Имеется в виду, что запускаешь на выполнение ты из идеи.
И текущий (рабочий) каталог можно поменять в Run Configuration.
Понять, какой каталог сейчас текущий можно так:
System.out.println(new File("."));
>>1906260
>Понятие "текущий каталог" (current directory) тебе знакомо?
Конечно знакомо
>Если это проект идеи - то тек. каталог - корень проекта.
Да я уже догуглил до этого момента, спасибо, я проебался. Просто привык, что когда на других яп писал, то там текущий каталог в сурсах или в директории скопиленных файлов был.
Зато честно
На работе.
Ответ на вопрос - найди себе работу или хуйню, которую хотел бы сделать, и будет тебе задача. Я это сейчас неиронично говорю, хотя вкатился я в свое время вообще не в джаву.
Какой же я ебанутый, третий год эту тянку сталкерить пытаюсь, господи
Мне задачи и нужны чтобы в итоге на работу устроиться. Потом мне и так будет збс
Я не тянучка, шизоид. Узбагойся
сделай игру змейку на свинге
Напиши свои реализации:
- https://ru.wikipedia.org/wiki/Tee
- https://ru.wikipedia.org/wiki/Игра_«Жизнь»
Можешь чекнуть codewars.com и leetcode.com. Правда, сам туда не заходил, хватило задачек/проектов, которые делал, когда учил C++.
Итератор всегда нужен только ради его методов, которые в полном составе входят в контракт по поведению - интерфейс. Таким образом, даже не имеет смысла спрашивать тебя, зачем тебе понадобился класс, который его имплементирует и порождает объект для возврата: таких причин быть не может, кроме каких-то задротских экспериментов не имеющих смысла
Ну да, ты же в жаба треде
У нас насильно внедрили этот var и понять что там в переменной после
findXXX().stream().map().filter().map().collect()
можно только по подсказкам IDEA. Даже после одиночного findXXX() не всегда ясно там данные и NotFoundException или Optional и тут наши надмозги пришли к венгерской нотации!
Вот, человек понимает.
Вар либо не нужен вообще, либо должен быть строгий код-стайл вокруг этого. Например, использовать только с new и т.п.
Передай вашим надмозгам, что программировать им просто противопоказано. И что лучше бы им было перекатиться в 1С.
Спринг - лютый bloat, конечно.
Но, к сожалению, эти пидары поляну вытоптали дочиста, и альтернатив просто не осталось.
не додумались ещё в названия переменных добавлять тип? Как в жаваскрипте countInt, nameString
Чет не понимаю твоей проблемы. Если ты такой рукожоп, что не в состоянии следить за преобразованием стрима (с точки зрения типа сожержащихся данных), как ты собрался вернуть правильный тип в целевую переменную, даже если она не var, а хардово указана? Тоже ведь по сопровождению IDE только, а в каком-нибудь блокноте обязательно обосрешься.
Олсо, за венгерщину надо пиздить цепями. Значит разрабу этого кода только сортиры чистить. Этот >>1907203 прав
>не додумались ещё в названия переменных добавлять тип?
>>1907196
>пришли к венгерской нотации
Не повсеместно конечно, но местами есть.
>>1907215
>Если ты такой рукожоп, что не в состоянии следить за преобразованием стрима (с точки зрения типа сожержащихся данных), как ты собрался вернуть правильный тип в целевую переменную, даже если она не var, а хардово указана?
Вот есть метод который позвращает некие сущности, дальше map(User::getCards) - вот этот cards это что, другая сущность, коллекция сущностей или коллекция ID?
Написать то такой код не проблема, ты когда пишешь контекст знаешь и что там за User и что там у него за cards. Проблема начинается при чтении чужого кода, когда у тебя нет контекста, что там за User. И главное может это тебе и не надо, проблема не в этом месте, а где-то дальше. Тебе просто нужно базовую логику понять и двигаться дальше.
>>1907203
Увы, там чуть ли не на уровне СТО это продвигается.
>Вот есть метод который...
Да заебись... но как эти все трудности жизни связаны с наличием либо отсутствием функции объявления неявных переменных в языке?
Тебе однохуйственно придется лезть в этот getCards и выяснять что она там высирает, чтоб создать подходящую переменную, куда это все в итоге попадет. С этой точки зрения у var как раз преимущество - можно сделать это позже, а не ловить страйк от IDE
> С этой точки зрения у var как раз преимущество - можно сделать это позже, а не ловить страйк от IDE
херасе преимущество. А если в рантайме упадёт вместо страйка от IDE - это ещё лучше?
На каком в пизду рантайме? У тебя свобода var сохраняется только ДО ее инициализации. После ты уже не сможешь делать над ней всяких нелегитимных присваиваний, так что в первом же месте, где ты попробуешь пихнуть этот var туда, где будет обсер с совместимостью, ты поймаешь тот же страйк/компайл-тайм эксепшн. Потому я и говорю - тебе уже не обязательно знать что там вылезло в строке 11, ты сможешь это попробовать понять и на 12-й. Но понять один хрен придется, поэтому varы это своего рода сахарок очередной.
Да бля... вся разница только в том, что если язык имеет фичу типа var, понимание типа может происходить в двух местах: либо при объявлении (вар не используется), либо при применении (вар используется). А если варов в языке нет принципиально, как в старой джаве, то эта пара мест сужается только до одного - в момент объявления. Как все это мешает читаемости кода? Я сам никогда не пользуюсь варами, потому что нахуй не нужны, но ты похоже еще больший диван чем я, если не понимаешь что они, например, никак не нарушают тайп сафети и не могут приводить к крашам на рантайме. Блять, скорее в китае все примут ислам за один дань, чем джава откажется от типобезопасности ради такой пустяковой фичи, как вары.
Ты что-то тупишь, чувак.
Код с варами неудобно читать, ты это понимаешь?
За исключением простейших случаев типа var z = new Zalupa();
В 95% случаев, когда ты читаешь код тебе без разницы конкретные операции над данными в стримах или других call chain. Тебе важен конечный результат, что там у тебя.в итоге сет айдишников, опшионал с айдишником или айдишник сам по себе.
Тебе надо лезть в эти преобразования, когда ты поймешь что там проблема и надо эту часть менять. Пока ты разбираешься с этим флоу в целом - тебе без разницы мелкие детали.
Писать с var - норм, даже легче, проблемы с чтением чужого кода или своего через год.
Объявляю тип, который я должен получить в результате всех преобразований, потом делаю эти преобразования. Если не сходится - идея тут же ругается, а не через сотню строк опосредованно.
По твоему пику - а если qq тоже сделать var ?
>>1907319
Вы о чем тут спорите?? при разработке вара в документации писали вполне конкретно:
> Risk: reduced readability, surprises when refactoring.
http://openjdk.java.net/jeps/286
Соблюдайте адекватное название переменных и используйте var сколько хотите, если его использование очевидно. Если у вас конструкция вида Map<Class<? extend Foo>, Boolean> то уж будьте добры указывать всю конструкцию, так как иначе не догадаться.
>Соблюдайте адекватное название переменных
> i = 1.1
>неочевидно
Я тебе, что сказал? А ты что сделал? i всю жизнь было обозначением для интовой переменной.
То что ты написал максимально очевидно это double, но название хрень.
>Писать с var даже легче
Чем легче-то? Если ты сам разработчик цепочки вызовов ты уж точно знаешь что должно получиться, а не бьешь хуем по клавиатуре, типа что вылезет то вылезет. Написать вар это как отсрочить самопроверку полученного аутпута
Ну если хлебушек в голове то можно и еще раз 5 передать из лдного вара в другой. В том примере это просто простейший способ показать incompatibility type, чтобы опровергнуть кукареки того дебса про то что возможны какие-то там краши в рантайме из-за варов. На практике никто обычно не переливает из переменной в переменную. Она создается чтоб сразу стать где-то аргументом.
Олсо, никто и не спорит что у вара есть отличия в юзабилити, само собой есть. И кстати, если уж ты понимаешь, что обосрался только когда тебе ИДЕ подсказала, то она тебе это и с расстояния в 1000 строк подскажет.
Ты дурак или прикидываешься? Var работают при компиляции а не в рантайме, напиши var count = 0; скомпилируй и иди посмотри, что находится в .class там будет написано int count = 0.
Если ты не понимаешь, что java по дефолту для 1 выдает int, а для 1.1 double, то твое мнение в вопросы того нужны var или нет не учитываются. Иди учи базовые вещи.
Рантайм-падающий шизик, это снова ты? Ты уверен что ты правильно понимаешь чем вообще рантайм отличается от компиляции? Может ты какой-нибудь залетный скриптопетушок?
замени оболочку на примитив и случится магия. для шизиков - большую L на строчную в слове long
Long нельзя инициализировать литералом без L, так работает автобоксинг этого типа
я про это и говорю - что long или Long будет ругаться. С варом не будет и пропустит
ещё раз для дебилов
Long count = 0; - падает на компиляции
var count = 0; - падает в рантайме с переполнением
Потому что var сожрет любое значение, которое ты ему скормить захочешь, кроме, разве что, null. И станет тем типом, который заложен в том, чем он инициализирован, с точки зрения алгоритма компилятора. Че ты тупишь то? Вары это сахар который затирается после компиляции, так же как, например, дженерики. Если у тебя что-то там куда-то входит-не проходит-пердит-обсирается, это значит что ты просто хуёво знаешь как компилятор обрабатывает вары, и тебе надо матчасть подтягивать, а не пиздеть на дваче.
Пиздец ты хлебушек. Потому что ты написал хуйню в инициализаторе. Это все равно что ниписать int count = 0. Еще раз - компилятор не виноват что ты не знаешь матчасть
Все чувак кончай тролить, мне плохо уже от твоих шуток
И где здесь "падение на рантайме", тупенький? Это называется "криворукий даун-хэллоуворлдщик не ожидал переполнения"
А я думал я самый тупой в этом треде
Если что var - плохое слово его нельзя использовать, нужно всегда писать тип, типы могут быть объектными и примитивными, первые пишутся с большой буквы Long, а примитивы с маленькой long, это разные вещи, в твоем примере у тебя идет переполнение, потому что java думает что 1_000_000 1_000_000 ответ будет int а твой int вываливается за предел int если число больше 2_147_483_647 все плохо становится, вот такая тупая java ей надо подсказать и написать 1000000L 1000000, тогда все будет замечательно. Всё дружок ответ получен, надеюсь ты рад.
так ты там перекрыл все своей головой в процессе самоотсоса
Нет. Это что, чеклист ты мне зачитываешь? Какие там еще пункты? Может еще сказать гей я или нет?
Так блять, ты по сути ответишь? Зачем нужны эта петушиная библиотека, которую ты сюда высрал?
другой анон
Нормальная библиотека для того, что бы не засирать классы гетерами сеттерами и конструкторами по умолчанию или конструкторами со всеми параметрами читай как у меня 10 зависимостей в компоненте и мне больно глазам от гигантского конструктора.
Да шаг в лево шаг в право и она говно, но конкретно для перечисленных целей это дешевый вариант без выебонов и без урезания производительности.
Аргументы против?
Я примерно вкурил что там по той ссылке происходит. Окей. Но я не понял как ты устраняешь описанные тобой проблемы с этим лобком. Есть примеры кода класса, "не засранного геттерами сеттерами и конструкторами"? И как эта штука решает внедрение хуиллиарда зависимостей. Штоб посмотреть и востащиться, а возможно и причаститься?
Не знаю там по ссылке шляпа какая-то я имею в виду что ты можешь над классом написать анотацию @NoArgsConstructor или @allArgsConstructor и он автоматически все сделает. Для гетеро и сетеров тоже есть свои анотации просто меньше кода писать вот и все, выглядит аккуратней.
>Соси хуй, псина. Ебал в рот вашу эту хипстерскую поебень энивей.
Тред гоферов два блока вниз, брат. Без генериков, как в твоей любимой 1.4 яве.
Как и val, ежи.
Почитал немного... Чёто я кажется не готов к такой хуите, это не библиотека даже а плагин компилятора и IDE заодно, чтоб не пиздела на этот новомодный говнокод. По сути захуярили какой-то форк джавы себе, и типа заебись.
Да так и есть. Но на дваче в какие то крайности любят бросаться. В целом нормальная библиотека, на некоторых проектах используется. Все больше нечего даже сказать.
Ну, типа того и мои соображения. Изучил бы только если б вписался в проект где это уже живет. А так мне и кодогенератором ИДЕ воспользоваться не западло, и скрыть лишний текст "громоздких методов"
не имеет значения для кодогенератора. хоть 20. объекм кода большой конечно будет.
Имеет значение, как часто тебе придется удялять/дописывать этот бойлерплейт. Ломбок делает это все автоматически. Не использовать ломбок - быть луддитом.
Окей. Понял. Проходите мимо, мистер сектант
Не надо бросаться такими словами, сынок.
Такую ошибку делают и профи тоже.
Что-то (не помню что) у американцев на орбите зависло по этой причине, в своё время. И вообще дохуя такого было, особенно, когда процессоры были 8-16 бит.
>Итератор всегда нужен только ради его методов, которые в полном составе входят в контракт по поведению - интерфейс
А что, если в классе имплементировано несколько интерфейсов? А так я сразу буду знать и могу вызвать все доступные методы всех доступных интерфейсов. Да и какая есть гарантия, что все публичные методы реализованы из интерфейсов?
>таких причин быть не может, кроме каких-то задротских экспериментов не имеющих смысла
Просто я только изучаю язык и стараюсь разобраться, почему и как.
>Да и какая есть гарантия, что все публичные методы реализованы из интерфейсов?
Никакой.
И это не должно тебя беспокоить.
Интерфейс - это роль. Ты используешь объект в той роли, в какой он тебе нужен в данный момент (если он допускает несколько ролей). Если тебе этот же объект нужен в другой роли - это будет другой интерфейс или класс.
Вообще, тут не надо умничать на пустом месте.
Надо писать код, и постепенно (не сразу) до тебя дойдёт, почему так делают.
Если тобой движет просто интерес - читай документацию и исходники.
Если исходников нет - IDE тебе покажет.
Если нет IDE - используй reflection, чтобы посмотреть, что есть в этом классе.
Добавлю ещё, что смысл этого всего _только_ и исключительно в том, чтобы, с одной стороны, дать разработчику библиотеки свободу, а с другой стороны - избавить тебя (пользователя библиотеки) от проблем.
Можешь ли ты объяснить почему это важно и каким образом это достигается?
>Вообще, тут не надо умничать на пустом месте.
>Надо писать код, и постепенно (не сразу) до тебя дойдёт, почему так делают.
Так я и не умничаю. Я понимаю, что практику ничего не заменит, но бездумно писать код даже в обучающих целях - это тоже не очень хорошо.
За советы спасибо, доку и исходники стараюсь просматривать к каждому новому классу и интерфейсу, в силу своего понимания.
>вот такая тупая java ей надо подсказать и написать 1000000L * 1000000
Ещё надо написать var i = 0L;, иначе i всё равно будет int и произойдёт ошибка компиляции
Именно поэтому, надо либо наворачивать жёсткие ограничение по кодстайлу вокруг этого говна, либо просто им не пользоваться.
Вообще, люди не просто так продолжают сидеть на 8-й джаве, это надо понимать.
дженерики не нужны если что, а var и ломбок нужен
Если хочешь, чтобы в результате был единственный экзешник и больше ничего, то нормального способа так сделать нет ни на одном языке, даже в плюсах рядом обычно будет пачка dll-ек.
Но если количество файлов не важно, лишь бы не нужно было ставить рантайм джавы на каждую пекарню, то так сделать вполне можно. В JDK есть утилита jlink, с помощью неё можно упаковать рантайм и само приложение в одну папку, в этой папке будет лежать батник для запуска, и эту папку можно закинуть на любой ПК и сразу же запускать через батник.
Спасибо тебе, хоть немного яснее перспективы, буду туда копать.
Иди смузи наебни, псина смердящая, да подбрей очко и бровки.
Наверное, ты имел ввиду аварию Ариан-5 в первом полете. У французов. Там правда все было раз в 50 сложнее в предыстории, которая привела к ошибке, а не просто смузихлёб в команде. Почитай.
Но ты все равно продобился в мозг, ибо посылом того месседжа было то, что та ситуация - это не рантайм еррор, как тот хлебоголовый писал. Это просто неожидаемое поведение. Совсем разные вещи. Ну а про дауна-хэлоуворлдщика это просто фигура речи, вроде как упоминание мамаши-шлюхи, улавливаешь?
>>1907878
В такой ситуации класс, который он многоинтерфейсный, вряд ли будет так задизайнен, что его инстанс нельзя будет создать там, где это нужно. В любом случае, создается ВСЕГДА объект класса, а не интерфейса (кроме случаев, когда ты анонимно имплементишь созданный объект интерфейса через new SomeInterface(){...@Override}, но и в этом случае среда за тебя создаст неявный класс). Если ты создал объект класса, он содержит в себе всю логику этого класса. И даже если ты используешь его через переменную лишь одного из его интерфейсов, это значит, что через нее ты получишь лишь часть его функциональности - это что-то вроде того, будто ты на этом классе включаешь один пульт управления, а второй выключен,
НО он там все равно ЕСТЬ. Чтоб включить второй, ты просто можешь прикастить объект к тому второму интерфейсу, и тогда сможешь использовать тот же объект в другой его роли, но здесь можно словить ClassCastExept кое-когда, если ты не понимаешь чё делаешь.
Чувак, ты исходишь бессмысленным словесным поносом каким-то.
Особенно - по теме ООП.
Попробуй меньше выёбываться и поучать, побольше учиться и думать. Это должно помочь.
Может ты скажешь в сторону какой именно мысли направлен сей твой высер? что не так?
> Но понять один хрен придется, поэтому varы это своего рода сахарок очередной.
настоящему джедаю переменные внутри методов, жаба как-никак вообще не нужны, на что вар какбы и намекает
В дополнение к >>1907966
Еще есть Launch4j http://launch4j.sourceforge.net/ можно сделать екзешник - полезно если программа использует сеть и нужно настроить файервол.
Аналогично https://www.jwrapper.com/jwrapper
жава начиная с 11ой поддерживает скрипты так что можешь одноконопочное просто запусать ярлыком командой java program.java
1. Взялся за спрингу, что учить чтобы взяли джуном?
2. Хибернейт работает с р2дб на реакте или он только с жпа?
3. Вообще не вдупляю с тестами, допустим мне надо сделать интеграционный тест, типа если у меня есть классы, я в тесте создаю какой-то мок объект,вместо экземпляра класса, а как тогда эта хуйня имитирует класс, мне типа надо как-то описать мок объект? Всякую хрень типа иквелс я понял, это легко, а если мне надо протестировать создаются ли объекты с нужными свойствами или я хочу протестировать создаются ли объекты в базе, как это говно тестировать?
4. Докер и докер композ отличаются только тем, что в докер композе мы создаем ямл файл с настройками?
я вот тоже не понимаю, сколько я говна с ним накушался.
И то, что я стараюсь писать sql запросы руками - эти двадцатилетние тимлиды считают это "ламерством"
в епаме такая метода: делаешь какой-нибудь круд на голой жабе. Потом постепенно добавляешь все эти фишечки-хуишечки.
Нужно чтобы приложуха работала на сервере? Пишем примитивный сервер на жавовских сокетах.
Написали, работает, теперь переделываем на работу в томкате.
Дальше, база данных - открытие, закрытие, транзакции, хуё мой - всё руками через жавовский Connection. Как всё будет получаться - переделаешь на jdbcTemplate, а там можно и хибернейт попробовать.
Спринг - делаешь зависимости руками, потом подключаешь этот спринг для его ебучей магии
1. core, mvc, data
2. Ты точно не сеньор? Работаю больше года, про "р2дб на реакте" слышу впервые.
3. Можно заинжектить DataSource и вручную сделать селект.
4. Композ работает поверх докера. Докер - это просто создание контейнеров по одному, композ - способ запустить сразу несколько связанных контейнеров с настройками.
Если связи между сущностями использовать по минимуму - то JPA вполне норм тема. Хоть не надо пердолиться с getInt(1) и wasNull()
>Пишем примитивный сервер на жавовских сокетах.
Спешите видеть - парсин HTTP руками джуна!
хватит тут пиздеть!
>р2дб на реакте
https://spring.io/projects/spring-data-r2dbc
https://spring.io/guides/gs/reactive-rest-service/
Я думал все на него переходят, это же асинхронное API. Но я столкнулся с тем что хибернейт работает только с JDBC, иначе нужно писать какие-то сложные костыли, которые я вообще не понял. Или все это хрень и не париться?
тогда руками. Ничего сложного нет
Ну да, это стратегия же. Чет я затупил.
Банальщину вроде if(x<0) ret true else return false не охота применять
Как вообще это красиво решить средствами джава?
Не лезь в биты, блять.
> Банальщину вроде if(x<0) ret true else return false не охота применять
Так не применяй, пиши ret x < 0, он уже возвращает боолеан.
не благодари
если готов пахать - то это на стройку - быстрее и надёжнее.
А так у тебя лет 5 уйдёт на вкат, при условии что каждый день часов по 5 сможешь уделять
Почему именно в джаву?
Не готов судить о перспективах затеи, ибо много неизвестных (в основном потому, что непонятно, гуманитарий ли ты на уровне мозгов, а не по диплому). Я и сам начал в 30. Может это тебя мотивирует хотя бы.
Чисто по ядру Java (это язык и основная часть стандартной библиотеки) я бы читал в таком порядке:
1. Я. Файн "Программирование для бабушек матушек и прочих недоумков" Название я переврал, но найдешь по автору, изи. Книжка пиздец детсадовская и вызывает испанский стыд, но основы по ней понять начать можно
2. Head First Java, Бейтс и Сьерра. Все еще клоунада и испанский стыд, но уже почти для взрослых
3. Герберт Шилдт, справочник. В нем есть все, и без всяких соплей
По интернету - METANIT и вообще все что возвращает поиск.
Но это сугубо тот порядок в котором я читал, сейчас меня самого обоссут еще.
Удачи, /б/рат
При твоих вводных, вероятность успеха есть, если только тебе это действительно интересно. Ну, вот это вот все... как данные образуются, хранятся, как компьютер работает, почему трансы полевики а не биполярные в железе (шутка).
А если ты замыслил вкат только потому что сосед Мойша больше тебя зарабатывает, то лучше стартани в чем-то попроще. Наебизнес какой-нибудь например.
легко
String[][] matrix = new String[height][width];
for (int i = 1; i < height; i++) {
matrix[0] = Integer.toString(i);
for (int j = 0; j < width; j++) {
matrix[j] = "S";
}
}
for (int j = 1; j < width; j++) {
matrix[0][j] = Integer.toString(j);
}
matrix[0][0] = " ";
максимально тупая хуйня, но вангую тебе это для какой-нибудь лабораторки в шараге, потому что таких тупых задач в жизни не бывает, а там тупость только в плюс. они тебе только за стринг билдер отсосут. с инпутом сам ебись, лень. не благодари
>и что тут такого? Руками ставить хедеры, руками их читать
Спецификация HTTP/1.1 это 170 с лишним страниц текста. Джун не сможет даже полностью GET реализовать так чтобы он работал с реальным клиентами.
Потому что он тебе хуйню написал. По ссылке Matrix будет лежать одномерный массив строк, а не одиночная строка
Возможно, но в конкретном этом случае не такой уж это хитрый трик, раз уж известно что для любого знакового нужный бит всегда в одном месте лежит. Байтоебство же куда изощреннее бывает.
Странный подход - от сложного к простому. Это даже хуже, чем в 2к21 начинать учить спринг с XML-конфига, сборки антом, деполя на вебсферу и только потом аннотации и бут.
Расскажи с чего учить его начинать, раз уж ты соображаешь. Прям с нуля, я полный нуб
Проиграл с этого программиста
Код
x > 0
читается гораздо проще чем
longBitsToDouble(x) & 0b10000000000000000000000000000000000L == 0b10000000000000000000000000000000000L
Во втором случае вообще, не понять что там происходит пока в IEEE 754 не залезешь.
От простого к сложному. Сначала спринг бут по примерам и мурзилкам, понять суть DI/IoC и что под этим понимают в спринге, мочь запустить минимальное приложение со start.spring.io и вносить в него изменения. Дальше уже начинать экспериментировать с Spring MVC, например.
А также парсер заголовков от клиента, ебля с application/x-www-form-urlencoded, коды состояний, обработка ошибок, треды, кеширование, сжатие, раздача статики...
>>1909142
"Шлёпни такую-то аннотацию и всё будет заебись" куда проще понять для новичка, чем 100500 низкоуровневых концепций, которые надо ещё суметь связать воедино и стабилизировать.
Ну ты бы сразу сказал что тебя оно как тип данных волнует, а не как аутпут. Тем более в джава нет двумерных массивов и ты со своей
"матрицей" еще больше запутал
Спасибо, анонче.
Если судить по гуманитарности/технарности, то большинство сидящих в этом разделе это гуманитарии, ссущие в штаны при упоминании CLRS.
Что за мурзилки?
Сиськи где, шлюха?
можно и покороче сделать, правда с переписыванием некоторых позиций, но это похуй
ктрл + альт + L нажми, от твоего форматирования кровь из глаз
баг, как и форматирование уродское следствие множества попыток решить несколько задач
Особенно проигрышно выглядит что второе измерение задано через инт, а чтоб пофиксить дабл там впилено приведение типов, пиздец. При том что все это буквально в куске кода размером 100х100 знакомест.
> два месяца проходил онлайн курсы за 5тр
> выписали еба сертификат
> кроме хэлловорлда написал один пет проджект, собранный по кусочкам из туториалов
> учил язык по вопросам на собеседовании
> зато выучил все формулировки и преимущества ООП
Таких дебилов берут работать?
Они хе нихуя не в состоянии писать код и будут спотыкаться на любой хуйне и дико тупить.
Почему тут советуют, что можно вкатиться за два месяца?
варик без вложенных циклов. кроме вывода в консоль.
просто сижу и бухаю по релаксу, то что у тебя пизда между ног ни при чем
> Таких дебилов берут работать?
Берут.
> Они хе нихуя не в состоянии писать код и будут спотыкаться на любой хуйне и дико тупить.
Как и все джуны.
> Почему тут советуют, что можно вкатиться за два месяца?
Пиздят.
Западло? Что? Баги на то и баги что прокрадываются незаметно
Вы бы как-то определились уже. Я в прошлом треде спрашивал что надо чтоб попасть на джуна, ответили что надо уметь запилить свой круд с приверченной базой, сервером и вот этим вот всем. А тут теперь достаточно быть полудурком с курсов по хэлоу-ворлдам.
другой-анон
Байтодрочерам кроме хуя за щеку никто никогда ничего не кинет.
Да нахуй кому всралось это IEEE, если в каждом нормальном учебнике это где-то недалеко от начало разбирается (как хранятся данные побитово).
Я захуячил себе так
if (((Double.doubleToRawLongBits(dVal)>>63 & 1) == 1)...
чтоб покороче было
Грокаем норм? Видел ее, тонкая какая-то. В Кормене бесит какой-то псевдокод ебаный, вместо лингва-франка C-кода
ячейка: крайняя по горизонтали? делай то. Крайняя по вертикали? Делай это. Иначе делай сё
ну если их перебор в двойном цикле, то первое решение >>1909174
(из не ебанутых) по сути то и делает. Можно конечно сделать одномерную ленту в виде ArrayListа длины row*col, и путешествовать по ней, понимая какая это ячейка через целочисленное деление и остаток от него, но это уже натягивание ануса на пятку. хотя прикольно сделать. может позже.
эти двойные массивы - это одноразовое решение, не масштабируемое. Предположим, подходит к тебе менеджер и говорит, что циферки теперь нужны и по правому и нижнему краю. Будешь делаешь ещё вложенные циклы? В случае конечного автомата надо было бы только добавить/поправить правила, что гораздо проще и понятнее
вымой рот с мылом для начала
Нахуя мне эти "в чем разница i+=1 и i=+1 И i=i+1"????
чтобы сертификат сертифицированной жабамакаки получить - а без этого до выгрузки юзеров не допускают
Зочем оно мне, я сисаадмин, мне надо для работы микросервис который состоит из двух частей, первая - сервис мижду клиентами и админами, в котором подаются заявки на ремонт и сортируются по отделам и чат для этих самых отделов.
Инфа лежать будет на серваке и выгружаться в десктопное приложение которое само распакуется скомпилируется и что там еще должно быть после двойного клика мыши.
В идеале чтоб еще информация учетки парсилась в эту программу и не запрашивала права администратора.
Чтоб просто юзверь запустил скаченный файл и все работало
Градле, спринг, хибернет еще хочу и в разработчики перекатиться.
Основы универские у меня есть, курсачи делал с таким же тупым "если стороны квадрата х и y и к ним добавить +2 и +3 соответсвенно то что получится сделайте программу с комментариями и чтоб она не ломалась при вводе буквенного значения" как в тестах на сайтах.
Нахуя ты это делаешь?
Это реально будет на собесе даже если я свой код принесу с документацией и всем этим?
А что на работе будет тогда с человеком который умеет к массиву прибавлять другой массив?
Я тебе советую изучить вопрос вката в UI/UX-дизайнеры, это намного ближе к твоему текущему роду занятий, да и имеющиеся скиллы будут полезны. Зарабатывают они тоже хорошо. Ну или во фронтенд, там меньше тех.знаний нужно, чем в java-бэкенде, плюс фронт более "визуальная" работа.
>Будешь делаешь ещё вложенные циклы?
Конечно нет, смысл вложенного цикла - пробежаться по всем элементам. Для каждого элемента уже ведется анализ его положения. Надо будет просто выводить номера в тот ряд/столбец, который добавится по новому условию. То что ты напилил конечно прикольно своей альтернативностью, но не сильно отличается по функциональности.
Олсо, ты там хуиту нарисовал: ячейка 0-0 пустая должна быть, и у тебя две нулевых строки.
Сап жавач, а у вас джунов на удаленку не берут? Не хочу из сычевальни выползать, а кроме джавы в универе ничего не учил
в айти кадровый голод
тебя с удовольствием наймут яндексы и сберы на 300ккк
жава-джун на удалёнку без опыта работы
Обсер на заставил себя долго ждать. У тебя неправильно обрабатывается ситуация с NaN.
Блять, я и спросил про удаленку потому что нахуя, если ее нет, тогда учить спринг и прочий зоопарк мне, а не прыгать на другие технологии. Одногруппники устроились в куа и фронтами сразу на удаленочку с нуля
На хз смотрю ни один блять эйчар не написал в вакансии джависта "удаленно"
В моем конкретном коде туда не может попасть NaN, так что мне похуй. Пихать туда проверку и эксепшен только чтоб это понравилось каждому долбоебу уважаемой публике на дваче мне как-то не особо интересно. Ошибки исполнения это не вызывает даже если там окажется НаН, этого более чем достаточно.
Другое дело, что, как выяснилось тестами, это не дает ни одной наносекунды ускорения в сравнении с тупой проверкой, даже через If-then-else.
У нас в сбере прорабатывают вариант удалёнки, которая будет не только во время ковида, а по желанию насовсем, и для джунов тоже. Но пока это доработают и согласуют, пройдёт не меньше полугода.
> это не дает ни одной наносекунды ускорения
Иди-ка ты в C++-тред с такими мотивами.
Правда, у них IEEE-754 не прописан в стандарте, и результат implementation-specified, не говоря уж о strict aliasing violation
Ну, таких вызовов планируется довольно много, вот мне и захотелось чуть ускориться.
В итоге я так и не нашел статистически значимого различия в скорости между вариантами:
(Double.doubleToRawLongBits(arg) & 0x8000000000000000L) == 0x8000000000000000L;
(Double.doubleToRawLongBits(arg) >>63 & 1) == 1;
Double.doubleToRawLongBits(arg) >>> 63 == 1;
(arg < 0D)
if (arg < 0D) {
bVal = true;
} else {
bVal = false;
}
Вообще раз в 10 больше уходит времени на то чтоб загрузить класс Double, чем на вычисление десятков таких строк
> Ну, таких вызовов планируется довольно много, вот мне и захотелось чуть ускориться.
Почти наверняка сделать быстрее JIT-а не выйдет, он и так попытается это оптимизировать, но ему хотя бы биты доступны напрямую без загрузки классов и конвертации.
Наткнулся читая в книжке, а примера такого конечно же нет
shutdownNow() не убивает треды (по некоторым причинам это считается плохим), он лишь вызывает interrupt() у тредов, и если isInterruptted() в треде не обработан, он так и будет дальше висеть.
интересно, спс..
>Другое дело, что, как выяснилось тестами, это не дает ни одной наносекунды ускорения в сравнении с тупой проверкой, даже через If-then-else.
Кто бы мог подумать!
Ну, стоило убедиться лично. Если такой гений, придумай способ как сделать быстрее.
Алло, ёбы.
>Ну, стоило убедиться лично. Если такой гений, придумай способ как сделать быстрее.
Это делается парой команд процессора, COMISD и дальше условный переход куда уж быстрее. Странно что твоя йоба система работает не сильно хуже.
Если у тебя такая скучная жизнь, то напиши правльный бенчмарк с JMH, запускай с -XX:+PrintCompilation и изучай код который сгенерировался.
>Насколько тупой идеей будет сделать специально для этого @RequestScope менеджер кеша, чтобы одни и те же запросы в базу не кидать?
1. А почему другим запросам этот кеш будет бесполезен? Когда пользователь работает с системой, весьма вероятно, что он в ближайшее время сделает еще один запрос.
2. Ну напишешь ты его, а потом мучаться с отладкой - почему у тебя запрос видит старые данные. Уж лучше явное кеширование, чем спринг магия.
>1. А почему другим запросам этот кеш будет бесполезен?
Потому что при следующем запросе данные в базе уже могут обновится.
>2. Ну напишешь ты его, а потом мучаться с отладкой - почему у тебя запрос видит старые данные. Уж лучше явное кеширование, чем спринг магия.
Эээ, в чем разница между явным кешированием и спринг магией? Я просто предлагаю использовать не обычный кеш менеджер, который непонятно когда инвалидировать, а кеш менеджер, который инвалидируется автоматически.
каким хуём я из джавы должен вызывать твои переходы?
то что ты написал про тесты для меня слишком сложно, я тот еще даун
>явным кешированием
Уточнение: тот анон предложил использовать @Cacheable, который и является спринг магией.
> Потому что при следующем запросе данные в базе уже могут обновится.
Так сделай ещё @CacheEvict. Или доступ к базе есть не только у приложения?
маг
>Потому что при следующем запросе данные в базе уже могут обновится.
Нормальные кеши обрабатывают такую ситуацию, некоторые даже могут между инстансами синхронизироваться. Подключи как L2 в JPA и все.
Ну и? Я решение из второго ответа и придумал, не пойму только, ннасколько оно адекватное.
ПАО, блок Т. ДС.
ещё union невозможен
Из джаваее ничего не надо? Сервлеты, jsp, javabeans?
Че за анемегавно в шапке? Че за петух дырявый тред создавал?
Ты, наверное, тредом ошибся. Тут не сигареты обсуждают.
Например, я хочу изменить @Transient поле при загрузке из базы данных, проверяя при этом действующие поля сущности. С этим не может возникнуть проблем?
Вижу, что это даже так нихрена не работает, как быть?
Начинаешь с самых простых задач, чтения готовых решений и простых консольных аппликух для себя, затем сложнее, затем ещё сложнее и т.д.
но ведь беда в том что ни одну задачу решить не могу, скинь каких нить задачек для совсем юных пчеликов , а то я не понимать...
Вывести в консоль хэлоуворлд - это тоже задача
Вывести в консоль хэлоуворлд N раз
и так далее, наращиваешь сложность
Миллионы задач от тупых до сложных лежат на всяких кодерастических сайтиках соревновательных, типа Hackerrank или как-то так, там ты сможешь покачать умение решать задачки. Правда обычно там качается именно алгоритмическая часть, а сам язык ты повышать не будешь. В том смысле что не будешь юзать ООП, дженерики всякие, лямбды, и прочие фичи, которые и составляют язык. Надеюсь ты понимаешь что "знать синтаксис" как ты выразился - это хуита, а не знание языка. Все равно что говорить что знаешь алфавит. А это не равно знанию языка.
чел пчел спок, заебали тебе подобные если нет чего ответить, то лучше не отвечай
уже отправился на поисках, щас попытаюсь, как закончу дам ответ в треде , ожидай меня анончик
ты ебанулся что ли? Она простая как пиздец, и там не используется никаких сложных элементов, ни в алгоритме, ни в языковых средствах.
Написать метод для подсчёта количества слов в строке (словом считать любые символы между буквами, например). Понять и реализовать пару простых алгоритмов сортировки. Написать треугольник Паскаля.
Задачи можно поискать, в некоторых книгах по языкам в конце глав есть задачи, ещё бывают сайты с задачами.
как разберусь дам отчёт
Может. Там же прокси через прокси. Не советую юзать логику внутри хранимой сущности
У меня вообще такое ощущение последнее время, что всякие жпа - хибернейты сделали чтобы рекламу делать. Красиво, но бесполезно. Уровень вхождения ниже, но как инструмент - говно.
Уж как повезёт, тут недавно вообще про JSF и Vaadin писали. У самого десктопная прога на чём-то времён борланда, но мне к счастью на этом писать не нужно.
Ну хз, я в первый месяц решал задачи на матрицы, включая ранг и определитель с рекурсией.
С какими задачами у тебя проблемы?
Ясно.
Ищи книги Pro Github (980 страниц, не путать с Pro Git) и Github in Action (532 страницы).
Реализуй телефонную книгу аниметянок.
Реализуй простой плеер текстового аниме в консоли.
Реши задачу "скачать все анимекартинки с тегом mind control в папку C:\\animedolboeb"
Напиши гуй, который в 8 окнах параллельно меняет рандомные вебмки из аниметреда и воспроизводит их
>Default конструктор в JPA при загрузке вызывается после загрузки полей? Или это может зависеть от реализации?
Конструктор нельзя вызвать до загрузки если конечно не применять страшную unsafe магию
>>1911105
>Например, я хочу изменить @Transient поле при загрузке из базы данных, проверяя при этом действующие поля сущности. С этим не может возникнуть проблем?
Юзай @PostLoad https://www.objectdb.com/java/jpa/persistence/event
пошел нахуй отсюда, анимевебопидор
if (someField == null)
//initialize someField
return someField
Это потокобезопасно или нет?
Ок.
Если бы был нестатический метод, и на каждый поток своё поле - тогда нормально
synchronized-методы - это когда у тебя настолько кривые руки, что не не смог в примитивы синхронизации потоков.
сработает, конечно, но ты сразу проигрываешь по перформансу.
просто, но дорого.
Искать надо не книгу, а официальную документацию гитхаба и практические задачи.
А ещё графинтерфейс Github Desktop дичайше блядь помогает понять что к чему.
Так вот, мне, когда я только начинал изучать шарп(первый курс, 6 лет назад), все говорили, что он очень сильно похож на джаву. Но тогда я слышал нехорошие истории про джаву, дескать очень медленно все, перегруженно и вообще джава нужна только для больших сложных проектов, где важнее работа в команде. На шарпе, так уж вышло, что я попал в такой стек, где мы писали довольно требовательные к производительности и при этом независимые друг от друга штуки.
Так вот, какие вопросы-то:
Насколько сильно нужно перестроить майндсет? В моей конторе просто за каждый байтик держатся, куча кода писалась с использованием unsafe и ручным выделением-освобождением ресурсов.
Сильно ли вообще изменилась джава за эти 6 лет? Раньше, когда я смотрел на джаву, для меня это выглядело похоже на С++, только порезаный жутко, тогда это не нравилось, но поработав на C# активно я поймал себя на мысли, что мне довольно тяжело понимать что делает С++ код, особенно последние версии. Джава за эти 6 лет так же сильно изменилась?
Ну и вообще, может быть есть те, кто тоже шарп изначально учил и решил добавить в копилку своих знаний джаву, было бы интересно послушать опыт изучения и с какими трудностями столкнулись, может быть наоборот трудности не возникли, а что-то понравилось больше чем в шарпе.
Естественно это вопросы не про работу, рынок, а скорее инструмент и опыт его использования.
Баг или фитча, можно исправить?
У меня только переопределен Error Controller, все остальное делает Spring Boot.
Интересует сейчас java.lang.NullPointerException.
Там моя ошибка была, забейте.
А синхронайзед-блоки?
На си есть sdl2, охуенная тема. Мне нужен аналог на жаве, не спрашивай зачем, для души. Java 2d загуглил, её функционала рисования мне хватит, но нужно ещё ввод кнопок ловить, типа sdl_poll, sdl_event вот такая хуйня. Что юзать?
А вообще хотелось чтобы всё в комплекте было как в sdl2.
из-за точек
Хотел бы попасть на стажировку или на символический оклад чтобы набраться знаний, опыта и шишек.
Учусь быстро, особенно если укажут направление, готов на full-time, могу уделять объективно, 15 часов в сутки, 6 дней в неделю, интересует удаленно или офис
>Это потокобезопасно или нет?
Зависит от требований. Если нет проблем с тем, что инициализация будет вызвана более одного раза и потоки могут получить более одного инстанса класса - то да, это потокобезопасно.
Т.е. какой нибудь DateTimeFormatter так инициализировать можно, а конект к базе - нет.
В принципе и на Java пишут low latency приложения например https://chronicle.software/, но ручное выделение памяти пока в тестовом режиме и удобных библиотек пока не подвезли. Так что тут другие подходы.
У C# гораздо больше сахара, Java движется в эту сторону, но не так быстро. Зато JVM превосходит CLR в технологическом плане - более продвинутый JIT, GC и т.п.
Няшненько.
А что плюсы? Это почти как тестовый полигон, в них добавляют всё подряд, что нужно, что ненужно, что спорно, что вообще нельзя добавлять. Если так не делать и добавлять только обкатанные в других языках фишечки, проблем быть не должно. Жабе и до котлина по уровню сахара/фишечек вряд ли дойдёт, что нам плюсы.
Где действительно не учли печальный опыт плюсов - так это в JS.
Цена вопроса?
Сразу вопросы пиши, аноны ленивые и не будут из тебя вытаскивать клещами по одному вопросу за пост.
greasyforkточкаorg/ru/scripts/18482-hv-autoattack/versions
Вот скрипт, бот для игры. Недавно к этой самой игре выпустили обновление - скрипт в ней не работает. Пытался заменить ссылки в самом скрипте, не помогло (я в программировании вообще не шарю) Объясните пожалуйста, что нужно сделать для нормальной работы скрипта. Поможете - буду рад. С меня как обычнонихуя Если что, друг просил.
Вот так бы сразу.
что это?
можешь это пропускать. Просто знай, что компилировать можно из командной строки, запускать java -jar xxx.jar
джарники собираются через мавен
Что лучше учить, чтоб зарабатывать хоть какие-то деньги несложно. Вроде все джаву учат, в чём отличие от скрипта? Как долго нужно учить с ноля?
Мне нужна удалёнка.
Привет, шиз из нюфаг-треда.
Пиздец, сколько в спринг буте ещё всего понапридумывали? Свой спринг кор, свой фреймворк для тестов, свой автоконфигуратор, теперь вон ещё и jpa из вьюх додумались дёргать. А ещё говорят, что традиционный спринг с xml-конфигом был сложным, лол.
List<? super Integer>
В дженериках?
Я понимаю, для чего нужен extends, он при стирании типов ограничивает верхнюю границу, и передает туда конкретный граничный объект, вместо Object. Например, List<? extends Number> передаст в класс/метод объект Number при стирании.
А зачем нужен super, если он все-равно передает тот же Object после стирания? То есть запись вида
List<? super Integer>
равнозначна
List<Integer> или List<?> в JVM, потому что везде будет стирание до Object что видно при вызове get листа в методе и вводе выводе переменной для него в идее
Так зачем нужен супер вилдкард? И зачем он в PECS?
Короче, пока сам гуглил ответ на свой вопрос, наткнулся на такое объяснение. Грубо говоря, этот super нужен для того, чтобы не объебаться с полями, и случайно не положить туда соурс вместо дестенейшон в параметрах вызываемого метода, когда происходит приведение типов. Верное объяснение?
Да, тут были те, кто говорил, что пишут в продакшене на 11ой джаве. Модульность вообще часто используется?
Частный случай. Гугли типобезопасность и PECS.
это два разных языка
ой бля сколько учить мама за неделю дальше кора с гитом не вылез
1) Я вообще в программировании 0, хотя люблю технику, телефоны, пеки и т.д.
2) До этого лет в 17 пытался вкатиться в HTML/CSS но быстро надоело.
Вот начал я с JR + HeadFirst(купил ее и мне через како-то время не зашло по формату повествования). После чего добавил Шилдта(вот тут намного лучше. Теория и реализация, всё понятно) так же купил Философия Java, но пока сложно для освоения.
В итоге я плотно весь октябрь сидел почти каждый день, и заебался. Так как сидел без раоботы. Вышел на работу и сейчас рзанимаюсь часа 2-3 в неделю( что считаю мало).
Итак на Январь 2021 прошел Syntax и начал Core и ООП. Понимаю что нужно очень много практики, потому что без практики всё быстро забывается, но так же быстро вспоминается, потому что ты это уже изучил. Записался в EPAM на тренинг, прошел тесты(жду ответа, позовут или нет).
Из минусов, часто прокрастинирую, и распыляюсь. Хотя в начале меня прям распирало от понимания кода и от решения задач.
друга по интересам найди, с которым будет кодесы обсуждать и холиварить. в одно ебало скучно становится, если за бабки не работаешь
Сам полтора года вкатываюсь, из которых 4-6 месяцев забивал хер. По личному опыту - первый год самый адовый, если ты тревожное или ленивое хуйло как я, то просто садишься и кодишь каждый день по паре часов без задней мысли, решая какие-нибудь задачки, со временем либо твой мозг примет неизбежное, либо ты окончательно поймёшь что это не твоё.
ну вот как раз благодаря другу и начал, он поддерживает: советует что почитать + всякие вопросы обсуждаем.
Шилдт джавовский на мой вкус говно. Там нет готовых программ, которые можно погонять, поизменять и поломать. Философия джава вроде норм, но старая. Там вроде 6ая, а 8ой много нового появилось и она типа стандарт. В джава раш кстати тоже нету лямбд и стримов.
Короче мой набор:
https://www.youtube.com/playlist?list=PLm2nrlGYLq1Uv1qYpqMC07JYoOXilEQZI
https://rutracker.org/forum/viewtopic.php?t=5763215 + https://www.ozon.ru/product/java-biblioteka-professionala-tom-2-rasshirennye-sredstva-programmirovaniya-165524775/?_bctx=CAUQt7pK
Если денег не жалко на задачники, то:
https://hyperskill.org/tracks/1 Там на инглише, но инглиш очень простой, русские же писали. Больше нигде не нашел задачки именно на синтаксис современной джавы, а не на алгоритмы.
Я это все почти прошел + маленькая книжка по sql + туториалы по junit и http, но по моим ощущениям это где-то треть от вката, а то и четверть. За джаву сел 11 месяцев назад. Занимался от часа до 4 в день, в среднем 2. Но кучу времени потратил на перебор книг, курсов, гугление, повторение одного и того же. И все равно кучу тем не понял и дропнул(загрузчики классов, асинхронщина, вайлкарды и еще всякое по мелочи). По совету треда почти забил на свинг(а зря, в хорстмане очень много примеров со свингом).
Думаю еще два года буду вкатываться, я можно сказать борщехлеб, время есть. Единственное пока так и не понял, что мне мне нравится больше - спринг или андроид, посмотрел несколько обзорных лекций по тому и другому и и там и там есть минусы. Скачал книжки по обеим темам.
Свинг разве где-то кроме учебных примеров ещё используется? Видел лишь одну вакансию с требованием GUI и это был JavaFX
Ну вот я учебные примеры и недопонял, потому что пропустил главу по свингу. В том числе по асинхронке, интернационализации и аннотациям.
Спасибо, учту.
Бамп вопросу.
Дочитал таки по диагонали главу про модульность. Выглядит переусложненным, писать, компилировать и запускать код становится еще геморройнее.
Этим вообще пользуются? По опросам жидбрейнс годовалой давности больше половины сидят на версии, где нет модульности. Может из-за нее как раз?
Открыл вчера грокаем на главе про хештаблицы. И за 10 страниц там 5 раз большим шрифтом написали, что вам нахуй не нужно знать реализации хештаблиц, а суть этой главы уместилась бы в полстраницы нормальным шрифтом и без воды. У меня такое ощущение, что из любой книжки по джавакору ты про алгоритмы больше узнаешь.
Никак, вот прям совсем. Джава-апплеты почти не юзались даже когда были живы, ибо всем было похуй на них, все флеш юзали. Удел джавы (как платформы, а не языка) - сервера, андроид и немного десктоп.
>>1914460
Клиент какого-нибудь клиент-серверного приложения, или вообще браузер. Там могут быть и треды, и XML, и jdbc, и гуй на свинге.
Вакансии в этом случае не показатель.
Swing всё ещё много где используется. В основном - в корпоративных системах, в интранетах.
А Java FX используют долбоёбы, лишённые интуиции, в своё время купившиеся на рекламу.
Но, для вкатыша это всё не интересно, да.
>Джава-апплеты почти не юзались даже когда были живы
>все флеш юзали
Сынок, скока тебе годиков? Ты знаешь, когда появился флеш, а когда апплеты?
И не юзались где?
На публичных сайтах в интенете? А нахуя они там нужны?
Тебе кто-то сказал, что джава - это устаревшая технология?
И ты теперь бегаешь и ищешь этому подтверждения?
Паттерн поведения ебанашки.
В джаву вложены миллиарды долларов.
Это единственная современная технология, позволяющая писать масштабные, высокопроизводительные, и, при этом, maintenable системы. На чём ещё их, по-твоему, можно писать?
А двачер такой ждёт, что вот сейчас, раз - и она исчезла.
Да твои дети успеют состариться, а джава всё ещё будет, сынок.
Да, и хуле?
>>1914669
Чуть не забыл.
Добавлю ещё, что ты (как и очень многие другие люди), скорее всего, почти каждый день видишь интерфейсы, сделанные на Swing.
Просто не знаешь об этом.
Речь идёт о POS-терминалах в супер-гипер-маркетах.
Также, поскольку мне известно, интерфейсы многих трейдинговых систем сделаны на Swing, потому, что FX просасывает на отображении большого к-ва данных. А уж как просасывает JS, даже и говорить не надо, я надеюсь.
Думаю, что можно и ещё поискать.
Например - IDEA и все её производные, лол.
Алсо, по текущим данным Swing будет поддерживаться до 2026 года.
Но, что-то мне подсказывает, что этот срок передвинут, когда он станет поближе. Ибо, для ряда применений альтернатива пока и не предвидится см. выше.
Собирается градлом, проект большой, куча саб-модулей. Я использую Идею, но время компиляции - очень медленное.
Вопрос - как это решать? Нативный идеевский билдер казался быстрее из-за инкрементальных билдов. Чому градл такой медленный? Или это норм, поменять одну строчку и ждать 30 сек компиляции?
настрой его в многопоточку, градл это умеет.
алсо градл собирает только изменившиеся модули, те, что были скомпилены ранее - не трогает.
Тогда есть смысл покопаться в нём, спасибо за информацию.
спроси у ментора, какие технологии они используют, и читай по ним статьи и книжки
Как. Та же херня. Но уже 6 месяцев. Да, боятся давать что-то сложное или переделать существующее. Девиз «если работает - не трогай».
Пишу свои проекты в рабочее время.
Я в ДС2 за 30к продался. Соглашайся, уволиться всегда успеешь.
Проверил несколько раз на том же наборе данных, все должно работать, а возвращается страница, как будто tags либо пустые, либо неправильные. Данные правильно создаются, запустил сервер на той же бд, вручную вбил запрос, работает.
Алсо, если вместо
this.mockMvc.perform(get("/page").param("tags", "два+3три"))
писать
this.mockMvc.perform(get("/page?tags=два+3три"))
Спринг обрабатывает точно так же.
Может, я бревна в глазу не вижу.
Точно
На всякий случай попробовал, но то же самое.
Пиздуй на сканлибс, выбирай понравившуюся книгу и раскуривай в свободное от жевания говна время. Вот уже десять лет так делаю. ОЧЕНЬ дохуя когда эти вложения окупились.
В основном спрашивали про Spring и весь сопутствующий ему стек. Довольно много вопросов было по SQL, но не глубоких, в основном просто пытались прощупать насколько широк кругозор.
Если кому интересно, когда мы через форму
<form method="GET" action="/page">
<input type="text" name="tags">
<button/>
</form>
отправляем GET запрос, он автоматически меняет пробелы
"tag1 tag2" на "tag1+tag2", а сервер обратно преобразует '+' в пробелы.
Если мы через форму отправим "tag1+tag2", то это будет выглядеть "tag1%2Btag2", но если вручную забьем в адресе "tag1+tag2", то все будет окей.
mockMvc эмулирует запрос через form, вот тут я проебался.
Интересные проекты - это где легаси-реакт переписывают на свелт, выпиливают устаревший и немодный кубернетес и клепают GraphQL API?
define интересное
Ты имеешь что-то против xml?
>Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ?
>A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.
Вкатился в 2014 на джавараше. Куда пизже для начинающего всяких едживиков.
>на джаве ничего интересного не пишут
Ну, смотря что считать интересным. Если бекенд не интересен, то, наверное, в современном ИТ для тебя мало что интересно будет.
Жаль, что SOAP и JAXB не поддерживают YAML.
>отступы из пробелов (символы табуляции не допускаются) используются для обозначения структуры
Ну и хули ты тогда про табы пиздишь? Любой нормальный редактор заменит твои табы на нужное количество пробелов
И да, дрочить табы, гораздо быстрее, чем три ебаных символа, каждый из которых ставится через нажатие shift - <, >, /
В нем есть что то вроде HotSwap/Hot reload - чтобы разработку сделать проще? А именно, сохранил изменения к классе, и без перезапуска аппликухи увидел изменения? А то сейчас апп стартует около 30 сек + пока доберешься в нужное меню - очень неудобно после веба (реакто-ангуляров)
Вопрос: как это лучше сделать?
- вручную загрузить static контекст через FileReader или Stream из простого текстового файла, вручную настроив assert-ы, если кто-то криворуко их заполнит, String A не будет в БД и тд.
- использовать какой-то xml с настроенными параметрами, чтобы что-то проверяло их на правильность, и еще неплохо было бы автоматически загрузить все в Map
Если второй вариант, то какую зависимость использовать?
Набросал хеллоуворлд на свинге с диалоговым окном, показываемом по нажатию кнопки, запустил жарник в идее в режиме дабага, изменил текст в диалоговом окне, жмакнул "Compile And Reload File" в меню идеи, закрыл и открыл диалоговое окно, текст изменился. Видимо, работает, но хз, что у тебя там за проект, может, в реальном проекте не прокатит.
Дебаггер в Идее перезагружает классы при изменении.
Т.е. надо запускать приложение в debug режиме.
Но, надо понимать, что чудес не бывает.
Ньюфаги об этом часто забывают.
Если у тебя уже создан объект в памяти (напр. форма или любой другой), то, его свойства не изменятся при перезагрузке класса.
Например, если у тебя создаются две одинаковые формы, ты можешь одну создать со старыми свойствами, а другую - с новыми.
Кстати, в жс hot module reload тоже своеобразно работает.
Он не просто пере-загружает модуль, он его ещё и пере-выполняет.
Что далеко не всегда в кассу.
Так я спрашиваю есть ли бегуны, какие подводные?
Вы чё, все мышкой кодите шоле? Бля, ребзяяят
public static List<Cock> givenCocks() {
return List.of(Cock.builder()
.suck(new Dick())
.build());
}
Есть второй статический метод, который пытается менять переменную suck у первого:
public static List<Cock> givenCocksWithNullSuck() {
givenCocks.forEach(cock -> cock.setSuck(null));
return givenCocks();
}
По сути, я же во втором методе поменял значение переменной на null, но почему мне возвращается тот же самый список объектов, если бы я их доставал из givenCocks()? Стримы не юзаю, терминальные операции не нужны. ЧЯДНТ? И как мне сделать так, чтобы givenCocksWithNullSuck() возвращал список объектов со значением null в переменных suck? Есть такой вариант, но на код ревью сказали, что лучше заменить на forEach.
return givenCocks().stream()
.peek(cock -> cock.setSuck(null))
.collect(Collectors.toList());
Ты в givenCocks() создаёшь новый список, а в givenCocksWithNullSuck() обращаешься к статической переменной, а эта переменная так и пропадает.
https://stackoverflow.com/questions/26655875/spring-boot-redirect-http-to-https,
теперь браузер ругается, что часть контента на странице не защищена. Как профиксить?
>Как вкатиться из PHP в яву?
Зачем? Ты на Яве фрилансить не сможешь, а пока будешь вкатываться, мог бы набить опыт на пхп.
потому что ты в третьей строчке второго метода, после return, тупо вызываешь первый метод, заново конструируя лист с пососанным хуем, и возварщаешь его из метода. это равносильно тому что вся эта поебень в начале второго метода вообще на мусорку работала, можешь ее закомментить и все будет работать так же. по сути метод-зеркало.
Вопрос чисто по Intellij IDE.
Можно ли там каким-то способом настроить многострочные комментарии так, чтоб они во всей многострочной массе нормально автопереносились до самого конца комментария, а не только на следующую строку? Например если написал коммент на 10 строчек с автоврапом, а потом вернулся куда-нибудь в середину и что-то дополнительно написал, текст не разъезжался как ноги старой шлюхи строкой ниже, а нормально автоформатировался по ширине до самого конца абзаца, как это происходит в ворде например?
ах да. попробуй ретерн перенести во вторую строку в начало, а третью вообще снеси. или создай локальный лист, запиши в него результат преобразования лямбдой, и потом верни.
Идея при запуске программы выводит в консоль командную строку запуска.
Она свёрнута по-умолчанию, разверни и посмотри.
непосредственно вернуть конечно нельзя, я немного заебланил с первым предложенным способом. фореИч возвращает null потому что
Добавь в помник
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
И запускай java -jar myapp-jar-with-dependencies.jar
Добавь в помник
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
И запускай java -jar myapp-jar-with-dependencies.jar
я по гайду сделал
Caused by: java.lang.ClassNotFoundException: vk.FirstTest
public static void main(String[] args) {
}
@Test
public void firstTest() throws FileNotFoundException {
> out
> Build Artifact
> скачивание жарников вручную
пчел, лучше разберись с мавеном, ты же охуеешь для какого-нибудь спринга тащить все зависимости. Да и собрать сможешь потом только через идею.
java.lang.UnsupportedClassVersionError: com/company/Main has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 55.0
Как заметки ведете?
Дохуя же всякой инфы. Каждый раз с нуля гуглить не хочется. Просто закладки в браузере - тоже не прям удобная штука.
Я вот пока 2 варианта вижу: MS OneNote или Trello
Че скажете?
Самописная недо-вики + 100500 текстовых файлов.
Google keep.
Почему ты так ответил?
У меня на доп потоках рассчеты, а на основном ввод - вывод
Есть класс Event - ловит события.
2 доп потока должны сделать рассчеты, затем первый сделавший ждет. Второй выведет в консоль знак и занулит значение кнопки, затем пробудит первый. Больше они к рассчетам не попадут. Это та часть, что работает как надо. А теперь то, что не работает:
В основном потоке цикл должен поймать нужную кнопку и разрешить рассчеты. Если посмотреть значение кнопки в основном потоке - все норм, реагирует на нажатия корректно, но в то же время в доп потоках всегда false. Соответственно рассчеты запускаются лишь один раз, затем кнопка зануляется и все. Это одна и та же статик переменная, чому она разная в моем случае я никак не понимаю.
Примерно так
int a = 0;
public void start() {
thread1.start();
thread2.start();
while (key) {
if (Event.getButton().equals("enter")) {
Event.setEnter(true);
}
System.out.println(Event.isEnter()); // вывод корректный
/
что-то делаем
/
}
}
public void run() {
while (key) {
System.out.println(Event.isEnter()); // выводит всегда false
if (Event.isEnter()) {
/
рассчеты
/
synchronized (lock) {
a++;
if (a < 2) {
try {
lock.wait();
} catch (Exception e) {
}
} else {
System.out.println("!");
a = 0;
Event.setEnter(false);
lock.notifyAll();
}
}
}
}
}
У меня на доп потоках рассчеты, а на основном ввод - вывод
Есть класс Event - ловит события.
2 доп потока должны сделать рассчеты, затем первый сделавший ждет. Второй выведет в консоль знак и занулит значение кнопки, затем пробудит первый. Больше они к рассчетам не попадут. Это та часть, что работает как надо. А теперь то, что не работает:
В основном потоке цикл должен поймать нужную кнопку и разрешить рассчеты. Если посмотреть значение кнопки в основном потоке - все норм, реагирует на нажатия корректно, но в то же время в доп потоках всегда false. Соответственно рассчеты запускаются лишь один раз, затем кнопка зануляется и все. Это одна и та же статик переменная, чому она разная в моем случае я никак не понимаю.
Примерно так
int a = 0;
public void start() {
thread1.start();
thread2.start();
while (key) {
if (Event.getButton().equals("enter")) {
Event.setEnter(true);
}
System.out.println(Event.isEnter()); // вывод корректный
/
что-то делаем
/
}
}
public void run() {
while (key) {
System.out.println(Event.isEnter()); // выводит всегда false
if (Event.isEnter()) {
/
рассчеты
/
synchronized (lock) {
a++;
if (a < 2) {
try {
lock.wait();
} catch (Exception e) {
}
} else {
System.out.println("!");
a = 0;
Event.setEnter(false);
lock.notifyAll();
}
}
}
}
}
Какая тупая херня получилась, я не знал что так бывает
int a = 0;
public void start() {
thread1.start();
thread2.start();
while (key) {
if (Event.getButton().equals("enter")) {
Event.setEnter(true);
}
System.out.println(Event.isEnter()); // вывод корректный
что-то делаем
}
}
public void run() {
while (key) {
System.out.println(Event.isEnter()); // выводит всегда false
if (Event.isEnter()) {
рассчеты
synchronized (lock) {
a++;
if (a < 2) {
try {
lock.wait();
} catch (Exception e) { }
} else {
System.out.println("!");
a = 0;
Event.setEnter(false);
lock.notifyAll();
}
}
}
}
Какая тупая херня получилась, я не знал что так бывает
int a = 0;
public void start() {
thread1.start();
thread2.start();
while (key) {
if (Event.getButton().equals("enter")) {
Event.setEnter(true);
}
System.out.println(Event.isEnter()); // вывод корректный
что-то делаем
}
}
public void run() {
while (key) {
System.out.println(Event.isEnter()); // выводит всегда false
if (Event.isEnter()) {
рассчеты
synchronized (lock) {
a++;
if (a < 2) {
try {
lock.wait();
} catch (Exception e) { }
} else {
System.out.println("!");
a = 0;
Event.setEnter(false);
lock.notifyAll();
}
}
}
}
В голове. Остальное гуглится на раз. К тому же годный контент на паре ресурсов всего, вроде метанита.
Как минимум, какой-нибудь долбоеб не создаст несанкционированный объект того, что определено как энам. По энамам можно свитчиться и итерироваться и прочие такие фичи.
Проиграл с этого погромиста. Самых базовых механизмов языка не понимает, но зато у него ПАТТЕРНЫ. В какой-нибудь онлайн-школе научили? смузи выпил уже с утра?
Одна и та же вещь, объясненная много раз разными словами, становится понятнее.
Умное слово для замера времени выполнения разных частей программы. Используется для поиска узких мест (буде таковые имеются и требуют доводки) с дальнейшим их перепилом.
Спасибо, Анон
Сделал недавно пет проект для изучения Spring, где можно найти человека на code review, чтобы сказал насколько все хуево?
Программист/Кодер/Разработчик/Девелопер/Инженер-Программист/др.
?
Вопрос2:
Как обычно называете свое резюме?
На русском то Java-Разработчик, то Java-Программист
На английском вижу (в том же linked.in) Java Software Engeneer
хуй разберешь
Интересно, что будет, если тебе ответит тот же чел на дваче, который будет проводить собеседование.
Я писал в резюме Java-разработчик
Я писал что-то в духе "Разработчик Java (back end)".
Правда, нахуй не понадобилось, устроился не через вакансию.
Мне кажется, что это должны быть именно интерфейсы с 1м методом read(byte[])/read(char[]) ну и возможно с несколькими перегрузками типа размера массива в который это помещается read(byte[], long a), но это никак не должны быть абстрактные классы.
Я ответил пока себе так:
раньше в java не было такого разнообразия функционала у интерфейсов, не было default, static, private и static private методов, которые окончательно стёрли грань между абстрактным классом и интерфейсов, поэтому криво забабахали раньше, а сейчас уже переписывать слишком накладно
где я неправ?
Мне кажется он будет долго ржать.
> ведь это концептуально неверно??
Мне кажется, что как раз-таки использование дефолтных методов в интерфейсах концептуально неверно. Интерфейс - это описание контакта взаимодействия с сущностью, а не реализация. Реализация уже должна быть в (абстрактном) базовом классе. Дело скорее в том, что абстрактные классы почему-то нынче считаются плохим тоном, поэтому их функционал тащат в интерфейсы. Жду, когда в интерфейсы добавят динамические поля и конструкторы, и тогда в джаве появится проблема с множественным наследованием.
Он был студентом-вкатывальщиком и изучал джаву.
Задумайтесь, что вы учите.
Инженер Программного Обеспечения.
А что должно произойти для целесообразности теоретически?
Или ява и JVM сама по себе слишком сложная для таких дел?
Просто мне нравится она, как язык, но не хочу всю жизнь сидеть в энтерпрайзе, а андроид совсем другая сфера, куда будет сложно перекатиться.
Он няшнее этой тянки был. Мог бы в гей-шлюхи податься.
Откуда ты знаешь, что он изучал? Если нет проектов на гитхабе, то это хуйня, а не изучение.
Хз. просто джава - это когда нужно написать большой проект с расчётом, что потом поддерживать 10+ лет. А для остального всякие пхп/js/питоны.
Перекатиться всегда успеешь, хоть в андроид, хоть куда. Это даже не обязательно джава может быть, а какие-нибудь Go, C#, Kotlin, вдруг тебе что-нибудь понравится.
У него в пасте предсмертной было что-то написано про коллег и таски.
А на всякие пхп/js/питоны после джавакора норм будет, если мне спринг не зайдет?
Легко, порог вхождения очень низкий, поэтому туда и хотят все вкатиться.
>изучал самый популярный много лет подряд ЯП
>имплаинг это что-то значит
ты бы еще сказал что он изучал английский, зодумайтесь на чем вы доки читаете
Если уж такой вопрос тут, то в ближайшее время мне предложат самому себе выдумать должность на эту тему. Что лучше написать чтоб это оказывало минимально положительное действие для последующих возможных HR-ов?
>>написать чтоб это оказывало минимально положительное действие для последующих возможных HR-ов?
"хуила программерская"
Быстрей бы в Вальгаллу.
Мне вопрос показался довольно несерьезным.
Зачем тебе:
>>оказывало минимально положительное действие для последующих возможных HR-ов
?
На джаве вообще когда-то писал Гитлер, о чём ты.
потому что до этого я работал... каким только долбоебом не работал, у меня трудовая это мини-реестр профессий. на программировании я хочу зафиксироваться, и наверное более менее хорошо иметь там запись которая соответствует отрасли, а не какое-нибудь быдлячье "програмизд" (контора не специфическая, просто отдел автоматизации большого предприятия)
Я возможно долбоеб, на зачем нужен этот охуительный цикл в таком виде? чем старый добрый сячий плох? Он же как раз максимально универсальный и с ним можно решить че угодно, что вообще может цикл.
Там написано как это ебать-модно и стильно. И еще какая-то хуйня про то что переменную итератор нельзя менять или юзать из тела цикла. Но это же наоборот хуёво, из-за этого иногда приходится даже для обычного перебора коллекции пихать
...fori вместо foreach
Он гулял по впискам и ебал шлюх. Хороший уважаемый язык, учите дальше.
Ахуеть, много людей так разбираются в Java, как автор статьи?
Я так и не понял фокус с кэшем.
Integer[] arr = (Integer[]) field.get(null);
arr[130] = new Integer(1_000_000);
Почему 130?
Константы - ОК, а вот мутабельные поля в которых какие-то данные хранятся - не ОК.
Вообще сейчас принято иметь некий синглетон который хранит эти данные и создавать его Спрингом или ещё каким DI.
>Почему 130?
Просто некий средний элемент. Размер кеша по дефолту 256, первые 128 элементов это -128...-1, дальше идут 0...127.
130 это кэш для Integer(2)
Скорее знания Java-машины. К языку эта вся поебень особенностей реализации не имеет никакого отношения. Но автор хорош, лезет в низы.
CLOUD DATA ENGINEER
Приведите примеры, плез
Смысл понимаю зачем так делают. Кажется, это из принципов SOLID или еще откуда-то. Типа лучше всегда бахать более общую мутку(List), чтобы потом можно было заменить ArrayList на что-то другое.
А в чем тут полиморфизм?
В том, что мы как раз можем в эту переменную присовывать присваивать объекты разных классов?
Queue<String> asQueue = new ArrayDeque<>();
Collection<String> asCollection = new ArrayDeque<>();
Объясните на говне и палках мб на картинках суть временной сложности алгоритмов N(1), N(O), N(N log N) и др.
В гугл пиздуй.
Суть в том, чтобы показать функцию зависимости времени работы алгоритма от входных данных. O(1) - не зависит, всегда время примерно одинаковое, O(log(N)) - логарифмическая зависимость, как в каком-нибудь бинарном поиске, O(N) - как у линейного поиска, где просто идёшь по массиву подряд и ищешь нужное значение, O(n^2) - квадратичная, как в какой-нибудь сортировке, где есть внешний и вложенный цикл, и т.д.
Но не обязательно времени, это может быть зависимость по памяти, как в некоторых сортировках, которые создают вспомогательный массив.
Важно, что это именно функции зависимости, без реальных коэффициентов. Например, O(N) может быть на самом деле 10N. Поэтому нельзя говорить, что O(N) всегда лучше O(N^2), если реально там 100500N и 0.1N^2, и очевидно, что на маленьких данных квадратичный будет лучше линейной.
Спасибо, Анонио
Нашел еще статью, всё равно еще не прям кристально всё ясно. Но проясняется как и большинство в кодинге, раз за разом прогоняй одно и то же, будет становиться всё яснее
С картинками (графиком) получше воспринимается
https://habr.com/ru/post/188010/
Дрочни на книгу Лафоре, там базовые алгоритмы на жабке с нуля. Если конечно ты не ленивое хуйло.
Разбиение числа на слагаемые:
Дано число. Например 5.
На выводе будет:
1 1 1 1 1
2 1 1 1
2 2 1
3 1 1
3 2
4 1
5
Решить через рекурсию.
И че ты от двача хочешь?
<T> T min(Comparable<T> t1, Comparable<T> t2)
Вот это параметрический полиморфизм. А перегрузка это ad-hoc-полиморфизм.
ТЕЛО рекурсии:
рекурсивный вызов (список [n-1, (хвост списка)] , n-1)
БАЗА рекурсии n = 1
вывести n и список, гудбай нахуй ретурн водочки нам принеси мы из стека летим
Думаю разберешься.
Как молодому и перспективному человечку продаться в офисное java рабство без образования?
Базовые знания жабки, сертификат пройденных курсов, грамотно реализованный туду-лист на гитхабе, полгода занятий с репетитором по английскому.
Но ты ведь развивальщик-хуесосник через анеме и борды, не так ли.
Жирновато
Что лучше подойдёт для этих целей Spring Boot/Swing? Где меньше возни и потенциальных проблем?
Ясен болт спринг, накой кому-то сдались настольные приложения?, просто сделай простенький интерфейс, и используй spring data c пупернейтом.
Через жопу твоей мамы пойдет.
Ты к чему хотел доебаться именно? Что крудошлепство == 90% вакансий на жабке == туду-листы по функционалу?
Легко, сейчас зима, а значит, у тебя есть ещё целых полгода на подготовку к ЕГЭ (или как это сейчас называется) и поступление в вуз. Через 4 года возвращайся, удачи ^_^
удалял такие штуки(по рекомендациями интернетов):
~ / Library / Preferences /
~ / Library / кэша /
~ / Библиотека / Поддержка приложений /
~ / Library / Logs /
что-то не сработало(
Ахахах, думаешь, если бы всё было так просто, хоть кто-нибудь юзал бы коммунити-версию?
Слуш, ну оно по-любому где-то в аналоге реестра сидит и его можно удалить.
Если было бы просто -я бы не спрашивал.
Но не значит, что это прям какая-то загадка вселенной, ну я так думаю.
> оно по-любому где-то в аналоге реестра сиди
В этом и прикол, что "где-то", не магия же, а вот где именно - почти никто не знает.
тг / sniarbtej
Вопрос был не про то, как стать охуенным синьор-помидором, а как вкатиться. С этим набором уже можно начинать искать, конечно же будут слать много где, но шансы уже > 0.
Так-то конечно надо бы знать уже и скуэль и докер-хуекер, спринг и еще кучу всего
Я тоже так думал, а затем вспомнил, как соединял таблицы через hibernate c помощью @ManyToOne, @JoinColumn и он отказывался. Тогда ответа не нашёл, пришлось для каждой таблицы первичным ключом сделать Id (Integer + Autoincrement). Сейчас у меня несколько первичных ключей - Varchar, изменять не вариант. Как это обойти?
>пупернейт
Что это?
https://www.ozon.ru/product/spring-5-dlya-professionalov-149092813/?utm_source=google&utm_medium=cpc&utm_campaign=RF_Product_Shopping_Books_newclients_super&gclid=CjwKCAiA9bmABhBbEiwASb35V8K4zWLUWnDgazmpvYWEmfWrgXnqtM71PxAedYfcGX4JNciqF75MHBoCfIkQAvD_BwE
Эта книга хорошая?
Туториалы на спринге 4 стоит проходить?
Я вообще раньше сидел на emacs, но потом костомизировал vscode и он у меня стал выглядить почти как емакс. Чисто белый лист с хоткеями. Я ненавижу когда на экране есть что-то кроме строк кода. Это ж пиздос.
Это на каком языке можно так быдлокодить? На жс?
Статья старая. И там вообще Спринг3. На момент написания статьи спрингу4 было сильно меньше чем сейчас 5ому.
Так насколько я понял из контекста твоего ответа можно начинать со старых версий спринга и не будет проблем?
Например читая статьи по 8 джаве, когда у меня стояла 11 я проебал знатное количество времени, пока не узнал, что там кое что перестало работать.
>Так насколько я понял из контекста твоего ответа можно начинать со старых версий спринга и не будет проблем?
В новых версиях есть новые подходы и лучше учить их.
порешай на Степики задачки из адаптив жава. После 2-3-4 задач пришлют ключик - типа ты молодец сложную задачу решил.
Я так понял что дают, должны дать
Выучил я Жаба кор. На сервлетах, SQL и JSP написал тестовый сайт с простенькой регистрацией. Окей, этот этап я понял. Не досконально, но как это все работает более-менее ясно. Решил сесть за спринг, и ни один из туторов(знаю только русский и английский) не объяснил ничего нормально. То есть, буквально, смотришь - а там тебе говорят "Вот делаем так и так, и получаем так". А что делаем и зачем, и что эти слова вообще значат - не объясняется.
Не прошу обучить меня Спрингу, но, прошу, скажите, где его можно выучить самостоятельно без финансовых вложений? Книги, бесплатные курсы(возможно, на Ютубе), и тому подобное. Буду очень благодарен
Начать с глубокого понимания что такое IoC и DI как частный случай, потом можешь свое приложение попробовать переписать используя только DI модуль спринга (собственно основной) путем делегирования тех мест, где ты создаешь свои объекты - спрингу.
Ну и вообще spring in action в качестве книги и оф. документация спринга на английском это вроде более чем достаточно? Вики статьи по аббревиатурам выше сам найдешь и все там выдрочить.
Да и плюсом можешь вообще обзорно глянуть на други варианты исполнения DI в жабоебском мире - google guice например
На ТыТрубе ищешь "Борисов Spring"
Книги Spring in Action (для начала) и Pro Spring 5 (более детально)
Ну и Spring Framework Documentation на spring.io
>На сервлетах, SQL и JSP написал тестовый сайт с простенькой регистрацией.
а такому где можно научиться?
На джавараше
https://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat
Осталось там только скуэль прикрутить
На три (3!) месяца
Запускаю томкат из под эклипса.
Зачем там нода?
Все аопросы к эклипсу, сервлеты не при чём.
если совсем тупой (как я) на рутрекере есть курс Spring & hibernate (там негр какой-то ведет его). Но он на английском. Там все поэтапно расписывается каждый шаг
Не негр, а афро-джавист
Пукаю
Не юзал, но тут говорят, что он топчик, потому что там есть какие-то приколюхи с модулями.
Не знаю, какие приколюхи, но в нем банально имя и версия проекта задаются в разных файлах + нельзя использовать параметры для указания версий зависимостей. Нахуя на него спринг бут перешел, не знаю, наверняка там одни костыли ебаные.
Посты в день за последние 5 тредов.
До, но в первом несколько глав и во втором больше половины можно пропустить (вернуться, когда понадобится).
Понял, а почему не полное руководство Шилдта тогда? На озоне почему-то его заместо томников советуют
Мне он почему-то не понравился когда-то, то ли слишком многословный, то ил ещё что-то, не помню.
В Шилдте нет готового кода с примерами, только куски. И чтобы потрогать код тебе остальную часть программы придется дописывать.
Если не с нуля можешь попробовать Хорстманновский Java for Impatient. Он написан типо для тех, кто знает другие языки. Там даже задачи есть. Но я не осилил, так как с нуля.
Окей, спасибо за совет
Ладно.
Вкатывайтесь в питон, а потом, есл уж так сильно жизнь прижмет, будете вкатываться в жабу с сильной базой, что сделает вас привлекательее на фоне местных жабаманек, которые, кроме видосиков по спрингбуту, ничего не видели и не знают.
И к тому же толстота.
>от самого главного — алгоритмов и структур данных.
Но почему то в популярнейшей энтрилевел книжке по алгоритмам на питоне про хешмапу и некоторые другие структуры данных 5 раз большими буквами написано "вам никогда не надо будет знать реализацию, все реализовано до вас". Так много раз это повторено, что могли бы столько же места потратить и написать наивную реализацию.
а че не в паскаль сразу
4 годика порешаешь олимпиадные задачки на заливку красного черного ануса краскала через очко дейкстры и в принципе можешь вкатываться в джаву пилить круды
>энтрилевел
так то оно так. Но вкатун прочтет и подумает, что реально не надо, а не перейдет к следующей по сложности книжке.
Как только все сидящие в этом треде шарписты, рубисты, питонщики, гоферы, джаваскриптеры и котлинисты закончат школу.
Можно, но не нужно
Разве это не тупо - конфиг держать внутри исполняемого файла и при каждом пуке пересобирать или лезть архиватором внутрь?
Поясните по хардкору, это просто дебил делал или так исторически сложилось или есть какой-то неочевидный плюс в этом?
В чем блять прикол, чем это отличается от хардкода?
Можно хранить дефолтные значения + placeholder'ы и при запуске jar'ника указывать путь к конфигу, откуда будут браться значения для override'а.
В доке в основном про .properties, но для yaml суть такая же:
https://docs.spring.io/spring-boot/docs/1.5.22.RELEASE/reference/html/boot-features-external-config.html#boot-features-external-config-placeholders-in-properties
В результате @ConditionalOnMissingBean в автоконфигурации не матчится с бином, который я добавляю в ApplicationContextInitializer, и у меня создаются два бина одного класса
Как можно заставить ApplicationContextInitializer выполниться до резолвинга автоконфигураций? Или как-то это по-другому пофиксить
Это да.
Основная база на Postgres, накатывается через liquibase
Я чет как-то хуево понимаю как мне это всё заделать. Впервые такая задача.
Можете подсказать гайд какой-нибудь ?
Гайдов-то полно
https://www.baeldung.com/spring-testing-separate-data-source
https://www.baeldung.com/spring-jpa-test-in-memory-database
Для тестов обычно нет liquibase/flyway, там напрямую хуярятся скрипты с DDL/DML и потом дописываются по мере необходимости.
Взамен могу с удовольствием помочь в сфере фитнеса, тренировок, питания. Я в этом уже неебаться сеньер. Если нужны какие-то деньги, то много не смогу предложить, но если что какую-никакую копеечку дам.
телега @FLEX_STOP_ME
Стабильность.
Ну пресса нет, не успел сделать. На сноуборде упал и оторвал бицепс, теперь лечение.
Вот фотка с более давних времен, где более сухой.
Сейчас за 2 месяца не успел нихуя был ни набрать, ни просушиться и к лету просто буду худеть, чтоб не выглядеть как долбоеб.
Или просто в шлюхи. Но идею поддерживаю.
Да бляяяять.
Когда а4 этот дострою надежсь дверь в ойти мне откроется.
рейт идею.
хотя я и так в айти, но хочу в джава ентерпрайз
Стэп бай стэп
Приезжай, хули. Спринг обьяснишь.
хуита ебаная
такое ощущение, что ты рандомными словами эти кирпичи заполняешь. притом, если такой парашей заполнять, то на core всего этого листа не хватит с двух сторон. что такое sout например? шорткат из идеи? серьезно? жава кор? охуеть. и концептуально это тоже отсасывает. ты не можешь просто написать "static" и запомнить под этим какую-нибудь залупу для младопидоров типа "поле общее для всех объектов класса", как это пиздят на каком-нибудь джавараше. Потому что многие ключевые слова в джава имеют множество семантик в зависимости от контекста применения, и все их сразу ты технически не ухватишь - нужны знания в областях, которых ты еще не коснулся, "все связано со всем".
не благодари за то что я все это обосрал.
На самом деле лучше обосрать с ног до головы, чем ничего. Так что спасибо, анончик!
А на счет статик да, именно то что это поле общее для всех классов я только это и знаю.
общее для всех объектов, ты хотел сказать, но это ебланский способ об этом думать. надо воспринимать его как принадлежащее классу, и обращаться к нему от класса через оператор точки, а не от объекта, хотя синтаксически можно и так и так. static имеет не особо похожий смысл, если им помечается вложенный класс. вообще, надо прежде всего воспринимать static как особый вне-объектный контекст, а не как какие-то там общие поля.
>>1925101
заткни ебло
Пиздец про этот статик можно целую книгу выпускать ебать его рот.
И сколько всего такого предстоит - страшно представить. Но глаза боятся, мозг запоминает, руки делают.
Хорошо тем, что время от времени можно посмотреть на это и понять: "вот тогда я знал столько, а сейчас вооот столько". Видеть свой прогресс очень важно. Но свои проекты (тот же fuzbaz, number
gesser) для этого подойдут лучше.
Надеюсь ты догадался эти два куска по очереди запускать, комментируя второй, а не все кучей?
При ветвлении тип получается (точнее сохраняется) либо long, либо double (как надо).
С тернарным оператором - всегда double, то есть ветка else.
Я думал, что неправильно его написал, но idea генерирует такой же.
>>1925516
Немножко поковырявшись в твоем говне, вангую, что тернарный оператор смотрит на ОБЕ свои выходные ветки, и действует согласно правилу приведения типов для любых бинарных операций, а именно тупо приводит его, во-первых, к более широкому, а во-вторых к плавающеточечному, если хотя бы один операнд такого типа. Потому что даже если написать пикрил, то аутпут соответствует все тому же правилу. Впрочем, любые комбинации типов суперкласса Number дают такую логику. Но раньше я этого тоже не знал например, да и вообще не юзаю тернарное говно. Буду знать что там надо опасаться если ковыряешься с типами облочками. Такое ощущение, что Идея сама не в курсе этой хуйни - это первый раз, когда автосимплификация вырожденного кода дает реально другой результат, чем без нее.
ты должен мне 15 минут моей жизни, сученок
Я пытаюсь переключаться в ide между ветками, но все одинаковое, либо у меня репозиторий сломанный.
> для каждой ветки надо заводить отдельный локальный репо?
Не нужно. По крайней мере до тех пор, пока тебе не понадобится держать несколько собранный веток одновременно.
Попробуй переключаться вручную из консоли через git checkout, может, что-то не то в иде ты делаешь. А может и правда репозиторий сломан.
Текстовый квест про трапа.
Квест про трапа на свинге.
Программу, которая скачивает все видео со страницы трапа в твиттере и каждый час смотрит, появились ли новые.
Двачую.
делаю спрингбут многомодульный грейдл проект,
вытащил конфигурацию log4j2 в ресурсы коммон модуля(не стартер),
подключаю коммон модуль в модуль с приложением
и приложение при старте выкидывает FileNotFoundException
Возможно ли подтянуть конфиг логгера из другого модуля? И если да, то как правильно задать? logging.config=classpath:log4j2-spring.xml не работает
Не хочется использовать конфиг-сервер для такого
Вот рил, немного не в теме. Плиз не кидайте палками.
Вот правда, не бейте.
Чё такое интерпрайз разработка? Не знал где ещё спросить, вы ж блять сука это пишете.
Вот например как я это понимаю:
Есть допустим школа. У школы есть софт с электронным журналом(в базе лежит), причём тупые бабки-учителя не могут нормально заполнить выданные фронтенд формы и они хотят чтобы в EXEL можно было вписать оценки и они хуярились в базу. И короче должен естественно быть менеджер ролей чтоб учителя могли ставить оценки, ученики смотреть(но только свою часть менять). Ну и чтоб были там одмины которые видят логи изменений. Ну и ты понел.
И вот этот весь софт это тырпрайз. Правильна?
Типа того. Представь аналогичную учётную систему в каких-нибудь банках, почтах или сетях магазинов.
Фреймворки начинай учить.
По-разному, у нас на проекте оба, например.
Так поступают только пидарасы или нормальные пацаны.
А что не так то? Если это ЮИ, то это нормально. У меня глаз начинает дергаться, когда я захожу на какой-нибудь сайт, а он мне GovnoNotFoundException и километровый стактрейс.
Поэтому считаю что на ЮИ отвечать 200 с кодом/текстом ошибки - это нормально. А вот если у тебя сервисы между собой двухсотыми общаются - ты долбаеб.
> А вот если у тебя сервисы между собой двухсотыми общаются - ты долбаеб.
Да вон в бугурт-треде уже четвёртый тред срутся про это, не могут прийти к консенсусу.
Но тут же возникли вопросы проектирования БД, которые я сам решить не в силах.
Так я предполагал, что у меня будет одна сущность "пост", под каждую доску своя таблица постов, а конкретная таблица должна мапиться в рантайме. Как понимаю, это невозможно, должны быть сразу описаны все сущности с указанием таблиц? Это убивает возможность добавления новых разделов без кода.
Насколько плохо иметь одну таблицу постов на все разделы? Есть ли другие варианты?
>Под ООП подразумеваются SOLID, GOF и прочее.
Core вроде прошел до определенного уровня.
sql, junit очень поверхностные туториалы прочитал(скоро поуглубленнее возьму).
maven, git, паттерны прямо сейчас в процессе
hibernate, spring уже выбрал книжки и учебные материалы.
html, css, js хз насколько глубоко нужны и откуда брать курсы.
jenkins вообще не знаю что такое - в вики прочел - не понял.
Спасибо)
Все верно. В принципе без CI, и фронтенда уже можно искать работу.
В спринге одного IoC не хватит, тыкай ещё data, web (rest, mvc) и возможно boot.
> под каждую доску своя таблица постов, а конкретная таблица должна мапиться в рантайме
Это возможно, но не делай так, потом охуеешь писать костыли. Создавай только одну таблицу. Если ты собираешься создавать по таблице постов на раздел, чтобы в каждом разделе была независимая нумерация, то это делается по-другому. Создаёшь одну таблицу постов, делаешь в ней столбцы id_раздела и номер_поста, затем таблицу с счётчиками номеров постов в разделах и индексом на id раздела, при каждом новом посте ищешь значение счётчика, увеличиваешь его, берёшь новое значение и инсертишь с этим значением пост. Есть ещё другой вариант с сиквенсами вместо этой таблицы счётчиков, но там всё несколько сложнее, нужно будет выполнять запросы DDL во время работы приложения + генерировать названия сиквенсов так, чтобы их потом можно было найти. Или, наконец, можно просто забить и делать общую нумерацию на все разделы.
Так и делаю, эти два поля у меня в составном первичном ключе. Только не получается замапить поле Post parent. репозиторий возвращает null
https://pastebin.com/4m85ybQe
https://pastebin.com/aPiy7kbh
С одной стороны можно отдельно первичный ключ одним полем задать, с другой - хотелось бы разобраться.
Зависит от загруженности очень. Могу весь день работать, а могу весь день залипать. В среднем 4-5 часов раюоты
В целом да, актуально.
1. Кор вдоль и поперек.
2. Ооп вдоль и поперек.
3. Коллекции так же. Часто спрашивают, да и вообще нужно хорошо знать. Отличие линкед листа от arraylist, как устроена хэшмапа. Вообще, чем больше коллекций знаешь, и знаешь как они работают, тем лучше. Сюда же стримы.
4. Jdbc достаточно поюзать, ничего сложного.
5. Скуль на уровне: написать селект, удалить запись, изменить запись, сделать инсерт, создать/удалить таблицу. Вообще - скуль очень нужная вещь. Ведь в джаве почти всегда надо работать с данными. Поэтому чем лучше знаешь - тем лучше для тебя. Но многому можно учится в процессе. В идеале еще посмотреть пару видосиков об индексах. Если будешь устраиваться на работу не в контору «дяди Коли», знание об индексах будет плюсом.
6. RDBMS. Выше уже написал про индексы, сюда же понимание что такое транзакции, ключи и прочее. На уровне понимания что это.
7. Хибер знать надо. А еще надо знать в каких случаях он лучше чем jdbc, а в каких хуже. Вообще достаточно обширная библиотека. Чем больше о ней будешь знать, тем лучше.
8. IoC и DI. Если говорить о спринге - его весь наверное знать вообще не реально. Но как уже писали, желательно потрогать дату, бут, ресты. Не кейс конечно, но если еще и будешь знать как оно работает - вообще круто.
9. Мавен да, ничего сложного. В 2021 думаю почти все мавеном собирают, но лучше хотя-бы потрогать градл. На всякий случай.
10. Тесты вдоль и поперек. На это много где смотрят.
11. Гит на уровне push, pull, fetch, init, commit, merge, branch. Понять зачем вся эта срань нужна когда пишешь один - не реально.
12. Просто знай что это.
13. Нужно будет 50 на 50. Хтмл, цсс - это вообще в школе вроде проходят. Жс я в свое время учил за неделю. Короче это лучше на последок оставить.
Можешь если хочешь телегу оставить, могу еще чего накидать.
>После питона голова кругом
Вообще-то в питоне классы-хуясы куда сложнее.
>замыкающиеся сами в себя
Так, ты ведь еще одна ебанушка, которая перепутала яву и яваскрипт?
Нет-нет, джава, ООП и програмирование на Джава, мб я чето путаю конечно, но нужна мне именно джава.
Мы на питоне писали программы уровня принт('говно'), а тут меня стали просит ебаторию лютую, что я не в состоянии код написать, который от меня просят. Поэтоиу пришёл просить учебники.
> Вообще-то в питоне классы-хуясы куда сложнее.
С чего бы? Из-за того что там есть множественное наследование, реализованное наркоманами, но никем не используемое? Или из-за того что там ненастоящее ООП?
Из-за того, что там можно бесконечно извращаться с процессом создания классов и экземпляров классов.
Чет много,мне мидлы затирали как они два часа в день кодят,а остальные время двочи исследуют,при этом ещё умудряются получать похвалу
Ну в жс вроде такого нет.
Как вы думаете норм идея сперва по вот таким видосам повторить без особого понимания, а потом уже книжку читануть по спрингу?
Да.
https://www.ozon.ru/product/java-biblioteka-professionala-tom-1-osnovy-150586176/?_bctx=CAUQt7pK
1-9 главы. Пропуская 5.7, 6.4, 6.5, 7,4, 8,9 - темы сложные и много времени отнимают, но начальном уровне выхлоп нулевой.
12 главу, особо не задрачивая, ибо там задрачивать можно вечность.
https://www.ozon.ru/product/java-biblioteka-professionala-tom-2-rasshirennye-sredstva-programmirovaniya-165524775/?_bctx=CAUQt7pK
первые две главы. Украдено на русском только 10 издание, но оно подойдет.
Всего вместе страниц 600 получится, считая листнинги. За месяц реально прочитать.
Ну и лекции из хорошей шараги:
https://www.youtube.com/playlist?list=PLm2nrlGYLq1Uv1qYpqMC07JYoOXilEQZI
И какая там такая жаваспецифика? По-моему проще и прозрачнее жабы нет языка в мире наоборот.
>В 2021 думаю почти все мавеном собирают
Хуя, боди-шопный раб не палится.
В какой же срани ты работаешь.
Когда-то за то, что я заявил, что стандартная библиотека (коллекции, стримы) - это не core, меня тут завсегдатаи обоссали, а теперь, типа, наконец-то это проходит норм?
Хуёр. Core - это семантики языковые, как какие конструкции работают. А все что на них написано и является стандартной библиотекой, это, блядь, стандартная библиотека. Например дженерики - это core, потому что для них выделен специальный синтаксис и многое что заточено в языке. Или реализация лямбда-выражений. Но вот стрим-АПИ это никакой не кор, это часть стандартной либы, которая серьезно завязана на части ядра языка в части лямбд.
https://youtu.be/NA6n1Xu7o_g
А есть что-то подобное про CRUD в виде Rest API?
А то я чет не очень въезжаю пока в во всю хуйню типа DTO и прочего, нормальный гайд не нашел.
Нужно что-то более разжеванное.
Подкиньте видео- или текстовый гайд, плиз
Хуяпи. Нет, хуйня, стандартная библиотека - это тоже кор, иначе бы вместо "кор" говорили бы "синтаксис". Не нужно вводить кучу путающих определений, всё равно нужно знать всё, и как ещё это одним словом назвать?
Глядишь, года через три и пятый спринг увижу
Термин "синтаксис" в применении к семантике употребляют только долбоебы. Нормальные люди четко это для себя различают на естественном каком-то уровне. Кор - это набор семантик языка, реализуемых через синтаксис. Есть языки со строго совпадающими семантиками, но реализованными через разные синтаксисы (C# и VB.NET например, или 1C на русском и нормальном синтаксисах). Как вообще блять программист может этого не понимать?
Абсолютно любую библиотеку (из стандартной джавы) можно завелосипедить/разобрать с нуля, зная Core, но ничего из Core нельзя разобрать "само по себе", не читая доков языка. В этом принципиальная разница.
Буду держать в курсе, это мой любимый чатик ^_^
На поддерево создаю в джаве кэш CuratorCache.build(..), вешаю листнер на него через .listenable().addListener, все работает заебись, ивенты приходят в листнер
НО в двух приложениях эта хуета работает через пизду: NODE_CREATED при создании ноды нихуя не приходят. Соответсвенно если удалить ноду, по которой мы не получили ивент NODE_CREATED, то и NODE_REMOVED не придет. А если апдейтнуть ноду, по которой не было NODE_CREATED, то придет NODE_CREATED (вместо NODE_CHANGED)
В какую сторону можно покопать? кластер ЗК один и тот же, но вот в некоторые клиенты так криво приходят ивенты
Просто везде пишут, что нужно знать кор, но ведь его можно чуть ли не бесконечно дрочить, особенно если готовиться к сертификации оракла?
Добавлю, что еще висит листнер на соединение с ЗК curatorFramework.getConnectionStateListenable().addListener(...)
Но он вообще нихуя не получает, а ивенты в это время проебываются.
>>1927960
Пчелик выше пишет, что кор не включает в себя стандартную библиотеку. Значит, ты должен знать кор, а также класс String, классы Integer и Long, несколько классов исключений, стримы, классы коллекций, базовая многопоточность (хватит Thraed, ExecutorService, Future и подобного).
Бесконечно учить ничего не нужно, хватит на уровне любой книги для начинающих.
В первую очередь потыкай SQL+JDBC. Ещё, возможно, основы HTML (да и понимание протокола HTTP не повредит). После этого уже можешь учить спринг.
String, Integer, Long - эт тоже часть Core, в некотором роде. Полукор, можно сказать. Потому что все это хоть и реализовано как классы, но имеет именно некоторые особенности языкового плана. Эти вещи инициализируются литералами, например, еще есть автобоксинг для типов-оболочек, String pool для строк и всякое такое дерьмо. Точно то же самое с тредами и исключениями - они тоже хоть и классы, но язык снабжен всякими механизмами кидания/отлавливания, синхронизации и прочим, которые работают только с объектами этих классов. А вот коллекции идут нахуй. Можно возразить, что они соприкасаются с ядром через способность итерироваться по foreach, но это может делать любой велосипед, реализующий Iterable, и вот его уже можно считать частью Core, с ним "магически" работает конструкция foreach.
Чтоб не ебать голову на тему кор-не кор, можно взять книжку шилдта, у него четко называется часть первая - "Язык Java". А всякая шелупонь навесная идет уже в части 2 - библиотека джава. Шилдт вообще грамотный чувак и шарит, странно что его талмуд здесь не в топе.
Пчелик-выше
А где вы хоститесь? Сейчас же минимум 8 на хостингах. Или вы bare metal берете?
наверное на каком-нибудь четвертом пне под столом они хостятся. видно же что бичи
Абажи, я в сбер собеседовался 3 года назад и там уже была 7-ка. Или вы прям умственноотсталые, что сидели на 6-ке?
У кого-то и спринг бут, что там семёрка. Сбер большой.
> отсталые
"Пока кобол работает, то обновлять ничего не будем". Так это и работает.
ты про котлин?
Хуй знает для чего. Очевидно, что сириус бизнес будет сидеть только на лтс с запозданием в несколько лет.
Я работаю в полной сране, но с мавеном это никак не связано.
>>1927721
В первую очередь я писал в контексте пикчи.
Развели тут какой-то холивар.
Зануда мод он
Гуглите Oracle Java Core. Там все написано. И мультитрединг есть, и сервлеты для ЕЕ, и даже про ГЦ написано. Но если с этой стороны смотреть - тогда не пишите код вообще. Цельтесь в получение Oracle OCA/OCP. За вами очередь будет стоять из ХеРок нет
Зануда мод офф
А если серьезно, какой смысл спорить. На чистом синтаксисе, без знания стандартной либы, хотя бы на уровне того, что используется каждый день (стримы, обертки, дженерики, итд) - вы идете нахуй. Именно это в большинстве случаев и подразумевается, когда говорят Java Core
Анон, какие есть годные спираченные курсы с рутрекера? Помню пару лет назад джавараш был халявный до 20го лвла, сейчас гайки закрутили с 1го уровня все премиум. Гиперскилл годный конечно, но хочется и на русском уроки посмотреть. Хочу вкатиться в джаву чтоб быть куа автоматизатором, так что сверх жесткие навыки мне не нужны. Да, сейчас тестюк.
Книги читай бля
Надо сделать некую структуру, где бы можно было бы по ID захватывать блокировку, в идеале ReadWriteLock. Простейшая идея это
Map<Long, ReadWriteLock>
но ресурс может быть заблокирован/разблокирован один раз, а потом не использоваться и надо удалить запись из мапы чтобы она не росла. Но непонятно как это сделать атомарно. Смотрел StampedLock но не понял как его применить к этой ситуации.
>но хочется и на русском уроки посмотреть
А репетитора не хочется нанять и подтянуть уже свой инглиш до intermediate хотя б?
Или хочешь НИТИ писать в сбер-хуянке
Прям по колено в паттернах сидишь и ебёшься в жопу. Может это я C++ макака и не привык к нормальному коду, но блять какой же по-всюду ад бля. Ребят, вам делать нехуй?
extends Thread/implements Runnable какой-то. Прям больно. Это я макака? Или весь джава код на этом говне?
Юзаю хранение блокировки в редисе. Ставишь дюрейшен 5 минут - и в случае чего блокировка сама протухнет через это время. Саму блокировку делаешь closable и осуществляшь через try with resources. Тред вышел - блокировка снялась.
Большая часть типичного бизнесового кода на жабе - это чистая процедурщина, гугли anemic model - классы у тебя либо в роли структур без логики, либо в роли модулей с процедурами. А паттерны в том или ином виде есть везде, просто их не всегда принято так называть.
> Стратегии
Это почти как передавать нужный колбек в функцию.
> адаптеры
Примерно как писать высокоуровневую обёртку над низкоуровневым API.
> билдеры
Заполнить структуру, передать в функцию, на выход получить какой-то объект, созданный на основе структуры.
И т.д.
Котлинист, спок.
Нет, не хочу, у меня upper-intermediate, мне норм. Но фундаментальную инфу по новой области я предпочитаю на русском узнавать и только потом задроченное уже на английском, когда я не плаваю в теме.
Мне бы что нибудь in process, потому что требование поднять Редис для того чтобы использовать библиотечку это как-то перебор. Да и сеть сожрет половину времени блокировки.
то что ты высрал на тему extends Thread/implements Runnable вообще отношения к паттернам не имеет. И вообще, нехуй месить мух, пчел, мед и говно в одну кучу. ООП позволяет логично для человеческого разума (!= правильно, просто в терминах, обыденных и привычных для гомо сапиенса). А паттерны в основном это механизмы, которые позволяют сделать более удобной реализацию этого ООП. вообще не пользуюсь паттернами, например.
Сложно ответить в отрыве от контекста. А что можешь сделать? Ин мемори поднять можешь? Или все внутри кода должно быть?
В любом случае, попробуй пойти по пути хранения лока в closable объекте. Тогда тебе теоретически и не надо запоминать состояние. Либо придется костыль пихать на чистку твоей мапы.
UPD
проблема уходит, если выкинуть из зависимостей spring-cloud-zookeeper-discovery
хули так - не понятно
Я ищу решение, на примитивах синхронизации явы. Я уже решил на базе глобального ReadWriteLock, но хотелось бы придумать что-то получше.
В принципе тред который освобождает лок, может проверить что он последний и подчистить его. Или какой-то background job. Но как это сделать атомарно я пока не придумал.
Смотрю гайды в ютубе.
Откываю рандомное собеседование и понимаю что некоторая часть информации проходит мимо меня и в книгах ее нет.
Какую еще литературу скачать, чтоб заебись было?
Никакую. Как вы заебали со своими теоретическими знаниями. У всех один и тот же вопрос: какую книгу скачать/что на ютубе посмотреть?
Напиши 5 приложений. От простого к сложному. Будут вопросы - задавай, гугли. Если не понимаешь конкретных вещей в из вакансии - напиши с этим приложение.
> вообще отношения к паттернам не имеет
Разве это не пример паттерна стратегия?
В то время как в крестах тред это объект
Ты просто создаёшь объект тред и передаёшь ему функцию/метод который ему надо запускать.
> ООП позволяет логично для человеческого разума
Да уж, логично. Менеджеры, адаптары, диспетчеры кругом...
Книги лучше не читай. Книги, к сожалению, очень часто содержат дохуя вот такой вот хуйни как на пикрелейтед, из-за которой просто перевод бумаги какой-то.
Если ты уже смешарик и знаешь простую хуйню, чё такое переменные, циклы, эксепшины, потоки, и тд - не читай.
https://www.tutorialspoint.com/tutorialslibrary.htm
Вот тут прочитай java/java8/java9(если хочешь)
А дальше делай гугли отдельную хуйню по либам.
https://spring.io/quickstart
Вот прям сюда заходи и читай
Так ведь без тонны теорию на работу не берут, тупо надо хрюшу пройти, блять.
>>1928908
Ох, тут двачую.
Еще примеры с петей колей Ваней и класс собак подкласс кошка наследует метод спать, имплементирует метод рычать и метод двигать тазом.
Чтение из файла пятью способами и прочее
Помню собес был, скинул свой проект, это еще был фронтедт, там хтмл цсс жс жыквери все такое.
Она мне говорит так злобно "чего в хтмл документе твоем нет" я говорю бля, заьыл доктайп хтмл написать, ну типа уже ведь похуй браузер все сам понимает.
Она ряяя, где вы только учитесь и не пропустила.
И прочие мелочи.
Где храняться файлы
Какие уровни можели оси знаете
Что такое хешмап и прочее.
Сука, можно я сделаю просто пару приложений и вы меня джуном возтмете, блять, что это за издевательство
Простую хуйню есть такое.
Что такте потоки, классы, объекты, поля, методы, наследование, инкапсуляция, полиморфизм, абстракция, примитивные типы данных, классы обертки, мотификаторы доступа, строки, циклы, массивы, массивы массивов, аннотации, геттеры, сеттеры. - этого хватит для перехода к ждбс, хибернейтам и градлам или еще поучить/почитать базы?
> Она мне говорит так злобно "чего в хтмл документе твоем нет" я говорю бля, заьыл доктайп хтмл написать, ну типа уже ведь
Пропускать доктайп и правда хуйня. Это ошибка в html, даже несмотря на то, что браузер отобразит, сайт просядет по SEO. Гугл не любит сайты с ошибками в html. w3c валидатор скажет тебе что это ошибочный html.
> Где храняться файлы
Какие блять?)) Системные либы что ли?
> Какие уровни можели оси знаете
Ядро, система, пользовательские приложения? Может тебе ещё им про кольца защиты рассказать? Нахуя им блять это?
> Что такое хешмап и прочее.
Внутреннее устройство и реализация? Если только как пользоваться, нормальный вопрос.
Почитай за новейшие фишки джавы.
https://www.baeldung.com/java-8-new-features
Полистай там. На собесах почему-то любят новые фишки.
По базам зайди сюда. Тут можно поучиться на практике делать sql запросы.
https://sqlzoo.net/
Да, в принципе ты смешарик уже. Напиши на spring'е книгопоебень.
Ну ты понял. Разделение на роли(гость, библиотекарь, юзер).
Регистрация с эмейлом.
Книги в базе
Люди могут ставить комменты под книгой. Можешь сделать серии книг, чтобы под серией можно было ставить комменты. Под всей серией Властелина Колец, например.
Ещё сделай рекомендацию что почитать. Юзер ставил лайк на книгах A, B, C. И ставил дислайк на книгах X Y Z.
Что лайкали те, кто лайкал то же что и юзер и дислайкал то же что и юзер.
Хотя бы примитивную и кривую.
Книгопоебень популярный тренировочный проект, инфы кучу
Что там перелопачивать? Тесты прошли - значит никто модулей в либах не нахуевертил, можно мержить. Разве нет?
Я читаю, процентов 80 понимаю, но это все не на автомате.
Это само придет надо просто потерпеть или поучить, посмотреть кинчики/гайды, литературу попереводить?
Сейчас бы иметь upper-intermediate и иметь проблемы с чтением технической литературы.
Охуеть, прохладные истории.
C2 от тебя никто не требует. Если в целом можешь читать какие-нибудь стековерфлоу и баелдунг и читать/писать комментарии в коде и в сообщениях гита на инглише (всякое бывает), то этого достаточно.
Посмотри курс английский за 16 часов. Прям без шуток, годный курс. Поможет вспомнить пробелы в школьной программе.
Курс абсолютно бесплатный, по государственному каналу хуярили.
Так я и не говорю что вообще не надо ничего учить. Хэшмапу ту же надо. А почему бы не попробовать написать Хэшмапу? И учить не надо получается.
А то что из-за доктайпа не взяли - радуйся. Такие конторы нахуй идти должны.
Не всегда. Я тут одно свое мелкое недавно собирал с 8 на 11. Локально и тесты все ок было. Выложил на прод - хибер развалился.
Ну хибер хуибер.
Есть такой контроллер и такая jsp.
Когда тыкаю ОК, ничего не происходит. Что я сделал не так?
С понями.
> менеджеры, адаптары, диспетчеры кругом...
потому что не абсолютно все в мире можно представить как физическую сущность, но зато практически что угодно - как упакованные вместе данные о состоянии, и том что с ними надо делать, а так же интерфейс этого всего "наружу". в терминах какой-нибудь функциональщины это было бы, наверное, сложнее. Или процедур абстрактных которые сами по себе
> Разве это не пример паттерна стратегия?
Может быть, хуй знает. Просто половина этих так называемых паттернов соответствуют принципу "назови какую-нибудь очевидную для любого не-ДЦПшника технику программирования "охуенным паттерном" и выебывайся". На деле что-то действительно оригинальное предлагают единицы из них, а все остальное и так каждый использует на естественном уровне (если только не обезьяна)
Да.
Лучше это ковырять чем jsp.
Так Гоф паттернам 25 лет. И на них написано к чу всего, в том числе стандартная библиотека жавы. И очевидны они только тем кто уже насмотрелся в ООП код. Мне например не очевидны.
Нет.
В чем отличие градла от мавена?
Чем плох такой дизайн в принципе, если вдруг сборщик это поддерживает?
Без разницы. Лучше до, потому что после перехода на спринг нужно спринг дата учить. Со знанием гибера это проще будет
Можно и после, ибо охуеешь писать все эти hibernate.cfg.xml писать руками, когда бут всё сделает сам.
Не возвращают разметку с бекенда, делают SPA и со стороны жабушки торчат только рест-ендпойнты.
А вся эта поебота с жсп, таймлиф, велосити - ссанина и урина.
Ну мое мнение - без разницы. Но я бы начал с гибера.
>>1929472
А что плохого то? Я хуй знает. Тут все в стартапах работают что-ли? В фирмах в которых возраст кода пару лет? Реальность такова, что ты не знаешь куда попадешь. У меня на текущем проекте нету спринга. Эти задачи решаются через гуйс+гибер.
Только вот выше обсуждали, что еще не все на 11 жабу перешли. Почему вы думаете что все на спринге работают?
> говнолисапед
К тому же решето. Да понятно, что он для учебных целей это делает. Секурити достаточно сложный для понимания, а сделать всё по-тупому вручную как в каком-нибудь пхп - легко.
спасибо за мнение.
Когда ты приходишь на проект, там как правило уже всё сконфигурировано, что с бутом, что на древнем хмл, и в первую очередь надо уметь юзать фишечки хибернейта, а не настраивать его. Спринг бут дал бы более низкий порог вхождения при обучении, чтобы можно было сначала понять, что за хибернейт и что через него можно сделать, и уж потом детали его настройки.
Ну, твоя позиция не лишена логики. Да, в большинстве случаев все уже настроено. Но нужно же еще уметь поменять настройки. Хотя-бы понимать где это делается. А так да, основные механизмы в гибере что со спрингом, что без него, в целом учатся одинаково.
Я бы все равно, хотя-бы прошел бы простой getting started с гибером. Там ничего сложного. А как этим пользоваться, можно учится уже в рамках спринга
Коллекции учил или это не ко-ко-кор? Выгрузи свой массив в Set и верни его через toArray(). На сэкономленное от думанья время может попить кофеек и поучить спринг.
на 7 версии пишет unsupported class version 52...
Учил, но там нужно через циклы for/while с обычным массивом это сделать. Или на практике вот такой дроч не имеет никакого смысла?
Попробуй Websphere.
Нет, подобный дрочь алгоритмических задач это чисто гимнастика. Какая задачка то? Скинь сюда.
Ну тогда рисуй блок-схему алгоритма на бумажке. Вот ты итератор, допустим, стоишь на 0 элементе массива. Дубликаты удалять нет смысла, потому что элемент пока считан всего один. Вот ты переходишь на элемент + 1 и тут поток-хуесосина пытается подсунуть тебе дубликат прошлого элемента. Что будешь делать: сохранишь его как псина жалкая или проигнорируешь?
Вот задача, сильно не смейтесь.
Given a sorted array nums, remove the duplicates in-place such that each element appears only once and returns the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
Example:
Input: nums = [0,0,1,1,1,2,2,3,3,4]
Output: 5, nums = [0,1,2,3,4]
Explanation: Your function should return length = 5, with the first five elements of nums being modified to 0, 1, 2, 3, and 4 respectively. It doesn't matter what values are set beyond the returned length.
Вот решение, в нем я уже разобрался:
class Solution {
public int removeDuplicates(int[] nums) {
int i = 0, j = 1;
while(nums.length > j) {
if(nums[j] == nums){
j++;
} else {
i++;
nums = nums[j];
j++;
}
} return i+1;
}
}
Но как мне самому придумывать подобные решения? Вчера весь день сидел, ничего на ум не пришло, только неработающий бред.
Вот задача, сильно не смейтесь.
Given a sorted array nums, remove the duplicates in-place such that each element appears only once and returns the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
Example:
Input: nums = [0,0,1,1,1,2,2,3,3,4]
Output: 5, nums = [0,1,2,3,4]
Explanation: Your function should return length = 5, with the first five elements of nums being modified to 0, 1, 2, 3, and 4 respectively. It doesn't matter what values are set beyond the returned length.
Вот решение, в нем я уже разобрался:
class Solution {
public int removeDuplicates(int[] nums) {
int i = 0, j = 1;
while(nums.length > j) {
if(nums[j] == nums){
j++;
} else {
i++;
nums = nums[j];
j++;
}
} return i+1;
}
}
Но как мне самому придумывать подобные решения? Вчера весь день сидел, ничего на ум не пришло, только неработающий бред.
Потратить пару лет на решение сотен таких задач.
Если хочешь продрочить алгоритмы - я бы все таки ставил таймер. Не можешь решить одну задачу за 2 часа, гуглишь, не можешь нагуглить за час - бросаешь и переходишь к следующей.
Я сам на такую хуиту в общей сложности лишних пару недель потратил. Было очень приятно, когда находил решение того, что долго не давалось. Но толку мало.
Понял, спасибо большое. Буду действовать по такой схеме.
Двачая. Тоже в свое время недели две потратил. Круто когда получается. Но потом я понял, что такие задачи - сферический конь в вакууме. Никак не помогают стать программистом.
Вот я вроде бы заказал безобидный какой-то препарат. А вдруг, сайт был какой-то подставной и там мне заведомо дрянь какую-то положили какие-то лица. Мб сотрудники полиции, например.
Я прихожу получать на почту, а там совсем не то, что я заказывал и меня крутят.
Как доказать, что я заказывал вовсе не то, а другое.
Как защититься?
Сейчас в резюме проставлены ключевые навыки: Java, ООП, Maven, SQL, Git, Spring Framework, Spring Boot, Hibernate, Gradle, REST
И в пункте о себе что типа делал CRUD MVC на Spring Boot/Hibernate/Thymeleaf, приложение по взаимодействию с внешними REST API и консольные приложения на Hyperskill.
Главная цель трудоустройство и дальнейшее развитие. Вариант с удаленкой рассматриваю только если пройду на такую вакансию, и то при прохождении испытательного срока сам переберусь куда нибудь ближе к цивилизации.
>>Сделал 170 откликов на hh.ru пригласили только на 1 собеседование.
Это за какое время?
За один день? Если за день, то уже неплохо.
У меня первый собес гораздо позже нарисовался.
С 7ого декабря.
Но резюме более менее оформил(как я себе это представляю) в начале января. До этого просто написал что курсы проходил всякие, по своей наивности думал просто похожу по собеседованием, попрактикуюсь в прохождении)
Ну хз, надо быть полным кончем чтоб такое не смочь решить. Массив-то отсортирован, просто сравнить каждую пару соседних элементов, i и i+1. Создать булев массив аналогичной длины, и в нем делать пометки на удаление по индексам. Потом пробежаться и снести все лишнее. В зависимости от дизайна массива (статичный или динамический), он либо сам заполнит пустоты (главное не обосраться со съехавшими индексами, для чего удалять с конца следует), либо сделать это вручную тоже не проблема. Но вообще православно просто сделать
arrayName.toStream().distinct().collect(Collectors.toList);
и не ебать голову (я мож чуть обосрался в коде, по памяти-то, но суть ясна)
Двачую этого. Пиздец нахуй, каждый первый пиздит тут как на спринге запилить приложение для выбора шлюхи с выбранным размером сисек, но алгоритмы им нахуй не нужны а язык они знают только в той части что касается их ебаных шаблонных решений.
>Создать булев массив аналогичной длины
>Do not allocate extra space for another array
Вы уволены
А нахой это знать типичному крудошлепу тащемта, ему дают рутинную часть, а решения принимает аркитект/тимлид/дата-сосист
Чет забавно даже.
Напишу MS office, Adobe Photoshop
че обычно пишете?)
MyLaba1.java, MyLaba2.java
ls, cd, rm
Напиши туда стандартные IDEA, Oracle SQL Developer, Maven, Git, Git-Bash и Postman. Чем не программы?
Тоже верно, спасибо Анон
В чем дизмораль?) Наверное я плохо объяснил. Так вот, в Моей мухосрани таких вакансий нет и никогда не будет, как и в радиусе тысячи 3 километров) потому что на дальнем востоке нормальных it контор НЕТ. По этому я готов к переезду в любой город где такие конторы есть и делаю отклики по всей стране. Но мне либо вообще не отвечают, либо отвечают шаблонным отказом в собеседовании и я нахуй никому не нужОн.
Сука, а почему меня зовут на собес уже в 3 конторы, хотя у меня резюме гораздо скуднее этого якута.
Ну и фотка стоит норм, где ебло чедовское и тело. В этом вся суть или как? Или не знающий дороги заходит дальше всего?
Ну теорию алгоритмов и структур данных думаю подучить - графы, деревья всякие. Но тратить кучу времени на решение задач - я хз зачем. Даже все мои знакомые кто вузы кончал по специальности так алгоритмы не дрочили.
Что там конкретно надо делать? Скоро триал кончается.
Скачиваешь установщик ультиматки, устанавливаешь. Через 30 дней триал заканчивается. Удаляешь. Снова ставишь.
Пол года - полет нормальный.
Охуеть, наверное сложно вкатываться с мотиватором в виде денег.
Желаю тебе удачи и разработанного ануса.
//мимо макака по призванию да, мне нравится это
>>почему меня зовут на собес уже в 3 конторы
Потому что изначально смотрят резюме какие-то тянучки из HR по каким-то своим алгоритмам
А у тебя регион какой?
Ты чето упустил докер, кубернетес и еще облака какие-нить, aws или gc.
Ну и отсуттсвие каки-либо других языков кроме java говорит о том, что тебе похуй на технологии и ты аморфное безвольное хуйло
>>кубернетес
Почему все говорят кубернеТЕС, а не кубернЕЙТС ?
>>отсуттсвие каки-либо других языков кроме java говорит о том
что-то толстовато
Да меня уже глаза мылят эти паттерны сука. ПАТТЕРНЫ, ПАТТЕРНЫ, ХУЯТТЕРНЫ.
АБСТРАКТНЫЕ ФАБРИКИ ДЕЛАЮТ ФАБРИКИ, ФАБРИКИ ДЕЛАЮТ ОБЪЕДКИ, ПИЗДЕЦ
Так уж и быть, покормлю.
Это и близко не так. Анон, вроде, на джависта идёт, а не на девопса, раз спрашивает в этом треде. И докеры с амазонами ему до лампочки. Разрабу никогда не придётся этим заниматься.
Смысла писать другие языки нет, если кандидат пишет дохуя языков, то это означает, что ни один хорошо он не знает и прыгает со стека на стек каждые полмесяца, и в лучшем случае дотягивает до стажёра. Зато не аморфное хуйло, да.
Сейчас бы считать охуенным специалистом человека, сконцентрированного только на одном языке (да плюс на каком).
Перепрыгивание слишком часто - плохо, не спорю, но не засиживаться и расширять кругозор (разные языки/стеки - отличный вариант посмтореть на свои проблемы под другим углом и выучить что-то новое) - хороший знак. Если этого нет - это, увы, признак человека неинтересущегося.
Ддя кругозора пусть что хочет то и учит. Но если на работе этих технологий не требуют, то и писать их в резюме не нужно
Хотя меня по приколу спросили на собесе, знаю ли я C++, и потом были вопросы про смартпоинтеры, освобождение памяти и виртуальные деструкторы
Недавно начал изучать Джаву и меня заинтересовала тема Сокетов, захотелось написать что-то типа CoAP-сервера (протокол использующий UDP соединение).
Изучил классы DatagramSocket и DatagramPacket, более менее разобрался с URI и как ссылку на ресурс приводить, но до сих пор не вдупляюсь, а каким образом наш локальный клиент отправляет запрос на удалённый ресурс (соединение локальный-локальный понятно). Типо, у удалённого же ресурса тоже должно быть подобие DatagramSocket'а?
Нашёл что-то похожее на свою идею: https://github.com/google/coapblaster
Но так и не понял, где происходит вот этот самый стык между нашим клиентом и сторонним сайтом (в данном примере это coap.me). Вроде бы в классах LocalEndpointCoap и TransactionImpl, хотя я всё равно не могу найти "выход" клиента.
Может кто-нибудь подсказать в каком направлении мне надо копать, чтобы это понять?
Ты хочешь сказать что опыт работы на других языках лучше, чем опыт работы на джаве? Ну тип если ты 2 года кодил на пхп, это даёт тебе бинус? С чего бы?
Про какой выход речь? На обоих точках должно быть запущено по сокету, и неважно, на одной машине они запущены или на разных. У них юзаются методы send() и receive(), а дальше ОС сама разберётся, как их доставлять.
>>но не засиживаться
Ахуеть человек вкатится в выбранное направление не может, а уже засиделся
Ебал в рот эти вводные, не читал даже. Доп массив я предложил исключительно с целью удобства. Нет никаких проблем просто проверять каждое последующее значение до ближайшего отличного, и удалять все что попали между текущим и таковым. Просто с динамикохуитой вроде ArrayList по индексам удобнее удалять потом, потому что он едет.
Из этих 50 - 49,5 долбоебы. Как и в любом вообще деле. Стань в любом деле лучшим, или войди хотя бы в 3-5% лучших, и ты ни одного дня не будешь без работы. Наоборот будешь думать как бы хорошо было уже хоть раз за 10 лет почувствовать себя совсем свободным.
> Жаба
> Смузи
Лол, джава это максимум чашечка кофе. Она даже на логотипе нарисована, блять. Смузи вот здесь раздают.
Вот он и пишет, что нет мотивации из-за отсутствия смузи.
@MockBean, @SpyBean
Это про хайповые модные технологии, типа их юзают самые современные и прогрессивные разрабы, сидя в коворкинге, попивая смузи и на досуге катаясь на гироскутере.
Что такого особенного в котлине? это же просто перепиленная под более удобный синтаксис джава, с немного измененной моделью абстракций и местами расширенными возможностями, вроде настоящих замыканий, в отличие от кастрированных жабных.
Но на джаве в разы больше бэка, чем на котлине, и пока это так, котлин будет считаться смузи.
Мб, я не знаю котлин вообще, просто люблю пиздеть всякую хуйню на дваче с умным видом. Но даже такие заковыристые темы как дженерики есть в котлине. Какой такой "бэк" в джаве я вообще хз, который ты упоминаешь. Рефлекшн что ли.
Бэк - это бэкенд, серверная логика приложений. Котлин появился относительно недавно, и приложения, конечно, в одночасье на котлин не перейдут.А многие вообще никогда.
А, ты про это. Я думал ты имел ввиду что у джавы на ее бэке что-то такое есть, короче типа она низкоуровнее для юзера. Ну ёбана, не вина котлина как языка что у него пока не такая широкая ниша. он младенец рядом с джа
Тупость какая-то. Звучит как какая-то дедовщина - "по сроку службы не положено". Смузи обычно упоминается в контексте хипстерских технологий, которые позволяют шлепать штампованное типовое говно, не сильно понимая как что реально работает. А то что ты говоришь даже обратное: если нет поддержки всяких пидорских фреймворков, то писать что-то на котлин - это велосипедство, и наоборот будет требовать больше квалификации. Так что в этом смысле скорее джава смузи, а котлин хард.
Никогда не слышал, чтобы то, где можно шлепать штампованное, называли смузи. Например, звучит нелепо попытка назвать какой-нибудь вордпресс "смузи", когда это как раз про штампование. Смузи всегда говорят про самые новые технологии вне зависимости от их качества, решаемых проблем и требуемого уровня квалификации, тупо из-за консверватизма. Дедовщина и есть.
Ты мне кажется ебанутый. Это сленговое понятие не относительное, разделяемое между двумя технологиями по признаку низкоуровневости, а скорее абсолютное. Можно сказать, все то, что не требует хорошего понимания работы механизмов программирования, систем типов, того как вообще дизайнятся разные языки и в чем особенности и причины именно таких решений в них - это смузи. А по твоей логике ассемблер смузи, потому что есть машкод, а тот смузи потому что есть транзисторные ключи
Почему тогда крудошлепов от спринга называю смузихлебами? спринг чуть не ровесник самой джавы
Либо речь про спринг бут, либо шутка про смузихлебский спринг по сравнению с ЕЕ.
Спасибо за ответ!
Я под "выходом" и имел ввиду send(), просто сформулировать нормально не смог.
В общем, разобрался. Если кому-то из новичков будет интересно, то вот неплохая статья по этому поводу: https://docs.oracle.com/javase/tutorial/networking/datagrams/clientServer.html
Можно потом. Тема сложная, но в типичном применении спринга столкнёшься с этим очень редко.
Фублять. Аж плохо стало. Мне как то начальник сказал: "Давай делать проект (java + angular) через jhipster, будет удобно, времени сэкономишь". Меня хватило на два дня.
>> Смузи всегда говорят про самые новые технологии вне зависимости от их качества
Может я не то скажу, но про js тоже говорят "смузи", хотя что сам язык, что его фреймворки или node.js далеко не самые новые технологии.
Опять же, реакты-редуксы-свелты противопоставляются традиционным ванилле и жиквери. Про редукс вообще слышал, что он уже всех чем-то заебал, и вместо него придумали что-то более новое, хотя куда уж дальше, и надо срочно переходить на него. В реакте вон придумали хуки и называют всех, кто использует классы, динозаврами. Чем не смузи?
Смузи разработка выглядит так:
Разработка на ноуте от эпл. Убунта или винда не воспринимается.
Разработка ведется в текстовом редакторе типа vim/emacs. На виме стоят плагины типа Vim-Rails, emmet, всё делается в сниппетах, ну вы поняли. IDE - говно для быдла
Так же должны быть обязательно соснольные кодгенераторы.
pizda make:model,migration,controller(CRUD methods),add routs ique puque
И половина проекта написана.
Дебагер не используется. Дебагер - говно для быдла. Нормальные челы пишут тесты. Причём тесты пишутся до кода(TDD).
https://www.yegor256.com/2016/02/09/are-you-still-debugging.html
Даже в джаве есть смузихлёбы.
ООП как в Java/C++/C# - говно. Либо потому что ООП в принципе говно без задач и надо либо писать на функциональщине.
Как вариант - неопроцедурщина типа go.
Либо в Java плохое ООП, но потому что там на самом деле нет того тёплого лампового ООП которое придумал Алан Кей.
Нужно как в Ruby/Smalltalk. Чтоб можно было 10.times { |i| puts "hello #{i}" } писать.
Так же смузи это много магии и синтаксического сахара.
async await запросы, паттерн матчинги, duck typing.
>>ООП как в Java/C++/C# - говно
>>Либо в Java плохое ООП
Поясни в чем плохо ООП в джаве?
Без сарказма, прост я правд не знаю
В джаве обычное современное понимание ООП, Просто оно отличается от классического, как в смоллтолке, где вместо вызова методов у объектов ты "передаёшь сообщение объекту", а объект сам решает, понял он это сообщение или нет. То есть если ты передаёшь заведомо непонятное сообщение, то у тебя не будет ошибки компиляции, что метод не найден, а ошибка в рантайме (основная причина, почему от этой идеи отказались), и сейчас такое практикуется в динамических языках с утиной типизацией, только терминология современная, в каких-нибудь жс/питонах ты можешь вызвать несуществующий метод и словить исключение "метод не найден", или вроде того. Ну и в классическом ООП мышление "всё есть объект", то есть например у тебя числа - объекты, которые должны понимать сообщения вида "сложить с другим числом", примерно как BigDecimal.
мимо
Мм.. примерно понял.
Но звучит как "Классическое ООП оно, конечно, проблемное, но это же классика!"))
Не?)
Ты имеешь в виду не то, что java плохо делает свое дело, а просто придираешься к тому, что не соблюдена изначальная задумка ООП?
Я правильно понял?
Вроде того. Правда, не пойму, почему это считается смузи, если тут наоборот древние традиции.
vim посмузихлёбнее. Вот так должна выглядеть разработка смузи-приложения.
VS code это вполне адекватный редактор. Ничего смузовского.
>>1931162
https://youtu.be/lfdAwl3-X_c
https://youtu.be/QM1iUe6IofM
Посмотри эти видео. Полуркай историю ООП, что слова Alan Key, smalltalk, ruby и functional programming. У ООП есть хейтеры и критики. Если у тебя нет опыта написания ООП кода прям в промышленности не смотри))00)
>> Если у тебя нет опыта написания ООП кода прям в промышленности не смотри))00)
Да, пожалуй пока мне похуй как Хитману.
На эти "высокие" разговоры об ООП и псевдоООП)
В том-то и дело что никаких традиций у такого подхода нет. Java-like или C++-like ООП появилось в промышленности. А кеевский ООП это скорее университетская практика. Дело в том что что-то новое это часто что-то что в академии было давно(ФП, КейООП, Блокчейны, и тд), а на практику завезли недавно.
> На эти "высокие" разговоры об ООП и псевдоООП)
Правильный подход. 90% споров о языках и подходах это споры ниачом
Угу
Жабьи морды, кстати, подскажите мне бестолковому какую-нибудь статью/урок про DTO.
Как строить типовой Rest Api CRUD через него
А то я только в простом MVC пока разобрался
Какой-то мусор у тебя в голове. Наверное сложно быть тобой и вообще получать удовольствие от программирования.
Чел это не мои мысли, а то что называется "смузи". Ну ёлки палки, там же в начале щитпоста сказано, что это поклёп на смузихлёбов
Понадусёровый мавеношвайн на связи
>Напишите программу, которая демонстрирует, что в независимости от количества созданных объектов класс содержит только один экземпляр поля static.
Препод задал на выходные задачку. Какое решение лучше?
Я своего друга рубиста описал, который дома пишет стартап на скале описал
Почему бы не показал, что экземпляр только один через ссылки?
читать твое говно невыносимо. за юзанье в коде тупой транслитерации с русского надо пиздить клавиатурой по ебалу, а за всякое leet-говно еще и поджигать, туша затем коллективным обоссыванием. читабельность этой хуйни не сильно лучше рандомного набора 15 символов
Оба хуйня, ты долбоеб.
Если уж надо два варианта, то вот. Но это уже может быть сложновато для таких дебсов, как ты.
еще раз молю, больше не программируй, плиз(
Не, примеры у тебя лучше, чем у него. Но за А и B я бы тоже отпиздил. Как это читать?
Не, я имею в виду процессор аннотаций, или плагин какой-нибудь. Где это можно сделать?
Задача интересная, и не понятно кому она кроме тебя нужна. Сомневаюсь что такое есть. Напиши сам.
Все уже и так работает.
> После компиляции в байткоде остаются только полные имена классов, директивы import не сохраняются, и никакого дополнительного кода в результирующий объектный модуль не загружается.
https://drill.apache.org/docs/tutorial-develop-a-simple-function/#basic-coding-rules
Тут такое требование. Я знаю, что после компиляции все должно быть одинаково, насколько я понимаю, там штука в том, что функция генерируется по сурсам, а не из байткода.
У них там хэлловорлд на гите. И чет я не вижу, чтобы там импортов не было. Ты попробуй так сделать сначала. А если не будет работать - тогда думай.
А нет, сорри. Пизжу. Увидел. Слепошарый я
Ну блядь. С телефона не удобно. Не увидел.
Короче я бы идеей заменил бы все импорты на прямой вызов и не ебался бы.
TS-господин пожаловал в тред. Скажите, каково это - писать типы перед переменной а не после в 2021?
>писать типы перед переменной а не после в 2021?
А каково должно быть? Какая нахуй разница, где их писать?
В языках, которые были сразу спроектированы с выводом типов в переменную, так сделано для единообразия, потому что ты редко тип объявляешь сам. А в Java когда-то не было var-ов, и переменные объявляли в си-подобном стиле, для единообразия с си-подобными языками.
Больше никакой разницы нет.
В 2021 уже можно было догадаться, что разница между двумя записями надумана. Это примерно как учить Go, где видишь, что приватные имена с маленькой буквы, а публичные с большой, удивляешься, запоминаешь, и больше никогда об этом не задумываешься, ибо перестраиваешься быстро.
это для максимальной краткости.
Для них нет особого смысла, вот и А и Б. Можно было бы использовать вместо B любой ссылочный тип, конечно, но только все ходовые не подходят из-за всяких фич джавамашины типа Stringpool или автоупаковки. так что пустой нано-тип мне показался прикольным. ну и чтоб даун немного голову сломал тоже, не обязательно было делать их nested даже
>как в 1 строчку проверить, является ли число степенью двойки
>нормальный программист
>return number > 0 && ((number & (number - 1)) == 0);
>я
>return 1 == Integer.parseInt(new StringBuilder(Integer.toBinaryString(n)).reverse().toString(), 2)
> return number > 0 && ((number & (number - 1)) == 0);
пиздец красиво. у меня даже привстал. обидно что ушло немного времени понять в чем прикол. люблю такие трики
>return 1 == Integer.parseInt(new StringBuilder(Integer.toBinaryString(n)).reverse().toString(), 2)
код какого-то долбоеба
> return BinaryUtils.isPowerOf2(n)
код ленивого дебича, который сразу лезет в гугол по любому пуку я бы тоже конечно сделал так
Долбоеба-не долбоеба конечно долбоеба, но задачку я решил. Изначально хотел проверять по регулярке "^10*$" или типа того.
Ну пиздец, не красиво это геттеры и сеттеры, а какие-то такие чуток низколвл приколы всегда немного радуют.
>помнить
я например этого и не помнил, просто немного подуав понял что это так. ну да, я немного еблан может быть.
>Помнить
Нахуя это помнить? Тебе надо помнить, как работает @Async в спринге, и когда соседняя команда обещала выдать тот микросервис, с которым тебе надо вчера интегрироваться, а не это все.
Смузихлеб не палится
Нет, задача в следующем: проверить, правда ли что первый символ в строке это 1, а остальные нули? Байтоебы знают как это провернуть по-быстрому, долбоебы вертят строки.
Программировать на спринге без знания джавы тогда уж
Да.
Генерация хмл по сложным правилам, которые могут изменять пользователи. Но это специфика проекта, нужно не всем.
Там не так много нужно, тупо значения подставлять, но переменные заранее неизвестны.
Частенько видел еще такой подход: для конечного юзера ресты с жс мордой, для внутреннего пользования таймлиф
Да, этот >>1932424 правильно сказал.
Юзеру надо красоту показывать. Поэтому там нормальная веб-морда. А сотрудник поддержки и на кривой таймлиф посмотрит. Короче, админки на нем делают. Дорого содержать команду фронтовиков, чтобы поддержке красоту делать. Поэтому часто для сотрудников разработчики бэка пилят на чем есть, лишь бы работало.
Сейчас SPA заебошить сможет даже аутист, благодаря vue.js, так что хз зачем вообще нужны эти шаблонизаторы. Наружу торчит тока rest/websocket
Вот не надо отрицать очевидное.
> шаблонизаторы
Надо знать html, css и пару конструкций из шаблонизатора. Учится за день.
> SPA
Надо хорошо знать html, css, JS, фреймворк, городить REST API, писать обёртки над API на клиенте, ебаться со сборкой. Учится в лучшем случае месяц.
С высоты опыта это кажется лёгким, но речь про вкатышей.
Смотря куда, но да, в большинстве позиций по джаве матан не очень нужен.
Можешь учить, хватит школьного курса алгебры (сложение там, умножение, простенькая статистика), как и везде в программировании, если это не геймдев, датасаенс или математические модели НИИ.
Там разработка в авиа-тематике. Вот их один из проектов.
"Ведется разработка мобильного автоматизированного рабочего места для использования членами экипажа воздушного судна. Представляет собой аппаратно-программное средство на базе планшета с предустановленным специальным программным обеспечением."
Я просто к тому, что в вузе проходили очень много чего по плюсам и джаве, но я нихуя не учил (вот прям вообще нихуя). На зачётах смотрел на код и интуитивно понимал, что там происходит, т.к. минимальная база всё-таки есть. Единственное, что отпугивает - это дрочь с алгоритмами и структурой данных и прочая заумная поебистика. И так как опыта с джавой нет от слова совсем (когда-то змейку делал и то чуть в аут не отлетел), решил спросить у вас, вдруг вы знаете и отговорите учить этот ЯП. Программирование нравится само по себе, иду не из-за бабок.
Забыл спросить. Собираюсь первый месяц поучиться по видосам этого канала. Он вроде как нормальный. Что скажете?
Вот ссылка https://www.youtube.com/watch?v=uXMTq81jG7Y&list=PL786bPIlqEjRDXpAKYbzpdTaOYsWyjtCX&ab_channel=УрокиJava
После того как более-менее пойму что к чему, буду выбирать книги и дрочить по ним.
Про авиа-тематику - хз, если тебе там нужно будет не самолёты проектировать, а просто писать аппликухи с кнопками в духе "сообщить в диспетчерскую статус", то матан не понадобится. У них не вакансий в открытом доступе? Если есть, но ничего про математику не говорится, забей.
Дрочь с алгоритмами и структурами данных не такой сложный, каким кажется, учится быстро. На практике всё сводится к пониманию сложности алгоритмов через O-нотацию и знании этой сложности для нескольких контейнеров.
> когда-то змейку делал и то чуть в аут не отлетел
В змейке надо думать над алгоритмом, а типовой круд, где ходишь в базу и отдаёшь ответ на запрос, всё достаточно шаблонно, но если андроид, в этом плане будет чуть сложнее, хотя не так много его тыкал. Ну и больше практикуйся, напиши несколько несложных проектов, когда почувствуешь уверенность, будешь готов.
>>1932820
Смотрел пару видео оттуда, вроде норм, хотя сам сразу с книг начинал.
Спасибо за ответ. Интересно послушать людей с опытом.
В вакансии ничего нет про матан, вот сама вакаха, мб интересно - https://zhukovsky.hh.ru/vacancy/41777313
Думаю, одного года хватит, чтобы знать то, что они написали в требованиях.
Я просто работал в веб-студии, в вузе (прогером на самописном ЯПЕ) и вот эта вакансия для меня огромный такой шаг. Зп 100к для меня огромные деньги и по сути к Java всегда относился как к максимально серьезному языку.
Исходя из твоего опыта, года на освоение того, что там указано, хватит при условии, что занятия будут ежедневными по три часа?
Спасибо за ответы.
январьский вкатыш
Там в другом проблема. 70% задач и нужно делать через базу. Я иногда думаю что я работаю не джавистом, а ДБА.
Нельзя однозначно сказать, зависит от того чем ты будешь заниматься. Программирование, не важно на джаве или нет, это просто умение говорить машине что ей следует сделать. Но вот шанс что ты станешь хорошим программистом, если у тебя хорошо получается осмысливать математику (именно получается потенциально, фактически ты можешь ее и не знать), гораздо выше, чем если у тебя вызывает лютый тупняк, например, раздумья о том, что мощность множества рациональных чисел меньше таковой для вещественных. Просто потому, что и программирование и математика это работа с абстракциями. По тому же принципу в каком-нибудь спецназе лучше если ты спортсмен, чем хлебушек с дивана, просто потому что факторы успеха одни и те же.
Крч, саму метематику ты вообще можешь не знать для изучения джавы и работы с какой-нибудь круд-хуитой.
Как уже сказали выше, этой инфы катастрофически мало.
Если тебя заставят симулировать элементы физики полета (например буквально писать бэк для виртуального кокпита самолета, чтоб там в зависимости от дросселирования двигателей и инпута с ручек управления и кнопок менялись данные высоты, скорости etc), то ты там просто ничего не сделаешь без матана. Но такая задача маловероятна скорее всего.
А как ты думаешь, если процессор тактируется частотой, например, 3 ГГц, то какое его кварц может давать разрешение по времени? 3 такта в наносекунду, на случай если ты даун
Джавадоки прочитай ебанушка
именно, но вообще есть такая хуйня - теорема Котельникова (иди теорема Найквиста-Шеннона), которая утверждает, что для точного (без потерь) описания любой функции достаточно частоты дискретизации хотя бы вдвое выше, чем максимальная частота в спектре функции. Короче, лучше ограничиться двумя третями наносекунды, но уже наносекунду можно ловить совершенно наверняка.
Правда, я сам точно не ебу как эти данные поставляются из ОС, похуй всегда было. Вангую, там нет никакой гарантии что эти наносекунды сами по себе настолько точны, из-за всяких вещей типа температурного дрейфа частоты кварца например. Знаю что в микроконтроллерах ограничиваются макросекундами, а в практике как правило даже миллисекундами.
Пожалуйста, но я не особо понимаю нахуй тебе это надо. Тема времени в железе обширная, там ИРЛ куча всяких таймеров стоит, и сама джава напрямую уж точно с ними не работает, а тупо запрашивает у ОС. само собой, кварц тактирующий процессор вряд ли еще и служит основным таймером для таких нужд, я про него сказал просто потому что он реально высокочастотный. В каких-нибудт охуенных вещах типа спутников GPS насколько знаю вообще стоят атомные часы, а не дешманские кварцевые резонаторы, и точность измерения времени там очень высока.
Да я просто встретил код учебный и там прикручен бенчмарк скорости двух методов через System.nanoTime().
Там результаты разные, но почему то два нуля на конце всегда (110500ns и 95900ns например). Показалось, что реальная точность - сотни наносеков.
ну скорее всего так и есть. ведь это действительно величина в наносекундах, просто никто не говорит что разрешение будет в 1 нс, а не в 100. Что ОС возвращает жабомашине, то она тебе и высирает. я когда тестил нанотайм, мне он срал с точностью до единицы, например. Ты тоже можешь на улице всем говорить что времени "квадриллион наносекунд первого", и это даже не будет ложью. Но тебя все равно быстро отпиздят.
Ну на их сайте висит ещё вакансия на C/C++ разраба. Зп от 70к. Обязанности - Разработка графических интерфейсов на Qt/C++.
Думаю, на джаве будет то же самое. Никаких полётов мне рассчитывать не надо будет. На данном этапе пугает просто то, что Java для меня будет намного сложнее php/js. Посмотрел примеры кода Java и боюсь, что впустую проебу время. Хотя у меня есть желание изучать программирование на этом ЯПе и в дальнейшем попиздовать в эту производственную контору, там вилка зп 100-160. Для моего городка это овер-дохуя.
Хуй в плечо.
Появилась необходимость для проекта изучить Angular.js.
Насколько глубоко нужно знать для него javascript?Реквестирую советов по изучению.
Сучара, а ну пошел нахуй отсюда.
Не ссы, я не знаю ничего кроме джавы (ну еще C/C++ на уровне средненького проганья контроллеров), и мне то же самое примерно, что ты говоришь, кажется относительно кода других языков, которых я не знаю. Мне наоборот джава кажется самым лаконичным и простым языком на планете. Никакая математика в рамках джава-кора нахуй не нужна. Но местами нужно слегка открыть мозг, потому что уровень абстрактности темы может быть схож с какой-нибудь теорией групп в матане. Например понятия ковариантности и контравариантности в дженериках. Но это не специфично для джавы, ровно то же самое есть в шарпе и вообще любых языках, работающих с обобщениями.
Если ты не знаешь что джава и джаваскрипт из общего имеют только четыре бувка в названии, то тебе надо начать с изучения всякой хуйни "для чайников", а не с ангуляра
Не подскажешь, я планирую 7+ месяцев активно учить Java и потом пойти в контору к себе в город. В идеале год хочу развиваться и только потом кидать резюме, но мб и за полгода изучения захочу попробовать прорваться. В той компании вилка зп 100-160к. Как думаешь, челу без опыта работы коммерческого, естественно, будут такую зп платить? Просто для меня это ахуенные такие бабки.
Я не могу ответить на такой вопрос, потому что сам не работаю непосредственно кодером. Тут полно более практикующих сидит, подожди, может, ответят. Если ты будешь тащить задачи, то наверное будут. Но вот сможешь ли ты это без опыта уже вопрос
Смотря что ты на нем там делать будешь. Для понимания ангуляра хватит learn javascript за глаза и уши. Дальше видосики по ангуляру.
Мой опыт: 9 месяцев с hello world до оффера. На старте давали 1300$, что где-то и есть 100к. Но я хуй знает. Это мой личный путь был, и я ебал в рот такое повторять. Хотя оно того стоило.
Спасибо большое!!
Может ли он вкатиться в java на позицию мидла сразу? Возможен ли такой свич? Или java это такой фонтан молодости где ты снова пионер?
Может, важен в первую очередь опыт разработки проектов, архитектура, подходы и прочее. Технологии и языки вторичны.
Слышал несколько прохладных историй, как кто-то без дня опыта сразу вкатывался на миддла, потому что надрочился проходить собесы
А что такого особенного в "ООП джавы" в сравнении с любым другим современным ООП? (не надо про Кеевскую классическую хуиту только). Чтоб понять смысл интерфейсов надо поделать что-нибудь с их использованием. Абстрактные классы сосут, кстати.
небольшой фикс: про хед ферст я имел ввиду просто полезность книжки для начинающего, насчет качества представления там ООП ничего не скажу в сравнении с альтернативами. как по мне так оно вообще больше из практики понимается, чем по книжкам
Ну, мне как раз объяснение ооп хэд ферста зашло. Это то, за что я советую эту книгу.
Хрен знает как это без теории учить. Мне как раз сложно было понять и осознать ооп, поэтому не мог начать писать ничего.
> Может, важен в первую очередь опыт разработки проектов, архитектура, подходы и прочее. Технологии и языки вторичны.
Ну да. Я сейчас вкатываюсь в хайлоад на языке PHP. Я бы хотел вкатиться в java, но в моём городе к сожалению на java работа только в ведре, либо в какой-то лютый тырпрайз. А я хочу хайлоад бэкэнд, шоб с кластерами, кроликами МК, микросервисной архитектурой. Пыщ как язык не очень люблю.
Дамаю релокейтиться в ДСы. И там уже хочу пойти на Java, потому что проекты на Java пижже и платят за Java больше.
Пока сижу тудулисты хуярю в спринге.
>Слышал несколько прохладных историй, как кто-то без дня опыта сразу вкатывался на миддла, потому что надрочился проходить собесы
Нууу, это двачерские истории.
Лучшие книги по JS - это вот эта серия. Книжки маленькие по 100 страниц. Книжки скипать, там для совсем лохов. Остальные лучше почитать все, приоритет по убыванию.
Чем раньше книга, тем лучше.
Так как ты пишешь на языке со здоровой типизацией, types and grammar нужно знать. This тоже хорошо бы, так как this в JS значит не то же самое что в Java и не ассумь это. ПРОСТО БЛЯТЬ ПОЧИТАЙ. Хотя бы эти две, это самое важное. Упражнений там нет, просто читни в транспорте с мобилы, оно вообще изи.
Ну это теория, а практику сам знаешь как учить. Клон goodreads, todo app, appointment app, ну ты понял
>Книжки скипать, там для совсем лохов.
Первую скипать в смысле. Там для людей которым надо пояснять что такое переменная
Об этом средний анон наверное не сможет четко сказать. Ты параллельно дохуя всего изучаешь, из этого джавы процентов 20 например. Как сказать за сколько вкатился? во все вместе пара лет. Тупо изучить джаву как язык если ты и так волокешь в теме, наверное, пары месяцев хватит, если знаешь что-то из сей, и может полгода если перекатываешься совсем из другой какой-то парадигмы. Ну это мое дебильное мнение.
Он >>1933879 прав, у всех всё по разному. Я четыре года учился в шараге, потом три года в институте. На последнем курсе устроился макакой в ИП. В какой-то момент начальник говорит: "Теперь пиши на Джаве", я и начал писать. Через полтора года перекатился в нормальную компанию. Если бы я был бы умней и уверенней в себе, то перекатился бы через пол года.
Год самостоятельно - теория + написание лисапеда для десктопа.
Год стажером в "бодишопе", потом понеслась.
Нонче (10 лет спустя) макака, пишущая на всем, что только можно
>>1933961
>>1933879
Вы учили вяленько или ботали 5 часов сутки один лишь код, потом 3 часа на математику и алгоритмы, а в свободное время вместо порнхаба смотрели гитхаб или как оно происходило?
Потомучто все говорят "ебашил", а когда узнаешь что он делал думаешь что за пиздец, где то ебашилово? 6 часов обучения в день , из них 2 инстаграм, 2 сериал и все это на шее у мамки.
6 часов реального обучения это уже на грани возможности обычного человека что-то усваивать.
Как я уже писал чуть выше, у меня ушло 9 месяцев с hello world до оффера. 9 месяцев жил в режиме: по будням с 20.00 до 00.00 учился, по выходным весь день. Никаких сериальчиков и развлечений. Сказать что я был к концу вымотан морально - не сказать ничего. Зато я достиг чего хотел, и сейчас вполне на расслабоне
О, охуенно, теперь понимаю на что стоит рассчитывать.
Сам вкатываюсь уже 4 месяц, занимаюсь после работы 2-3 раза в неделю + один выходной. Пытался уделять больше времени - начал хуже работать и хуже учиться.
1-2 часа теории и 2-3 часа практики - и это считалось за охуенный продуктивный день.
Тащемта работать больше 6 часов в день не получается и поныне.
Ну, на 7 месяце я уволился с работы. Хорошо была небольшая финансовая подушка. И вложил все силы в обучение и поиск работы. Короче пошел ва-банк. Иначе я думаю ушло бы больше времени. Еще месяца 3-4 сверху. Но вроде все сложилось.
У меня ситуация проще - готовлюсь к переходу внутри компании.
Чем больше выучу, тем больше рабочих задач будет. Скорее всего даже собеседование проходить не буду, потому что сейчас учебные задачи через код ревью проходят.
Я >>1933961
В шараге и институте просто пятёрки получал, то есть знал всё на уровне lab10. Во время работы изучал всё только на работе по задачам. Надо сделать crud, гуглю как делать crud. Надо добавить пользователей и работу с ними -- гуглю. И так далее.
Вообще вариант не самый лучший: многих вещей я не знаю, но я и не парюсь.
Благодарю!
Если те 4-е часа - это настоящее обучение, без перерывов на что-либо, то это отличный перфоманц для средне-хуя, коими мы в общем-то все и являемся. Если так продолжишь, вкатишься и до мидла и до синьора и смузи в жан-жаке тебе будут давать бесплатно и даже доплачивать.
Вкатился очень внезапно.
Пришла в универ компания работающая на C++. Я был на 2ом курсе. Кресты знал лучше всего. Во-первых, лабы на крестах все.
Процедурное, ООП, GUI - всё на крестах делали.
Компания провела тест и предложила тем кто хорошо сдал работу/стажировку. То есть методика такая. Работать можно в любое время, минимум 20 часов в неделю. Делать надо было ПОЛНЕЙШИЙ ТРЕШ и ТАКОЕ ЕБУЧЕЕ ЛЕГАСИ, что я просто ебал.
Приложение на Windows, огромные ветки с конфигурацией В РЕЕСТРЕ. Делать надо было следующее:
1) Фиксить говнопродукт.
2) Делать утилиты для мануальных тестировщиков на Qt.
3) Хуярить транспортные плагины для работы с внешним API. Получаешь данные так как они хотят, SOAP, REST, байты в сокет, RPC-JSON, байты В ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ СУКА.
Платили за это добро абсолютное НИХУЯ. 24к если закроешь 40 часов. Если 20 часов, 12к.
Но мне было норм, я был беный студент. Степуха была 2.5к рублей. Из них 400 уходило на общажку. Жрать было не на что, мамка послылала 8к в месяц. А тут ещё откуда-то 12 тыщ. Ваще каеф как для студента.
Плюс я щас благодарен немного этой галере. Я только там научился что такое мультитрендинг, получил опыт работы с асинхронным I/O(asio), чё такое REST, как выглядит http вопрос вообще.
Поработал там полтора года с небольшим, перед дипломом уволился. Сказал что буду диплом писать. Мне сказали что если чё можно ещё рассмотреть работу.
Диплом писал на Java + Spring. Хотелось попробовать веб, но всякие PHP/Node за языки не считал, мне казалось петушня ебаная для хуесосов. Попробовал Java, мне зашло. С одной стороны бесило что требует файлы организовывать по-уебански и ООП навязывает, с другой я видел код где этого не просят и мать его за ухо. Сначала думал что эээ, гарбаж колектор для педиков лалалал. Но если по чесноку мы на крестах тоже не любим с памятью ебаться и умные указатели использовать.
Мне нужен был диплом с ООП кодом. А интележ ещё за меня uml диаграммы хуярила. Ваще коеф.
Ну в общем понравилась мне спрингожава. После диплома устроился на юниора в компанию которая работает с дорогой немецкой 1С-кой и пишет веб приложения, работающие с их маня-экосистемой
Вкатился очень внезапно.
Пришла в универ компания работающая на C++. Я был на 2ом курсе. Кресты знал лучше всего. Во-первых, лабы на крестах все.
Процедурное, ООП, GUI - всё на крестах делали.
Компания провела тест и предложила тем кто хорошо сдал работу/стажировку. То есть методика такая. Работать можно в любое время, минимум 20 часов в неделю. Делать надо было ПОЛНЕЙШИЙ ТРЕШ и ТАКОЕ ЕБУЧЕЕ ЛЕГАСИ, что я просто ебал.
Приложение на Windows, огромные ветки с конфигурацией В РЕЕСТРЕ. Делать надо было следующее:
1) Фиксить говнопродукт.
2) Делать утилиты для мануальных тестировщиков на Qt.
3) Хуярить транспортные плагины для работы с внешним API. Получаешь данные так как они хотят, SOAP, REST, байты в сокет, RPC-JSON, байты В ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ СУКА.
Платили за это добро абсолютное НИХУЯ. 24к если закроешь 40 часов. Если 20 часов, 12к.
Но мне было норм, я был беный студент. Степуха была 2.5к рублей. Из них 400 уходило на общажку. Жрать было не на что, мамка послылала 8к в месяц. А тут ещё откуда-то 12 тыщ. Ваще каеф как для студента.
Плюс я щас благодарен немного этой галере. Я только там научился что такое мультитрендинг, получил опыт работы с асинхронным I/O(asio), чё такое REST, как выглядит http вопрос вообще.
Поработал там полтора года с небольшим, перед дипломом уволился. Сказал что буду диплом писать. Мне сказали что если чё можно ещё рассмотреть работу.
Диплом писал на Java + Spring. Хотелось попробовать веб, но всякие PHP/Node за языки не считал, мне казалось петушня ебаная для хуесосов. Попробовал Java, мне зашло. С одной стороны бесило что требует файлы организовывать по-уебански и ООП навязывает, с другой я видел код где этого не просят и мать его за ухо. Сначала думал что эээ, гарбаж колектор для педиков лалалал. Но если по чесноку мы на крестах тоже не любим с памятью ебаться и умные указатели использовать.
Мне нужен был диплом с ООП кодом. А интележ ещё за меня uml диаграммы хуярила. Ваще коеф.
Ну в общем понравилась мне спрингожава. После диплома устроился на юниора в компанию которая работает с дорогой немецкой 1С-кой и пишет веб приложения, работающие с их маня-экосистемой
То есть ты за полгода дипломных выучил жабу и спринг и написал на них диплом? Даже для опыта на плюсах и хорошей учебе в универе норм.
Там не очень хороший код был. Приложение шаблонное. Doctor appointment
У нас был курс по вебу, 1 год. Первые полгода PHP+JQuery, вторые Laravel+React.
Фронт на страпоне. А mvc оно и есть mvc
https://www.youtube.com/watch?v=6dteOGWy4uk&list=PLU2ftbIeotGoGSEUf54LQH-DgiQPF2XRO&index
Что это значит? Я пока даже не начал учить ни хибернейт, ни спринг. Просто присматриваюсь, как оно должно выглядеть. Скачиваю чужой код и у меня не пашет.
>Почему у меня не запускается чужой проект на спрингбуте ?
Потому что метод org.postgresql.jdbc.PgConnection.createClob() ещё не реализован.
Вообще, это реально бага в говнохибернейте. Но у меня проект запустился и работает, хоть и стектрейснул этой же ошибкой.
https://stackoverflow.com/questions/49110818/method-org-postgresql-jdbc-pgconnection-createclob-is-not-yet-implemented
Причём запустился он только восьмой джавой, на 14 не нашёл класс javax.xml.bind.JAXBException и упал.
У меня под 8 запустился с добавлением в application.properties строчки spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true . Но не работает нормально, только логинится, а сообщения и юзеров не добавляет. На 11 не запускается.
Я за челом повторял, но спрингбут был последний и джава 11. Первые 4 видоса все ровно было. Но там поменялось что-то в фримейкере для нового спрингбута, а изучать его у меня 0 желания.
Ладно, больше не буду бездумно гайды смотреть. Пойду теперь книжки читать про то что такое ваши депенденси инжекшоны и ивершон оф контролы.
>Я за челом повторял, но спрингбут был последний и джава 11.
Тоже так делал и на том моменте ошибка. Поменял джаву на 8 и версию спринга как у него и все заработало. Познал прелести легаси версий.
RestTemplate RT = new RestTemplate();
Class api_results = RT.getForObject("URL", Class);
Дальше нужна задержка и проверка на нулл?
Ты к нам со скрипте шоле? Подождет.
Когда тыкал, находил инфу, что хотят задепрекейтить.
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html
> As of 5.0 this class is in maintenance mode, with only minor requests for changes and bugs to be accepted going forward. Please, consider using the org.springframework.web.reactive.client.WebClient which has a more modern API and supports sync, async, and streaming scenarios.
Не совсем понятно, может и не депрекейтед, но будут переделывать.
Лапочут каукю-то хуиту, какие-то термины шлёпают куда надо и не надо. Ноль умения на простых примерах понятно объяснить, разжевать.
Хороших и понятных уроков единицы
горю немного
Это про русскоязычных.
Английский у меня средний. Как-то не оч комфортно впитывается, но походу придется пробовать. Искал объяснение на русском - ломал копья. Открыл какого-то убогого индуса с ахуевшим акцентом и норм всё понял
Двачую. Да еще и с таким еблом будтт вселенская истина.
Эт вообще клоунистер)
Составил топ языков программирования и даже слово "энтерпрайз" не упомянул ни разу
ХОЛОСТЯК
Не переделывать же им скриншоты в переизданиях в угоду моде, сделали 10-15 лет назад скрины привычного тогда и так и оставили. А видосики с нуля записываются, а не переиздаются, в отличие от книг, которые никто с нуля не пишет.
Потому что скриншотам IDE не место в хорошей учебной литературе.
Для этого есть документация в интернете от вендоров IDE, которая держится up to date.
По моему опыту 90% литературы со скриншотами - хуета, по крайней мере в сфере разработки.
Вычищатель спринга, плиз.
Сингальтон надо.
Хз, мавен сам магически находит какой-то репозиторий и что-то скачивает, и похуй, главное уметь добавлять зависимости.
nexus
Ну так мавен настроен на Maven Central, а поменять можно, но нетривиально. А в градле тебе дается свобода выбора.
> градле
И почему я сразу подумал про градл?
Швабодка в чём? Написать одну строку в build.gradle вместо аж пяти в pom.xml?
DURGASOFT
>нетривиально
<repositories>
<repository>
<id>huy</id>
<url>http://pizda.ch</url>
</repository>
</repositories>
Охуеть нетривиально.
Как я понял Spring сейчас все хотят, что еще маст хев? По базам данных какую технологию? Что по веб сервисам? Есть для джавы вообще роадмап вменяемый, как на javascript?
Нет, не хуета, однако скорее исключение. Плюс если там и есть скриншоты, то я их не помню, т.к. кто блядь ебаный твой рот изучает программирование по скриншотам?
Ну чёт хз. Есть разница? Помнится, когда-то тыкал андроид и видел в мануалах строчку jcenter(), но не придал этому особого значения.
А кто тебе сказал, что по ним кто-то что-то изучает? Просто упоминают идеху. Но почему упоминают не популярную в проде, а заслуженную - не ясно.
Ну ты даешь сука, только вчера прочитал в треде, а сегодня наткнулся на хабре. Опять реактивная хуйня с кучей лишних методов.
Я ещё летом про это писал >>1785803 →
Мне в целом без разницы, всё равно у нас http-запросы делаются только в одном месте через сырой HttpURLConnection
Похуист, спок.
Работаю ETL разрабом года 3, hadoop кластера и все дела, бд, sql процедурный знаю и пишу на нем, работа с данными, баш скрипты пишу, английский - перевожу иностранные гайды со словарем 50%/50%.
Получаю свои 250 и чувствую, что - это предел.
Не поздно ли вкатываться к вам в мои 30 с таким знанием английского или на хуй ничего не пойму и сольюсь?
ебать папаша нюхни кэ кэ эна и хватит троллить бедную (пост-)студентоту вкатоту
Толство. Как будто у дата инженегра на 250к нет знакомого джависта и он будет спрашивать на харкаче.
В этом треде бывал реальный синьор-собеседовальщик, он бы тебе помог, но к сожалению он перестал сюда заходить.
Все настолько плохо, как пишут в отзывах? Имею ввиду хуевый стек, нерелевантный опыт, хуевый менеджмент и пересмотр зп на 5к раз в полгода?
На какой ты позиции, как оцениваешь вообще свою ценность на рынке до и после данной конторы?
>Все настолько плохо, как пишут в отзывах?
Очень вариьируется и очень субъективно все, нужно конкретнее.
>хуевый стек
Зависит от конкретной команды пиздец как. Какие-то команды дрочат самые актуальные технологии, а какие-то занимаются xml-ем и багфиксом древнего говна. Есть опыт работы и там и там. Если ты не безвольный / конфликтный хуй - можно всегда договориться на интересный для тебя проект/команду. НЕУДОБНЫХ(конфликтных, закостеневших) могут хуйнуть в сустейн, но и поделом им.
>нерелевантный опыт
Отчасти - да. (осс, бсс, хуесэс никому не нужны будут, когда уволишься) Но полагаю этот эффект намного меньше, чем в конторах-любителей велосипедостроения (вроде яндекса). Очень много используется из Openshift того же, так что в целом не вижу тут большой проблемы.
>хуевый менеджмент
терпимый.
>пересмотр зп на 5к раз в полгода?
см. пункт про НЕУДОБНЫХ сотрудников. Им - хуй заместо индексации (минимальная). Остальным +- неплохо, по рынку (ну может чуток меньше). Раз в год где-то и вариьируется, но больше 5к точно.
>Зависит от конкретной команды пиздец как. Какие-то команды дрочат самые актуальные технологии, а какие-то занимаются xml-ем и багфиксом древнего говна.
А как ждуну, например, понять, что попал в хуевую команду?
Когда плакать от легасиговна начинаешь
По Netty есть неплохая книжка, а вот по NIO ничего годного не смог найти, кроме статей и вопросов на стаке. Интересует в первую очередь как работает неблокирующий IO.
Мне довольно сложно судить в общем, потому что это моя первая работа и я с самого начала на одном и том же проекте, но мне, думаю, повезло, потому что у нас в команде технологии используются чуть ли не самые смузишные и неплохой апгрейд зарплаты стабильно раз в полгода прилетает. А вот премий нет, обидно.
Что нового?
Ну хоть не аутстафф
Вообще не понимаю что с этим не так, если это твой первый оффер.
Тупо потом в помнике поменять или как?
Там просто название немного изменилась, это то же самое, и потом ничего менять в помнике не нужно.
Просто я выше шел по туториалу чувака с ютуба, и там и-за версий спрингбута нужна была другая версия шаблонизатора. Думаю, как бы тут подобное не выскочило странице на 200.
Если не заработает со странными ошибками, просто потом покрути версию spring-boot-starter-parent в помнике.
Да не нужна там другая версия фримаркера. Там либо строчку прописать в app.properties, либо файлы называть .ftlh
Это было и еще в синтаксисе фримарка какие то изменения были. Я психанул и полдня переставлял все, как было в видосине, даже 8 жабку поставил.
Пока я не расчехлился до конца, Spring in Action точно норм выбор? У нее на амазоне не оче оценки. Может Pro Spring все таки взять?
Бамп вопросу
Пиздец у тебя подход к обучению. Не получается - сменить версию чтоб как у препода. На работе так же делать будешь? Не сможешь что-то написать и поменяешь версию на ту, которую знаешь?
Я не уверен, что действительно буду в этой сфере работать. Мои нервы и время дороже принципов. И важнее получать удовлетворения, больше чем батхерта. Особенно на этапе хеловордов, ознакомительных видосов и первых глав книжек(когда не знаешь даже примерный объем чего ты можешь не знать по проблеме).
Плюс у меня список из того, что нужно изучить достаточно большой и не хочется тратить его на изучение этого фримаркера, если он может и не нужен будет никогда.
Можешь дать совет по книжке по спрингу?
Очевидный spring in action. У меня есть, но я так и не прочел до конца. Учился на практике. Надеюсь ты не из тех кто познает спринг раньше написания калькулятора?
Ну я начал учить спринг, когда мог написать свой. Не весь конечно, но di, ioc, data, web составляющие. Поэтому когда я пришел к спрингу, я уже понимал как он работает и он не вызывал у меня вопросов.
По этой причине мне странно читать: «я учу спринг, но не могу осилить версии»
В данном случае композиция реализуется через дженерик?
Ну я только книжку по джавакору осилил. Запустил хеловорд на томкате и прочел минитуториалы по мавену, mysql и хттп.
Калькулятор вроде бы был в hiperskils, правда консольный но я его дописать не успел. Там на сложных уровнях задачи надо было через регулярки в калькулятор вводить скобки и переменные. На свинг забил по совету из этого треда.
>но di, ioc, data, web составляющие
где это можно узнать? Я могу и отложить спринг и взяться за что-то более основательное.
Не пользуюсь. Скинь сюда, если есть чего. Может и остальным читателям треда пригодится.
> создать класс-дженерик в котором поле произвольного типа параметризовано по типу
Сделай так, сможешь потом передавать объекты в дженерик-методы и юзать там своё поле с произвольным типом.
class MyType<T> {
SameField sameField;
T anyTypeField;
}
...
<T> void myMethod(MyType<T> m) {
sout(m.anyTypeField); // ok
}
> topjava
> job4j.ru от Арсентьева Петра
Оба курса специализируются на джабе, а не на всём подряд, а-ля скиллбокс, гикбрейнс и т.п. + что мне ещё нравится, так это то, что ты можешь проходить в своем темпе. А это как раз по мне, т.к. я готов много времени уделять обучению.
Да, пригодится!
Как же ржачно выглядят описания курсов, лол. За 15к коллекции лайт. Платишь еще 15к и научим пользоваться итератором (позиция джуна). Еще 15к заносишь и учим стартовать треды и форкать репозитории на гитхабе (навыки миддла).
Это безусловно. Я сейчас учусь по книгам, и при покупке курса буду их совмещать.
Ну и забей на эти курсы, если можешь учиться сам, они не нужны. Я вот без них вкатился.
Проорал
Правильно ли я понимаю, что MVC возвращает готовые html-страницы, а RestAPi выдает JSON'ы?
м
Да, но рест - это не обязательно жсоны.
Какой смысл мне выдавать http-ответы ? Протокол сам не справится?
Или это когда я прям кастомно хочу выдавать?
не понимать
Component - это база.
Repository помимо всего прочего еще эксепшены БД понимает и преобразует в java-эксепшены (эт то, что я смог накопать)
А Service что? Поняно, что в сервисе бизнес-логика обычно располагается. А кроме архитектурного смысла еще какие-то функции добавляет эта аннотация?
двач, подскажите дебилу-вкатывальщику, есть какой-нибудь вариант активировать идею бесплатно? в целях обучения, естественно.
спасибо.
Для спринга это все одно и то же. Разница только в логировании
благодарю
Разница в том что mvc никто не использует в крупных проектах. Так как эта хрень для проектов уровня накатать через шаблонизатор пример будущего продукта не больше
Это уже к js-ерам вопрос какой там у них стек на фронте
Чел, ну ты чего. Скинь книги/курсы где можно узнать о
>di, ioc, data, web
до спринга. Я пока послушал пару объяснений и не очень понял.
>di, ioc, data, web
это просто паттерны, гугл в помощь
Если со хочешь спринг учить и с ним совсем плохо то у спринга на сайте есть дофига туториалов, можешь книжку взять либо: спринг ин экшен или спринг все паттерны проектирования. Но по хорошему спринг изучать как и всю джаву по джава докам, разбираясь в исходниках, попутно написав примеры использования.
Не дам. Не все можно выкладывать на двощ.
В таком случае вот этот >>1938696 правильно говорит. Нужно взять стандартную либу джавы и ковырять исходники. Научится понимать что магии никакой нет. Что вся джава состоит мелких кирпичиков. Нужно понять как они работают. Взять пару классов из стандартной либы и попытаться их реализовать своими силами. Заглянуть под капот и посмотреть как оно сделано на самом деле деле.
Для того чтобы понять как работает спринг, да и в целом все остальные либы, типа гибера, надо въехать в Reflection Api
Ну я реально юзаю build.sh в хеллоуворлдах на пару классов, где нужна только стандартная либа, даже манифест.мф пишу руками. С мавеном там возиться лень.
Для хеллоуворлдов не нужен.
Тогда придется на каждую тему писать минипрогу) Спасибо за совет, анон. Попробую
Не обязательно прям каждую . Например, на практике не понадобится иерархия из всех 30 классов для работы с вводом-выводом, и здесь можно просто прочитать без углубления. А вот тонкости синтаксиса/семантики знать нужно.
> легковесную
> IDE
Такого не бывает хотя бы из-за того, что все IDE для жабы пишут на жабе. Возьми текстовый редактор, например, visual studio code.
Ну не надо тут. Все три достаточно популярны. То что после реакта глаза мыть надо - согласен.
Нихуя толстяк.
NetBeans от Sun 2009 года мало жрет.
Понятия не имею, почему вкатывальщики так дрочат на ультимейт. Я юзал триал, купил когда на работу устроился. Когда пишешь для себя - комьюнити хватит любому мне кажется.
>>1939389
Ну так ты хотя-бы синтаксисы посмотри. Посмотри как устрктура проектов выглядит. Какие механизмы есть в них. Реакт придумал больной-ублюдок-червь-пидор. Адекватно с такой структурой кода только такие же больные-ублюдки-черви-пидоры работать могут
Забавно, что у нас фронтендеры как раз недавно все переписали на реакт с Ext.js (который мне показался достаточно няшным).
А с чего переписали то? В любом случае, сам js можно считать сортом извращения
Да я не ебу. Может Ext подорожал.
> почему вкатывальщики так дрочат на ультимейт
Начинаешь гуглить туториалы по спрингам всяким, видишь, как в видосиках открывают вкладку с удобной консолькой БД, ещё видишь навигацию по JS, в конфигурацих запуска видишь докер и кучу серверов приложений. ищешь у себя то же самое, а у тебя ничего этого нет, ничего не работает, лезешь в гугл, чтобы узнать, как включить, и узнаешь, что ты нищук без ультимативной идеи.
Не понимаю в чем проблема. 90% делается через консоль. Для скуля есть pgadmin, pmadmin, sql workbench. Конфигурации тоже все настроить самому можно. В скрипте навигация везде говно, даже в ультимате. Короче раздуваете из мухи слона.
Так это ж со всем разбираться придётся отдельно, кучу туториалов по всему этому читать, а тут сразу на примере идеи показано в одном месте. Речь же про вкатышей, разобраться бы сначала хоть в чём-то одном, а не сразу всём. И IDE на то и IDE, чтобы всё в одном месте было, а то так можно прийти к тому, что код писать в каком-нибудь нотепаде++ без плагинов, а всё остальное делать через консольные тулзы, валючая даже линтер и jdb.
>>1939887
Если тебе не нужны специальные тулзы - тебе не нужна ультимейт идея. Если тебе нужны специальные тулзы и ты не можешь осилить их - то ты дебил.
Темболее все о чем вы пока говорите - в идее крайне урезано. Специальные тулзы всегда будут выигрывать в юзабилити. Но вы конечно же об этом этом не узнаете. Потому как не в состоянии осилить простые титуриалы.
Для совсем простых вещей не нужны тулзы. А когда нужны, то в чем проблема? Ты когда смартфон покупаешь, тоже туториалы смотришь? С чем ты там справиться не можешь? Next в установщике нажать? Любая sql тулза нативно понятна. Гит - 3 команды.
С чем у тебя там проблемы то? Ты с членом со своим справиться можешь?
Я вкатывался на комьюнити. Потому и не понимаю вашего нытья. Вот и все.
Ну во первых сперва надо нагуглить какой тулзой заменить кусок функционала идеи, потом они совсем не нативно понятны, знания, как ими пользоваться нужно тоже где-то взять, те же стековерфлоу и вопросник хабра забиты вопросами такими.
Это как например читать по слогам или писать на родном языке, кажется чуть ли не нативными умениями. Но на него тратились месяцы на самом деле, а у не очень быстро соображающих и годы. И были учебники и учителя за ручку в этом водили.
Короче ты максималист.
Ход твоих мыслей я уловил. Но останусь при своем мнении. Нет ничего плохого, чтобы изучить дополнительные тулзы. Ты хочешь не тратить на них время, а побежать дальше. А в конце концов скорее всего тебе придется потратить время на это. Какая разница сейчас или через месяц?
Ну и да. Представляю себе картину. Ты доучишься, потом проведешь в поиске работы 3-4 месяца. И вот в конце концов заветный оффер. И тут тебе сообщают: компания работает на эклипсе. Вот тебе вспечет.
Занятие кучей бойлерплейта очень бъет по мотивации. И через месяц - в тысячу раз лучше. Потому что учить всю эту тулзовую рутину легче, когда ты уже в основную технологию вложился временем и бросать уже не так легко.
Я кстати попользовался немножко эклипсом, освоить полностью можно потом. Переучился бы быстро, но от некоторых вещей после идеи бомбило бы.
Там можно другие языки юзать, ставится плагин например для питона или пхп, плюс все плюшки-ватрушки для вронтенда, а так по мне одно и тоже, те же докеры, гиты и прочая фигня.
Я ультимейт использую потому что с пыхи перекатываюсь и чтобы не плодить кучу иде, поставил себе ультимейт там тоже всю хуйню для ларавеля можно поставить как и в шторме.
Дайте ссылку на репу с эталонным RestApi CRUD'ом. Который возвращает JSON'ы.
А то я колесю в интернетах, а там то устаревшие какие-то конструкции, то еще че не так(
.
А чего такого? Основная работа на пыхе, там много свободного времени, закрыл баги и готово, вместо того чтобы пинать хуи устроился стажером на джаву на 3 часа в день и планирую в перспективе перекатится из пыхи в жабу на спринг.
В свое время стоял выбор как выходить из порочного круга говносайтов и цмс я выбирал между задрачиванием симфони (тырпрайз на пхп закос под спринг) и перекатом в другие языки, посмотрел вакансии на пыхе и приуныл, нормальных проектов мало одно сплошное говно, попробовал всяко разно и пришел к спрингу.
Pet Store
А что такого? У меня нет вышки, но вполне работаю
Ты чево такой злой
Кому нахуй нужен твой диплом? Только если заказчик госконтора у которых в ТЗ требование или колбасу на нем резать на корпоративе, работодателю нужна не бумага а знания и опыт. Если долбоеб и без опыта, но с дипломом пойдет устраиваться, то шансов найти нормальную работу у него будет меньше, чем у адекватного со знанием или опытом, потому что на собесах все будет сразу видно кто есть кто.
Двачая. Кому нужен дебик с дипломом сельскохозяйственного, но без опыта. Когда есть без диплома но с опытом и знаниями.
Уже было много историй, как человека не могли повысить тупо из-за того, что в компании строгое требование наличия диплома начиная с определённого грейда. И остаётся только менять работу.
Ну и нахуй такая компания?
Маняфантазии дебила проебавшего 5 лет вникуда, вместо того чтобы получать опыт и деньги.
Чел...
Зачем мне себя утешать? Я с третьего курса работаю. Единственное что я проебал во время обчения - шанс выебать тяночку.
Анонче, не трать время на жирнича.
Программист по сборке бургера
Бесполезный холивар. Из серии win vs linux, java vs C etc... Ты останешься при своем мнении, я при своем. Просто не надо орать «без диплома ты нинужон». Люди работают без диплома. И вполне успешно. Если твой путь проходит через вышку - молодец. Но не надо хуйню городить.
Речь разве шла о джавистах на спринге? Жопой не виляй.
При этом default метод все еще должен возвращать объект имплементирующего класса
Зачем ты написал <Y extends Yoba> в методе? Теперь ты сможешь передавать в interfaceMethod() только объекты, имплементирующие твой интерфейс Yoba. Это не одно и то же с дженериком T из первоначального примера.
Дрочи на работу за $, ну или хуярь СТАРТУП в свободное время.
Хотя жабоебы не умеют в стартупы, хуле
Если ты джавист, то что конкретно из этого делаешь ты?
Ебоба, там в метод даже не передается ничего. Я хуею с месьтных слепышей порой.
В два часа ночи писал, проебался, признаю. Ну возвращает, один хуй комментарий актуален.
Не актуален.
Математику 10 лет последний раз трогал, уже даже забыл что такое логарифм.
Я вообще-то вкатывался ради того чтоб на фреймворках все красиво писать а не вот это вот все. И это че получается мне теперь математику класса с 9го повторять ради того чтоб джуном вкатиться? Я не верю что все вкатывальщики учили этот математический дрочь.
Что посоветуете?
На джуна задрачивать не нужно (да и на миддла сомнительно). Найди какую-нибудь мурзилку по алгоритмам на пару вечеров, прочитай про сложности, сортировку, поиск, дерево, хеш-таблицу, и всё. Про логарифм нужно знать только то, как он соотносится с линейной функцией и другими. Построй где-нибудь графики y = x, y = log(x), y = x^2, y = xlog(x), сравни их на глаз и усвой, насколько расходится потребление памяти или времени работы у разных алгоритмов, и этого достаточно.
Хуй выше про мурзилку прав, я могу лишь предложить вариант мурзилки - автор Лафоре, там база, которой тебе хватит и примеры на жабке.
ну вот например, Бхаргава сойдет за эту мурзилку?
Я читал вроде что это базовая книга по алгоритмам для дебилов.
но как потом эту книгу наложить на leetcode? Стоит ли его вообще задрачивать?
>Построй где-нибудь графики y = x, y = log(x), y = x^2, y = xlog(x), сравни их на глаз и усвой, насколько расходится потребление памяти или времени работы у разных алгоритмов, и этого достаточно.
это было не так сложно, я хоть и убил пару часов чтоб догнать что к чему и поднять закрома тервера, мат статистики и базы школьной алгебры, но вот дальше там один алгорит алгоритм разбирать целый вечер... мне стока жизни не хватит чтоб джуном вкатиться.
нахуй тода в шапку постоянно этого седжвика постите....
Спасибо за совет, но следующий ОП хуй если запостит это говно, я его прокляну нахуй
Я в своё время читал какие-то туториалы типа медиума, и этого хватило. Никаких книг на 100+ страниц для этого не нужно.
> один алгорит алгоритм разбирать целый вечер
Да там и разбирать нечего, потом будешь писать свои специфичные алгоритмы и налету прикидывать сложность. Видишь в алгоритме один внешний цикл по массиву - это O(N), видишь со вложенным циклом - это O(N^2), видишь, что структура данных на каждом шаге делится на две части, одна из частей ещё на две части и т.д - это O(log(N)), а если это рекурсивное деление на части завёрнуто в цикл, то это O(Nlog(N)). С хеш-таблицей, правда_ рпидётся посидеть, там не так очевидно, почему O(1). Экзотику вроде O(N!) встретишь редко.
>>1942116
Это продвинутый уровень же, чтобы расти уже после вката.
>Это продвинутый уровень же, чтобы расти уже после вката.
нуб читающий шапку, типа меня, поймет ее так, что это типа мастхэв. И начнет ее читать. И у него упадет вся мотивация после недели чтения первой главы по вечерам.
>Видишь в алгоритме один внешний цикл по массиву - это O(N), видишь со вложенным циклом - это O(N^2), видишь, что структура данных на каждом шаге делится на две части, одна из частей ещё на две части и т.д - это O(log(N)), а если это рекурсивное деление на части завёрнуто в цикл, то это O(Nlog(N)).
Я примерно так и понял взглянув на график. Но в этой ебаной книге расписали дохуя математики перед тем как график воткнуть. И научного говна накидали, воды буд-то из диплома по математике. Вы о чем думаете то, зачем это в шапку вносить?)))
Посоветую не идти в программисты, не твое это.
> нуб читающий шапку, типа меня, поймет ее так, что это типа мастхэв. И начнет ее читать. И у него упадет вся мотивация после недели чтения первой главы по вечерам.
Хз, я вообще туда не заглядываю и ничего не спрашиваю, привык всё сам искать.
> Вы о чем думаете то, зачем это в шапку вносить?)))
Шапку по приколу иногда допиливают, в целом всем лень, но ведь лучше хоть какая-то, чем никакая.
Эх, в итоги все равно почему-то не работает как надо. Похоже, не обойтись без указания <Класса> в каждом дженерике.
Наверное в этом случае методу интерфейса неоткуда взять инфу, какой именно возвращаемый дженерик я от него хочу, и он возвращает Yoba.
Вечерний бамп вопросу.
У меня локальные переменные, ало. Несколько раз обращение к локальным переменным, которые хранят промежуточную информацию и их изменение. В C++ можно лямбду использовать в таких случаях, но в джаве, похоже, лямбда так не работает.
В идее выдели повторяющийся код и нажми Ctrl+Alt+M, за тебя все сделают.
Ты ебобушка?
Сделай так, чтобы другой метод принимал указатели вместо примитивов, и с промежуточным данными проблем не будет.
Синтаксис указателей в джаве: int []ptr = new int[1]; разыменование: ptr[0].
Интересно, что будет в результате.
Да схуяли
slf4j, а под капотом log4j или logback - похуй.
В идеале просто использовать ломбоковскую аннотацию @Slf4j
Хуёковскую.
Работаю удаленно полгода, прекрасно себя чувствую, на конференции в скайпе вообще пьяный хожу. Едут слабые, сильные депривируют общение специально
Я переустановил однокласснице, выпил чай и домой ушел. Она после этого меня в ЧС кинула. Тупые селедки.
Logback, у них одна зависимость и все в комплекте. И с версией не ошибешься.
Напиши свой логгер, джава испытывает острый дефицит логгеров.
Ты прошёл обряд инициации. Теперь ты можешь стать крутым программистом.
Да я всегда им был. Я еще в детстве целыми днями сидел виндовс ХР ковырял, потому что у меня комп все время зависал и тупил. ИИ за компьютерными мастерами подсматривал всегда.
есть класс User и UserDto с одинаковыми полями. Есть стандартные слои UserRep, UserServ, UserController.
User UserDto такой же{
private Long id;
private String name;
}
мне надо сделать в сервисе метод saveUser, например.
Сервис у меня орудует с Dto, которые прилетают из контроллера
public UserDto saveUser (UseDto userDto){
User user = new User (dto.getid, dto.getname); // создаю юзера по параметрам пойманной Dto
userRepository.save(user); // сохраняю в базу новоиспеченного юзера
Вопрос вот что возвращать?
Я просто пилю в конце: return userDto; ?
нет же смысла обратную конвертацию делать?
Типа доставать из базы юзера и конвертировать его в Dto руками или через мапперы например, mapstruct ?
ВСе праваильно понял я?
Не очень понял, почему ты позволяешь фронту самому выбирать id твоего пользователя, а не генерируешь. Обычно id генерируется на стороне бека и в ответе на запрос создания возвращается dto с заполненным id.
>>Зачем тебе что-то возвращать?
Мм.. ну сколько CRUD-примеров я видел, везде только "delete"-метод войдовый.
>>1943306
Не обращай внимание, генерится сам.
Так что по сути ответа?
Мне все-таки вынимать обратно из базы или это беспонтовое занятие?
Я подаю параметры, считай Dto объект, а на выходе мне дадут тот же Dto. Зачем мне лишние движения с базой делать (кроме сохранения)?
Или я чет не вкуриваю?
Ну и делай как в круд-примерах, в чём вопрос. Я вот в них вижу сейв с войдом или только id добавленной/обновлённой записи.
Тебе правильно написали. Обычно делают сейв, и результат сейва обратно выкидывают. Чтобы айди как минимум получить. А может у тебя по пути в юзера еще какой-то логикой что-то добавляется. Понятно что это не твой кейс, но вообще хороший тон возвращать то, что сохранилось. Тем более репа же возвращает обратно твоего сохраненного юзера?
Как надо правильно синхронизировать, чтобы деды не засмеяли?
Подскажите, какую з.п. просить при устройстве на джуна в ДС?
Мне не так уже важна з.п. первое время, просто хочется адекватно выглядеть для HR.
Мало назовешь - подумают что бездарь, лентяй, ничего не представляет из себя.
Много назовешь - подумают, что неадекват и всё такое.
Достойную.
Сколько бы не назвал, всё равно не угадаешь. Поэтому называй так, чтобы с голоду не умереть, и полгода терпи. А потом дописывай в резюме еще 1,5 года опыта и за 200+ иди в сбер. План надежный, как швейцарские часы.
Я прост не знаю. На каком месте помимо моих софт-хард скилов стоит этот пунктик с з.п?
Насколько он решает при трудоустройстве.
Бывает ли такое, что из-за неправильной подачи цифры меня завернут?
Скажу "дайте 50к". Сразу будет предвзятое отношение. Типа бездарь.. не знает нихера.
Скажу "дайте 120". Подумают "ебать он должен уметь в джаву ахуенно, давай ка взъебем его" и я обосрусь по тех.части)
Ну тип такие загоны.
По сути же, HR и работодатель заинтересованы в кадрах.
Могут же сказать: "ну ты цифру смешную сказанул, дебик. Мы на такую тебя не возьмем. А возьмем на %salary%."
Диалог вообще такой вообще будет по з.п.? Или тут лотерея?)
>Могут же сказать: "ну ты цифру смешную сказанул, дебик. Мы на такую тебя не возьмем. А возьмем на %salary%."
Ну да. А еще могут нахуй послать. Тут уж как повезет.
Использую спринговый мейлсендер
Если именно джун, а не стажёр, в ДС можешь просить 70.
У тебя из подтверждения тех. скиллов что имеется? Какой-нибудь проект на гитхабе, или учёба?
Дело не в джаве или спринге, а в том, что у них дохуя критериев, что считать спамом, и если обосрался хоть в одном - спам. Например, им может не нравиться конкретный домен.
Годный совет, спасибо.
Ну тебе уже написали, что джун 70к в дс. Стажер будет примерно 30-40к. Твои 120 - это уже в рамках мидловой вилки. Если ты еще не работал в индустрии, то скорее всего твой уровень стажерский.
Кака я понял, если поля имеют разные названия - указываем их в "source" и "target".
А если у меня нет различий в названиях?
Примечательно то, что на маке я просто ставлю @Mapping без параметров в скобках и все ОК, а на Шинде ругается и не хочет компилить.
Это не по теме треда вопрос. Гугли "anti-spam policy".
В папке resources/static должны стили лежать по умолчанию, пробовал подключать resourcesHandler но безуспешно.
https://www.dropbox.com/s/vb8lt8y0mvkoc92/MiniAuction.zip?dl=0
> Кака я понял, если поля имеют разные названия - указываем их в "source" и "target".
> А если у меня нет различий в названиях?
Тогда не указываем.
Гит есть, там все реальные данные указаны. Насмотрелся на треды с травлей от того и опасаюсь
Ща по дропбоксу тебя вычислим, анонимус.
Добавь в конфиг такой класс (пикрил), а ссылки на CSS приведи к виду /static/css/index.css : <link rel="stylesheet" th:href="@{/static/css/index.css}"/>
И ты по приколу пишешь на пятом спринге без бута?
А иметь фейковый гит нельзя? Что за травли? Травля за хелло ворлд?
А, знач @Mapping в принципе аннотация была нужна только для различных значений.
Теперь понял, спасибо
я прост бестолочь
Наверное при том, что загружать зип с дропбокса намного менее удобно чем с гита.
И в чём именно неудобство? Нельзя git clone написать? Онлайн-просмотр как на гитхабе, даже синтаксис подсвечивается.
> намного менее удобно чем с гита
Тебе всерьез настолько нравится писать в консоли git clone?
Спасибо тебе большое! я разобрался с classpath и стандартной директорией ресурсов.
Писал проекты и на буте тоже, в данном же проекте пытался собрать все с нуля самостоятельно.
правда все работать стало с этим мини проектиком, который я взял как микропрототип моего большого проекта.
У большого таким методом не подключается css, мне кажется это из за spring security
> мне кажется это из за spring security
Гугл говорит, что такое возможно, и надо просто в нём разрешить пути со /static.
а нет, все работает и с большим. Вся проблема была в странице с логином, лишь ее не удается видоизменить.
Так @Id ставится не над методом, а над полем, например:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Long id;
Ты не прав. А если я хочу композитный id из значений двух финальных полей?
Тогда я не шарю нихуя
Неправильно выразился, ключ не композитный. Это обычная строка, полученная конкатенацией двух полей. Впрочем я уже смирился, даже в документации пишут, что нужно поле. Но вот с финальными полями все равно не работате.
ШаУЕ!
Заметил, что они проходят не по порядку, поэтому появилась мысль, что он их параллелит а это плохо, потому что я это не учитывал
Хреново, я многие объекты в полях класса проинициализировал, получается их могут дергать сразу несколько методов одновременно под аннотацией @Test?
Просто раньше не замечал конфликтов, все тесты проходили хорошо, а вот сейчас задумался.
В тестах в полях можно хранить только константы, а всё нужное тебе состояние надо устанавливать заново перед началом каждого теста. Иначе рано или поздно у тебя тесты от сборки к сборке будут то валиться то нет.
Добавляешь туда метод main, из него вызываешь нужный тебе метод, компилируешь, запускаешь класс через java MyClass. Для ввода-выводв тыквй Scanner.
Да и вообще есть чото похожее на гибкую проксю с поддержкой http1/2 и вебсокетов?
LittleProxy не поддерживает http2 / вебсокеты и вообще заброшен.
В общем книга седжвика по алгоритмам оказалась не такой уж уебанской, просто нужно проспустить чтение первой главы, желательно полностью нахуй. Прочитать какие бывают виды О-большого, как массивы, списки, очереди и стеки соотносятся друг сдругом и приступать к чтению второй главы.
пилю CRUD.
есть слои: реп, сервис, контроллер.
сущности отдаются через Dto. (User/UserDto). Конвертация с помощью Mapstruct.
Пишут методы в контроллере, с findById понятно:
public UserDto findById (Long id){
User user = userRepository.getOne(id);
return userMapper.UserToUserDto(user);
}
А как быть с findAll, например?
public List<UserDto> findAll (){
User<List> users = userRepository.findAll();
return ??
}
Как мне конвертнуть List<Entity> в List<Dto> ?
Мапстракт умеет и это тоже, просто напиши метод в маппере с соответствующими листами.
Открыл рандомную задачку на литкоде, а там блядь сделай одно через другое через третье и оберни это в десять циклов с флагами. И то, если додумаешься.
Можно что-то среднее между говном с джава раш и литкодом? Есть какие-то советы (кроме бросать это дело, не,это не пойдет). Мне когда-то кидали сборник задачек университетских, там я помню были уровни от дауна до наверное литкода, там тысячи были наверное задачек. Но я его успешно проебал.
Например, 10 работают на ПК, 4 на ноуте. Какой софт для этого установить/разъем нужен на ноуте?
Или может, есть нормальные облачные сервисы для этого?
>Можно что-то среднее между говном с джава раш и литкодом
Попробуй пикрил. Там есть как раз уровень универских задач от простых до не очень простых.
А так, на литкоде тоже есть много простых задач. И, очевидно, нужно открывать не рандомную задачу, а начинать с уровня Easy. Как раз этого хватит чтобы научиться решать базовые задачи на массивы/два указателя/списки/деревья/графы/жадные алгоритмы/дп. Нужно просто решать задачи, решать много, сидеть над ними, а главное - делать это каждый день. Тогда спустя полгода будет ощутимый прогресс.
>А можно ли распределить работу потоков по разным процессорам?
Ну тащемто секретов нет, пишешь сервер, который будет выдавать задачи и получать от клиента результат решения. Пишешь клиент, который будет эти самые задачи получать и начинать их решать, а потом отправить на сервер полученный результат.
Ставишь клиент на ПК, там запускаешь 10 потоков, на ноуте аналогично, но с 4 потоками.
Основная проблема, это правильно распараллелить нужную задачу. И вообще вся эта тема называется распределенные системы, по ним есть довольно неплохие книжки, статьи и лекции.
Невозможно, принципиально. Для такого обычно раскидывают задачи через сеть между разными ЭВМ (хоть очереди сообщений, хоть hadoop, хоть MPi), а они уже распараллеливают.
Хм, хорошая идея.
Спасибо, я старался.
https://acmp.ru/index.asp?main=tasks&ob=iq&id_type=0
в порядке сложности, первые совсем тривиальные
https://www.dreamincode.net/forums/topic/78802-martyr2s-mega-project-ideas-list/
здесь больше идей для пет-проектов, нежели задачек, но тем не менее
не пойму как там инпут читать. он типа в папке с байт-кодом находится чтоль?
Не делай того, чего от тебя не требуется. Чтобы понять, нужно тебе что-то или нет, задай вопрос: как это будет использоваться? Если флоу работы с твоим апи подразумевает дальнейшее использование созданной сущности, тогда возвращай, а если ты просто это где-то увидел и не знаешь зачем так сделали, тогда не делай лишней работы.
https://dou.ua/lenta/articles/java-beginner-guide-1/
Либо из input.txt, либо из system.in.
Да, там же где класс с мейном.
https://stackoverflow.com/questions/41117633/why-isnt-overflow-checked-by-default
Потому что быстрее хуячить операции без проверок на переполнение и программусту не нужно ловить исключение на каждую арифметическую операцию/отключать везде проверку на переполнение, т.к она отключена по дефолту. Плюс еще как-то связано с тем, что в джаве нет беззнаковых типов.
>In Java 8, there are overloaded methods, for example like Math.addExact(int, int), which will throw ArithmeticException in case of overflow.
>
Согласен, тред про джаву обязан быть тяжелым, медленным и неповоротливым.
>написать return вместо void
>лишняя работа
Надо иногда на будущее думать. В некоторых местах лучше что-то возвращать сразу, чем потом переделывать.
понял, спасибо.
На локалхосте.
Спринг без бута не имеет смысл использовать в 2021.
Дваждую этого >>1946053
Я все свои первые пет проекты разворачивал на heroku. Из плюсов: бесплатно, научишься деплоить гитом/докером. Из минусов: сильно урезанные возможности.
Еще говорят, если ты студент, то амазон дает свои облака. Но я не в курсе как там.
Для небольших, но рабочих проектов я купил себе vps. Благо сейчас можно это сделать от 200р. Зато полный доступ и ни от кого не зависишь.
Да гуглится элементарно. ruvds, fastvps, много их. Для пет проекта, за 200р рут доступ - вообще отлично я считаю. Понятно что что-то более нагруженное уже не потянет, но оно и не надо.
Спасибо.
Я не тот чел, просто хочу где-то с кубером поиграться на пет проджектах. На прошлой работе был опеншифт и там все было из коробки, как говорится, а к куберу надо попривыкнуть и потрогать вплотную.
Готовься к тому, что из-за бюрократии всевозможные заявки исполняются не мгновенно.
В ДС для старшего инженера по разработке вилка от где-то от 110 (точно не помню), для каждого региона вилки свои.
> без коммерческого опыта
> сбер дает старшего инженера
У кого-то еще есть вопросы, почему сбер такое говно в плане продукции?
Мое уважение сберу, называющему джунов старшими инженерами. А тимлид тогда кто? Супер-мега-убер-главный инженер?
Дальше ведущий и главный инженеры. Тимлиды обычно Руководители направления. Да и грейды дают не только по соответствию уровню, но и какие есть незанятые в подразделении.
> Да и грейды дают не только по соответствию уровню, но и какие есть незанятые в подразделении.
Если серьезно, то чем больше я слышу про сбер, тем больше радуюсь, что отклонил их оффер.
Да и я многое слышал, уж как повезёт. Один знакомый устроился фронтендером, и его заставили писать на джаве. Другой тоже фронтендером, теперь тыкает какую-то странную CMS-ку. А некоторые говорят, что у них всё норм.
А теперь звонит ерам, оставлял у них заявку на онлайн стажировку, говорят 3-4 месяца и при успешном прохождении 30-40к в дс2. И че выбирать 65к сейчас в городе меньше чем дс2 или через пол года 40к в питере?
Увидел что на рынке есть много вакансий с se и вебом в связке, а значит все не так плохо. заслышав se представлял что надо писать программу по разливу кофе и подаче снеков в вендинговых автоматах по кулдауну каждый день и вакансий в будущем не найти, хотя даже это было бы неплохо относительно моих прошлых работ в жизни
Нет. Епам хорош, когда никуда в другое место не берут. Через год тебя в тот же епам, с опытом, возьмут за 80к
Так ЕЕ или спринг? Спринг может быть и без ЕЕ, обычно это SE + контейнер сервлетов. Или ты хочешь одновременно ЕЕ и спринг? Это как хотеть одновременно postgresql и oracle
Опять же, в качестве первой работы, вообще не вижу смысла перебирать. Есть еще куча вещей помимо спринга, которые нужно учить в бою.
Теперь я понял, для кого все авторы так графоманят вместо того, чтобы передавать суть.
Главное что не графоманят авторы документации, где объясняется так сухо и кратко, будто учебник по матану читаешь.
Мне, кста, нравится документацию читать, того же спринга, например. На мой вкус хорошо было бы чуть больше примеров, и все, идеально.
Малаца, хорошо зделали.
зачастую люди которым говоришь про зп (hr обычно) и те кто будет ебать по жаве (инженеры) это разные люди и инженерам не говорят на сколько бабулек собесится кандидат
Как то это не очень соотносится с историями, что на собесе могут завалить каверзными вопросами не с целью не брать, а чтобы по зп прожать.
> на собесе могут завалить каверзными вопросами не с целью не брать, а чтобы по зп прожать
Прохладно, особенно если ты проходишь с десяток собесов и получаешь десяток офферов. В итоге просто выбираешь, кто больше предложил, хотят прожимать - пусть анус себе жмут.
Пример ввода: 1 2 3 4 5 6 7 8 9 10
Пример вывода: 10 8 6 4 2
https://pastebin.com/84uarVcB
ByteArrayInputStream bais = new ByteArrayInputStream("1 2 3 4 5 6 7 8 9 11".getBytes());
System.setIn(bais);
это для теста было, что-то с пробелами или переносом, но не могу понять.
Нашел твою ошибку, но в образовательных целях не скажу, ищи. В этом суть профессии.
да ты тролишь
Да.
Наш ответ - пидарасу нет.
Это из-за работы в субботу.
>Используют ораклы и постгресы.
но я видел в вакансии епама монго (там еще мускл был и оракле) (((
Используют для хранения данных. Вокруг нее спринг-дата.
Используют для данных, которые критичны к времени доступа, но не критичны к стабильности
Ну, у реляционок пока преимуществ больше. А недостаток по сути один - скорость. Нужно понимать когда и какую базу лучше использовать. Если очень интересно - можно пойти в тред к базунам, я думаю там смогут по хардкору пояснить какая база лучше для каких задач.
> тред к базунам
Там разное пишут. Что монга хороша для короткоживущих проектов, где не соснёшь хуйцов на поддержке из-за того, что в силу отсутствия статической схемы в БД хранится какая-то неоднородная дичь. Что монга в принципе не для каких задач не подходит, ибо если не нужно надёжно, то не нужно вообще. Что там норм хранить только какую-то почти бесполезную хуиту типа старых логов, архивных данных или ссылок на картинки с котиками. Да и читал я на хабре пост одного шиза, который доказывал, что в реальном мире не существует транзакционных процессов, то их и не должно быть в БД, лол.
В реальных же проектах сочетают. В моем рабочем проекте 3 базы. MySql, Redis, Mongo. И все хороши для определенных задач.
good
Ну в мускуле по сути все. Пользователи, платежи, хуежи. 99% данных там.
В редисе активных пользователей, которые сейчас юзают приложение. Загружаем из мускуля, и на время сессии пользователь лежит в редисе. Там же всякие переменные, которые постоянно и часто используются. Там же общее хранилище между нодами приложения. У нас 5 инстансов, и они между собой через редис общаются.
Монго для разнообразных настроек приложения. Тут хуй знает как объяснить. Наш продукт можно гибко настраивать, и все переменные для настроек мы храним в монго.
спс
Чем такое архитектурное решение лучше Memory-Optimized table из MS SQL и его аналогов в других системах?
Настраивать и поддерживать целый продукт ради повышения скорости звучит не очень умно, не говоря о том, что нужно обеспечить защиту и доступность дополнительного компонента.
Наш мускуль в такое не умеет. А миграция проекта - дело более затратное, чем запуск редисов-хуедисов. Наверняка есть еще весомые причины. Но я, с высоты своего опыта, не могу ответить на твой вопрос.
> миллиард методов
Самых используемых штук 10, их и учи. map(), filter(), count(), collect(), distinct(), anymatch() и ещё несколько.
Что да?
Прочитай коротенькую книжку Лямбда-выражения в Java 8, там все разжевано про потоки. Коротко говоря, думай не именами методов, а тем, что надо сделать. Например, нужно найти максимальное поле в потоке? Окей, значит у нас на входе поток, а на выходе один элемент. Как же такое преобразование называется, хм... не... ре... реду...
Редукс/Реакт.
Свёртка.
Бедный питон...
Изучаю спринг и заодно решил посмотреть курс лекций по алгоритмам на питоне. И питон кажется сильно проще, как язык. Да и многие говорят, что в джангу быстрее вкат чем в спринг. Что может джава/спринг, что не могут динамические языки?
Я на джавакор полгода потратил, если не считать всякого баловства и забиваний. И питон до серьезного уровня учить не собираюсь. Недостатки джава платформы мне более-менее ясны. А вот достоинства нет. Думаю тут есть аноны, которые знают бэкэнд-стек какого-нибудь динамического языка, чтобы сказать, чем джава лучше.
Ну а в гугле тебя забанили?
Как раз таки из-за строгой статический типизации.
Хелоу ворлд на джаве писать может быть и дольше, но, при проектах приличного размера, джава начинает выигрывать тупо за счёт того, что не нужно писать тесты на проверку того, что тебе вместо строки передали собаку или двигатель от машины.
Динамическая типизация для каких-то серьёзных проектов просто неприемлема.
Использовать.
Стримы очень удобно параллелятся, например. Хотя, тебе это скорее всего не нужно, и никогда не понадобится.
>anymatch()
xxxMatch() методы мало кто знает почему-то. Сколько раз натыкался на count() > 0 один раз даже было count() <= 0
Я по тупому о них узнал. Переписывал какой-то код, где был count() == 0, идея выделяла его жёлтым, жмакнул, предложила заменить.
А еще есть sonarlint. Там еще больше всяких интересных подсказок
в общем кто хотел опробовать монго дико советую. Там еще какая-то баба с русскоязычным акцентом и няшным голосом
в общем подрочил.
https://university.mongodb.com/mercury/M220J
Юзать постман и иже с ним не хочу пока.
Спроси в JS-треде ну.
Да, сегодня в 16:31.
Всё.
Да. Руби и кложур заняли ее место.
Перекладыаание данных в одном формате из одного места в другое, с другим форматом. Ты описал 99,9% приложений на любом языке
Ну а если серьезно. Что в твоем понимании интересные?
Весь банковский сектор на джаве.
Гэмблинг на джаве.
Крупные сервисы доставки еды/такси на джаве.
Биоинформатика частично на джаве.
Мобильная разработка частично на джаве.
По сути на рынке, где идет нагрузка от 100 запросов в секунду, с джавой только дотнет конкурирует.
В биоинформатике конкурирует с питоном.
В мобильной в основном все на коте, но он джаве и не конкурент вовсе.
Там дело немного в другом. У кота своя ниша. Но кот без джавы не сможет жить. Он скорее ее дополняет, а не конкурирует.
Двачую парнишу. Дисциплина по Кастанеде. Тренировать волю чтобы направить её хоть куда. Сам так джаву год учил. Каждое утро обливания и сурья-намаскар. Старался.
Апгрейдни уже комп, жалко что ли для любимого тредика?
Или там тормоза этих механизмов только во время инициализации?
Кстати проверил с массивом на 100кк объектов пустых строчек и с их проксями без собственной логики. Разница по времени в 9 раз.
>нагрузка от 100 запросов в секунду
Чел, нагрузку в 100 запросов в секунду в 2021 держить любое поделие на любом ЯП.
Но тамщета ты прав, весь бекендный хайлоад написан на джаве, так или иначе.
Ну и как плюс, у джавы самое большое комьюнити, и как следствие, огромное количество всяких тулзов и готовых решений. Найти какую-либо технологию без интеграции с джавой - практически нереально.
Котлин унылая хуита для:
- конкуренции на мобилках с джавой 6
- дсл для градла вместо груви(с кем котлин на самом деле конкурирует)
Если бы котлин вышел лет на 10 пораньше, где-нибудь вместе со скалой, то из него мог бы выйти толк. А так он нахуй никому не нужен.
Потому что надо понимать когда ее использовать. Юзера создавать рефелексией - говно. Чтобы у тебя сервис сам создавался - годно. Большая часть рефлексии используется на старте или прогреве приложения. В эти моменты можно подождать в угоду удобству.
Ну поэтому и написано
>от 100 запросов
Чес их больше, тем выгоднее выглядит джава.
>>1949671
Да, в основном с груви. Кота очень сильно двигают вперед. Гугл и jetbrains. Очень много андроид разработчиков выбирают кота. У него есть своя аудитория и ниша. Я не думаю что он будет заброшен, но и джаву он не потеснит.
Вот допустим взять те базы данных.
Там одних только подключений к базам данных куча. JEE, спринг бут автоматом, спринг бут через пропертис, спринг бут конфигурацией бином, через спринг дату. А есть ведь еще спринг дата, JDBC, JPA, Hibernate ебааа.. Мне перед отправкой резюме что все это нужно изучить что ли?))))
Да)))
Да. Разве это не прекрасно? Век живи, век учись. Изучать что-то новое и думать, почему рационально использовать тот или иной инструмент в той или иной ситуации, какие проблемы он решает - это и приятно, и полезно.
да я согласен, но мой главный вопрос был в том, как во всем этом не зарыться. Так то можно всю жизнь все это учить, но так и работать каким-нибудь продавцом в пятерочке, или на трубке в колл-центре, а не погромистом на джава.
Учи то что нужно. То, что не нужно, не учи.
Вот тратишь кучу времени, разбираешься, а потом на работе не юзаешь и десятой части того, что знаешь. Эх.
JEE и спринг - это два альтернативных стека. Потыкай сервлеты и дальше учи спринг.
В спринговых конфигурациях разбираться недолго, просто смотришь несколько примеров и повторяешь.
Самая основа подключения к БД - это JDBC, несколько простых классов. Есть JPA - работает поверх JDBC и позволяет не писать руками запросы и связанные с этим преобразования, причём это не конкретная технология, а спецификация API, самая популярная реализация данной спецификации - хибернейт. Ну и спринг дата - удобная надстройка над JPA (но не только). Желательно потыкать всё, важно иметь общее представление.
>Почему в книжках по кору написано, что рефлексия это медленно и плохо, а прокси-классы еще хуже?
Рефлексия плохо, потому что ненадежно, компилятор не контролирует что ты там вызываешь. А так-то после десятка вызовов, рефлексия будет заменена на сгенерированный байткод. А MethodHandle сразу генерирует байткод.
А зачем? Прокси классы спринг генерирует cglib - сразу в байткоде. А разовый вызов через рефлексию - не большая проблема.
>Самая основа подключения к БД - это JDBC, несколько простых классов. Есть JPA - работает поверх JDBC и позволяет не писать руками запросы и связанные с этим преобразования, причём это не конкретная технология, а спецификация API, самая популярная реализация данной спецификации - хибернейт. Ну и спринг дата - удобная надстройка над JPA (но не только). Желательно потыкать всё, важно иметь общее представлени
Так я потыкал уже.. Наизусть уже не помню че как (только образно, к примеру, вот есть спринг бут например, там подключить можно через пропертис. А без спринг бута (или если автогенерированный бин не подходит) конфигурацией бина. Но какие классы уже не помню, какие-то были там, но уже не ебу какие), сейчас вот перечитываю основы спринга опять. Но в этот раз подключу документацию к чтению. Потом по второму кругу пойду читать JDBC, Hibernate и Spring дату. Но в этот раз уже с документацией.
Правильный подход, или слишком замарачиваюсь?
ну вот сейчас как раз планирую написать несколько пет-проектов.
Есть задача зашифровать строчку по алгоритму ed25519
у меня есть готовые приват и паблик кеи в текстовом виде
Нашел кучу разных сторонних библиотек, стандартную тоже пытался осилить(только добавили в 15 версии), везде в примерах одно и тоже СГЕНЕРИРУЙТЕ пары ключей и пользуйтесь, да, оно работает, но ключи то у меня уже готовые а как сделать объекты ключей из строк я не знаю(
Намутил вот такую https://github.com/neilalexander/jnacl штуковину, она принимает ключи в текстовом виде, всё зашибсь, но есть одно но чтобы, подписать строку нужно передать некий Nonce в виде массива байт, описания как его сделать нет
encrypt(byte[] input, byte[] nonce)
Я пробовал так
byte[] timeStampByts = timeStamp.toString().getBytes(StandardCharsets.UTF_8);
и так
byte[] bytes = ByteBuffer.allocate(4).putInt(1695609641).array();
и так
byte[] bytearray = new byte[] { (byte) 0x65, (byte)0x10, (byte)0xf3, (byte)0x29};
ничего не помогает, метод encrypt выдает ArrayIndexOutOfBoundsException: Index (длинна nonce) и всё, я понимаю, что не правильно передаю метотду массив но как его подготовить я хз.
Хуёвый подход. Тыкать и смотреть что произойдёт - ты будешь до пенсии разбираться. Нужно один раз сесть и разобрать всё, от БД до ждбц. Причём не то что там селект написать какой-то, а с транзакциями, пулом соединений, маппингами в объекты и всё такое. Как только разберёшься в базе, всякие спринги даты, хибернейты и т.п. развалятся на кирпичики, как конструктор лего.
Тебе сейчас тяжело, потому что ты начинаешь изучать с середины/конца, не зная ни базы, ни терминологии, ни вообще нахуя это всё нужно. Разберись в базе, сука.
Я вот неделю назад засел за java ee, ну и вообще решил посмотреть что происходит в джаве за пределами кора и хеллоуворлодов. Результат - пиздец. Почему экосистема джавы такая монструозная? Нет каких-нибудь современных хипстерских легковесных технологий без этих ваших огромных серверов приложений, контейнеров сервлетов, и т. д.
Один только glassfish весит 110 мегабайт, так еще и не работает с джавой > 1.8
>java ee
>серверов приложений, контейнеров сервлетов, и т. д.
>glassfish
С чего ты взял, что это относится к современному джава энтерпрайзу?
Не знаю. Мне посоветовали читать книгу "Java EE 6 и сервер приложений GlassFish 3". И вообще посоветовали немного поковыряться в EE перед тем, как в спринг лезить.
Ну вот я открыл эту книгу, а там на первых страницах запускают этот самый glassfish. Запустил - нихуя не работает. Поставил последнюю версию, которая вышла буквально 2 месяца назад - не работает. Погуглил - оказывается даже самая последняя версия требует восьмую джаву.
И что теперь делать? Нашел какой-то tomcat, думаю его попробовать, он вроде работает даже с 15 джавой.
Бля, ну бывает, спасибо
Чел, ты. Поддержка 6 джавы кончилась в 2013 году ещё. Тобиш с тех пор её патчили только секьюрити патчами. Сейчас надо минимум дрочить на 8 джачу, и то, уже части современного стека требуют 11+.
Короче, начинай с 11 и невыёбывайся. Если хочешь повыёбываться, можешь начать с 8.
Я понимаю, но хотелось изучить EE, а полноценных ЕЕ серверов походу уже не разрабатывают. Глассфиш был вроде как самый популярный.
Чел, джава ЕЕ это всего лишь набор стандратов.
Вот те пару реализаций из головы:
Джакарта. Микропрофайл. Микронавт. Кваркус.
Если ты хочешь быть совсем на острие, то хелидон.
Да он ебанутый
Нет, для спринга это более чем достаточно.
Да, либо бери wildfly (бывший jboss), он работает на более новых жабах.
Программа должна считывать текстовый файл. На основании каждой прочитанной строчки она создаёт один из 4 объектов, и у каждого вида есть свои особенности. Можно ли это реализовать лучше и красивее, чем с помощью метода со switch case / if-else?
Если твои 4 типа ничем друг на друга не похожи, то ничего красивее switch/if у тебя не выйдет.
Можно конечно.
Очень просто, удали папку test.
Технологии в таких вещах не нужны, ибо решения принимать тебе никто не даст. Для этого есть специальные люди.
Самый крутой и нужные девелопер в кровавом ентерпрайзе, это тот, который может докопаться до сути через огромные вековые кучи говнокода, причём в умеренное время.
Тут читать бесполезно, нужно просто "делать".
Сука, читай про парсеры блядь.
Хеад Фирст Сервлетс Анд Жсп
> гайд
https://metanit.com/java/javaee/
> как деплоить и запускать
Получаешь war-ник, деплоишь мышкой через веб-консоль сервера приложений или лучше через один из плагинов для мавена, для всех популярных серверов они есть.
> как при этом в спринге реализуются спецификации сервлетов
Спринг не реализует сервлеты сам, он юзает реализацию из контейнера сервлетов, создаёт единственный DispatcherServlet, а в нём уже сам реализует роутинг, сессии и прочую хуйню.
Ух блядь, стоит обернуть Set в любой другой Set - и все сразу норм. Методы при этом все равно не вызываются. Ебал.
Производительность? Шарп
Всякий синтаксический сахар в виде свойств, асинк/авейт и тд - шарп.
Linq и тд? Тоже
Чем жава так хороша кроме того что легаси написано больше? В чём плюхи-то?
Толсто, пошел нахуй.
Толсто, пошел нахуй.
Толсто, пошел нахуй.
>В чём плюхи-то?
Хотя бы в том, что не прибита гвоздями к винде только не надо про неткор рассказывать
Java проиграла битву, но на ней будут писать еще 5-7 лет как это было с COBAL
Даже если завтра объявят что java официально всё, на ней все равно будут писать даже новые проекте, потому что там в основном дедушки, а дедушки цепляются за технологию и используют ее до смерти.
Для десктопа сейчас берут js(любой другой язык) с его конвертором в QT (да дедушки, за эти 2 года много чего поменялось)
Если и требуется написать серверное решение, то берут нормальный серверный язык, а не java на котором вроде как можно писать сервер...
Пытаюсь написать простенькую "игру". Пока что у меня дракон и рыцарь хуярят друг друга пока кто-то один не сдохнет. Придумайте мне пожалуйста что добавить в игру, чтобы на моём уровне я смог погуглить-почитать и написать соответствующий код.
public static int damage() {
int dam = (int) (Math.random() 100 + 1);
return dam;
}
public static int failure() {
int fai = (int) (Math.random() 100 + 1);
return fai;
}
public static void main(String[] args) {
int dracon = 1000;
int hero = 1000;
for (int i = 0; dracon >= 0 && hero > 0; i++) {
if (damage() > failure()) {
dracon -= damage();
System.out.println("==============================");
System.out.println("Damage is " + damage());
System.out.println("Failure is " + failure());
System.out.println("--------------------------");
System.out.println("Your turn ");
System.out.println("--------------------------");
System.out.println("Dragon takes damage equal to " + damage());
System.out.println("Dracon Lives " + dracon);
System.out.println("");
} else {
System.out.println("==============================");
System.out.println("Damage is " + damage());
System.out.println("Failure is " + failure());
System.out.println("--------------------------");
System.out.println("You missed");
System.out.println("--------------------------");
hero -= failure();
System.out.println("Dracon,s turn ");
System.out.println("--------------------------");
System.out.println("Hero takes damage equal to " + failure());
System.out.println("Hero Lives " + hero);
System.out.println("");
}
}
}
Пытаюсь написать простенькую "игру". Пока что у меня дракон и рыцарь хуярят друг друга пока кто-то один не сдохнет. Придумайте мне пожалуйста что добавить в игру, чтобы на моём уровне я смог погуглить-почитать и написать соответствующий код.
public static int damage() {
int dam = (int) (Math.random() 100 + 1);
return dam;
}
public static int failure() {
int fai = (int) (Math.random() 100 + 1);
return fai;
}
public static void main(String[] args) {
int dracon = 1000;
int hero = 1000;
for (int i = 0; dracon >= 0 && hero > 0; i++) {
if (damage() > failure()) {
dracon -= damage();
System.out.println("==============================");
System.out.println("Damage is " + damage());
System.out.println("Failure is " + failure());
System.out.println("--------------------------");
System.out.println("Your turn ");
System.out.println("--------------------------");
System.out.println("Dragon takes damage equal to " + damage());
System.out.println("Dracon Lives " + dracon);
System.out.println("");
} else {
System.out.println("==============================");
System.out.println("Damage is " + damage());
System.out.println("Failure is " + failure());
System.out.println("--------------------------");
System.out.println("You missed");
System.out.println("--------------------------");
hero -= failure();
System.out.println("Dracon,s turn ");
System.out.println("--------------------------");
System.out.println("Hero takes damage equal to " + failure());
System.out.println("Hero Lives " + hero);
System.out.println("");
}
}
}
>Для десктопа сейчас берут js(любой другой язык) с его конвертором в QT
При чём тут десктоп, дебич? Я тебе не про WPF говорю, а про ASP, где дохуища проектов УЖЕ написана на WCF который не портировали в net core и крутиться на виндовом iis. То есть нужна виндовая инфраструктура.
Я уже молчу про прикладные инструменты, хоть это не так важно. У тебя нет выбора рабочей ОС, потому что нормальная студия только на винде. Ну и еще хуллиарды тулзов, наверное. Я на энтерпрайз-шарпах недолго поработал хотя скорее поебланил, в моём случае
Такое ощущение, что ты из JS-треда залетел и лишь бы спиздануть что-то. Еще скажи, что джаву теперь не используют на кофеварках.
Это уже поздно обсуждать, уже взял джаву.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/csharp.html
Ну судя по этим бенчмаркам C# чуток опережает.
Может конечно в обычных вещах, а не в алгоритмах сложных, разница меньше, но хуй знает.
>>1951035
>async/await лучше только тем, что они уже есть и работают
Да они удобные. Ты пишешь на полноценном языке вроде java/C#/C++ со всеми плюхами, но у тебя есть смешные синтаксические конструкции из яваскрипта.
>>1951045
> писать еще 5-7 лет как это было с COBAL
Во-первых, COBOL
Во-вторых, COBOL это не самый плохой язык для своих целей. Это по сути американская 1Ска, только немного более ебанутая. Язык для бизнес задач, автоматизации работы предприятия. Сравнивать обычные языки и COBOL это как сравнивать какую-нибудь java с Julia, R, Matlab и тд.
>>1951051
Если кому-то за это платят - моё почтение
Бля, чел, расскажу про неткор. Сейчас это становится дефолтом везде. У нас большая часть народа на макбуках пишет и что характерно в vscode
Кто-нибудь пользовался валидата csp и справочником сертификатов?
если да подскажите, ссылкой на инфу, или как удобно, как можно всё это дело автоматизировать через скрипт/api, а то что-то гугл не особо мне говорит как это можно интегрировать с помощью java.
>Во-вторых, COBOL это не самый плохой язык для своих целей
так же можно оправдать и MS DOS
Эпоха Java давно закончилась.
Переучится на новый современный язык не так сложно, почему вы это не делаете, почему вы вцепились за legacy язык?
А у вас тут болото.
нет, java уже давно мертва
Такое себе.
>Ну судя по этим бенчмаркам C# чуток опережает.
Я слегка прошелся по этим бенчмарка и там полная хуйня. Например первый же тест https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/regexredux.html
Там перед C# идет Питон! Питон Карл! А следом с небольшим отставанием идет PHP. Там написан полнейший говногод в лучших бангалорских традициях.
Java https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/regexredux-java-3.html
>for (Map.Entry<String, String> entry : iub.entrySet()) {
> buffer = Pattern.compile(entry.getKey()).matcher(buffer).replaceAll(entry.getValue());
>}
Т.е. они даже не догадались заранее скомпилировать Pattern и повторяют на каждой итерации.
И меряют полное время выполнения программы, а не время выполнения бенчмарка. И понятно что тут уже и время старта JVM считается и время JIT компиляции если до нее дойдет, прогрев то никто не делает. У Питона быстрее стартует интерпретатор, вот он и первый Если ты пишешь скрипт который будет разово исполняться - то да, это валидное сравнение. А если тебя интересует производительность в реальном приложении, которое работает длительное время это невалидный юзкейс.
Умерла, но на ней еще будут писать.
Так же как передвижение на конях умерло, но ты можешь найти места где их используют для транспортировки грузов, потому что это выгодно и не нужно переучивать персонал на вождение авто да и авто денег стоит...(зачем вообще авто изобрели, одни убытки)
>Как не зарыться в многообразии инструментов
Бери нормальный язык, а не java которую облепили 10000 библиотеками что бы закрыть дыры убогости языка.
Как и подобает любому шарписту. Неотъемлемое занятие от первого.
PHP или PY будет куда лучше java, js+typescript или GO
Ну и C# если хочешь пойти работать в серьезный Энтерпрайз где люди могут себе позволить windows сервер за 200 000 рублей.
знаешь проблема всех этих новых не загибающихся языков?
3500+ вакансии в москве на жабе и 300-500 на го, и по тому-же примеру все остальные, кроме пытоши и жабаскрипта, но пытоша это язык в котором работа будет не того типо которого ты хочешь скорее всего.
не забывай что кроме 3500+ там еще и 40 000 дедушек стоят у двери своими резюме.
а в go примерно 500 вакансий на 1000 зумеров.
Как измерял?
>не забывай что кроме 3500+ там еще и 40 000 дедушек стоят у двери своими резюме.
А можно узнать, какой у тебя опыт работы на джаве?
5 лет писал на java, ушел на go.
Тут даже контингент другой, люди более умные что ли, современные.
>5 лет писал на java
И что, у тебя были хотя бы малейшие проблемы с трудоустройством?
>не забывай что кроме 3500+ там еще и 40 000 дедушек стоят у двери своими резюме.
Вот это вообще к чему было?
>Тут даже контингент другой, люди более умные что ли, современные
В чем современность го, если это по сути обычный си без дженериков, эксепшенов и перегрузок, но с зелеными потоками и более удобными либами работы с сетью?
примерно год учился, 3 месяца назад взяли на оплачиваемую стажировку, с 1 марта официально в штате, особых проблем не было, только в альфабанке залупные старые козлы были, 2 часа *бали мозг, а потом ну твой батя судимый досвидание.
Хуй знает на самом деле. Но про то, что джава умерла, или на нее слишком много желающих, говорить не стоит. Хотя желающих действительно немного.
А хули ты хочешь от шизов, которые в чужой тред приходят срать, что какой-то там язык хуевый.
Мне кажется, что это троллинг просто такой. Какая-то слишком нездоровая акцентуация на количестве вакух и соотношении вакух к резюме, кочуют из треда в тред, охуеть можно.
Ну, строго говоря, если ты выучишь паскаль, то вряд ли легко найдешь работу. Но на популярных языках все действительно зависит от тебя.
если поднимаются такие темы - значит умерла
Да умерла умерла, успокойся, забудь про жабу, возвращайся в свой тред кушать какашки.
Надо по соседним тредам поспрашивать, не мертв ли их язык, тем самым похоронить весь айти-инструментарий для разработки. Так и лопнет айти-пузырь.
И в моих тоже!
И их можно скушать.
До зимы бы успеть сесть на поезд.
Из своего аула в две улицы, пол жизни только добирался до москвы + средне работы.
Накопил денег(оставил 20 часов в неделю на работе) и сижу учу инглиш и эту джаву.
Хочу стать белым человеком иметь деньги и вернуться в деревню и развивать фермерство, я долбоеб.
Фронт уныл и скучен, что уж о верстке говорить, на бэке намного интереснее хуевертить сервер.
Да вкатывайся смело, даже если жаба через 20 лет начнёт загибаться, перекатиться всегда успеешь. И не будешь же ты на одном стеке писать до пенсии.
Я читал, что жаба-энтерпрайз стал по настоящему популярен в середине нулевых. До этого на больших системах плюсы работали.
Времена другие были, мозг уже закостенел к тому времени, когда появились альтернативы.
за бугром, что тру популярность пошла где-то с 4 джавыее - 2003г. Но может я и хуиту читал.
Ладно я понимаю пхп, руби, на худой конец джаву закапывать, но хоронить питон, который уже везде засунули, ещё бы js закапывать начали)
Пока спецовку одену, ключики тряпочкой протру, инструменты по кармашкам разложу, станок включу Пока интерфейсы напишу, абстракции накидаю, название класса не короче 30 символов придумаю, имплементирую интерфейсы, глядишь и обед начнется
> js закапывать начали
Шарписты закапывают, ведь о боже, у них есть Blazor. Ни разу не видел, чтобы джависты так носились со всякими Vaadin/GWT/JSF
Тоже охуел как увидел это все в первый раз на проекте, по сути каждая из страшных аббревиатур разгребается за день-два, ну и останеться только спринг ковырять.
Там опять будет отдельно живущая 3 версия и вот совсем совсем новая 4 она вот теперь самая правильная, но они не совместимы, поэтому ебитес.
>Ни разу не видел, чтобы джависты так носились со всякими Vaadin/GWT/JSF
Ты нипанимаиш! Блазор не компилируется в ЖС, это независимая платформа webassembly!
>быстро
Тебе тогда в пхп, руби, питон ну или во фронт, что-то типа реакта, вью. Можно ещё в тренде с мобилками спросить, там некоторые быстро вкатились. С беком на жабе не все так быстро.
Жаль, что для ведроид-разработки нужен хороший пк. Мне с моими 4гбозу2ядра только круды на локалхосте держать.
>async/await
Да уже сейчас можно добавить синтаксический сахар для Future, как сейчас сделано для Iterable или Closeable. Но по очевидным причинам, такое не введут.
Зачем? Болезных и потроллить можно тонким троллингом.
Или премодерация лично для нашего треда.
Стратегия простая: не отвечать им.
Жабаскрипт или си решетка, тогда вкатишься. Жаба сдохла, новые проекты прд команды из синьоров/мидлов, или легаси говно тоже самое. Кароч жаба в 2к21 - горя хапните.
Почему не вкатиться джуном в команду синьоров/мидлов?
Лучше хапнуть вкусных какашек в шарпе.
> Жаба сдохла,
Хз, у нас вакансии для вката в it примерно пополам требуют или джаву, или питон
германия-кун
Очевидно, что нинужно, потому что будет Loom.
Легковесные треды во всем лучше async/await.
- весь существующий код работает из коробки
- все прокси фреймворки работают (транзакции, трейсинг и т.п.), тред локалы и прочее
- простые и понятные стректрейсы
- простой и понятный дебагинг
Это фича.
Итераторы, вроде, сами не переходят в начало.
Есть ли в джаве циклический список, к которому можно подключить итератор, например?
Не хочу в коде свои классы плодить, дабы код еще менее читабельным был.
читай эксепшон, там все написано
хз, даже в моем мухосранске куча вакансий на жабу, в т.ч. стажерами и жуниорами в банках.
Жабаскрипт тоже много вакансий (чуть меньше чем у жабы), но с начальным лвлов ни одной.
А си-решетка вообще нахуй никому не упала. Ну пара вакансий есть, но это смешно.
плюс, учитывая то что в жабаскрипт сейчас каждый вкатывается сначала, конкуренции по жабаскрипту НААААМНОГО больше. Ну и всяко она проще в изучении.
Допустим, у меня есть ресурс /users/. К нему автоматом будут коннектится без блокирования потока люди? Бин @Controller вроде как создается на каждый запрос. Т.е. никакая свистопляска с многопоточностью не нужна, да? Но как быть в таком случае с подключением к БД и использованием датасурса в репозитории?
а много там джунов? или Middle+/Senior позиций? И сравни просто требования для Android Junior/ Java Junior и охуей. Кароч в нашей стране рынок жаба джунов перегрет сильно, знакомая HR говорит, что джуны жаба не нужны. Через их контору под 40к проходит кандидатов. Такие дела
проблема в том, что по жабаскрипту цифры печальнее раз в 10 из-за количества вкатывальщиков-конкуретнов.
К примеру, вот я например изучил Кантора почти всего, умею верстать (под мобилку в тю.ч.) Реакт знаю более менее(хотя уже подзабыл), редукс трогал. Но я понимаю что я нахуй никому не нужен, потому-что таких как я дохуя на рынке, потому-что это все учится изи.
Требования по жабе больше, она сложнее. Вакансий +- так же как и по жабескрипту.
Т.е. вкатиться (получить работу) в жабе проще. Да, надо изучить всего больше, это факт. Но шанс того что это все будет ненапрасно - высок. В Жабескрипте ты будешь знать кучу фреймворков и всеравно сосать хуй. Наверное, точно я не знаю
- реализация более сложная но это проблемы авторов JDK
- больше потребление памяти
- хуже перформанс в некоторый случаях типа неблокируемых алгоритмов
- проблемы с native code непонятно насколько хорошо будет поддерживаться native code
>в нашей стране рынок жаба джунов перегрет сильно, знакомая HR говорит, что джуны жаба не нужны
Джуны вообще никому не нужны, вне зависимости от стека технологий. Хоть жаба, хоть питон, хоть шарп, плюсы, пхп, жабаскрипт, и т. д.
Нет опыта -> ты нахуй никому не нужен в ИТ.
Согласен. Я вот с утроба имею два года опыта на аутсорсе, тимлид-архитект потомственный. Все решает генетика, ребят, не стоит вкатываться.
Рян Дахль, ты?
Если не знаешь спринг, то скорее всего и в джаве новичок. В целом адекватная оценка времени.
Ору. Я сомневаюсь что кто-то, кто работает над написанием спринга, знает ВЕСЬ спринг. Такие маняфантазии.
>Шиз, кто про ВЕСЬ спринг писал?
ну так-то в том же коре дохуя нюансов типа интерсептеров и прочего говна. Сомневаюсь что это можно все осилить за 1,5 месяца. Не говоря уж про бут. Он только кажется простым
> дохуя нюансов типа интерсептеров и прочего говна
Будет задача, которую нужно будет решить этими средствами - освоишь. Без требований эти нюансы нахуй не нужны, пока ты жсончик в базу складываешь.
>Сомневаюсь что это можно все осилить за 1,5 месяца.
>все
Зачем вообще осиливать все? Осиливать надо то, что используешь для решения определенных проблем. А с твоим подходом изучать что-то можно вечно.
С одной стороны ничего плохого вроде бы нет, с другой иногда попадаются классы, где куча конструкторов вызывает друг друга, и заёбываешься прыгать между ними.
Мне больше нравится, когда конструктор только @RequiredArgsConstructor, читать конструкторы как-то не очень хочется.
Жаль, что ломбок только для дата-классов. Хочу аннотацию @GenerateBusinessLogic("бизнес-требования.docx")
1. Знания html/css + thymeleaf. html читал только маленькую статью, css вообще не знаю ничего, нужно ли вникать в thymeleaf - вообще хз.
2. Знания конфигурирования Spring Boot. Ну основы ди/конфигурирование обычного спринга посмотрел видосы, почитал статьи, кто такие бины и как они инжектятся. А по буту нашел сильно меньше и не понял.
3. Понимания MVC паттерна. Вроде читал всякую абстракщину и в общем понимаю, но в конкретике путаюсь. Например интерфейс Model точно относится к нему? Насколько я понял это по сути мапа передающаяся от контроллера к шаблонизатору. Я думал, модель это сами объекты, типа заказов, людей, итемов и прочего.
Короче вопрос стоит потратить неделю только на html/css по этому туториалу? https://metanit.com/web/html5/ Какие главы стоит пропустить?
Не могу. Здоровье плохое. Придется вкатываться в кодинг. Плюс я уже кучу времени потратил на жабакор. Так что Спринг. Но если я буду так же ходить кругами, как и с кором - я потрачу года два с половиной вместо одного.
Даже боюсь представить, что ты там наизучал.
Сиди и делай, как обезьяна, по книжке. По верхам нахватаешься - будет хоть что-то.
Алсо, спринг ин акшон кал полный, там дико запутанные листинги, которые просто ахуеешь собирать в рабочую программу, но ничего ентрилевелнее, увы, нет.
А что не кал? Про Спринг норм? Где теорию брать?
Мне не понравилось что в Спринг ин экшон теории почти нету, пришлось после первой главы смотреть ютуб и читать статьи по di. А по листингам, там же есть код готовый. Если по книжке не перепечатывается, они что-то отпечатались или типа того, можно в готовый код заглянуть.
Нигде. Нет никакой теории. Вся суть фреймворка в том, что тебе не нужно о том, как там DI устроен - за тебя уже подумали умные люди.
Хочешь разобраться - поставь брейкпоинт в конструктор любого компонента и по стаку отследи какой механизм его вызывает, но я тебе отвечаю, там такая запутанная борода с 20 стажем, что только Евгений Борисов и поможет.
Никак. Ещё раз повторяю, все эти книжки по фреймворкам - хуита.
Хочешь разобраться - гугли всякие статейки и видосики для чайников, ищи бест практисы и т.п. По крупицам будешь потихоньку набирать знания. Другого пути нет. Сесть, прочитать книжку и сказать "я знаю кунг-фу" - не получится.
Надо понимать, как оно переводится в аннотации и обратно.
Чел. Ты даже не представляешь. Бинпостпроцессоры это просто детский сад по сравнению, например, с тем, как работают рест контроллеры и методы в них.
Дополню сам себя же. Это говнод - да, но в целях демонстрации это норм, тупо чтоб сэкономить место на слайде/скриншоте.
Если хочешь делать простенькие игры, где реально что-то бегает на экране и пиздит друг друга в 20 строчек кода, то ознакомься либо с рогаликами/roguelike, либо с простыми 2d-движками. На джаве овердохуя туториалов и движков и к тому, и к тому. Дальше только твоя фантазия. движок к игре написать в 100 раз проще, чем придумать интересную механику Естественно, нужен английский.
> Разве нельзя было создать объект Runnable, и потом передать как параметр?
Хм, что же лучше?
int c = 1 + 2;
Или
int a = 1;
int b = 2;
int c = a + b;
Хуйню несёшь именно ты.
Я думаю, через игру он просто хочет изучить джаву, чтобы потом сидеть по уши в энтерпрайзе. Для игр выбирают другие языки.
Ок. Я не знаю как это работает точно, поэтому утверждать не могу. Но я знаю как работают фильтры, аннотации, рефлексия, и могу придумать как бы я сделал это сам. В любом случае - в спринге нет никакой магии. В очередной раз.
Лишним не будет.
С каких фреймворков посоветуете начинать? Я хочу создать что-то гуёвое, типа калькулятор с кнопками или шашки, в которые можно играть с самим собой и т.д.
Swing, как я понимаю, уже не актуален, а что можете сказать за JavaFX?
Гуй на джаве как таковой не актуален. Так что без разницы, хоть javafx, хоть swing.
Делай крестики-нолики на javafx.
Я один и тот же шизик, это я тут продвигаю мысль, что идею надо переписать на плюсы, Когда-то тыкал Android studio, пришлось докупать оперативу, да и после этого приходилось выбирать между браузером и студией. Да и идея не намного лучше. С тех пор триггерюсь каждый раз, когда кто-то собирается писать гуй на жабе.
http://www.roguebasin.com/index.php?title=Java
Посмотри тут или в гугле, я любитель писать велосипеды писать движок на свинге или любой порт curses на жаву
Простые 2д игры делал на движке Slick2d, но наверняка есть варианты получше.
Ну ОК, а какой тогда мини-проект можно сделать вкатуну-самоучке? Чтобы это можно было потом представить как портфолио. Везде требуют: покажите какие-нибудь свои проекты. А пока что на данный момент я тупо задрачивал теоретические знания.
Спринг же. Пишешь какой-нибудь интернет-магазин или социалочку, с ппостенькой веб-мордой, и всё. Правда, это делается для себя, работодателю максимум про него рассказываешь словами, сам проект они почти никогда не смотрят.
А какую литературу стоит посмотреть с примерами? Можно и на инглише.
Начать можно хоть с видосиков на ютубе про спринг, дальше читать туториалы на баелдунге и официальные гайды.
Это ты один и еще полтора анона в мире с днищепекой, у 99% разрабов нормальные рабочие машинки, поэтому всем похуй. Даже на моем домашнем макбук про конца 13 года с 8гб озу все летает. А идея зато кроссплатформенная, и вообще она, наверное, лучшее java-gui приложение, который я видел, очень близок по отзывчивости к нативу, куда лучше js-говна типа дискордов.
Мамку твою аргументировал.
Да она всего одна годная spring in action
> Сидеть в ламповом офисе, программировать на XML
> Ездить по всему городу, охуевать, какие же клиенты ебанутые, получать копейки
Сотка килобаксов в наносекунду? Вполне.
сярпошиз ты пьян иди домой
Ты про шарп или про объектно-ориентированный язык программирования, разработанный в 1998—2001 годах группой инженеров компании Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота[7] как язык разработки приложений для платформы Microsoft .NET Framework. Впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270. ?
Достойно.
Шашки лучше из бумаги. Я папироску оставлю тебе.
JavaFX тогда, чо. Уж если решил именно на жабке. ОСТАНОВИТЕС
>>1955127
Шизик, ты зачем сагаешь тред в бамплимите?
>>1955187
У 90-95% сайтов и приложений бек написан на Яве полностью или частично. Берешь понравившийся тебе стартап вбиваешь startupname careers и видишь что за языки используются.
Берем https://www.eu-startups.com/2019/03/10-of-the-best-startups-to-work-for-in-europe/
N26 - Ява и питон у датасатанистов
Spotify - Ява, немного легаси питона в сервисах и у датасатанистов
Hello Fresh - Го + Ява
Auto1 - Ява
BlaBlaCar –Ява
Transferwise - Ява
А че ты тогда тут сидишь?
Но во всех модных уроках и конференциях говорят, что в современной жабе мало хмл.
В современной может и мало, даже последние ЕЕ можно без хмл конфигурировать. Но это слишком просто и нелампово.
Подскажите, как правильно реализовать merge
https://pastebin.com/3teisZUH
у меня все пусто.
файл не пустой.
не могу понять.
while (scanner.hasNext()) {
manager.merge(scanner.next(), scanner.nextLong(), Long::sum);
}
почему это не было так очевидно для меня, до этого жесть.
ну хотя, я просто плохо понимаю еще сканер видимо.
Да на самом деле спасибо, что напомнил про Map.merge
Странно, как можно понимать что такое мапа, мапинг-функции и не понимать, как работают объекты и сканнер.
Я ЖЕ УЧУСЬ.
Видимо просто не так углублялся со сканером(так и есть)
а сейчас все равно учу коллекции.
Все знания все равно поверхностные мои,но это нужно что бы я потом что-то делал и узнавал больше. Нет?
Ранее пока работал со свифтом, там очень годным был Firebase. Но я как понял, его можно адекватно использовать только на андроиде или ios, для десктопного приложения чтобы его прикрутить нужны танцы с бубнами.
Спасибо заранее!
Я тоже учусь, просто обычно сканнер это самое начало учебника, мапы и потоки ввода ближе к середине, а функционалочка ближе к концу. И когда я до функционалочки дошел я задачек 200-300 со сканерами решил, хоть и не из ридера, а с систем.ин.
задачи с джава раша насчитал чтоле.
и шо ты вкатился уже ?
просто подход к обучению у нас разный наверное.
задачи пизжу с курсов, знакомые сливают + в чатах сижу.
hiperskills jetbrains(платный, как жабараш, но сильно лучше, ибо от людей, которые в жабе разбираются и на инглише), stepic(там несколько задачников, бесплатно. Самые нормальные от тех же джетбрейнс на инглише), всякие алгоритмические на codewars.
>>1955859
Неа, месяц назад засел за спринг/хибернейт. С моим ленивым подходом это еще на год/полтора. У меня из знакомых только фротэндеры.
Может ты и прав, я много времени потратил на кор, читая параллельно несколько туториалов и учебник и проходя несколько задачников. Но я не спешу вкатываться. Мне уверенность, что я хоть что-то знаю важнее скорости обучения. Много маленьких задачек на применение стандартной либы джавы и на простые алгоритмы в этом немного подсобили.
Жалко по спрингу задачников нет. Ибо уже несколько раз было, что даже после перепечатки кода из учебника - через 3 дня забыл, что это вообще учил.
У тебя вообще странный подход к обучению.
> скорость не важна, важнее знания
Знаю нескольких вкатунов, которые четвертый год вкатываются. По сути получается что это не цель, а хобби какое-то. Изучать программирование.
> перепечатываю и забываю
Так и не надо перепечатывать. Нужно писать самому. Забыл? Подгляни. Но чтобы не забывать, надо много писать своего кода. Придумать приложение - 5 секунд. Бери и пиши. Самое лучшее обучение.
Чел, когда ты только начинаешь - сам ты ничего не напишешь. На коре я могу что-нибудь написать и то что забыл, подглянуть. Гуй к базе данных на jdbc на свинге, хоть и дропнул главу про свинг на середине. А там где я посмотрел только самое начало со структурой проекта, одним шаблоном и одним контроллером, четверть из этого не понял и четверть забыл - как я что-то там напишу?
Как я например смогу даже поставить себе задачу написать рестфул приложуху, если я в душе не ебу что такое рест и зачем он нужен?
Можешь хоть миллион раз говорить что я тупой или борщехлеб и мне пора на кассу в пятерочку.
>тупой или борщехлеб
Я такого не говорил.
Ставишь себе задачу. Написать рестфул. Начинаешь писать приложение. Доходишь до момента который не знаешь -> начинаешь читать/гуглить/изучать. Лучше чем тупо копипастить.
Ну я хз, как поставить себе задачу, где я не шарю вообще.
Ну про хобби ты слегка прав. Я не сильно хочу вообще работать, и даже если не вкачусь на галерку это будет как хобби.
Зачем свичиться, там же большая часть твоих знаний, на которые ты убил месяцы будет невалидна?
Работа для быдла.
Ну а в некоторых выигрывает. А в некоторых сферах проигрывает js или php.
Это как учиться в бурсе на слесаря-сантехника, а потом захотеть свичнуться на электрика, потому что ток быстрее воды бежит.
как же хочется сегфолт
А потом перекатиться обратно, узнав, что скорость самих электронов меньше, чем у воды из крана.
в смысле
Это для тех, кто не поймёт же.
Джава вместе с говном не юзается.
не скажу не знаю
Где юзается жаба, обычно юзается только jvm, вся хуйня, которую теоретически возможно написать на жабе, там пишут на жабе, все вспомогательные приложухи на жабе, клиент и всякие утилиты на жабе, QA automation на жабе, девопс на груви и jython, даже небо и аллах будут работать на jvm.
Одна JWM, чтоб править всеми, Она главнее всех, Она соберёт всех вместе И заключит во Тьме.
Ковыряюсь с jdbs, создание entity слоя.
Если ты не зеленый, то тебе нужно почитать про hash-based структуры данных, HashMap, например, как самый популярный представитель.
Но вообще эту залупу бы генерировать автоматом, дата классы в котлене это умеют, в жабушке не знаю что является альтернативой ебаный обоссаный обдристанный волосатый ЛОБОК?
>тебе нужно почитать про hash-based структуры данных, HashMap, например, как самый популярный представитель
Расскажи, плз, как часто ты используешь сущность из базы в качестве ключа для хэш таблицы?
Очень редко сущность сама используется. Чаще какие-то айдишники или стринги. Equals намного чаще нужен оверрайднутый. Если тебе надо две сущности сравнить. А с ним по дефолту оверрайдят и хэшкод, потому что у них контракт.
>Очень редко сущность сама используется
На самом деле не так уж редко, используется каждый раз, когда используется Set (реализация HashSet), а сеты все же иногда используют.
>Equals намного чаще нужен оверрайднутый
Не нужен, вряд ли ты хотя бы раз вызывал equals у сущностей.
assertEquals(expected, result) видел?
Зато почти все кто делают уроки по продвинутой джаве/хиберу/спрингу - его используют, а среди них есть нормальные ребята работающие в продакшене. В книгах типа Спринг ин экшон он есть.
То есть по сути ломбок - почти стандарт индустрии.
и нахера вам эти базы со спрингом всрались. хотите работку за 300кк? хех
РАБотать на начальника, двигаться по карьерной лестнице?
Что же с тобой стало анон...
86 знаков, 15 слов. Типа это в принципе норм или для тестов только норм?
А перебор начинается когда? 150 знаков? 200?
Не норм, в жунит давно уж завезли возможность переопределять имя метода. А в котяке и груви она всегда была.
Только в тестах норм. В обычном коде из-за километровых идентификаторов вместо foo(bar(baz(123))); начинается
setAbstractObserverAdvisorBeanStrategyAdapterListenerBuilderIterator(
getSingletonInterceptorAdvisorListenerBuilderFactoryFactoryFactory(
abstractListenerAdvisorProxySingletonFacadeStrategyFactoryAdapter(123)
)
);
Не поддерживает наследование.
Скрывает реализацию, и если объект создается билдером - то чтобы поискать где сеттинся поле надо деломбокать билдер.
>Не поддерживает наследование.
Поддерживает.
>чтобы поискать где сеттинся поле надо деломбокать билдер.
Ложь.
> Не поддерживает наследование.
Блять, эта хуйня во всех попытках сделать дата-классы что ли?
Уходи.
>Поддерживает.
Пока только экспериментально, и с кучей оговорок. Йоба конструкторы с self reference generics не поддерживаются.
>Ложь.
И можеть сеньор пиздабол расскажет, как найти где сетиться поле в @Value @Builder классе?
>>1957557
А ты предлагаешь в каждом классе писать id, created, updated поля?
>А ты предлагаешь в каждом классе писать id, created, updated поля?
Лично я предлагаю писать callSuper = true
мимопроходил
Ну так кто сейчас в самом начале - ему стоит книжки по 11 читать. Хотя некоторые ебанаты первой книжкой все равно рекомендуют философию или хедферст с говном мамонта вместо жабки.
А те кто в самом начале будут через год - им стоит начинать с книжек с 17ой.
Это олды рекомендуют говно мамонта, которые прочитали 10 лет назад, и не знают, актуально ли это сейчас. Будет неудивительно, если лет через 10 я будут так же рекомендовать Хорстманна, а он перестанет обновляться.
Так мне, как бы, и надо прочитать один раз в самом начале. Вкатываюс.
А есть оно же, но пиратское и доступное к скачиванию без взлома жопы?
Ну ты это, шапку прочитай-то.
да, на рутрекере, даже на русском. Ты бы столько же времени на поиск потратил, сколько и на этот вопрос.
Нет) Хуй тати
Насколько я понимаю, джава вообще о другом. Конкурент рельс это нода, питон и пхп.
На рельсах работы нет.
Зачем читать книжки по кору? Ну типо шилдта или хорстманна несколько глав стоит прочитать, но полностью никто этого не делает. Тем более, что некоторые важные моменты типа NIO и многопоточки освещены обычно довольно плохо в них.
Чтобы вкатиться в кор, нужно решать задачи на кодварсе и литкоде, параллельно читая разнообразные мурзилки и гугля how to do X in Java. Ну ради описания ООП и конечно стоит почитать хорстманна, но увлекаться им не стоит.
литкод и кодварс на алгоритмы. На стандартную библиотеку там задачек почти нету.
Ну, хорошего ресурса с задачами именно по стандартной библиотеке я не знаю. Не факт что он вообще есть.
https://codingbat.com/java
Есть это, хиперскилл и джавараш.
Кодварс не столько алгоритмы, сколько тренировка элегантных решений.
Сайты с разными статьями по джаве.
https://www.baeldung.com/
http://tutorials.jenkov.com/
https://dzone.com/java-jdk-development-tutorials-tools-news
Для начала вкатись во фронтэнд тред в воркаче.
Годные ссылки, спасибо.
Так я джавист, мне хотелось бы узнать от здешних быкендеров, как лучше всего выучить основы фронта.
Заебис.
А оно вообще компилируется в текущем виде? Выглядит так, будто сам линтер тупит.
Не компилируется
Ньюфаг студентота ИТТ.
Есть ли какие-то сервисы, подобные ulearn.me, только для Джавы?
Чтобы было видео либо текст, не принципиально с объяснением темы и под ним сразу какая-то практика для закрепления? Интересуют самые основы.
Либо какое-то комбо вроде книга+задания от разных людей, но с тесно связанной последовательностью тем и реализацией решения? Чтобы не надо было ебаться с разными библиотеками, которые в книге ещё не были описаны, например
забыл добавить. Бесплатный сервис, разумеется.
dmdev канал,после нескольких уроков дает домашку
и упадет со всеми вместе по OOM
А там они тоже есть. На корабле у мужика значок спринга.
Ну вот я нашел еще немного
Вторая ржомба
Шапка должна выглядеть как пикрил (пикчи могут отличаться).
А ты не конфигурацией мавена билдишь, а нажимаешь на молоточек слева? Оно хуй знает как работает, не пользуйся этим.
Препод меланхолик сказал с сарказком и издевкой так ,что Java портируемая. Что не так с портируемостью?
Не совсем. Я запускаю тест, а молоточек перед этим запускается автоматически. Приходится вручную в каждую тестовую конфигурацию добавлять запуск мавен гола. Мне-то норм, а вот при запуске на другой машине мне приходится объяснять, что надо сделать.
Я сначала собираю мавеном, а затем запускаю тесты мышкой, сгенерированное никуда не девается, когда идея что-то билдит, и проблем нет.
>Я сначала собираю мавеном, а затем запускаю тесты мышкой
Ну ты молодец, мне это в ридми прописать?
Глянул в
но не нашел.
Анон, подскажи, где хорошо и полно описано ООП на жаве? Т.е. чтоб прям упор был и я узнал все по этой теме
Обмазываешься хорошим и полным описанием ООП, а затем всю жизнь клепаешь anemic model и композицию вместо наследования.
Раз так делается, то на то воля Аллаха
Ну да, кому вообще нужно наследование в великом и кровавом?
Хэд ферста наверни.
Нет
Третья самая норм.
Охуел? Борда 18+
null
Как писать код чтоб он не утикал нихуя?
Про закрытие ресурсов знаю, но как быть с ебучими объектами?
Может гайд есть толковый про это?
Или вы выстрадали свои решения?
алсо чем мониторите мониторинг?
К примеру у меня легаси параша дедами писанная. С каких сторон к ней подойти чтоб искать слабые места?
Ясное дело несколько раз в день перезагружаем к хуям
Ну это возможно свинговое приложение на java web start
Даже Гроккаем алгоритмы уже много.
Вообще как правило ничем. Джава обычно сама справляется. Но если траблы реально есть, то надо делать дамп памяти и его ковырять, чтобы понять что не так. На реальных больших проектах есть перфино.
>input to ::parse then ::validate then ::send otherwise ::error
Вот как круто на котлине писать, не то что в джаве...
Главное что не ручкошизик.
Но щас хуй могу нагуглеть, сколько не пытался. Может кто помнит?
Для твоей задачи есть актуатор и даже готовый клевый сервис спринг бут админ, который умеет много полезного.
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready
https://github.com/codecentric/spring-boot-admin
Там оче удобный интерфейс смены уровня логирования, просто попробуй.
>Нет, они для другой задачи.
Вообще-то задачу уровня логирования они в том числе решают, зачем ты доебался?
Все сидят и ждут, когда кто-нибудь перекатит. Прям как ты и я.
В небольших конторах могут просить ковырять и жс в том числе, но сам смотри, по мне так нацеливаться на такие конторы нет смысла.
Так что в целом - нахуй. Лучше время, которое ты хочешь проебать на жс, потратить на статейки по sql и перфоманц
Опять велосипеды свои, ты не подумал что всё уже придумано?
Покури там про актуатор, про spring cloud config и всё такое
Уговорил, русская версия:
ПЕРЕКОТ #100
https://2ch.hk/pr/res/1961875.html (М)
https://2ch.hk/pr/res/1961875.html (М)
https://2ch.hk/pr/res/1961875.html (М)
https://2ch.hk/pr/res/1961875.html (М)
>Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.
Во всех книжках всё аналогично.
Разве что количество говнокода стремится к нулю, потому как количество кода в принципе сводится к нулю, а вместо 1000 заданий 3,5.
Любая книжка сводится к : "Тащемта, ничего сложного, тупо кодишь сайт и по ходу гуглишь что непонятно", после чего следуют овер9000 страниц копипасты из документации к языку.
Это копия, сохраненная 5 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.