Это копия, сохраненная 6 февраля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Шапка: https://github.com/EightM/JavaBackendStartGuide
Предыдущий: >>2511502 (OP)
Жаба гораздо хуже, чем шарп.
Go и rust лучше чем java
Осенью начал работу искать, по итогу нашел только через месяц+, да ещё и по ЗП упал
Мимо жаба джун+ 1.5 года опыта, 80к
Нет, конечно. Сам факт возникновения такого вопроса - уже звоночек.
Но аноны заслужили такого ОПа. Вместо того, чтобы зарепортить и скрыть тред, все тупо постят здесь, да ещё без ссжи.
Мне не вообще все вызовы сеттеров надо перехватывать, а только в определенном месте.
пипец, спасибо что ответил
просьба посоветуй по каким курсам/книгам ты учил джаву. На чем работаешь на работе на intellij idea или eclipse? Пишу без зла, действительно нужна помощь.
спасибо
огромное спасибо, от души
> джун+ 1.5 года
> через месяц+
> 80к
Пиздец, это в Питере так? Нахуй ваша дыра нужна, искал бы в дс норм работу
мимо трейни 65к ДС
А в ерате сколько платили перед выпиздом?
mwnw и mvn-wrapper не имеют никакого отношения к Spring Boot, это тупо обёртки над мавеном. Их нет в .gitignore и в репозитории, потому что их вообще нет в проекте, для самого бута достаточно pom.xml и src с исходниками, а мавен нужно будет устанавливать отдельно, затем стандартно собрать проект через mvn clean package и запустить жарник через java -jar app.jar.
>>2523463
>>2523463
А ты на чем программируешь?
То что ты описываешь, называется мавен враппер. Как уже сказали, к спрингу он не имеет никакого отношения. На проектах его используют для того, чтобы зафиксировать версию мавена для всех девелоперов, а также чтобы избавить всех от необходимости мавен ставить для того чтоб билдить проект.
https://maven.apache.org/wrapper/
Его нет смысла гитигнорить.
Ты загуглить не можешь?
Дженерик это когда ты берёшь и пишешь List<Hui>, где Hui - абсолютно любой объект. Код в листе ничего не будет знать, о том, что он принимает хуи, и будет работать с ними, как с Object, но тебе заретурнится не обджект, а то, что ты ему сунул, то есть Hui.
Вильдкарды это способ изнутри List работать с Hui не как с Object, а как с чем нибудь другим, юзлес хуита и использовать на проде запрещено.
Вроде понял, спасибо
у сихэштега всё еще хуже
Так ты же ничего не знаешь для написания опенсурсных инструментов. Там алгосы, сети, криптографию надо знать. Ну или операционки и кишки конкретных баз. Причем нужна не просто база, а знать свежайшие фишечки.
Нахуй такое говно помнить без гугла?
>Вильдкарды это способ изнутри List работать с Hui не как с Object, а как с чем нибудь другим, юзлес хуита и использовать на проде запрещено.
Дурной штоли? Эт тебя с такими выводами на проде использовать запрещено нахуй.
Кстати мы используем в спринге вайлдкарты для утил методов, например для построения объектов для сортировки в jooq, но SonarLint просто заебал на них возбуждаться.
Лол, я тоже не смогу, просто знал о существовании редус в стримах и примерно, что он делает, но энивей скорее всего бы в гугл полез, чтоб не проебаться, один хуй за три секунды ищется. Получается я неликвид и мне пора обратно в таксисты?
https://cdn.otus.ru/media/public/95/e7/95e727_program_java_professional.pdf
Кубер появился только в 2014 году.
Реактивщина в спринге появилась только ближе к 2017 году. gRPC вышел в 2016 году.
Хорошая программа, прям захотелось пройти несколько уроков и заполнить пробелы и некоторые места освежить, которые после вката забыл. Но 120к за 100 академ часов такое не стоит.
Ну теории в списке вполне хватает на мидла. Но без коммерческого опыта ты даже джун+ настоящим не станешь, только мошенником.
Ну я тут форсил курс отуса по спрингу с торрентов. Считаю, что для рф курсоводов они реально хороши по материалу и шарят. Да, преподы скуфы косноязычные. Но это намного лучше, чем инфоцигане с хорошо поставленной речью, которые сами в проде или вообще не работали или были максимум джунами.
Ну вроде всё по делу, знаю это всё, не могу попасть на собес
Там стоит указывать весь опыт работы или только опыт разработки?
> весь опыт работы
Мы смотрели так несколько резюме с хедхантера, там один кандидат реально написал десятки мест работы на несколько страниц, он успел побывать и пожарным, и менеджером по продажам, и таксистом. Ну нахуя так делать, совершенно нерелевантный опыт, он ни о чём не говорит, всё равно что писать "знаю словацкий язык" или "умею работать в ворде". Вот строчка "Администратор баз данных на таком-то проекте в таком-то году" говорит много о чём.
А вот например до опыта в It у меня был опыт в банке на позиции оператора колл-центра, скажем. Далековато от разработки, но опыт в банковской сфере есть. Плюс-минус понимание банковских продуктов. Есть же смысл оставить если я конторы устраиваюсь, которые с фин.сектором работают?
Смотря на какую позицию, на разраба точно нет, на специалиста по внедрению и сопровождению ПО может быть, им приходится в том числе работать с обращениями пользователей.
Для себя 0 часов. Для Компании 8 часов.
Ну то есть лучше в нижней части графы о себе написать свои 8 лет работы таксистом и продавцом в 1-2 предложениях?
А в опыте только свой год веслания в рогах и копытах?
Поскольку паралельных вселенных бесконечное множество, в каждой вселенной джуномидл написал непохожее на другие решение.
Во всех вселенных в DBAL нашелся метод schemaManager.getColumnListing(string table). Какие варианты были у джуна:
1) пройтись по таблицам и сделать отдельный запрос к каждой таблице.
2) распотрошить schemaManager.getColumnListing и сделать один запрос к БД, но так как в schemaManager половину работы делает приватный метод то с помощью рефлексии сделать его вызвать.
3) Не вызывать приватные методы, но написать кучу кода уровня DBAL, в которую даже страшно смотреть, не то что писать.
4) Джуномидл составил сырой запрос для конкретной БД и забил на DBAL
В какой из вселенных вы бы уволили джуна за говнокод? Какой бы код смержили в основную ветку?
Выбираю вселенную, где джуномиддл психанул, перебил всю команду вплодь до архитектора клавомышью, выпилил бы нахуй вышеописанное поделие, переписал бы все на Jooq с автогенерацией по схеме, а потом ушел в бега, в сибирские леса.
С такой постановкой --- смысла нет, тебе самому надоест. Опенсорс --- это тот же самый корпоративный говнокод, только который ты починяешь бесплатно. В него идут либо из нужды (если впоролся в багу в своем стеке --- локализуешь ее, пушишь фикс, предварительно изучив contribution guidelines), либо по фану.
А так --- идешь в любой GitHub проект, чекаешь в нем баги с пометкой help needed или good first issue, берешь и делаешь.
3-4 часа в день, ноулайфер
Во внерабочее время могу перед сном час почитать мурзилку/стековерфлоу/книжку по теме связанной с проектом.
Потом стараюсь этот же час от работы проспать/прогулять в рабочее время.
На работе из команды в 10 челиков перерабатывают тимлид и еще один мидл, торопящийся стать сенькой. Они и чатике отвечают в 10 вечера и пушат в гит в полночь и постоянно какие-то новые штуки читают. Остальным явно нахуй ничего не надо.
Код, не связанный с работой есть только у двух студентов, пишущих диплом.
Проходил через такое, очень скоро меня стало от него тошнить ещё сильнее, чем от жабы.
Хз, мне кажется, он такой минималистичный и приятный, с низким порогом входа в отличие от многословной жабы. Еще и горутины, ммм...
Минималистичным он кажется из-за того, что идентификаторы в среднем короче, но реально приходится писать столько же кода из-за лишних проверок на несуществующие ошибки и отсутствия фреймворков, которые можно подключить и сразу писать бизнес-логику, в Go же приходится сначала написать свой фреймворк и потом всё время его допиливать, потому что везде в логике торчат его кишки. По крайней мере, сложилось такое впечатление, но ни в одном другом языке я с таким не сталкивался, кроме древней сишки.
Ну да. Остаётся где-то опубликовать этот жарник и написать документацию, будет обычная библиотека.
golang-awesome с кучей фреймворков на любой вкус мимо прошел?
В энтерпрайзе можно юзать RestTemplate, так же как модно сидеть на восьмой жабе. А в спринге рекомендуют вместо него юзать реактивный WebClient.
А зачем юзать реактивный, если у тебя обычное приложение?
Уже 4 дня как вышел, а вы спите тут в хомуте.
У меня уже полгода 17.
Правда там javax.validation нужно будет менять на jakarta.
Думаю допишу жирную фичу и в феврале обновлюсь.
Уже обсерился с ним один раз. Как обычно скопипастил со start.spring.io, а там 3.0.0
В 17 жабе.
Пытался перелопатить и перепроверил код несколько раз.
Это я мудак? Это автор мудак?
Или это приколы несоответствия версий java?
Сталкивались с ебучими опечатками в книгах?
Вот есть у меня проект на 8й джаве. Другой на 11й.
Я могу поставить, например, 19ю джаву и с помощью level'a просто менять для проектов уровень?
Или мне нужно все эти JDK отдельно устанавливать?
Левелом ты меняешь не JDK, на котором билдишь, а уровень поддержки идехой, который в конечном итоге скорее всего смаппится в опцию --release твоего компилятора. Реальная джава, на которой проект будет реально билдиться, определяеся менюшкой выше --- SDK. Там же собственно будут и все JDKи которые ты наустанавливал.
>Или мне нужно все эти JDK отдельно устанавливать?
Не возьмусь сказать что нужно именно тебе, но если нужно держать на одной машине кучу разных дистрибов джав, проще всего ими управлять через sdkman.io .
Да, постоянно.
В спринг-экшон 5 точно были опечатки и на манинге даже часть из них вывесили через год.
Не перепечатывай, скачай и и запускай.
не сказал бы что работы нет. Поэтому продуплирую вопрос.
>Не перепечатывай, скачай и и запускай.
Так я думал что есть смысл перепечатать постепенно, чтобы в т.ч более осмысленно пройтись по всем этапам.. ну и вроде как больше усваивается, не?
Хотя, если они косячат.. а я сижу и трачу часы, чтобы найти то, чего невозможно найти и из-за этого ловлю тильт, то да..
Хотя, можно ведь из скачанного рабочего кода перепечатать)
Опхуйная мразь намеренно с таким номером перекатила, это не ошибка. Ошибка только в лишней хромосоме опхуя.
А откуда столько сотен тредов? Раньше на дваче многие на джаве писали? Просто сейчас ощущается, что все обитали доски в питон/жс тредах
На данный момент в голову приходит только: x == (int) x
Но интуиция мне подсказывает, что это нихуя не правильно и можно быстрее-оптимальнее сделать?
Какие действия предпринимали? Дайте какой-нибудь план/roadmap, плиз0
Что тебе конкретно не понятно, дружище? Читаешь мурзилку на интересующую тебя тему, ставишь аннотацию, имплементишь ZalupaConfigurer, объявляешь бин. Типичная спринго-ебля выглядит так. Иногда можно и в исходники залезть.
Где-то неделю тупил с пониманием концепции DI/IoC. Как разобрался, пошло легко, через месяц мог писать простые круды с контроллерами и Data JPA. Когда впервые увидел рабочий проект, знатно охуел, но тоже разобрался. Но я до спринга немного игрался с петухоном на Django/Flask.
Ты знаешь, вот вроде в целом понятно, но понятно очень поверхностно. Круд простецкий написать смогу, а как поглубже чего взять.. Ну вот взять, например, контекст спринга. Я четко не могу в своей голове сформулировать определение.
Это вроде как сосостояние приложения.. Как-то все не по полочкам. Можешь для начала помочь с контекстом разобраться?
Ебать, и часто так? Часто с такой хуетой можно столкнуться, что разрабам тупо ПОХУЙ СРАТЬ ОНИ ХОТЕЛИ НА ОБРАТНУЮ СОВМЕСТИМОСТЬ? ЕБАННЫЕ БЛЯДЬ ИНДУСЫ ИЛИ КТО ТАМ СПРИНГ ВЫСИРАЕТ
>И тут пришла в голову идея спустя нахуй три часа поставить одинаковые версии зависимостей spring cloud server и client что у эврики сервера, что у микросервиса
А ты крикнул при этом "Эврика!" ?
Энджой йёр спринг.
Я ебу че тебе нужно
Да. После каждой сборки что ли коммитить?
>You have a perpetual fallback license for this version.
Бля а че реально жидбрейнсы дают бесспрочное право пользоваться какой-то конкретной версией идеи?
Для этого есть Nexus, Artifactory и т.д.
Чем крупнее и важнее приложение, тем больше там автоматизации деплоя. Видел несколько приложений, которые деплоились вручную мышкой, потому что ими пользовалось несколько тёток из бухгалтерии, а не тысячи пользователей.
Я тоже хочу. И как же нас таких мало. На самом деле я еще и люблю C# и Unity. Но Java - мой любимый язык, за которым я слежу и от которого брезгую оторваться.
Да, Java-приложения - это кайф.
Да, разумеется. У них в договоре написано. У них там написано, что они могут использовать любую фичу Java, начиная с 1.4 и заканчивая 19-й.
Дай пример говнокода, я расскажу, почему это говнокод и что делать, чтоб такого не было.
Нахуя лезть в ручку, если у тебя есть CI/CD, который можно разок накатать и спить спокойно, не думая о нажатии мыши и лениво накидывая ручное тестирование и проверку нереалайзимых кейсов и других говен - за тебя все сделает пипед, лол. Это называется автоматизация, а ты ленивая курица, если хочешь всё делать своими ручками.
Контекст - это все и любое, что и как-то может влиять или влияет на класс в котором есть контекст. Это может быть какая-нибудь синапса, это может быть service, это могут быть настройки, это может быть просто какие-то данные которые есть в меморизаторе на момент работы. Просто представь себе, что это что-то, что по какой-то причине не может быть внутри экземпляра, а должно быть во всех экземплярах, потому что оно общее.
Чел, просто представь, что есть 2000 человек, которые ссут в один срать. А у тебя 2000 туалетных комнат, которые по какой-то причине не могут быть самими туалетными комнатами, а должны быть чем-то таким, что можно срать. Вот, контекст - это те туалетные комнаты, а сам срать - это методы, которые ты сришь, которые может быть срут какие-то твои спринг спрингеры.
Ты сейчас со мной разговариваешь. Тебе нравится или я устаю?
>пик 2
>их нельзя замокать
В голос!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Какие же джабведебилы ЖАЛКИЕ ЧЕРВИ
Это все, что не может быть внутри экземпляров. Это может быть и калибровка, и настройки, и логи, и еще куча всякой хуйни которая в общем не зависит от того, что ты там нахуяришь в экземпляре. Это все, что надо будет все экземпляры, которые будут созданы. И все.
У меня странная манера изъясняться, потому что я пью и кайфую на работе.
Дженерики уменьшают количество стериотипного кода, а аннотации - худшее, что вообще могли придумать, плевок на ООП-разработку.
Аннотации уменьшают количество стереотипного кода, а дженерики - худшее, что вообще могли придумать, плевок на ООП-разработку.
Я вроде понял, спасибо)
>У меня странная манера изъясняться, потому что я пью и кайфую на работе.
Пить я тож могу, но кайфовать пока не получается)
А потом ищи в рантайме, где обосрался с названием бина, когда в ООП-стиле такие ошибки ловит компилятор.
Дженерики --- языковое средство для обобщенного программирования на джаве.
Аннотации --- пользовательские метаданные, которые могут быть приаттаченны к разным языковым конструкциям джавы, и доступные для чтения в рантайме, из байткода или из AST, в зависимости от ретеншена.
Ну так, смотрел чет про бинпостпроцессоры. Сильно понятно не стало. Мб еще попробую
@
НЕСКОЛЬКО КОНТЕКСТОВ
Nested нахуя тебе?
Отвечаешь на этот вопрос правильно
"Извините, мы вас не берем"
"Почему?"
"Потому что вы ОВЕРКВАЛИФАЕД!"
Фьють ХА!
> JPA
API для разных ORM
> JMX
Мониторинг
> JRE
Рантайм жабы
> JDO
Недо-API для разных недо-ORM
> JEE
Набор API, в котором есть всё это говно
> JNI
Вызывать код на сишке из жабы
> JDK
Компилятор жабы
> JTA
API для управления транзакциями.
Это к лучшему. В такой конторе пришлось бы овертаймить.
Майнкрафт по настоящему ооп написан?
Ещё Егорка, вычищатель спринга и шарпобляди.
Вы под музыку кодите? или в тишине?
Врубаете какой-нибудь лоу-фай или чет там такое? Поделитесь плез
Под k-pop
Этот шарит. Под музыку кодят только дегенераты смузихлёбы пидорасы петухонщики, которые не думают во время работы.
И в чем он не прав?
Асмр врубаю как кто-нить мне ухи лижет, например, и сижу кайфую
Потому что рут коз проблемы удобства и восприятия не в языках, а в прослойках между монитором и сиденьем.
Создавали много раз, но у них нет миллионов долларов и связей с Fortune500 чтобы пиарить среди разработчиков свое поделие, как это было 30 лет назад с джавой
Создатели шарпа и гоуленга были повыше в форчуне-500, чем создатели жябы.
Под аниме.
Местные тридцатилетние вкатуны после гикбрейнс думают, что это аллтернативный синтаксис, а не язык
Шарп.
В двух последних буквах.
Груви 4.0 вышел недавно.
Эврика уже помойное легаси, чел...
Весь спринг клауд уже легаси... А вышел всего лишь 3 года назад. Печально.
Здорово, можно переписывать обратно на JNDI.
Как раз три года назад дописал спринг клауд в свой список модного молодёжного говна, которое когда-нибудь придётся зубрить, теперь вычёркиваю.
мимо
Ахаххахахахахаха
Самописные ООП-фреймворки.
Он обидится.
Android без IDE?)) Не то направление ты выбрал, в андроиде надо наворачивать десяток XML-конфигов и править разметку мышкой, без IDE ты хеллоуворлд будешь писать неделю. Да и в целом в жабе очень тяжко без иде, это не питон и не JS, где можно хоть в блокноте писать код без особых усилий. Так или иначе, тебе в андроид-тред.
А Hibernate ещё не легаси? А то смотрю все уже юзают Spring Data, а про Hibernate даже не слышали.
Сама идея ORM - легаси.
Оооо поддержку легасиговна встроили прям в мой эклипс хрю-хрю щас позапускаю сервлеты из консоли хрю хрю уххх навалили в корыто
По идее это всё можно разрабатывать в блокноте, но никто не пишет как это делать. Все учебные материалы по платной идее и очень редко про Эклипс.
Инфы по Спрингу нет, приходится её по крохам собирать во всяких курсах инфоцыган.
Где? Смотрел я твой баелдунг и там 1,5 статьи и те написаны так, что ничего не поймёшь, если не знаешь о чём там заранее.
Наделали всяких кривых сборщиков, в которых, чтобы собрать даже простейший проект, надо писать дохрена всякой параши. Особенно радует, когда по непонятным причинам вообще ничего не работает.
Вот прям сейчас скачал проект спринг бута с их сайта и он даже не запускается. Хотя месяц назад делал всё тоже самое и всё работало.
Вот одновременно и злость и такое разочарование, что хочется всё бросить.
Братан,может бэкэнд это не твое? Не верю что это не троллинг
Ты ебанашка просто с шизофренией
>платной идее
Да откуда столько шизоуебищ сегодня бляяяяяя я тебе по секрету скажу винда тоже платная ливай нахуй из профессии
Стоит ли ее юзать или нахер не нужна?
Скажу немного с другой стороны: бесплатная идея - это обрезанная платная. Причём там порой выдернуты некоторые вещи прямо с "мясом". К примеру, нет подсветки синтаксиса у некоторых форматов файлов, хотя такая подсветка сейчас идёт даже в простых текстовых редакторах. Невозможно настроить конфигурацию для запуска для веб-серверов. Заблочены автодополнения библиотек и фреймворков EE-уровня, приходится ручками прописывать длиннющие портянки.
До недавнего времени был бесплатный плагин, с помощью которого можно было создавать проекты Спринга, но "добрые" жидбрейнсы его перевели в разряд плагинов под подписке (платным).
А тут дали переписать весь слой бд микроервиса на 20 эндпоинтов с носикл на нормальную бд. И там в некоторых местах куча юнитов на сервисы и репошки. Написали любители этих ваших дядей Бобов.
Я код переписал, интеграционные тесты написал по 5 штук на эндпоинт.
Как же эти юниты ебаные не хочется переписывать. И тесткейсы надо все разбирать. И я там перенес логику из сервиса на сторону ограничений в бд.
И если удалю их нахуй - ревью не пройду.
Получается, чтобы стать полноценным джава-разработчиком, надо вбухать кучу денег в ПО для разработчика?
<bean id="dataSource"><property name="connectionInitSqls" value="classpath:schema.sql"></bean>
Работодатель берёт тех, кто уже всему научился, а чтобы научиться нужно это ПО. Замкнутый круг.
Дак как чему-то научится, если не можешь это сам написать? Вот спросят меня как написать Спринг-приложение, а я им отвечу - не знаю, у меня бесплатная идея, которая не поддерживает Спринг.
Или вот так:
#{T(java.nio.file.Files).readString(T(org.springframework.util.ResourceUtils).getFile('classpath:schema.sql'))}
Спасибо, Род Джонсон, проинициализировал табличку.
Ничего, будет и на твоей улице праздник. Станешь миллионером - будешь ходить к проституткам.
Это как, поясни?
Оправдания уровня собака домашку съела. У порриджей нынче если нет кнопочки "сделоть зоебися" = не поддерживается, работать невозможно.
Нет причин считать, что парочка в метро была соулмейтами.
Ты не прав! Я наоборот хочу разобрать всё по полочкам, а не просто нажимать зеленую кнопку. Но не могу найти инфу. Почти везде пишут либо примитивные хеллоу ворлды, либо как это сконфигурировать в платной идее. Никто не разбирает на уровне, как всё это сделать на уровне блокнота и консольки.
Какую именно инфу ты не можешь найти? Как найти кнопку генерации конфига на сайте спринга? Как в консоли вбить gradle mvn install && java -jar target/laba2.jar ?
Вводные: полтора года верчение микросервисов, а именно копипаст уже написанных сеньёрами, убиранием всего ненужного, переименование пропертей и со стаковерфлоу пополам написание нужного функционала.
И вот я немножко слегка ввёл в заблуждение, соврал, обманул, солгал, неправду сказал в приёме на работу в новые рога и копыта. Моим первым, надеюсь не последним, таском будет переписание проекта проекта с нуля, про старую версию проекта думать нет смысла, ПМ будет таски накидывать на голову, с меня продумывание архитектуры, интеграция говна и написание функционала.
Но вот проблема, с нуля я максимум хелло ворды в универе для лаб делал и не понимаю куда и в какую сторону копать, чтобы оформить всё красиво для дальнейшей работы. Я конечно могу в идее пару кнопок нажать и вот спринг-бут-круд-проект готов, но не более.
Что и где можно почитать/посмотреть как это всё дело нужно делать?
Даже эта конструкция выдаёт кучу ошибок. А нужно копать глубже с томкатом, где вообще не понятно что и как прикручено.
Ну инкапсулировался бы от них в другой вагон/состав, браток. А то небось сидел терпел как под @SneakyThrows
Единственная фишка платной идеи, которой мне будет прям реально не хватать, это code-with-me. Остальные нужды успешно покрывает бесплатный netbeans, так что пусть пиздуют нахуй раз сами так решили. Хули делать то остается.
>>27871
Вроде как Борисов специально именно для твоих нужд слабал доклад "спринг-построитель". Мне доклад люто не нравится, но возможно тебе поможет. Чекни.
Кстати говоря --- вопрос треду. Подскажите кто нить альтернативы идеевской code-with-me? Есть такие вообще?
>полтора года верчение микросервисов
> с нуля я максимум хелло ворды
Примерно меня описал
Ток я чуть меньше круты вертел даж
Тоже страшный сон что меня заставят архитектуру придумывать или (не бай Наука) тимлидом сделают..
Запомни одну простую истину. НИКТО не знает как делать штуки в айти правильно. У каждого есть мнение на этот счет, анальники также любят меряться этим мнением, сраться, унижать друг друга, но истины не знает никто.
Поэтому вспоминай как были устроены микросервисы на предыдущем месте работы, приправь это активной гуглежкой, садись и делай так, как сделается. Хоть бы даже в идее пару кнопок нажми, хоть бы initializrом разверни --- похуй. И делай это все с умным уверенным в себе ебалом гигачада. Если прокатит, никто ничего тебе не сделает и не скажет. Но при этом не будь гондоном, всегда бери на себя ответственность и всегда прислушивайся к фидбэку от стейкхолдеров (менеджмента, клиентов, заказчиков, саппорта, аналитиков, тестировщиков, прочих пользователей).
И не воспринимай свое положение как каторгу --- тебе предоставился уникальный шанс бустануть свое резюме и скиллы за счет работодателя. Цени момент.
Дайте роадмап по приходу к успеху
вопрос№2: насколько сильно можно прокачаться (до какого уровня) на петах без реальных проектов?7
да-да, я такой наивный чел
А вот для сишарпа есть бесплатная и полнофункциональная вижла. Там все форматы поддерживаются, можно писать веб-приложения без ограничений, кестрель (веб-сервер) сам встраивается и не надо с левого сайта скачивать.
>насколько сильно можно прокачаться (до какого уровня) на петах без реальных проектов?7
Обычно проблема с петами заключается в том, что у петов нет реальных пользователей. Как результат --- нет этой характерной для реальных проектов черты "постоянно меняющихся требований", которые всегда идут вразрез текущей архитектуре и заставляют тебя брать техдолг. Такие петы слишком тепличны чтобы набивать на них прям опыт близкий к рабочему. Но приемлемы для того, чтоб опробовать какие нить языковые фишки или тулинг.
Вторая проблема частично проистекает из первой. Без пользователей быстро падает мотивация продолжать пет поддерживать. Короткоживущий пет тоже в разы более тепличный и бестолковый, чем длинноживущий --- на последнем как нигде чувствуется бремя техдолга.
Для себя я пришел к выводу, что качаться можно только через те петы, у которых есть хотя бы один пользователь. Даже если этот единственный пользователь --- сам разработчик пета, это уже лучше чем ничего. Но это должен быть честный пользователь, с реальной нуждой конкретно в этом проекте, иначе не считается.
Можешь назвать какой-нибудь дефолтный стек микросервисов из мира джавы?
Дельно складываешь. Но а до какого уровня, прюмерно? Что-то типа мидла? Суньором незя стать в теплице?
ты че пидар?
Какой-то ты не амбициозный, где видите себя через пять лет тогда?
>>28016
Спасибо за добрые слова и напутствие конечно, но особо ответа я не получил. Т.е я имею представление как там начать развёртывать проект и загуглить смогу, но продумывать что-то дальше не понимаю.
Вот сейчас в шапке увидел DDD, загуглил, читаю Domain Driven Design Quickly и вроде вникаю как можно хайлевельно представить себе и самое главное ПМ-у вид проекта.
>положение как каторгу
И не говорю что плохо, только вот дали мне эту должность пушто я напиздел с слегоньца, а теперь отвечать нужно.
>Какой-то ты не амбициозный, где видите себя через пять лет тогда?
Да у меня этих амбиций.. хоть жопой жуй. Но здравый смысол говорит мне шо я нихуя не умею сам. Куда мне еще челам задания раздавать
DDD это петушарперы придумали.
Хуит.
Насколько я слышал, с флитом кстати ровно та же хуйня. Жидбрейнсы тупо регионлокнули все, что связано с collaborative кодингом.
>насколько сильно можно прокачаться (до какого уровня) на петах без реальных проектов
До уровня стажера.
>Что-то типа мидла? Суньором незя стать в теплице?
И близко нет. Даже слабеньким джуном не станешь. Максимум кандадтом в стажеры.
>>28068
Вообще петы имхо бесполезны. Когда вкатывался, понял что проще задрочить задачи на литкоде и пролезть куда-нибудь в Яндекс, где тебя, вкатуна, погрузят в нормальные процессы разработки. Но вообще парочку петов, хоть и очень всратых и максимально бесполезных, стоит сделать. Просто чтобы в резюме воткнуть.
Зависит от того, сколько у твоего пета клиентов. Когда пет набирает несколько сот звезд, можно сказать что он уже котируется на рынке опенсорца и им довольно активно пользуются люди. Но скорее всего с улицы такой пет ты никогда не создашь, если ты не Линус Торвальдс.
Ну ок, не сказать. Предположить. Цимес в том что если пет активен и активно используется вменяемым количеством людей, то это вполне себе публичный пруф того, что петовод способен с нуля создать законченный продукт и поддерживать его в актуальном состоянии. Это в свою очереь и есть признак синьорности его навыков.
Но стоит также отметить что в клоунском мире айти лычку синьора обычно тупо выторговывают у галеры и сразу пишут в резюме. Рынок перенасыщен такими мамкиными синьорами и хрюшами, которые таких котируют (хотя судя по вытью анальников в 2022м --- уже нет, лол), поэтому реальному синьору-петоводу скорее всего будет очень трудно продаться, если у него нет опыта гребли. Хрюши и эффективные манагеры таких не очень любят, такие не укладываются в квадратногнездовую модель галеры.
Двач, помоги
Прохожу отбор на SberSeasons, остался последний этап интервью, подавал на Джаву. Сегодня пришло письмо, предлагают Java QA. Я тестированием не занимался никогда. Собственно, вопрос: хвататься и учить всю эту хуйню за неделю или выбрать второй вариант на втором пике и надеяться, что пригласят куда-то ещё. Хотел на спринге что-то писать.
Есть ещё вариант им на почту с таким вопросом обратиться, но могут засчитать за слив, в таком случае
>но продумывать что-то дальше не понимаю.
Так я и говорю. Никто этого не знает вначале. Изучай, экспериментируй, пробуй, рефлексируй над косяками (они стопудово будут), общайся с коллегами (кроме тебя и ПМа на проекте есть еще люди? Архитектор там, или аналитик?), общайся в тематических форумах и чатах.
Нет универсального конкретного ответа. Я ж не знаю что у тебя за проект, что он делает, сколько у него пользователей, да и ты скорее всего не расскажешь (ибо только пришел, и скорее всего скован NDA).
Ты предлагаешь анонам с двача решить твою судьбу?
Ну я тогда выбираю чтобы ты стал дворником и мел улицы
А воще, я считаю что надо брать че тебе нравится. Если тебе интересно тестирование - пиздуй туда. Если тебе лишь бы куда-то залезть - пиздуй туда. Если тебе это нахуй не нужно и нет никакой срочности залезть ЛИШЬ БЫ КУДА - тогда гни свою линию
>Ты предлагаешь анонам с двача решить твою судьбу?
Тут скорее вопрос к тем, у кого был опыт со SberSeasons, меня интересует, насколько часто дают выбрать втоую команду
Это понятно, а предложили тебе что? Запросто могли пригласить на ручного тестировщика, даже если изначальный набор идёт на разрабов. Нужен полный текст письма.
Пригласили в конкретную команду, полный текст письма пикрил. Опрос на пике 2.
Понял. Лучше нахуй их шли, это 100% на ручного тестировщика, программировать не дадут. Видимо, при копировании текста какой-то другой вакансии забыли поправить заголовок.
Понял, спасибо
Как я представляю - банки вроде крупные, с процессами, потогонки вроде поменьше. Но там легаси и непросто получить полную удаленку и давить кнопки из мухосрани.
Сейчас работаю в небольшой галере. Стек +- свежий. И для своего микросервиса я, как джун, даже могу какие-то решения принимать.
Но вот процессов нет. Тестировщиков и девопсов нет. Квалификация старших товарищей во всяких архитектурных штуках не то чтобы на высоте.
Куда бы вы посоветовали стремиться? Думаю через полгода попробовать пособеситься. Хотелось бы наметить цели и начать готовиться. Желательно без литкодов.
Ну попробуй в яндекс маркет пролезть, там вроде неплохо сейчас стало по отзывам. А так да, почти вся джава сосредточена в банках. Тинькофф, говорят, все еще неплох. Сбер платит неплохо, но много помойного легаси, анальный контроль, слабые инженеры, всратые процессы, отсутствие нормальной удаленки. Про остальное не в курсе. По слухам Райф неплох и позволяет из Сербии и Турции работать, а в Иннотехе удаленку дают.
Каких-то продуктовых вещей на жабе сейчас не особо видно.
Если есть платная идея, то стоит
А если смотреть немного в будущее, если захочу эмигрировать, то как с джавой за пределами рф?
Сука блядь вместо того чтобы нормально открыть файл нажать ctrl f и найти то, что нужно, мне как последнему уебану предлагают делать cat имя файла затем пайп затем грепать. Вы че там ЕБАНУЛИСЬ? Как же кал ебанный пидарашкинский линкус
>нормально открыть файл нажать ctrl f и найти то, что нужно
а что на линухе мешает тебе открыть фал в редакторе?
У нас всё от пекарен разрабов до прода на винде. Так что мы не паримся.
Без обид,у тебя есть шанс получить работу только если человек который будет тебя собеседовать будет глухим
В качестве альтернативы предлагают мифическую "DDD".
Типа там какие-то умные объекты загружаешь, вызываешь на них методы и они сами всё делают, а сервисы сокращаются до 1 строчки: бизнесОбъект.сделайЗаебись(). Сами себя в базу видать тоже сохраняют и в кафку пукают тоже сами.
В реальной разработке как это выглядит, кто-нибудь может рассказать? Или в подавляющем большинстве все пишут процедурные залупаСервисы?
>кал ебанный пидарашкинский
Вот на этом месте --- ебало в ноль, смузихлеб. Если тебе так нравится --- сиди в своей уютной зоне комфорта и не выебывайся, благо что джава поддерживает всю вашу прыщеблядскую экосистему в полном объеме.
Что ни тред, все чмохи торгуются за свое право оставаться тупыми --- "а нужно ли мне это знать, а не нужно ли мне это знать". Не нужно тебе чел ничего. Чем меньше ты знаешь и умеешь, тем лучший я спец на твоем фоне.
>вместо того чтобы нормально открыть файл нажать ctrl f и найти то, что нужно
Чекнул ctrl+f в у себя в федоре, работает. Так что пошел нахуй.
Вторичная безвкусица
Спринг поддерживает?
> Тестируй фреймворки
Нахуя? Вы что, ебанутые тестировать то, на что уже написаны тесты? А в противном случае зачем пользоваться не покрытым тестами фреймворком?
В реальности выглядит супер хуево
Вся бизнес логика в бизнесОбъектах, заебись придуманонет
Но я сам диванный джун, но не сложно представить что будет если бизнес логику в ентити(или куда там по ддд, хз) складвать
VS Code от жидбрейнсов. Только написан на джаве и также жрёт память и тормозит на пустом месте.
Сижу на 2020 потому шо у меня для нее кряк есть и мне норм
ты че додик вкатун вузовский?
Выключение тех или иных предупреждений компилятора и подсвечивания таких предупреждений в IDEA. Предупреждения обычно полезны, но что если ты вынужден вызывать какой-то метод, помеченный @Deprecated, чтобы по-быстрому поправить ошибку в легаси говне без масштабного рефакторинга, либо пишешь класс, методы которого вызываются через рефлексию или это библиотека вспомогательных функций, предназначенная для вызова в другом проекте? Об этом линтер знать не может, он не настолько умён, и приходится лепить эту аннотацию с разными значениями, значений несколько десятков.
Вот и не используй.
Непонятно, что это. Если такое же прожорливое неповоротливое говно как IDEA, то нахуй он нужен, а если по фичам он как VS Code, то годится только для редактирования конфигов и веб-параши на джаваскрипте. Если нет, то заебись.
>как с джавой за пределами рф
Ну вакансии есть и довольно много, жаба ведь. Много легаси, в том числе с Java EE. Много всякой донной работы уровня фулстек макака react/angular/vue+spring. Есть и хорошие места. Но в странах где есть айти (Германия, Нидерланды, Бритаха, США, Канада) с жабой вроде все ок.
Лучше уж эксель использовать.
Тут двачаю, тоже с тимлидом своим постоянно спорю за полезность этих юнит тестов. Сам пишу онли интеграционные, юнит только на всякие утильные классы, валидаторы имейл/телефона и прочие велосипеды.
У нас был проект, в котором была куча этих юнит тестов, проработал я на нем 2 года и за все это время эти тесты от силы раза 3 отвалились по причине того, что я что-то там сломал, все остальные разы они ломались просто сами по себе (например добавил Бин новый, а он не замочен естессна, или там к ещё одному полю обратился, а тест его не проставил, или порядок вызовов поменял, на любой чих ломаются в общем). Короче приходилось постоянно вникать в то, что он тестирует там и допиливать. Времени много уходило на это.
С другой стороны интеграционные они реально если хорошо написаны -- будут сложить до конца жизни проекта и поддерживать их не так сложно, плюс критичные баги, с которыми приложение не может в базовый функционал или вообще не поднимается отлавливают.
Чисто мой опыт за 3 года от ждуна до сеньора
Единственное что я знаю это рид комитед по умолчанию в постгресе. Про необходимые блокировки вообще не шарю. Чем отличается рид анкомитед тоже не ебу,мне не стыдно
рид комитед по умолчанию везде, а простресе по умолчанию снапшоты https://mbukowicz.github.io/databases/2020/05/01/snapshot-isolation-in-postgresql.html
хочу через полгода работать 25-30 часов в неделю и зарабатывать 60к в недедю и больше
Ты задал этот вопрос в джава-треде, но не в go-, JS- и python-тредах, значит, выбор ты уже сделал.
> хочу через полгода работать 25-30 часов в неделю и зарабатывать 60к в недедю и больше
Какой язык ни выбирай, нигде ты такие условия для джунов не найдёшь.
О, ай фил ёр пейн, бро.
Но проблема чуть глубже, чем в юнит тестировании как таковом. Причина всему что ты описал --- ублюдочность сервисного спрингодизайна. А юнит тесты --- они на самом деле как лакмус. Юнит тесты всегда тяжело писать на плохой код, и всегда удобно писать на хороший. Вот ты рассказываешь мол "как же вломину их переписывать", и ты прав по своему. Но на самом деле твоя боль говорит о мертворожденности и нетестируемости вашей архитектуры на уровне кода, вот и все. На уровне продукта (апи) вы еще как то справляетесь, а ниже --- все, пиздец.
И это даже не наброс в сторону проекта, в котором ты принимаешь участие. Ты и твой проект --- жертвы сложившегося статуса кво, тебя, равно как и тысячи других джавистов, наебал спрингокульт.
Любопытный факт --- несмотря на весь пиздеж про TDD, до хрена энтерпрайзных проектов до сих пор применяют ту же практику, что и лет 10 назад: забивают хуй на юнит тесты, нанимают QA команду и сажают их писать регрессионный интеграционный тест сьют. И в ус не дуют.
А все потому, что тесты по своей природе устроены так, что неизбежно переиспользуют сущьность под тестами. А так как переиспользование === каплинг, переиспользуемая сущность как правило стабильна: ее тяжело изменять без последствий в виде регрессий в частях, зависимых от этой сущности.
В случае с апи-тестами тестируемая сущность переиспользуема и стабильна по определению --- ведь для чего еще пишутся апи если не для их пользователей? Да и с бухты-барахты апи вы не станете переписывать.
А вот про спринговые сервисы так не скажешь. Они, ввиду того, что скаплены намертво друг на друга (отдельная тема для дискуссии), волатильны пиздецки как, и их контракт меняется чуть ли не каждый день (потому что когда спрингокульт говорит про солид и инверсию зависимостей, спрингокульт пиздит). Сервисы и без тестов менять --- морока, а когда они вдобавок еще покрыты говнотестами, вместе с ними приходится еще и переписывать тесты. С учетом того, что эти тесты как правило нихуя не ловят (ибо обычно состоят из моков чуть менее чем на 100 процентов), вся работа по их поддержке превращается в безмозглый ритуал культа.
Поэтому многие гребцы в них и не верят. Лично я всегда пишу тесты в проектах, которыми владею, и кайфую от их поддержки -- они мне пиздецки помогают. Но при этом если мне во владение перепадает говноспрингосервисный дизайн, я всегда агитирую там за выпил юнит-тестов нахуй в пользу более хайлевельных тестов. Если не получается, не трачу время и нервы на это дерьмо.
О, ай фил ёр пейн, бро.
Но проблема чуть глубже, чем в юнит тестировании как таковом. Причина всему что ты описал --- ублюдочность сервисного спрингодизайна. А юнит тесты --- они на самом деле как лакмус. Юнит тесты всегда тяжело писать на плохой код, и всегда удобно писать на хороший. Вот ты рассказываешь мол "как же вломину их переписывать", и ты прав по своему. Но на самом деле твоя боль говорит о мертворожденности и нетестируемости вашей архитектуры на уровне кода, вот и все. На уровне продукта (апи) вы еще как то справляетесь, а ниже --- все, пиздец.
И это даже не наброс в сторону проекта, в котором ты принимаешь участие. Ты и твой проект --- жертвы сложившегося статуса кво, тебя, равно как и тысячи других джавистов, наебал спрингокульт.
Любопытный факт --- несмотря на весь пиздеж про TDD, до хрена энтерпрайзных проектов до сих пор применяют ту же практику, что и лет 10 назад: забивают хуй на юнит тесты, нанимают QA команду и сажают их писать регрессионный интеграционный тест сьют. И в ус не дуют.
А все потому, что тесты по своей природе устроены так, что неизбежно переиспользуют сущьность под тестами. А так как переиспользование === каплинг, переиспользуемая сущность как правило стабильна: ее тяжело изменять без последствий в виде регрессий в частях, зависимых от этой сущности.
В случае с апи-тестами тестируемая сущность переиспользуема и стабильна по определению --- ведь для чего еще пишутся апи если не для их пользователей? Да и с бухты-барахты апи вы не станете переписывать.
А вот про спринговые сервисы так не скажешь. Они, ввиду того, что скаплены намертво друг на друга (отдельная тема для дискуссии), волатильны пиздецки как, и их контракт меняется чуть ли не каждый день (потому что когда спрингокульт говорит про солид и инверсию зависимостей, спрингокульт пиздит). Сервисы и без тестов менять --- морока, а когда они вдобавок еще покрыты говнотестами, вместе с ними приходится еще и переписывать тесты. С учетом того, что эти тесты как правило нихуя не ловят (ибо обычно состоят из моков чуть менее чем на 100 процентов), вся работа по их поддержке превращается в безмозглый ритуал культа.
Поэтому многие гребцы в них и не верят. Лично я всегда пишу тесты в проектах, которыми владею, и кайфую от их поддержки -- они мне пиздецки помогают. Но при этом если мне во владение перепадает говноспрингосервисный дизайн, я всегда агитирую там за выпил юнит-тестов нахуй в пользу более хайлевельных тестов. Если не получается, не трачу время и нервы на это дерьмо.
И в продолжение темы прокомментирую этого анона
>юнит только на всякие утильные классы, валидаторы имейл/телефона и прочие велосипеды
Утильные штуки, если они использованы адекватно по назначению --- это один из примеров стабильной сущности, поэтому юнит-тестирование для таких штук реально применимо. Как часто написанный валидатор имейла меняет свой контракт? Да почти что никогда --- это всегда какой нить предикат от строки какой нить.
> вроде все ок.
Почему так не уверенно? Где можно посмотреть такую статистику или сами вакансии?
Потому что майнкрафт написан не на петушарпе.
Не семёнь.
Закруглённый дизайн не предназначен для сред разработки, особенно на джаве.
Хз, мне как то похуй. Я то про то, что го выебал нахуй тормозящую пердяющую джаву. Джава больше нахуй ни нужна. Смотри пикрил, не в первый раз такое вижу. Всё, помойное легаси на джаве переписывают на Богоподобный го. Выписываем джаву, да здравствует Новый Король!
Го заточен под разработку микросервисов. В го ахуенная реализация многопоточности. Го по бенчам ебет джаву во все дыры. В некоторых моментах го быстрее плюсов. Ебало твоё представили?
Через пару лет изобретут новый язык и все побегут на него переписывать. А java останется.
Засунь себе в очко свой репорт, чмоня. Мать твою ебал.
Как это? Сейчас всё перепишут на микросервисы на го и останется го, а не джава лул
>останется го, а не джава лул
Останется не го, а останется JAVA+GO
Вы просто длбавляете ещё один язык в стек джависта.
Джависта переучивают на современный язык гоулэнг, чел. Никому джава не нужна, в текущих реалиях. Даже консервативные банки выкидывают джэву и пишут все новые сервисы на гоулэнге или сишарпе.
>Го заточен под разработку микросервисов
Заебал уже этот баззворд. В джаве ты пишешь две аннотации и у тебя готовый микросервис. В говне ты пишешь ТРАНСПОРТ, МИДДЛВАРЕ, и прочую залупу, а потом обильно покрываешь это все if err != nil и приговариваешь ух бля.
Да. А еще го быстрее, асинхроннее и отказоустойчивее
>В джаве ты пишешь две аннотации и у тебя готовый микросервис
Лол! Ну нет же! Ты неделю будешь настраивать спринг бут или что там у тебя. Потом выдрачивать кэширование, логирование и прочие интеграции. Глядишь к концу месяца сможешь выкатить MVP, который можно будет без стыда выкатить на стейджинг. Программист на гоулэнге за день набросает основу сервиса, а уже к вечеру следующего дня отдаст на тестирование. Сервис на гоулэнге будет потреблять на порядок меньше памяти и стартовать на порядок быстрее. Пока там твой спринг бут пропердится полминуты и отожрет минимум 200 моб на старте, лол.
Чего? Это всё в стримах есть.
Ты перепутал. MVP на гоуленге будешь писать месяца 3, потому что в плане кодовой базы нихуя нет. А спрингбут по шаблонам хуяк-хуяк за неделю и уже на Stage
Говнопис очевидно лучше знает, как обстоят дела в жабе.
Писал и пишу.
С их ебаным unmarshal - это мрак
один смуззихлеб чакчакоитэр из казани шепнул другому что го быстрее джавы
это услышал кабанидзе хан кучум и дал команду переписывать все на го
это увидел борщехлеб из Читы и сразу же дропнул оплаченный курс на джавараше, чтобы побыстрее начать учить го с нуля
история достойная романа
Из-за убогости джавы ты вынужден годами выдрачивать спринг фримверк. В гоулэнге все делается не приходя в сознание и работает на порядок быстрее. Написать типичный микросервис, который будет потреблять всего 20-30 мб памяти и стартовать за десятки миллисекунд - это гоулэнг.
У них генерики только недавно появились, ты о чем. Лет через пять завезут исключения и тогда, МОЖЕТ БЫТЬ, появится какой-нибудь декларативный фреймворк.
Чел, все кишочки спринг фримверка дрочатся годами. Только вот гоулэнг позволяет делать все тоже самое, только на порядок быстрее. Даже тюнинговать ничего не нужно и выдрачивать флаги джвм, ведь сервис на гоулэнге будет выдавать минимум 50к запросов в секунду.
Смысл от скорости разработки, если на проде без слёз на сервис не взглянуть. Як какие там задержки..
>Из-за убогости джавы ты вынужден годами выдрачивать спринг фримверк
Да не нужон спринг во многих случаях, тем более, когда нужно написать реактивный микросервис на Java
Это единственный зрелый фримверк на джэве. Но реактивный подход там сделан из рук вон плохо.
Спрингбут далеко не самый лучшее доказательство превосходства жабы.
Жаба имеет отличную периферийную инфраструктуру, такую как джунит, стримы, идея, ломбок и ещё хуева туча всяких прикольных примочек, не забывая про максимальную удобность реализации парадигмы интерфейсного программирования и божественно выглядящего синтаксиса.
Спринг и его копросистема это плевок на джаву и на ее идею.
Джава прекрасна тем, что на ней можно буквально за месяц командой в пару человек сделать свой аналог экосистемы спринга (или любой другой библиотеки/фреймворка - джава это язык для создания библиотек), в том стиле, в котором тебе нравится, благодаря преимуществам, описанным выше. Ненавидишь уродский подход спринга ко всему? Напиши сам!
Написать асинхронную абстрацию над функциями - дело одного вечера.
Неприятно, что барин как всегда провернул на хую свою ручную обезьянку?
Некоторые просто задрачивают вопросы к собесам и залетают сразу на 200к. А если пишешь код, то собес не пройдёшь, потому что твой код никто смотреть не будет на собесе.
Соглашусь. Ходил по собеседованиям в конторы уровня МЯСО, везде, кроме сбера и прочих банков, команд и вакансий с Го гораздо больше чем с жабой. В итоге сделали оффер на го разраба, хоть я на нем почти ничего и не писал. Вот так. Джава в основном сейчас только в банках и в легаси живет.
>Ща еще есть варик влететь в го, пока это только начало
В голосянду. Это не начало, это мимолётный хайповый пик, после которого всё скатывается в неподдерживаемое легаси и переписывание на Java
Ебанулся? Я на собесе лайвкодил и все четверо наблюдающих, включая лида и старшего разраба смотрели на мой код, который я пишу
Прямо лайвкодил? А то под этим словом обычно подразумевают ебку алгоритмическими задачами
Прямо лайвкодил. Подключилось 4 человека, сказали, что хотят посмотреть, как я пишу код, попросили дристануть круд и миграции бд в виде liquibase прикрутить. Ну и тестики по плану были. Я пошарил идею, писал код, комментировал и мне параллельно вопросы накидывали
Ну я и говорю, пока еще только начало переписывания всего на го - еще есть возможность залететь, пока анальники и скуфы гречневые не опомнились
Ебать, говно целых 25% от джавы составляет! Пиздец, как же много дегенератов. Хотя в целом, учитывая то, что весь IT сектор берет деньги из жидопасса, неудивительно, что при выборе источником жидопасса говна на него много обезьян перейдёт.
Когда перепишут, 35 летние скуфы с завода уже все места займут. А ты будешь бэк мэк пэк - крч хуй сосать будешь
Вот когда займут - тогда и приходи.
Ходил по собеседованиям в МЯСО, везде предлагали много проектов и команд на Го. На джаве в основном сейчас пишет Сбер, Тинек, ВТБ и Газпромбанк. Продуктовых контор с жабой маловато видел.
с 2000го ждём.
Спринг еще не самое худшее. К спрингу просто по разному можно относиться. Можно как к интеграционному тулу, котороый дает тебе из коробки интеграцию в один обработчик к рестам, мессагброкерам и прочей хрени, и это неплохо.
Проблема --- именно в ебаном культе спринга, которые спринг форсят и боготворят. Существование этих ублюдков просто несовместимо с годной разработкой. От них даже смена языка не спасет --- они просто перетащат конченую идею DI контейнера в новую экосистему и будут дальше колоться и жрать кактусы уже на гоу, или расте, или что еще смузихлебы нынче называют убийцей джавы (шарп скорее всего не щитается, там культ скорее всего тоже пустил корни)?
Те кто реально умны, в первую очередь досконально знают свой язык (каким бы он ни был), и умеют им пользоваться чтобы работу работать. Они всегда перекатятся, если захотят, просто им это не особо интересно. И такие всегда котируются, потому что люди дела, а не слова.
А вот ебланы как раз только и делают что скачут, хейтят, и пиздуют на мороз при первых признаках кризиса.
Долбоеб, таблетки от тремора попей, чтобы три раза по тире не долбить.
Ну хз, быть "программистом на джаве" или "программистом на го" как-то не очень. Лучше быть инженером, который может прийти и за короткие сроки освоить тот инструмент, который используется в конторе. Собственно, в фаангах так и делают. Искать какого-то мастера джавы особого смысла нет, когда можно взять просто хорошего разраба с опытом на любом популярном языке + знающего базовые алгосы и умеющий в сисдиз.
Ну сам язык конечно не так богат, как жаба. Но при этом позволяет писать прозрачный код, без магии рефлексии, аннотаций, прокси и прочих радостей из джава мира. И еще при этом компилируется в бинарник + в разы меньший оверхед по памяти.
Плюс не нужно тратить много времени месяцы и годы на какой-то один большой инструмент вроде спринга, когда ты можешь сам собрать необходимый тебе набор тулинга из микрофреймворков плюс дописать необходимое, если будет нужно. В целом, говноланг для каких-нибудь инфра задач или хайлоада сойдет.
Альтернатива копролегасному коду - отсутствие кода.
Ну обычно еще на собеседовании проговаривается на чем придется писать большую часть времени, так что если ты всю жизнь писал только на жабе, а команда пишет на го - тебе скорее всего об этом скажут еще на собесе, чтобы ты был готов.
Ну а вообще какая разница на каком языке писать? Лучше смотреть на сам проект, его актуальность, уровень команды и конторы в целом. Недавно пришлось перейти на Го с жабы просто потому, что в МЯСО, исключая банки, он сейчас популярнее жабы и мне предложили писать на нем.
Такие инженеры бизнесы нахуй не нужны. Нужны спринг-конфигураторы которые за пару часов расставят аннотации и немного логики - и сделают задачу. А "настоящий инженер" пускай в гуглы пиздует фреймворки и языки изобретать. Только в гугле уже есть свои инженеры и стажеры без корочки MIT им не нужны.
Тут скорее вопрос личных амбиций. Кто-то хочет в инженера вырасти, а кому-то и спринг-конфигуратором работается нормально.
>Нужны спринг-конфигураторы которые за пару часов расставят аннотации и немного логики - и сделают задачу
Ну и это скорее уровень джуна-слабого мидла. Чуть что сложнее, уже нужен кто-то более скилловый. А быть вечным пассажиром не получится практически нигде, кроме сбера.
Да, я понимаю, что это все условности и нет четких границ
Хочется примерно понимать ориентиры к чему стремиться и как понять что вырос. Хоть коротко напишите свое видение, плиз
Ну мангу знаю, да. Читал там всякие типа Наруто, Ванпис и прочее
Джун только пришёл и не знает ни о предметной области, ни какие вопросы задавать, ни малоизвестные нюансы используемого стека технологий. Если ему расписать подробно задачу и вариант решения, где и как искать нужные методы, на что обратить внимание, какой должен быть результат, он справится. Нужно отвечать на его многочисленные вопросы, присматривать за его действиями, внимательно ревьюить код. При этом с самим стеком технологий он знаком, не знаком только с предметной областью.
У миддла больше самостоятельности, ему можно поставить сложную задачу и не особо распинаться, он сам всё найдёт в коде, сам придумает варианты решений, обсудит с аналитиками и кабаном неоднозначные моменты, сам всё реализует и будет потом поддерживать. Может немного приглядывать за джунами. Но миддл также может не знать каких-то технических нюансов, потому что тупо не хватает опыта, ещё не столкнулся. И миддл мало что знает об организации работы людей и планировании, ему сложно взять задачу у кабана, разбить её на подзадачи, распределить их и следить за выполнением.
Ну смотри
Ждун задаёт дохуя вопросов, типа как ето сделать, как ета хуйня работает и конечно хочется ему помочь, но после 5-6-ого вопроса уже заебал
Повидло уже по реже, уже не так часто забывает, но все равно бывает раз в неделю-две
А помидор задаёт их совсем редко, и то когда какое - то дизайнерское решение надо принять и посоветоваться (обычно с другими помидорами)
Так в том и прикол, что человек, в совершенстве освоивший один инструмент, при необходимости возьмет и освоит другой. Такой человек и есть --- инженер. Ему похуй по большому счету на чем кодить, он просто выжимает максимум результата из того, что ему дано. Он не чмоня-скакун сраный, и не бесплантый евангелист-маркетолог на подсосе у корпораций типа гугла, оракла или майков.
Типичный менталитет лузера, тащемто.
Джун способен под присмотром починять небольшые компоненты и фиксить баги.
Миддл способен самостоятельно задизайнить фичу или компонент.
Синьор способен самостоятельно задизайнить всю систему.
В теории. На практике эти лычки --- просто лычки, которые выторговываются гребцами у галер за то, чтобы гребцы не сушили весла, и зачастую лычка синьора или миддла в резюме у челика или в стаже не значит ровным счетом ни-че-го.
>писать прозрачный код, без магии рефлексии, аннотаций, прокси и прочих радостей из джава мира
Да, наброс валидный, но это скорее наброс в сторону сраного культа спринга, нежели джавы.
>И еще при этом компилируется в бинарник
Джава тоже так умеет. Есть грааль, есть JEP 295.Все с этим нормально.
>когда ты можешь сам собрать необходимый тебе набор тулинга из микрофреймворков плюс дописать необходимое
Всегда так делаю. На джаве. Опять же претензия в сторону культа.
Резонен был бы наброс про то что в джаве, в отличие от го или шарпа, асинхронных синтаксических конструкций не завозили очень долго, но вот блять кто б говорил --- в гоу с дженериками и исключениями вопрос хоть закрыт, или до сих пор нет?
>Джава тоже так умеет. Есть грааль, есть JEP 295.Все с этим нормально.
За пиздежь в рот возьмешь?
Ты чмо чтоли? Может тебе еще гайд "как покакать" написать, анальник?
Твоё неумение искать не значит, что чего-то нет.
>>30138
>>30149
А то что джуна заставляют ревьюить других джунов, которых только перевели из стажеров - это норм? Давать им пояснения по предметной области и технологиям.
Просто взвалили новые обязанности, при том что ко мне отношение то же. На некоторые созвоны, например по изменению общей архитектуры или по решениям по предметной области в отличии от нормальных мидлов так и не зовут, просто ставят перед фактом о сложившихся решениях.
Это --- эффективный менеджмент.
Нихуя это не норм, разве что уверенный джун/начинающий миддл.
Что интереснее - туда и иди.
Мне вот админство кажется какой-то задротской хуйнёй с перебиранием скудных доков и рецептов из гугла "авось заработает". Ни пет-проектов для себя не написать, ни поаутировать.
У нас вот есть фейны и под шумок начали вводить эврику. Вроде норм тема.
А по облакам челик сказал, что даже до сих пор на жаба 20% вакух требуют aws. А если вырваться за пределы богоспасаемой, то там облака вообще очень-очень нужны, особенно aws. https://www.youtube.com/watch?v=zggtF8v0Q_I
Вы обманывали меня что ли?
Тот анон, который выёбывался на спринг клауд, слился и не ответил, что вместо него юзать. Значит, можно смело юзать.
Да, ты прав. Мне кажется что сети более интересно. На работе сети, а после работы пет-проект пишу :/
А если на работе буду проект писать, то потом голова болит и ничего не могу делать :с
По 12 часов пахать ? Это очень тяжело для кухни. А если по 8-им, то будут платить копейки. Ещё на кухне очень жарко, кастрюли тяжёлые.
Дурак или как ?
У меня вся жизнь в шоколаде.
>кастрюли тяжёлые
А в жабе сущности тяжелые. И спрингбут сервисы тоже. И сама жаба. По 20 секунд пустые сервисы стартуют.
Хочешь чего-то легкого, то тебе в го. Почитай тред повыше.
>МАЙНСРУФТ?
Плохо что ли? Цукерберг вон со своей виртуальной реальностью обосрался, а она, оказывается, на яве уже написана и всем давно норм.
>По 20 секунд пустые сервисы стартуют.
У макак c явараша - безусловно.
Обосранный Tomcat на божественный Jetty в Spring Boot заменяется парой строчек.
Я делаю это первым делом при создании проекта, вторым - подключаю Lombok.
Создавать EXE и Python умеет. Вот когда на вашем Go можно будет написать DLL, тогда и приходите. А пока язык-костыль.
А че там большая разница? Я думал процентов 30. Видел как-то давно табличку со сравнением.
Вот и приходим.
Петухон не умеет создавать EXE, там тупо обёртка над петухоньим интерпретатором уровня launch4j. А graalvm скомпилирует хоть в экзешник, хоть в dll, из других языков работает.
Ты пидор
Да
Ну подробно рассказать не буду, ибо деанон, но скажу, что там был загрузчик данных, который парсил xml в известном формате, делал всякие проверки, описанные аналитиком, и сохранял в бд. Кажется это была часть интеграции с какой - то другой системой.
Помню ещё, какой говнокод я увидел, когда впервые открыл проект. Такой - то контраст с тем, что я видел в попенсорсных проектах на гитхабе.
-перенести всю хуйню с емейлами в отдельный микросервис, заодно прикрутить шаблоны
-какие то типовые круды и багфиксы в них
-выгрузка хуйни из базы в эксель и пдф форматах (с фильтрацией данных по параметрам и правам доступа). Либу для этого выбрать самому расписав лиду плюсы и минусы.
-че то там с парсингом жсонов в постгресе
>Есть грааль, есть JEP 295.Все с этим нормально
Как раз ситуация сильно далека от нормальной. Грааля в проде я ни разу нигде не видел. JEP 295 есть, но один хуй это не полноценный бинарник. Плюс очень долгое время старта так никуда и не исчезло.
>>30152
>асинхронных синтаксических конструкций не завозили очень долго
А их не будет. CompletableFuture и есть асинхронность с колбеками в джаве.
>>30152
>в гоу с дженериками и исключениями вопрос хоть закрыт, или до сих пор нет?
Дженерики есть. Без type erasure, вся информация в рантайме доступна. Исключений нет и не будет. if err != nil наше все.
>чтобы каждый раз не писать
А в чем проблема каждый раз писать? Да, лишний бойлерплейт, но тут либо обрабатывать каждую ошибку, либо вообще переделывать механизм в сторону unchecked exceptions.
MessageDigest digest = MessageDigest.getInstance("SHA-256");
или нужно делать его thread-local? Вопрос в плане перфоманса
В Apache-codec вроде бы берут новый инстанс на каждый вызов, при этом есть инфа что его метод работает быстрее чем джавовый https://gist.github.com/scoroberts/a60d61a2cc3afba1e8813b338ecd1501
я уже нихуя не понимаю помогите...
Ну смотри. Я бы хотел сделать спринговый бин который занимается хешированием. Я не могу просто в нем ебануть приватное поле MessageDigest и хешировать через него. Тк бин дергается из разных тредов асинхронно. Я пока вижу наиболее простой способ создавать новый инстанс при каждом обращении к бину. Но боюсь что это по перфомансу хуево ударит. Как принято такие вещи делать?
Думаю может просто либу какую нибудь подключить и не ебать себе мозги
например в guava:
Hashing.sha256().hashString(string, Charsets.UTF_8).toString()
>Без type erasure, вся информация в рантайме доступна
Забавные вы, гоферы. Выше >>30022 гоните на джавовую рефлексию, а щас с гордостью говорите "у нас дженерики без type erasure". Ну здорово, че, рад за вас. Когда нибудь и вы познаете прелести поддержки кровавого энтерпрайза, с такими двойными стандартами)
Там скорее речь шла про то, что нет больших фреймворков, которые бы работали поверх рефлексии. Ну и вообще type erasure не только про рефлексию. В тех же параметрах методов при перегрузке с type erasure появляется дополнительная головная боль.
>Плюс очень долгое время старта так никуда и не исчезло.
Пиздеж. АОТ в джаве как раз и позиционируется как решение для быстрого старта приложух на джаве. И в сети достаточно бенчмарков демонстрирующих крайтный рост скорости старта.
В гуаве вроде потокобехопасное хеширование? Возьми готовый класс из гуавы или апаче коммонс, смотря что у вас используется, и подключи его как бин, и не еби мозги.
У вас нет больших фреймворков только потому, что их еще никто не написал. У вас все еще впереди.
>В тех же параметрах методов при перегрузке с type erasure появляется дополнительная головная боль.
Ок, здесь уел. Но это не прям дилбрекер.
Сначала ты обоснуй свой стейтмент про "очень долгое время старта так никуда и не исчезло".
Типичное спринг-бут приложение стартует секунд 30. Добавляем сюда время на разогрев JVM и получаем 45-60 секунд до боевого состояния. Скейлиться, когда у тебя сервис поднимается за минуту - это просто смех
Че ты несешь, какой нахуй разогрев JVM? Ты в курсе вообще что такое AOT в джаве? Кинь хоть линк откуда ты эту ересь вычитал.
И при чем тут ебаный бут нахуй? Бут --- говно, туда АОТ только только завозят, и скорее всего до конца не завезут. Есть изначально написанные под AOT фреймворки (quarkus, micronaut), и вот они стартуют меньше чем за секунду.
Не было. Хотя сначала мне казалось что задачи не совсем джуновые.
>>30541
Нет, полно либ от каких-нибудь апачей, где просто можно объект перегнать в таблицу. Они не то чтоб очень удобны, но их хватает для выполнения задачи. Парсить чуть сложнее, но тоже решается теми же либами. В общем немного гугления - и ты йоба специалист.
>AOT фреймворки (quarkus, micronaut)
Полторы вакансии на рынке, чел. Всем кому нужен очень быстрый и производительный сервис, пишут его на гоулэнге. Там приложение буквально потребляет 30-50 мб памяти и при этом выдает сотню тысяч запросов в секунду без каких-либо проблем. Ну а запуск за миллисекунды - просто приятный бонус, который позволяет скейлить твое приложение в зависимости от нагрузки буквально мгновенно.
Мне плевать на устройство рынка труда, спор был не про это. Спор был про АОТ на джаве, и про якобы высокий футпринт AOT-приложений на джаве. Я не в претензии к го как к языку, просто чмо-евангелисты-пиздаболы должны быть обоссаны, ибо пиздят как дышат.
>>спринг-бут приложение стартует секунд 30
Если тебе это важно - сделай 3 сек или 0,3 сек.
https://www.youtube.com/watch?v=mkxAxGaShpg
Чел, пойми, если названные тобою технологии и фреймворки не используются в проде - их просто нет. Не существует, чел, прими эту правду жизни.
Хорошо. Сразу после того, как сраные евангелисты признают, что они просто чмони на подсосе у гугла, пропагандирующие на гоу забесплатно, и нихуя не разбирающиеся в теме, которую они смеют своим поганым ебалом подвергать критике.
> нихуя не разбирающиеся в теме
Во-первых, кто тебе сказал, что это так?
Во-вторых, ты на го то сам то хоть че нить писал?)
>Во-первых, кто тебе сказал, что это так?
Читай тред выше.
>Во-вторых, ты на го то сам то хоть че нить писал?)
А я че --- в чем то подвергал гоу критике? Нет.
Блять, ты упертый, что пизда. Я тебе говорю - явный показатель - это используемость. Твой кал никто НАХУЙ не использует. Значит, есть на то причины. Значит, эти технологии кал. Значит, язык эту парадигму не поддерживает. Всё.
>есть на то причины -> эти технологии кал -> язык эту парадигму не поддерживает.
Логика уровня "пропагандон с первого анала".
Все, мне надоело, идите нахуй.
Найс слив, чмоня
ThreadLocal
Когда введут эксепшены, тогда и добавят обертку try-catch
Да.
И так и эдак норм. Но самое главное --- трейсы и дебаги, в которых происходят какие то дополнительные вычисления, запросы и конкатенации строк, оборачивать в log.isDebug/isTraceEnabled.
Потому что блядь аоп это парадигма, а монго это база данных, а у тебя они в одном ряду стоят, как будто аоп это тоже какой то фреймворк.
Они знают, что это. У них задача проверить, что ты не пиздишь в резюме.
Ну так у меня было написано Logging: Spring AOP, MongoDB.
Совершенно очевидно, что я хуярю поинткат, на него навешиваю логирование и лог пишется в монгу. Ну и че тут непонятного?
Так может им просто обьяснить надо было? Вот прям как щас ты делаешь? Хз, может реально на пиздабольство проверяли?
На работе тупо все логи идут в консоль. Консоль всех контейнеров с сервисами сохраняется в эластик.
Правда никто в этом эластике ничего найти не пытается никогда. Если нужны логи более-менее свежие, то идут все просто читать консоль контейнера и по ней грепают.
Как пользоваться эластиком через его ui?
Но с другой стороны это и не нужно было сильно. У нас только дев контур есть. Демо появится через месяц. А продовый через полгода+.
Хуй знает, для меня это выглядело так, будто они удивлялись такому подходу, будто в проде так не делают
Взрослые не умеют пользоваться. Они все на небольших проперженных легаси-монолитах, где все деплоят в томкат сидели до этого. А тут выбили новый проект с микрочеликами, кафками, куберами, ci-cd, elk.
Elk поставили и не пользовались. Кажется скоро это реально понадобится.
И как этим пользоваться будет учить всю команду кто-то из смешариков. Я или кто-то еще. С кафкой например я разбирался, как правильно в нее пукать и из нее читать, чтобы не совсем больно было.
Можешь в двух словах пояснить? Не уверен, что именно я хочу в этом разбираться, если это невесело. Может еще на кого-то скинут.
А кто нибудь вообще задавался вопросом --- нужен ли вам ELK? Или вы его колбасите по заветам каргокультизма: "все делают, значит и нам надо"?
Насколько я знаю, ELK обычно используют когда логов архидохуя, их надо хранить долго, и грепа уже не хватает чтобы что-то по ним найти (но это неточно, поправьте если заблуждаюсь). Если ваши челики преспокойно обходятся грепом, и если логов у вас не настолько много, чтобы выводить их в консоль, может оно вам нахуй не надо?
Пока хватало. Потому что долгоживущих стендов не было. Был дев стенд, где почти у каждого сервиса раз в неделю деплоилась новая версия. А фронт и аналитики тыкали в систему не сильно часто.
А тут появится демо, которое скорее всего будет деплоиться целиком раз в месяц или реже. И по нему будут дергать больше и аналитики и представитель заказчика возможно.
Так что он скоро будет нужен. А когда появится продовый стенд нужен будет прям совсем.
>С кафкой например я разбирался, как правильно в нее пукать и из нее читать, чтобы не совсем больно было.
Че там разбираться? Подрубил зависимость для кафки, юзаешь KafkaTemplate и анноташку @KafkaListener. Всё
Двачую.
Как ошибки бизнес-логики и десериализации обрабатывать в основном. Длт, ретраи, логирование ошибок, вот это все. Особенно ошибки десериализации. Если оставить по умолчанию, там все логи засрутся. https://www.confluent.io/blog/spring-kafka-can-your-kafka-consumers-handle-a-poison-pill/
Плюс там в отправляемом сообщении был таймстамп. А он в метаданных и так шлется. И например для правильной фильтрации и очередности получения сообщений из топика нужно делать не рандомные ключи, а более осмысленные.
Плюс на консьюмере поменял уровень акноледжмента и сделал подтверждение асинхронное, чтобы логировать недоставленное.
Этих простых мелочей никто не знал на проекте.
Если сообщения можно терять -- можешь не париться с ретраями и оставить все дефолтным. Работать будет быстро, потом если начнет не хватать -- можно будет потюнить параметры. По логированию там можно закастомить через интерцептор как - то, сам так делал, чтобы только бизнесовые ошибки выводились.
Не оч понял про ошибки десериализации. Это по идее редкая/нереальная ситуация должна быть, если сообщения из самого приложения поступают и не должно логи засрать.
Если есть требования к строгой доставке сообщений -- тогда можно через @RetryableTopic с backoff сделать. Ack-mode=record, enable-auto-commit=false. Тут ещё главное иметь ввиду, если твой @KafkaListener посылает сообщения дальше в кафку -- kafkaTemplate.send(...) возвращает future и если чёт отвалится при отправке, твой листенер об этом не узнает и закоммитит сообщение. Редкая ситуация, но возможная, поэтому так же если есть строгие требования не терять такие сообщения -- можно сделать future.get() (но это заблокирует листенера). Ну это к любому асинхронному вызову внутри твоего листенера относится.
Но если есть требования к гарантиям доставки -- лучше jms заюзать, у него с этим получше. Есть из коробки двухфазный коммит в бд и очередь. Кафка все - таки изначально заточена под большую пропускную способность (аналитика и тп).
>Не оч понял про ошибки десериализации. Это по идее редкая/нереальная ситуация должна быть.
Я видел несколько статей и доклад по этой теме, значит нередкая. Наш кейс был: Ради одного консьюмера продюсер меняет формат сообщения. А второй консьюмер пока не поменял формат сообщения. И если у него нет автоматической отправки ошибок десериалиции в длт или просто скипа их, то по умолчанию там то ли бесконечный ретрай ошибки десериализации, то ли просто ретраев много. И все логи засираются и ретраи уходят лишние ресурсы.
Там это все конфигурируется через ErrorHandler-ы, обертки для десериализаторов ключа и сообщения и DeadLetterPublishingRecoverer.
В итоге бизнесовые ошибки делают два ретрая и идут в длт. А Ошибки десериализации идут сразу в длт.
Первый совет - нахуй елк.
Есть грейлог.
Настроить на него логгинг хоть jul хоть log4j/2 хоть slf4j-* изи.
Про мессаджинг в кафке не скажу. Но нахуя сериализовывать самой кафкой?
Во всех проектах где я работал и с amqp и с jms использовали дженерик сообщения всегда.
В пейлоад клали или json-base64 или бинарную сериализацию если обьекты простые.
Десериализация полностью на консьюмерах.
Вот роутинг, акноледжи и сиквенсайди(или как его там) - это да. Это обрабатывали средствами драйвера/jmstemplate.
Как раз таки сериализацией в жсон можно решать проблемы версионирования.
Не все конечно.
Но от отсутствия нуллабл полей или добавления новых - ошибок точно не будет.
Алсо точно уже не помню название но есть такая хуйня как json-scheme. Это как у хмл но только у жсона. По ней можно как с jaxb генерить модели. На этапе сборки фатжарки бута через таргеты в градле. Да и просто запустив таргет для разработки.
И синхронизация схемы сообщений между разными микросурвайсами можно решить выносом этой схемы и классов моделей в отдельный артифакт, например.
Все равно не пойму, консюмеры/продюсеры все внутри приложения твоего? Ты имеешь ввиду формат бизнесового сообщения или то, что там Кафка внутри себя юзает со всякой мета инфой, хедерами и прочим?
Если бизнесового -- могу предложить решение (костыльное) просто сделать сериализатор/десериализатор сделать обычными строковыми (StringSerializer) или вообще массивом байт (хз, есть ли такой), его в листенере десериализовать в нужный тебе класс внутри try catch, в случае исключения просто return
Я б тебя еще спросил нахуя ты используешь рантайм говно, когда это можно сделать компайлтайм аспектами.
И да. В проде использовать явно аспекты, тем более обоссаные рантаймы спринга, это полная хуета.
Я не он. А тот кто выше писал.
Но я в текущем проекте в jms вообще гоняю xml-base64 ))
Потому что схема приложения общая для всех сервисов это 4 мб xsd и несколько сотен типов.
И проще маршалить и демаршалить обьекты в хмл чем искать другие способы.
Но до этого в жсоне по схеме гоняли
>то по умолчанию там то ли бесконечный ретрай ошибки десериализации, то ли просто ретраев много
По-умолчанию там SeekToCurrentErrorHandler, который 10 раз ретраит, причем следующие записи в это время не обрабатываются
Вот кстати в джава доке у него нашел кажется то, что тебе нужно
Любая рефлексия, рантайм проксирование - хуета.
Не хуета сразу писать код с нужным функционалом а не пердолить рантайм/рефлексо/агентированую хуету.
Нужно логирование - добавь ручками.
Самописные ООП фреймворки.
Ебать вы тут мамкины тралейбусы.
Еще предложи resultset маппить через рефлексию и common-beanitils
Смотря в каком ждк.
В свежих говорят норм. Даже асинхрон умеет.
В 8 нет. Там или apache http client или okhttp
Хочу написать свою реализацию feign вместо того говнища, что там сделали, на свежих ждк естественно. Подойдет для этого?
Расскажу прохладную былину.
Когда то давно я дорабатывал самописный орм.
Так вот это говно все было на кастомных аннотациях, рефлексии и бинутилсах.
Не думаю что хибернейт сделан на чем то лучшем лол.
А да. Транзакционность была сделана на аспектж))
Хз.
Но сейчас до сих пор новый энторпрайз пилят на 8/11 ждк. Ни разу чтот не слышал чтоб 17 юзали.
На ведре вроде как тоже 8.
Но если хочешь для себя то пили конечно.
Все нормальные авторы исползуют джаву 19. И то она уже устаревать начинает.
mockito-inline и норм мокаешь статические методы
>Но от отсутствия нуллабл полей или добавления новых - ошибок точно не будет.
Ключ сериализуется строчкой, сообщение в джейсон. Если ты имеешь ввиду десериализовать джейсон в что-то вроде джейсонНоды джексона, то такая себе идея.
Для поддержки версионирования можно сериализовать все в авро. Но это надо ебаться со спринг клауд схема регистири. Возможно, если мы глубже погрузимся в кафку и по ней будет больше взаимодействия- можно попробовать продавить введение авро.
Но там есть и другие кейсы этой ядовитой пилюли десериализации. Почитай статью.
>>30943
Формат всего сообщения. Например в части топиков ключом сообщения могут быть гуиды. А для них у кафки есть другой сериализатор/дерериализатор. Смена сериализатора это тоже пример ядовитой пилюли. Плюс, если при перезагрузке консьюмера при деплое ты хочешь читать топик с начала, а не с офсета и часть твоих сообщений в одном формате, а часть в другом, то тут без десериализаторов-прокладок вообще никак.
Или те же хедеры, оттуда инфу я тоже использую. Но конечно я имею в основном формат пейлоада и добавление/удаление полей из формата пейлоада.
>>30953
Да, 10 раз на сообщение это слишком много. Как я выше писал для бизнес-ошибок мне хватит 2, для неретраибл ошибок, типа десериализации ретраи не нужны. SeekToCurrentErrorHandler это по-моему легаси хендлер сейчас по-другому называется. Но в современной спринг-кафке там все конфижится в пару строк.
Например некоторые полуебкт начитавшись охуеных блохастых книг любят статические билдеры. И суют их везде где можно.
А методы их использующие тестировать как?
Ты спросил чей это нахрюк, я тебе скинул чей.
Осбуждение видоса было с участием спринг-вычищателя в прошлом треде. По второму кругу обсуждать лень. Нахуя оп кинул скрин с того видоса в оппик - хз.
Так скрин идет в контексте спринг-di. Типа как минимизировать урон для архетиктуры от di. Какие еще статические билдеры и методы использующие их?
Так елк уже есть. Надо просто пользоваться научиться и кибану настроить.
Правда пока почему-то виджеты этой кибаны тормозят. Поэтому залезть внутрь контейнера и грепнуть намного легче и удобнее.
"Мурзилка"
Просто таблица: id пользователя, тип операции, таймстамп, подробное описание изменения.
В JS неизбежно придётся ебаться с вёрсткой, ненавижу ебаную вёрстку, лучше буду конвертировать XML в эксепшены. Если ебля с вёрсткой тебе нравится больше, вкатывайся в JS.
Жирно.
Я бы с радостью, будь у меня времени с запасом, а так через 2 месяца показывать что у меня сделанно.
>общайся в тематических форумах и чатах.
Без понятия о таких, у тебя на уме что-то конкретное? Я ток стаковерфлоу открываю и гайды от индусов.
>(кроме тебя и ПМа на проекте есть еще люди?
Только я один на бэке, один джун фронт и девопс, на меня архитектура и прочее.
>ибо только пришел
Да, пока ещё даже встречи по обсуждению не было, но надо всё равно подготовиться.
Чтобы объяснить разницу, нужно знать и java и js.А мы тут все только java знаем, так шо ответов тебе не будет, уходи
Кто такие скуфы?
ПЕРЕКАТ >>2531375 (OP)
ПЕРЕКАТ >>2531375 (OP)
ПЕРЕКАТ >>2531375 (OP)
ПЕРЕКАТ >>2531375 (OP)
насчет оптимальнее хз, но то что это не на 100% корректно - это да. Например на таком примере работать не будет:
float x = 1234567891f;
Вот так лучше по идее:
x == Math.floor(x)
Это копия, сохраненная 6 февраля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.