Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ? A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна. Сейчас все советуют Hyperskill. Более продуманный план обучения. Но, как и любой %COURSENAME% не гарантирует тебе успешного вката. Выучиться можно и самостоятельно, не отдавая свои кровные васянам-наставникам.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом? A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред. Но в последнее время увеличивается количество вакансий на удаленке в связи с ковидом. Но, возможно, как вся эта мракобесия закончится, всех обратно загонят в стойло.
Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать? A: Книги: https://libgen.is
Q: Хули все книги на английском? A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо? A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко объявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять раз скопипасти этот кусок кода и выведи в консоль". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут. A: Не все конторы дрочат на подход Яндекса который спиздил подход гугла. Но для крупных фирм знать алгоритмы маст хев уже на уровне джуна/трейни, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Что читать/смотреть, чтобы максимально быстро поднять Core Java? Предлагают перекатиться с друого языка, кодил много, проблем быть не должно. По спецификации пробежаться? Хорстманн что-то хуетой показался.
Учу жс, ужасаюсь от того, сколько там понаварочено хуйни, вникать в которую нет никакого желания. Это все действительно надо знать или можно просто писать в джава-стиле и не ебать мозги?
>>1842372 Не прям всё надо обязательно знать, но и писать как на джаве нельзя. Я бы прочитал всё, но без задрачивания, а затем бы поискал пет-проекты на js на гитхабе и посмотрел в них, что реально юзается.
Сап аноны, поступил в уник и языком выбрал Java, подскажите что нужно дрочить и как набрать знаний, чтобы на 2.5-3 курсе можно было бы устроиться на работу?
Аноны, мб кто знает какое-нибудь открытое API, возвращающее данные в стандарте ISA-95? Пытался в гугл, без адекватных результатов. Даже если нет подобного API, может есть у кого примеры в виде файлов, был бы очень благодарен
Пиздец, дико туплю. Есть один жарник, которого нет в Maven Central, хочу его добавить в проект, но чтобы и на тестовых и прод серверах все ок работало. Добавил в проект, в директорию ${project.basedir}/lib/xyita/xyita-name-14.8.8.jar, прописал билд
Поясните что делать после кора? В требованиях на вакансии пишут знать sql, а как его попробовать применить если в спринге ORM ? Что запилить на чистом sql, если знаю только кор, который нигде не применял, никогда? Что делать дальше, я не понимаю!?
>>1843987 В спринге не только ORM, но и JdbcTemplate и ещё куча всего, там чистый SQL. ORM не означает отказ от SQL, в реальных проектах их используют совместно. На чистом коре далеко не разгуляешься, учи упомянутый тобой спринг, затем пиши какой-нибудь круд-форум-борду-магазин (или что-нибудь поинтереснее, если есть фантазия).
>>1845294 Учи учи Привыкай к строгой типизации, не будешь либерахой как питонисты. Эти вообще метаются туда сюда Хочу стринг, а потом хочу стринг в инт или в байт
>>1845485 Так в чем минусы синтаксиса джавы? Мне просто интересно, я других языков то и не видел почти. У меня пока бомбит только от генериков в сложных случаях применения(рефлексия, каррирование), голову просто сломишь. Но не уверен, что это минус, возможно для меня, как для ньюфага сложно. Ну и большое количество бойлерплейта для самой маленькой задачи просто убедило писать его через генерацию в идее. Писать джава-код в блокноте это мучение. Ну и половина тем в курсе по джава кору это преодоление этой самой статической типизации.
Аноны, молю, выручайте. Есть один XML файл, есть один POJO класс, сгенеренный по XSD. Хочу данные с XML скастить в имеющийся класс и все заебись, но только при работе с локальным файлом. Как только я пытаюсь с интернетов скочать тот же самый файл и прогнать через JAXB в нужный мне класс – ХУЙ. Все поля null. Почему так нахуй?
>>1842154 (OP) Есть опенсорс проекты на Spring Boot, чтобы увидеть как это должно выглядеть? Гугл дает конечно, но там дрисня индусская, реальные проекты есть? Или все написано сейчас на джеэсовских фреймворках без капли джавы
>>1845835 >Так в чем минусы синтаксиса джавы? Мне просто интересно, я других языков то и не видел почти. Ты сам знаешь: >Ну и большое количество бойлерплейта для самой маленькой задачи просто убедило писать его через генерацию в идее. Писать джава-код в блокноте это мучение.
>У меня пока бомбит только от генериков в сложных случаях применения(рефлексия, каррирование), голову просто сломишь. Но не уверен, что это минус, возможно для меня, как для ньюфага сложно. Для ньюфага дженерики и рефлексия нахуй не нужны.
>>1845835 Недостатки джавы являются продолжением достоинств.
Джава - простой язык, совершенно лишённый двусмысленности. Опытный программист читает его просто боковым зрением на автопилоте. Это вообще единственный такой язык, в этом и причина популярности.
Несравнимая с другими языками инструментальная поддержка - тоже по этой причине.
Оборотная сторона - многословность и некоторая дубовость. Тяжело писать сложный код без IDE. Зато с IDE писать - одно удовольствие.
Если бы this-типы сделали, было бы вообще охуенно.
Мне после 8 лет жабы одно удовольствие писать микросервисы на го. И 1 сервис пришлось пилить на java, мне на контрасте конечно бойлерплейтом по губам java сервис провел
>>1846812 >Джава - простой язык, совершенно лишённый двусмысленности. Можно примеры о какой двусмысленности/сложности других популярных языков идет речь?
Дублирую тут, че от меня хотят? >Отправил резюме на саппорта, сделал тестовое (чисто саппорт, ни веба, нихуя такого не было), потом было интервью, спросили "крч а если ты сисодмен, сможешь доп задания по-техничней сделать?" Ну я прикинул писю к носу, ни суть, делаю. Все остальное сделал, а вот этот момент смутил, хули от меня хотят? Поднять локально сервер (чек, на экспрессе), парсить json пост запросы по рутам(чек, express.json), а потом вот эта. Печатать на экран в смысле? Вывод в консоли? Постман ответ получает, это сделал, или страничку хтмл генерить с ответом что-ли? Отвечать в них? В смысле мне надо рядом ок вывести, или хранить и апдейтить их, добавляя поле посткода?
>>1846812 >Зато с IDE писать - одно удовольствие И даже когда надо многоступенчатую проверку на null расписать? Или телескопический конструктор. Или какое-нибудь collect(Collectors.groupingBy(
Есть файл неограниченного размера с некоторым текстом. Требуется отсортировать текст по словам в алфавитном порядке и вывести количество вхождений в текст для каждого слова. У вас десять минут на обдумывание.
>>1842154 (OP) Джавараш такое себе... Там наилегчайшие темы разбираются по несколько уроков. В то время, пока вы в джавараше изучали консольный вывод на экран, вы бы уже могли изучать хотя бы те же переменные, условия, если повезёт - циклы
>>1847034 Это когда в дженериках можно ссылаться на тип данного класса по специальному символу, типа This. В простых случаях это не нужно, а в сложных - охуенная фича была бы. Пример приводить лень. Это гуглится.
Чистый спринг от спринг бута отличается только необходимостью вручную прописывать веё зависимости вместо стартерпаков и конфигурированием через xml? Есть ли профит в применении спринга без бута?
>>1847112 Вообще всё не так. 1. В буте ты всегда можешь открыть пом.хмл и дописать зависимости, просто в буте они заранее подобраны с нужными версиями + юзается плагин spring-boot-maven-plugin для поиска точки входа и упаковки в жарник/варник. Без бута это всё придутся делать руками. 2. У бута куча автоконфигураций, которые без него надо настраивать вручную. 3. У бута есть встроенный контейнер сервлетов, по умолчанию Tomcat, и для запуска не нужно тащить отдельно сервер приложений и деплоить варник. Хотя можно и вручную заэмбеддить томкат в обычном спринге, это достаточно больно. 4. Можно и обычный спринг конфигурировать без xml, аннотации там тоже поддерживаются.
Профит не брать бут может быть, когда у тебя большой, где очень много всего кастомизируется, и бут там только помешает. Бут скорее ориентирован на микросервисы, чем на подобное.
>где очень много всего кастомизируется, и бут там только помешает Чем помешает? Скорее, там не будет пользы от автоконфигов, они будут отключены (зачастую опять же автоматически). Но останется профит от того же встроенного сервера, от каких-то еще дополнительных плюшек типа актуатора. Вообще часто слышу мантру "бут ориентирован на микросервисы", но не понимаю, почему в монолите смысл бута должен куда-то исчезнуть.
>>1847130 Ну собственно бут и нужен был, чтобы легко ебануть микросервис, с чем в общем-то бут справляется, хоть и все равно с некоторым бойлерплейтом. Но это конечно смотря с чем сравнить. Без бута, это уже микросервисом назвать язык не поворачивается.
>>1847150 Просто когда не было спринг бут, на спринге микросервис сделать было не дело 5 минут. Так-то почему бы и не заюзать его в монолите. Просто до того как микросервисы стали модны, никакого же бута не было, а спринг фреймворк вполне себе был состоявшимся(3 кажется версии уже)
>>1847150 > Сколько см? "Большой" монолит - это просто противопоставление "маленькому" микросервису. Грань между монолитом и микросервисом - классический срач, так что комментировать не стану.
> Чем помешает? Скорее, там не будет пользы от автоконфигов, они будут отключены (зачастую опять же автоматически). Но останется профит от того же встроенного сервера, от каких-то еще дополнительных плюшек типа актуатора. В монолите редко один жарник со встроенным сервером, обычно там большой EE-сервер приложений с соответствующими приблудами вроде JMS и JNDI. А если ещё и аатоконфигурацию отключить, от бута почти ничего и не остаётся.
Тащемта спринг бут это набор конфигураций spring framework, если нужен актуатор и томкат для монолита, а конфиги не нужны, ну хули законом не запрещено
>>1847159 Вот ты сначала сам соглашаешься, что грань размыта, а потом рисуешь картину мира, где есть либо монструозное легаси-EE, либо микро. Ну ничего же нам не мешает сделать монолит (или не-такой-уж-микро сервис) в виде джарника, если мы считаем, что так нужно.
>>1847167 Конечно, размыта, это просто два полюса. Чем монструознее легаси-ЕЕ - тем оно меньше располагает к использованию boot. Там часто и спринг до пятого просто так не обновишь, что там бут.
>>1847076 Тащемта, подход го - это unchecked expections, потому что ты никогда не знаешь, что тебе там прилетит. И это кстати очень больно, потому что в го нет даже аннотаций нормальных и ты, заложившись на то, что тебе приходит какой-нибудь sql.ErrNoRows можешь внезапно на проде обнаружить, что тебе начало приходить что-то другое из-за того, что на промежуточном слое кто-то начал врапать ошибку. И никакие линтеры (хотя бы) такое не отловят =/ В этом, собственно, и минус UncheckedExpections - хуй его знает, что там вообще вылетает, ты никогда не уверен на 100%, код становится менее надёжным, нарушается принцип "собралось - значит работает". У checked exceptions есть только один минус (который и определил нелюбовь к ним, ну, помимо говнокодеров, которым чем проще - тем лучше), это неудобство (а точнее - невозможность) в использовании функциональщины и анонимок с таким подходом.
Истина имхо где-то посередине: ошибки однозначно должны выводиться из сигнатур функций, чтобы можно было компайл-тайм выводить типы и проверять валидность кода и проверок. Но при этом это не должно требовать описаний всех возможных ситуаций при объявлении функций, скорее компилятор должен сам на этапе написания fooA(fooB()) вывести, какая из функций какую вызывает, где и как врапаются ошибки и что вообще может из этого выйти в итоге.
Ну и обработка ещё, ошибки неудобно врапать каждый раз, исключения неудобно отлавливать в случае сложного кода.
>>1847174 >У checked exceptions есть только один минус, это неудобство в использовании функциональщины Не, и до функциональщины мало кого радовала необходимость постоянно либо оборачивать, либо прописывать в throws какой-нибудь SQLException. checked exceptions имхо были бы ок, если бы они были только механизмом, который я могу сам применить для своих кастомных исключений. Тогда я это буду делать только там, где действительно мне нужна осмысленная обработка разных ситуаций. По факту же мы имеем стандартную либу, из которой везде торчать всякие IOException, с которыми я в 90% ничего все равно не могу ничего сделать, кроме как сломаться (пробросить выше), но возиться приходится.
>>1847209 >>1847213 У меня друг пошел на эти курсы, ну где то недели 2-3 назад, говорит вот все хорошо, типа общался с выпускниками, все довольны, сидят лутают 300кк/нс. Вот я и начал задумываться, может и вправду все так хорошо А если не по курсам то как? Что нужно учить чтобы взяли работать за еду хотя бы
Перевели на другой проект, а там: > мы не стали использовать Hibernate и Spring Data потому что это было бы оверхедом И теперь тут куча бойлерпрейта для работы с БД, при чём большая часть запросов — простые и Spring Data мог бы делать их из коробки в одну строку. А ещё по классу для каждой сущности для конвертации row из БД в объект. Они ебанутые или да?
>>1847334 Почему? ORM позволяет тебе сэкономить кучу времени, а Spring Data во многих случаях вообще убирает код в слое работы с БД. При этом всегда есть опция использовать нативные запросы, если нужно делать какой-то дохуя сложный запрос.
>>1847111 > а в сложных - охуенная фича была бы Это каких случаях? Когда часто-часто переименовываешь класс вручную без использования переименования в IDE? Да, сложный случай. Я бы даже сказал - тяжёлый.
>>1847414 Универсальный фреймворк для джавы, в нём есть почти всё - веб, очереди, SOAP, несколько способов работы с БД и другое. В основе своей спринг - это просто DI-контейнер, а всё остальное крутится вокруг него.
Из комментариев: Unfortunately, self-types are very hard to implement in the language without crippling the rest of the type system significantly
Можешь ещё погуглить прочее подобное, если есть желание.
Я вообще упомянул об этом просто потому, что несколько дней назад конкретно ёбся с задачей, где они бы не помешали. Но, в итоге, обошёлся, естественно.
>>1847403 >джава кор А что такое кор? Ну я вот более-менее вдуплил что такое ооп, дженерики, коллекции, стрим апи, потыкал в concurrency. Это и есть кор?
Вопрос теперь как переходить к написанию хоть какого-нибудь бекенда. Насколько я понимаю, нужно вкатиться в базы данных немного, а потом засесть плотно за spring?
>>1847602 > Это и есть кор? Да. Кор - это обычная джава без фреймворков и сторонник либ, когда тупо качаешь JDK и учишься им пользоваться по книжке типа Хорстманна.
> Насколько я понимаю, нужно вкатиться в базы данных немного, а потом засесть плотно за spring? Да, сначала выучи SQL на уровне create table/select/insert/update/delete и как подключаться к СУБД через JDBC, затем можно спринг.
>>1847633 Посмотри как енумы под капотом устроены, скорее всего никакие извращения с системой типов там не нужны. В AssertJ вроде тоже что-то подобное есть.
Я тогда же посмотрел исходник Enum, но, решил, что к моему случаю это не имеет отношения. Я же говорю - отвык, и просто голова не работает, смотришь в книгу - видишь фигу. А в примере с билдером сработало.
>>1847207 Учусь сейчас у них. Осваиваю javacore, сдал первый модуль. Ничего хорошего и плохого сказать не могу. У меня деньги есть и мне просто интересно, что будет из этого я еще не знаю.
Нужно задать себе вопрос - в чём тут наёбка? То, что наёбка есть - не подлежит сомнению, мы же в России. "Не наебёшь - не проживёшь" - это должно быть написано на каждой рублёвой банкноте, в том месте, где на долларах написано "In God we trust".
Так вот, я думаю, что наёбка тут в том, что они _не_ заинтересованы найти тебе действительно высокооплачваемую работу. Потому, что это сложно. И потому, что вас дохуя, а такой работы мало.
И тебя просто продадут рабом на галеру. За 60 т.р. на руки, например. Из которых ты будешь 2 года отдавать им по 10 т.р. каждый месяц (17%). И это для _них_ весьма неплохо, чтоб ты знал. Даже охуительно, я бы сказал.
Короче - деньги люди делают с оборота, а не выпуская штучных охуенных специалистов.
>>1848283 Охуеть 240 т.р. при минимальных раскладах, а так за 300 перевалит с учётом роста зарплаты, да за такие деньги можно купить пиздатые курсы, бумажную литературу, оплатить хз сколько часов менторства боевого синьера ещё и сдача на пиво со шлюхой останется.
>>1848396 Петпроект ты пилишь для себя, а не для работодателя. Суть петпроекта в том, чтобы научиться минимально делать задачи, похожие на рабочие. Его почти никогда не смотрят, максимум о нём нужно будет немного рассказать.
У кого воображение развито, помогите. Есть простая соц сеточка ака твитор и есть докер, надо с этого всего придумать тему для диплома на магистра. Чтоб какая-то новизна что-то интересное было в названии.
А по факту - планирую лить воду и обсасывать докер пол диплома на самом базовом уровне, но вот название нужно какое-то интересное, заковыристое, чтоб не придраться
>>1848554 Там джава создаст больше проблем, чем решит. В таких проектах обычно нужно по-быстрому наклепать скрипты (чему динамическая типизация способствует больше), залить на дешёвый хостинг (которых для джавы очень мало) и забыть. Больших требований к поддерживаемости и стабильности нет, есть куча специфичных CMS для максимально быстрого клепания. В джаве же придётся самому думать об архитектуре, что занимает время, что заказчику не очень нравится.
>>1848559 Можно что-нибудь около-девопсное высрать, наверняка дипломов про это писали мало. Типа "Автоматизация этапов разработки ПО для уменьшения time-to-market" и налить воды про CI/CD.
>>1848559 > сап двач, есть мемуары брежнева и есть гостевуха.... 1. Выкидываешь соц-сетку. 2. Выкидываешь докер 3. Достаёшь кубер 4. Берёшь любой контроллер кубера и пишешь диплом по нему. Можешь свой реалиовать и описать чем ом лучше стокового. https://github.com/kubernetes/community/blob/8decfe4/contributors/devel/controllers.md 5. Достаёшь обратно свою соц.сеть и масштабируешь её до тех размеров когда твой контроллер начинает иметь смысл (или деплоишь её туда где новый контроллер ведёт себя лучше старого).
> и обсасывать докер пол диплома на самом базовом уровне На базовом - это каком? Будешь man 7 namespaces перепечатывать и устройство overlayfs описывать
>>1848562 Вот это прям ОХУЕННО, СПАСИБО ОГРОМНОЕ, я именно это и хотел, но сформулировать никак не мог, а это просто идеальное попадание, вода вода вода и ничего больше, даже делать ничего не надо и придраться нельзя
>>1849188 >Ты тратишь деньги, чтобы зарабатывать деньги. >Это так не работает. Именно так это и работает. Вначале всегда нужны инвестиции, это могут быть инвестиции от государства в виде бесплатного образования, от компании в виде стажировки, от банка в виде кредита на образование, от мамы в виде бесплатного жилья и кормежки, пока корзиночка учится по тьюториалам из интернета. Инвестиции бывают и неудачные - не вкатился. А бывают и удачные - вкатился и вернул кредит банку, вышел на работу в компанию и херачишь фичи.
>>1849577 У тебя везде инвестиции времени, а не денег. Если есть какой-то промысел, который тебе может в перспективе принести профит - значит о нём с вероятностью 99% уже знают до тебя. Ты уже должен задать себе вопрос, "а чем я лучше других?" На примере вката, ты думаешь мало людей знает про айти, а шутеечки про 300к малоизвестны за пределами 2.5 тредов? Тогда почему спрос не падает? Неужели курсов на всех не хватает? Если бы это было так легко, отдал котлету (или взял в кредит), походил на курсы и вот ты уже рубишь капусту на удалёночке, то на завод бы никто не ходил.
>>1849715 Непосредствеено - нельзя, разве что через сишный интерфейс, но это уже не джава. Ещё, наверное, что-то такое на уровне Unsafe можно сделать. Или поискать баги в исходниках компилятора/jvm, они всё-таки написаны на небезопасном языке, а люди не идеальны.
>>1849721 >У тебя везде инвестиции времени, а не денег. Я смотрю ты внимательно читаешь >инвестиции от государства в виде бесплатного образования, от компании в виде стажировки, от банка в виде кредита на образование
>Ты уже должен задать себе вопрос, "а чем я лучше других?" На примере вката, ты думаешь мало людей знает про айти, а шутеечки про 300к малоизвестны за пределами 2.5 тредов? Тогда почему спрос не падает? Неужели курсов на всех не хватает? >Если бы это было так легко, отдал котлету (или взял в кредит), походил на курсы и вот ты уже рубишь капусту на удалёночке, то на завод бы никто не ходил. То что ты описал это рискованность инвестиций и несут этот риск оба, инвестор и "предприниматель" вкатун. Государство останется без специалиста, компания получит дебила, а не сотрудника и т.д. Вкатун останется без работы. Более высокий риск, предполагает и более высокую прибыль, отсюда и цифры про которые говорит >>1848283 Потому как они своих денег могут и не получить если ошиблись с инвестициями. Но в любом случае инвестор инвестирует свои активы деньги или то, что может быть выражено в деньгах. А предприниматель инвестирует, то что в экономике называется предпринимательские способности. И как бы да - не у всех они есть, не всем везет.
Компилятор пашет, вроде как надо(jdk 15). Но вот запустить скомпилированный код - не получается. Вылазит ошибка. А я хер знает что с ней делать. Да, и я пока что чайник. Какие могут быть причины такого поведения. Пишу в той интеледженси idea.
>>1850274 Этот "кабанчик" и есть инвестор. Они тебя учат и ищут тебе работу. И берут на себя риск, что если ты окажешься тупой и необучаемый они останутся без денег.
>>1850534 я очень понимаю условия, в чем суть договора с ними? если мне например через месяц надоест, и я забью? я ведь не трудоустроился, значит ничего им не должен? а если я забью в самом конце обучения, за день до выпуска?
>В итоге я получил 11 офферов за полторы недели и успешно устроился в самое приятное место >Cобесы - тут весело, ты просто выкладываешь резюме и тебе начинают звонить и знакомиться легионы женщин, только успевай записывать когда, с кем и на что договорился - буквально за два дня у меня были расписаны 2 недели по 4-5 собесов в день >Место работы: Epam Systems Это реально самое приятное место работы, в которое стремятся все java-кодеры?
Анон, помогут ли книги по компутер.сайнс для обучения в джаве? Изучаю кор и в принципе нормально все было по примитивам. Теперь ООП и очень туго идет в голову, просто геттере, хаш код в пизду все. ничего не понятна. Или лучше купить пару книг по джаве и не выебываться. Типа хеадферстджава, хорстманна, шилда? Решаю лабы из шапки кодингбат но тоже туго. Занимаюсь дней 30, по паре часов в раб.день(очень мало) или в выхи по часов 5.
>>1850502 Да в пизду это всё. Лучше книжку почитать. Рикпил ебло 50 минут затирает про гит что можно прочитать за 5 минут, сейчас вообще про кокаин пиздит. Ну или хотя бы не русских дебилов смотреть, которые не могут в преподавание.
>>1850785 Так я и не смотрю. Промотал все эти пуки, немного за версии послушал да за мавен. После крестов всё таким знакомым кажется, хоть сейчас идти работать.
>>1850785 >они 20 минут изучают что хранится внутри папки .git Кстати весьма полезная вещь. Чтобы ты понимал как все устроено и не паниковал, если merge rebase пошел по бороде. Чтобы ты понимал, как восстановить исходное состояние знание как оно внутри работает - очень полезно.
>>1850576 Договора нет в открытом доступе, но думаю что после увольнения по собственному, на тебя повесят долг или обяжут самому искать работу. Ну и зарплату обещают от 100к >В Москве мы гарантируем тебе первую зарплату от 100 000 рублей. что достаточно амбициозно, хотя тот же Дойче Банк, на своей стажировке платил такие деньги.
По косвенным признакам, мне кажется, что они сделали ставку на качество. Отбирают способных, реально их учат, работают с работодателями учат тому, что востребовано, обещают прокачивать отсутствующие скилы - так чтобы выхлоп был близок к ста процентам.
>>1850806 А потом, такие дебилы приходят к таким как я и хнычут - я что-то смержила и все пропало.
У нас в команде, был один такой "синьор", у которого по собственной тупости постоянно слетали настройки гита и имя пользователя вместо мыла, слетало на логин и гит сервер реджектил его пуши. Этот дебыч приходил ко мне 4 раза, с одним и тем же вопросом - почему не могу запушить. Потом все таки понял, что это за ошибка и как ее лечить. он правда всего пол года продержался у нас
>>1850828 >я что-то смержила и все пропало. При обычной работе с гитом таких ситуаций не может возникнуть. Проблемы начинаются, когда надо заребейзить некоторые коммиты в ветке, которая уже смержена. Плюс в идее достаточно удобный фасад для работы с гитом.
>>1850898 → Пидр>>1850828 >А потом, такие дебилы приходят к таким как я и хнычут - я что-то смержила и все пропало. Я обычно проект бэкаплю в папочку перед тем как мерджить и ребейзить
>>1850952 Тебе кофе налили, за комп посадили? Ну а хули тебе ещё надо? А так от конкретного Мухосранска зависит, где-то есть вакансии за 25, где-то в столицах 80 мало. Смотри по рынку у себя.
>>1850996 Spring Boot и Angular. Работаю с данными, рассчитываю их, перегоняю из БД на фронт и обратно, на фронте строю таблицы и графики. Ну и так как на проекте я один, то делаю ещё всякого по немногу. Вообще работы не очень много. Работаю чуть больше года. С удовольствием бы уволился и занялся бы только Джавой, но, как мне кажется, я недостаточно знаю. Так что сейчас потихоньку заполнил пробелы в знаниях. >>1850997 Я был тупой и боялся, что вообще не найду работу и ещё дико комплексовал лол из-за её отсутствия, так что согласился на то, что предложили. На собеседовании сказал, что хватит 20-25к, вот так и вышло. Потом я узнал, что у других работников так же примерно. Вообще в этой компании немного работников, и часть из них сегодняшние или вчерашние студенты, которым платят немного, но особо ничего и не ждут.
>>1851006 Не понимаю, когда называют сумму ниже рынка. Если ты совсем чмоня, то согласие работать за еду тебе не поможет, т.к. возня с тобой будет стоить дороже, а если соответствуешь требованиям, то добровольно лишаешь себя денег.
>>1851014 Ну сейчас то я понимаю, что поступил неправильно. Тогда у меня не было никакого опыта, так что я согласился на первое попавшиеся место и первое время думал, что это идеал. Сейчас я подкорректировал свои желания в услових работы и в направлении, которым хочу заниматься. Так что когда буду искать новое место, буду умнее
>>1850981 Переезжать из Мухосранска в Москву - быть еще большим дауном. По 3 часа на работу добираться, жить по-соседству с таджиками в уютной студии в 25-этажке за охуевшие деньги, быть бараном в загоне в метро и тд и тп. Я когда приезжаю в города миллионники я охуеваю от того как себя начинаешь ощущать бараном в стаде. Особенно сейчас с короной всех в стойло загнали, я смотрю и жую попкорн, у меня из окна вид на лес, чистый воздух и город за час пешком можно обойти. А через год работы можно и на удаленку уйти с нормальной зарплатой, так что не все однозначно, более того некоторые учат разговорный инглиш и на апворк. Если переезжать, то покупать на авито трактор и ехать в сторону Европы.
Анончики, помогите ньюфагу, плиз. Прохожу один курс, никак не соображу, есть один код, вычисление возраста в минутах секундах etс. Поле years объявлено как int. А результат получается long. Как можно заставить его считать правильно, если не пользоваться форсированным приведением к long? Говорят вот, используй спецификатор L у литерала, а я пока никак не воткну в эту терминологию. Так понял, что надо L в конце добавить. Но он все равно некорректно считает. ЧЯДНТ? Так работает, но так неправильно: public int getYears() {return years;} public long getMilliSeconds() {return (long) years 365 24 60 60 1000;} Так не работает: public int getYears() {return years;} public long getMilliSeconds() {return years 365 24 60 60 1000L;}
Существует возможность классы и методы помечать final, вопрос нафига? Разжевывать что будет если так сделать не надо, я в проде никогда такого не видел и сейчас внезапно вспомнил о такой возможности.
>>1850834 Всегда что-то может пойти не так, например при ребейзе по ошибке нажал accept theirs и все, твои изменения надо доставать из detached head. рибейз вообще зло и по хорошему его не надо использовать
>>1850914 >Пидр Мог бы и не представляться, это и так очевидно.
>Я обычно проект бэкаплю в папочку перед тем как мерджить и ребейзить Ему дали навороченную систему, которая может разруливать кучу разных конфликтных ситуаций, где информация не удаляется бесследно и можно ее восстановить. Нет блять, СЛОЖНА!!11 Я ЛУЧШЕ В ПАПОЧКУ ЗАБЕКАПЛЮ!!!11 Сказочный долбоёб!
>>1851227 Ну есть какие-то гении которые вообще все файнал делают что не экстендится, типа так "безопаснее", на самом деле хз, файнал вообще на мой взгляд логично в каком-то мусорном коде типа последнего наследования класса, чтобы когда ты и так говна наворотил еще сверху никто бы не наворотил
>>1850828 В гите же есть возможность откатить коммит, если уж облажался. Просто помню момент когда чувак изменил расширение файла через гит, вот тогда куча проблем было
>>1851199 Тут millis изначально long, а в моем примере было намеренно years везде int, чтобы попрактиковать это самое приведение, и условием было то, что тип поля years на long менять нельзя. Чтобы вынудить этот L подписывать.. >>1851200 Хм, действительно! Попробую учесть, спасибо :)
>>1851170 На винде сидят. Или на маке. На линуксе сидят серверы.
Но, тут есть нюанс - 10-я винда - зло. Я сижу на 7-й, и куда деваться дальше - непонятно. Десктопный мак - дорого, хакинтош - геморройно, может в любой момент превратиться в тыкву. Линукс на десктопе не возбуждает совершенно.
>>1851227 Так делают, чтобы строго запретить наследование. Это редкая вещь, и в каждом случае - свои причины. Начни с того, что поинтересуйся, почему String сделали final.
>>1851170 Долго юзал 7, несколько месяцев назад пересилил себя и поставил 10 с мыслью, что хватит быть ретроградом и будущее неизбежно, и буквально неделю назад вернулся обратно на 7, устав терпеть тормоза и глюки десятки, которая типа самая быстрая и стабильная. Теперь понимаю тех, кто до последнего сидел на XP. Думаю поставить линукс в дуалбут, раньше иногда сидел на нём. Ещё надеюсь, что 10 когда-нибудь станет юзабельнее, хотя за 5 лет так и не стала. На работе винда, на серверах, скорее всего, тоже (подробностей не знаю, у нас там очень специфичные dll-ки и драйвера юзаются).
>>1851469 Это когда программа уже после компиляции может получить информацию о типах, работать с ними, генерировать код и т.д. Через рефлексию можно вызвать заранее неизвестный метод, имея, например, только его название в виде строки, ещё можно получить список методов/полей/конструкторов/аннотаций какого-то класса, создавать объекты заранее неизвестных классов и другое. Используется обычно только в фреймворках и либах. Например, если какой-нибудь фреймворк должен создать объекты классов и вызвать их методы по определённым правилам, а про эти классы он знает только то, что они лежат в какой-то папке, он это сделает через рефлексию и класслоадеры. Или, например, можно восстановить реальный тип объекта, имея только ссылку Object.
>>1851469 Reflection - это динамика в статическом языке. Например, можно создать объект из JSON-строки или подобного строкового описания объекта, зная его класс.
Чтобы не слишком заебаться при этом, можно использовать BeanUtils, PropertyUtils из Apache Commons.
>>1851416 >10-я винда - зло. Дебилушка, там WSL, ставь любую линукс хуету и не парься. А Маке переоцененная хуета.
Вот ты прикола ради загугли десктопные клиенты для постгреса, это или ява мультплатформа будет или веб хуета. И только под винду есть нормальные, полнофункциональные клиенты.
>>1851484 Или, например, можно сгенерировать описание TypeScript интерфейса из Java класса - перебрать все методы, рассмотреть и преобразовать названия их типов и вывести в файл .ts, и затем работать с этим в коде веб-фронтенда.
В реальных проектах final обычно используют там где нужно гарантировать безопасность более строже чем просто конвенцией. Те же библиотеки шифрования и другие секьюрити либы довольно часто используют final на основных классах и методах.
>>1850952 Ну впервые мне без опыта и знаний в ДС предложил 70к гросс (ну бля без 13% мистеру пыне). Но я туда не пошел, тк еще учусь в вузе, сейчас на более сложную позицию в прошлый раз требований была только java, сейчас Spring, Git, Jira, хуира и тд иду на собес на след. неделе, хз сколько предложат, если меньше 70 то хуева, зато в 20 м от дома (э то к слову о том как в ДС хуева от таджиков ехать 3 часа до работы по словам другого анона)
>>1850952 "Джун" это очень сильно размытый термин. Видел вакансии на ждуна, где требуют больше года опыта, но и зарплата под 120к. Даунич без опыта это вроде трейни называется. Подход везде тоже разный, где-то будут учить всей хуйне, где-то вот как меня например сразу бросят в дело и крутись как хочешь. Я думаю, косарь грина на руки +- нормальная цифра в дс, если ты способен за пару часов написать типичный круд на спринге и в целом обучаем.
Анончики, как вкатиться в Spring. Сейчас вкатываюсь в Java, имею самое не плохое знание плюсов . Вот думаю учить Spring, но пугает его размер. Параллельно смотрю в сторону Android. Вопрос "Что перспективней, и если Spring, то как лучше вкатиться?"
>>1852257 Говорят, что андроид. По спрингу - сразу учи Spring Boot там все очень гладко накатывается все, просто попытайся сделать свой проект. Сначала начнешь с Spring Data, соединишь с базой, потом MVC, чтобы все отобразить, Security, чтобы можно было аутентифицироваться у тебя на сайте и так далее
>>1852257 Если ты собираешься изучать не ВЕСЬ спринг, а только тот, который реально понадобится (core/web/data/boot), то там и учить почти нечего, за пару недель осилишь, раз уж после плюсов. А всё остальное опционально и используется в зависимости от потребностей проекта. Насколько перспективен андроид, сказать не могу, у меня отвращение к его API, а спринг вполне перспективен.
>>1852273 Ну смотри, я писал проект с нулевым знанием в команде. И начал просто с гайда на spring.io - затем что-то решали добавить сразу гуглишь как это сделать - очень много видосов от индусов, но куда деваться. Кроме видосов есть статьи и, конечно, самое лучшее - stackoverflow. Просто придумай что тебе надо запилить и гугли это. Например, мне надо было добавить файловую систему, чтобы можно было агружать и просматривать картинки - нашел статью, получил минимальные знания, подробнее - гуглишь, находишь на stackoverflow, вообще по большей части гугл находил мне baeldung, а там просто несколько вариантов решения. Или мне, например, надо было узнать как сделать нормальные фильтры поиска - тут пришлось писать в телеграм-чатик для разработчиков спринга, там несколько сеньоров подробно все разъяснили, объяснили best practice и тд. В общем трудовой процесс у меня выглядел так, ничего сложного, на самом деле. Потом сам начинаешь искать дополнительные библиотеки/фреймворки по своей нужде, там примеры и документация, но это уже не совсем спринг
>>1852245 Что есть "типичный круд на спринге"? Сколько сущностей? Связи? Включает ли это в себя веб-интерфейс? Можно где-то посмотреть приблизительный пример того, что надо написать "за пару часов"?
>>1852301 Вот дали тебе комп без нихуя. Голая ось и тырнет. И ты за пару часов: - Накатил жабу, мавен, постгрес и всю сопутствующую хуйню (ну или ладно, предположим, что всё это есть, ибо к программированию установка софта отношения имеет мало) - Создал проект на спринг буте, у которого есть набор бизнес-сущностей, Entity для работы с базой, DTO для REST API (и сам рест апи, разумеется, тоже создан). - Нахуярил простую веб-морду, чтобы Мариванна из бухгалтерии могла выполнять типичные CRUD-операции (Create-Read-Update-Delete).
>>1842154 (OP) 7 лет после универа работаю в бодишопе, причём не в том, где работа в бешеном темпе дабы успеть наобещанное, а наоборот: в таком, где темп разработки очень медленный, большую часть времени делать совершенно нечего, инициативность не поддерживается и не поощряется, джава 8 наступила 2 года назад, об 11 ещё не слышали, о спринге тоже, главный билд тул - ант, новая библиотечка апрувится пол года прежде чем применяться. Кто сталкивался с такими - знает, остальным - горячо не рекомендую.
В свободное время я книжки читаю, стараюсь пробовать всякие современные технологии (докер, к8с, грэдл, кафка, носкл базы, спринг5 опять же), пробую их как-то применять в редких простеньких пет проджектах, но на работе они никому нахуй не упёрлись и поэтому реального опыта продакшн применения всей перечисленной хуйни у меня нет.
Несмотря на это я всё же решил сменить работу, пока не стало окончательно поздно. Сами понимаете какие у меня проблемы с резюме, и дальше будет только хуже.
Вопрос такой: на какой примерно уровень мне по вашему ориентироваться? Не на джуна точно, потому что джун с 7 годами опыта не пройдёт даже через hr-фильтр. Мидл? Или для мидла 7 лет тоже многовато? Я понимаю что все эти уровни не годами меряются и вообще возможно не нужны, но к сожалению реальность такова, что надо выбрать куда метить иначе шанс быть отсеянным hr-ом увеличивается.
Чё думаете вообще про ситуацию? Я мудак? Какие-то советы может будут?
Кто-то скажет что использование анта это как ни крути проёб дев тимы, но будет не прав. В нашем случае весь существующий недоCI поддерживает только ант и мавен, при этом мавен централ заблокирован, какой-нибудь мавен плагин хуй апрувнут, корпоративный мавен репозиторий - огромная неконсистентная помойка. В таких условиях ант - адекватная вынужденная мера.
Второй момент: ничего не сказал про frontend часть. На работе GWT, который изучать - только голову почём зря забивать. Благо пока есть кому в этом говне ковыряться кроме меня. Вне работы пол курса реакта на курсере и знание jquery (который в 2020 нахуй никому не нужен, как я понимаю). Конечно можно ещё поизучать react/angular/vue но опять же вопрос: стоит ли пытаться фокусироваться на фронт технологиях и переквалифицироваться в фулстэка если реального опыта работы с фронтом на работе не было и не предвидится?
>>1852329 Ну и ещё в целом за собой замечаю что кодить мне нравится меньше нежели выстраивать все процессы вокруг кода. То есть я бы с бОльшим удовольствием настроил авто запуск тестов, расчёт покрытия, какой-нибудь параллельный билд, деплой, сбор и визуализацию логов, какие-нибудь авто алерты, балансеры, к8с нежели писать очередную апишку для хождения в базу, доставания данных и оборачивания в запрошенный формат. Как я понимаю, выстраивание процессов вокруг кода это и есть дев-опс? Как думаете, каковы мои шансы там без реального опыта, с одними теоретическими познаниями и большим желанием?
>>1852330 Честно говоря я бы и их изучил (вроде не самая простая фигня эти ваши функциональные языки?) если бы дали внедрить. Но за 7 лет я уже окончательно убедился что это бесполезно. И это не моё выгорание, я был бы правда рад.
>>1852332 >Clojure, Scala >внедрять Он тебя троллит, лол.
Скала - полезная вещь, очень рекомендую просто для общего развития. Ты станешь гораздо более лучшим даваёбом. И, возможно, даже начнёшь использовать Kotlin на бекэнде. Потому, что скала - вещь в себе, и заюзать её в ваших проектах у тебя хуй получится, инфа 100%.
Кложура - пустая ебля мозга, по большей части, если ты джаваёб. Хочешь лиспа - читай SICP и зелёного слоника. Если вставит - дальше сам поймёшь, что делать.
Очень рекомендую освоить Groovy в качестве скриптового языка. Не слушай дураков, которые говорят, что груви не нужен, когда есть котлин. Это совершенно разные вещи.
Groovy охуенен как инструмент автоматизации, для скриптов, для тестов и т.п. Это, наверное, самый практичный язык, по крайней мере, на JVM. Прикрутить его к имеющейся системе через веб-интерфейс, и писать скрипты прямо в окне браузера, дёргая живую систему - это бесценно. Как образец - посмотри https://groovyconsole.appspot.com Spock, опять же и т.д. и т.п.
>>1852301 CRUD для одной сущности. Да даже CRD хватит. Веб-интерфейс не надо, хотя некоторые шизики просят сделать что-то такое в тестовых. Но нахуя, жаба это ж бек. Пара часов это мой примерный прогноз, никто над тобой стоять с секундомером не будет.
>>1852327 Хз, зачем это ты там 7 лет сидел, надо было раньше сваливать оттуда. Я и года не проработал, а уже по вечерам думаю, куда бы сваливать в случае чего и что подучить, чтоб денег предложили по крайней мере не меньше. >>1852354 >Скала - полезная вещь, очень рекомендую просто для общего развития. Вот этому канистру чая бы налил.
>>1849694 Ок. есть прикладное программирование, а есть системное; в прикладном многопоточности не так часто напрямую касаешься, тк все уже реализовано через фреймворки. ОС на джаве конечно не пишут, а вот БД - вполне, например кассандра или зукипер написаны на джаве, там нужна многопоточность в полный рост. Я сейчас разрабатываю сервер под хайлод для трейдинга на джаве, там тоже многопоточный код ну раза в два в неделю да приходится писать самому.
>>1842154 (OP) Здарова анончики. Я студент шараги, учусь на пограммиста на последнем 4 курсе. Вроде всё хорошо, живу и радуюсь, но немного стыдно, что за 4 курса мой максимум это создание циклов в паскале. Короче залетел на вашу доску и тыкнул на первое знакомое название. Джава этож язык на котором игрульки писались для кнопочных? Лол, он ваще жив там в 2020? Почитал шапку и немного хикнул. Учиться чему-то в 2020 читая книжки? Звучит прогрессивно. Короче я пошёл на рутрекер качать видео уроки по ДжаваКор. Наверное дропну после первого урока, но может и не дропну. Эх, так много вопросов и так мало ответов...
>>1852837 Тебе вот ясно, а мне не очень. Кстати язык настолько мертвый, что единственный видеоурок на русском, который я нашёл на рутрекере раздают 1.5 калеки и приходится качать эту годноту со скоростью 50кб/с. Очень неприятно.
>>1852841 эй, смузи-бой! закатывайся в джарп! и тебе никогда не придётся сидеть в тесном оупенспейсе по 11 часов в день на просиженном стуле со сломанной спинкой
>>1852849 Потрясающе. У этого языка ещё и дико недружелюбное комьюнити, которое троллит безобидного нуфака-ламера меня, который всего навсего просит о помощи. >>1852850 Да-да, я не троллил чел. Я выбрал джавакор, по той-же причине, что и джаву в целом. Я слышал об этом об джавакоре, когда играл в майнкрафт. Ну, а касательно книжек я даже не могу догадаться в чём тут троллинг? Кому может прийти в голову обучаться яп на книжках? Лол, ладно там просто читать какие-то статьи или документации, но в целом обучаться на книжках это полный отстой. Я не собираюсь этим заниматься, как минимум сейчас. Кстати мой курс уже скачался и сейчас я пойду его смотреть.
>>1852856 джарп - это новый потрясающий язык, который собрал все плюсы джавы и шарпа пока он только развивается, но уже скоро все сытые херочки станут в ультимативном порядке требовать от соискателей от пяти лет опыта с этой технологией
>>1852859 Кстати мои однокурсы, которые шарят, говорят что жава мёртвый язык и типа щас все адекваты перекатываются на СиШарп. Но я уже скачал видеокурс по Джаве, так что похуй. >>1852861 Может и по нему скачаю. Просто я слышал что веб-программисты считаются лохами и не хочу, чтобы мои знания, которые я собираюсь получать были омрачены таким ярлыком.
>>1852886 Для компилятора Void - это такой же класс, как и остальные, поэтому он расценивает его в дженериках именно как один из типов, а не отсутствие типа.
>>1852886 Ты не понимаешь - они принципиально разные. Если разрешить такие кастинги, то нахуй бы вообще нужна эта статическая типизация и эта джава.
А вот не секрет, зачем ты хочешь такой кастинг? Наверняка, это решается иначе. Возможно, что у тебя вообще там принципиально ошибочный подход, и система типов тебе об этом толсто намекает.
>>1852889 Есть список из функций с одинаковым принимаемым и возвращаемым значением. Первая и последняя функции ничего не принимает и не возвращает соответственно. Надо их красиво закомпоузить.
>>1852950 Если у тебя вот так: Supplier -> FunctionA -> FunctionB -> .... -> FunctionN -> Consumer, то, начало и конец лучше держать отдельно, т.к. это не функции, и не часть конвейера, а именно что вход и выход.
Сап. Короче получил возможность пройти интенсив Java Oracle в рамках программы повышения квалификации. На немецком языке ибо живу в ЕС. Курс вроде не требует наличия навыков программирования, только общие знания в информатике. Сам я знаю принципы программирования, что такое переменная итд понимаю, но сам писал только простенькие скрипты по мануалам. Это будет фулл тайм удалёнка, длительностью всего 3 месяца. Реально ли за это время хоть как-то выучить язык? Что имеет смысл делать самому дополнительно, что почитать/посмотреть на ютубе?
Алсо, изначально хотел C# или Python, но пришлось брать то, что дают.
куда ты лезеш со своими функциями, забирай это говно со скобками куда подальше, реально достаточно одного функцианально опуща который начинает срать своими скобками в проекте
>>1853096 Тащемта бигдата и нейросетки меня интересуют, но это скорее праздный интерес. А так да, полистав вакансии понял что джава это то что надо. Сишарп, кстати, тоже востребован у нас тут. >>1853093 Надеюсь что вывезу, очень давно ничего вообще в принципе не изучал.
>>1853100 Сишарп - путаный и мусорный язык. И он воняет паскалем, потому, что создан идеологом Delphi. А джава - язык простой и недвусмысленный. В нём много букв, но очень мало говна.
Тут, правда, надо понимать, что "выучить язык" и "научиться программировать" - это совсем не одно и то же.
>>1853192 Ты серьёзно думаешь, что можно выучить какую-то технологию, и потому всю жизнь с неё кормиться и больше ничего не учить?
Специально посмотрел - все вакансии на hh, где упомянуты EJB, включают ещё хуеву тучу баззвордов, включая бут-хуют-батут. Как правило, перечисляют все, которые могут вспомнить, лол.
Объясните пожалуйста, каким образом здесь будет выполняться тело цикла if, если array2[0] и array2[0], array2[1] и array2[1] и т.д. равны. Они же равны, как я понимаю? i и j инкрементируется и становятся равны друг другу. Выводится массив в порядке возрастания, как я и хотел, но я просто скопировал кусок кода с интернета, теперь хочу разобраться, что здесь происходит.
>>1853228 Имя метода с большой буквы - сразу на хуй, и ещё пиздюлей на дорожку отсыпать за такое.
Это пузырьковая сортировка. Самая примитивная и неоптимальная реализация.
>Они же равны Циклы вложенные. Пока крутится внутренний - внешний стоит. Переменные i и j равны только на первой итерации внутреннего цикла. Т.е. эта итерация будет холостая.
Подскажите, в ресурсах проекта есть текстовый шаблон, и там же есть несколько текстовых файлов, которые надо подставить в него в процессе сборки (мавеном). В результате в папочке target должен лежать отрендеренный шаблон и он должен быть доступен в тестах. Как это лучше всего организовать? Может лучше вообще без мавена?
>>1853678 Разве что написать свой шаблонизатор, который при виде в шаблоне файла заменил бы его название на содержимое. Вряд ли в существующих шаблонизаторах можно так вот просто прочитать файл извне, это всё-таки не языки программирования.
>>1853869 Впрочем, в freemarker тех <#include> может подключаться произвольные файлы, а не только шаблоны.
>>1853883 Кто тебя знает, надо тебе или нет, это ты придумал непонятно с какой целью. Напиши плагин для мавена и запусти в нём шаблонизатор, срендеренный выхлоп запиши в target/classes/template.json.
>>1853678 Думаю, что надо сделать скрипт, например, на Groovy, который делает с шаблонами то, что тебе надо. А потом, если это как-то завязано на другие вещи, запускать его из Мавена.
Если же нужно просто генерить кучу хуиты по шаблонам, то мавен там и нахуй не сдался, сделай скрипт и генери.
>>1853915 В вакансиях зачастую никакой конкретики а-ля "Знание основ java и ооп/Опыт изучения n месяцев. В лучшем случае напишут про гит и чтение технической лит-ры на английском.
>>1853909 >>1854102 Да нет там единого стандарта. Где-то ты больше селекта за год не напишешь ничего, где-то будут запросы на полстраницы. Одни ковыряют легаси, у других последняя версия жабы и постпроцессоры на спринге. Из общего: -Идеальное знание кора, все основные структуры данных надо знать заебись, чё там за корзины в хешмапах и почему там O(1) в O(logn) вырождается, вот эти все линкед сеты между собой отличать надо и прочее. -SQL, обычно хватает создать пару таблиц, связать их по ключам, написать пару запросов с джойнами, агрегатными функциями, группировкой. Первые задачек 40 на sql.ex. Если видишь в вакансии диалект, то соответственно ещё и его изучи. -Уметь на спрингбуте создать простой круд, примерно понимать что там за прокси классы создаются, бины, контекст, основные аннотации. В жопу лезть за АОП не надо, наверное. -Понимать, что за HTTP методы такие, заголовки всякие, понимать чем IP адрес от MAC отличается, JSON туда сюда покидай по контролёрам. Видел в вакансиях упоминания всяких шифрований и прочего, но не был там, так что хз что имеется ввиду. -В гите ничего особо знать не надо, пуш, мерж, ребейз, создай себе репозиторий, поиграйся с ним денёк другой, это несложно. -ООП, основные понятия, любят про SOLID спрашивать, паттерны, Мартина и GoF по-любому читать придётся, тут уж никак. -Можно ещё про stream и многопоточность расписать, но это не всегда спрашивают и используют. Если пишут, что Java 8+, то значит и про стримы спросят, если асинхронность, то будут про дедлоки мозг ебать.
>>1854170 Ждём, когда в идее сделают принудительные обновления, которые можно только отсрочить жмаканием на кнопку глубоко в настройках. И чтобы она принудительно перезапускалась при этом, прерывая сервер приложений и прогон sql-миграций.
>>1854273 С большей вероятностью. Где-то требуют абстрактное "высшее техническое образование", где-то уточняют конкретные специальности - информатика и выч техника, программная инженерия и прочее.
Ньюфаг просит помощи. Никак не воткну в это ваше ООП. Решаю такую задачку: есть класс ShirtOrder, в нём есть три метода: ShirtOrder, который непосредственно принимает количество рубашек в заказе, есть метод getShirtQuantity, который возвращает это самое количество рубашек, и есть метод getShirt, который должен возвращать экземпляр созданной рубашки и уменьшать счетчик оставшихся рубашек на 1. Соответственно, есть ещё класс Shirt, в котором прописаны поля цены рубашки. Вроде бы всё реализовал, но никак не получается вернуть экземпляр этой самой рубашки. Он просит меня в скобки цену, или чего он от меня хочет вообще? Как правильно вернуть в методе эту рубашку?! ЧЯДНТ?! Подскажите пазалушта..
>>1854721 Ты объявил конструктор для Shirt, который принимает один аргумент -- price. Создать ноывй объект ты можешь только через этот конструктор, так что да, он просит в скобках цену
>>1854721 > Он просит меня в скобки цену Да. Ты уже указываешь в конструкторе этот аргумент: public Shirt(float price) и должен его передать. Судя по тому, что getShirt принимает price, нужно этот же price передать в конструктор: Shirt shirt = new Shirt(price); И всё.
>>1854727 >>1854726 Добавил - добавилось. Какой же я безрукий. Ведь пробовал же вроде. Анончики, вы лучшие, спасибо большое! После этого удалось дописать условие, как следует, всё работает, надеюсь, правильно! Каждому в треде по чашке чаю!
Что должен делать твой класс заказа (ShirtOrder)? Туда добавляются купленные рубашки? Но, у тебя не добавляются.
Метод getShirt(price) - он зачем вообще? Получить одну из добавленных рубашек по цене (они типа все разные)? Но, он делает какую-то хуйню - за каким-то хером создаёт новую рубашку.
И где, блядь, общая сумма?
У тебя внутри должен быть список (ArrayList) shirts, куда ты будешь добавлять свои рубашки методом addShirt(nextShirt) {shirts.add(nextShirt)} Метод getShirt должен стать getShirtByPrice(price), и он у тебя должен будет перебирать список, и возвращать рубашку с такой ценой. Более того, это должен быть не список, а Set. Если только одна рубашка с такой ценой разрешена. А это, судя по методу getShirt() так и есть - он возвращает одну рубашку с такой ценой, а не список.
И рубашки не должны создаваться внутри, это заказ, а не рубашечная фабрика. И у рубашки должен быть бренд и модель.
И т.д. и т.п.
Вообще, лучше поискать немного другую модель на поиграться для начала, если вообще не вдупляешь, что такое объекты и т.п. Животные - кошечки там, собачки, уточки. Сколько ног, что говорит и т.п. - дофига примеров в учебниках. Или автомобили - машина состоит из мотора, колёс, к-ва кресел и т.п.
>>1854758 >Ты какую-то хуйню написал. С этим не спорю. >Что должен делать твой класс заказа? Ну, вообще это задачка с несколькими четкими условиями, три метода, ShirtOrder, getShirtQuantity, getShirt, которые расписал тут >>1854721 Вот стояла задача первый метод заставить сохранять количество рубашек, второй - возвращать это количество, а в третьем - создавать одну рубашку для возврата из метода, при этом уменьшая число рубашек в заказе на 1. Если рубашки кончились - возвращать null. Не знаю, насколько это практически применимо, и возможно выглядит, как лютая хуйня, но проверочный check вроде бы сработал. >Вообще, лучше поискать немного другую модель на поиграться для начала, если вообще не вдупляешь, что такое объекты Это точно.. В моём курсе есть примеры с собачками-кошечками, вот на выходных займусь как раз, буду разгонять мышление. В любом случае, спасибо большое, что отозвался. Извиняюсь, что влез сюда со своими рубашками :)
>>1855213 Понятие "цена" не обязательно предполагает финансовые вычисления, в которых ошибка представления будет иметь значение. Речь не про банк или бухгалтерию. Ну, и лучше было бы double.
>>1855207 Это обучение - тестовая затея в рамках текущих всех этих цифровых экономик и всего такого. Можно было выбрать из кучи дистанционных образовательных программ, всякие там 3д-моделинги, курсы экселя для мамочек в декрете, мне вот джава приглянулась, хотя никогда не занимался. Разве что С++ в универе в своё время, да и то всего 1 курс. Курс в Томском универе разработан, сам курс нравится, очень даже, просто сроки крайне сжатые, за месяц нужно решить около 30 тестов. Сначала были простые, а сейчас вот пошло уже посложнее. Дальше будут перегрузки методов, полиморфизм, наследования всякие. Буду стараться, что ж.
Аноны, а посоветуйте как вкатиться в тесты на спринг буте? Нет никакого опыта написания тестов, даже на обычные консольные жаба приложения, сейчас появилась необходимость. Если есть какие йоба книги или статьи, накидайте, пожалуйста
Анон, насколько часто тебе приходится хуячить очередной круд с использованием локального хранилища без коннекта к базе?
ibn4 ну бля, продуктовая разработка as is: к нужной базе нет доступа/правки в боевую базу будут вливаться только после аппрува 1488 человек, ибо древнее легаси/крупная или ключевая задача
>>1855880 это был вопрос уровня "бля как бы срезать углы и не заниматься этой хуйней", на который сам же и ответил за спойлерами: видать, нужно вникнуть и научиться создавать круд с локальным хранилищем без базы.
>>1855876 Что есть "локальное хранилище", для начала? И даже более того - что такое "локальное"? Это компьютер пользователя или локальная сеть организации?
Вообще, если нужна оффлайновая работа, то тут всё непросто. Идеально - всё вообще должно идти через "локальное хранилище" (что бы это ни значило), а в него - тупая репликация из "главного", отдельным процессом.
>>1856028 под локальным хранилищем имеется ввиду конструкция, когда приложение использует свою память для извлечения данных, и не ходит в базу.
Механизм можно описать так: задеплоил проект на машине пользователя --> в созданную формочку внес данные --> жмакнул на субмит (тем самым инициализировав событие - вызов http-метода типа post --> после редиректа на ту же страницу с формой отображаются только что введенные данные.
>>1856094 Я (>>1856028) спрашивал - что такое "локальное хранилище". В памяти - это уже кое-что, но мало. Это база данных в памяти? Например, h2? Или это просто объекты в памяти? И почему в памяти? Кто мешает сериализовать их в файлы?
И т.д. и т.п. Тут хуева туча вопросов, и столько же ответов. Я об этом пытаюсь тебе сказать. Никаких стандартных способов нет.
Я бы сделал (и делаю) локальный SQL сервер (на виртуальной машине) и не занимался бы ментальным онанизмом.
Но, это зависит от задачи. Иногда удобнее иметь сериализованный объект в файле и т.п.
>>1856094 Посмотрел тот кусочек, где у тебя код на JS. Так вот, местами он странный. По массиву не делают итерацию как for (i in array), это не джава. И $('#book-form form') - лишнее, достаточно просто $('#book-form') - id (#...) - это не класс, он должен быть уникален для страницы в целом, и уточняющие селекторы не нужны.
Ну, и колбеки (a) использовать - немножно дурной тон в наше время, для этого есть промисы (аналог CompletableFuture в java) См., например, http://langtoday.com/?p=550
>>1856142 >Я бы сделал (и делаю) локальный SQL сервер (на виртуальной машине) и не занимался бы ментальным онанизмом. > блин братка, за это обнимаю <з временами забываю мысль, что главное "не через что", а каков конечный результат - и если его можно добиться меньшей кровью, развернув любую нужную СУБД локально, то нет смысла ебаться с хранением данным в ArrayList'e.
>>1856161 думаю, что твои слова у меня тоже получится разрулить, потому как фронт формы и ресурса (книжная библиотека, которая будет усложняться и обрастать такими штуками, как ci, многопоточность, и прочими, которые сейчас для меня в новинку)
До этого был свидетелем, как друг-вкатыш при мне хуячил три месяца на js'e, и нихуя не выдал по итогу - прикрывался изучением основных основ. Естественный отбор, щито поделать :)
Отсюда сделал для себя вывод, что лучше обрастать шишками и знаниями на каком-то проектами, чем теорией, которой без параллельной разработки некуда ложиться.
>>1856266 братан, я только вкатываюсь. Вчера блядь узнал что такое маппинг, и чем хуй отличается от контроллера: твое решение также можно реализовать, я о нем помню - заодно отвечу для себя на вопрос, чем твой подход отличается от подхода с локальной бд
>>1855332 Тем временем главный ньюфаг треда только что успешно рассадил школьников в двухмерный массив парт в классе и устроил всяческие разнообразные провер_очки, счастью нет предела! Держу в курсе!
>>1855876 Напиши интерфейс доступа к базе, не делай реализацию, пока не получишь доступа к базе, в чем проблема? Если тебе нужно обязательно проверять, как работает код - мокируй, тесты для кого придумали, ммм?
>>1856398 >Напиши интерфейс доступа к базе, не делай реализацию, пока не получишь доступа к базе, в чем проблема? Если тебе нужно обязательно проверять, как работает код - мокируй, тесты для кого придумали, ммм?
>>1856435 Как там с ущербными checked exceptions? Как там без template literals? Как там без именованных параметров в методах? Как там без data-классов (нет, @Data от Ломбока и Java records не считаются)? Как там без null safety, уже пофиксил NPE? Как там без функций вне классов, уже написал очередной "утилитарный" класс с кучей static-методов? Как там без async / await? Как там без полноценного ФП? P.S. я не хейтер, но после Котлина этих фич в Джаве реально не хватает :( У Котлина тоже есть свои недостатки, но бля, Джава как будто остановилась в развитии, потому что после 8й версии, когда ввели хоть что-то похожее на ФП, больше никаких значимых изменений не было, и это очень грустно...
>>1856588 Почти всё, что ты перечислил меня поначалу тоже выбешивало. Но, внезапно, через полгода работы стал замечать, что вот это же всё просто заставляет писать вменяемый код. Не раскидывать говно по тысячам файлов, а собирать в один >"утилитарный" класс с кучей static-методов Или что вообще не надо такие методы писать, где параметров настолько много, что надо их именовать, лол. Что эксепшны надо не только ловить, не ещё и обрабатывать, логгировать, дабы потом по 3 часа не искать где и почему что-то падает. >null safety, уже пофиксил NPE У тебя взаимоисключающие параграфы в тексте. Сам же про фп пишешь (отличная шутка, кстати, фп в котлине, ага), но неужели даже мейби не осилил?
>>1855961 >final var У нас в проекте по кодстайлу положено так писать. В результате когда у тебя цепочка вызовов findXXX().stream().map().filter().map().collect() то хер поймешь что же у тебя там лежит в итоге только IDE спасает.
Вместо простого Optional<UserId> userId приходится писать final var maybeUserId здравствуй венгерская нотация!
В общем сэкономил пару символов и добавил вагон гемора. И кстати конструкция var var = ...; var.method() тоже доставляет.
>>1856588 >Как там без data-классов (нет, @Data от Ломбока и Java records не считаются)? Вот кстати ломбоковский @Data + @Builder удобнее data классов. Нехватает наследования, но его нет ни там ни там.
>>1856263 Современный - не значил лучше, проще и т.п. Более того, в наше время это часто значит совершенно обратные вещи.
И эти тест-контейнеры - весьма спорная вещь (управление контейнером изнутри). И совсем никак не подходящая для ньюфага. И даже просто для того, у кого не слишком дохуя времени на эту ёбалу, и нет соответствующего процесса, который бы этого требовал.
Мимо философ, наблюдавший восход и закат многих best-practices
>>1856770 В данном случае как раз лучше и проще. Докер образы не оставляют после себя мусора в temp или еще где-то, работают и на винде, и на линухе и не зависят от версий системы и компонент.
>>1856773 Докер-образы != testcontainers Ну, и человек спрашивал очень ньюфажеский вопрос, и предложить ему в качестве ответа докер (в любом виде) - это как предложить поднять себя за волосы.
>>1856763 ОК, расскажи как сделать по феншую: вот есть у нас транзакция с неким количеством полей типа айди, амаунта и т.д., и у нее есть несколько подтипов: транзакция по карте, транзакция черех гугол пей, транзакция через инторнет и т.п. Как это реализовывать без наследования? Копипастить все базовые поля? Или один мега класс с кучей опциональных полей такой вариант сразу нахуй?
>>1856779 Там ещё проблема в том, что докер это про софт в контейнерах, а не про данные.
А у человека вопрос о том, как работать с клоном данных. Которые могут быть очень большими.
Докер на данные не очень ориентирован, поэтому базы там то ещё удовольствие отлаживать.
В принципе ничем не отличается от того, чтобы поднять копию СУБД на другой машине и на ней отлаживаться, держать при этом копию каталога с самими таблицами, чтобы откатывать можно было.
>>1856779 >Ну, и человек спрашивал очень ньюфажеский вопрос, и предложить ему в качестве ответа докер (в любом виде) - это как предложить поднять себя за волосы. Это как раз хороший способ.
У нас был проект с базой на Оракле и доступ через хибер. Но для тестов использовали H2 in memory - ну а хули, хибер же! И все работало нормально, пока в один день у нас не отвалились все спринговые batch job-ы из-за какого-то хитровыебанного поведения Оракла. И на H2 это не теститься никак, только на предпрод энвайроменте можно затестить. В итоге вылилось все в то, что пришлось делать 3 релиза прежде чем все пофиксали. А были бы у нас докер образы с ораклом, мы бы это поймали очень быстро.
>>1856785 >>1856790 Ебануться какие костыли можно придумать, лишь бы не делать наследование в угоду модной композиции. И ведь у рекордов такая же хуйня.
>>1856783 Я не тот анон, что затирает про избегать всеми средствами, но в данном примере с транзакциями композиция действительно выглядит предпочтительнее
>>1856785 Это вообще поведенческий шаблон, при чем тут данные?
>>1856790 >Prefer composition over inheritance, вот это вот всё. В теории - все круто, но на практике везде оказывается удобнее наследование. Потому что когда у тебя пара сотен полей посмотри спеку мастеркарда или визы, то ты просто заебешься ручками все писать. Одно дело когда у тебя в языке есть поддержка композиции, а другое когда ты должен ручками все прописывать.
>>1856853 >Это вообще поведенческий шаблон, при чем тут данные? у нее есть несколько подтипов: транзакция по карте, транзакция черех гугол пей, транзакция через инторнет
Сейчас будет серьёзный вопрос: какой тип exception выбрать, чтобы он не требовал обязательной обработки в коде? Вот для ситуации, когда мы ищем элемент массива, например, а он не находится (null). По идее, это runtime exception, но их куча, есть Illegal argument exception, есть number format, есть IOOB, AIOOB, в чем вообще отличия выбора?
>>1858057 >>1858055 Такие вещи надо делать, если тебе заранее неизвестно, что в твоём коде может возникнуть исключительная ситуация. Т.е. она (возможно) возникнет в процессе выполнения, в ответ на действия пользователя и прочие подобные факторы.
И нужно использовать RuntimeException. Если создавать свой, то наследовать от него.
Если хочешь универсальный готовый - IllegalStateException. Его название может подойти абсолютно к любой ситуации в рантайме.
Может есть какая-нибудь шпаргалка, как определять бины в context.xml? Например, я хочу перенаправить http на https трафик, но сделать это без класса конфигурации.
Как вообще блять создавать что-то на java? На крестах я умею почти всё, что же на жаве? Там тысяча библиотек, тысяча плагинов и ради чего? Мне надо разработать клиент-серверное приложение, с чего начать, как вообще?
Спасите помогите!! Делаю задание из Хорстмана (5-14). Там надо написать форматтер для логгера. Я сделал проект, в нем два класса. 1-ый сам логгер у него есть FileHandler, который выводит все в лог. 2-ой класс форматтер, который форматирует логгер. Они лежат рядом в папке src. Теперь мне надо в logging.properties заменить java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter на путь к моему классу, а как его найти? Я не понимаю.
>>1858626 Полное имя своего класса пиши, с пакетом. Например, com.zalupa.MyYobaFormatter. Он же у тебя в пакете, да? Сверху в файле класса написано что-то типа package com.zalupa или даже просто package test? Если нет - создай пакет, без пакета (default package) могут быть проблемы, не в этом случае, так в другом.
Аноны, хочу написать свой мессенджер на микросервисах с кафкой, блекджеком и шлюхами. Погуглил – примеров никаких не нашел как лучше организовать хранение сообщений, где тут использовать кафку и зачем. Посоветуйте что-нибудь почитать, что ли или, если есть примеры на гитхабе, покидайте ссылок, спасибо
>>1858617 Какого рода сервер? Поросто socket или уже http(s) с чем-то полезным? Загугли, когда определишься: java how to create ??? server.
Если http, то используют готовые серверы приложений - java ee, spring boot, более низкоуровневое - jetty embedded (руками эмбеддить, а не как в спринг буте) etc. Вообще, охуеваю от таких вопросов космического масштаба.
>>1858668 > как лучше организовать хранение сообщений Хранить в БД микросервиса сообщений.
> где тут использовать кафку Для взаимодействия микросервисов. Раз уж решил упороться в микросервисы там, где они создают больше проблем, чем решают, то хуярь микросервисы "авторизация", "сообщения", "хранилище_контента", "API_endpoint", "поисковый_кеш" и "аналитика", гоняя между ними данные через кафку.
>>1858617 > тысяча библиотек, тысяча плагинов Это современный тренд, привыкай. Громоздкий код с размазанной логикой, сотни классов вокруг одной маленькой фичи, вложенность вызовов методов больше 100. Есть стереотип, что так принято делать только в джаве, но я недавно ознакомился с современным фронтендом с реактами-хуяктами, у них теперь то же самое.
Надо реализовать свой кастомный контроллер для кубера и доказать что он быстрее, чем дефолтный. Деплоить в него буду свое маленькое монолитное бут гавно.
Как это все разрулить? Главное условие - как можно меньше еботни. Я так понимаю, там все на го написано, я смогу контроллер на жабе запилить и унаследовать кубером? Или только на го ? И как его быстрее сделать и оптимальнее стокового ?
Пока буду гуглить, но надеюсь, что выйдет благородный сеньор и толкнет меня в нужное русло.
Надеюсь ты тут и в расположении духа, анонас. Тема выбрана и согласована, отступать поздно, а времени неделя >>1848566
>>1858704 >Java >знакомился с современным фронтендом с реактами-хуяктами >у них теперь то же самое
Нихуя себе, ты толерантный. "У них то же самое", ну надо же. У них, блядь, не "то же самое", у них пиздец, какого свет не видел. Это ёбаный ад, этот ваш современный js-тулинг.
Ещё года 4 назад вменяемые люди охуевали от этого, и писали посты про "insane js tooling" и "javascript fatigue". Причём, не вкатышы, а матёрые юниксоиды, пишущие на си, там тулинг тоже будь здоров. Так вот, с тех пор всё стало сильно хуже, и теперь это просто неконтролируемый пиздец, расползающися под собственной тяжестью.
И няшная джава - как недостижимый идеал на фоне всего этого. "То же самое", у них, блядь.
На самом деле - отгадка в том, что JS - это не язык, не платформа, не среда, а говно. Был, есть и будет. Там ничего нет - ни структуры, ни модулей, ни разделения на исходники и результат, ничего, одно только говно. Один ЖС везде, который превращается в ЖС, который превращается в ЖС, остальное - просто имитация, включая TS. И когда из этого говна пытаются слепить что-то осмысленное, как у взрослых, получается просто лютейшая хуйня, под капот которой лучше никогда не заглядывать.
>>1858703 >хуярь микросервисы "авторизация", "сообщения", "хранилище_контента", "API_endpoint", "поисковый_кеш" и "аналитика" По какому принципу вообще надо делить микросервисы? Типа, каждый спринговый @Service в монолите - это отдельный сервис в микросервисах или как? Мимо.
>>1859552 Сложный вопрос, мнений много. @Service, таблицы и сущности с микросервисами не соотносятся, в одном микросервисе может быть несколько таблицы и спринговых сервисов. Микросервисы скорее делятся по большим фичам, чтобы в одном была какая-то большая область функционала и несколько маленьких вспомогательных. Главное - чтобы микросервисы не сильно зависели друг от друга, то есть чтобы не было такого, что пользователь нажал на кнопку - и микросервисы начали делать сотни запросов друг к другу, чтобы выполнить операцию (зачастую для этого необходимые данные дублируют в БД каждого микросервиса, и, например, в каждом может быть по своей таблице юзеров с уникальными дополнительными полями).
>>1859589 Понятно. Просто я открыл первый попавшийся плейлист по микросервисам, там чел вообще, как я понял, отдельный сервис делал просто для выдачи инфы по фильму. Не до такой же степени надо суживать сервис..
>>1859603 Заходишь на allitebooks.com и набираешь в поиске spring microservices Там есть, что почитать, в том числе и свежее. Также, scanlibs.com, но, там сложнее качать.
>>1859606 > отдельный сервис делал просто для выдачи инфы по фильму Наверное, просто тестовый пример, чтобы показать, как это делается технически, а не best practices.
>>1859606 Степень определяется нагрузкой. Смысл микросервисов - в распараллеливании задачи. Если нагрузки нет - микросервисы не дадут ничего, кроме оверхеда.
Аноны, подскажите как грамотно в Spring сделать/сгенерировать CRUD формы из @Entity классов? Для примера, в одном фреймворке PHP (Yii) есть автогенератор такой штуки, для Spring есть что-то в этом духе, или надо все вручную писать? Знаю что есть библиотеки которые генерируют frontend-формы через node.js (Vaadin, JHipster), но хотелось бы чисто на Java.
Если задан массив объектов типа File, отсортируйте его таким образом, чтобы каталоги следовали перед файлами, а в каждой группе отсортируйте элементы по пути к ним. Воспользуйтесь лямбда-выражением, чтобы указать компаратор типа Comparator. Вот решение: Arrays.sort(files, Comparator.comparing(File::isFile)); Объясните, почему выполнилась вторая часть задания? Почему группы папок и файлов отсортировались по пути, если это нигде явно не указано?
Народ кто-нибудь работал-стажировался в АТОН или Техносерв консалтинге ? если да каков ваш опыт. и куда лучше идти в crm разработку или "разработка интеграционных сервисов"
Анончики, подскажите, пожалуйста: вот есть у нас контейнер Map<String, String> container = new HashMap<>(); В нём нужно разместить множество ключей, и потом оперировать со значениями. Есть конструктор, который на вход принимает параметры множества. Прописал его через LinkedHashSet, по условию. Set<String> place = new LinkedHashSet<>(); this.place = new LinkedHashSet<>(); Теперь, есть один из методов public String setPlace(String value), который принимает на вход строку value. Её нужно записать в Map, ассоциировать с первым попавшимся значением ключа place. Никак не воткну, как работать с этим множеством place, как его первый попавшийся элемент-то вызвать. У меня пока он либо на все ключи сразу присваивает value, либо вообще какая дичь.. Буду рад мыслям на этот счет. Внутри for метода setPlace условие так и не смог прописать.
Посоны, мне тут придется писать курсач на джаве. Десктоп или браузерное приложение. Какой фреймворк выбрать лучше чтоб по проще было? Препод предлагает JavaFX, но можно че нить свое взять
У тебя каша в голове просто. На пхп делают не crm, а cms, лол. А в 1с - ну да, иногда они используют термин crm, чтобы рекламировать своё поделие.
Воообще, CRM - это Customer Relationship Management. Этим модным (сейчас) словом сейчас называют то, что лет 15 назад называли модным (тогда) ERP. На самом деле - это просто информационная система для бизнеса, в широком смысле слова.
>>1861836 Если чистая джава - то Swing. Свинг - это то, на чём написан UI в IDEA, если кто забыл.
Раздела про Swing в Java Tutorial должно быть достаточно. Еще в интернетах есть охуенная книжка Filthy Rich Clients. Можешь на ютубе загуглить "MVVM на Java" - есть хорошее видео на русском. Возраст свинга и инфы по нему не должен тебя пугать - это надёжная проверенная технология.
Если не пугает джаваскрипт - то >>1861843 В интернетах дохуищща готовых примеров. Там всё не так сложно. Только бери именно Vue. И ни в коем случае не Angular или React.
>>1861741 Судя по документации, listFiles() не гарантирует никакого порядка, но у меня он тоже вернул уже отсортированный массив. Видимо, зависит от низкоуровневых особенностей конкретных ОС, полагаться на это не следует. Ну а то, как они в проводнике сортируются, вряд ли на это влияет.
Блять, попробовал вкатиться в жаву по курсу JBorn, чисто первый попавшийся из рутрекера. В итоге посмотрел 2 урока. Мне выебали мозги с гитом и когда подошло время решать задание второго урока я обосрался и нихуя не сделал, ибо блядь в самом видеоуроке этот пиздабол говорит "Что такое метод вам пока знать не надо, просто копируйте вот эту хуйню и хуячьте", а в заданиях везде нужно "Создать метод". Как я его должен создать, если этот пидорас пиздел 2 часа про свой ёбанный гит и даже не умудрился определение дать методов ебучих. Пиздец сгорело и задизморалило. Пойду лучше книжки читать, рыли.
>>1863252 Лично мне кажется, что текстом всегда воспринимается лучше и больше. Пока начетчик из курсов мыкает и пересказывает страничку из книжки ты этой книжки 5 страничек прочитаешь. Лично мне только вот это зашло(челик в /b/ посоветовал) https://www.youtube.com/playlist?list=PL4_hYwCyhAvblhTbPQmOF4b3kilWSpOjU Да и то, только как закрепление двухтомника Хорстманна.
>>1863365 Ну там для студентов мфти изучавших плюсы и структуры-алгоритмы, но мне зашло без этих знаний, разве что где-то в середине ничего не понял, когда он пару минут про конечные автоматы говорил.
>>1864748 Использовал 5 лет назад реализацию Java 7. Несколько раз эпически соснул из-за того, что эти сукины дети приципиально отказались реализовывать Java.AWT и Java.NIO.
Вот так вот просто, да. Я такой запускаю свою говноутилиту по выгрузке какой-то поебени из оракла в эксель и получаю в ебало сообщение, что "кококо мы не поддерживаем эти пакеты, соси!"
>>1865278 Покупай, конечно, все знают, что не купил джавараш - не джавист, и вообще херочка спросит на собесе, прошёл ли ты его, к тому же на джавараше куча историй успеха, как его прохождение помогло им устроиться на работу.
Предположим есть класс (sub) который наследуется от родителя (super), родитель наследуется от Object. Создаем экземпляр этого класса new sub(); Вызывается цепочка конструкторов Object -> super -> sub; Следовательно не явно создаются объекты Object и super?! Или зачем вызываются конструктора родителей?
>>1866934 Я так понимаю, что родительские конструкторы применяются для твоего класса sub, а в конце конструктор самого sub. Поправьте меня, если я не прав
>>1867007 Не совсем. Сначала у тебя вызывается конструктор sub, и в нём ты либо явно вызываешь первой строчкой базовый конструктор через super(), либо, если ты этого не сделал, неявно в самом начале вызовется конструктор по умрочанию, а если такого нет, но не скомпилится. Посмотри про наследование в любой кгижке по кору, там это рассказывают.
Есть дерево папок. Известна рутовая папка и конечная папка. В каждой папке может быть сколько угодно папок. Как развернуть всю структуру от начальной до конечной папки? По сути типичная задача о поиске кратчайшего пути же? Есть смысл применять тут что-то сложнее BFS?
>>1867749 >>1867754 > задача о поиске кратчайшего пути Это про графы, но не про деревья. В дереве у тебя от корневой папки всегда ровно один путь. > Есть смысл применять тут что-то сложнее BFS Либо DFS. Смысла брать что-то сложнее нет, раз уж так работают всякие find в башах. > папки могут быть ссылками Можно не ходить по ним, find так и делает: https://unix.stackexchange.com/questions/14337 А если и ходить, можно вести список уже посещённых папок и не заходить, если уже там были.
>>1867786 Хм, значит кривую аналогию подобрал. Нет, это как раз про граф, и ссылки надо учитывать. То есть у каждой "папки" может быть несколько предков и несколько детей.
>>1867789 Тогда да, бери поиск кратчайшего пути. Если тебе действительно нужен кратчайший путь, а не первый попавшийся, а то так можно очень сколь угодно долго ходить между "папками".
>>1868023 Я в книжках-то охуеваю с форматирования содержания, где приходится прикладывать линейку, чтобы не перепутать номер страницы с соседними строками, а вы ещё и в код это тащите. Туда же SQL, где при создании таблиц между названием колонки и её типом ставят 100500 пробелов.
>>1868287 Потому что хватит платину спрашивать. Реализаций у интерфейса может быть больше одной, и часто бывает, что заранее неизвестно, какая из реализаций будет юзаться, или будут юзаться несколько одновременно. Такое часто бывает с либами - они не могут знать, какую именно реализацию захочет пользователь либы, и поэтому принимают вместо конкретного типа интерфейс, который реализует сам пользователь. Например, интерфейс DataSource - представь, что тебе пришлось бы переписывать весь код только ради того, чтобы скормить ему другую базу данных для unit-тестов.
Посоветуйте дебилу что почитать по спрингу, но только пообъемнее но для дебилов написанное. Смотрел какой-то курс негра с рутрекера скаченный, но чет пока смотрел его (у него там дохуя воды), половину того что было вначале забыл. Начал искать книги. Нашел книгу - Spring in Action. Посмотрел оглавление.... Судя по оглавлению, getting started гайды с офф сайта и то информативнее. Начал читать документацию типа вот этой https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#spring-core .... ебать... скачут от одного к другому в в каждом подразделе (к примеру, в разделе про IoC/DI прыгают то на ресурс, то на МВЦ, то еще на что-то, в итоге структуры толком нет, при этом то что они пытаются назвать структурой явно не для дебилов вроде меня написано (причем я почти уверен что 80% информации из того же раздела про IoC нахуй не нужно знать. Инкапсуляция, чмо. С раздела про AOP вообще нахуй упал в осадок (насколько я понял это что-то типа миддлвейров в PHP / Node js? Но нахуя так усложнять то, даже в документации. Потом значит нашел книгу "Spring 5 для профессионалов" (Юлиана К.) (самая топовая была на рутрекере по сидерам после ебаной Spring in Action). И в общем она так же как и документация оправдала свое название. Не для дебилов короче. Каждый вопрос обсасывается с 10 углов, нахуй мне это надо, я же новичок. Короче что мне блядь читать ? Продолжать читать ебаную доку и эту книгу для профессионалов? Или может есть какая-то книга/ресурс для дебилов где объемнее написано, чем Spring in action
>>1868684 прежде чем делать на практике нужно понять что и как. геттинг стартеды нахуй не дают представления, как и книга Spring in Action. Судя по этому треду местами складывается впечатление что обезъяна с гранатой в спринге серьезнее чем обезьяна с гранатой во фронте на JS. Там в разы все понятнее и ты отвечаешь за то что ты делаешь, тут же магия какая-то
>>1868608 Spring in Action лучше взять предпоследнее издание. Там больше уделено внимания внутреннему устройству и идеям, а в последнем - Boot и пиздец.
Также, если ты не понимаешь, зачем нужно AOP и прочее IoC/DI - значит у тебя просто нет достаточного опыта на джаве вообще. И даже понимания того, что есть джава - тоже. Упоминание пыхи, node и каких-то мидл-тварей - только подтверждает это.
Вообще, прежде чем научиться чему-то, надо сначала разучится всякой хуйне, которой ты нахватался до этого. И пыха (да и node тоже) - это то, что в первую очередь надо забыть, как страшный сон.
В качестве переходного мостика можешь использовать питон - там плохому не научат.
>>1868758 Тут ещё надо понимать, что один класс вполне может реализовывать несколько интерфейсов, из разных областей. Т.е. ты можешь один и тот же объект использовать в разных качествах.
Интерфейс - это как штатное расписание. И конкретный сотрудник вполне может совмещать должности, если соответствует требованиям.
>>1868776 Правильно ли я понимаю,что в реальных проектах интерфейсы нужны чтобы создать некую иерархию и ограничить функционал класса в нужном направлении?
>>1868684 Я работаю на работе со спрингом уже два года, но так и не знаю что такое бины, так как явно никогда их не использовал (если только это не код с туториалов и стаковерфлоу). Так что практика практикой, но и теорию знать надо
>>1868768 >Вообще, прежде чем научиться чему-то, надо сначала разучится всякой хуйне, которой ты нахватался до этого. И пыха (да и node тоже) - это то, что в первую очередь надо забыть, как страшный сон. как раз наоборот, мне пыха и нода помогли понять более менее что такое AOP и для чего оно вообще, суть та же. >Также, если ты не понимаешь, зачем нужно AOP и прочее IoC/DI - значит у тебя просто нет достаточного опыта на джаве вообще. И даже понимания того, что есть джава - тоже. Упоминание пыхи, node и каких-то мидл-тварей - только подтверждает это. А какой опыт ты имеешь ввиду под джавой? Решать задачки уровня коллекций, стримов и прочего говна? Как это поможет в изучении DI/ AOP и прочего говна из спринга? В том то и прикол что нигде нет никакого нормального гайдлайна по тому как учить джаву. Тут дохуя кто советует читать хорстманна (и еще в довесок парочку книг после этого).. Но это не про DI и AOP. DI и AOP я видел только в книге Гонсалвеса по Java EE, но она ебануто написана, я ее забросил, там тоже самое что Spring in Action только еще короче.. Плюс мне в этом же треде советовали сразу на спринг прыгать. Кору я изучил (причем в нескольких вариантах).
Если у тебя есть какой-то грамотный гайдлайн по изучению джавы милости прошу, можешь накидать ресурсов книг с последовательностью изучения, возможно что-то я пропустил.
Про Spring in Action так и не понял. 620 страниц самое большое что есть на рутрекере. Чето я посмотрел доку и сравнил объемы... получается книга идет по стопам "вот вам круг, нарисуйте сову".
>>1868790 Нет, это не так. Либо ты неудачно сформулировал. Интерфейс - это дополнительный уровень абстракции.
Интерфейс - это набор требований, контракт, бумажка Кто и как реализует этот контракт - всё равно. Класс (и его экземпляр) - это реализация, в аналогии со штатным расписанием - конкретный человек Вася.
Это и есть то, что называют словом "абстракция" - тебе не важно, что это за реализация, если она соответствует заявленным требованиям. Т.е. ты абстрагируешься от деталей реализации. В этом смысл интерфейсов.
>>1868790 >>1868898 И да, можно описать все или многие объекты в программе и их взаимодействие в терминах интерфейсов, не ограничивая реализацию. Это, вообще, один из основных принципов "правильного" программирования.
>>1868950 А можно вообще всю программу сначала написать на интерфейсах, а потом уже в конце их все имплементировать? То есть сначала построить полностью архитектуру, структуру, а потом уже сделать так, чтобы код что-то делал реальное.
>>1868974 В теории - да, можно. Но, это слишком экстремально, мне кажется. Без написания реализации на промежуточных этапах не обойтись. Ведь в интерфейсе не может быть полноценного кода (кроме default-методов). А без реализации ты не поймёшь до конца, что тебе нужно.
Т.е. заранее продумать _всю_ программу, до того как начнёшь писать рабочий код - это нереально. Так делали когда-то давно, когда программы были простыми (по нынешним меркам). Сейчас другой подход - ты пишешь минимально рабочий код, а потом - рефакторишь его и добавляешь функционал.
И, как раз, на этапе рефакторинга ты можешь выделить интерфейсы, отделить их от реализации.
Рефакторинг - это когда ты не добавляешь новые фишки, а меняешь существующий код так, что он продолжает делать то же самое, но, становится более "чистым" и "красивым"- более тестируемым, расширяемым и т.п.
Также, ньюфагам полезно читать того же Хорстмана, Core Java, но, без "Impatient", которая в 2-х томах. Там нет упражнений, но, есть очень подробные объяснения.
>>1869027 Читал Хорстманна большого и проходил гиперскилз. В маленьком Хорстманне задачки не понравились и ответов к ним не нашел. Если тому анону надо, то вот рефералка: https://hyperskill.org/join/52dfb00fc За месяц(через месяц перестанет работать бесплатная регистрация) кроме коллекций можно еще один какой-нибудь раздел пройти. Теорию там можно скипать.
>>1869164 спс. логично, но недодумался >>1869102 тоже спасибо, не знал про сокращенные имена, но вроде в 64 битной винде где 2 программ файлса и не сработает так.
Посоветуйте что по алгоритмам на джаве почитать. Вот думаю выбрать из трех. Две большие книжки и третья маленькая. Особенно интересно мнение по маленькой. Очень уж лень утопать в большом талмуде.
>>1869319 >>1869316 Что-то отлетели картинки. Сомнения из-за того, что большие именитые и попсовые, а маленькую я случайно нашел практически. Думаю кто-то их читал, сможет сказать что-то.
>>1868859 Мимо проходил, вывалю свое мнение, вот список вопросов для экзамена Spring Proffesional знаешь ответ на каждый из них - молодец знаешь спринг, не знаешь - каждый вопрос вектор для изучения. Если считаешь что для знаний спринга нужно больше знаний чем там, можешь учить че хочешь, но на других перекладывать это не надо. То же касается и джава кор есть сертификация - есть вопросы к ней. Мне вот кажется в будущем будут востребованы специалисты с знанием кластеризации вот я и сижу учу хадуп на будущее.
>>1869321 Classic Computer Science Problems in Java читни. Это новая книга, она сначала вышла в варианте для питона. А потом уже что-нибудь более теоретическое по алгоритмам.
Тут надо отделить мух от котлет - учебник по алгоритмам не должен быть привязан к языку. Там обычно псевдокод. Для начала очень хороша книга Algorithms Unlocked. И она не толстая. Это от автора знаменитого MIT'овского учебника.
А конкретно по джаве - надо книгу по структурам данных, и как они реализованы в джаве. Название, как правило, такое и есть.
Всех приветствую, буду краток, вопрос следующий: делаю небольшое приложение в рамках универа на Java+MySQL, хочу использовать для ввода-вывода не консоль, а создать средствами Java пользовательский интерфейс (достаточно несложный, отображение записей из бд итд ИТП). С помощью "форму" реализовать, JavaFX или что-то есть более клевое? Спасибо за ответ!
>>1870001 Чувак, десктопный UI в Java делают на Swing. Java FX - мертворожденная хуита. Которая, по сути, и угробила десктоп на джаве. Потому, что надо было не хуйнёй страдать, а свинг допилить. Swing - это то, на чём написан UI в IDEA.
Но, делать десктопный UI ты, с непривычки, быстро устанешь. Поэтому, делай консоль сначала.
>>1870006 >ещё хуже Хуюже. В JetBrains напиши про это, а то они не знают, наверное.
>>1870030 > Хуюже. > В JetBrains напиши про это, а то они не знают, наверное. Да, я уже несколько раз здесь постил, что они неправы и должны срочно переписать идею на кресты или хотя бы шарп (который теперь кроссплатформенный).
>>1870001 Лучше оформи своё приложение как клиент-серверное и нахуярь простенький UI на Vue.js или хотя бы просто REST API, будешь через Postman взаимодействовать.
Это несложно, но пользы от этого получишь намного больше. Как верно заметили аноны выше, JavaFX, как и Swing, в хуй никому не впёрлись.
>>1870045 Есть же прослойка над нативным кодом - SWT. Для IDE не нужна поддержка десятков архитектур, вряд ли кто-то рабочую станцию будет делать не на 3-х популярных ОС.
Потратил пару месяцев на изучение С++, понял, что это не совсем моё. Подумал вкатиться в джаву, в том числе, для веб разработки. Целесообразно ли это? Слышал, что джава в целом проще и удобнее сишки. И да, я понимаю, что у языков немного разные цели. Учусь кодить для того, чтобы этим зарабатывать на жизнь.
>>1870212 Ну ладно. Поясните за спринг. Есть spring framework, а есть spring boot - в чем разница? И насколько долго эту хуйню осваивать, если я сениор скалист? годной работы нет нихуя
>>1870246 Бут - это просто надстройка (необязательная) над обычным спрингом, чтобы упросить жизнь. Без бута тебе пришлось бы вручную управлять версиями разных модулей спринга (под-фреймворков), самому писать конфиги для связывания этих модулей и самому встраивать томкат или другой контейнер сервлетов. В остальном это обычный спринг.
> И насколько долго эту хуйню осваивать, если я сениор скалист? Через неделю уже сможешь шлепать круды.
>>1870241 Джава - это не совсем веб-разработка, как в каком-нибудь пхп, где пишешь фронт и бэк, отдаёшь заказчику и забываешь (хотя с джавой такое тоже бывает). Обычно это постоянная доработка большого и сложного сервера на полляма строк целой толпой кодеров, длящаяся годами, и веба в этом сервере может вообще не быть.
>>1870300 Ну, работа с серверами, MySQL , базами данных мне так же интересны. Хочу пойти в бекэнд>>1870300 Спасибо за ответ. Так же вопрос по литературе, имеется в библиотеке Брюс Эккель "Философия Java" 4 издание. Видел, что книгу хвалят, насколько это справедливо?
>>1870314 Читал, в своё время, первое издание, в переводе некоего Портянкина, лол. Очень хорошо пошло. Лучшая книга по джаве была. Рельно "думать на джаве".
С тех пор я давно уже не читаю ни переводы, ни учебники. Но, слышал, что более новые переводы Thinking Java - более хуже. Сам смотри, в общем.
>>1870379 Так стримы же не намапишь на запросы в БД, т.к. нет интроспекции. Или что ты имеешь ввиду? я не шарпист, я скалист который выше про спринг спрашивал
>>1842154 (OP) Работаю дата инженером, хочу перекатиться в бекенд и написание сервисов. Пока учу спринг. Читаю книги по спрингу, там много просто jsp вью, формы веб страниц и прочую ебалу. Это вообще где то используется, надо знать? Я думал весь фронт сейчас на яваскрипте и делают его фронтендеры. Просто это так скучно что ебанутся. С таким же успехом я могу дальше на спарке батчи хуярить.
>>1870517 Вдогонку - нужен ли хмл-конфиг или все таки мы в двацдатых уже? Понятно, что где нибудь в легаси все это есть, мои вопросы больше за стейт оф зе арт.
>>1870517 Про jsp/jsf можешь пропускать, разве что ради легаси, и то там нормальные шаблонизаторы. >>1870518 Сейчас всё новое стараются конфигурировать без хмл. Поиграйся и юзай аннотации.
>>1870517 Нет, ты неправильно думал. >>1870518 >или все таки мы в двацдатых уже? Ясный хуй, ничего не нужно уже - ни фронтенд, ни xml. Нужны крутые повелители бекэнд-сервисов, которые просто сидят и ковыряют в носу, за 300K в наносекунду.
Что делать, если не можешь в циклы в цикле. Любую мальскую задачу на уровне нарисовать хуй восьмерками используя for у меня целый квест, где я просто смотря на выводимый результат правлю код, это так и должно быть? Почему не могу сразу нормально написать циклы, получается я не понимаю как они печатают значения? Спасибо.
>>1870711 Сделать тестовую класс, убрать вообще всё лишнее, чтобы были только вложенные циклы в main. Имена переменным циклов дать не i-j (они визуально похожи), а x-y, или даже first-second. И сидеть медитировать на этим, пока не постигнешь дзен.
>>1870810 Кстати я делал такое, в итоге я половину списал. Потому что сам начал путаться. Делал так что два отсортированных массива слить, тоже отсортировав.Сам нихуя не понял, конечно же. Наверно надо еще раз попробовать. Раз я видел как это делать, наверное хуйня получается, опять же сам к этому не пришел. >>1870711 Чем-то таким и занимаюсь.
>>1870711 >>1870822 Можно ещё разворачивать циклы - на бумаге или в текстовом редакторе расписывать ход вычислений. Это очень помогает в подобных случаях, с той же рекурсией, например. Естественно, в цикле или рекурсии должно быть мало итераций, просто для примера.
>>1870864 Да это и делаю, решаю задачи из сайта в шапке тоже. >>1870847 Я так умею, но как сказали ниже мне нужна привычка, взгляд, навык. >>1870836 Спасибо, часто разбираю задачи на бумаге, попробую циклы тоже. Всем спасибо. Все как всегда упирается в практику.
>>1870915 Вот тебе отличная метафора рекурсии, из книги "How To Think About Algorithms":
Представьте ряд домов на улице, каждый следущий меньше предыдущего. Ответ (результат) лежит в первом, ближайшем к вам, самом большом доме. Но, у вас нет ключа. Ключ от первого дома - в следующем, который поменьше. Но, он тоже закрыт, и ключ от него - в следующем, который поменьше. И так далее ... И, наконец, последний дом - совсем маленький, вы можете просто поднять крышу и достать ключ от предыдущего дома. Затем вы открываете все дома в обратном порядке, пока не дойдёте до первого и не получите ответ.
>>1871411 Лучше бы ты сам нашёл эту книгу, и посмотрел, что там написано - оно того стоит. Там есть и другие метафоры рекурсии и не только. Но, я сегодня добрый, поэтому объясню в двух словах:
Это метафора развёрнутой рекурсии.
Дом - это инстанс проблемы. В начале - он большой. По мере углубления в рекурсию (продвижения по улице), проблема остаётся той же концептуально, но, уменьшается в размере - домики уменьшаются, каждый следующий инстанс всё меньше и меньше.
Затем проблема становится настолько маленькой, что больше не надо уходить в рекурсию, и можно решить её просто так. Когда ты решил самый маленький инстанс проблемы, ты получил ключ.
И затем ты выходишь из рекурсии обратно, открывая на каждом уровне дверь дома предыдущего (большего) уровня ключом, взятым на текущем. В конце (т.е. в начале) ты получаешь полный ответ, открыв последний (первый) уровень.
>>1871430 Хуевый пример. Рекурсия была бы, если бы ты заходил в дом, а там еще один дом. Останавливаться надо, когда внутри оказывается ключ, а не новый дом.
>>1871434 И да, метафора "очень маленького домика", который можно просто разломать и взять ключ - она очень важная. В реальных проблемах (даже в итерации по массиву) ключ не лежит и не ждёт тебя в конце - его нужно _взять_ (принять решение о прекращении рекурсии и т.п.)
>>1871431 >Рекурсия была бы, если бы ты заходил в дом >заходил в дом Он закрыт, чувак. Перечитай >>1871004 Если бы он был открыт (= результат известен) - нахуй бы это всё было нужно?
Я нуб. Мне нужно вернуть записи, соответствующие списку введенных тегов, уже есть хибер, springDataJpa. Как лучше сделать? Теги записаны в строке через пробел, но это можно поменять, если необходимо. У меня 3 варианта, которые приходят в голову: генерировать автоматический запрос и выполнять его SELECT * FROM News WHERE Tags LIKE '%t1%' or Tags LIKE '%t2%' or ... либо тупо загружать все новости и с помощью джавы сортировать. либо как-то использовать Predicate, но пока нихуя не понял, как там это сделать.
Есть какой-нибудь паттерн, как это правильно сделать?
Есть таблица "товары" с атрибутом "цена". Также есть еще одна таблица, атрибуты которой влияют на цену товара, например, скидка. Как лучше реализовать расчет цены? Брать товар из репозитория с дефолтной ценой и сетить новую? Хорошая ли идея вообще хранить атрибуты, вычисляемые запросами?
>>1872199 Не надо сетить (т.е. менять цену), это пиздос вообще.
Надо сделать вычисляемое поле типа "окончательная цена". Или как-то ещё. Где-то должно быть действие "рассчитать цену" или "применить скидки" и т.п.
Как конкретно - зависит от задачи, нужны подробности. Может быть, например, объект Price, в который собираются все вещи, влияющие на цену, и он выдаёт реальную цену для отображения или использования в документах.
>>1872199 И да, хранить вычисляемые вещи, в общем случае, не нужно. Но, иногда так делают, когда это даёт значительный выигрыш в производительности. Но, делают это не так, должна быть особая процедура расчёта (по расписанию и т.п.).
>>1872262 Лучше назвать это actualPrice. Не очень понял про "поле". Я имел в виду просто геттер, в котором это будет вычисляться.
Да, можно рассчитывать и записывать в переменную, но, лучше не надо, т.е. нужны особые причины, чтобы так делать. Лишний стейт нужно убирать везде, где можно.
>>1872302 Кстати, совершенно нормально, иметь несколько представлений для одного объекта. Например, ты можешь взять твой "Товар" и "Скидки" и сделать класс "Товар в Корзине", в котором актуальная цена будет вычисляться.
Приветики, можете мне пояснить за тесты. Вот нихуя не понимаю. Во всех примерах показывают тесты на функциях калькулятора. И вот я не понимаю нахуя такое тестировать? По книге Мартина "Клин код" функции должны быть максимально простыми и выполнять одну вещь. Ну вот к примеру функция которая из списка возвращает элемент по какой-то логике. Внутри цикл перебора по списку и сравнение с значением. Зачем тестировать такую функцию? Типа тест будет проверять работают ли циклы и сравнения в яве? Это же бред. Да, они работают и не могут сломаться. Какой в этом смысл?
>>1872490 Я пишу тесты в двух случаях: - есть какой-то нетривиальный алгоритм. - интеграционный тест: предположим, у тебя есть http-ендпоинт, при запросе на который срабатывает некая бизнес-логика, которая меняет данные в базе, отдает ответ тебе и может быть еще какое-то событие куда-то посылает, я пишу тест, который реально шлет http-запрос, дальше ассерчу состояние данных в базе и ответ. Тесты нужны в первую очередь для контроля регресса - чтобы проверять, что новые доработки не ломают старую логику.
Помогите, мне нужно написать исключение трай\катч Вроде понял что написать в катч, в тру не понятна . Есть интерфейс класс его реализует, типа давать кредит парню или нет . Пишу тупа tre { chekClientForCredit(bankClient) return boolean;} Конечно это дичь какая-то да?Надо написать код который может кинуть исключение, это что, как он выглядит.Идеально может кто скажет ответ из той части информации, что я дал. Нет, пойду дальше гуглить.
>>1872692 Кстати. Вижу в вакансиях, что требуется знать Мавен.
Вопрос номер 1. Что именно надо знать? Сам я только использовал Градл. Под использованием я подразумеваю ./gradlew run/bootRun/build и добавление зависимостей. Собственные таски писать не приходилось, только туториал читал.
Вопрос номер 2. Везде используются Мавен только из-за того, что он раньше появился? По моему на Groovy писать легче (и меньше), чем XML. Или Мавен функциональнее, чем Градл?
>>1872699 И раз уж ты завел речь о мемах. Можешь скинуть картинку с петухами, где один из них кричит что-то наподобие "бежим быстрее, там джава-машина завелась"
Понимаю что может быть слегка МИМО, но хули бы и нет, жависты часто ебутся с AWS.
Анон, ты использовал когда нить AWS 'Stack' - я правильно понимаю что эта залупа хорошо подходит под задачу, когда надо сначала навыделять ресурсов, потом освободить ненужные, ничего не проебав?
Типа поднял кластер и кучу сопутствуюещего говна, занес это по пути в стэк, потом чтобы вручную не очищать - говоришь "очисти стек, блядина". Или я нихуя не понял инженерную мыслью амазонопидоров.
>>1872740 > Что именно надо знать? Уметь добавлять зависимости и плагины в помник (копипастить их с mvnrepository.org), модули, профили сборки, фазы.
> Везде используются Мавен только из-за того, что он раньше появился? Похоже на то. Но обычно не так много причин выкидывать из проекта мавен и заменять на градл, далеко не всем нужны все фичи из градла, существующих хватает. И есть какие-то плагины, которые только для мавена, это может быть критично.
>>1872971 Мне не сидится в таких местах, там почитаешь треды - так у каждого первого по их собственным заверениям аутизм, шизофрения, депрессия, синдром Аспергера, ПТСР, ОКР, интроверсия, социопатия, социофобия, апатия, психопатия. Один я нормальный, есть пруф от психиатра.
Есть класс BankClient - это класс, описывающий клиента банка. Есть интерфейс BankWorker. Объект класса, который реализует этот интерфейс является работником банка, в задачу которого входит одобрение или отклонение заявок на кредиты. У него есть метод checkClientForCredit, который на вход принимает экземпляр BankClient и возвращает true, если всё впорядке и кредит переданному клиенту можно выдавать, или false - если клиент не подходит под условия кредита. Также, этот метод может выбросить исключение BadCreditHistoryException, если у клиента плохая кредитная история. Или ProblemWithLawException, если у клиента есть проблемы с законом.
Ваша задача:
Реализовать метод getCreditForClient, который принимает работника банка и клиента, который хочет получить кредит. Метод должен возвращать true - если кредит выдать можно и все условия соблюдены и false если есть какие-то проблемы. Если клиенту отказали в выдаче кредита по причине плохой банковской истории - метод должен выводить в консоль сообщение "Проблемы с банковской историей", если клиенту отказали по причине проблем с законом то ничего выводить на экран не нужно.
>>1873248 >У него есть метод checkClientForCredit, который на вход принимает экземпляр BankClient и возвращает true, если всё впорядке и кредит переданному клиенту можно выдавать, или false - если клиент не подходит под условия кредита. Также, этот метод может выбросить исключение BadCreditHistoryException, если у клиента плохая кредитная история. Или ProblemWithLawException, если у клиента есть проблемы с законом. {Хуевый дизайн, дальше не читал.
Если ничего не путаю, в Java тредах раньше были пикчи с идеями для пет проджектов. Именно среднего размера проекты, чтобы изученные технологии испытать, не уровня универских лаб и не задачи для олимпиадного программирования. Мне периодически приходят всякие идеи, но вдруг те что были на той картинке интереснее. Поделитесь пожалуйста если сохранилась у кого.
>>1873257 Я писал что-то типа . public boolean (BankWorker bankWorker, BankClient bankClient) { //тут ваш код public class void getCreditForClient throws BadCreditHistoryException,ProblemWithLawException { try { return checkClientForCredit(bnakClient) }catch ( писал примерно то же, что у и у тебя){ принтил сообщение и писал ретерн правда, видимо ретерн не нужен в кажом катч} } } Нет, не лаба. Задание видимо на написание своего исключения. Я еще не понимаю что писать в try типа код который может выдать исключение, кто это такой ваш исключение .
>>1873456 При создании спринг компонента можно указать @Scope(scopeName = "singelton", proxyMode=ScopedProxyMode.TARGET_CLASS) или через конфиг @ComponentScan(scopedProxy =ScopedProxyMode.TARGET_CLASS), для prototype все очевидно, но зачем спринг проксирует сингелтоны, собсно и вопрос зачем нужны singelton proxy?
>>1873458 А при чем тут постпроцессоры? Мы же говорим о создании кастомных объектов, имеется в виду практическая ценность, то как создаются прокси и их lifecycle в спринге я и так знаю
Аноны, почему у меня server.error.path=/error возвращает правильную html страницу, но у нее, сука, не грузится изображение <img src="img/error.png">. Если просто переходить на страницу /error, то все ок. Для этого надо делать свой error controller, нихуя не понимаю?
>>1873454 >>1873457 Сам себе отвечаю: You may also use <aop:scoped-proxy/> between beans that are scoped as singleton, with the reference then going through an intermediate proxy that is serializable and therefore able to re-obtain the target singleton bean on deserialization. Можно использовать для сессий, если сессия упадет можно заранее сериализовать прокси необходимого бина и по необходимости его достать. Круто же.
Сап двач, у меня есть докер композ из веб апа и его бд. Как все это дело лучше развернуть на кубере? Что-то куча всяких вариантов отовсюду, я запутался
Извиняюсь за тупой вопрос: пытаюсь зарегистрироваться на oracle.com, после ввода информации перекидывает на страницу "Произошла ошибка", не могу зарегаться. Пробовал из разных браузеров - не помогает. Кто-нибудь с таким сталкивался?
Привет анон. Нужен твой совет как лучше сделать. Сейчас на джавараше добиваю кор потихоньку и есть два варианта. Первый - продолжить обучение на ресурсе Второй - попробовать запилить свой первый проект. Хочу сделать приложение для учета расходов с пользовательским интерфейсом(о нем я вообще пока представления не имею). Хватит ли неуверенных знаний джава кора на реализацию подобного? Понятно дело, что я буду еще кучу инфы в процессе гуглить. Вопрос состоит в том, стоит ли вкладывать время в это, не будет ли полезнее пока джавараш закончить?
Тут вопрос - это веб-приложение или десктопное? На джаве сейчас десктоп делать может быть проблемно (для ньюфага). А веб - сложновато вот так сразу.
Поэтому, найди книжку по спринг-буту и сделай пару хелловорлдов. Потом - TODO list на буте + интерфейс на Vue. Ни в коем случае не на React, хотя инфы и много.
И не надо пытаться сделать сразу быстро, много и хорошо. Надо просто хоть что-нибудь сделать.
>>1874199 >>1874212 Спасибо за советы. Поспрашивал еще знакомых и решил попробовать совместить, а там уже по ходу решу, заниматься только проектом или же добивать курсы.
>>1874310 Это долго объяснять подробно, лучше поверь на слово. Если коротко - в Vue есть шаблоны и реактивность. В реакте нет ни того, ни другого. Учится за 2 вечера. Нет подводных камней.
Интуитивно-понятные принципы работы. Non-opinionated, абсолютно (в отличие от блядского реакта). Прекрасная документация.
Опять же, если коротко - то Vue - это Angular здорового человека.
Можно делать микро-компоненты, и дёргать их из внешнего скрипта. Можно делать шаблоны прямо в html или в <script type="text/template">...</script> Можно делать всё без вебпака-бабеля-хуябеля-компиляции-сборки, а просто как в старые добрые времена, прямо в коде страницы писать js.
Помимо шаблонов, есть и рендер-функции и JSX, как в реакте (надо прикручивать, но это не сложно)
На практике - писать в разы легче, особенно, если ты не фулл-тайм фронтендер, а фулл-стак джаваёб.
И бери 2-й, 3-й немножко рановато пока. Начинай с простых примеров прямо в коде html-файла, без вебпаков-бабелей.
>>1859037 2к$. В этом основная причина почему я так долго там сидел: на жизнь мне и половины этой суммы хватает. Но сейчас я уже так заебался что готов уйти даже на меньшую зарплату, но на нормальный стек в нормальную команду без ебаных индусов.
В январе по собесам пойду, судя по рассказам тех кто уже съебал найти новую работу джавистом в моём городе вполне можно. В крайнем случае буду смотреть в сторону ремоута.
>>1874742 Когда нужно создать сущность(далее Foo), которая имеет много зависимостей. Без прототайп придется создавать синглтон в котором будут все зависимости и фабрика которая передает зависимости в pojo Foo. @Component @AllArgsConstructor class Factory { Dependence0 d0; Dependence1 d1; ...
public Foo getFoo() { return new Foo(d0, d1, ...) } }
Или можно просто создать прототип, который можно получать, например, из контекста.
Этот хуй прав, бери vue.js, будет НАРМ. Для spa очень даже хорошо идет, даже если ты раньше не дрочил жс-ы.
Но не советовал бы я уходить в микросервисы, если у тебя это реально первый проект, то лучше обойдись одним жаба процессом, без ебли с докером и кубернетесом. Иначе никогда не закончишь эту залупу свою.
Потом конечно можно накрутить и auth и прочие залупо-микро-сервисы и аркестратор и прочие прелести крудошлепства.
>>1874877 Использую очень редко, реальный кейс попробую привести, но только кратко, для больших примеров можешь на гит хабе примеры из реальной жизни посмотреть. Обычно его использование обусловлено архитектурой приложения, а не какими то бизнес тасками. В проекте была группа сервисов у которых был один метод: входной параметр - файл, выходной класс стратегии. Проблема была в том что каждая стратегиz внутри себя содержала разный набор компонентов и сервисов, а так же часть инфы о файле, передавать зависимости в качестве аргумента к get-методу была очень плохой идеей, потому что они были для каждой стратегии разные, и даже 4 зависимости превращали get метод в 2 строки. Решением стало к классу сервисов добавить метод @Bean, а все стратегии пометить прототайпами.
>>1874897 Согласен они очень узко направленные, но мне кажется хотя бы знать примерные кейсы их использования нужно, что бы постройке архитектуры не обосраться заранее. Сидеть заново изобретать сессионные бины, такое себе удовольствие. На одном проекте видел как люди в javaEE написали свой контекст и пытались его поддерживать.
>>1874769 Вау. Когда я только начинать работать со Спрингом, у меня была задача, для решения которой мне надо было использовать репозиторий в одном из методов сущности (репозиторий был как раз для этой сущности) и я не мог придумать ничего умнее, чем объявлять зависимость в контроллере и передавать параметром в нужный метод. Сейчас я понимаю, что так лучше не делать, но в голове буду держать такой вариант на будущее
сап двач, посоветуй, как имея 20-летний бекграунд работы в отрасли и не имея в текущий момент фултайм практики на джаве оставаться в курсе текущего состояния дел с наименьшими усилиями.
что читать, на что подписаться чтобы deprecated criteria API в пятом хибернейте или фишки типа пикрелейтед не стали неожиданностью?
>>1874880 Но, ресурсы кошерно хранить в classpath (в папке в одном из пакетов, как будто это класс), и получать по имени файла в пакете, через getResourceAsStream(). Это работает и когда просто файлы, и потом, когда упакуешь в джар, всё будет работать точно так же.
Аноны, сейчас прохожу 5 месячные курсы qa auto, пока 3 лекции было, прошли циклы, дошли до массивов. Параллельно сижу на джавараше.
Вопрос, я сам ручник с 2.5 годами, сейчас хочу вкатиться в автоматизацию, что вообще нужно автоматизатору знать в java, учитывая, что на проекте используют selenium. Java core + syntax на джавараше будет достаточно? Если нет, на что обратить внимание?
>>1875056 я не верю что в русскоязычном сегменте есть что-то адекватное. хабр еще можно было читать году этак в 2008м, но сейчас это помойка где кроме проплаченных рекламных постов с никому ненужной хуетой ничего не осталось. вот как они свободную регистрацию закрыли так все стремительно в говно и скатилось.
>>1875059 >Да он шутит наверное, за 20 лет работы, он должен был найти все что только можно, если бы ему было интересно где 20 лет назад можно было прочитать про лямбда-функции в жаве?
>>1875199 Меньше умничания и словоблудия? Нет толпы чсвшных пидоров-ботаников-деревенщины-с-вышкой в комментах? Но, да, медиум - та ещё параша. Мусора много.
>>1873474 Не знаю, вдруг поможет, всех подробностей уже не помню, но. Как то долго мучился с изображением, дело было в расширении. Файл назывался error.PNG, а я считывал error.png. В итоге в одном месте это работало, в другом нет
>>1875740 Тут даже не все знают, что именно "автоматизаторы" автоматизируют, а самих автоматизаторов так вообще единицы, одни разрабы. В моём представлении автоматизатор - это точно такой же разраб со знанием всего стека, включая спринги, ораклы и сервера приложений, но вместо новых фич он пишет тесты для API/UI.
>>1875817 И меньше ответственности. Заказчик не видит проблемы с тестами, он видит только косяки разрабов. Автоматизатору никто не кидает скриншоты с прода без комментариев и с единственным вопросом "Почему?". Никто не заставит его остаться в пятницу до ночи срочно чинить блокеры. Все требования описаны и задокументированы по факту реализации, ничего выяснять у бизнеса не надо, дёргай себе готовые апишки и смотри аниме на втором мониторчике, попивая кофеёк.
>>1870045 Вполне себе даже оправдано, Projector как один из применений - когда твоя IDE крутится где-то облаке, а у тебя только морда. Мало ли какая там на облаке ахритектура, может модный уже M1 от эпл, но т.к. жаве - вроде как и пох. Может и на котлин переведут... будет вообще на нативный код
>>1875831 >Никто не заставит его остаться в пятницу до ночи срочно чинить блокеры На самом деле все правильно. Автотима редко ввязывается в релизную хуйню какую-то, обычно только на саппорте, провести какое-нибудь нагрузочное тестирование, БД пошатать, секьюрность. А так они занимаются регрессией и поддержкой всего проекта который уже релизнулся и работает. С одной стороны это дикий плюс, нет никакой ебани, никто никуда не торопится, все спокойно. С другой стороны иногда движа не хватает. Автоматизаторы это что-то типа мемных сисадминов с бородатого башорга: сами по себе, чет делает, никто точно не знает, но ЗП почти как у девелоперов (но поменьше (но не всегда)).
>>1876324 получение сертификатов - это хорошая мотивация задрочить спецификацию языка. правда после того как оракл их сделал платными я на них забил, т.к. на мой взгляд для разработчика с опытом они особой роли не играют. но если на джуна идти то это конечно огромный плюс в резюме.
ну и по моему личному мнению полтора года на синтаксис и основную библиотеку - это просто ДОХУЯ. три месяца более чем достаточно, при наличии технического бекграунда то.
что там можно полтора года учить я вообще не представляю.
>>1876362 Там же мужику 40 лет, думаю он просто сидел вникал че да как, связи с возрастом + него была другая работа. Мое мнение - хорошая статья, человек без выебонов рассказал как вкатиться и то сколько реально упорства нужно приложить, что бы пройти на позицию джуна
>>1876324 >Хуева туча курсов, около полугода >После этой специализации я уже более-менее разбирался в языке, но писать самому программы было еще нереально.
Бля, писать программы - может любой дурак вообще. Писать хорошие программы - несколько сложнее.
Думаю, что основной смысл этой статьи - реклама курсов. И курсеры, и вообще, курсов, как явления (их очень дохуя сейчас). Ехали курсы через курсы, короче.
И человек _не_ должен думать, что вот сейчас, пара курсов - и на работу. Он должен застрять в положении вечного студента, и откармливать курсовых кабанчиков, лол. Есть такой феномен - можно вечно учиться чему-то (и даже неплохо сдавать экзамены), но, совершенно не уметь ничего делать практически.
Резюме - там какая-то хуйня написана. И, не факт, что это вообще правда - рекламой воняет за километр, прямо начиная с картинки в заголовке - "пройди курсы и пей пиво в Германии".
>>1876397 Возможно реклама, но опять же он там описывает способ как пройти их все бесплатно. Вопрос действительно в том, стоит ли тратить столько времени на теорию, либо лучше пробовать говнокодить в пет проектах.
>>1876373 он умел программировать, это раз В университете в течение 2-х семестров мы изучали программирование на Си и С++. Ничего особенного или каких-то глубоких знаний. Сдали – забыли. Далее, будучи студентом, я писал какие-то простенькие программы на Delphi для себя.
Дальше моя карьера выглядела так: Системный администратор Системный инженер
ну т.е. человеку не нужно объяснять что такое модель OSI, что такое процесс, поток, куча, типы данных и прочие базовые вещи.
во-вторых, если трех месяцев недостаточно чтобы выучить как скобочки ставить и врайтер с ридером писать то человеку нужно задуматься тем ли он вообще занимается
>>1876397 >Думаю, что основной смысл этой статьи - реклама курсов. наврядли, просто это показатель того насколько глубоко в грязь зарылась планка требований к соискателю и самому себе. два года - это тащемто время прохождения магистратуры! этого достаточно чтобы проштудировать кормена и книгу дракона вдоль и поперек и написать компилятор для какого-нибудь рефала, вполне нормальная дипломная тема для магистерской программы CS.
Java Programming: Arrays, Lists, and Structured Data (4 недели)
>>1876608 Строго говоря, ни один современный язык не компилируется напрямую в машинный код. Даже C++ на llvm компилируется в промежуточный код, который потом транслируется в микрокоды процессора, которые, в свою очередь, уже выполняются процессором. Питон, в отличие от жабы, изначально имел возможность "пошагового" исполнения line-by-line, поэтому он считается чисто интерпретируемым языком. В жабе такая возможность появилась только в Java 9.
>>1876608 Любой язык интерпретируемый, ведь машинный код тоже интерпретируется процессором. Любой язык компилируемый, ведь компиляция - это просто преобразование программы на одном языке в программу на другом, и любая программа так преобразуется перед выполнением, ведь невозможно выполнить исходник непосредственно.
>>1876620 >Компилируемый язык программирования — язык программирования, исходный код которого преобразуется компилятором в машинный код и записывается в файл с особым заголовком и/или расширением для последующей идентификации этого файла, как исполняемого операционной системой
Достаточно, что бы можно было выкакать исполняемый файл для ОС
>>1876624 Окей, продолжаем абсурд. Что такое машинный код? Это код, понятный некоторой абстракции, называемой "машиной". Например, виртуальной машине, не имеющей реального железа. Ведь нативный бинарник тоже можно запустить таким образом, эмулируя машину программно. А значит, такой код может быть чем угодно, например, картинкой png. Кто вообще сказал, что машина - для алгоритмов, а не показа картинок? Старая стиральная машина с алгоритмами не согласна. Вот и выходит, что машинным кодом можно назвать вообще что угодно, будь это хоть питоний исходник. И вообразить, что существует машина, выполняющая питон аппаратно.
>>1876624 Ну а сигнатура может быть из нуля байтов. Ещё никто не доказал, что невозможно написать ОС, которой не нужна сигнатура экзешников. Не надо про доказательство отрицания - у нас не реальный мир, а математика, и такие доказательства возможны.
>>1876615 Строго говоря, команды процессора (любого современного) - это тоже что-то типа байт-кода вирт. машины, т.к. они транслируются внутри процессора уже в настоящий кондовый машинный код, о котором знают только специалисты по этим процессорам.
>>1876649 Собсвтенно, упомянутый мной llvm и расшифровывается как Low Level Virtual Machine, так что деление языков на компилируемые/интерпретируемые в чистом виде давно потеряло смысл.
Не говоря уж о том, что почти для любого языка можно написать и компилятор, и интерпретатор, и эта характеристика скорее относится к конкретной реализации языка.
Сап двач. Насколько сложно будет вкатиться в Java после 3 лет работы на C++? CS вышка имеется. Можно ли вкатиться сразу мидлом или придётся джуном? Слышал, что в среднем Java джун получает как C++ мидл. Стоит ли тратить время на курсы для вкатышей или достаточно будет прочитать книжку и задрочить сертификат?
>>1876789 >Насколько сложно будет вкатиться в Java после 3 лет работы на C++? Java — прямой наследник C++, попытка решить его проблемы и переделать неудачные решения. Попытка сама по себе не на 100% удачная
>Можно ли вкатиться сразу мидлом или придётся джуном? В твоём случае можно мидлом. Если опыт на плюсах нормальный был, а не laba1.cpp
>Слышал, что в среднем Java джун получает как C++ мидл. Как повезёт.
>Стоит ли тратить время на курсы для вкатышей Нет. Там рассказывают про отличия if от switch, int от double и private от public. Если у тебя действительно приличный опыт на C++, ты всё это уже знаешь.
>достаточно будет прочитать книжку и задрочить сертификат? this
Есть товар, он может быть доступным, скрытым, заархивированным и тд. Какой наиболее бест вей: в таблице товары указывать нужный статус или для каждого статуса делать отдельную таблицу (доступные_товары, скрытые_товары...)?
>>1877249 Идея вечно подчёркивает что-то разными линиями, выделяет курсивом, жирным, жирным курсивом, цветами и ещё какой-то хуитой. Никогда не понимал всех этих обозначений, мне бы, наверное, хватило выделения кейвордов цветом и подчёркивания ошибок/варнингов.
>>1877285 Alt+Enter нажми на таком выделении, например. Напишет, что за хуйня, предложит пофиксить. Не факт, что это надо фиксить, но, посмотреть полезно. Переопределённых переменных это не касается, конечно.
>>1877420 Да хоть в key-value, какая разница? Требуется только хранить, запрашивать конкретные поля и как-то ещё обрабатывать не нужно. Так делается повсеместно.
>>1877414 тут работы на два-три часа максимум (если знать что такое спрингбут, но смысл тестовых заданий именно в этом - понять умеет соискатель что-то или только притворяется).
ну либо день если до этого спрингбут не ковырял.
много страшных слов которые по факту запиливаются в две строчки спринговых аннотаций.
Для джавы есть декомпайлеры по типу днспай для сишарпа? Чтобы я мог загрузить скомпиленый байткод, декомпилировать в код, внести пару изменений и собрать обратно?
>>1877431 тестирование чего? создание юнит тестов включено во время разработки всегда тащемто. да там кода то будет с гулькин нос на самом деле. основная работа - настройки спринговых объектов типа дао и RestController. Бизнес-логика сводится к написанию пары обращений к БД и выводу данных в шаблонизаторе
Таймлифом на работе пользуются или это только для пет проджектов? А если пользуются, это фронтендеры такие рукастые и умеют пользоваться всякими #strings или жаберы вносят вклад?
>>1877798 У нас вместо таймлифа юзается freemarker, но не для фронта (который на реакте), а для генерации кое-каких xml-ек из шаблонов по сложным правилам.
>>1877819 Ты там в своем легаси настолько преисполнился, что считаешь устаревшую технологию 2011 года хорошей, а всех кто считает против, дебилами которые не разобрались? Может ты ещё и на JavaEE пишешь? Одолжи машину времени.
>>1877835 >Может ты ещё и на JavaEE пишешь? Как ты узнал? Подглядываешь?
И схуяли jsp 2011 года? 2001, тогда уже.
Я не меряю технологии по годам. JSP - компилируется в java байткод, и работает, как из ружья. Там есть статическая типизация. Можно делать свои теги, которые тоже компилируются. И для всего этого есть охуенная инструментальная поддержка. Если нужно что-то необычное - можно дописать компилятор, что я и делал пару раз.
Просто не надо использовать мейнстримное говно типа томкэта и прочего подобного. Или монструозную хуиту от ibm.
>>1877844 Я работал с Jsp 4 года, основная проблема низкое качество кода который генерит джаспер, если взять например веблоджик, то он страницы размером больше чем не помню сколько, будет выкидывать с ошибкой, а jsp по сравнению с html+js намного тяжелее. Так же проблема, что технологии фронтенда не стоят на месте, я бы даже сказал скачут как бешенные, могу предположить что ты фулл стек джава дев и тебе приходится заниматься и веб мордой и сервером одновременно, ты можешь назвать себя сильным фронт енд разработчиком? я нет. Конечно jsp как дешевая альтернатива хорош, но шаблонизаторы позволяют разделить обязанности, ну и это то что навязывает спринг, а для веба сейчас лучше спринга ничего нет. Поправь где я не прав.
>И схуяли jsp 2011 года? 2001, тогда уже Самая новая версия джаспера 2011, я считал с последнего обновление 2.1 вроде
>>1877852 Никогда не использовал jasper. И у меня всё нормально. Но, мой опыт - не показатель. Просто удачное стечение целого ряда обстоятельств.
>jsp по сравнению с html+js намного тяжелее. Для сервера? Да, немножко. Но, это зависит от сервера. И это не всегда важно. Я работаю с внутренними проектами, не на галере. И приоритеты совершенно другие.
Сложных страниц давно не делаю, но, JSP позволяет внедрять кучу всего на стороне сервера, и клиент получает не просто html, а уже преднастроенное окружение, включая JS и т.п. Также, фильтры активно использую. И сессии.
В общем, хейт технологии просто потому, что её придумали 20 лет назад - это не от большого ума, как правило. Для разных задач - разные инструменты. Золотого молотка не существует.
Я на дизморали сейчас. Все вакансии мидлы 2+ года опыта и сеньёры. Даже через знакомого программиста в какой-то говноконторке получил отворот, просто потому что "человек вообще не из этой области и даже смысла звонить ему нет". Остаются только варианты со вкатом через всякие стажировки от епамов, но и там сейчас по слухам нужно пройти все круги ада, а потом соснуть хуйца в конце.
>>1877857 > Сложных страниц давно не делаю ну так с этого и надо было начинать
нормальный грид с сортировкой, фильтрами, пагинацией и возможности выбора строк на жсп это боль. а на каком-нибудь викете пять строк кода.
ну и вообще жсп это боль. ты можешь сколько угодно расписывать как ты компиляторы пишешь и свои теги реализуешь и как это охуенно - но это все слова, а покажи ка ты нам свой код, и все станет сразу понятно.
жсп это блядь уровень пхп 2000го года, это днище ебаное, хуже него только jsf. уж лучше сразу в сервлетах хуячить в стрингбилдер, а там и до нормальных шаблонизаторов один шаг.
>>1877896 >На некоторых нужно обязательно быть студентом, так что не всегда вариант Это да. Причем парадокс в том, что на стажировки в средние и мелкие конторки, которым реально нужны спецы, ищут онли профильную студентоту, а в крупных берут всех мимокрокодилов, но будешь ли ты в конце нужен - не понятно, а 3-6 месяцев на эту стажировку ты убьешь. >>1877881 Хуй знает. Уже мысли были ли в фулстак как-то вкатиться, либо вообще через какую-нибудь узкую хуйню, которую никто учить не хочет.
Я просто так уже втянулся в это ваше программирование, что мне уже все что не крутиться вокруг компов и айти не интересно совсем.
>>1877930 Плюс, но для себя я вижу два минуса: 1. Знания - это хорошо, но мы то целимся на место в компании, а остальным джуны все еще не нужны по вакансиям, как я уже писал; 2. 6 месяцев нужно купац + если тебя не принимают еще минимум месяц.
Я буду пробовать все варианты, но тут меня смущают эти пункты.
>>1877930 Такая стажировка хоть как то оплачивается? Вообще хотелось бы качнуться перед трудоустройством так, чтобы не с 20к начинать. А например с 50 в милионнике.
>>1877986 Ты про то, что фронтендеры видят результат своего макакинга сразу, а бэкендеры должны написать дохуя кода, чтобы в json появилось одно полечко? Честно говоря, хз. То ли привычка после крестов и линукса, то ли сам общий настрой, что функционал важнее внешнего вида, поэтому пойдёт хоть консолька, лишь бы свою задачу делала.
>>1877986 А что для тебя видимый результат? Кнопочка на странице? Мне посрать в целом. И более того, такое отношение я считаю достаточно примитивным. Как у тех людей, у которых есть только UI, а за ним происходит магия. Это меня даже веселит слегка: мысль, что многие люди не в состоянии понять просто лишь суть проблемы, которые я решаю, не говоря уже о самом алгоритме её решения и подводных камнях, которые я предусмотрел или нет. Как раз обилие вкатывальщиков, которые сразу же хотял получить видимый результат, вселяет в меня уверенность, что лично я не стану жертвой демпинга на рынке, и моя зп так и останется пределом мечтаний для большинства джуниоров.
>>1877903 >wicket https://wicket.apache.org/learn/examples/dropdownchoice.html Посмотри этот пример. Чтобы сделать один ёбаный селект, надо написать хуй знает что, вообще. На джаве, не в шаблоне. Какие-то модели, хуйню, малофью. И это клиентский код, блядь, не библиотечный. Т.е. такой залупы в проекте просто тонны должны быть.
Я не говорю, что это абсолютно плохо. Для большой команды - наверное хорошо. Один пишет кнопку, другой - селект, третий - див. Но, мне подобный подход не годится в принципе, например.
>жсп это боль Реакт жс - это боль, например. Но, все на нём пишут, нахваливают, и просят добавки.
>>1878017 Некоторые мои начальники (или просто старшие проекта) были такими, когда я занимался фуллстаком. У меня бэкенд сыпет исключениями и иногда падает, но приоритет у "на фронтенде перемести кнопочку на пиксель влево". При этом это подавалось в духе: "Да пофиг на бэк, потом разберёмся. Кнопочки важнее". Понятное дело, что заказчик видит только кнопочки и деньги платит по сути, за них
>>1878000 >> бэкендеры должны написать дохуя кода, чтобы в json появилось одно полечко? Ну скорее это: А что для тебя видимый результат? Кнопочка на странице?
>>1878053 > Т.е. такой залупы в проекте просто тонны должны быть. ты просто не понимаешь о чем говоришь
селект на викете делается в две строки
в шаблоне <select wicket:id="choise"></select>
в коде страницы: var combo = new DropDownChoice<Person>("choise", ()->getPerson(), ()->getAllPersons());
все. и это еще хуйня. в викете куча вещей длелается в две строки - аяксовые асинхронные вызовы, обновление части страницы, собственные компоненты и т.д. и т.п.
то что на жсп ты будешь делать кучей мутного кода в викете делается в две строки. (именно в две, с появлением лямбд он стал супер компактным)
> Я не говорю, что это абсолютно плохо. Для большой команды - наверное хорошо. Один пишет кнопку, другой - селект, третий - див. все ровно наоборот, нормальный фреймворк позволяет за день сделать то что на голом жсп команда из трех человек будет делать неделю и не факт что сделает. викет тут еще не лидер в плане производительности. Какой-нибудь ваадин позволяет полноценный рич-клиент сделать за пару дней.
Попробуй туториал пройди по ваадину или хотя бы видосики посмотри. https://www.youtube.com/user/vaadinofficial/videos То что в этих туториалах делается за час на жсп ты будешь делать дни а то и недели.
Но он очень плохо кастомизируется в плане UI, поэтому подходит только для интранета/ынтерпрайза. А викет кастомизируется на отлично, можно любую морду прилепить и его можно использовать везде.
>>1878095 > Vaadin - это такой GWT на стероидах или что? именно, у него под капотом GWT. причем в отличие от GWT не нужно ждать всей этой компиляции в жс, оно уже прокомпилировано за нас.
> Стоит ли сейчас в него вкатываться, не поздновато ли? он вполне живой, можно и вкатиться, нужно только понимать что у него с UI все те же проблемы что и у GWT, кастомизируемость очень низкая. но для ынтерпрайза вполне норм. а если ынтерпрайз шибко жирный то можно и свой LaF на него запилить. сбер же свой скин для гвт сделал.
сам я в реальных проектах его не использовал, но когда делал пет проект был приятно поражен насколько он быстр в плане разработки.
алсо вот тебе скриншот из гугла который как бы намекает
>>1878098 ну и да, если по HH поискать то жирнота типа альфы, сбера, северстали и прочих монстров ищут людей со знанием ваадина, значит он будет жить еще долго, легаси страшная сила.
>>1878105 > Пахнет васянством, хоть и от Google. наоборот, монстрообразная оверинжиниринговая хрень, как по мне. кровавый ынтерпрайз как он есть. попытка сделать аналог свинга для веба.
фишка еще в том что он хорошо подходит для маленьких сайтов/приложений, но его никто там не использует так как у него огромнейшие проблемы с индексированием в поисковиках. а на больших приложениях, где он только и используется, он дичайше тормозной, как во время разработки так и во время использования.
я видел проект на GWT где компиляция занимала больше часа и браузер у пользователя потом перемалывал его минут пять на старте.
Хоспаде чому так сложно, я как вижу это Scanner Scanner = new Scanner(System.in) у меня в голове все путается, видимо я не способен стать програмистром. Какого хуя сканер сканер = нью сканер, что вообще это значит, почему повторяется сканер
>>1878131 Тип название_переменной = значение. В твоём случае значение - это результат вызова конструктора класса, а название конструктора, как известно, совпадает с названием самого класса. Вместо Типа переменной может быть любой предок этого класса или реализуемый интерфейс (если не добрался до этих тем, пока не задумывайся об этом), и в таких случаях тип будет отличаться от конструктора. Ну а саму переменную зачастую нет смысла называть сильно иначе, чем тип, потому что сразу понятно, с какой сущностью работаешь.
>>1878131 Я когда начинал учить джаву (после питона) тоже возмущался, какого хуя так многословно. Да и вообще зачем эти типы тупые нужны. Но стоило мне только понять что есть что (как >>1878138 написал), так сразу же всё стало невероятно логичным. А после, во время работы с джавой и джэсом одновременно, понял, что типы это круто.
>>1878835 А как ещё ему прочитать ввод с клавиатуры без ООП. если в жабе даже System.in.readln() нету? Так и писать println-онли программы, пока не дочитает до главы про классы?
>>1879094 Альтернативы спрингу нету, ееху прикрыли а она была единственным конкурентом, ну как конкурентом сзади спринга че то хромала, упала, а поддерживать уже некому
Маня, попустись, во времена котлина дрочить на груви - ну это бля, не знаю, неактуально что пиздец.
Когжа жабушка была 1.6 и это была самая популярная технология в жвм-мире, да, груви и его грейлс выглядели как ПРОРЫВ нахуй.
Но щас грувям можно отвести только роль скрипто-языка. Действительно иногда удобно заебошить один файл с грабом и выполнить это дерьмище где-нибудь разово, чтобы не дрочить руками.
Второй крупнейший мировой производитель ПО, корпорация Oracle, решила перенести свою штаб-квартиру из Редвуд-Сити (штат Калифорния) в Остин (штат Техас). Причина – в стремлении сократить расходы благодаря отсутствию подоходного налога в Техасе, сообщает Bloomberg.
Добрый день, народ, взяли меня значит стажером в ноунейм инвестиционную компанию, хотел узнать есть ли ресурсы по поводу работы с Apache ServiceMix/ Apache camel, а то мне сказали садись разбираюсь в определенных компонентах сервисов, где всё роутится через camel.
>>1879396 Дурачок не понимает, что энтерпрайзные системы благополучно живут десятилетиями, и думает, что их каждые 5 лет переписывают на текущий хайпо-стэк.
>>1879554 > java concurrency in practice Что за задачи у тебя такие, где нужно настолько глубоко задрачивать потоки, что ты читаешь талмуд на 500 страниц?
>>1879572 Ожидал этого ответа. Это не то. К Докеру, как таковому это не имеет отношения. Есть даже мнение, что кубернетис всех немножечко подзаебал, и пора переползать на терраформ.
>>1879619 Пока хайповые технологии вытесняют друг друга каждые полгода, создавая ещё больше сложностей, чем решая, "древние" "умершие" "легаси" технологии просто работают без хуйни.
>>1879660 Нет, не работает, потому что не развивается. А якобы "устаревшие" технологии вполне развиваются, просто пользоваться ими не модно, смузихлёбы не зауважают.
Народ, я стажер в ноунейм компании, хотел узнать вообще у других как начиналась ваша карьера, вас менторили ? Если да то в каком плане. А то мне сказали сиди разбирайся в море camel/apache-servicemix и море xml конфигураций, и сижу немного в ступоре что я должен здесь разбирать.
>>1880060 Да, с самого начала был тимлид, который рассказывал, в чём суть проекта, где что искать, как что работает, ключевые классы и конфиги, задачи в джире с расписыванием всех правок в коде.
> сиди разбирайся Звучит как пиздец. Попробуй вопросами всех позаебать, что-нибудь должно выясниться.
>>1842154 (OP) Ребята, помогите, пожалуйста, куда копать надо? Сделал программу, которая обращается по адресу страницы инстаграма https://www.instagram.com/АДРЕС_СТРАНИЦЫ/?__a=1. Этот запрос возвращает json с данными об аккаунте. Дело в том, что в intellij idea на локальном сервере всё работает ок (200 response), но когда заливаю на herokuapp, то возвращает 301 ответ (редиректит на страницу логина зачем-то меня). Делаю запрос с помощтю HttpRequest. Я так понимаю, дело в headers запроса? Они отличаются от моих на локальном сервере? Мне нужно как-то скопировать свои заголовки и задать их через код?
>>1880104 Я сейчас вывел на консоль request.headers() и там вообще пусто. Но, когда я добавляю свои заголовки вручную, они там появляются. Я добавил "Authorization" : "authType fhjghfjsghfsghjsf" и ничего не поменялось. На локальном сервере изначально тоже ни одного заголовка нет, но мой запрос как-то получает 200 ответ без редиректа. Как так?
>>1880111 Короче, тебе либо надо залогиниться передав свой данные в отдельном запросе и использовать header "Authorization" из ответа логина для дальнейших запросов.
>>1880060 У меня похоже, только я был не стажером, а уже полноценным работником. И мой начальник, который в программировании не особо разбирается, сказал мне сидеть и разбираться с "этим, этим и вот этим". Других программистов в компании не было. Так что сидел и разбирался. И так после института я вышел с пустой головой, то пришлось разбираться во всем. Вообще сложно разбираться в чем-то, когда не знаешь что с этим надо будет делать. Так что, как тебе уже посоветовали, позадавай вопросы, на что именно тебе обратить внимание.
Других программистов в компании не было. Да и других работников тоже не было, я один в офисе сидел. Сам начальник приезжал в офис раз в два-три месяца, обычно мы с ним переписывались и раз-два в неделю созванивались. Весь проект (фулстек) я тянул на себе (напомню, это была моя первая работа и впервые что-то большее lab1) и от этого было очень тяжело. Ну хоть зарплата была нормальной. Через год я уволился.
>>1880142 С версткой как всегда проебался, но да ладно. Сразу же дополню: Вот этот >>1880081 правильно сказал. Как программисту, тебе постоянно надо будет в чем-то разбираться, что-то читать и узнавать новое (хочешь ты того или нет), со временем привыкнешь. Добро пожаловать.
>>1880144 Это то я понимал изначально, просто когда дают тебе компоненты проекта, с фреймворками с которыми ты не то что не сталкивался, а не слышал, это я про ServiceMix, и говорят разбирайся в компонентах проекта, потом будешь рефакторить, и не видишь где логическое начало кода, потому-что всё в camel-context.xml, но это не суть, просто давно себя таким идиотом не чувствовал, прыгнул в море и *бись, хз даже какие вопросы задавать, ибо никогда не имел дело с роутингом сообщений в camel и не работал с очередями.
>>1880387 Спринг не нужен. Давно уже стал более монструозной хуитой, чем было EE. Причём, на нормальных EE серверах всё из коробки работало, а тут ёбаный колхоз какой-то.
>>1879574 Тут под докером подразумевается конкретная прослойка, которая используется для запуска контейнеров. Если ты создавал совместимые со стандартом контейнеры, то они запустятся в новой среде без проблем. замени "docker" на "podman" и по сути нихуя не поменяется. Можешь даже алиас между ними сделать, если так нравится слово docker
>>1880486 > Причём, на нормальных EE серверах всё из коробки работало, а тут ёбаный колхоз какой-то. ебаный колхоз у тебя в голове. ждать пять минут пока вебсфера просрется чтобы посмотреть как ты бин обновил - вот твои ЕЕ сервера. деплой томката со спрингом аналогичного функционала - 10 секунд. не говоря уже о тестировании где написание банальнейшего юниттеста какого-нибудь контроллера превращается в адовый квест.
Можно через классы ServerSocket и Socket по локальной сети подключиться? Если можно в клиентской программе в конструкторе Socket на место адреса для подключения что нужно будет писать? Внутренний ИП или внешний динамический. Просто если там все непросто неохота на тянкин комп просто так ждк ставить.
>>1880575 Спасибо. А вот чтобы написать простой консольный чатик, что нужно сделать, чтобы сообщения не по очереди принимать в цикле, а в любом порядке? Потоки разные или как?
>>1880618 Достаточно сложно, проще найти готовый пример или сделать HTTP-сервер на каком-нибудь спринге. Если у тебя UDP, то можно с определённым таймаутом пытаться принять сообщения с какого-то определённого порта, на который второй клиент будет что-то слать, и параллельно читать ввод с клавиатуры и отправлять данные на такой же порт второго клиента. Если TCP, то у тебя будет приложение-сервер, запущенное на одном из хостов, и приложения-клиенты, подключающиеся к этому серверу. И тут можно каждому клиенту либо юзать сразу два порта - один для входящих сообщений, один для исходящих, либо юзать только один порт, с которого ты либо отправляешь серверу пакеты вида "сервер, отправь такое-то сообщение такому-то клиенту" или "сервер, есть новые сообщения? Если да, пришли в ответ". А сервер пересылает сообщения нужным юзерам.
>>1880639 У тебя статическая типизация, и метод всегда будет возвращать JSONObject или null. Вопрос лишь в том, корректные ли в нём данные, это и надо проверять в юнит-тесте.
>>1880641 Еще раз спасибо. Ну вот самый простой для моего понимания способ - это через 2 порта. Но как сделать, чтобы методы приема/передачи работали параллельно? Каждый в своем потоке и постоянно их усыплять на пару миллисекунд?
>>1880650 Да, два потока. В одном ждать входящие сообщения и выводить в консоль, в другом - ждать ввода с консоли и отправлять исходящие. Можно и не усыплять, для задачи такого уровня это не проблема, пускай поток блокируется и ждёт данные из сокета или с клавиатуры.
>>1880666 >Асло, зачем это тебе? Иду по учебнику джавакора и захотелось поиграть и что-то написать по материалу главы. По хттп мне нужен статический ип. Он стоит 2 сотки в месяц. Если буду всякие спринги потом учить то тоже поиграю и куплю, а для простых сокетов пока жалко. Кстати много можно на голых сокетах написать?
>>1880698 > По хттп мне нужен статический ип HTTP - это обёртка над сокетами, ты точно так же можешь запустиить http-сервер в локальной сети. > много можно на голых сокетах написать? Всё. что угодно - почта, FTP, HTTP, AMQP. Правда, времени реализовывать это с нуля уйдёт много.
>>1880698 Тебе уже сказали про локальную сеть. Но, ты можешь запустить http даже на 127.0.0.1 А потом - совершенно бесплатно задеплоить свой чятик на Heroku, и пригласить нас пообщаться.
Алсо, это всё можно ещё и через браузер. И на веб-сокетах. Но, это уже будет не совсем кор.
>>1880735 JSONObject - это джава класс, я полагаю. И речь о том, какие данные в его полях. Например, он может быть просто пустым. Или с неверной датой. Или без кода товара, например.
Аноны, делаю курсач - сайт на спринг буте. У меня через форму загружается фотка. Если её не залить, получится пикрил хуета, а я хочу прост пустое место. Че поменять надо если в чтмле картинка энивей выводится
<img alt="" th:src="*{'data:image/jpeg;base64,'+{el.image}}" style ="width:350px; height:350px"/> Хотел вместо 350 засунуть кастомную el.width, но это так не работает Картинка по цвету фона тоже не варик, отступ большой будет
господа, есть приложение на javafx, есть контроллер, есть юнит тесты. как в юнит тесте получить доступ к контроллеру? у меня когда в методе, другой метод вызывается ексепшн выкидывает
>>1842154 (OP) Аноны, делаю апишку на спринг бут. Как изменить начало пагинации с 0 на 1? spring.data.web.pageable.one-indexed-parameters=true в аппликейшн.пропертис не помогает
>>1880804 бамп вопросу. как этот ебучий Pageable настроить, чтоб отсчет шел с 1, а не с 0? в инторнетах предлагают spring.data.web.pageable.one-indexed-parameters=true, но мне он нихуя не помогает
Инициализация объектов в джаве - изъян в архитектуре языка? Если забудешь это сделать, рано или поздно будет NPE. Спринг например борется с тем, чтобы вы не мучились с созданием объектов через new.
>>1881111 > изъян в архитектуре языка? В каком-то смысле. Но разделение на nullable и не-nullable вводить уже поздно, да и оно выглядит как костыль. И всё равно придётся юзать nullable для инициализации структур данных с циклическими зависимостями. > Спринг например борется с тем, чтобы вы не мучились с созданием объектов через new. Спринг нужен для удобства управления ресурсами (БД, например), чтобы не писать код инициализации руками. Объекты, которым подобные ресурсы не нужны, так и создаются через new.
>>1881511 Кстати да, сомневаюсь, что тут даже студенты итмо или мфти будут сидеть. Все эти треды для вкатунов или вообще для людей без образования или для тех кто закончил говновуз по ит-специальности. И для таких людей соотношение польза/усилия+время от задрачивания мощного фундамета cs очень обычно весьма низкое.
Сервера приложений никуда не делись. Просто их роль теперь выполняют докеры и кубернетесы. Когда до всех это дойдёт, спринг бут сразу же выпилят и вернутся на ЕЕ.
>>1880097 Вообще >Код состояния HTTP 301 или Moved Permanently (с англ. — «Перемещено навсегда») — стандартный код ответа HTTP, получаемый в ответ от сервера в ситуации, когда запрошенный ресурс был на постоянной основе перемещён в новое месторасположение, и указывающий на то, что текущие ссылки, использующие данный URL, должны быть обновлены.
Но может быть проблема связанная с cors-политиками?
у меня есть патч метод, который изменяет поле. я хочу, чтоб при повторном отправлении этого запроса, ничего не происходило. я понимаю, что мне нужны куки, для определения сессии, но как мне проверить, что этот пользователь уже отправлял данный запрос?
>>1882299 Выдавать юзеру куку, означающую, что он уже вызывал этот метод, и если эта кука потом пришла на сервер, ничего не делать. Но если ты предполагаешь, что пользователь дофига умный и эту куку будет удалять, а ты этого не хочешь, придётся где-нибудь на сервере явно хранить список юзеров, отправлявших запрос, хоть в памяти, хоть в БД. Может, можно придумать что-нибудь с @Cacheable.
>>1882299 Куки - не нужны. Если нужно надёжно - то только флаг на сервере, причём, там же, в БД (поле), и в рамках той же транзакции. Если не нужно надёжно - то совсем не нужно.
Но, само по себе требование выглядит довольно странно. Если поле имеет отношение к пользователю - то тут и вопроса возникнуть не должно. А если не имеет - то при чём тут это ограничение?
>>1882316 >что этот пользователь уже отправлял данный запрос? Добавлю - а если он его три дня назад отправлял? А если в прошлом году? В этом дизайне чего-то не хватает, понимаешь?
>>1882310 >>1882316 >Выдавать юзеру куку, означающую, что он уже вызывал этот метод, и если эта кука потом пришла на сервер, ничего не делать. тоже думал над этим, но если у меня много таких запросов? типа /review/{reviewId}/like - тут получается на каждый лайк комментарию придется добавлять куку >Но, само по себе требование выглядит довольно странно. это мой пет проект. я просто хочу сделать так, чтоб пользователь не мог накрутить дохуллион лайков\дизлайков просто тыкая на кнопку. Причем речь идет об неавторизованных пользователях других нет, да и не будет
>>1882299 1. Нахуя тебе что то кроме гет и пост? Ладно делет или пут, но патч ни разу не видел в проектах. 2. Идемпотентность. Твой апи/метод апи/метод контролера/метод сервиса обязан им быть. Потому решай это внутри самого метода. Как? Это другой вопрос.
>>1882506 На фулстаке проще получить фулсак, мне кажется)
Тот же Немчинский не верит в фулстак.
Да и я тоже. Сам знаешь сколько всяких горе-вкатывальщиков (типа меня). Нам бы одну стезю освоить нормально. Да и речь не только про трейни-джунов, как я понимаю.
>>1882542 Я не про вкат. Для вката это несерьёзно, конечно. Ну, и фуллстак я считаю возможным в случаях, если фронт не слишком сложный, и его не слишком много.
>>1881157 Спринг нужен был изначально не для управления ресурсами. А для управления _зависимостями_ - dependency injection. Ну а потом туда навалили ещё самого разного говна, на все случаи жизни.
За сколько месяцев изучения (с нуля) получилось вкатиться? Или не получилось. Учу 3 месяца. Вроде как и есть синдром самозванца и вся хуйня, но мне кажется, что я реально говно) и такое ощущение, что год надо учить, чтобы норм ся чувствовать.
>>1882626 Лучше совмещать вкатывание с работой. С какого-то уровня уже можно найти работу, хотя, ты, формально, ничего серьёзного ещё не умеешь. Многое зависит от того, где ты живёшь, и есть ли там работа. На удалёнке ньюфагу найти работу нереально, мне кажется.
>>1882644 > что теряешь в случае Gradle Может не быть специфичных плагинов, которые есть для мавена. Например https://spring.io/guides/gs/producing-web-service/ > Because Gradle does not have a JAXB plugin (yet), it involves an Ant task, which makes it a bit more complex than in Maven.
>>1882685 У меня лично нет. Теоретически - могло бы быть, но сейчас - нет.
Но, найти работу вообще не сложно. Сложно найти интересную и высокооплачиваемую работу. Могу посоветовать на деньги не смотреть вообще. На еду хватит по-любому, какие твои годы, лол. И не рваться в крупные и известные компании.
Также, если будешь размещать резюме на hh, например, то: - Пиши о себе живым языком, не бойся выглядеть "глупо". - Не прибедняйся, но и не ври слишком много. - Давай какой-то хинт, как с тобой связаться помимо hh. Например - напиши свой гитхаб, как бы для информации о том, что ты там накодил, а на гитхабе уже - емейл. Или что-то вроде.
Чтобы с тобой мог связаться человек, который не проплатил доступ к базе резюме на hh, они берут дорого, и ради одного человека-стажёра могут не дать денег в конторе. Можно попробовать прямо email указать в тексте инфы в резюме, но, hh может запретить это, х.з., надо пробовать.
>>1882676 Ну, это не очень большая проблема, мне кажется.
Правильно ли я понимаю, что в случае Gradle ты можешь писать произвольный код для билда/деплоймента и вообще имеешь большую гибкость, а в случае Maven ограничен какими-то предопределёнными действиями, плагинами? И важно ли это на практике?
>>1882763 >> ты прям с нуля? Да, можно и так сказать
Уволился с работы. Сижу уже 3 месяца втыкаю в java. Максимально во всем себя ограничиваю(в плане развлечений), но все равно половина (если не больше) времени вылетает в трубу спасибо ебаному СДВГ.
Скачал дохуя всяких курсов по java с рутрекера. Смотрел основы. Знакомый кодер подкидывал задачки. Первый месяц-полтора учил синтаксис, решал его задачки. Смотрел уроки. Потом по рекомендации кодеров залез на пресловутый jrush, который многие ругают. Дохуя воды и однотипных заданий, но зато есть структура какая/никакая. и можно "подшлифовать" основы. Мне назначали, чтобы я прошел за 2 недели 20 лвлов, но это довольно трудно. Особенно, если проебываться. В итоге, закончил все это за месяц (как раз под конец подписки). Затем приступил к изучению коллекций более плотному. Сейчас учу курсы по Spring, базы данных втыкаю (SQL и т.д). Открываю наборы всяких "вопросов к собеседованиям" и учу ответы на них. Параллельно все время смотрю всякие уроки на ютубе. +Пытаюсь читать "Философию java"
Херово то, что многие кодеры (сужу по тем, которые делают видеоуроки и курсы) так-себе в искусстве объяснений. Многие очень сухо/сложно/хуёжно объясняют. Прям толковых и понятных уроков оч мало чет.
Где я могу почитать (книги, статьи) про то, где запускаются потоки? Допустим я создаю новый поток, он же у меня не на втором ядре процессора запустится? Потоки вообще одновременно работают, или работает один, прерывается, работает другой и так далее? Я сейчас читаю "Concurrency на практике" и мне нравится, но также хотелось бы разобраться так же в более низкоуровневых (я не знаю как их правильно назвать) вещах.
>>1882780 Я вспоминал его, пока писал вопрос. Но, насколько я знаю, на разных языках программирования по разному, тут одними операционными системами не обойтись. __ Вообще я собираюсь в ближайшее время прочитать несколько книг, в том числе и по ОС что-нибудь, так эти пробелы в знаниях закрою.
>>1882758 Ты же хочешь найти работу (стажировку) почти нихуя не умея и не имея? Вот поэтому.
>>1882762 У тебя нет знаний и опыта. Поэтому, нанимателю (нормальному) интересно знать, что ты за хуй такой по-жизни. И стоит ли тратить на тебя время. Поэтому, надо рассказать, что тебе интересно, и на что у тебя есть мотивация.
>>1882779 Как раз на втором ядре и запустится, скорее всего. За это отвечает jvm и операционная система, и они будут стараться раскидать потоки по ядрам. Возьми да проверь - добавляй по одному потоку, и смотри загрузку ядер.
>>1882782 >Ты же хочешь найти работу (стажировку) почти нихуя не умея и не имея? >Вот поэтому. вообще не понял, как это коррелирует. наоборот, в больших компаниях чаще есть вакансии на стажеров. Я думал, что речь о каких-то минусах больших компаний, типа заявок на каждый пук и тысячелетнее ожидание, когда они выполняться.
>>1882721 > Чтобы с тобой мог связаться человек, который не проплатил доступ к базе резюме на hh, они берут дорого вот кстати поддвачну. у нас открыто постоянно в течени года три-пять вакансий, так эти пидоры прислали счет на 240 тыс на следующий год, совсем охуели.
>>1842154 (OP) Я правильно понимаю, что в простейшем варианте тред общается с остальной программой через какой либо переданный в него при создании объект. То есть, если у меня есть общая для всех структура с данными, в которую треды должны писать - я должен передать ее в каждый тред при создании?
Существует ли книга или сайт, где подробно описана теория веб разработки? Чтобы там с нуля как для даунов было описано что такое CRUD, REST, GET, POST и т.д.
>>1882821 Это очень по-разному. Зависит от задачи. Почитай книжку. То, что ты описал (одна структура на все потоки) - это наиболее мозгоёбный вариант, где все прелести конкурентного доступа вылезут во всей красе.
Также, надо разделять параллелизм и конкурентность - это разные вещи, но, и то и то делается через потоки.
>>1882921 CRUD - это просто "создание-чтение-изменение-удаление" каких-то данных. Любых. Любым способом. Остальное - в гугле. И в любой книге для ньюфагов по теме веб-разработки на интересных тебе технологиях.
Вообще, это очень глубокая тема, и перед тем, как в неё нырять, неплохо бы научиться находить нужную инфу в интернетах самостоятельно. И желательно по-английски.
>>1882963 Да у меня вроде нет с этим проблем, просто кодерки переоценивают самостоятельную гуглежку и недоценивают сбор персональных мнений. А concurrency in practice под старую версию написана, думал появились аналоги какие то. Ну да ладно.
>>1882781 Из за кроссплатформенности то как запускается тред решает jvm, если зайдешь в thread.start там будет нативный метод start0 реализацию скидываю: http://hg.openjdk.java.net/jdk10/jdk10/hotspot/file/tip/src/share/vm/prims/jvm.cpp искать метод JVM_StartThread Скинул просто что бы ты знал где искать. Если ты изучаешь concurrent с нуля, лучше не лезь туда, лучше всякие валатайлы с атомиками посмотри. Если уже все знаешь то лезь куда хочешь дело твое
>>1883105 Я сам ручник qa, хочу в автоматизацию влезть через годик. Читаю хедфёрст книжку по джаве, параллельно делаю задачки, сижу на javarush. Плюс видеоуроки смотрю, когда не понятно что-то. Пока у меня нет вообще представления что такое программирование на java, задачки я вроде понимаю, стараюсь разобраться в каждом методе, классе, что это и почему именно так и здесь используется, что вгоняет меня в еще большие дебри. Пока я верю в то, что если я буду уделать обучению java регулярно время, то через полгода, год, я точно продвинусь и смогу найти работу джуном автоматизатором.
>>1883493 Сначала мне тоже дохуя чего было непонятно. Это обычное дело. Вские конструкции типа: Huila huila = new Huila(); Вообще были не ясны и прочее. Сейчас я пришел к тому, что если чет непонятно - попытайся разобраться, но прям до победного не всегда есть смысл упарываться. Просто двигайся дальше и возвращайся периодически к пробелам. Увидишь, как они затираются постепенно
Чем отличается собеседование на джуна и на стажера? Понимаю, что в каждой команде могут все по-своему воспринимать и порядки налаживать. Но в целом. Какие требования для стажера?
Я думаю, формулировка "стажер" должна подразумевать то, что человек зеленый, учится, скорее всего без опыта и все такое. Должен знать какие-то минимумы, а потом будем его натаскивать.
>>1883554 От стажёра ждут знания кора, поверхностного знания стека и умения быстро обучаться. От джуна уже ожидают, что он может делать реальную работу. Грань, конечно, размытая.
>>1883586 Это, собственно, и есть стек. Конечно, надо знать sql, мавен, git и мочь сделать простейший круд на спринге. Правда, с таким уровнем могут и джуном взять. Наверное, разница как раз в архитектуре, паттернах и бестпрактисах всяких, их от стажёра ждать не будут.
сап, двощ вопрос вероятно не по теме, но так как не нашел куда его пристроить, спрошу здесь. вкрации, есть как говорится два оффера из двух пикрелейтед, внезапно прилетевших одновременно https://career.habr.com/companies/iteco https://career.habr.com/companies/digitalleague условия оплаты и работы практически идентичны, пилить микросервисный бэкэнд на популярном ныне стеке spring boot, kafka, docker/openshift. к слову, доселе не работал ни с чем из вышеперечисленного, последние лет шесть неторопливо пилил томкатный монолит на спринге, но 2020 простимулировал финансовые поиски нового и неизведанного, и благодаря неплохому сиви и двухнедельному интенсиву по прохождению интервью, получил два оффера из сабжевых аутстаффинговых контор. в первом некий проект для газпромбанка, во втором для сбера. что выбрать? в некотором замешательстве, поскольку желательно определиться в ближайшее время. может быть кто то работал в той или другой конторе и знаком со внутренней кухней. или имеет некие представления. буду крайне признателен за обратную связь!
>>1884299 типикал интеграторы пофигу куда идти кмк для новичка самый ок, хорошенько поваришься в кухне и поймешь что к чему, а потом уже на что-то более денежное и интересное перекатишься
>>1884470 Не странно, все стажировки в дс куда писал это только для действующих студентов доступны. Правда видел еще какие-то стажировки после курсов, но я сам учу все. Хочу узнать у анонов кто работает, берут ли к ним джунов без вышки.
>>1884487 >> берут ли к ним джунов без вышки. Да везде своя кухня-кукухня, анон
Туда, куда ты попал - бзик по вышкам, видимо. Во многие конторы берут без профильной вышки, куда-то хотят именно профильную. Каждый правит своим болотом как хочет. Засылай дальше резюме и не останавливайся. В один момент пробьешь дно эту стену вакансий
>>1884546 > неторопливо пилил томкатный монолит на спринге ты не очень представляешь что такое работа в интеграторе видимо
это не один проект, который ты пилишь несколько лет, это десятки проектов за год с совершенно разным зоопарком технологий, кучей легаси, говнокода, разных систем сборок и т.д. и т.п.
томкат ты пилил, а вот тебе вебсфера, а тут жбос, а тут глассфиш а тут вообще надо полностью неблокируемую раздачу на андертоу сделать.
спринг? а вот тебе легаси проект на ежб да еще и с седьмой жавой. а вот тебе guice, а вот тебе JSF, а вот тебе стратс, а тут спрингбут, а тут ваадин, а вот GWT, а вот вообще адова опенцмс.
а еще, если попадешь на проекты для госструктур, готовся к глючным либам по интеграции со СМЭВ, криптографией и прочим прелестям пидорахенского айти.
оно конечно если ты джун то тебя посадят на один проект и ты будешь в него вникать, но как только ты вырастаешь до сеньора и выше то тебя начнут по разным проектам кидать и готовься к тому что я выше описал.
> неторопливо забудь это слово, в интеграторах сроки горят перманентно.
Насколько важно сразу научиться использовать гоф-паттерны? Решаю задачки у джетбрейнса и большие задачи(на 300-500 строчек) решаю тупо в 1-2 класса. А потом смотрю чужие решения и у залайканых людей там раскидано по 10 классам, с применением паттернов. А я даже не очень понимаю, как применять даже те паттерны, которые учил. Тут мне надолго придется засесть наверно. Стоит этому внимание уделить побольше, пока я кор не весь еще изучил?
Анчоусы, захотелось погладить жабу Для начала думаю запилить самый обычный рест Вроде сам жабакод понимаю /классы, наследования, декораторы и т.п./, но от всего окружающего глаза начинают на лоб лезть Чому у каждого файла в проекте путь из 5+ вложенных папок? Что за xmlы, почему они используются для многих вещей, но выглядят как непонятно сгенерированная хуйня? Что за сервлеты? Без томката (это какая-то надстройка над обычный апач, чтобы крутить жаву?) никак? Гредол или мавен? Они ставят одни и те же пакеты из тех же реп? В чём разница?
>>1885194 теоретическая высосанная из пальца хуита как по мне. все эти паттерны они сами самой начинают получаться когда опыта набираешься. а потом оказывается что кто-то их где-то описал уже. к тому же в 95% случаев можно сделать проще, чем описывают шаблоны.
в любом случае новичку не стоит на них заморачиваться.
>>1885194 Мое мнение не стоит, можешь их прочитать но использовать не советую, все эти паттерны рассчитаны на максимальную масштабируемость, которая нужна в 2 из 10 случаев. Во всех остальных случаев ты создаешь дохера классов и интерфейсов, которые никогда не будут использоваться, а будущим программистам в этой херне разбираться, а скорее всего переписывать.
>>1885170 > Чому у каждого файла в проекте путь из 5+ вложенных папок? эти папки формируют полное имя класса (package.ClassName), которое должно быть уникально для всех классов загруженных в jvm > Что за xmlы, почему они используются для многих вещей, но выглядят как непонятно сгенерированная хуйня? используются для конфигурации многих фреймворков. раньше использовались в спринге как основной метод конфигурации, ныне заменены @Аннотациями > Что за сервлеты? Без томката (это какая-то надстройка над обычный апач, чтобы крутить жаву?) никак? какая-то слишком низкоуровневая фигня, до сих пор не знаю как там и че, но спринг на них работает да > Гредол или мавен? пофигу в целом, но гредл лучше читается > Они ставят одни и те же пакеты из тех же реп? репозитории ты сам указываешь > В чём разница? для более детальных познаний гугол, бро
>>1885639 System.getProperty("file.separator") Но / работает на шинде и так. > main\resourcer? Если только для чтения, юзай спринговый ClassPathResource или родной getClass().getResourceAsStream().
>>1884352 благодарю, в общем то то же пришел к тому что отличия минимальны
>>1884615 соглашусь, тема с микросервисами прошла мимо, и сейчас погружаясь в теорию прифигеваю насколько всё изменилось
>>1884691 честно говоря хз, бэкэнд для неких банковских процессигов. вероятно дань моде, как и микросервисы, которые сейчас повсеместно, и насколько я понимаю не везде нужны в действительности
>>1884747 ну есть некоторые представления, но до этого как-то да, старался избегать подобной многопроектности. с другой стороны хотелось вкатиться в финтех, и насколько я понял большинство вакансий в этой области от интеграторов
Я вот собрался клаву новую брать. Подумал: В жопу TLK, нужно полноразмерную, хуё-мое. А потом вспомнил, что достаточно долго юзал макбук, на котором нет нампадыча и все збс было. И подумал, что в рот его ебать тот нампад. Без home/end не оч комфортно будет, а вот намыч мб и отрезать можно. В крайнем случае, куплю отдельный модуль нам-пад. Что скажете?
>>1885788 Не страдай хуйнёй, бери стандартную полноразмерную клавиатуру с классическим расположением клавиш. Если можешь себе позволить и не боишься шуметь по ночам - бери хорошую механику.
Если будешь брать механику - бери тип клавиш Cherry MX Brown. Бывают ещё Red и Blue. Лучше, конечно, прийти в геймерский магазин и потыкать самому в разное. Но, Red - без тактильного ощущения срабатывания, а у Blue - тактильное ощущение слишком сильное, и они шумнее. Поэтому, для набора текста народ берёт, в основном, Brown.
>>1885795 Та у меня есть механика на красных. Хочу новую Думал синие взять и тарахтеть ебать как, но чет отговаривают. Говорят, что заебусь в край. А вообще, разговор был не про свитчи, а про формфактор.
>>1885800 Красные - хуйня. Это для игр. Я с дуру купил пару лет назад, за хуевы деньги, и так и лежит в шкафу. Синие тоже не надо.
Форм-фактор - только полноразмерная, с нумпадом. Если есть деньги, и хочешь низкопрофильную - Logitech MX keys. По идее - это калька с новой эппловской полноразмерной клавиатуры. Я сам не пробовал, но, народ очень хвалит.
Если это (по ощущениям) то же, что клавиатура макбука про, то должно быть очень хорошо. Думаю себе взять, но, пока не нашёл, где попробовать живьём.
На самом деле, в последние годы стал популярным образ модного-молодёжного программиста-хипстера. У которого обязательно чёрный экран на мониторе или ноутбуке. Даже белым солнечным днём. И "пишет" "код" он обычно на ноутбуке. А если на большом компе, то клавиатура - обязательно эппловский ноутбучный огрызок. Этакий ложно понятый минимализм.
И пишет он обычно на ноде-жс и реакте (10 лет назад это были рельсы и руби).
Так вот, джаваёбы - люди серьёзные. Они это презирают. И используют мониторы 32 дюйма и полноразмерные клавиатуры с металлическим основанием. Чтобы этой клавиатурой можно было переебать какому-нибудь хипстеру так, чтобы из него всё смузи вылилось нахуй.
>>1885951 Ну спроси, даже не знает, если все остальное норм, то скажешь что 100% покрытие на каждый класс обязан делать и все, научится, там особо ума не надо. Заебывает только их писать, но без них хз как, только с божьей помощью
на самом деле очень советую мышь с клавиатурой сбоку типа пикрилейтеда
на эти кнопки настроить все самый частые кнопки - ентер, бекспейс, home, end, pgup, pgdown, n т.д. как только привыкнешь поразишься насколько это упрощает написание кода (и не только).
>>1885989 Я в какой-то момент заставил себя научиться кодить только с клавой, очень сильно увеличивает кпд, в редких случаях конечно без мыши не обойтись, но в целом она не нужна
>>1885884 >>1885989 Добавлю ещё про мышь - обязательно колесо прокрутки должно быть тяжёлым металлическим маховиком, со свободным вращением, как в логитековских MX. Чтобы можно было раз крутануть, и оно по инерции крутилось, пока не остановишь. Это единственное, что принципиально в мыши. И сама мышь, соответственно, должна быть достаточно массивной (но не тяжёлой, конечно).
>>1886039 Нахуя, когда у меня есть мышь с маховиком, и я настраиваю акселерацию, крутя маховик пальцем, так как мне удобно именно в этот момент? Это совершенно другой экспириенс.
Дети цифровой эры не осознают всей прелести аналоговых контролов, лол.
У каждой сущности есть OneToMany List<Description>. Учитывая, что сущностей тысяча, а у этих сущностей может быть хуева куча описаний, не совсем хочется создавать отдельную таблицу descriptions, на которую будут ссылаться все остальные сущности. Как я могу создать таблицу xyita_table и таблицу xyita_descriptions_table, не создавая таблицу descriptions? Вариант с созданием отдельной сущности XyitaDescription на каждую сущность, очевидно, отпадает
>>1886015 последние лет 7 пользуюсь microsoft arc touch недавно сломалась, пробовал перейти на новую версию, но не смог пользоваться новым скроллом как по мне в лучшая реализация скролла, колесные у меня регулярно ломались, а здесь он хоть и сенсорный, но с эмуляцией щелчков и акселерация настроена оптимально. хотя это возможно привычки
>>1886143 >microsoft arc touch Не пробовал, но, идея понятна.
Что-то среднее между эппловской мышью с тачем и эпловским же тачпадом. Да, такие вещи работают, и управление акселерацией весьма годное. По-сути - симуляция аналогового управления.
>>1886119 > не совсем хочется создавать отдельную таблицу descriptions, на которую будут ссылаться все остальные сущности. почему? это единственное нормальное решение тут
>>1886165 Так она станет огромной пиздец. На каждую новую запись в БД появляется n записей в таблице описаний. Там с размеров потом нормально охуеть можно будет, кмк
>>1886171 короче создавай отдельную таблицу дескрипшн и не еби себе мозги.
преждевременная оптимизация корень всех зол же. ты скорее всего не осознаешь какие размеры могут тянуть современные СУБД.
> Учитывая, что сущностей тысяча т.е. даже если у каждого объекта тысяча описаний это всего лишь один миллион срок в БД. это вообще считай что почти нихуя.
алсо, даже если бы у тебя там были бы миллиарды строк то все равно нужно было бы создавать одну сущность а то что ты хочешь сделать, а именно создание нескольких файлов для хранения данных и индексов нужно делать средствами СУБД (например загугли table partitioning for postgres). это чисто админская задача и жава слой туда вообще не должен лезть. ну и повторяю, пока твои таблицы не достигли размера хотя бы в сотню гигабайт вообще забудь про это.
Есть несколько енамов, у каждого есть строкове поле, которое называется по разному и переопределено для каждого элемента енама. В каждом енаме также есть статический метод getByИмяПоля, который итерируется по всем элементам енама, сравнивает значение поля с аргументом и возвращает один из элементов. Вопрос, можно ли это как-то переписать, чтобы не дублировать код?
>>1886568 >>1886589 Не надо рефлексировать, лол. Надо вынести метод для поиска в утилитный класс (модуль, строго говоря, т.к. метод static). И сделать общий интерфейс у этих енумов. https://pastebin.com/rwMi5env
>>1886648 Ебать, нам и один ломбок не нужен, а тут новые ломбоки пилят. Вообще, надо описывать дата-классы в виде XSD и генерить через jaxb-maven-plugin, а иммутабельность на самом деле не нужна.
>>1886653 все эти либы они от хуевого дизайна кода. если у вас началась ебля с енумами то значит вам нужны не емумы а нормальные датабины/ентити и дао/билдеры для них.
Анон, занимаюсь фронтом. Хочу перекатиться в бекенд. Выбираю между шарпом и джавой для бекенда в Украине. Цель не выявить лучший, а более перспективный по времязатраности/зп/месту
>>1886662 >Вообще, надо описывать дата-классы в виде XSD и генерить через jaxb-maven-plugin So enterprise, such EJB.
>>1886826 >ну типа чтобы гетеры и сеттеры не писать. А также equals/hashCode/toString/builder и проверки на обязательные поля. Когда у тебя два десятка полей замучаешься это все перегенерировать на каждое добавленное поле.
>>1887103 стажером может и возьмут где-нибудь Но "знаю сервлеты" звучит дико, такого лучше на собеседовании никому не говорить. По крайней мере если ты сходу не можешь сказать, чем, например servlet-api третьей версии от второй отличается, а третья от четвертой, с пониманием механизмов реализации. Иначе мокнут тебя в говно с головой сразу же.
>>1887152 > Когда у тебя два десятка полей замучаешься это все перегенерировать на каждое добавленное поле. хуита же, любая нормальная иде все это генерирует по шаблонам сама.
>>1887155 > чем, например servlet-api третьей версии от второй отличается, а третья от четвертой, с пониманием механизмов реализации Со второй версией не работал, за остальные поясню без проблем, включая асинхронную/неблокирующую работу с body stream. Ты кстати забыл пятую, которая jakarta.
>>1887263 Наша параша отличается например тем, что: 1) енумы могут содержать вложенные поля 2) hashcode/equals будут работать примерно как в ломбоке, т.е. сравнивая поля 3) есть паттерн матчинг (свитч на стероидах)
>>1887396 Ты не шаришь просто. Пришёл утром на работку, попил кофейка, попиздел с коллегами. Сходил на дейли, рассказал чем занимался разумеется некоторые вещи умолчал, ввернул пару быдловатых шутеечек, тестировщицы смеются и улыбаются. Сел за рабочую пеку, читаешь свежие засмеялся-проиграл треды на одном 27" 4K-мониторе, в то время как на другом смотришь какие-нибудь ролики с ютуба. А вот уже и обед! Идёте с коллегами в ближайшее кафе, где обедаете за счёт работодателя. Вернувшись с обеда, идёшь к кулеру попиздеть с коллегами и налить кофейка, после чего возвращаешься к пеке и неторопливо запускаешь идею. Пока она грузится, смотришь вебм-треды на дваче. Загрузилась. Создаёшь новый класс. Генеришь идеей всё, что можно сгенерить. Неплохо так, под соточку строк вышло, можно и закоммитить. После чего открываешь PR коллеги в гитлабе, пишешь LGTM не глядя на код, и идёшь домой
Сколько разговоров вокруг геттеров для DTO. Мне бы такие проблема, а то я трачу на всё это где-то полпроцента времени, а всё остальное время ебусь с бизнес-логикой.
Два вопроса 1.тут sql-ex советуют для отработки написания SQL. Чет я глянул, сперва там легко шло, но потом заданиях на 30-х че-то кудато не в ту степь пошло (какие-то запросы из подзапросов в подзапросах . Стоит ли так упарываться чтоб все это понять, чтоб взяли макакой? Книжка у них там какая-то ебанутая, не структурированная, может посоветуете что-нибудь как все это проще разобрать? 2. Нужно ли знание реактивного стека Спринга чтоб взяли макакой? Я вроде как наконец начал осваивать дзен Спринга обычного, сервлетного, пока не до конца конечно понимаю concurrency, но тем не менее. Но чет почитал про реактивный стэк и сразу уныние наплыло.
>>1887518 1.Ну джоины +- понимаю, подзапросы тоже. Всеравно, есть че посоветовать дополнительно? Почитать там например, желательно с задачами? С меня нихуя разумеется, тебе плюс в карму анон. 2.Т.е. получается в идеале лучше знать канкарренси и сервлет стек?
Если пользователь не может никак обратиться к несуществующему элементу (например, на фронте выпадающий список, кроме значений которого выбрать ничего нельзя), нужно ли в беке все равно описывать обработку обращения к несуществующему элементу?
>>1887521 1. Про задачи хз, что-нибудь может быть в шапке БД-треда. По мне так для вката в джаву куда важнее опыт применения SQL-запросов в своих проектах, чем задрачивание задач в духе "вывести второе минимальное значение больше указанного в каждой группе с применением оконных функций" или "сделать умножение матриц одним запросом SELECT". Написать пару-тройку пет-проектов с использованием только SQL, вроде социалочек или бложиков, довести схемы до третьей нормальной формы, пару запросов для сборка какой-нибудь простой статистики, и всё, хватит. 2. Не знаю, что за "канкарренси и сервлет стек", в спрингах надо в первую очередь знать MVC, Data и тестики. Голые сервлеты особо не юзаются, канкарренси делается через какие-нибудь ExecutorService и @Async.
>>1887529 1.голый SQL что имеется под ним? JQPL + Spring JDBC сойдет? К примеру если я напишу парочку проектов на JPQL и еще допустим один с ORM, такое прокатит, как думаешь? 2. вот то что мне нужно было, анон.
>>1887517 в реальности макаки вместо SQL пишу пикрелейтед. это, если кто не понял, реализация запроса
select * from AUTHOR a, BOOKS b where b.author_id=a.id and b.title like '%hibernate%'
так что всякие recursive join'ы ХУЙНЯ по сравнению с их реализацией в JPA.
А так то SQL нужно знать на отлично. благо он крайне прост по сравнению со стеком явы. даже его процедурные расширения типа PL/SQL и pgsql полная хуйня по сравнению с самой жавой.
я его в свое время учил по оракловым мануалам еще для oracle9i, и в них было пережевано все начиная от базовой теории заканчивая административными задачами. очень рекомендую. после оракла вам будет абсолютно похуй с какой СУБД работать.
вообще реляционные базы жава девелопер должен знать на отлично, потому что почти всегда его работа связана с ними. а когда он их не знает начинается адовый пиздец типа как в примере выше когда кодер собирался тысячу таблиц создавать потому что боялся что база не справится с его тысячью объектами.
>>1887533 JPQL - это уже ORM, под голым SQL подразумеваются нативные запросы, которые. например, можно выполнять в консольке СУБД. В проекте вместо консольки будет NamedParameterJdbcTemplate. С ORM, конечно, тоже нужно разобраться.
>>1887542 >я его в свое время учил по оракловым мануалам еще для oracle9i, и в них было пережевано все начиная от базовой теории заканчивая административными задачами. очень рекомендую. после оракла вам будет абсолютно похуй с какой СУБД работать. а ссылочку можно?
>>1887551 это все конечно хорошо, но че-то мне не видно чтоб там сам SQL хоть как-то рассматривался больше чем пары страниц, а специфику бд конкретной я и сам бы нашел((
>>1887561 так это уже почти как спецификация получается, я пока ее читать буду, забуду что в начале было. Там ни практики нет, ничего. Всеравно джавадоку по спрингу читать а не референс гайд, хорошо наверное. Но не думаю что это то что мне нужно.
>>1887568 полистал оглавление, про сами запросы там всего несколько страниц, даже про джоины толком нет ничего. Это гайд о том как вкатиться в специфику базы, ддльки там, судя по всему адмирирование, pl/sql. Для общего развития это норм, но накой мне все это сейчас Короче лучше поищу книги на рутрекере
>>1887568 в любом случае спс, буду знать где что у оракла все это есть, в принципе я и планировал на оракл пересесть с mysql который пока в тестовом режиме стоит
пытаюсь получить путь у файлу. почему вот так вот работает (getClass().getResource("/text.txt").getPath()) а вот так вот (getClass().getResource( File.separator + "text.txt").getPath()) не работает. как получить слэш просто, а не обратный?
>>1889102 ПОЧЕМУ ЛЮКИ КРУГЛЫЕ? @ ВЫ УМЕНЬШИЛИСЬ ДО РАЗМЕРОВ МУХИ И ПОПАЛИ НА ДНО МИКСЕРА, ЧЕРЕЗ МИНУТУ ОН ВКЛЮЧИТСЯ, ВАШИ ДЕЙСТВИЯ? @ ЕСТЬ ПОЕЗД, ЗАМКНУТЫЙ В КОЛЬЦО, В КАЖДОМ ВАГОНЕ МОЖНО ВКЛЮЧАТЬ И ВЫКЛЮЧАТЬ СВЕТ, КАК ПОСЧИТАТЬ КОЛИЧЕСТВО ВАГОНОВ С ПОМОЩЬЮ ЭТОГО?
>>1889132 В большинстве мест не спрашивают, разве что по приколу. Всерьёз только в яндексах-гуглах. Ещё слышал что-то про скорость самолёта в зависимости от ветра, там какой-то подвох, и решение не как в школьной задаче про реку и лодку. >>1889146 Есть вариант взобраться по стенке - масса позволит это сделать тупо как мухе. Ещё есть вариант выпрыгнуть, как блоха.
>>1889102 > А можете подсказать, какие вопросы могут быть, которые не связаны с джавой напрямую.
смотря от того куда идешь.
эйчар/ менеджер по персоналу будет задавать вопросы в духе: почему вы выбрали нашу компанию? почему решили писать на джаве? в какой области вы бы хотели работать? расскажите о себе. что вы любите делать в нерабочее время? какие у вас хобби? как вы учились в школе? пробовали ли вы писать свою игру? с какого возраста увлекаетесь программированием? кем вы хотели стать в детстве?
при этом ответы ей похую, будут оценивать тебя как личность, какое впечатление производишь, умеешь ли общаться, адекватен ли вообще и т.д.
тимлид будет спрашивать: в каких проектах участвовали опишите архитектуру своего последнего проекта какие ваши любимые языки и почему покажите свой код/гитхаб что-нибудь из базовой теории - например расскажите что такое дедлок и как его воспроизвести, какие уровни изоляций транзакции бывают, что такое третья нормальная форма ну и т.д.
а люки, трамваи и палки пирса - это херня, корторая по-моему уже лет 15 как себя отжила.
Как обычно - правильный ответ тот, который загадал интервьюер. А в конце эти гении пишут: Это объясняет, почему любое существо размером с мышь и менее может не беспокоиться и падать с любой высоты.
То есть, эти ебанаты в принципе не ориентируются в реальном мире, и не понимают, что будет, если выбросить мышь с балкона. И ни разу не видели, как маленькие насекомые или пауки избегают падать с высоты больше полуметра.
>>1890429 Если кодинг на джаве превращается в пытку, если ты думаешь "бля, скорее бы осилить уже этот курс и перекатиться в реверс-инжиниринг, вот там всё просто и без хуйни", то лучше и впрямь перекат сделать.
>>1890486 Я думаю так везде и у всех. Периодически появляются мысли по типу: "о, у Го классный маскот, хочу писать на Но" или "Раст компилируемый, хочу писать на нем" или вообще хочу перекатиться на фронт. Всякая ерунда может в голову придти.
>>1890429 Если в целом программирование тебе интересно, изучаешь или уже знаешь другие языки, а с джавой как-то туго - либо неделями не открываешь с мыслью "жаба не волк, в лес не убежит", либо открываешь, читаешь два абзаца и потом либо возвращаешься к другим языкам, либо вообще запускаешь дотан - то определённо не твоё. И если всё же учишь продолжительное время, преодолеваешь сложности несмотря на проблемы с мотивацией, но при этом у тебя вызывает отвращение мысль, что придётся сидеть в разработке огромного многолетнего проекта с не самыми свежими технологиями и вникать в сложные бизнес-требования - то тоже не твоё. Если это всё не про тебя, то смело вкатывайся.
>>1890787 По 8 учи. Обжект и его методв. Типы,примитивы, ньюансы типа кеша строк и интежеров. Коллекции включая новые тредсейфти. Включая нюансы раьоты хешей. Канкаренси с футурами. Стрим апи с опшоналами. Алгоритмы сейджвика читать обязон. Хотя знать как работает квиксерч и б деревья. Про типы гц и ссылок.
>>1890861 Забыл еще - ооп в жяве. Про модификаторы доступа, финальные и статические поля и методы. Дженерики. Еще но врядли их спросят жуна. Хотя если попросят написать абстрактную фабрику - будь готов
>>1890864 Ты дурачка не валяй. На собеседовании тебе дадут листочек. Скажут - пиши разворот строки. Ты им скажешь - пук кек смотрите сами в ждк исходники.
>>1890901 Интересно, задавался ли у нас хоть кто-нибудь такими вопросами, когда дописывал один из часто используемых сервисов на 5000 строчек, ни разу за много лет его так и не отрефакторив.
>>1890956 Толку от нее хуй да нихуя, все можно и через RestHighLevelClient делать. У меня конкретно сгорело с того, что они в 3.2 версии для маппинга в json использовали обычный ObjectMapper, а в 4.0 написали свой велосипед, который внутри так же использует ObjectMapper, но настраивать его теперь нельзя. При этом апи, которое мне нужно, есть в 4.0 версии, но не в 3.2.
>>1890972 Теперь еще только осталось написать тредсейфти стек, очередь из двух стеков, обход бинарного дерева и еще с пару десятков типовых задач по алгоритмам и структурам данных с собеседований.
Скиньте пожалуйста разбор DAO паттерна. Я просто смотрю видосы по другим темам, а там он используется в примере. Посмотрел один видос и одну статью. И ничего не понял. Мне кажется разборы были негодные.
Не слушайте тех кто вам втирает дичь про необходимость знания некротехнологий. Никто вас не будет спрашивать про 7 лвл явы или работу с асинхронными сервлетами и каким-нить некрожсп/жсф. Не забивайте голову этим. Это нахуй не нужно. А в проекты или команды где нужно я б не рекомендовал идти.
Лучше учите кор 8. Ну и сахарок из 11-14. Хотя врядли вы где встретите выше 11 в продакшене. А из фреймворков - только спринг. Разумеется с бутом. Из подсистем кроме кор фреймворка обязательно спрингдату, можно ждбцтемплейты(стремится уже к легаси). Почти обязательно месаджинг, рест и возможно соап контролеры. Ознакомьтесь с вариантами использованием котлина вместо ломбока, это на самом деле топчик и в спринге используется без особых проблем оба языка. Спрингбатч с кварцем - если планируете в банки. Ликвибейс для миграции схемы. Кеширование кофеином. Транзакционность ее типы и условия применяемости. Мож еще чо забыл...
Други, помогите обезьяне. Есть контроллер на пике 1 и вью на пике 2. Если открываю value="/", то все нормально, а если открываю value="/abc", то пик 3. Помогите, ЧЯДНТ?
Тогда другой вопрос. Какой адрес указать, чтобы все работало. Сейчас при переходе localhost/abc, а должно быть localhost/try1/abc. Конкретно здесь поменять не трудно, но на будущее, как правильно сделать?
Реально ли найти библиотеку, которая будет покадрово распаковывать в bitmap, что-то типо Picture p = video.getNextFrame(). И наоборот VideoKit vk; vk.saveFrame(p); Video v = vk.create(); Мне нужно работать с пикселями.
>>1891525 >таблиц больше чем на 1000 записей не существует У нас на прошлом проекте больше миллиарда записей было, данные по двум-трём столбцам фильтровались шустро. В чём проблема может быть?
>N+1 Проблема N+1 решается либо с помощью дополнительной view в БД и её сущности и репозитории в коде, либо с помощью fetch = FetchType.LAZY в описании исходной сущности. Или в этих решениях есть какие-то подводные?
Я без наездов. Просто интересно, может я чего-то не знаю.
>>1891603 Что это за магия? Я не работал с JSP, но возвращал из метода контроллера строки и у меня в ответ запроса приходили просто строки. Это из-за JSP и его настроек на запрос возвращаются страницы?
>>1891914 RestController и Controller работают по-разному. В обычном контроллере ты возвращаешь название вьюхи в виде строки, либо ModelAndView, в котором это название. Это не только про JSP, но и про thymeleaf, freemarker и прочее.
Привет ребята,увидел в интернетике задание и пришел узнать как делается.
Написать класс, содержащий поле типа коллекция, содержащий только уникальные элементы, добавить в неё предустановленный список неуникальных элементов типа Integer. Отсортировать их по возрастанию, вывести
Я подума,что нужно просто создать Сет и Лист и сету присвоить лист.Но так оказалось нельзя
>>1891943 > basePackages = {"project"} Попробуй basePackages = {"p.project"}. Но хз, при чём тут вьюхи. И классы, кстати, правильно именовать с большой буквы.
>>1892002 А что же там тогда? Ну ты понял, что я имею в виду. В го можно наспавнить тысячи горутин, базовый размер стека у них всего 2 килобайта. Когда такое будет в джаве? И что из неё выпили? Я сам не джавист, присматриваюсь просто. В эрланге тоже так можно, например. Или rust + actix.
>>1892010 В древней джаве 1.1 под гринтредами понимали выполнение вообще всех тредов на одном ядре. Ну то есть реализация вообще не использует механизмы мультитрединга, а просто выполняет команду за командой из разных тредов, но на одном ядре. В Loom же подразумевается некий параллелизм, как в Go. Вводится понятие виртуальных тредов. Реализовано не полностью, даже в 15 джаве это экспериментальная фичаа. Ну а до Loom так и будет юзааться пул тредов и диспатчер.
>>1892020 Типа в джаве не параллелизм сейчас? А что?
Чем в этом смысле лучше Go (не на уровне синтаксиса и расхода ресурсов)? Горутины, как раз таки, не выполняются в отдельных тредах, насколько я помню, они именно что виртуальные.
И как это добавляет Go параллелизма, относительно джавы? Как по мне, так это меньше параллелизма, а не больше. Но, он дешевле, при этом.
>>1892039 Гринтреды после джавы 1.1 выпилили и заменили на нативные, которые и юзаются по настоящее время, в них параллелизм. Просто это жирные треды, жрущие далеко не пару килобайт. Поэтому обычно юзается явный пул тредов.
В Go, насколько я понимаю, тоже неявно создаётся пул нативных тредов, в которых уже и запускаются горутины, но программист про это ничего не знает и просто создаёт горутину, будто это обычный тред. В джаве для юзания пула нужно явно его создать и давать по очереди таски ему на вход. Это всё равно разные механизмы, если в Go есть планировщик, приостанавливающий горутины и запускающий другие для обеспечения конкурентности, то в джаве на одном ядре таска будет выполняться от начала и до конца, а другие будут ждать в очереди, пока хоть одно из ядер освободится. Ну а в Loom хотят сделать планировщик типа как в Go.
>>1892041 >в Go есть планировщик, приостанавливающий горутины Да, это я упустил из виду, когда писал. Особенно это важно на время ввода-вывода.
>другие будут ждать в очереди, пока хоть одно из ядер освободится Не думаю. Это что же, на одноядерном процессоре пока 1 поток не выполнится, другие стоят? Вряд-ли. А если поток заблокирован по вводу-выводу? А если все ядра с заблокированными потоками? Всё встанет? Бля, не верю, надо проверять.
>>1892058 Не совсем правильно выразился. Скажем, будут ждать, пока хоть один из тредов в пуле (а не ядер) не освободится. Просто обычно запускают столько же тредов, сколько ядер. > А если поток заблокирован по вводу-выводу? А если все ядра с заблокированными потоками? Всё встанет? В пуле - да, встанет. Но остальные треды, в том числе главный тред, так и продолжат работать, они про пул ничего не знают. Вообще, в пул лучше не отправлять подобные таски, к примеру какой-нибудь гуй будет обычным тредом.
>>1891938 Я не понял как это работает,я когда создал List<Integer> x = new ArrayList(); и Set<Integer> y = new HashSet(); а потом y=x; У меня вылезла ошибка,что нельзя преобразовать,когда я сделал так: y=(Set) x; То там тоже какой-то пиздец
>>1892147 > y=x; > y=(Set) x; Нельзя так делать, один не является наследником другого. Джава не знает, какой результат ты при таком приведении хочешь получить, это всё равно что пытаться привести Integer к System, например. Можно только сконвертировать олну коллекцию в другую с помощью специальных методов или конструкторов. Вот у TreeSet есть конструктор, принимающий коллекцию и наполняющий по ней свои внутренние данные.
>>1892354 Алгоритмы - не математика и не физика. Алсо, надобность в (серьёзном) знании алгоритмов в реальном программировании на джаве - весьма небольшая.
>>1892263 >Питон, алгоритмы >3 месяца - и работа на джаве Как-то не очень верится. Джава - не питон. И что же ты смогла делать через три месяца такого, за что тебе платили? Приведи пару примеров.
>>1892440 лан алгоритмическая подготовка плохо подходит под то, что я имею ввиду. я хз как это назвать, просто умение придумать какой-то алгоритм под простенькую задачу. как пример могу привести задачку с яндекс лицея на пикрил один и два. были и посложнее, просто это - единственное, что осталось. насчет ненадобности алгоритмов я согласна, но опять же не имела ввиду буквально сортировку пузырьком и тд. >Джава - не питон. так на курсах я и научилась в джаву очевидно. там ничего сложного нет. три месяца если что были только курсы, после них следовали еще 2 месяца вялых сайд проектов, до ума из которых доведен только один. это был дискорд бот на спринге хихи. >И что же ты смогла делать через три месяца такого, за что тебе платили? Приведи пару примеров. я переношу старый бекенд написанный на пхп на джаву. я единственный бэк в команде и пишу все с нуля. как бы в целом ничего особенного не делаю пока что. в основном постигаю основы по типу более глубокого изучения спринга, докера и тд. работаю всего два с половиной месяца пока что. задачи по мелочи в общем. почему чела без опыта взяли для написания проекта с нуля - сама хз, можете даже не спрашивать. фронт у нас тоже единственный и тоже особо без опыта кстати.
И ещё такой вопрос, почему так часто именно Java 8 используется в работе? Получается, Loom релизнут, а толку мало будет, всё равно ведь все старую версию используют.
>>1892536 > А когда Loom полностью реализуют? Не знает никто. Давно его ждут.
> И ещё такой вопрос, почему так часто именно Java 8 используется в работе? В легаси очень сложно обновить версию, спринг тоже старый, даже ЕЕ не самая свежая. Например, некоторые сервера приложений на джаае больше 8 тупо падают с кучей ошибок, хотя заявлена обратная совместимость. Ну а в новвх проектах новых жаб не боятся.
>>1892536 >И ещё такой вопрос, почему так часто именно Java 8 используется в работе? Потому что в 9 появились бесполезные модули, которые сломали обратную совместимость.
>>1892536 >>1892593 И потому, что в 8-й есть апплеты и java web start. Во внутренних разработках ими активно пользуются, но, в хипстернете ты об этом ничего не услышишь, это другой мир.
По этой же причине бизнес продолюает юзать IE-11, что вызывает лютый баттхёрт у js-смузихлёбов, которые искренне недоумевают - зачем, потому, что долбоёбы комнатные, лол.
Вообще, решения IT-гигантов, убивающие десктоп, довольно далеки от заботы о людях. Наоборот, гиганты заботятся о себе, выдавливая корпоративных пользователей в облака, и вынуждая их платить абонентскую плату за то, что у них уже и так было, причём и лучше и дешевле.
Ну, и потому, что бритва Оккама. Если на 8-й можно делать всё то же самое - зачем ебать мозги? Алсо - модули - это опять облачная хуита, в реальной корпоративной жизни не нужная.
>>1892660 не помню уже. возможно я сама себе придумала, что так будет лучше. так в целом и оказалось. теперь тошнит от любого не джава-подобного языка.
Есть товарный контроллер с пост методом, принимающий дто товара. Дто содержит идентификаторы других сущностей, сохраненных заранее, которые нужны товару (идентификатор вендора, например). Нормально ли из пост метода товара кидать 404, если вендора с таким идентификатором нет?
>>1892796 Тебе ещё рановато в этот тред, мне кажется. Начнём с того, что ты не видишь разницы между управлением потоком вычислений (if-else) и условным _выражением_ (тернарный оператор a ? b : c)
if не имеет значения. А тернарный оператор - имеет. Ты не можешь написать a = if (true) {1} else {2} Но, можешь написать a = true ? 1 : 2 Понимаешь?
А then - это просто синтаксис. Во всех си-образных языках и многих других, then просто подразумеватся, т.к. это и так понятно, и незачем засирать код лишними буквами. То же касается и begin-end
>>1892857 >почему чела без опыта (МЕНЯ) взяли для написания проекта с нуля - сама хз, можете даже не спрашивать. фронт у нас тоже единственный и тоже особо без опыта кстати.
>>1892857 У меня было 4 месяца опыта, когда мне надо было перенести бэкенд с python/django (предыдущие 4 месяца я его дорабатывал) на java/spring boot. На тот момент jav'у я знал на уровне lab1.java, о spring'е даже не слышал. Но в моём случае я ещё переносил фронт с шаблонов django на react. Так что всякое может быть, особенно в небольших компаниях, у которых нет опыта в программировании и/или это не основное направление.
>Ты не можешь написать a = if (true) {1} else {2} Но, можешь написать a = true ? 1 : 2 Понимаешь?
Я ща только вкатываюсь по курсам со skillbox и какой же там пздц.. нигде никогда ещё не видел чтобы обучение было для людей сделано - последовательно и методично от простого к сложному. У меня там уже задания идут, я должен код писать без объяснения синтаксиса и что по чём.
>>1892699 > По этой же причине бизнес продолюает юзать IE-11 Не совсем понял зачем бизнес продолжает поддерживать IE-11, если на нём сидят 0.00000000000000001% клиентов.
>>1892889 Ты пост читал, на который отвечаешь? Или смузи глаза залил?
В интранетах его юзают, понимаешь? Используют, а не "поддерживают". Но, в вашем смузинете ты никаких следов этого не найдёшь, как я уже сказал. И на смузи-проценты это не влияет.
>>1892891 да опыта тут предостаточно, мне курсы покупают постоянно, менеджер бывший девопс очень няшный нянчится со мной, прекрасно. живу с мамкой, так что ни за еду ни за квартиру платить не надо)
>>1892889 Добавлю, т.к. всё-равно двусмысленно получилось, зумер может не догадаться: IE-11 используют потому, что это единственный современный (более-менее) браузер, в котором есть поддержка java-апплетов.
>>1892895 Хватает, конечно же, лол. Но, таковы правила.
А знаешь ли ты, что есть реализация php, написанная на java? И это не какой-то эксперимент, а серьёзный высокопроизводительный продукт: http://quercus.caucho.com/
Сделан он был с целью повысить быстродействие пыхосайтов на кластерном хостинге.
Не знаю, прикручивали ли это к спрингу, можно погуглить. Hessian (тоже Caucho) точно в спринге есть. В любом случае - это просто сервлет, и прикрутить его можно куда угодно, наверное. Для убойного быстродействия в кластере, конечно, нужен Resin. А чтобы просто работало на уровне всей остальной спринг-чешуи, то и так сойдёт.
Это я к тому, что можно пыху переносить на джаву вообще не переписывая, или почти не переписывая. А потом постепенно допиливать. Но, это зависит от версии пыхи, которая у вас.
>>1892891 > Хороший шанс наработать опыт, кстати. наоборот, это днище, я сам такое прошел - ты сидишь изобретаешь велосипеды, на форумах что-то читаешь, пытаешься что-то сделать. по итогу творишь адову хуету о которой стыдно вспоминать. полгода работы в интеграторе стажером дадут опыта больше чем пять лет ковыряний в одно рыло с нулевым опытом.
когда у тебя знаний нет то ты не можешь даже нормально процесс разработки организовать. на нормальном месте тебе в первые же дни покажут гит, жиру, дженкинс, мавен, юниттесты (или аналоги). там будут тестировщики, аналитики, дизайнеры, верстальщики, фронтендщики, архитекторы, тимлиды и пмы. там будут системы управления временем - какой нибудь скрум, тдд, будут системы оценки производительности, дедлайны и т.д.
это не ява, но это про яву. когда человек в одиночку ведет проект как фул-стак девелопер он должен все это совмещать в себе.
если у тебя нет опыта - то нужно искать место где есть люди которые гораздо опытнее тебя не только в программировании, но и в организации процесса разработки. а если что-то сидеть в одиночку ковырять не зная как оно должно быть на самом деле то даже через 5 лет у тебя будет знаний максимум как у джуна и соответствующая зарплата, а поебашив на галерах 5 лет можно уже 300-500к в месяц делать, а то и перекатиться на тракторе куда-нибудь.
>>1892901 Если у кого-то появится желание поиграться с джава-пыхой, то можно просто скачать текущий Resin, там всё уже из коробки настроено.
Делаешь подкаталог в webapps, в нём пустой (или не пустой) web.xml, ну, и пишешь index.php и всё остальное, как на пыхе, с возможностью юзать джава либы.
Там админка написана на пыхе кстати, очень много всего, можно использовать как пример. Документация тоже в комплекте.
>>1892905 Да, думаю, ты прав. Но, всё равно, когда сам решаешь проблемы - это развивает. И многое зависит от человека, и от его подходов. Главное, не закиснуть надолго в болоте.
>>1892920 > когда сам решаешь проблемы - это развивает. проблема в том что пока у тебя нет опыта ты не видишь какие у тебя проблемы есть. проблемы - это поставленные тимлидом задачи в багтрекере, багрепорт от тестировщиков и дедлайн релиза/ сдачи проекта заказчику. а в болоте где никто не понимает что ты делаешь и, главное, ты сам не понимаешь что ты делаешь (хоть сам можешь думать иначе) какие могут быть проблемы?
> Главное, не закиснуть надолго в болоте. если есть интерес развиваться как профессионал то валить надо сразу, если нужно до декрета досидеть то сойдет и так.
>>1892901 >quercus а он еще живой? одно время (лет 15 назад) его сан, пока был жив, вместе с жруби продвигал. я думал он уже загнулся давно. да и по ссылке последний варник аж 14 года. не думаю что он современный пых сможет интерпретировать.
>>1892953 Он может интерпретировать php 5. С небольшими оговорками по части некоторых пыхо-модулей. Он был сделан для поддержки типичных пхпшных цмс того времени. И он совершенно живой. Включён в последнюю версии Resin, от июля 2020 года.
>>1892963 Припекло, хипстерок-зумерок? Давай договоримся - ты не будешь говорить мне, что я должен делать, а я не буду говорить, куда тебе нужно идти.
>>1892896 >>1892894 >>1892893 Понял. Как хорошо, что в моём смузи-мирке требуется поддержка только самых новых браузеров. К слову, до того как стать js-смузихлёбом я писал бекенды на дотнете, питоне, го. Уныло было, теперь я на переднем конце.
но вообще смысл использовать апплеты в локальной сети я не вижу. запускать гуи из браузера, бороться с ограничениями прав нафига это все если любой аплет элементарно переписывается в дестктопное приложение? апплеты должны были стать тем чем стал флеш, который уже тоже благополочно прожил свою жизнь и умер. зачем сейчас что-то на них писать и поддерживать - совершенно непонятно.
>>1892932 плюсую 1 год работал с монолитом написанным на стеке ee, jsp, servlet и спринг с кучей xml. Ушел уже 3 года как, это конечно была моя первая работа, но единственное что я понял там это как не надо вести проекты. Тестов эти люди кстати не писали, хз как они еще живы
Я что-то не понял. Вот я хочу пройти тутор по спринг-буту. И у меня идея бесплатная. Я могу создать спринг-проект на сайте спринга, засунуть его в бесплатную идею и дальше никаких ограничений или что-то не будет работать?
>>1893540 Ты можешь вообще без идеи это все сделать. Отличие ультимейта от комьюнити только в разных удобных интеграциях, которые упрощают работу с конкретным фреймвороком.
>>1893232 Из того, что ты написал, совершенно ясно, что ты понятия не имеешь, о чём пишешь. Причём - ни малейшего. Попробуй, например, рассказать мне, как твои десктопные приложения будут разделять сессию с веб-приложением.
>зачем сейчас что-то на них писать и поддерживать Затем, что это в разы менее затратно, чем писать гуй на жс-говне, вот зачем. Не говоря уже о том, что переписывать.
Вообще охуеваю с детского сада выпускников различных курсов. Ребята, реальная жизнь - она несколько сложнее.
>>1893419 То, что ты описываешь - нормальная практика. И тесты в таких случаях мало что дают, поэтому их и не писали.
>>1893540 В бесплатной идее нет полноценной поддержки спринга. Т.е. это будет просто обычный джава-код и т.п. Т.е. работать всё будет, но без ништяков при написании кода.
>>1893651 Да, ты прав - оно стало лучше. А vue - так вообще охуенно. Я, кстати, в последние пару месяцев, регулярно устраиваю пропаганду vue (и унижение реакта) в жс треде, лол.
Но, веб-говно - это веб-говно. Это не десктоп, и даже не близко. Все просто привыкли уже, и смирились.
>>1893616 > как твои десктопные приложения будут разделять сессию с веб-приложением. а какие тут могут быть проблемы, спринг умеет сессии в БД хранить. (впрочем это даже томкат из коробки умеет, просто со прингом их еще и доставить оттуда в десктопе легко)
> Затем, что это в разы менее затратно, чем писать гуй на жс-говне, вот зачем. это неправда, если речь идет о стандартных компонентах то гуй на свинге сложнее в разработке чем разработка аналога на каком-нибудь ваадине. единственное разумное объяснение делать гуи на свинге - это нестандартные компоненты, а формы к документообороту клепать в разы проще на вебморде.
> Вообще охуеваю с детского сада выпускников различных курсов. остынь, ветеран, пикрелейтед - моя первая ide
>>1893723 Стоить ставить ебаться с перестановкой ради обучения? Я просто не понял, что я могу без ультимате и что я с ней получу. Идея клевая, хоть и тормозная. Где-то читал, что ради обучения спрингу нужно на эклипсу переходить.
>>1893754 >Идея клевая, хоть и тормозная. Открой для себя SSD.
>Где-то читал, что ради обучения спрингу нужно на эклипсу переходить. Это ты хуйню читал. Эклипс - тупое говно. Порождение сумрачного гения IBM. Как на ней вообще можно работать - для меня загадка. Не говоря уже о том, что она тоже написана на джаве, и если у тебя идея тормозит, то и эклипс тоже будет.
Тут кто-то выше хвастался, что после гиперскилза работу нашел. Помогите плиз, никак не могу понять что конкретно должны делать методы execute() и undo().
public static void main(String[] args){ Scanner in = new Scanner(System.in); int a = in.nextInt(); System.out.println(a); String s = in.nextLine(); //почему оне жрет стринг s а сразу выводит System.out.println("Hello"); System.out.println(s);
>>1894458 Просто думаю себе на нг подарок сделать в виде ссд на 500, старого на 120 не хватает вообще ни на что. Отделять ли там часть памяти под другую файловую систему или нет? Линуху вообще в глаза не видел.
>>1892901 >>1892905 все конечно прикольно да, но у нас и фронт тоже новый будет. на реакте. а насчет опыта я и так огромный буст имею. и все эти штуки: > гит, жиру, дженкинс, мавен, юниттесты я либо уже давно юзаю, либо планируем юзать в перспективе. думаю вы обо мне думаете хуже, чем на самом деле есть.
>>1894610 В джаве не задаются вопросом "почему", всё равно никак на это не повлиять. Поэтому жрём, что дают: import java.util.Arrays; Arrays.stream(myIntArray).max().getAsInt();
Ну а если у тебя только три инта, не проблема написать: Math.max(Math.max(a, b), c);
Анон, нужна твоя помощь. Требуется прервать работу метода после того, как он 10 часов проработал. Затем через 10 часов снова начал работу. В идеале, конечно, вообще привязать остановку и начало работы метода к конкретному времени. Грубо говоря, начать работу в 8 утра, закончить 6 вечера
>>1894799 Для запуска нужен некий планировщик, в зависимости от используемых фреймворков может быть что угодно. Прерывать не нужно - это полный пиздец, обсасывали много раз уже. Нужно каким-то образом слать методу сигнал, который внутри метода будет отслеживаться с последующим обычным завершением работы метода через return.
>>1894799 если будет просто интервал времени - то можно обойтись spring scheduler (гугли аннотацию @Sheduled) если более сложное - типа выражения cron, то гугли quartz sheduler главное не изобретай велосипедов - всё почти уже украдено за нас
>>1894869 Самый простой способ это же из стандартного concurrent scheduledExecutor, там же можно и задать время в которое стартовать, и нужно ли запускать таску если если старая не выполнилась. Я посмотрел реализацию спринга, там именно эта штука и используется только добавь к этому перегруженность спринга, не спорю спрингом удобно, но какие ещё бонус по сравнению с стандартной реализацей?
В чем заключается работа джавистов в большом финтехе? Я понимаю что должно быть жуткое легаси и т.п., но какие конкретно задачи решаются? Парсинг хмл, джейсонов, круды ?
>>1895229 Чем спринг перегружен? Не добавляй модулей кроме кора. Зато спринг дает гарантию что его таск не помрет сам по себе. Контейнер можно и в варку завернуть и задеплоить в томкат какойнить, а можно и бутовский жарник собрать.
Ну а вообще что такое прервать метод? Таск остановить шедулером одно. А корректно завершить задачу другое
>>1895376 Про перегруженность я имел в виду в целом спринг перегружен, так как тебе нужно сканировать объекты, делать из них прокси и вообще верить тому, что спринг сделает за тебя всю работу, обычно так и происходит, и то что я сказал выше не является проблемой или ошибкой, просто такая реализация спринг. Если делать через стандартные методы ты получаешь больше контроля над ситуацией, а значит не получаешь неявного поведения. Мне просто было интересно может там какие то крутые фичи есть у спринга, я просто детально этот вопрос не изучал.
Про прервать, кстати я ничего не говорил, но такая возможность в стандартной реализации отсутствует, только если вырубать весть executorService, либо на уровне таски, прерывания делать, но что-то, что другое херня как по мне
>>1895424 Как вариант сделать проверку внутри самого метода. Если он итерационный, то в начале итерации чекать статус задач и если активна задача - прерватьЗадачу - то выходить из цикла и завершать метод.
>>1895436 Назовем задачу запущенную в 6 утра A. Если создать ещё одну отложенную задача, которая сработает например в 12 дня, и просто проставит A статус interupt. А в задаче A будет проверка на isInterupt, то она завершится корректно и проработает +-6 часов. Но это велосипеды конечно ещё те.
>>1895442 Можно напердолить акторов еще. Супервизор управляет запуском задач. Основной актор - обслуживает сам метод. И слушает сигналы. По планировщику супервизор стартует новый актор прерыватель, тот запускается и шлет сигнал на завершение работы основному актору.
Scanner in = new Scanner(System.in); float count = (float) 0; int c = 0; int a = in.nextInt(); boolean flag = true; while (flag){ if (a == 0) break; count += a; c +=1;
>>1895805 ниши разные. серьезные вещи на пхп никто не делает. пхп - это низкооплачиваемый макакинг, найти серьезную задачу на пхп очень непросто. пикрелейтед - типичная работа пхпшника - устанавливать GA на страницы и настраивать джумлу с вордпрессом, платить за это 300к в месяц никто не будет.
>>1895382 Понял. Скорее второе, например если используется аннотация JPA, а потом модели поменялись. Ведь создаваемые таблицы тоже менять придется и уже существующие данные как-то привязывать.
Есть класс в котором куча однотипных полей - реализаций одного и того же интерфейса. Разные методы этого класса используют разные реализации. Для этого есть какой-нибудь паттерн по рефакторингу?
>>1896061 хз по паттернам не подскажу, надо бы избавиться от одинакового кода в контроллере - на первый взгляд неправильно реализован интерфейс EntityMapper - он всегда должен принимать product, а реализации сами уже будут знать что там брать - vendor, parameters и т.д. ну и метод чтобы у него был один - а не 2: toDtos или toDto. Тогда можно вынести это из контроллера, опять же реализовать интерфейс типа SuperMapper у которого будет строка в параметре и на выходе ResponseEntity<?>, и в реализации будет уже вся эта лабуда заимплеменчена - автовайрены нужные мапперы и вызов через case. А в контроллера останется только: @GetMapping("/{id}/{type}") получение продукта по id и вызов SuperMapper(product, type) короче думать не охота, с наступающим бля
Можно ли в спринге заавтовайрить все бины, имплементирующие некоторый интерфейс в мапу, где ключом будет возвращаемое значение одного из методов этого интерфейса? Или автовайрить в конструктор и разбираться там?
Есть один сервис, который принимает от юзера некоторые команды и сторит их в хранилище. Затем он берет все засторенные команды и начинает их выполнять, причем в зависимости от типа команды, выбирает один из вспомогательных сервисов, который выполняет команды этого типа, вспомогательных сервисов столько же, сколько типов команд. Какой сервис правильнее назвать Handler, а какой Processor? Я думаю, главный сервис - Handler, вспомогательные - Processorы, я прав?
>>1896148 не понял? тебе скинуть крупные сайты на нем или что? если >на похопэ пишут толька лендинге то >на жабе пишут говнолиты из сервлетов и говна чел, ты либо застрял в прошлом, ковыряя свое обоссаное легаси, либо сектант
>>1895992 Ну тут я даже хз. Зависит от того как сильно изменилась схема. Может там добавились служебные поля которые особо и не нужны. А может изменили структуру жсона и например переименовали массив значений, сменили тип поля или еще что. Модели, аннотации джексону, допмаршаллеры - править. Ну а саму логику в сервисе? У тебя как приходит в метод на входе модель от маппера - так и приходит. Если нужны новые поля - обрабатывай. Под них и сущности подправь если нужно.
Пример. Изменился в апи формат в поля с временем создания записи. Приходила строка с датой dd-MM-yyyy. Стала приходить строка с iso8601 с датой, временем и таймзоной. В моделе правишь тип поля. Либо используешь аннотацию джексона для маппинга iso формата, либо в контроллере в цепочке создания маппера заменяешь маршаллер для локалдейт на офсетдататайм/локалдататайм. В сервисе изменений по сути нет. В сущности? Тут сложнее. Если у тебя в базе поле просто дата а не дататаймстаймзоной то - Пишешь миграцию на эту таблицу (ликвибейс то в проекте есть?) В которой средствами скл апдейтишь тип столбца и данные в таблице. Правишь сущность привязаную к таблице. Если миграций нет - тут я хз. Пишешь дба или кто за субд отвечает. Чтоб предусмотрели при выкате новой версии обновление субд
Это пиздец, можно как-то более красиво сделать? ArrayList<Boolean> valid = Arrays.stream(Collections.nCopies(50, true).toArray(new Boolean[0])) .collect(Collectors.toCollection(ArrayList::new));
Чет ничего найти не могу, везде пишут про самоподписанный сертификат. Мне на почту переслали заверенный сертификат, в нем корневой, промежуточный, запрос, просто сертификат и приватный. Что с ними делать, как добавлять?
Из того, что тебе прислали, часть - сертификаты, часть - закрытые ключи. Я бы даже предположил, что это всего 1 закрытый ключ, остальное - открытые ключи (сертификаты) - центра сертификации и какой-то корневой.
Есть граф, у каждого узла графа есть свое состояние. Каждый узел можно перевести в другое состояние, при этом соседние узлы также переводятся в другие состояния по определенным правилам. Какой паттерн для этого подходит?
>>1897654 В джаве отсутствует структура данных - граф, поэтому если нужна структура по которой ты будешь делать, именно что, операции с графами: объединение графов, поиск пути, поиск подграфа - то ищи какую-нибудь либу, которая тебе предоставит такую структуру. Если структура не очень сложная, то можно использовать либо дерево если нужны его методы, либо просто создай объект с ссылками на другие объекты.
Есть БД с 100500 таблицами. Для каждой таблицы создавать сущность не рационально. Есть спринг бут с настроенным подключением к бд, юзающий хибернейт <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> Как я понимаю, все подключения с БД завязаны на сущностях, но мне нужно сделать String запрос и вернуть String. Я не пробовал все методы EM, но, вангую, что они завязаны на сущностях.
Как в рамках всего этого сделать простой запрос, возвращающий String? На сколько плохо использовать стандартные методы Java и, выходит, плодить подключения к БД?
>>1897930 можешь делать рекусривно, вызывая методы обновления соседних узлов в самих узлах, либо через какой-нибудь визитор/обсервер, если хочешь делать логику вне классов узлов графа.
>>1897937 Потому что данные из них получаются в одном месте и по факту это просто строки. Для сущности надо как минимум завести модель(не используя сервис и репозиторий/дао), получается, у меня будет несколько классов-сущностей, содержащих одно поле String и использующихся в одном месте программы. Мне кажется, это лишнее.
>>1897944 Т.е. таблицы одинаковы? Тогда тебе нужно 1) использовать один абстрактный класс с аннотацией @MappedSuperclass и наследовать сущности от него указывая только через аннотацию @Table название таблицы 2) Если не хочешь плодить много классов-пустышек и не нужно делать джойнов между таблицами то тогда тебе нужно разделить маппинги в каждую таблицу через persistence unit, в этом случае нужен будет только один класс сущности на всё. 3) если нужно только читать данные то можно вьюху создать
>>1897930 Блин чувак ты не говоришь как ты сделал граф. Но при этом хочешь решения какого то. Мне угадывать как ты данные хранишь? Ну предположу что кастомным классом нод и ребер. Значит к тебя в ноде должны хранится ребра. Какие тогда вопросы по обновлению всех связных нод могут быть. так что долбоеб тут только ты
>>1897953 Вроде годные советы, буду гуглить. Там есть разные данные, в частности, мне надо создавать запросы вроде SELECT Name FROM worker WHERE WORKER_ID == (SELECT WORKER_ID FROM job WHERE job.reg == "2020.03.21.12.23"); Но вернуть мне надо всегда одно поле String, хотя могут быть другие разные поля. Здесь reg будет везде одинаково называться и будет одного типа, но будет в разных таблицах. (я сейчас бухой, не очень соображаю) В общем, вторая часть запроса тоже содержит таблицы, сущности которых не хочется создавать, но название нужного поля у них одинаковое.
>>1897982 Не очень разбираюсь, но это то, что выводит хибер с флагом "show sql"? Не могу их написать, потому что не создавал сущности, по другому не знаю, как получить. Может потом пойму, когда отрезвею.
В котлине можно вызвать генерик метод с параметром, типа такого: getEnumConstraints<EnumClass>(), и в методе будет доступен тип, использовавшийся при вызове. А в яве такого нет?
>>1898229 А ты понимаешь, вообще, откуда этот Котлин взялся, и для чего был сделан? Узнай, и узнаешь ответ на свой вопрос. Андроид тут ни при чём вообще.
Понять, надо тебе это или нет, можно открыв хорошую книжку по Котлину. Например, The Joy of Kotlin. И это зависит от тебя. Если фп тебе не интересно, сахар не интересен, то тебе это не надо, скорее всего.
>>1898229 по сути любой язык - синтаксический сахар в моем понимании честно сказать, уже дофига одинаковых инструментов для одинаковых задач существует, но хорошими для этих задач языки делают именно их синтаксические фичи, так вот. статическая и динамическая типизация тоже в целом-то просто синтаксический сахар, можно сказать, ведь в статике можно и на питончике писать если хочешь захотеть.
ток без шейминга за эти слова плиз, знаю, вам вряд ли они понравятся
>>1898023 Можно, но это не очень удобно. Поэтому либо делают джинерик на уровне класса, либо если делают на уровне метода то добавляю в входные параметры этот класс T что бы джава сама в рантайме подставила джинертк
>>1898237 читала около трети или около того, прикольная книга, если ты только начинаешь и уже имеешь какие-то представления о ооп. в моем случае там были изложены мои же мысли, но более структурированно и понятно.
class Foo { interface A{}; interface B extends A{}; interface C extends A{}; class BImpl implements B {} class CImpl implements C {} static <T extends A> List<T> createArray(){ return new ArrayList<T>(); } static <T extends A> void print(List<T> list){ System.out.println(list); } public static void main(String[] args) { print(Foo.<BImpl>createArray()); print(Foo.<CImpl>createArray()); } }
Сап, жабисты. Короче, я мидл кудер на php, так же использую node. Вопрос, стоит ли мне учить java для более полного понимания? Интересует работа в бэкенде. Есть ли на джаве бэкэнд, крудики и тд.
Или это совершенно другая хуйня и там другие правила?
"Простажировался" три месяца у Кислина запилил маленький круд из говна и палок на Spring Boot с тестами и мелочами вроде базовой авторизации и кастомного Jackson-сериализатора. Могу писать базовые SQL-запросы, понимаю базовые алгоритмы, хромаю на многопоточке и шаблонах. Чекал вопросы из шапки, на все вопросы по кору (кроме многопоточности) и ооп отвечаю. Этого достаточно что-бы не обосраться на собесе? Я понимаю, что первые пару собесов это 100% луз, но у нас в городе проблема с жаба-вакансиями, а денег на переезд нет, поэтому не хочу проебаться.
>>1898846 На стажировке мы писали на обычном спринге - использовали JUnit 4(в процессе перешли на 5) + assertJ, контроллеры тестили через mockMvc. В выпускном проекте я не стал ничего сильно менять и воспользовался тем-же набором для тестов.
Уже задавал этот вопрос, но сформулирую конкретнее. Есть куча сущностей, на каждую сущность есть контроллер. Но все контроллеры почти полностью идентичны. Или это нормально? Если нет, как от этого избавиться? Пытался делать один суперконтроллер с нужными методами и кучу подконтроллеров вообще без методов. Но при этом приходилось наворачивать идиотские костыли, да и читал что наследование контроллеров является плохим тоном.
>>1899198 Социальная сеть. >>1899193 Несколько простых страничек на хтмл без жс, можно регистрироваться, можно добавлять в друзья и писать личные сообщения (конференций не было), можно создавать паблики и постить в них что-нибудь (подписаться нельзя, но просматривать могут все). Mysql, thymeleaf, spring (boot, mvc, security, data jpa).
>>1899193 круд фигня - проект с хайперскилла. литералли одна сущность с одним репозиторием и парой эндпоинтов. так же basic http auth было прикручено. рекоммендовательная система выдавала рекоммендации к статье. были статьи, кидаешь запрос на эндпоинт с ее айдишником и тебе по статье с этим айдишником выдаются статьи лучше всего подходящие по содержанию.
>>1899218 так там по сути и есть говно, абсолютно нулевая хуйня. примеров таких проектов дохуя. а рекоммендовательную систему я вообще у индуса спиздила.
>>1899218 Это и есть говно, лол. Когда приходишь на работу и видишь реальный проект на 500К строк, свой проект начинает казаться нелепым. Поработаешь сколько-то и уже можешь такие пет-проекты писать хоть за несколько часов.
>>1899246 Это не у спринга, а у кора - Reflection API, но ты туда не лезь - убьет нахуй. Это вообще нарушение ООП так обращаться, нарушение DDD точно. Если тебе нужна общая логика у реализаций интерфейса - используй default методы или реализуй абстрактный класс.
>>1899460 Спринг использует класс ReflectionUtils + Reflection API. Глянь там утилитный класс там много чего есть и поиск методов и.т.д. Или я опять вопрос не понял?
Ничего не понимаю java.lang.IllegalStateException: No PlatformTransactionManager set Если была бы несовместимость версий, были бы другие исключения, а тут просто не инжектится/не создается бин. Кроме PlatformTransactionManager все работает @SpringBootApplication должен автоматически определять этот бин, вроде как. @Autowired висит
>>1899438 При чём тут ООП и ДДД? Рефлекшн - это инструмент, и ты либо умеешь, либо не умеешь им прользоваться. Но, да, если это не библиотечный код, то надо десять раз подумать, прежде чем использовать рефлекшн.
>>1900051 > то надо десять раз подумать, прежде чем использовать рефлекшн. хуле тут думать, рефлекшн используется везде. в любой более-менее серьезной либе есть ReflectionUtil или его аналог. как работать с аннотациями без рефлекшена? макароны типа >>1896038 с помощью рефлекшена превращаются в пять строчек кода. при помощи рефлекшена можно свой дсл замутить, можно писать тесты которые тестируют объекты вдоль и поперек. дохуя всего можно короче. и он очень сильно упрощает жизнь. думать нужно только над тем чтобы достаточное количество тестов написать чтобы переименование поля в классе не сломало его вызов в какой-нибудь строке.
>>1900054 Не согласен с тобой, рефлексию используют крайне редко и там где нет возможности сделать по другому. Она необходима это факт, но её использования лучше избегать, если её можно заменить. Либо использовать уже готовые фреймворки. > как работать с аннотациями без рефлекшена? АОП вообще не очень хорошая парадигма. без рефлексии аоп было бы не возможно, но ведь даже там оно используется только для скана, а дальше обычно решают проблему либо прокси объектами либо дописывают код в скомпиленные классы. > можно писать тесты которые тестируют объекты вдоль и поперек ты это про моки написал? или ты предлагаешь рефлекшн апи использовать в тестах?
>>1900223 > АОП вообще не очень хорошая парадигма. аннотации по сути позволяют сделать декларативный код, это охуенная парадигма. спринг двумя аннотациями делает то что в чистом коде занимало бы десяток классов и создавало бы пиздец в иерархии из кучи интерфейсов. что тебе мешает в своих проектах делать так же?
это вопрос кстати чисто инерции мышления. восьмая жава привнесла лямбды которые сильно сократили объем кода. но для этого потребовалось куче народа научиться думать в функцональном стиле. но аннотации спсобны сделать не меньше. обычный жабакрок рассматриват аннотации как замену xml-конфигам, хотя это полная хуйня по сравнению с тем потенциалом что в них заложены.
> рефлексию используют крайне редко и там где нет возможности сделать по другому. возьми любую большую библиотеку - без рефлексии она была бы невозможна. фишка рефлексии в том что она очень сильно сокращает код (но делает его хрупким), и местами это сокращение составляет не "в два-три раза", а в двести-триста раз, и совершенно глупо этим не пользоваться.
> или ты предлагаешь рефлекшн апи использовать в тестах? а то как же. рефлекшн в тестах просто манна небесная. те же самые моки без рефлекшна были бы невозможны. рефлекшн позволяет массово тестировать бины, рефлекшн позволяет писать тесты под стайлгайды, тестировать соблюдение конвенции наименований классов полей и переменных, рефлекшн даже позволяет тестировать наличие тестов.
вообще рефлекшн - это киллер фича жабы, хотя сейчас это почти никто не осознает.
ни спринг, ни хибер, ни какое jee не были бы возможны без рефлекшна.
>>1900448 > В смысле? ну сейчас когда полмира пишет на жабе рефлексировать по поводу того почему она выстрелила а не руби, оберон, смалталк или тикль особо повода нет.
>>1900409 Короче сам разобрался, надо создавать supplier, который возвращает EmitterProcessor. Какие-то костыли ебаные блядь, ебанина функциональная. С @StreamListener и @SendTo был нормальный человеческий подход.
>>1900410 Я согласен с тобой в очень многих твоих высказываниях, но в некоторых моментах я против а именно:
> что тебе мешает в своих проектах делать так же? 1. Давай сразу условимся AspectJ мертв, я пытался его поставить год назад он требует толи 6 толи 8 джаву качал с m2 последнюю версию, может он переехал куда-то по факту говоря аоп мы говорим про Spring AOP. 2. Из первого пункта мы можем работать только с объектами управляемые спрингом, да мы все ещё можем встраивать обработчики, но это значительно усложняет работу в этой области. 3. АОП плох тем, что дебажить его практически не возможно если ты только сам его не писал, поэтому тот случае который ты привел это разработка фреймворка, в этом контексте, это уместно, но большинство проектов это бизнес задачи и туда тащить АОП это смерть.
> возьми любую большую библиотеку - без рефлексии она была бы невозможна Опять же для разработки библиотек это необходимая вещь, без неё никак, но не для обычных проектов.
> она очень сильно сокращает код (но делает его хрупким) Что ты имеешь в виду?
> те же самые моки без рефлекшна были бы невозможны я поэтому и спросил, что ты имеешь ввиду: реализацию через моки или прям использование рефлексии, но похоже и то и то. Я честно говоря не сторонник рефлексии в тестахкроме моков потому-что по-моему мнению у класса должен быть публичный контракт и то какими методами он его достигает меня волновать не должно TDD в числом виде. Поэтому тут скорее в другом вопрос тебе зачем приватные методы тестировать? Или зачем проверять приватные переменные?
>>1900470 > Что ты имеешь в виду? ну то и имею - вмето того чтобы писать 1000 строк я пишу 50
пример: мне нужно в базе сохранять историю изменений определнных полей определнных моих классов.
решение - создаешь аннотацию @Trackable (которую ставишь у тех полей бинов которые нужно мониторить) и в абстрактном классе ДАО пишешь в методе save его обработчик. решение тривиально прозрачно и понятно, тестируется элементарно, тут даже 50 строк нет. а теперь попробуй прикинуть трудоемкость чтобы это реализовать без рефлекшена и аннотаций.
> Поэтому тут скорее в другом вопрос тебе зачем приватные методы тестировать? Или зачем проверять приватные переменные? потому что суха теория, а древо кода цветет, пахнет и воняет периодически. в реальности тестировать нужно много чего кроме публичного контракта.
ну пример: мне нужно проверить чтобы в базе присутствовал индекс для всех определенных полей моих Entity, коих в проекте скажем сто штук. в классической теории нужно написать 100 тестов в них 100 методов, в которых вручную нужно будет вызвать проверку всех геттеров с определнным полем и проверить что в базе создался индекс для них. и которые нужно вручную обновлять всегда когда ты добавляешь новое поле в класс. понятно что это нереально и всегда будет расхождение между тестами и реальным состоянием таблиц.
а с использованием рефлекшена пишется один класс и в нем один метод (либо один метод в абстрактном классе AbstractEntityTest), который гарантированно проверит все твои бины.
> Или зачем проверять приватные переменные? почему сразу приватные? Например, можно сделать такой тест - все булевы значения в Entity должны храниться только в виде примитива boolean а не в виде Boolean (который может иметь значение null). и заодно сразу проверить что в базе колонка с констрейтом not_null.
или сделать такой тест - все методы, возвращающие булево значение должны начинаться с is а не get. Казалось бы фигня? Но когда проект большой и над ним работает много человек такие тесты крайне полезны.
или сделать такой тест - допустим у тебя есть абстрактный тест, который проверяет твои классы, ну те же Entity или дао, или другие классы с известным интерфейсом. ну так вот - можно сделать тест, который будет проверять что у тебя присутствует тест для твоего дао и он наследуется от этого абстрактного класса. т.е. если кто-то добавил новую сущность в код то он должен будет сразу и тест написать иначе вообще ничего не соберется. ну и т.д.
>>1900551 > создаешь аннотацию @Trackable Блин забыл написать, что пример не про логирование, потому-что это конечно идеальная ситуация для аоп. Рефликсия тут не при чем кстати, ты по итогу когда так сделаешь просто все свои методы обернешь в прокси и перед ними просто будет вызыватся твой обработчик, рефлексии тут нет. Если я не правильно понял и ты имел в виду в абстрактном классе обрабатывать через проверку, что метод содержит аннотацию, то это можно было сделать через интерфейс маркер, но я думаю ты не об этом.
> для всех определенных полей моих Entity Все я понял ты говоришь про интеграционные тесты, а не про юнит, вопросов больше не имею, да конечно я бы тоже рефлексию делал, это и быстрее и правильнее для таких тестов.
> все булевы значения в Entity > все методы, ... должны начинаться с is а не get Ну это опять же относится к интеграционным тестам, причем даже не интеграционным а типо тестирование политики компании, честно такого не встречал, но имеет место быть.
привет аноны, есть вопрос. написал свой апи сервис, но основу брал с гайда. Суть в том, что у меня есть условные интерфейс ReviewsService, класс ReviewsServiceImpl и класс ReviewsRestController. Сам вопрос: где должна храниться логика? на данный момент все в контроллере и я не понимаю, зачем мне и интерфейс и класс ReviewsService. и посоветуйте что-то почитать на эту тему желательно статью какую-нибудь
>>1901060 >где должна храниться логика? В сервисе >на данный момент все в контроллере плохо >зачем мне и интерфейс чтобы описать контракт и иметь возможность использования моков в тестах >и класс ReviewsService чтобы не иметь логики в контроллере. Задача контроллера - описать контракт твоего апи и дернуть нужные методы нужных сервисов, максимум еще как-то провалидировать формат запроса, но это тонкий момент.
>>1901075 спасибо за ответ. Пользуясь случаем: 1. что подразумевается под контрактом? 2. можешь еще подсказать, зачем делать интерфейс сервиса и класс, который имплементирует его методы?
public class Main { public static void main(String[] args) { int count = 0; for (int i = 0; i < 3; i++){ Scanner in = new Scanner(System.in); count += in.nextInt();
>>1901181 Смотря какая там логика валидации. Если проверить что передали один параметр - checkRequired() прям в методе. Если у тебя сложная логика, с ветвлением в зависимости от типа запроса, чтение данных из базы и т.п. То выноси в отдельный класс валидатор. Или даже цепочку валидаторов.
>>1901430 я писал в разное время на Jbuilder JDeveloper netbeans eclipse (RAD) jidea
видел еще kdevelop, atom - написать программу в три класса сойдет, но не более.
так, вот. идея лучшая иде эвар. незнаю что там у кого тормозит, у меня ничего не тормозит. ставь комьюнити эдишн и разрабатывай. если бы не было идеи то я бы писал на нетбинсе. эклипс - это самый пиздец из того что что я видел. там все через жопу. а RAD - это просто филиал ада.
также +100 к удобству дает программирование под линуксами, если есть возможность (т.е. если нет необходимости использовать рутокены и прочую поебень) сразу перекатывайся.
>>1901728 > Чем именно эклипс плох? всем. хотя одних хоткеев в 4 кнопки будет достаточно, поверь.
> Так, давай ка про тормоза подробнее? никаких тормозов нет. в папке с идеей лежит файл idea64.exe.vmoptions, отредактируй его дав идее гигов восемь оперативки и все будет летать. также хорошо все свои проекты с кодом и папку с кешами идеи держать на SSD.
мифу про тормоза идеи и быстроте эклипса уже лет 15, и связаны они с тем что идея на свинге а эклипс на SWT который есть расширенное AWT. но ебана, в 2005 еще можно было это всерьез обсуждать но сейчас это просто смешно.
>>1901430 Идея лучше всего, но самая тяжёлая. На бюджетном ноуте её тормоза - вовсе не миф, и пользоваться ей очень больно, если у тебя всего 8 ОЗУ или меньше. А больше ничего и нет, то импорты надо писать вручную, то кривая интеграция с мавеном. Vs code вообще не юзабелен, какие плагины ни ставь - так и остаётся в лучшем случае продвинутым текстовым редактором, с которым всё равно нужно держать открытыми терминал и файловый менеджер. Если бы в вижуалке (не vs code) была поддержка джавы, юзал бы её.
Вопросы про структуры данных и алгоритмы Какую пользу принесет мне их изучение? Почему бы просто не использовать для работы с данными ArrayList и циклы for? Когда следует применять те знания, которые я получу после изучения?
>>1901768 У меня 8 озу, правда не ноут, а пк с i5-3570. IDEA не тормозила, даже когда была запущена вместе с WebStorm'ом, запущенным angular-сервером (2гб, примерно, при сборке) и docker с БД, в которую каждую секунду писалось от 100 до 1000 значений. Она действительно тяжелая, открывается дольше (хотя ssd спасает при индексации проекта), но при этом чуть ли не за тебя пишет код.
>В старых версиях JDK конструкция System.out.print() ничего не выводила на экран — за ней должен был следовать вызов System.out.println() или System.out.flush(), который выводил содержимое всего буфера. Теперь данные выводятся на экран немедленно.
>>1901872 ну да, вот нашел спеку 1.1 > The autoflushing of PrintStream described on page 199 has been cleaned up. If autoflush is turned on, any newline anywhere in the output causes a flush, as does any write of a byte array. If autoflush is off, no automatic flushing is done.
то есть это баг который был пофиксен еще в 1996 году. пиздец откуда это можно выкопать было.
>>1901802 > Какую пользу принесет мне их изучение? огромную > Почему бы просто не использовать для работы с данными ArrayList и циклы for? ну да, когда у тебя есть только молоток то все вокруг гвоздь. потом мемчики будут рождаться на тему жава тормозная и жрет много памяти.
>>1901951 Потому что когда проект разрастётся дальше интернет-магазина, то на чём ни пиши, архитектура будет сложной. Спринги и хибернейты юзают как раз для больших проектов, а поэтому с самого начала думают, что потом это всё разрастётся, и придётся поддерживать. А геттеры-сеттеры потому, что нет свойств, а управлять доступом как-то нужно, и тупо делать все поля public недостаточно. Да и дохуя либ, игнорирующих поля и сразу ищущих методы get и set через рефлексию, с этим тоже нужно что-то делать.
>>1901951 руби это такое гламурное пхп. динамическая типизация делает ее не приспособленной ни для чего кроме написания говносайтов и мелких консольных утилит
>>1901976 Ты хуйню написал. Руби никакого отношения к пыхе не имеет вообще, ни в каком смысле. Это очень разные вещи.
Руби - говно, да. Но, по совершенно иным причинам.
Программа на руби - это всегда внутренний DSL. Т.е. ты пишешь не на руби, а на другом языке, написанном поверх руби. Каждый раз - на другом языке. И, внутренние DSL - всегда корявые, по определению. И чем он более развесистый - тем более корявый. И ты каждый раз пишешь на новом корявом языке. Это пиздец.
И полная, абсолютная динамика. Это красиво на хелловорлдах, но, в большом проекте - это пиздец.
А то, что он тормозной, и то, что там нет современных конструкций (как в современном питоне), и всё прочее - это уже на втором месте.
>>1901951 Чувак, твои претензии к джаве - это претензии дилетанта. Для таких как ты и сделали руби, собственно.
Мои претензии к джаве в том что надо дохуя кода писать, а код этот будет делать просто нихуя. Просто крудик-хуюдик library app написать можно так заебаться со всеми этими аноташками. Я вот раньше работал на php, и был у меня проект на codeigniter. И бля я прям вайбы получаю, прям та же боль как и от него. Пишешь какую-то хуйню.
> Программа на руби - это всегда внутренний DSL.
Ну а чё такого. Это же не полноценный язык, а интуитивно понятная поебень которая "бах и работает".
> динамическая типизация
Ребзь, я вам щас такую хуйню скажу. Только псс, никому. Динамическая типизация - это норм. Рили, никаких проблем от динамической типизации нет. Любые проблемы с типами контрятся ТДД, а в рубе писать не через ТДД будут только ебаклаки. В джаве разве не юзают ТДД?
Ну я позырил как выглядят тесты на JUnit, да, я бы их тоже не хотел писать)))
Java не заточена под ТДД просто. В рабби тесты наоборот помогают код писать, делают документацию, описывают спецификацию, и ещё и позволяют защитить код от случайных изменений которые всё проебут.
>>1902044 Полная динамика означает, что ты не поймёшь, что делает этот код, и почему, пока не ты _внимательно_ не просмотришь все исходники, до семнадцатого колена. И так - каждый раз.
Джава же - _недвусмысленный_ и однозначный язык, прежде всего. Ты всегда понимаешь, откуда что берётся. Нет магии, совсем. Поэтому, джава - это промышленный стандарт.
Алсо, ты как-то поздновато начал кукарекать за руби. Ruby hype is over, и поезд ушёл по рельсам.
>>1901999 > Руби никакого отношения к пыхе не имеет вообще, ни в каком смысле. я не говорю что они похожи я говорю что они взаимозаменяемы и делят одну нишу
>>1901902 Ты решил сделать битовые поля? Иногда это оправдано, но, чаще - нет, т.к. работать с ними будет заёбисто. И лонг - 64 бита. Не думаю, что массив из 3-х енумов займёт меньше восьми байт.
>>1902091 >что выгоднее: EnumSet.of или Arrays.asList Это немножко разные вещи, вообще-то. И разница тут вовсе не в "выгоде". Хотя, EnumSet будет выгоднее однозначно.
Алсо, зачем ты вообще озаботился расходом памяти? Попахивает дилетантскими преждевременными оптимизациями.
>>1902050 > Полная динамика означает, что ты не поймёшь, что делает этот код, и почему, пока не ты _внимательно_ не просмотришь все исходники, до семнадцатого колена.
Тесты почитай
> Алсо, ты как-то поздновато начал кукарекать за руби.
Да хуйня это всё двачерская. Просто раньше был хайп что руби щас выебет весь веб с своим MVC, но щас скорее PHP хайп будет. А так руби жив. Ну да, хайпа нет. Но какая разница, работа есть, платят норм, и тд.
> Ruby hype is over, и поезд ушёл по рельсам.
Ну и чё? Мне плакать начать от того что на дваче больше про руби не пишут так яро? У нас в компании руби основной язык, так же пишем на php, node и вот щас сказали что закинут меня на проект на джаве. Вот сижу учу джаву.
>>1902242 После руби обычно в джаваскрипт вкатываются.
В джаве смузихлёбам неуютно. Они не понимают, что и зачем, и куда делось всё смузи. И пытаются принести свой устав в чужой монастырь. Вот, как ты, например.
>>1902249 >После руби обычно в джаваскрипт вкатываются.
Ну так вкатываюсь. Просто node не то чтобы конкурент всяким php/ruby, на нём немного разные проекты пишут.
> В джаве смузихлёбам неуютно.
Еееееесть такое. Действительно что, зачем, куда смузи делись. Сидят тут свои.
> И пытаются принести свой устав в чужой монастырь.
Да я не пытаюсь, я пытаюсь понять чё у вас монастырь такой уебанский. Я всегда считал себя таким прагматиком, который пишет не на любимом хачкеле а на том что эфективно делает свою работу. Если какой-нибудь go хорош для микросервисов, я буду жевать эту байду и делать микросервисы.
А тут меня чёт мобмит с джавы. Куда бля смузи дели, вместо смузи какой-то индийский кофе
>>1902320 Всегда поражался людям, которые яп меняют как перчатки. На джаве уже сижу 4 года, до сих пор всех тонкостей не знаю и ещё целая телега знаний, которые нужно выучить. Нет я конечно могу и на js и на питоне и на го и на скале че-нить написать, но это будет ctrl+c ctrl+v, сделал и забыл.
> какой-нибудь go хорош для микросервисов, я буду жевать эту байду Разве, что бы научиться писать на го так, что бы это реально давало выхлоп не нужно потратить несколько лет ну или месяцев работы? И да я знаю, что концепции везде примерно одинаковые, но суть же в том, что везде свои подводные камни.
>>1902347 > Всегда поражался людям, которые яп меняют как перчатки.
А чё тут сложного-то? Слышал анекдот про свинью и курицу? Ну тут как бы так же.
В одном проекте ты знаешь всё и принимаешь архитектурные решения, в другом ты под строгим кодревью ебошиш то что батькам впадлу писать. Концепции такие же, да. Про подводные камни на кодревью скажут. Ну так у нас в конторе принято более-менее.
Проекты-то не супер большие, не всем же ебучий банковский тырпрайз писать.
>>1902352 >ты под строгим кодревью ебошиш то что батькам впадлу писать Ну если тебя такая позиция устраивает, то конечно все ок. Просто ты ж по сути знаешь все и ничего одновременно. Куда развиваться? Новый яп учить?
Джаваны, сап. Подскажите если кто знает как в IntelliJ врубить хинты в цепочках вызовов, в частности в стримах вроде пикрил. После каждого вызова д.б. серый прямоугольник в котором показывается тип, который крутится в стриме. Знаю, что такая фича есть только в ultimate версии, и как-то она включалась в каком-то меню которое выплывает по какой-то горячей комбинации. Но забыл. Не то чтоб они мне нужны, но то что не могу вспомнить как их включить неимоверно бесит.
>>1902454 все, разобрался. вопрос снимается. Там нужно соблюсти форматирование кода такое же как на закладке с настройкой инлэй хинтов. это я в общем-то тоже знаю, но в памяти у меня почему-то отложилось что и так работало. там как-то по уебански все - надо во всей цепочке расставить по этажам вызовы, а я тестировал только часть выстраивая. спасибо, короче.
>>1903029 Спасибо. Такие названия, кстати, я чаще всего и слышал. >>1903035 Спасибо, сейчас посмотрю первую книгу. На английском я пока что читаю в два раза медленнее, надо практиковать больше.
>>1903048 >посмотрю первую книгу Имей в виду, что там в примерах не джава, а универсальный псевдокод. Что-то типа гибрида джавы-скалы-тайпскрипта-пыхи. Но, всё понятно.
Электрон довольно легковесный, на самом деле. Он сжирает константно сколько-то МБ потому что хранит в памяти кусок браузера, но это как бы всё. Это не делает его тормозным. Шустрее него будут разве что Sublime какой-нибудь.
>>1901442 А ничего, что разница между идеей и vsc - как между каналом и канализацией, примерно? Алсо, заебали вы все уже, ставьте ssd, и всё будет быстро.
>>1903830 >>1904672 ты что-то какую-то хрень говоришь. и тот и тот пример делают очищенный от дублей лист из уже готового листа с именем "list" Олсо, если твоя модель данных предполагает, что не должно быть дублей, то тебе, возможно, стоит отказаться от коллекции типа List
Да. Если это говно запускаешь еще и под докером- то уже умелый мидл.
А если ты накрутил спринг бут и ЛОМБОК фубля фунахуй, и все это под кубернетесом - то ты уже уверенный синьор и в любой кофейне можешь требовать ванильный раф и смазку для жопы
>>1905236 >>1905408 >>1915242 Одна поправка: этого будет достаточно на реальной работе, но на собесе требования будут выше. Энивей, скилл прохождения собесов это отдельная дисциплина, которую нужно качать, проходя собесы Другой-анон
Подскажите пожалуйста, какую базу данных облачную можно попробовать использовать для студенческого проекта? Ранее пока работал со свифтом, там очень годным был Firebase. Но я как понял, его можно адекватно использовать только на андроиде или ios, для десктопного приложения чтобы его прикрутить нужны танцы с бубнами.
Чем подключиться к процессу java, чтобы глянуть, какие функции вызываются? VisualVM + Btrace не пашет (проблема в virtualvm, там чет фиксили, без толку), об intrace ваще молчу (лет 7 назад последний релиз). Неужели нет такого, чтобы подключился к процессу в два клика? Как в ollydbg. Геморрой с этой джавой
>>1952654 Посмотрел задание. Сам круд то накидать - хуйня на вечер. А вот с RSA, pkcs7, подключение по SSL - тут я б завис на несколько дней. Может там конечно все просто, а может и нет. Да и опять же что значит "посмотреть" документ. Это скачать его прям в браузере открыть? Я ж не ебу какого он формата будет, чтоб какой-нибудь docx открыть надо будет в жаваскриптовых библиотеках ковыряться или еще чего придумывать. Вряд ли там тхт имели ввиду, если уж про криптографию упомянули.