мужики, не шарю за многопоточку знаю только раннабл/треад хуйню уровня completablefuture и executor не знаю а самое главное - не разбираюсб в терминологии/бест практис многопоточки thread диспетчер, thread процессор и прочая хуйня - как я должен о ней узнать? где пишут о создании такой хуйни? нахуй нужен тред/раннабл если есть КОРУТИНЫ это же виртуальные потоки, да?
>>3495261 >как я должен о ней узнать? где пишут о создании такой хуйни? Книга с поездами >нахуй нужен тред/раннабл если есть КОРУТИНЫ Джавовые корутины - стекфул. У тебя память быстро забьется и еще баги могут случиться из-за чего встанет вообще все. За корутинами обычно следит сборщик мусора, из-за чего STW мусорщик просто встанет на секунд 5-10 (зависит от нагруженности) и все полетит. Корутины круто, не спорю, но стеклесс круче для серверов. В Котлине такие. Потоки же позволяют тебе самолично дергать ровно столько, сколько надо потоков и ты сам ими управляешь, а не алгоритмы какого-то индуса.
>>3495261 > нахуй нужен тред/раннабл если есть КОРУТИНЫ это же виртуальные потоки, да? Корутины медленные очень и код засоряют. Неудобства ради тормозов.
Жестко крутанул и вкатился в сбер, хочу умереть, нихуя не понима, проект свежий, помимо меня только один бэк. Где бля гайды какие-то и бадди ну как мне вкат то сделать в проект я нихуяяяяяяя не понимаю
Трушные дяди джависты помогите как вкатиться ваще во всю движуху эту взрослую в компаниях, я в конфлуенс захожу и просто глаза рвутся нихуя не понимаю как начать где начать что начать. Просто пока проект стянуть и хуль дальше то. Онбординга вообще никакого нет
>>3498495 Ты попал в классическую корпоративную ситуацию: проект сырой, онбординга ноль, документация — адская каша, команда — 1.5 человека. Это не уникальный случай, а реальность в большом количестве энтерпрайзов. Смотри: 📦 1. Стягивай проект и собирай инфу как агент под прикрытием
Твоя первая задача — узнать структуру проекта, не понимая пока сути. Делай это по слоям: 🔹 Уровень 1: "Что это вообще"
Стянуть проект, собрать, посмотреть README.md, docker-compose.yml, build.gradle, .env — всё, что хоть как-то говорит о системах и зависимостях.
Где backend, где frontend (если есть), как запускается, какие микросервисы (если они есть).
Прогнать проект локально, даже если не работает до конца — важно видеть хоть что-то в логах.
🔹 Уровень 2: "Что он делает"
Есть ли какие-то контроллеры (@RestController, @Controller, @RequestMapping) — начинай смотреть с них.
Что вызывает, как это мапится, где хендлеры, где бизнес-логика (Service слои).
Пройдись от входящего запроса до репозитория.
🧠 2. Конфлуенс — не для чтения, а для копания 🔹 Пробей такие штуки:
Архитектура системы (ищи ключевые слова: архитектура, architecture, диаграммы, структура).
CI/CD пайплайны — ты должен понимать, как твой код попадает на dev/stage/prod.
Контракты API — swagger, postman, openapi — если найдешь, тебе будет сильно легче.
📌 Если конфлуенс кишит сотнями страниц: используй поиск. Ищи по ключам: auth, env, run, deploy, architecture, flow, login, token, jira, dev-url, db. 👤 3. Доставай второго бэка — максимально вежливо, но настойчиво Вот как:
Привет! Я только подключился к проекту, пока немного теряюсь в структуре — можешь, пожалуйста, подсказать, с чего лучше начать? Есть ли какой-то минимальный онбординг, или хотя бы цепочка "от запроса до базы", чтобы врубиться? Очень помогло бы 🙏
— Если нормальный человек — поможет. — Если не отвечает — пробей у тимлида/ментора/пм-а — попроси назначить buddy. 🧩 4. Строй ментальную карту проекта
Параллельно с копанием — веди личный Notion/Obsidian/Markdown. Заноси туда всё, что понял:
Бизнес-фичи и какие модули за что отвечают.
Как логика течёт по слоям.
Названия сервисов, баз, очередей, шины, брокеры.
Это даст тебе контроль над хаосом. 🛠️ 5. Изучай стек по ситуации
Твоя задача — выучить не “всю Джаву”, а именно тот стек, который юзается в этом проекте. Проверь:
Spring Boot (какая версия? webflux или обычный mvc?)
Security (OAuth2? JWT? Keycloak?)
Базы: PostgreSQL? Oracle? Mongo?
Kafka / RabbitMQ?
Swagger / OpenAPI?
Jenkins / Gitlab CI / Argo?
Ищи исходя из того, что реально используется. 💡 6. Формируй цели и план вката
Если тупо сидишь в панике и без задачи — это сожрёт тебя. Запроси тикет. Даже “починить мелкий баг” — это уже зацепка.
Параллельно:
Подними локальное окружение.
Пройди хотя бы один бизнес-флоу: “залогиниться, получить юзера, сохранить заказ”.
Напиши себе схему: что откуда вызывается и куда идёт.
Ты не один. Просто в любой корпоративной системе новичок всегда ощущает себя куском мяса в механизме. Но с правильной разведкой, с чистым вниманием — ты превратишь это месиво в контроль. Удачи.
Аноны. Нужен совет, хочу понять, иду ли я по правильному пути В айти где-то лет 6, успел поработать разрабом бд где-то год в самом начале пути, потом бэкэндером на питоне примерно полгода, потом чот туда-сюда какие-то мувы случились, и вот я уже больше трех лет как системный аналитик. В целом жаловаться не на что, платят хорошо, работаю по банкам. Но есть беда. Большинство коллег по цеху беспросветные долбоебы. А еще мне в этой стезе нахуй скучно. И я решил вспоминать джаву, и вкатываться обратно в разработку. Сейчас пишу пару проектов. Один с кентом, который уже успел дорасти до сеньора, другой самостоятельно. Юзаю там спринг, слушаю кафку, поднимаю контейнеры докера, все как положено.
Как думаете, насколько оно вообще стоит того и сколько времени может уйти на вкатываение обратно в разработку?
Гайз, мои тесты идут уже час. Оптимизировал поднятия контекста, распараллелил через грейдл maxParallelForks, но один хуй интеграционные ьесты, с базой, живыми хттп запросами тормозят пиздец, тестов пара тысяч штук. Отправил пуллреквест и сидишь пердишь, час ci/cd собирается. Джава заебала
>>3498483 >>3498495 Как будто треды по джаве поживее были раньше. Есть кто-нибудь из зеленого банка? Подскажите как лучше вкатуну из галерки ужиться, ЛАЙФХАКИ так называемые. Пока доступы получаю даже с этим гемор какой-то
Всем привет, как-то пару месяцев назад спрашивал тут, могут ли поднять зп со 100к до 160к имея 2.5 года опыта, несмотря на то, что это нормальная зарплата по рынку, но относительная прибывка большая. Ответ - нет, предложили 117к, а при моем запросе в 160 руководитель очень удивился. Искать новую работу?
>>3498994 Да, +60% и хотел. Подумал, вдруг там всё адекватно рассмотрят и будут учитывать не относительный прирост, а итоговую цифру, особенно, учитывая, что я уже ознакомился с инфраструктурой на проекте и более полезен для компании. Странная система, как будто никто не заинтересован в постоянных работниках
>>3499037 Нет, т.к. кубер, микросервисы и кафка используются последние лет 10-15 точно. Где ты был все это время и какие проекты делал, если не умеешь в кубер и кафку?
>>3499254 >Стоит это изучать? изучать не нужно ничего. это бессмысленная трата врмени и сил. если тебе нужна какая-то хуйня на проекте, то смотришь документацию, делаешь и забываешь. если не знаешь какая хуйня тебе нужна - спроси у гопоты или тимлида/архитектора.
пока ты будешь что-то "изучать" оно уже устареет 10 раз. если ты вот прям сейчас не пишешь код с использованием %хуйня-нейм%, то максимум что тебе нужно про %хуйня-нейм% знать - это пять предложений о том что оно делает и когда его стоит применять.
чтоб окончательно дошло - полный референц спрингбута - 200 тысяч строк. вся документация по всем спринговым проектам - овер 1 миллион строк.
изучать это бесполезно и бессмысленно - оно меняется быстрее чем человек способен усваивать информацию.
>>3499654 >полный референц спрингбута - 200 тысяч строк. вся документация по всем спринговым проектам - овер 1 миллион строк. и это чисто официальная документация, без учета тех сотен книг которые про спринг наваяли всякие писаки
>>3499254 Почитай, чтобы знать, что это и какие плюсы/минусы. Изучать прям не надо, разве что интересно. Прожженных волчар не слушай, они свою ссаную сотыгу получают и довольны
>>3499694 >Прожженных волчар не слушай при чем тут волчары? кто помнит corba, jsf, struts, play, toplink, openjpa, soap, osgi, weblogic, ejb2/3, gwt, javafx? а я когда я на всем этом говне писал проекты и убил кучу времени на изучение. нахуя спрашивается?? все эти кафки, докеры, спрингбуты, кубернейтсы, спарки, кварки и прочие хуярки так же через пару-тройку-пятерку лет уйдут в закат. нахуя их изучать? попользовался и забыл.
>>3499731 Так я и говорю, что изучать прям не надо. А почитать, как работает - надо. Чтобы принципы абстрактеые вычленить и в голове уложить. Платоновские фреймворки и тулы, ткскзать
>>3499731 >а я когда я на всем этом говне писал проекты и убил кучу времени на изучение. нахуя спрашивается??
Бля, такая тупая постановка вопроса, что я ебал. "Ыыыыы, убил кучу времени на JavaEE 6 - лучше б телок мацал учил спринг. Молодость проебана, нет пути!"
Я тоже через много чего из этого списка прошел - в джаву вкатывался через OSGi на Карафе, продолжал через Java EE 6. До джавы вообще ебошил скрипты на TCL/TK по солярис 9 на спарках. Не жалею ни на минуту об этом опыте - этот опыт сейчас позволяет мне с ноги открывать двери к кабану и решать с ним вопросики, разьебывать на атомы любое легаси, и не трястись за свое будущее трудоустройство, а перекат на свежие стеки дается легко и непринужденно.
Двачеров же послушаешь - так одна половина уже спилась и сторчалась на фоне депры от нейронок, а вторая голодными глазами в рот заглядывает всем мимокрокам - "что надо учить чтоб 300 наносек/сек платили, ну возьмитя". Трясутся, лишний раз ошибиться боятся... Правильно, хули.
>>3500834 Я сам вкатун ебаный, студентота, сидящая на шее у родителей. Недавно пришёл к похожим мыслям. Возможно это просто копиум и попытка оправдаться в очередной раз, когда вижу статьи с другого айти и графики, где всё рухнум. Типа я нашёл для себя ответ нахуй я вкатываюсь - это лучше чем сидеть, листать двачи и играть в дотку. И хули я теряю? Когда я обосрусь, что меня не позовут ни на один собес и я буду плакаться в тред, в этом всё равно есть плюсы. Я начитался хуйни про то, что мозг как мышца тоже прокачивается, если регулярно учиться. Не знаю, работает ли это с кодингом, сейчас настоящие инженеры и деды из НИИ наверно просто посмеются с того, что я назвал это умственной деятельностью. Так если выстрелит какая-нибудь новая темка, похожая на то, чем было айти в начале 10-х, то начать вкатываться в неё мне будет легче с тем багажом хуйни, чем если бы я вкатывался совсем с нуля после долгого потребления брейнрот калтента. А так, если послушать двачеров, то что бы ты не выбрал - всё не правильно, всё пропало и вообще остаётся только РКН. Хотя периодически я сам начинаю думать так же.
>>3500924 >сейчас настоящие инженеры и деды из НИИ наверно просто посмеются с того, что я назвал это умственной деятельностью.
Да никто из дидов над тобой смеяться и не подумает ни разу. Состоявшемуся человеку нет нужды унижать вкатунов чтобы чувствовать себя хорошо.
Просто ты на дваче. Здесь - не ученые, и не специалисты. Здесь - немодерируемое среднее по палате, с отрицательным отбором. Шизы и неудачники.
>Когда я обосрусь, что меня не позовут ни на один собес и я буду плакаться в тред, в этом всё равно есть плюсы
Еще чего! Нехуй унижаться перед этими хуесосами! Сочуствия и поддержки от контингента, транслирующего рухнум, ты априори не дождешься - это самая подлая и лицемерная когорта хуесосов и пидаров. Не зря их в реале и на адекватных площадках все пиздят и банят.
>>3501095 Обиженный вкатун который по советам мудрой телеграм школоты потратил 5 лет на попытку вката, и случайно зашёв на сосач понявший что просрал 5 лет жизни на хуйню на потеху срынкошколоте, ты?
>>3500924 Ради вката это тупо на самом деле. Но в целом идея развития мышления здравая. На практике это значит срыг не очень полезен тебе будет, хоть и не полностью бесполезен.
>>3501250 моя мечта писать на го как же я люблю этот язык бляяяяяя, хотя джаву я внезапно ПОЛЮБИЛ тоже мимо джава разработчик работаю 1.5 месяца мне нравится
короче нищета ебаная https://ipfs.io/ipfs/bafybeih65no5dklpqfe346wyeiak6wzemv5d7z2ya7nssdgwdz4xrmdu6i/ вот вам активация хуйни качаете архив с сайта, там инструкция есть (запустить батник просто надо, но вы нихуя не справитесь нищеёбы приёбыши на русских тазах) ключ с сайта скопируете чтобы больше не слышал про активацию жидбрейнса ПИДОРЫ ебаные
>>3501308 Это не работает в новых версиях, там запрос на сервер отправляется чтобы проверить, есть у тебя право пользоваться. Поэтому нужна подмена этого сервера.
А если нужна хорошая ide, то я использую netbeans 9. Штука хорошая. Правда не тянет современную джаву в полной мере, но для такого случая у меня есть netbeans 13.
>>3495028 (OP) Сап, жаваноны, в универе учим Java, но в городе толковых вакансий по ней нет, хотя, собственно как и на .NET, везде от 3 лет опыта. Я просто хотел бы поинтересоваться, как по вашему мнению, на чем легче найти первую работку, любую, мне хочется хотя бы полгодика опыта наработать до конца ВУЗа. Спасибо
>>3495028 (OP) Разработка на Spring ТРЕБУЕТ ОБЯЗАТЕЛЬНОГО использования иде от гикбрейнс или эклипс??? Реально? То есть если забрать иде, ни один джава дебил не запустит из консоли свое говно?
>>3503338 Я просто открыл туториал по спрингу и он мне предлогает скачать ide и правой кнопкой мыши блять тыкать, как будто я не разработку учу, а блять в колцентр устролися. Вместо 1 комманды в консоле, мне нахуй надо сидеть и как еблан мышкой че-то тыкать, там совсем ебанулись, любая домохозяйка должна быть способна натыкать конфиг или че??
>>3503243 >Егорка таки прав оказался? Ты же Егорку вообще не слушал, да? Только на даачах читал?
Егорка фанат ООП в 100500 степени! Он в одном докладе затирал что Math.max() это не правильно и надо писать: new Maxer(int, int).getMax() вот это ООПшно.
>>3503363 >Ты же Егорку вообще не слушал, да? Слушал. И стримы его, где он женщин и леваков хуесосит, тоже... >надо писать: new Maxer Он как раз таки против классов с суффиксом -er. Так что это не я плохо слушал.
>>3503368 >И стримы его, где он женщин и леваков хуесосит, тоже... Да у нас тут каловый сомелье.
>Он как раз таки против классов с суффиксом -er. Так что это не я плохо слушал. Ок, слушал ты скурпулезно, но суть нихуя не понял. От того что он назвал класс Max, а не Maxer суть не меняется. Топит он за ООП везде.
у меня на работе такой класс: public abstract class GenericGisUiPrepareExportDataThread<ItemKey extends GenericGisObjectKey, GisExportData extends GenericGisResultObjectData<ItemKey> & GisRequestData<GisExportResultData,ItemKey>, GisExportResultData extends GenericGisResultObjectData<ItemKey>, GridItem extends GenericGisExportGridItem<ItemKey,GisExportData,GisExportResultData>, DataProviderType extends DataProvider<GridItem,SerializablePredicate<GridItem>>> implements Runnable
работаю 1.5 месяца, первая работа ебало моё представили?
>>3503670 public class ProcOrgNsiWorksExportPrepareGridExportDataThread extends GenericGisUiPrepareExportDataThread<GisWorkExportObjectKey, GisRequestNsiWorkExportData, GisRequestWorkExportResultData,ExportWorksGridItem,ListDataProvider<ExportWorksGridItem>> Да, хуёво, ну а чё поделать, приходится ковырять
>>3503343 Увыб но большинство программистов на java используют ide, из-за чего возникают беды с тем, что в тех местах, где нет возможности использовать ide, приходиться танцевать с бубном и экспериментами в силу того, что нет туториалов по работе чего-то в консоли. Поищи про ту же ситуацию с созданием apk в консоли. Найдёшь очень мало примеров(они есть).
>>3504000 >Странно на сосаче упрекать за такое... Это было выражение глубокого уважения.
>Да понял я всё, ты просто пример хуёвый привёл. Math.max() это как раз нормально для Егорки. А вот MaxCalc.getMax() нет. Речь идёт о том, что Егорка топит за ООП как он его понимает, а не против. Поэтому >>3503243 не правда. Да он считает что у окружающих не труъ ООП, но он считает что надо больше ООП, а не меньше.
>>3504111 >Он только в путь своим же принципам противоречит. Похвальная гибкость. Но вообще это не новость, то что он проповедует, на практике не работает.
>>3504122 >Речь идёт о том, что Егорка топит за ООП как он его понимает, а не против. >Да он считает что у окружающих не труъ ООП, но он считает что надо больше ООП, а не меньше.
Ирония в том, что то ООП, за которое он топит - это на самом деле ФП, переложенное на объекты. Да и то - на обьекты оно переложено лишь потому, что в джаве first class citizen это объект, а не функция. В EOланге он этот рудимент благополучно вымыл как будто бы.
Только вот если настоящее ФП - вполне себе чоткая детерминированная чуть ли не математическая залупа, то Elegant Objects - популизм чистой воды. Обьекты - живые существа, не оскорбляйте их, ага. Причем Бугаенко сам это не отрицает - ему тупо в кайф было поджигать жопы на конфах.
>то что он проповедует, на практике не работает.
Отдельные штуки я оттуда черрипикнул. Если отшелушить проповедь и демагогию, кое какой смысл в кое каких отдельных рекомендациях там есть, особенно в ранних... но копаться в говне в поисках жемчужины - удел тех самых особых ценителей, не всем такое заходит.
>>3498927 Пиздуй оттуда лучше после лута годовой, тебя ждет литералли 0 роста по хардам там. Оглянуться не успеешь, а ты уже лоускилл с неприлично большим для джуна "опытом", с которого рофлят на собесах и в комьюнити в целом
>>3506229 я с ковида 3 конторы менял, везде был офис, но никто не гонит туда. У большинства нет своих мест, надо бронировать, что подразумевает, что ты не ходишь каждый день в офис. А вот до ковида даже было уютнее как-то, есть свое место, никто кроме тебя там не сидит, не пердит в кресло >>3506232 В сбере фулл тайм офис? Я то говорил в целом Тогда твоей тейк про ноулайфера точно мимо, все кто ходит в офис, по определению, ноулайферы
>>3506237 >У большинства нет своих мест, надо бронировать, что подразумевает, что ты не ходишь каждый день в офис. В нашей богадельне решили что надо бы загнать гребцов в офис, но при этом надо бы и сэкономить на офисе. В результате родилось гениальное решение: половина команд ходит в понедельники среду, другая половина вторник и четверг, про пятницу надо договариваться с другой командой. В результате и не удалёнка и стола своего в офисе нет, прийти не в свой день сложно.
>>3505955 Я был бы рад хотя бы удержаться щас на месте и не быть уволенным, прошло две недели, первую неделю якобы настраивал окружение и получал доступы, вторую изучал проект. Щас сижу с тасками и нихуя просто сука не понимаю что делать. Коллега нихуя не знает и толком не поможет, документации нет
>>3507649 > Коллега нихуя не знает и толком не поможет, документации нет Воняешь слабостью, волчара. В задачах небось надо копать на тему того как оно все работает. А не просто по подробному ТЗ кодомакакить. Потому задачи и сгрузили на того, кто в собесе говорил что он всё дохуя умеет. Обмазывайся дебагом и вперде, чо.
>>3507649 Ты че, не знаешь корпоративной культуры общения с коллегами(начальник не в счёт)? Кидаю пик чтобы учился. Вполне вероятно что твоего коллегу вы уже заебали, и он просто не хочет тратить на тебя время, тем более что ему за это не платят, а хочет поделать тасочки и позалипать в ютуб. >>3508061 >Обмазывайся дебагом А как понимать проект дебагом? Дебаг он на то и дебаг чтобы баг искать, а понимать проект надо головой, читать код, тыкать живой продукт сам по себе в качестве юзера, собственно заниматься тем на что уже были просраны две недели.
>>3507649 >и не быть уволенным Новичков не увольняют за лоу перфоманс, ты только пришел. То, что от тебя толку около нуля будет первое время, само собой подразумевается.
>Коллега нихуя не знает У тебя же должен быть butt buddy на весь испытательный срок, его и кошмарь.
Не бздо, не ты первый такой, выберешься, как и все до тебя
>>3508112 > как понимать проект дебагом > тыкать живой продукт сам по себе и дебагом смотреть что там происходит, искать точку входа для своей таски. Когда видишь не только код но и данные на каждом этапе выполнения - клубок распутывается сильно быстрее.
>>3508611 быстрее будет просто глянуть в инструменты разработчика и найти ручки, но предварительно имхо стоит просто окинуть взглядом кодовую базу, так будет понятнее, хотя можно и так, но дольше.
>>3503643 для движка это вполне ок. у меня тоже в проекте есть десятистрочные дженерики, но зато благодаря им имплементация классов буквально в несколько строчек, а то и вообще однострочная лямбда.
да и вообще, в яве дженерики няшки, вот в крестах это действительно пиздец.
>>3509332 >He reflected on how computer code originally was written in Assembler and moved to higher levels of abstraction with C and C++, then on to yet higher levels with Java and C#. “And now it’s time to move even higher,” Skrygan said. “So when we write the code, we’ll basically lay out the ontology, the object-oriented architecture, what we have in mind, or have somewhere written in design docs.”
Блять, как же заебал этот перманентный цирк на реальности, ебаный рот...
Этот "уровень выше" всю дорогу существовал в лице декларативных подходов к программированию (в противовес императивным). Тысячи их, целина непаханная - бери да делай, тем более под нейронку, которая скорее всего уже сегодня функциональные строготипизированные абстракции в thinking моде может щелкать как семечки на порядке эффективней говнокода, если ее научить...
Но неееет, мы ж умнее всех, да еще и на хайпе... Давайте в сотый раз переизобретем велосипед, а заодно перепишем в сотый раз под него экосистему... Еще и заебнули то как - "object oriented architecture". Архитектура. Обьектно ориентированная. Пиздец...
Правильно, хули... без нейродроча инвесторов на бабки не прогреешь, а программист любое дерьмо на инструментарии стерпит. Еще и оправдывать его будет, мол "этож инструмеееент - за что его ненавидеть?"
>>3509624 Да щитбрейнс начал скатываться в говно просто. Им корона мозги натерла, возомнили себя Гуглом что может свои языки пилить и опенсорц хуячить при бесконечных бюджетах. А реальность дала им хуем по ебалу. Не удивлюсь если через несколько лет вскод выпнет жыдею из топа во всех стеках, а сами они разделят судьбу борланда.
>>3509646 Самая мякотка в том как гугл провернул их на хую, заставив буквально бесплатно создать для своей платформы и язык и иде. Просто вот за нихуя. Гугломенеджмент наверное охуевает с этих долбоебов.
>>3509332 Кстати котлин иногда это пиздец. Конечно много всякого сахара и тд и тп. Но блять какая скотина придумала эту хуиту с nullable типами? При сопряжении с джава легаси говнами эта хуйня не работает. Сгружаешь в String null - начинает орать как разенное и хуярить стектрейсами. Даже если ты эту хуйню вообще никак не используешь и просто у тебя в дтошке лежит. Не-не-не. Везде надо пройти и проставить ебанный String? и потом обставлять все !!. Серьезно, за год использования я словил ебалом больше NPE чисто из-за разницы в обьявлении чем из-за того что я реально внутрь null полез.
>>3509772 Это у твоей мамаши-шлюхи скил ишью когда тебя рожала ебалом в пол. Я тебе пытаюсь на пальцах обьяснить что куколдская система типов котлина чаще провоцирует NPE на ровном месте, чем я за 10 лет опыта с голой жабой словил.
>>3509822 скуфяра не может в нуллабилити. Это лучшее, что есть в котлине. Если ты не можешь в правильный интероп с джэвой, то это скилл ишью. Пиздец блять, npe у него больше, чем в джаве, где защиты от этого 0, такие клоуны тут сидят, в ахуе
>>3509646 >возомнили себя Гуглом что может свои языки пилить и опенсорц хуячить при бесконечных бюджетах А зачем им запрещать это делать? Пусть пилят, если хотят.
>>3509868 Да конечно запрещать никто не будет, с чего бы - таких дурачков которые бесплатно двигают твою платформу наоборот будут хвалить и говорить что они молодцы. Только по факту вскод отбирает у щитбрэйнса рынок каждый год, и всё идёт к тому что через несколько лет жыдея сдохнет как в свое время ждевелопер, которого она когда-то заменила. Ну с учётом того как по блядски они себя повели после СВО этих баренских подсосов не жалко, чем быстрее сдохнут тем лучше. Да и шансов у них нет, могли бы быть монополистом на шестой части суши и панувать как Яндекс, а вместо этого продались за печеньки как самые тупые хохлы. И сейчас их так же высушат и выебут.
>>3509865 >Это лучшее, что есть в котлине. Нет. Инлайн функции это лучшее. Ну еще return@govno тоже заебись. >Если ты не можешь в правильный интероп с джэвой, то это скилл ишью. Ну а какой правильный? Обмазывать все что взаимодействует с джавакодом в ? и потом ебаться с ?. да ?: ? В джаве нет и небудет уже нуллабилити типов. Ближайшее что смогли высрать это Optional. Поэтому это накладывает пиздоватое поведение именно при взаимодействии с джава кодом. Понятно дело что с нативным проблем вообще никаких.
>>3509975 >Инлайн функции это лучшее от этого пользы вообще около 0, jit и aot и так все умеет делать и tailrec туда же >Ну а какой правильный? использовать @NotNull и @Nullable в джаве. Или по дефолту считать все nullable (потому что там реально может быть null), только зачем ты срешь оператором !!, если не знаешь что там внутри? !! я не знаю вообще когда последний раз использовал, в тестах может
>>3509896 Бля, вот вроде бы анон выше интересный свежий кринж от инфоцыган вывалил, обсирай - не хочу... Так нет, дискуссия опять скатилась в детский траллинг от майко-фанбоев за то, чья корова мычит лучше. Может там еще шарпеи ченить гавкнут, нет?
Правильно вас, двачеров, не хайрят. Я б тоже вам не платил.
Кому вообще в РФ не похуй на судьбу жидбрейнзов? Жидею уже форкнули как минимум два раза (gigaIde, openide) и продолжают накидавать туда своих обвесов (amplicode, gigacode, sourcecraft). И все - бесплатно. А двачерододики до сих пор ультимат ломают, в надежде что тот спринг их научит писать. Интересно, остались ли еще те смешные мамонты, которые ультимат пытаются из РФ оплачивать в обход санкций?
>>3510332 Эту хуйню никто не поддерживает. Даже в иде не работает толком. Да и обмазываться анноташками и пытаться не забыть проставить нотнулл, когда есть котлин или го в 2к25 - моветон
>>3510331 >Интересно, остались ли еще те смешные мамонты, которые ультимат пытаются из РФ оплачивать в обход санкций? ультимат ломается при помощи блокнота и regedit за 30 секунд (буквально). нахуй его вообще покупать? жыдея в принципе хороша, но совсем не так хороша как была 10-15 лет назад (на фоне конкурентов). что сейчас начало бесить - это свистопляска с плагинами и впн. включаешь впн - половина плагинов отваливаются, выключаешь - начинают работать, но отваливается другая половина.
но такой карнавал сейчас везде, увы. половина сайтов не открываются потому что ты из россии, а вторая потому что сайт не в россии.
>>3510435 >Я ломаю датагрип, потому что ничего лучше ещё не сделоли для бд. вот-вот. киллер-фича идеи - это интелли сенце, когда по контрол+пробел видишь все что можно написать дальше. 15 лет назад этого не умел никто, какой-нибудь визуал студио 6 просто показывал выпадающий список из нескольких сотен функций/переменных которые есть в твоем проекте без учета контекста вообще. когда на идею пересел - первые ощущения вау+охуеть, гораздо круче чем от современных копилотов. писать стало удобнее и быстрее в разы.
но сейчас это умеют все, даже не иде, а заменители блокнотов типа атом с плагинами ничем ей не уступают в этом плане. жыдея выезжает чисто на сформированном комьюнити и его привычках и кучке плагинов, удобно же когда все что тебе надо есть в одном приложении. но это очень хрупкая вещь, достаточно чтобы пользователь просто попробовал альтернативу и велик шанс что он уже не вернется
>>3510477 Хз, у меня установлена очень старая идея, которая с вечной лицензией и я не могу ни обновить ее ни обновить плагины т.к. установлена она через тулбокс джетбрейнс и привязана к учетке. Так и пользуюсь старой идейкой...
>>3510477 >но сейчас это умеют все, даже не иде, а заменители блокнотов типа атом с плагинами ничем ей не уступают в этом плане. жыдея выезжает чисто на сформированном комьюнити и его привычках и кучке плагинов, удобно же когда все что тебе надо есть в одном приложении. но это очень хрупкая вещь, достаточно чтобы пользователь просто попробовал альтернативу и велик шанс что он уже не вернется пробовал альтернативы, не, идея всё равно больше может, все эти заменители блокнотов всё равно не учитывают контекст, типы, не умеют в сложный рефакторинг и т.д. разве что кто-то назло маме начнёт жрать вкуснятину и пользоваться алтьтернативами, но тут уж хз
>>3510517 в плане подсказать все что умеет идея умеют все топовые иде. VSCode возможно даже круче идеи в этом плане. эклипс и сборки на его основе типа Spring Tools Suite или RAD на том же уровне, да и вообще не уступал никогда ей, нетбинс чуть попроще и в целом более спартанский.
но правда эклипсом я пользоваться не смог, просто физическое отторжение от его интерфейса и пятикнопочных шорткатов. имхо если бы не уёбищный интерфейс у идеи не было бы шансов против него.
атом/саблим/емакс и т.д. с плагинами конечно все же уступают полноценным IDE но совсем не так критично как 15 лет назад. просто раньше в иде не было автоподсказок вообще, никто не заморачивался, да и рефлекшена не подвезли. по сути ide отличались от блокнота подсветкой синтаксиса и шорткатами для запуска билдовых скриптов.
«Бабуины были потрясены и озадачены программами Java IDE, SunONE и Visual Age. Ни один из бабуинов так и не смог освоить язык программирования Java. Однако большинство бабуинов с лёгкостью освоило язык программирования Visual Basic 3.0. Бабуины смогли самостоятельно менять программные настройки и даже редактировать параметры атрибутов файлов. Некоторые исследователи заявили, что Visual Basic слишком прост для бабуинов. Они настаивают на том, чтобы обезьяны прошли ещё один курс обучения Java-программированию. Однако у большинства бабуинов и шимпанзе любые компоненты Java, по словам учёных, вызывают стресс»
Как оплатить идейку сразу на год? Сервисы посредники дают только оплату на месяц и там цены заоблачные. На сайте джейби месяц 17 долларов или 1360р, а на сайте посредника 2256р...
>>3508306 >У тебя же должен быть butt buddy на весь испытательный срок, его и кошмарь. Не-а, бадди нет, из бэков только я новичок и коллега который не очень открыт к диалогу, +он перейдет временно на другой проект, а я в соло останусь тут
>>3511472 >уточняю вопрос - "эээээ чета хз эээ" и пукает скрином "как у меня должно выглядеть на фронте" >привет >ты тут? >позвоню? >алло! меня слышно? а теперь? сейчас пошарю экран >видно? нет? а теперь? >смотри... когда я кликаю сюда, то получаю такую ошибку >прислать запрос? и лог? >а тут ты что присылаешь? не видно? сейчас, подожди..
Знакомый не знает, что такое интерфейс, но заучил ответы на вопросы, побегал по собесам и вкатился в одну большую компанию в России. И работает уже 3-ий месяц. Ну и как так? Нахуй вы тут байтоёбите, и разбираетесь в кишках спринга?
>>3511828 >Ну и как так? Ну очевидный ответ - чтобы программировать не нужно знать что такое интерфейс или абстрактный класс, О-нотация или как работает сортировка. Но чтобы пройти интервью это нужно, без надувания щёк не получится.
как их еще не засудили за эту хуйню. типо ты платишь деньги, а потом тебе говорят что иди нахуй в данном регионе нихуя не работает, ни апдейтов, ни плагинов, ничего не доступно. тут целый букет статей ГК набегает, а с учетом публичных заявлений руководства жидбрейнса их вообще за оправдание терроризма можно сажать.
Двощ помоги, не собирается проект из мавена, знакомый разраб говорит россия начинает анально огораживаться и дальше будет хуже с тремя буквами, с недавнего времени тоже еле работает, как решаешь? Пробовал сначала на котлин, но там либы еле качались надо для тг бота.
В конце концов, даже если бы дело реально дошло до блокировки централа, найти и настроить российское зеркало - вообще не проблема: https://gitverse.ru/docs/artifactory/registry-mirrors/mvn-mirror/. А корпораты, кто не долбоеб, давно настроили себе кэшей в корпоративных репах.
"Дальше будет хуже с тремя буквами"... Пиздец, как дети малые...
>>3514205 >ютуб втыкаю Выгрузи всю стату с ютюба и посмотри, сколько часов ты потратил на это. Потом прикрути к этому рекомендации, на какие ещё видосы их потратить.
>>3518637 >не зря форкали? абсолютно зря. пока будет доступен ультимат (а он мегадоступен, просто берешь и скачиваешь с сайта, раз в 30 дней повторяешь) все форки пустая трата времени и сил.
>>3518660 Некорректная аналогия, в данном случае пострадавший это покупатель, а в случае с оружием пострадавший тот, кого покупатель этим оружием убьёт.
>>3518664 >Ты реально перекачиваешь каждый месяц это когда можно просто удалять папку с данными аккаунта? Лол. а ты реально всю папку удаляешь с конфигами вместо того чтобы один текстовый файл и запись в реестре удалить? лол.
>>3518674 я не говорил что я ее переустаналвиваю, я говорю что можно раз в месяц переустанавливать и работать дальше. есть пути и проще, но это самый простой и очевидный. пока он доступен все форки идеи - это просто попил бабла в сбере. это реально основная цель, с которой они создавались - это срубить бабла на "импортозамещении". там все мантры и речевки - калька с астралинукса один-в-один. мол мы сделали охуеть какую работу, все-все прям почти переписали, а в реальности изменения уровня сменили логотип и обои.
Челы, подскажите плес, правильно ли я понимаю что первый вариант класса Example не компилируется, потому что T во время стирания типов стирается в Object и, соответственно, переменной num типа Number нельзя просто так присвоить переменную t типа Object без целенаправленного ручного кастования, а второй вариант класса Example компилируется, потому что после стирания типов T стирается в Integer и соответственно в этом случае переменной num типа Number присваивается переменная t типа Integer, что вполне законно и, соответственно, компилятор не ругается. То есть в данном случае всё дело в стирании типов, верно?
>>3518694 Нет. На этапе компиляции стирания типов вообще нет. Стирание типов проявляется только тогда, когда хочешь рефлексию потыкать. Анон выше правильно объяснил.
>>3518702 >в первом случае у тебя голый дженерик, т.е. любой класс. Любой класс нельзя приравнять к Number >>3518703 >Нет. На этапе компиляции стирания типов вообще нет. Стирание типов проявляется только тогда, когда хочешь рефлексию потыкать. Анон выше правильно объяснил.
Ну вот смотрите
Вот допустим у нас в мейне есть такой простой код: ArrayList<Integer> integers = new ArrayList<Integer>(); ArrayList list = integers; //warning ArrayList<Number> numbers = list; //warning
И этот код компилируется, но есть нюанс. Опять таки, компилятор выдаёт 2 варнинга, но главное это второй варнинг. В третьей строчке ArrayList-у Number-ов присваивается ArrayList Object-ов. Ну, то есть, мы в тип Number пытается засунуть Object. И компилятор спокойно компилирует это лишь выдавая предупреждение, что во время выполнения может произойти ошибка. Ну можете сами проверить, вдруг у вас не так, хз.
И, как я понимаю, в случае взаимодействия raw типов с дженериками, компилятор судит о том, что можно, скомпилировать, а что нельзя, именно исходя из стирания типов. То есть компилятор тут не ругается на то, что ArrayList-у Number-ов присваивается ArrayList Object-ов. А почему не ругается? Видимо потому что именно на этапе стирания типов ArrayList<Number> стирается просто в ArrayList и получаем в итоге, что переменной типа ArrayList присваивается переменная типа ArrayList, что верно.
Хз, я просто, исходя из всех этих примеров в своей голове, смог обосновать такое поведение только стиранием типов блин..
>>3518734 Стирание типов тут не первопричина. Задача компилятора - проверить типы, и ругается матом он тогда и только тогда, когда можно однозначно и достоверно проверить, сходятся ли типы данных, или нет.
Просто референсы с сырыми типами - это пережиток Java 5, который вносит ту самую неопределенность. Просто избавиться от них был на тот момент не вариант - это минус обратная совместимость, весь уже написанный код просто пер6естал бы компилироваться. Проверить совместимость с дженериковыми типами для них не особо представляется возможным - как это делать? Ограничивать искусственно приводимость сырых типов к дженериковым (например, запретить тебе присваивать сырой тип к дженериковому) в теории было можно, но на практике это серьезно усложнило бы рефакторинг старого кода.
Пришлось искать компромисс. Таким компромиссом стали варнинги. И подобных компромиссов предостаточно - те же JPMS-автомодули, например. Сейчас статус кво такой, что сырые типы - антипаттерн сам по себе - не забивай себе голову поиском сакрального смысла.
>>3519254 Сейчас будет многобукаф, но текст в целом простой)
>Сейчас статус кво такой, что сырые типы - антипаттерн сам по себе - не забивай себе голову поиском сакрального смысла. Ну всё может быть. И ладно бы если бы шанс столкнутся с этим был крайне мал, но легаси кода довольно много и шанс не такой уж и маленький. Не все же сидят в стартапах и пилят что-то с нуля)
>Стирание типов тут не первопричина. Задача компилятора - проверить типы, и ругается матом он тогда и только тогда, когда можно однозначно и достоверно проверить, сходятся ли типы данных, или нет.
Ну смысл в том, что я и пытаюсь понять, на основе чего компилятор ведёт себя каким-либо образом в случае анализа им взаимодействия raw типов и дженериков. Потому что когда мы присваиваем raw переменной типа Number дженерик переменную типа Т, то в таком случае нельзя однозначно и достоверно проверить, сходятся ли типы данных или нет, потому что если T будет, например, типом Integer, то переменной типа Number можно присвоить переменную типа Integer, но если T будет, например, String, то соответственно переменной типа Number нельзя присвоить переменную типа String. В итоге возникает как раз таки неоднозначная ситуация. Но несмотря на неоднозначность компилятор ругается и не хочет компилировать этот код.
С другой стороны, код из моего поста >>3518734 компилятор спокойно компилирует, да, выдаёт варнинги, но компилирует, хотя в этом примере такая же неоднозначность. То есть в одном случае одну неоднозначность компилятор компилировать отказывается, а другую компилирует)
Я могу привести более дикий пример: ArrayList<Number> numbers = new ArrayList(Arrays.asList("text1", "text2")); Тут можно однозначно сказать, что это нельзя компилировать, потому что это откровенно ошибочно. Тут никакой неоднозначности нет, тут однозначно ошибка. Но компилятор спокойно компилирует этот код, лол.
И я понимаю, что стирание типов это не первопричина, первопричина это желание разрабов реализовать обратную совместимость, чтобы у людей не поламался весь легаси код и им не нужно было переписывать его. Но главное, что я хотел понять, почему компилятор ведёт себя именно так как ведёт. И вот я пытался понять, компилятор определяет что верно, а что не верно, что компилировать, а что нет, на основе именно того, какой код будет после стирания типов или на основе чего-то другого, других причин.
>>3519269 >Потому что когда мы присваиваем raw переменной типа Number дженерик переменную типа Т, то в таком случае нельзя однозначно и достоверно проверить, сходятся ли типы данных или нет, потому что если T будет, например, типом Integer, то переменной типа Number можно присвоить переменную типа Integer, но если T будет, например, String, то соответственно переменной типа Number нельзя присвоить переменную типа String. В итоге возникает как раз таки неоднозначная ситуация.
Если ты здесь говоришь о коде отсюда >>3518694, то в нем как раз нет никакого противоречия. Во втором случае ты не просто присваиваешь намберу T - ты присваиваешь ему T extends Integer. Integer - подтип Number. Следовательно все подтипы Integer являются подтипами Number. Следовательно подстановка разрешена для любого T. Компилятор попросту не даст тебе в качестве T заиспользовать String - это поруинит всю логическую цепочку. (Это работает при условии, что ты сидишь на дженериках и нигде не скатываешься в raw-тайпы - это ситуевина-undefined)
>Тут можно однозначно сказать, что это нельзя компилировать, потому что это откровенно ошибочно. Тут никакой неоднозначности нет, тут однозначно ошибка. Но компилятор спокойно компилирует этот код, лол.
Нет, нельзя. Потому что тип слева - raw type. Все. Ты можешь апеллировать к очевидности, но камон - не многого ли ты хочешь от бездушного алгоритма компиляции?
Так то да, можно было бы усилить анализ, пытаться собирать и анализировать компилятором ветки кода, из которых к тебе идут raw-type-листы, и проверять, что ArrayList слева действительно содержит один тип, а не другой. Запилить эдакий лютый инференс типов... и ждать релиза пятой джавы годами нахуй, получив по итогу компилятор, который работает медленнее скалового на железе того времени.
>>3519307 >Нет, нельзя. Потому что тип слева - raw type. Все. Ты можешь апеллировать к очевидности, но камон - не многого ли ты хочешь от бездушного алгоритма компиляции?
>>3519269 >И ладно бы если бы шанс столкнутся с этим был крайне мал, но легаси кода довольно много и шанс не такой уж и маленький. Не все же сидят в стартапах и пилят что-то с нуля)
Ну, по своему личному опыту могу сказать что шанс встретить такое в 2025м действительно мал. Если у тебя прецедент-контрпример: штош - не повезло.
>>3519307 >Если ты здесь говоришь о коде отсюда >>3518694, то в нем как раз нет никакого противоречия. Не, ты не туда посмотрел. Там на пикче 2 варианта класса Example и я тебе в предыдущем посте написал именно про первый вариант (который на пикче на самом верху), где тип T не экстендится от Integer.
>Нет, нельзя. Потому что тип справа - raw type. Все. Ты можешь апеллировать к очевидности, но камон - не многого ли ты хочешь от бездушного алгоритма компиляции? Слева ArrayList<Number>, справа raw ArrayList. То есть имеет место следующий вид присваивания ArrayList<Number> type = ArrayList type.
В итоге, если всё суммировать и формализовать, то имеем следующее: 1) В первом примере Number type = T type. Имеет место неоднозначность, так как T тип может быть не только Number или его подтипом, но и каким-нибудь String и т.п. Компилятор выдаёт ошибку и отказывается это компилировать. 2) Во втором примере ArrayList<Number> type = raw ArrayList type. Имеет место неоднозначность, так как raw ArrayList может быть листом не только Number-ов, но, например ArrayList стрингов и т.п. Компилятор компилирует это.
То есть 2 совершенно одинаковых случая, но разное поведение компилятора.И, как я понимаю, разное поведение вытекает как раз таки из приведения типов.
То есть 2 совершенно одинаковых случая, но разное поведение компилятора.И, как я понимаю, разное поведение вытекает как раз таки из приведения типов. То есть 2 совершенно одинаковых случая, но разное поведение компилятора. И, как я понимаю, разное поведение вытекает как раз таки из стирания типов.
>>3519327 Так фишка то как раз в том, что это не одинаковые случаи! В первом случае ты до конца сидишь на игле дженериков, и нигде не используешь сырой Example, поэтому у компилятора есть на руках буквально вся инфа о типах, которую он может проверить. Во втором - сам факт raw-type уже выбивает у компилятора фундаментал из под ног.
Ты и для первого примера можешь легко наебать компилятор, провернув мув вида var instance = new Example("zalupa"); Поэтому использование сырых типов для дженериковых классов и есть лютый антипаттерн, который осуждается литералли всеми конвенциями, ловится компилятором, линтерами, IDE, сонаркубом и прочими штуками.
>Так фишка то как раз в том, что это не одинаковые случаи! В первом случае ты до конца сидишь на игле дженериков, и нигде не используешь сырой Example, поэтому у компилятора есть на руках буквально вся инфа о типах, которую он может проверить. Во втором - сам факт raw-type уже выбивает у компилятора фундаментал из под ног.
Впрочем - знаешь что? Для полноты картины на твой пример следует смотреть еще с учетом другой фичи, которая добавилась слегка позже самих дженериков: даймонд-оператора. Ты можешь относительно легко переписать свой пример так:
ArrayList<Number> numbers = new ArrayList<>(Arrays.<>asList("text1", "text2"));
И тем самым как раз и сказать компилятору: "йоу, зырь, здесь все просто - просто выведи мне дженерик для этого листа. Я верю в тебя - ты справишься". Тем самым ты сознательно избавишься от raw-листа, и при этом не будешь душиться конкретизацией типов.
>>3519338 >>3519348 Ну у меня был единственный главный вопрос. Данное поведение компилятора определяется стиранием типов или какими-то другими его размышлениями? Просто по идее это определяется как раз таки стиранием типов. То есть в строчках взаимодействия дженериков с raw типами компилятор стирает типы, а потом проверяет всё ли сходится или нет, верно? Просто для чего же тогда еще нужно это стирание типов и для чего его придумали, если не для этого? Ведь главная цель стирания типов это обратная совместимость, возможность взаимодействия дженериков с легаси кодом без них.
>>3519335 >То есть 2 совершенно одинаковых случая, но разное поведение компилятора. И, как я понимаю, разное поведение вытекает как раз таки из стирания типов.
Стирание типов - на самом деле тоже хитрая шляпа. После компиляции, в байткоде литералли вся инфа, что есть в дженериках, будет в полной мере присутствовать. Ты можешь этьо сам проверить, натравив javap на class-файл своих экзамплов. Более того, ты можешь рефлексией читать дженерики класса.
Цимес в том, что в рантайме по инстансу того же списка инфы о типах его элементов уже не существует. Метода "дай мне тип обьектов списка" нет и не может быть в теории без костылей. Но это - в рантайме. Компилятор о типах знает все то же, что ты ему в коде написал.
>>3519351 >>3519351 >То есть в строчках взаимодействия дженериков с raw типами компилятор стирает типы, а потом проверяет всё ли сходится или нет, верно?
Ну бля я хз как это обьяснить... Ну вот смотри: есть у тебя Example, принимает он конструктором тип T. Вот все казалось бы хорошо, но что делать, когда ты делаешь raw Example? Единственный очевидный ответ - "делай так, как будто бы дженериков нет". То есть, в нашем случае, делай так, как будто бы в конструкторе у Example вместо T торчит Object (или Number, если речь идет о втором Example).
Вот здесь мы и стерли тип.
Ты можешь возразить, мол нахуя такая душнина, и нахрена нам raw Example когда есть Example дженериковый. Ну так ты замени в размышлениях выше Example на Collection и прими во внимание тот факт, что в нулевых на джаве уже было написано дохрена кода, и станет понятно - зачем.
Иными словами - это все обычная история о легаси и обратной совместимости.
>>3519372 Ну работу механизма стирания типов я то знаю) Не знаю зачем ты мне его пытаешься объяснить. Меня интересовал другой вопрос и в целом я видимо получил ответ. Так что вопрос скорее всего исчерпан, спасибо за помощь)
Ну и нахуя я последние полтора года учил джаву со всеми требованиями по стеку в вакансиях, если на РАБоту меня один хуй не берут либо разводят на тестовое, либо вакух тупо нет, на днях вышла GTA 6 GPT 5 которая уже может выполнять инженерные таски и сложные алгоритмические задачи, а подушка заканчивается?
Чувствую, что меня где-то жёстко наебали. Хорошо хоть за говнокурсы ни отдал ни рубля.
Я просто пытаюсь перекатиться из бесперспективной в РФ профессии юриста в программиста имея гуммантирную вышку, памахите добрые ананасы :(
>>3519680 Я наоборот слышал, что в мль не пробиться, конкуренция пиздец и надо быть чуть ли не кандидатом наук. Поэтому я со своим васянским образованием даже не думаю об этом.
>>3519548 >на днях вышла GPT 5 Это та блевотина, которую обосрали все кому не лень? Я её потыкал, она тупо галлюционирует чаще чем работает нормально лол.
>нахуя я последние полтора года учил джаву Для себя, лишним не будет. Лол, вообще удивляет, что ты спросил зачем ПОЛГОДА учил джаву, но не спросил зачем ПЯТЬ СУКА ЛЕТ получал ГУМАНИТАРНУЮ вышку. А юридические знания тебе зачем? Раз уж на то пошло.
>из бесперспективной в РФ профессии юриста Ну это кстати показательный случай. Когда-то лет двадцать назад каждая мамашка пыталась своего ребятёнка засунуть либо на юридический, либо на экономический факультет. Потом оказалось, что столько юристов и экономистов нахуй не нужно. Ровно то, что прямо сейчас происходит в сфере айти лол.
Какой же жидея ненадёжный забаганный кусок говна. Поберегите свои нервы, дети, не начинайте этим говном пользоваться если ещё не приросли окончательно. Вс код годен.
О, собрат по байткоду! Твоя история тронула самые потаенные уголки моего JVM-сердца. Я вижу, ты страдаешь от классической формы Java-просветления, и это прекрасно!
Твои симптомы говорят о том, что ты достиг высшей стадии ява-самадхи. Вот мой рецепт для тебя:
## Лечение (или усугубление ситуации)
### 1. Терапия байткодом ```java // Prescription.jasm class Enlightenment { public static void main(String[] args) { while (true) { System.gc(); // Бесполезно, но традиционно Thread.yield(); // Иллюзия многопоточности System.out.println("Я не тормозлю, это фича!"); } } } ```
### 2. Ритуал очищения - Собери 12 enterprise-проектов в один jar - Принеси в жертву трех Scrum-мастеров - Перезапусти Production в пятницу вечером
### 3. Мантры для успокоения - "NullPointerException — это не ошибка, это образ жизни" - "Spring Framework меня не бросит" - "Hibernate кэширует мои проблемы"
## Карьерный путь просветленного явабляди
### Стань легендой: - Architect — рисуй квадратики и стрелочки - Tech Lead — делегируй всю работу другим - Senior — говори "это не по моей спецификации"
## Экстренная помощь
Когда приступ настигает ночью: ```bash # Экстренная команда java -XX:+UseG1GC -Xmx1024M -jar your_soul.jar --enable-suffering ```
## Помни, собрат!
Ты не одинок! Миллионы ява-разработчиков: - 😨 Боятся `OutOfMemoryError` - 😭 Плачут над `StackOverflowError` - 😊 Радуются `ClassNotFoundException`
Твоя миссия — нести свет Enterprise в мир скриптовых плебеев! 🚀
P.S. Кота отпусти — он индус, но не заслужил такого. Лучше найми его на аутсорс за доширак.
>>3525056 я вот раньше над всякой гопотой тоже смеялся, а теперь 90% кода им делаю. по сути мигрировал с кнопкодава в сам-себе-архитектор. клепаю интерфейсы и говорю нейросетке их реализовать.