Это копия, сохраненная 28 сентября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Java - язык программирования с классами (aka объектно ориентированный), где нужно явно указывать тип объявляемых переменных (aka со строгой типизацией).
Заебись! А что ещё делает Java лучшим языком программирования?
- На Java написано столько всего, что любая твоя невообразимая идея уже существует в виде библиотеки, которую можно скочать и юзать
- Java на данный момент является мультипарадигменным языком, тут можно писать в любом стиле, который тебе вздумается, даже к памяти можно получить доступ через Unsafe, но, при этом спроектирован язык для того, чтобы на нём писали в ОО-стиле.
- От прошлого пункта плавно перешли к отличной проработке языка - язык с самого начала задумывался как язык для ООП и многопоточности, благодаря чему писать чистокод на Java легче лёгкого!
- Java - относительно молодой язык, который до сих пор активно развивается жидами из Oracle, при этом почти неполживо опенсорсно.
- Однако, Java имеет чувство собственного достоинства - Java оставляет тестирование всех новых, молодёжных и короткоживущих идей дохуя инициативным бегункам из других языков, принимая в свой состав только доказавшие свою годность временем идеи, никогда не ломая обратную совместимость.
Тред по жабе на гитхабе: https://github.com/java2ch/java-thread
Вики по вкоту в жабу: https://github.com/java2ch/java-thread/wiki
Предыдущий: >>2353490 (OP)
Нет, нужны вкатуны в джаву и свежая кровь! Иначе тред затухнет с дедами, которых будет всё меньше и меньше со временем.
Так они её всё равно не читают.
Помоложе твоего петухлина, который выглядит как пердун из пасты про пердуна, косящего под порриджа.
Петухона*
Пруф?
деплой с курагой. крикнул:"Хой!"
Пошел нахуй
И хибернейт, и jdbc, и десяток других говен. Всё используют.
JDBC, JPA.....
они к чему-то же относятся, где логика туда и положи
> Я сделал свою фича ветку, например, и хочу ее отправить в прод и, например, нет девопса в команде, какие мои действия?
Ты вливаешь свою ветку в основную (develop или master, смотря какой флоу), после чего твою фичу тестируют, и когда приходит время, собирают релизную сборку основной ветки, её ещё раз тестируют и устанавливают на прод.
> cicd
То же самое, что предыдущий пункт, но процессы сборки и деплоя автоматизированы. То есть вместо того, чтобы разрабы и админы сами собирали сборки, есть специальный сервер (к примеру, Jenkins), который отслеживает новые коммиты в основной ветке и сразу же начинает собирать, по окончании сборки может установить её на тестовый сервер. В идеале процесс сборки, деплоя и тестирования доведён до полной автоматизации (то есть ты залил фичу в основную ветку, автоматически сработал весь конвейер (pipeline, труба), прогнались автотесты и сразу всё установилось на прод), но на практике обычно всё равно требуются ручные действия, т.к. полного доверия к автоматике нет, да и ломается она иногда.
> Что такое докер? Зачем он нам?
Это способ быстрой подготовки серверного окружения. Вместо того, чтобы админ сидел, ставил и настраивал кучу софта на каждом сервере, додумались весь установленный и настроенный софт упаковывать в специальный контейнер и запускать его на разных серверах, где ничего кроме докера ставить не нужно, и в итоге гарантируется одинаковая работа софта везде.
Есть у тебя несколько микросервисов, каждый живёт своей жизнью и полный бизнес-процесс не знает. Зато его знает оркестровщик, он последовательно дёргает миркосервисы, получает от них нужные участки работы, всё объединяет и подтверждает, а если один из микросервисов не смог сделать свою работу, оркестровщик, чтобы соблюдалась атомарность операции, говорит всем остальным, чтобы откатили свою работу. В монолите подобных проблем нет, все бизнес-процессы и сущности в одном месте, а в случае ошибок достаточно откатить транзакцию базы данных.
>после чего твою фичу тестируют,
А как ее тестируют? Я слышал только про junit и интеграционные тесты. Ещё читал давно какую-то хуйню по ручному тестированию дот ком Савин, там про то как нажимать кнопки на сайтах на основе спеки и чтоб все упало.
Да, сидит ручной тестировщик и целый день тестирует, нажимая разные кнопки и вводя корректные и некорректные данные.
> Вот тут как бы получается что нам докер не нужен. Почему его требуют при описании вакансии?
Уверен, что не нужен? Обычно приходишь на какой-нибудь энтерпрайзный проект и несколько дней ебёшься с его локальным запуском, а с докером мог бы это сделать парой команд (если кто-то до тебя подготовил образ). Но ситуации разные бывают, где-то действительно не нужен, и берут, потому что модно.
> А что такое автотест?
Если юнит-тесты пишут программисты скорее для себя, чтобы проверить, что их собственный код работает, то автотесты пишут спецальные люди - автоматизаторы ручного тестирования, чтобы автоматизировать деятельность ручных тестировщиков: эмулируют нажатие кнопок, сравнивают своими скриптами полученные данные с ожидаемыми. Если бы автотесты писались легко и быстро, ручные тестировщики были бы не нужны, но их писать и поддерживать долго, поэтому автоматизируют в первую очередь основные сценарии, например, регрессионное тестирование - проверку основных сценариев работы системы, которые не должны ломаться от новых фич, чтобы автоматически проверить, что твоя фича не сломала ничего старого.
Есть, но не сегодня.
И на проде.
Анон, а что автотестеры под круды на спринге пишут? Тут нет никаких кнопок. Мы вот пока пишем юниты и интеграционные в рамках отдельных микроскрвисов.
Автотестеров пока нету, но обещают завезти через пару месяцев.
Что проверяют автотесты для бека на микросервисах?
Дёргают напрямую контроллеры и SOAP-эндпоинты, также подкидывают сообщения в очереди, но могут и кнопки через селениум. Сам процесс написания автотестов очень похож на обычные юнит/интеграционные, например, в нашем проекте автотесты находятся в отдельном проекте, там нет папок java, только test, и в них junit/testng, запускающиеся через тот же surefire-plugin, внутри дёргаются стабы для контроллеров, ну и просто проверяются полученные значения. По сути, автотесты - это предельный случай интеграционных тестов, когда поднимается целиком всё приложение с настоящей базой данных. Основное отличие от обычных юнит-тестов - их пишут не от балды, а смотрят заранее известные сценарии, написанные ручниками в специальной системе тест-кейсов в духе "Если нажать кнопку1, в поле2 ввести значение3, то при нажатии на кнопку4 должно показаться такое-то сообщение", и делают то же самое из кода.
У меня вопрос по юнитам. Вот я написал рест-контроллер, как понять какие юнит тесты на нем сделать? Или не рест контроллер, а какой-нибудь дто-конвертр или что угодно. Как понять какие тесты, и зачем их писать?
Ну сперва пишешь тест на правильное поведение. Потом по неправильным шуруешь. Ошибки валидации, нулы. Замоканные бины бросают эксепшены, которые они могут бросить. Начать можно с того, чтобы запустить тесты с покрытием и думать как покрыть все строчки как минимум в сервис-слое. Типа если у тебя иф-элс, то нужно написать два теста. Если где то в середине метода бросается эксепшен, то на него тоже.
С чтения шапки.
зачем яву? иди работать html программистом, там у них ещё js есть, может так будет лучше?
Я учил джаву как раз чтобы надо было верстать. По моему опыту фулстеков на джаве очень мало и они ищутся под донные проекты и конторы. На шарпе нормальных фулстеков больше, а на пхп или питоне еще больше.
Wait... it all was a dream?
База
Краткий пересказ: ряяяя сложна нихачу!!! А ищо я ни смог в элементарную логику и щщщитаю что несработавший юнит тест - плохой тест, вить до его написания я уже знал, што он нисработаит!!!!
Может я тупой, но когда пишу тесты - 1 раз из 10 нахожу ошибки в логике основного кода. Сперва вообще находил один раз из пяти.
Вышесказанное мной не отменяет бесполезность юнит тестов. Надо просто писать чисто. Я вот пишу чисто и вообще багов не ловлю. Замена юнит тестам - ООП.
>Я вот пишу чисто и вообще багов не ловлю
так запусти свой код ебануха у тебя там linkedList()= "мам я пишу без ошибок"
Плановый запуск кода через 4 часа. В планах не найти ни одного бага.
Здравствуйте. Вчера в канала проджвмджобс, ДимСоул рассказал, что у Котлин нет будущего и с выходом паттерн мутчинга и прочих фишек Джэва навсегда похоронит детище ДжетБрейнсов. А с выходом Лум, корутины станут не нужны и тогда заживем. Это правда, пш-пш?
Че за нн? А петухлин и не был нужен.
Можно ли динамически уменьшать задержку в таймере?
Например мне нужно определённым образом уменьшать задержку каждые 10 интераций без прерывания программы.
На ведре все ещё будет котлин. На бэке - хз. Даже после выхода паттерн матчинга и лума у него все равно есть нуллабилити, удобные дсл, экстеншен, лямбды и прочий сахарок
>паттерн матчинга
Затмевает кривой when который не дает и 1/100 того что дает паттер мутчинг
>лума
Нивелирует необходимость изучать корутины, которые сиречь просто тред пул с сахаром, где блокирующие вызовы просто помещаются в очередь и на них выделяется поток из пула. Лум же автоматически делает весь блокирующий код не блокирующим и можно продолжать писать в императивном стиле
>нуллабилити
Давным давно решено в восьмерке через опционал
>удобные дсл, экстеншен, лямбды и прочий сахарок
Лямбды есть начиная с восьмерки. Остальное говно нигде не используется.
Просто напоминаю, что дизайном языка занимался психически больной человек и которого отстранили от работы.
Какой долбоёб шапку писал?
С каких пор необходимость связывать переменную с типом стала "строгой типизацией"? Строгая типизация как термин уже само по себе признак ебаната - это хуевый перевод понятия сильной системы типов, что вообще про другое.
Жаба и статически и строго типизирована, а ньюфаундленды, для которых шапка писалась, один хуй ничего в этих тонкостях пока не поймут. Но твоё замечание верно энивей.
Дизайном петухлина? Так это про любой язык подойдет, кроме джавы конечно.
Никогда не листал pr и сидел только в шарпотреде, впервые решил полистать и обосрался с шапки джавистов, вы настолько ущемились тем, что шарпик все больше и больше занимает рыночек? Алсо, что за дебил писал шапку?
Статическая - типы указываются и известны во время компиляции.
Динамическая - типы выводятся в рантайме (кстати, некорректно о питухоне говорить что там нет типов - они всегда есть, просто в питухоне уже во время выполнения становится понятно, где какой тип лежит).
Сильная (она же строгая) и слабая - не так жёстко определённые понятия.
Там есть заумные заморочки, в которых я не шарю, но для обывателя так: чем меньше в языке неявных преобразований типов, тем он строже.
В конкретно жабе неявные касты стараются разрешать только там, где это безопасно. Например - каст от более ограниченного примитивного типа к менее ограниченному может быть неявным. Например: в функции параметр типа long, но ты можешь передать туда int - потери при таком касте быть не может, поэтому он случится неявно. А наоборот - нихуя - там возможно потеря данных, поэтому компилятор попросит тебя УБЕДИТЬСЯ что ты знаешь, что делаешь, затребовав наличие явного каста (int) myvar
Это что касается примитивных типов, что же касается ссылочных: каст к родителю может быть неявен (потому что наследник - это улучшенная версия родителя, она по дефолту может всё, что может родитель, плюс что-то ещё что ты туда допишешь), а каст от родителя к наследнику неявным быть не может, ведь компилятор не может быть уверен, что вот конкретно это Animal умеет лаять и поэтому его можно подставить вместо собаки. Может и не умеет - поэтому тут разраб должен подтвердить. С другой стороны есть интересная штука, что если кастануть что угодно к Object, то полученный обжект можно потом кастануть к чему угодно, и ошибки компиляции не будет. Если каст нелегитимен, то исключение бросится уже в рантайме.
Ну а в сферическом в вакууме слабо типизированном языке можно передать что угодно куда угодно и рантайм попробует привести значение к нужному типу автоматически. Не буду показывать пальцем, кто так делает. Подводные - тут легко можно словить странные, трудноуловимые баги. Отдельное веселье - когда в результате кривого каста у тебя в бд записался какой-то кал и обнаружил ты это спустя полгода.
Статическая - типы указываются и известны во время компиляции.
Динамическая - типы выводятся в рантайме (кстати, некорректно о питухоне говорить что там нет типов - они всегда есть, просто в питухоне уже во время выполнения становится понятно, где какой тип лежит).
Сильная (она же строгая) и слабая - не так жёстко определённые понятия.
Там есть заумные заморочки, в которых я не шарю, но для обывателя так: чем меньше в языке неявных преобразований типов, тем он строже.
В конкретно жабе неявные касты стараются разрешать только там, где это безопасно. Например - каст от более ограниченного примитивного типа к менее ограниченному может быть неявным. Например: в функции параметр типа long, но ты можешь передать туда int - потери при таком касте быть не может, поэтому он случится неявно. А наоборот - нихуя - там возможно потеря данных, поэтому компилятор попросит тебя УБЕДИТЬСЯ что ты знаешь, что делаешь, затребовав наличие явного каста (int) myvar
Это что касается примитивных типов, что же касается ссылочных: каст к родителю может быть неявен (потому что наследник - это улучшенная версия родителя, она по дефолту может всё, что может родитель, плюс что-то ещё что ты туда допишешь), а каст от родителя к наследнику неявным быть не может, ведь компилятор не может быть уверен, что вот конкретно это Animal умеет лаять и поэтому его можно подставить вместо собаки. Может и не умеет - поэтому тут разраб должен подтвердить. С другой стороны есть интересная штука, что если кастануть что угодно к Object, то полученный обжект можно потом кастануть к чему угодно, и ошибки компиляции не будет. Если каст нелегитимен, то исключение бросится уже в рантайме.
Ну а в сферическом в вакууме слабо типизированном языке можно передать что угодно куда угодно и рантайм попробует привести значение к нужному типу автоматически. Не буду показывать пальцем, кто так делает. Подводные - тут легко можно словить странные, трудноуловимые баги. Отдельное веселье - когда в результате кривого каста у тебя в бд записался какой-то кал и обнаружил ты это спустя полгода.
В текущей джаве от паттерн матчинга 0 смысла.
Джава коллекции (о чудо) мутабельное во всех смыслах говно и на них паттерн матчинг ложиться врятли будет как, например, в скале или (о боже) хаскеле.
Также нет кортежей (найс тема бтв) до сих пор.
Ну и рекорды использовать так и не научились тк говно нуописуемое: попробуйте создать новый инстанс с одним измененным полем. Вроде добавляем сахарок, и фигу в кармане держим.
В общем, хз как в джаве будут адаптировать паттерн матчинг под мутабельность. В любом случае деды 30+ (основная аудитория) и дальше будут форсить, что switch - плохо.
Шарп что-то занимает, только во влажных фантазиях шарпистов. Он нахуй никому не нужно кроме трём с половиной формошлепам под винду. Достаточно просто взглянуть на рынок, чтобы понять что большая часть проектов это JVM. Шарпоебам можно будет покукареть только когда они хотя бы будут иметь популярный аналог кафки или хадупа.
>каст к родителю может быть неявен (потому что наследник - это улучшенная версия родителя, она по дефолту может всё, что может родитель, плюс что-то ещё что ты туда допишешь)
Это только если принцип Барбара Лисков соблюдается.
Разделение на примитивные и ссылочные типы - кринж
Хуя ты разуплотнился из-за безобидной рандомной картинки.
Причём мне пришлось внимательно просмотреть шапку, чтобы понять от чего у тебя вообще подгорело.
Да без проблем, я не только кому-то рассказываю, я же при этом и для себя систематизирую.
https://alfa.swiftbook.ru/courses/438/show_promo#
Мои выводы:
Плюсы:
- Цена вроде божеская.
- Начинает без бута, так легче понять di.
- Большинство тем, нужные новичкам.
Минусов больше:
- Судя по темам - нет тестов вообще
- Почти половина есть у него на ютубе.
- Ничего нет про транзакции
- Ничего нет про докеры.
- Нету носикулей и вообще продвинутых тем.
- Слишком много хибера.
Отус таки получше будет по охвату и там есть домашки. Но этот парень намного лучше объясняет. И отус раз в 15 дороже стоит(если не воровать).
Мне как полугодовалому вкатуну на днях дали переводить и компоновать мурзилки для новых вкатунов и для ленивых мидлов. Вообще тимлид сказал, что если кто-то ковыряется в новой технологии, пусть потом напишет мануал для внутреннего использования. Ну а по самому попсовому, с чем сталкивается больше половины команды - выступают с докладами.
Книги по спринг кору всего две - про спринг и ин экшон. И обе я читал и обе кал, особенно про спринг, кучу времени мне потратили.
>Вообще тимлид сказал, что если кто-то ковыряется в новой технологии, пусть потом напишет мануал для внутреннего использования.
Твой тимлид Бугаенко?
Я его понимаю. Я вот по последней технологии прочитал штук 20 мурзилок, пару глав из книжки и 3/4 доки, пролистал полсотни страниц на стековерфлоу, посмотрел три видоса. 80% этой инфы была вообще шлаком, еще 10 неприменима к нашему проекту. И самое применимое, с примерами и ссылками на доку и сервис в котором я реализовал решение задачи, я и описал в "мануале" размером с две-три мурзилки с баелдунга.
Тем более, что следующий вкатун так и так ко мне придет с вопросами.
Да это отдельная каста опущенных, которые на книженции дрочат, и свои бездарные многостраничные водянистые талмуды рекомендуют даже вкатунам, которым всего лишь немного потрогать кор джаву и круды пописать на спринге нужно для начала, а не лезть в талмуд какой-то.
Есть курсы с видео, то бишь почти замена лекций и семинаров в вузах, дают в курсах интерактивные задания с автоматической проверкой, но нет, не хочу, хочу жрать говно и рекомендовать талмуды в тех случаях, когда без них можно обойтись.
Деды говно жрали, и эти говно жрать будут.
Тесты весьма полезны в базовых местах, от которых всё зависит. Там типа поменяли в одном месте формат даты, и у всех жопа отвалилась, чтоб такого не было. Ну а если ты гига проект деливери с дохуя потребителей, то тесты мастхев, ибо одна минута простоя для тыщ человек это уже как-то стыдно. Вообще лучше когда отдельные люди этим занимаюстя, если что рассыл очка приходит.
Зачем ты Егорке отвечаешь? У него ООП всему затычка. Юзай ООП - и волосы станут мягкими и шелковистыми.
>>396483
Вы оба не в курсе лора Егорки. Егорка сам еще тот топец за тесты.
https://www.yegor256.com/2015/07/16/fools-dont-write-unit-tests.html
Если Егорка несет хуйню - это остается хуйней.
Все расписал вполне годно и доступно, респект.
Но вот это вот:
>С другой стороны есть интересная штука, что если кастануть что угодно к Object, то полученный обжект можно потом кастануть к чему угодно, и ошибки компиляции не будет. Если каст нелегитимен, то исключение бросится уже в рантайме.
может вызвать ложное представление о том, что у Object есть какое-то magic-свойство в тайпкастинге, типа с ним что-то по-особенному. На самом деле нет. Java принципиально отказывает в касте только между типами, которые не лежат в общей ветке иерархии наследования. При этом неявные преобразования могут делаться только "вверх", а неявные допустимы вниз с использованием синтаксиса приведения типов. Такая ситуация с Object, таким образом, совершенно логична: ведь он лежит в абсолютно любой ветке иерархии сверху чего угодно, и к нему всегда можно автоматически прикастить что угодно, а потом из него по той же самой логике кастануть вручную к любому типу.
Без троллинга и подъеба прошу, может кто-нибудь, пожалуйста, объяснить зачем вообще в вебе использовать язык наподобие джавы когда есть намного более простые?
Что ты имеешь в виду под вебом? Цветочные магазины? Для них жаву и не используют.
А так - в свое время было написано куча библиотек. Вот и живём за счёт этого
Ну на джаве же пишут сайты для всяких серьезных контор. Почему на той же пыхе не заебенить все то что заебенено для различных мегакорпораций? Я про это. Что такого предоставляет джава, что пользуются ею, хотя по синтаксису она сложнее, а не более удобным ЯПом?
Синтаксис вообще ни на что не влияет. Если ты не смог в понимание блядь простейшего принципа обозначения классов и методов и в названия лексем языка - ты любом случае ничего не напишешь.
Так один фиг почему джаве отдается предпочтение в крутых проектах??? Что на это влияет тогда??? Что в ней такого?
ЗЫ синтаксис я освоил, он ебучий и после жса с пыхой кажется каким-то говном тупорылым.
> Ну на джаве же пишут сайты для всяких серьезных контор
Не пишут, даже крупнейшие конторы пишут свои сайты на пхп и нодах.
На жабе пишут то, что называют энтерпрайзом, где у тебя есть сервер с дохуищей логики и клиент, который может быть в виде веб-приложения, а может и не быть. Почти всегда это для корпоративных пользователей, обычный анон с таким приложением напрямую не работает.
1. Много уже написано
2. Синтаксис, все же, охуенный, просто ты тупое говно и тупой говноед
3. На данный момент всё, но изначально, когда еще нихуя написано не было, жаба была прям революционным языком, щас она до сих пор впереди планеты всей, но прям революции нет (будет с лумом)
Сам РНР натырил идей из джавы, а жс украл название, чтобы примазаться к славе джавы.
IDE PhpStorm написана на джаве, а не на РНР, потому что РНР не может в десктопные приложения.
У тебя просто эффект первого впечатления. Как у русскоговорящего быдлана любой иностранный язык вызывает "да ну нахуй, все так тупо, вот русский - заебца".
Для меня Java и около-Си - первые языки, и из всех языков Java мне кажется наиболее простой, как топор. Единственное, что ее усложняет для неопытного юзера - это то, что она очень экономит ключевые слова, и для тех семантик, которым в том же шарпе тупо дали собственные киворды, Java стремится переопределить каждое слово по 50 раз в зависимости от контекста (типа того что final может значить и константность, и непереопределимость, а какой-нибудь implements - и имплементирование интерфейса, и контравариантность типов дженериков.
Если же тебе кажется сложной именно семантика языка, то это просто цена безопасной системы типов. Она будет в любой не динамикопараше, а не только в жабе.
Странное замечание, учитывая что шарп это квинтессенция совершенного ЯПа, а ПХП говно для слабоуных школьников-аутистов.
мимо
Нихуя ты не понял, так что возвращайся в свой петухон.
Они простые за счет того что недодекомпозированны, нормальная архитектура без воркэраундов и борьбы с преждевременными оптимизациями, заложенными в ядро языка, там невозможна.
Извини я редко захожу в пр т.к. тут шиза повыше po, не в курсе местных мемеов. Ну а так че б не попесдеть то...
Совершенный яп, в котором документацию комментариями пишут.
>предпочтение в крутых проектах??? Что на это влияет тогда??? Что в ней такого?
Джава это не высер ученых в говне моченых, а результат работы проектных коллективов, представителей основных потребителей программного продукта, заинтересованных в конкретных потребительских качествах. Холопы не выбирают - дяди собрались, сделали язык и дали холопам чтоб те программировали. Вообще не с той стороны рассматриваешь потоки намерений, таксказатб.
>Почему на той же пыхе не заебенить все то что заебенено для различных мегакорпораций?
Потому что пыха это конченый DSL с ограниченными возможностями блет. По синтаксису пыха и js в разы сложнее, т.к за синтаксическим сахаром скрываются вообще неочевидные , архитектурно кринжовые вещи. Ты бы еще за VBA топил, там тоже показатель выразительности кода 6 к 1 по сравнению с java.
РЯЯЯЯЯЯЯ! ЛИНУХ НИНУЖОН!!!!!!!
Поэтому пиздим уже несколько тредов про тру-ООП.
Майнкрафт.
Я прав?
>шарп это квинтессенция совершенного ЯПа
Чел напихать в одну кастрюлю все вкусное что есть в доме, это не рецепт супер вкусного блюда. Это наооборот способ получить говно.
>настолько ли это страшно и скучно как все говорят
Для меня легаси говно ето пир на весь мир.
Всегда есть норм объектная модель, можно какие-то старые вещи заменять новыми, лямбды добавлять.
У одноклеточных зумеров правда от этого крышу рвет, был свидетелем примерно 3х случаев. Они сразу начинают хуевертить какие-то тучи генерированной хуйни, внедрять спринга или ещё че-то, в результате у команды возникает багор, т.к. в среде разработки уже проект без костылей не собирается, время билда возрастает в разы. Вот если не допускать буйных зумеров, то размеренная работа над "легаси говном" это топ вообще.
Про то что лум никак не сделают ныть уже не актуально, пора начинать ныть про вальгалу.
я худенкый
Опущенцы это про тебя, чедоуебище.
Включи русские субтитры, там достаточно адекватный перевод.
Нет, надо ныть что сделали лум хуево. Надо было неявно подменить все треды на виртуальные треды.
>Почему на той же пыхе не заебенить все то что заебенено для различных мегакорпораций?
Чтобы не ебаться с динамической типизацией?
Я год искал выхода из динамикодрисни, а ты мне предлагаешь в неё вход.
>>397663
Я на новый проект попал. Пишу свой отдельный микросервис. И еще в 2 немного помогаю другим с рутиной.
Джава - 17/11, последний спринг, jooq, кафка, графовые и колоночные nosql, sso, пару микрофишечек из спринг-клауда. Может флаксы будут в еще одном микросервисе.
Но последнее время прямо завалили задачами. Я вроде пока стараюсь проебываться, чтобы сильно не налегали, но таски с новыми направлениями накидывают чаще, чем я закрываю старые.
Но с другой стороны вроде интересно. Я стажировался 2 недели на одном очень донном легаси и так и не нашел куда писать код.
>Готов поставить анус
Деньги лучше поставь, анус свой ты уже проебал, но он мне не нужен.
Если бы было "готова поставить анус", то я бы ещё уточнил.
>Надо было неявно подменить все треды на виртуальные треды.
Если у тебя приложение написанное в стиле thread per core это убьет всю производительность.
Да, изначально майки спиздили джаву, но сейчас всё происходит наоборот. Скоро в джаву и линк подвезут прямо из шарпа.
>>397121
Охлол, у джавистов настолько пригорело что вы решили в джава-тред приплести другой ЯП, так еще и в шапку. А теперь стрелочки на меня метают, что якобы у меня и пригорело, грац джависты, как всегда посрали на всех но трусы снять забыли.
Как там с документацией, петушарпер?
>Каким образом?
Тебе не нужно быстро переключать контекст, перекидывать треды на другое ядро и прочее что предлагает лум. В thread per core нужно чтобы тред молотил на своем ядре 100% времени, чтобы в кэше ядра были только данные этого треда, чтобы его не саспендили понапрасну. Лум он же не бесплатен, за дешевые треды ты платишь более низкой производительностью каждого треда.
Если шарп такой охуенный тырпрайз-язык, то где кросплатформенные инструменты на нем, которыми бы пользовались бы ? Где базы, брокеры сообщений, контейниризаторы, оркестраторы, си-сд? На го есть докер и кубер. На жабе эластиксерч, хадуп, кафка, нео4ж, дженкинс.
Почему охуенные инженеры на дотнете не придумали вообще ничего, что было бы полезно кому-то кроме них?
В нативном треде - у тебя нативный стек поддерживаемый процессором и ОС все вызовы просто работают. В виртуальном треде - у тебя виртуальный стек, которых хранится в куче и JVM им жонглирует чтобы все работало как ожидается.
Когда у тебя на ядре выполняется 10 виртуальных тредов, кэш память будет забиваться занными всех 10 тредов, а не одного, что увеличивает количество промахов кэша. Предсказание переходов от большого количества разных участков кода - тоже работает хуже.
>Але, ну так как там с документацией?
Всё ахуенно. MSDN - максимально полная документация по любому моменту связанным с .NET
Так не горит, просто констатация факта. Горят шарподебилы, которым эти факты никак не оспорить своими маня-фантазиями.
Спасибо, анон, за объяснение.
Хмммм, блять, реально, а почему дебаггер с кучей примочек стартует дольше, чем дебаггер, который на самом деле ран?
Да у jvm только засчет перекидывания мусора туда сюда уже можно сказать что кеш процессора не нужен.
>Охлол, у джавистов настолько пригорело что вы решили в джава-тред приплести другой ЯП, так еще и в шапку.
Да не трясись, рандомные картинки, кто уж виноват что мемные картинки про жабу часто смеются над шарпом? В следующий раз возможно такой не будет, но ты приходи погори с чего-нибудь другого
Представил ебло твоё если бы там были "java bros"
> но сейчас всё происходит наоборот
Да утятам не объяснишь. Шарп как язык идеален во всем и подходит для большего числа задач. Все косяки жабы убрали, исправили, добавили тонну фич в сам язык. В жабе топчатся на месте с каким то джепами с дебильными названиями по 10 лет, типо панамы, вальхалы и прочее. В итоге все так вяло тянется десятками лет, лежит в превью, переносится с версии на версию, и в итоге получается jpms. А потом вообще сокращают штат потому что это говно оказалось ненужным.
Майки пихают в каждую версию столько фич, что приходится по книге писать. В языке уже больше 100 ключевых слов так то, это без примитивов, которые к тому же еще и беззнаковые. Вся для удобства, лаконичности и людей. Последнее вот что видел это синтаксис with по типу как deferred в goвне. Лаконично, без отступов, скобок и прочей хуйни. Это просто один пример современных изменений когда разрабам не похуй на язык.
Когда в жабе скорее еще в один класс обернут свое индуское легаси и будет очередной Optional.isPresent. По оопэшному зато.
Только по экосистеме и навалу библиотечного говна жаба ебет.
>>397874
Какие примочки. Идея даже не может определить где ставить брекпоинт когда работаешь не с контролируемой памятью. Например в такой цепочке вызовов heap -> pointer -> heap throw exception стектрейс прослеживается только до выхода из поинтера и брекпоинт ставится там же.
В студии и брекпоинт будет до нативного вызова, там где ожидается, и стектрейс полный.
+1 насчёт полезности жабьих инструментов за её пределами.
Дженкинс используется, сонар, грейлог. EDT вроде тоже глорифайд плагин для (кхм) эклипса.
Кстати подмножество языка 1с для общего назначения (эдакий русский питон) под названием onescript написано таки на шарпе.
мимо 1сник
Возможно это из за гредла кста, во все равно многое говорит о производительности.
Съебал тебе прямиком за пухлую щёку, не под той звездой ты родилась чтобы мне указывать
Мелко и постиронично коснулся здесь, разве что: https://www.yegor256.com/2017/11/07/five-new-java-features.html
Всем похуй на сумасшедших.
Джавараш нет смысла ломать.
Материал там как если бы вырвали из javadoc и переписали под "диалоги" между персонажами. В начале старались, а потом опять скатились в энциклопедию.
Ожидалось, что будут:
1. Увлекать
2. Объяснять зачем эта технология нужна.
3. Показывать живые примеры.
Факт:
1. Скатились в энциклопедию.
2. Просто ставят перед фактом, что технология есть и всё.
3. Показывают олимпиадные примеры.
Думал, что задачки что-то дадут. Ничего. Их кстати можно зачитерить (опции > показать правильное решение > завершить).
Про Спринг вообще ничего. В самом конце чуть-чуть про сервлеты.
Они нарушают все основные принципы ООП.
Рекорд это DTO да еще такой, что детали реализации нельзя скрыть, никак. А Егор не любит DTO, очень https://www.yegor256.com/2016/07/06/data-transfer-object.html
>Он нахуй никому не нужно кроме трём с половиной формошлепам под винду
Мань, ну ты просто открываешь хх и понимаешь, что сосешь хуй с этим кукареком
А потом смотришь на рынок западных бояр и понимаешь, что у шарпобояр еще и зарплаты выше.
>аналог кафки или хадупа
Зачем? Типо, каждый инструмент нужно переписать, дженкинс, докер на своих технологиях, ИНАЧЕ НЕЩИТОВО? Что за больной манямирок скуфанутой джавамакаки..
Зачем вы копротивляетесь? Любой адекватный человек понимает, что раньше писали на джаве, потому что альтернатив не было. Сейчас джаву уже вовсю ебет обновленный шарп с кором, а с другой стороны котлин уже настолько сильно отъебал джаву, что полностью спиздил одну из областей применения (а я помню, как джаводебилы вопили, что у котлина не получится), и идет на вторую. Джава - умирающее говно мамонта, это просто факт.
Коупинг через слово
>Зачем вы копротивляетесь?
>Любой адекватный человек
>это просто факт
Прям через монитор передалась дрожь из твоих пальцев, и это хорошо.
>Типо, каждый инструмент нужно переписать
Типа убогость шарпа не позволяет создавать что-то достаточно сложное и при этом надежное и легко поддерживающееся.
Я не думаю что шарп настолько убог или вообще убог.
Нельзя было иметь готовую джаву перед глазами, вложить оврдохуя денег и на выходе получить что-то хуже оригинала.
Но смущает, что адепты хорошего и неубогого языка вместо того, чтобы обсуждать этот язык - обсуждают хуёвость жавы. Типа - "а нахуя". Вот ну допустим, что шарп прекрасен, допустили, а дальше шо? Типа ты придёшь в жаватред, скажешь что шарп хороший, и челы такие "а да, наверное уволюсь-ка я с жабы и пойду учить шарп, назовите хоть одну причину почему бы и нет"
>пук
Ясн
>>398209
>шарпа не позволяет создавать
Мань, мне неинтересны твои фантазии о том, что "позволяет" и что не "позволяет", они просто смешны.
Большинство из этих инструментов создавались на джаве, потому что тогда джаве не было альтернатив. Сейчас джаву кто только не ебет. Но зачем те инструменты, которые были созданы на джаве 10 лет назад, которые работают и являются стандартом в индустрии, переписывать на свой язык? Чтобы что? Ты долбоеб?
Впрочем, вопрос риторический. Понятно, что это такая копиумная защита манямирка:
- Дженкинс используется всеми, написан на джаве, почему вы не перепишите его на шарп??
- А нахуй нам его переписывать на шарп, если он уже есть и все им пользуются?
- ФСЕ! ПОКА НЕ ПЕРЕПИШИТЕ У ВАС НЕ ТЫРТЫРПРАЙС ЯЗЫК! ЯСКОЗАЛ
Сука, какой же мянямирок
А че типа до рекорда класс с финальными полями нельзя было сделать? Рекорд вообще ничего не добавляет концептуально. Как-то узко мыслите. Хз кто такой этот ваш бугогаенко, никогда не интересовался личностями.
Проблема даже не столько в переписывании, а в том, что в относительно свежих проектах все равно предпочитают юзать джаву, посылая нахуй шарп. Вот к примеру, разрабы гуакамоль, релизнувшейся в 2019, все равно используют джаву вместо майкрософтовысера.
>Тем более, что следующий вкатун так и так ко мне придет с вопросами.
Вот именно. Смысл писать, если никто не читает.
Гредл хуйня ебаная.
На джаве есть куча инструментов, потому что это старый язык, и потому что раньше не было ничего лучше, допустим. Но на го тоже есть куча инструментов, при этом го язык новый. На шарпе не написано НИХУЯ кроме компонентов винды и студенческих лаб. Пруф ми вронг.
Свободные люди, обсуждаем то, что приносит лулзы. От обсуждения ООП надо же отдыхать иногда?
>>раньше писали на джаве, потому что альтернатив не было.
Как и сейчас - го не всем подходит.
>>котлин уже настолько сильно отъебал джаву, что
практически не используется в тырпрайзе и ушел в мобилки
>>джаву уже вовсю ебет обновленный шарп с кором
спринг ебет всех разом
Ну я и буду его отфутболивать, пока он мои писульки не прочтет, как минимум. Там в трех страничках скомпановано то, на что я потратил часов 20.
>>это старый язык
А что есть другие среди популярных? Котлин самый молодой, а ему уже 11.
Да и почему на джаве за 27 лет написано дохуя всего, а на шарпе за 21 нет?
жава - 1995
жаваскрипт - 1995
шарп - 2001
питон - 1991
го - 2009
котлин - 2011
скала - 2004
пхп - 1995
хаскел - 1990
>Да и почему на джаве за 27 лет написано дохуя всего, а на шарпе за 21 нет?
Ряяяяяяя то что было до дотнета 9 нещитово!!!!!!!!!!!! Петушарпу 1 лет!!!!
История шарпа как языка, равного другим популярным по возможностям, началась с неткора, и его возраст надо считать соответствующе. На проприетарном языке для винды никто бы не стал писать серьёзных универсальных проектов типа кафки, т.к. они никому кроме шарпистов не всрались. Шарп сейчас - это что-то вроде Go, потенциал есть, но пока прошло слишком мало времени, хотя не факт, что действительно что-то стоящее напишут.
Да.
>за 21
Погугли, что ли, что такое .нет кор и чем он отличается от .нет фреймворка, посмотри, когда он вышел, не позорься. Считать поделки на шарпе с той поры, когда он был говном исключительно под винду - это, конечно, нужно быть гением. Джавадебил ас ис.
Тебе просто нечем аргументировать. Факт не опровергается от того, что ты к нему приписал "ряяяяяяя".
Ну и чем различаются? Вроде у шарпа всегда было больше сахара, которым ты выебываешься. А в институтах эрефии этот ваш шарпик вообще лет 15 назад давали.
Ты высрал только
>ряяяяяяяяяяяяяяяяяяяя нещитово!!!!!!!!
и
>ряяяяяяяяя погугли!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Притянутая за хуй аналогия, тащемто.
То что получится говно, а не блюдо - следствие того, что ты не можешь из него избирательно есть правильные ингредиенты. В случае хорошо спроектированного ЯПа, если всё разнообразие реализовано достаточно изолировано и функциональность не мешают друг другу, никто не заставляет тебя юзать то, что по твоему мнению - говно. Не нравятся какие-нибудь кортежи - ну и положи на них хуй, не трогай.
А вот взаимное влияние фич как раз больше характерно для java с ее дрочем на легаси. Типа, да, у нас есть дженерики уже 20 лет, но то что под капотом там происходит всякая неочевидная поебень с type erasure, мостовыми методами и прочей парашей - это как бэ пусть будет.
> На шарпе не написано НИХУЯ
Лицензия+платформоориентированность. Но это уже не актуально, но все равно по инерции юзают жабу, потому что
> На джаве есть куча инструментов
Он до сих пор не кроссплатформенный
Т.е. в оп-посте кто-то пошутил, причём даже не своей шуткой, а остальные залинкованные тобой посты - ответы на твою агрессию. Ебало?
>на твою
Шизик, прими таблетки. Я, конечно, знал, что жабадебилы тупорылые, но не настолько же, чтобы не понимать, что на них периодически поссикивают несколько анонов
А ничего, что из залинкованных тобой постов три из четырёх являются ответами на буквально один и тот же? Бля, ты уже пробиваешь дно.
И? На что ты этим высером ответить пытаешься? Те посты не я писал. Поэтому, я тебе, дебилу, и написал, какая нахуй "моя" агрессия. Ты типо неиронично шиз? Впрочем, забей, я уже понял, что жабадебилы крайне тупорылы.
>три из четырёх
А ничего, что постов буквально пять, отупевший? OP - тоже пост. Бля, ты уже пробиваешь дно.
>Т.е. в оп-посте кто-то пошутил, причём даже не своей шуткой, а остальные залинкованные тобой посты
>остальные
https://lmgtfy.app/?q=остальные+значение+слова
>А ничего, что из залинкованных тобой постов три из четырёх являются ответами на буквально один и тот же?
Тут ни слова про >остальные. Блять, я не верю, что ты НЕ троллишь тупостью, лол. Ладно, обтекай пока, я на галеру.
>джун+
Это минимум год коммерческого опыта работы, знание как работает Spring под капотом, Hibernate, Kafka, Kubernetes, Docker. Понимание микросервисной архитектуры и сопутствующие вещи вроде трейсинга запросов, мониторинга, gRPC, тестирования. Знание как настроить CI/CD с деплоем в прод и прочие фишки. Думаю тысяч 50-70 если у тебя доказанная эффективность.
>знание как работает Spring под капотом, Hibernate, Kafka, Kubernetes, Docker. Понимание микросервисной архитектуры и сопутствующие вещи вроде трейсинга запросов, мониторинга, gRPC, тестирования. Знание как настроить CI/CD с деплоем в прод и прочие фишки
А вы не охуели там?
Уметь пукнуть в кафку, шлёпнуть круду и пояснить за хешмапу.
Сенька может вести разработку начиная от реквестов продакт оунера до выкатки фитчи на прод с последующим мониторингом. Джун же просто решает таски в джире. Но это не значит, что джун не должен знать как работают технологии на проекте и должен уметь строить микросервисы, которые общаются через Kafka/gRPC, уметь грамотно собрать Docker образ и все это оформить в виде .yaml файлов для деплоя в кубер.
На 2-3 курсе технического ВУЗа устраиваешься на стажировку. К выпуску имеешь год-полтора коммерческого опыт работа.
То, что есть джава с кучей уже написанного на ней кода. Если бы у говна был такой же оригинал с кучей кода - говном бы никто не пользовался.
Это текущее положение дел. Я понимаю, что хочется верить, что требования остались на уровне 10-летней давности, когда было достаточно объяснить как работает хеш-мапа и хотя бы иметь представление зачем нужен спринг. Но на сегодняшний день это даже не уровень стажера.
Я ТЕБЕ И ОТВЕТИЛ ПРО ШАРП, ДОЛБОЕБ! КОГДА КТО ТО ВЫБИРАЕТ МЕЖДУ ИДЕНТИЧНЫМИ ШАРПОМ И ЖАБОЙ, ВЫБИРАЮТ ЖАБУ, ПОТОМУ ЧТО НА НЕЙ БОЛЬШЕ КОДОВАЯ БАЗА
Я понимаю, что тебе больно осознавать действительность, но просто прими, что твои "пукнул в кафку, накидал рестконтроллер" это в лучшем случае стажер, которому еще пару лет до джуна минимум. Тут многие кафку называют брокером сообщений или очередью и при этом думают, что они мидлы. Так что лучше попритуши фитилек.
Потому что говно не имеет оригинала, с которого оно копировалось по идее "N, но только для нашей операционки, чтоб побольше бабла заработать на операционке"
Зачем ты оскорбляешь? Ты же понимаешь, что ты просто не прав? Я тебе объяснил как выглядят требования на джуна.
Ты мне щас объяснил, как выглядит твой пятак, не более. Все остальное - высер ципсошного выблядка, почитавшего 2 минуты джава тред ради пука.
>Тут ни слова про >остальные.
>А ничего, что постов буквально пять, господин? OP - тоже пост.
>Т.е. в оп-посте кто-то пошутил, причём даже не своей шуткой, а остальные залинкованные тобой посты
>остальные
>в смысле "остальные залинкованные тобой посты, кроме оп поста"
Можешь продолжать жить в мире иллюзий, который сам себе построил. Реальность кардинально отличается от твоих фантазий.
Ну я же говорю, что для начала нужно попасть в хороший технический ВУЗ. Это автоматически подразумевает, что у тебя высокий IQ, которого будет достаточно, чтобы научиться решать литкод уровня изи-медиум за полгода-год. Сейчас литкод не спрашивают разве что только в провинциальных галерах, куда идти не стоит в любом случае, т.к. наберешься плохих привычек и в целом деградируешь по скилам так, что после такого опыта тебя разве что на стажера возьмут в столичную компанию.
Most valuable player
А ты всегда детектишь в своих обоссывателях того шарпобоярина? Да, жестко он тебя проткнул, видимо.
Как же тебя порвало с мема в шапке, все таки. Три дня без передыху серешь. Обязательно надо в следующий тред найти еще пару мемов про петушарп.
Дай угадаю, ты опять детектишь своего протыка? Штош
И слава Богу.
>того
>он
Плешивый, ну зачем же ты о себе в третьем лице? Как я говорил раньше, в треде только один совершенно неграмотный даун с проекциями уровня мвп и этот даун — ты. Твои кривые посты я детекчу на раз, поэтому вдвойне выходит смешно, когда ты пытаешься семенить и насасывать самому себе.
>То что получится говно, а не блюдо - следствие того, что ты не можешь из него избирательно есть правильные ингредиенты. В случае хорошо спроектированного ЯПа, если всё разнообразие реализовано достаточно изолировано и функциональность не мешают друг другу, никто не заставляет тебя юзать то, что по твоему мнению - говно. Не нравятся какие-нибудь кортежи - ну и положи на них хуй, не трогай.
Если бы у бабушки был хуй, она была бы дедушкой.
Кого-то блевать от LINQ тянет, а какой нибудь бывший датабазник будет даже простейшую логику писать через запросы. Кто-то фанат реактива, кто-то асинков. В более менее крупной компании единственный способ избежать разброда среди команд, это ввести жесткий кодстайл: это используем, а это нахуй. И чтобы CTO пиздил тимлидов за кодстайл, а те пиздили петушарперов за использование того что нельзя. Но это административные костыли, чтобы фиксать проблему дизайна языка. У тебя должно быть 1-2 способа канонического решения проблемы, когда их у тебя десятов - это хуевый дизайн, потому что каждый петян будет писать в своем стиле. Петушарп тут, кстати не первый, С++ наступил на эти грабли значительно раньше. Но повторно наступать на грабли С++, это конечно достижение.
К чему эта фамильярность и переход на личности? Я тебе буквально выдал базу, а ты пытаешься скрыться в своих фантазиях.
Ну вот щас ты хуйню высрал, на джаве тоже можно писать в разных стилях. Петушарп говнина скорее потому, что нагло скопировала жабу и попыталась развить, добавив кучу бесполезного говна. То есть получилась жаба, но обмазанная говном. Вроде пользоваться и можно, но нахуя? Особенно, когда до сих пор эта хуйня работает только на винде нормально.
Только представьте - вы пишете самый обычный джава код, никакой ебли с гибернейтами, никаких фреймворков, никаких дао, никаких репозиториев, ничего! Можно делать композицию ебейших уровней вложенности и вообще ни о чем не заботится!
Не настала что ли? Я вот недавно на какалике купил терабайтовый нвми за 5к. Что это, если не эпоха нвми? Бизнес не найдет таких денег для хранения своих данных?
> Есть же хешмапы.
Потом тебе понадобится сортировка, поиск по другим ключам, эффективный инсерт без пересчётся всех ключей при превышении жагрузки хешмапы, быстрый переход к следующему по порядку элементу, валидация внешних ключей, уникальность, сложные запросы с джоцнами, и пока ты всё это решишь, изобретёшь свою кривую недоделанную СУБД. А мог бы просто взять готовую ин-мемори, тот же sqlite :memory:.
Возьму готовую скл базу, и получу каловую таблицу в корне всего и вся. Без баз данных можно писать вообще че угодно нахуй.
Ну в первую очередь можно было бы написать, наконец то, настоящие живые оопшные объекты без компромиссов.
Оперативная память устанавливается в слоты на материнской плате, болезный.
Нетфликс так и делает
Xmx и xms - не переменные окружения, а обычные флага. На основной реализации jvm иэ можно установить только при щапуске, в рантайме уже никак. Если зочешь окно с настройками, где можно ими управлять, придётся делать отдельную программу-запускатор (не обязательно на джаве), и там генерировать значения флагов с запуском основного приложения.
>Ну вот щас ты хуйню высрал, на джаве тоже можно писать в разных стилях.
Это ты не асилил прочитать. Писать в разных стилях можно на любых языках у меня прияетель писал в ООП стиле на асме. Вопрос в том, что на петушарпе ты можешь комбинировать десятки разных подходов, а в джаве пару. Поэтому зоопарка в больших проектах меньше на джаве. инбиво: меньше не значит что нет совсем.
>пора начинать ныть про вальгалу
Тащем-то в JDK20 уже и вальгалу начнут завозить.
Наконец-то все фичи, в выход которых никто не верил, уже начинают выходить в свет. Через 1.5 года если все пойдет по плану LTS 21 будет первой лтс с таким количеством новых фич наверное с момента выхода 5 или 8 версии.
Лучше на кэш процессора, некоторые уже 64 мегабайта предлагают.
Тащем-то в JDK14 уже и вальгалу начнут завозить.
Тащем-то в JDK16 уже и вальгалу начнут завозить.
Тащем-то в JDK17 уже и вальгалу начнут завозить.
-вы здесь-
Тащем-то в JDK20 уже и вальгалу начнут завозить.
Так раньше фичи вальгаллы в JSR не добавляли.
Если фичу добавили в JSR, то с очень высокой вероятностью она будет в релизе.
Аналогичная ситуация с лумом была. Нигде на ресурсах openjdk не было указано, что он выйдет в 15, 16 или 17 версии. А потом указали, что он выйдет в 19 версии, и он реально выйдет, чтобы к LTS релизу уже можно было пофиксить обнаруженные баги.
Только чертверть джепов готова, прикинь какие темпами они появлялись и просто прими, что ты раньше отправишься в вальхалу чем она в релиз.
>ты просто открываешь хх и понимаешь, что сосешь хуй с этим кукареком
Хуй знает, осенью 2021 года смотрел на хх.ру и было отчетливо видно, что на шарпе очень много юнити и формочек под винду. Стек технологий на многих бекенд-вакансиях был примерно времен восьмой джавы: .NET 4.5+, в лучшем случае Core 2/3 с дальнейшими перспективы миграции, если выделят бабло.
А ну и еще на шарпе очень много вакансий было от всяких ноунейм контор, НИИ ГосОборонЗавод, провинциальных веб-студий уровня ИП "Ашот и Ко", и т. д.
На жабе конторы были посолиднее в большинстве, хотя тоже говна достаточно. Но на шарпе прямо голяк был как будто бы. Сейчас наверное вообще ситуация ухудшилась, так как адекватные шарпо-галеры уехали, с джавой аналогично кстати.
В итоге вкатился в жабу проект был на 15 версии, сейчас на 17 переехали и пока что не пожалел. Да и какой смысл жалеть из-за того, что в каком-то другом языке чуть больше синтаксического сахара? Один хуй, что жабисты, что шарписты 70% времени читают чужой говнокод, вникают в бизнес-требования, общаются с аналитиками, тестерами, и т. д.
Вообще в целом похуй что там на чем написано если честно, главное чтобы документация была нормальная, ну и технология популярная. Мне как вчерашнему вкатуну до сих пор очень нужно постоянно, чтобы были ответы на стаковерфлоу и статьи на баелдунге.
Но оказалось, что база давно уничтожена высокоточными ударами.
¿Documentation?
А там лучше или хуже? Слышал только, что есть MSDN, ну по всяким языковым фичам он вроде как неплох, много примеров и всякое такое.
А вот по кишочкам asp.net, entity framework и прочей энтерпрайзной залупы, с которой постоянно работаешь, он тоже хорош? Как дока спринга например?
>>398659
20 версия должна в марте 2023 года выйти, время еще по идее у них есть, тем более что основной пласт работ по луму уже завершен и можно перекинуть людей на вальгаллу.
подождем умных дядь тогда для ответа
Шарп более распространён в США и Канаде, а в Европе и у нас - джава.
>А потом смотришь на рынок западных бояр и понимаешь, что у шарпобояр еще и зарплаты выше.
Что конечно же пиздежь. Из фангов никто не использует петушарп. Стартапы тоже шарп не жалуют. Я живу в Европе и шарпа, кроме гейдева, нигде больше не видел. Ну и в целом топ сегмент зарплат, на всяких сайтах сравнений не отображается так что тут просто неисследованная область.
>А как связан шарп с шиндовсом?
Спроси у разработчиков вижлы. Какого хуя они ее на мак портировать не могут и впаривают всем моно девелопер?
>А вот по кишочкам asp.net, entity framework и прочей энтерпрайзной залупы, с которой постоянно работаешь, он тоже хорош?
Да, хорош. На любой пердеж - best practices и полная документация к классу/интерфейсу (и способу использования). 80% всего, что юзается в асп можно юзать в впф и наоборот (не считая UI само собой)
Ты точно так же можешь на кроссплатформенной жабе захардкодить загрузку виндовых DLL-ек, навертеть вокруг этого дохуя логики, и твоё приложение сможет работать только на винде и больше нигде.
>Что конечно же пиздежь.
Да. На жабе больше жирных проектов и выше зарплаты на высоких должностях. На начальном и среднем уровнях плюс-минус одинаковые.
>Из фангов никто не использует петушарп.
Логично, ведь майки - контора пидарасов и открыли свою поделку только в 2016. Сами себе в ногу выстрелили и проебали огромный кусок рынка. Жадность фраера сгубила.
>Стартапы тоже шарп не жалуют.
Нахуя стартапу такая махина? То же самое можно сказать и про Жабу. Стартапу нужно сделать MVP, который обычно пилят на шустрых в разработке языках, а не поднимать дорогущую архитектуру с огромными кодовыми базами.
>Я живу в Европе и шарпа, кроме гейдева, нигде больше не видел.
А вот тут уже ты пиздишь, асп уже занял немалую долю бекенда и продолжает ее завоевывать. Да, он никогда не догонит жабу и его никогда не будет в фаангах, в остальном же у платформы все в порядке.
>>398727
>не могут
Могут, но не хотят. Контора пидарасов как-никак. Однако, есть альтернатива в виде Райдера для бояр и ВСКод с плагинами для бомжей - обе под любую ось.
Но для разработчиков ожидается рабочая среда, мало ли кто там что в теории может сделать в своём приложении, это не относится к вопросу о среде разработки. Так-то понятно что можно сидеть с голым компилятором и блокнотом, но это троллейбус из булки хлеба, и разработчику хошь не хошь придётся перекатываться на поддерживаемую платформу.
В Go тоже нет своей иде из коробки, и ничего, обходятся текстовыми редакторами и платным goland. В шарпе вместо goland есть rider написанный на жабе, лол и ещё вижуалстудия на винде.
А у го сильная потребность в жирной иде? Не подкалываю, просто реально не знаю. У питухона например такой потребности нет.
Вскод с плагинами тоже более чем выполняет практически все задачи, ожидаемые от полноценной иде. И в проде на нем тоже работают. Райдер разве что дает больше удобства и продуктивности. А студия - это тормозной кал, который не нужен.
Квадрипл не врет.
в петушином уголке вашего треда для меня место найдётся?
Нет, но найдется в треде C#.
Джвачаю, я бы на его месте в C# вкатывался
Прямо как с вальхалой.
> Нахуя стартапу такая махина? То же самое можно сказать и про Жабу. Стартапу нужно сделать MVP, который обычно пилят на шустрых в разработке языках, а не поднимать дорогущую архитектуру с огромными кодовыми базами.
Можешь подробнее пояснить? Про жэву ничего не знаю, но на шарпе все быстро пилится.
Блять, я это в педальный тред оставить хотел, продавец грязных трусов сообщения переносит
Написал круд на tcp/ip
Написал круд на java.net
Написал круд на плоских файлах
Написал круд на сериализации в pizda.dat
Написал круд на jdbc
Написал круд на энтити менеджере jpa
Написал круд на хибернейте
Написал круд на spring data
Вкатываются и не мало. Не слушай петушарпера, у него рак мозга.
Гречневая жабоскуфья, успокойся. Сделай вдох, выдох. Тебе везде мерещатся хохлы. Прими таблетки.
У него может быть не та же болезнь, что у тебя (а может и вообще её не быть), поэтому ему подход, который ты используешь для своего лечения, может и навредить.
list.forEach(d -> v[list.indexOf(d)] = d);
list.stream().forEach(d -> v[list.indexOf(d1)] = d);
Float[] v = list.toArray(new Float[0]);
> list.forEach(d -> v[list.indexOf(d)] = d);
> list.stream().forEach(d -> v[list.indexOf(d1)] = d);
n^2 для простого копирования линейного участка памяти, ты серьезно?
>>399298
> list.toArray()
> Float[] v = list.toArray(new Float[0]);
Это даже не скомпилируется.
мда уж, я был лучшего мнения о джаве
Какой же ты наркоман, боже. Ты как собрался хуй знает что, находящееся под интерфейсом копировать? Под листом может быть хоть линкед лист спрятан, и как ты предлагаешь из него копировать данные? А из массива можно, Arrays.copy() или че то типа того.
Какие же петушарперы дегенераты, пиздец просто.
Поменял лист на эррей лист, теперь я могу через рефлексию долбануться в приватное поле и сделать arrays.copy(), но я так делать не буду, потому что я не тупой петухонщик типа тебя.
> Поменял лист на эррей лист, теперь я могу через рефлексию долбануться в приватное поле
> я не тупой петухонщик типа тебя
Ну как сказать..
Ты чего злой такой? Я же просто хочу узнать как эффективно решить эту задачу в джаве.
Создать из листа чисел массив примитивных чисел и передать их аргументом. В первом посте картинка.
Ты можешь создать только массив врапперов через toArray, потому что сука в сам лист можно только врапперы запихнуть
Так а почему не дать доступ к массиву который этот врапер содержит, чтобы я мог спокойно сделать системкопи без рефлексии стримов форов и прочей хуеты?
Непосредственно к массиву тебе хуй кто доступ даст, чтобы никакие долбоебы типа тебя не ломали инкапсуляцию. А системкопи как раз можно сделать через toArray()
>Ты точно так же можешь на кроссплатформенной жабе захардкодить загрузку виндовых DLL-ек, навертеть вокруг этого дохуя логики, и твоё приложение сможет работать только на винде и больше нигде.
Но почему-то прибита гвоздями к винде именно вижла. Ни идея там кстати пара нативных библиотек есть, ни нетбинс, ни да даже эклипс который вообще на нативном SWT написан.
>>398732
>Нахуя стартапу такая махина? То же самое можно сказать и про Жабу. Стартапу нужно сделать MVP, который обычно пилят на шустрых в разработке языках, а не поднимать дорогущую архитектуру с огромными кодовыми базами.
Размер кодовой базы определяется возрастом приложения, а не языком. Берешь спринг старт и у тебя шаблон нативного приложения с минимумом кода. Проблема стартапов это люди, им надо быстро набрать людей с опытом чтобы они пришли и начали сразу ебошить. А не разбирались месяц как читать данные из сети с помощью монад.
>А вот тут уже ты пиздишь, асп уже занял немалую долю бекенда и продолжает ее завоевывать. Да, он никогда не догонит жабу и его никогда не будет в фаангах, в остальном же у платформы все в порядке.
А давай ты не будешь голословно пиздеть и назовешь хотя бы парочку крупных стартапов с беком на .Net
Туэрей возвращает массив объектов, которые нельзя передать как массив примитивов, уже 3 раз пишу что это не компилируется.
А вот если бы был нормальный доступ к elementData, можно было бы самому сделать как надо, а не как за тебя решили эффективные инженегры из оракла.
ДОЛБОЯЩЕР ЕБУЧИЙ ТЫ БЛЯДЬ СОЗДАЁШЬ ЛИСТ С ВРАППЕРАМИ, А ПЕРЕДАЁШЬ ПРИМИТИВЫ, ДОЛБОЕБ ТУПОЙ СУКА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Для float никак, для double:
List<Double> doublesList = List.of(1.1, 2.2, 3.3);
double[] doublesArray = doublesList.stream().mapToDouble(Double::doubleValue).toArray();
Задача надуманное говно. Конвертируй каждый враппер в примитив, если тебе так хочется обмазаться этим говном. Любой адекватный человек не то что принимать аргументы из врапперов будет, а даже вообще массивоговно в свою программу не допустит.
> Но почему-то прибита гвоздями к винде именно вижла. Ни идея там кстати пара нативных библиотек есть, ни нетбинс, ни да даже эклипс который вообще на нативном SWT написан.
Потому что студию написали в те времена, когда шарп был проприетарным говнищем для винды. Студия ещё и на крестах написана с активным юзанием winapi, её даже на x64 не могут портировать, что там линуксы.
> Для float никак, для double:
> DoubleStream
Ну вот по сути только самому писать врапер листа чтобы он мог нормально копировать примитивы.
>>399371
> ArrayUtils.toPrimitives(list.toArray(new Float[]))
Под капотом просто фор, как и в стримах, как и у меня.
>>399368
Первая библиотека работает с листом чисел, вторая с массивом примитивов, что в этом надуманного. Обычная ситуация когда одну дто конвертируешь в другую.
Вопрос был о том, как сделать в одну строчку. При использовании ArrayUtils/твоего кастомного метода получается одна строчка
>Под капотом просто фор, как и в стримах, как и у меня.
А как ты сука захотел сконвертировать одни данные в другие, сука? Ты бы ещё захотел String в Integer распарсить и заныл, а хули нельзя усё срозу жи сделоть и нужно фором порсить?
ДОЛБОЕБ ЕБАНЫЙ ТЫ ЕБУЧИЙ ДЕГЕНЕРАТ НАХУЙ СУКА БЛЯДЬ ТУПОЙ ЕБЛАН БЛЯТЬ В АРРЕЙ ЛИСТЕ НЕ ПРИМИТИВЫ СУКА СОДЕРЖАТСЯ, А ВРАППЕРЫ БЛЯДЬ!!!!!!!!! ТЫ МАКСИМУМ ЧТО СКОПИРОВАТЬ МОЖЕШЬ ТАК ЭТО ОБЪЕКТЫ ЭТИ ЕБАНЫЕ СУКА, А ЧТОБЫ ПОЛУЧИТЬ МАССИВ ПРИМИТИВОВ ТЫ ДОЛЖЕН ОБЪЕКТЫ КОНВЕРТИРОВАТЬ БЛЯДЬ В ПРИМИТИВЫ СУКА ЕБЛАН ТУПОЙ СУКА БЛЯТЬ ДЕГЕНЕРАТ ЕБАНЫЙ НАХУЙ СУКА ЧМО ОБОСРАННОЕ ХУЙЛО ЕБАНОЕ ПИЗДОЛИЗ ЕБАНЫЙ ОЛИГОФРЕН ЕБУЧИЙ
Два чаю.
Я не понимаю что ты пытаешься сказать, какие нахуй враперы и почему в шарпе работает?
Это не проблема листа. Это проблема женериков в жаве. Когда выйдет вальгалла в 2030 можно будет делать что-то вроде
List<float> list = new ArrayList();
list.toArray(new float[0])
1. Загугли, чем отличаются объекты от примитивов, тупое ты ебло.
2. Покажи код с петушарпа. Там такое также не может работать.
>Ну вот по сути только самому писать врапер листа чтобы он мог нормально копировать примитивы.
Если у тебя не разовая задача, возьми коллекции которые поддерживают примитивы и не еби мозг себе и анонам.
https://github.com/carrotsearch/hppc
http://www.eclipse.org/collections/
https://fastutil.di.unimi.it
Ну и нахуй ты сюда эту ассемблерную парашу привёз? Кастинги блядь, какие то, побитовое превращение объекта в флоат, пиздец.
Я же сказал что надо сделать, конвертнуть List<Float> во float[], какая разница если эти кастинги дают то что нужно без итераций и прочего говна.
Ты программист или долбаеб, которому занятся нечем? Такое никогда не встречается в реальных задачах, придумал хуйню какую то.
Ну и пиши на чистом си, там вообще и не такое можно творить, охуеешь. А на ассемблере что можно сделать, пиздец!
А что мешает сделать в цикле?
Если нужна производительность, то тогда лучше вообще не использовать жэву
Думаю, что нет.
Да ничего, я так и сделал вообще то. Просто думал можно более эффективно.
Что есть.
Зачем ты пукнул? В нашем треде такое не любят. Иди в петушарп тред, там занюхнут и попросят ещё.
https://youtu.be/UVoGE0GZZPI
Да хоть через минуту. Мой лид перекатывает все сервисы в первый час после релиза на новую версию и всех кодомакак принудительно заставляет пользоваться новыми фичами.
Надеюсь процент стремительно меняется в сторону после...
Ну например сниппеты из ждк 18.
Версий кроме LTS не существует.
Нужно написать крудошлепскую программу, но таким образом, чтобы она всегда запускалась и адекватно реагировала на отказы внешних по отношению к ней систем + запускалась, даже если внешние системы лежат. Внешние системы - это база и soap эндпоинт.
И вот со вторым пунктом проблема, потому что лежачая база вызывает несоздание JdbcTemplate, что вызывает несоздание контекста приложения, что вызывает падение.
Та же хуйня с внешним soap-эндпоинтом - при создании бин SuckMyAssPortTypeService обязательно валит по удаленному урлу, чтобы взять wsdl оттуда (хотя я не понимаю, нахуя, ведь все модели и сам этот класс уже созданы WSImport). Т.о., если soap-эндпоинт не работает, программа валится по той же причине.
Как сделать так, чтобы программа запускалась всегда и могла мониторить внешние системы? Сделать DataSource и PortType НЕбинами, создавать и тыкать говняной палкой по таймеру внутри классов-сервисов?
Сначала работает сам на себя (обязательно с денежным профитом, если он смог сам себе сделать денег, то сколько компании принесет вообще охуеешь), лутает опыта как крепкий мидл и вкатывается. Такие кадры максимально ценные, потому что это потенциальные лиды через кратчайший срок.
крепкий мидл это 3 года опыта в нормальной компании с микросервисами, ci/cd и тд. Чет ты рофлишь)))
Для кодомакаки - да. А человек с мозгами после 3 лет работы уже подумывает, чтобы с позиции лида уйти самому кабанить.
Про соап не скажу, но датасорс скорее всего надо писать свой, который будет поллить состояние базы. Либо найти уже готовый. Думаю, кто-то да написал
так нахуя бизнесу чел, который через 3 года думает уйти. Ты чет на месте разьебываешься
Чтобы 3 года эти приносить прибыль? Ты думаешь, при найме кто-то думает, что его работник проработает там больше полугода?
при чем тут прибыль 3 года приносить. Ты же сказал, что чел с "мозгами" сначала на себя работает. Это сколько? один месяц? два?
Ну обычно формирование мидла такого типа, начиная с нихуя не знающего долбаеба, занимает год-полтора.
Получается чел работает на себя 1-1.5 года, делает какие-то мелкие заказики для малого бизнеса. Превращается в крепкого мидл разработчика, а затем идет разьебывать синьора на собеседовании? А через 1.5-2 года уже думает кабанить? Ты таких много знаешь?) Ты же понимаешь, чтобы хотеть кабанить, не нужно быть крутым разрабочиком)). Я чет вообще логику не улавливаю твою.
>Получается чел работает на себя 1-1.5 года, делает какие-то мелкие заказики для малого бизнеса. Превращается в крепкого мидл разработчика, а затем идет разьебывать синьора на собеседовании? А через 1.5-2 года уже думает кабанить? Ты таких много знаешь?)
Ну да, примерно так и происходит. Только не обязательно бизнесу хуйню какую то делать, на джаве фриланса нет. Можно какой-нибудь микро-бизнес иметь.
>Ты же понимаешь, чтобы хотеть кабанить, не нужно быть крутым разрабочиком))
Появляются желания ливнуть с должности лида из за наличия бешеного количества денег, когда ты можешь на то, что заработал всю оставшуюся жизнь жить, а ебашить что-то для кабана скучно. Возможность реализовывать что-то своё, решать бизнес-задачи, жить интересно завлекают и многие уходят с лидов с солидными оплатами записываться в кабанов с доходом гораздо меньше, чем у них был раньше, но зато с интересной работой.
Спринг дата + хибер для работы с хранилищем данных.
Чел, ну вот у меня есть опыт работы манагером с управлением несколькими командами (30-40) человек. Я знаю бухгалтерию, продажи и еще много всего.
Т.е. по твоей логике, я могу прийти на собес и сказать мистер синьор, я дохуя опытный. Возьмите меня мидл разработчиком?
Хуй знает как это относится к опыту разработки. Но вкатиться в лида, будучи нихуёвым по технической части тебе это охуенно поможет.
я собственно поэтому и вкатываюсь в разработку, чтобы потом это все дело в синергии заюзать. Вопрос в том, что сейчас нужно все равно в крупной компании поработать, чтобы понять как эта кухня устроена и тд. А для этого надо кодить и то, что у меня солидный опыт из другой сферы никому нахуй он не нужен
Так я тебе говорил про год работы самого на себя, где 90% работы это работа кодером, а не управляльщиком говна.
так ты пример приведи такого микробизнеса своего, который может тебя качнуть до мидл разраба)))))))). Ты либо не понимаешь, что такое бизнес, либо я хз
Ну ладно, с бизнесом я перегнул, такое редко бывает и это исключения, когда дохуя инициативные черви-порриджи изверчиваются и находят фриланс даже в жабе. В основном сразумидлы просто вкатываются с кучей петов.
Уже больше на правду похоже
просто если чел может сделать бизнес, который приносит деньги, он понимает, что его можно масштабировать и тд. Нахуй ему идти программистом работать
Попробуй поиграть с параметром spring.datasource.continue-on-error, если твое приложение на спринге.
Не каждый бизнес можно эффективно и легко масштабировать. Плюс, когда то прыгнуть с небольшого бизнеса с маленьким доходом на хорошую должность с большой зп может выглядеть как хороший аплевелинг. А может его бизнес начал работать почти без него, и хочется больше денег, не теряя бизнес. Опять же, всё это говно - удел порриджей, и у всех там всё разное, описать всё сразу невозможно. Но в целом, такой зоопарк создаёт единый системный источник мидлов для крупного бизнеса и регулярно стрижётся hr'ами.
ну может быть, я в этом плане не могу ничего знать, т.к не работал в этой сфере. Короче в моем случае ток петки хуярить
Спрингопроблемы итт.
1) удолить спринг
2) не юзать библиотечне api напрямую. Т.е. тупой пример, если у тебя сокет, то сокет выкорчевываешь, заменяешь на обертку, внутри которой сокет. Обертка не имеет конечного жизненного цикла - т.е. она файнал иммутабел. у неё есть только методы сенд /ресив тупо ждущие, когда внутренний сокет будет в нормальном состоянии пусть даже в busy wait, пох вообще. Параллельно демон тред, который чекает эти обертки на предмет все ли с ними хорошо и воссоздает коннекшены. Сам сейчас подобную хуету делаю. Наверняка уже есть какое-то название паттерна для этого и его реализация, но у меня проект эзотерический, внешних либ нет вообще
Чел, ты нахуя высираешь свое "умственное" заключение, не читая контекст. Вопрос был не в том, нанимать умного или тупого. Вопрос был КАК ЧЕЛ СИДЯ ДОМА МОЖЕТ СТАТЬ МИДЛОМ, НО ПРИ ЭТОМ ЗАНИМАЯСЬ БИЗНЕСОМ.
>нахуя бизнесу чел, который через 3 года думает уйти
>при чем тут прибыль 3 года приносить. Ты же сказал, что чел с "мозгами" сначала на себя работает. Это сколько? один месяц? два?
Не вижу здесь такого вопроса.
Ты его не видишь, потому что его там нет. Я пытался понять логику чела, что он имел ввиду под "сразу вкатиться на мидла", имея 3 года опыта (откуда?) занимаясь каким-то бизнесом. При этом, этот чел хочет потенциально стать кабаном и у него есть мозги. Понимаешь какая солянка?
В моем манямирке мидл это 3 года опыта, поэтому я так выразился, нахуя бизнесу чел, который идет в компанию уже думая о том, что не хочет работать (?)
Ребята есть вопрос, скачал идею скачал джаву 8 и 18. Возникают проблемы когда хочу начать писать код, не указывается пакедж и когда набираю код вместо методов выходит lambda
JAVA_HOME & PATH пути указал, пару дней ломаю голову.
Надо было качать эклипс, идея багованная.
Блять, я тебе не про мотивацию этих челов, а про то, как они выглядят для бизнеса и что они есть. Мотивация у них в основном - поднять еще больше бабла
По задачам.
Майкрософт закрывается на территории России, C# тоже забирают с собой, Билл Гейтс уже объявил. Эту страну невозможно чипировать, он заявил
Шаблон отдыха, ты скорее всего с таким термином сталкивался
Это твой школьный друг, который вместо 11 класса пошел в техникум. Больших перспектив он не обещает, хотя исправно отрабатывает свою смену на заводе.
Несамостоятельное подразделение оракла не может принимать собственные решения.
Да и в целом язык и вся экосистема так себе, одна невозможность разработки без IDE чего стоит.
Если надо обратиться к какому-то сервису по HTTP, чаще всего - дёрнуть REST API.
Это чтобы написать свой HTTP-сервис.
Ты же можешь понять разницу между браузером и сайтом, например?
это принимать входящие запросы. А там чтобы самому делать исходящие запросы
когда у тебя есть боевая база и ты хочешь раскатывать все изменения базы автоматически
Когда захочется обновлять схему БД автоматически, потому что заебался руками запускать команды DDL в консоли. Ещё есть flyway.
>раскатывать все изменения базы
Это роллбэкать? Как бывает во взрослой жизни? Я создал H2 базу, и сразу ее версионирую? Я как бы должен всегда тащить с собой этот ликвибэйз?
нет, это апдейтить. Добавил новое поле, как это изменение залить на боевую базу? Подключаться к ней и руками?
>>одна невозможность разработки без IDE чего стоит.
А еще без компьютера тоже разрабатывать не выйдет
При любом изменении схемы базы в проде. Особенно если ты ее не один разрабатываешь. Иначе представь, что ты поменял схему - в существующих табличках одни поля добавляешь, другие переименовываешь, третьи удаляешь. А твой коллега этого не узнает. А так хоть будут ченджсеты.
когда решить что обычный скл в флайвее тебе не интересен, а хмл - это заебись.
В каких-то носиульках схемы нет. А там где есть, есть миграции. B даже где нету тоже есть костыли для миграции. Но насколько они они обязательны, черт знает.
Схема всегда неявно есть на уровне преобразования данных из базы в джава классы.
То есть нет.
Можно в джейсоннодах использовать без схемы. И хранить без схемы. Даже в реляционках, например постргрюше можно. А в носикульках и подавно.
Мы так и делаем, когда стучимся в апишку от петухонщиков, которая отдает с динамическими полями.
Ну это зависит. Микросервис должен жить, когда связанные сервисы упали. И должен хотя бы половину функционала своего сохранять.
Ну а что сможет отдел кадров это сервис с базой данных сотрудников упадет? И есть ли какой то смысл держать только одно удаление сотрудников в отдельном сервисе?
Сервис отдела кадров только к первому сервису по этому поводу обращается, у него ещё свой функционал есть, например выдть зп Васяну. Т.е. микросервисы это не про общение между ними, а про живучесть? И у меня всё ещё монолит? А в случае падения бд откуда микросервис достает данные?
Часть из своей базюлины. Часть ниоткуда. И нужно спроектировть так, чтобы несмотря на это ниоткуда какая-то часть функционала сервиса работала.
Можно брокерами сообщений общаться.
да, микросервисная архитектура это такая очередная наёбка для раскрутки кабанчиков на переписывание на модную молодёжную философию. Если часть упадёт, то работа остальных не имеет смысл. Плюс появляется куча проблем с транзакциями/синхронизациями/интерфейсами/версионированием/потреблением ресурсов/мониторингом. Легче становится только разработка
Чем <> отличается от () java
<> - короткая запись для дженерик параметра, когда уже ясно, каким он будет, т.е. например:,
List<String> list = new ArrayList<String>() пишется как
List<String> list = new ArrayList<>();
() - это вызов метода без параметров, как в конструкторах наверху
length без скобочек встречается у массивов, потому что там это доступное наружу поле, а не метод
Помню, как то раз, на заре своего вкатывания в жабу, проебал часа два и жопу, пытаясь понять, какого хуя не работает мой код massive.length().
Ты охуеешь, в идее. Я тыкал и не мог понять, какой блять референс ему нужен.
Так идея подскажет, что такого метода или поля у объекта нет и также подскажет какие есть.
Ну я тупой тогда был и ниасилил.
Идея как раз и причина таких ошибок. В Эклипсе один раз столкнёшься с такой ошибкой и запомнишь, а в идее так никогда и не поймёшь разницы.
Насколько нужно быть тупым эклипсодегенератом, чтобы не различать поля и методы?
Микросервисы - это не про "упала нода, но не всё". Микросервисы - это про принцип единственной ответственности. Ты же не пишешь весь код в одном классе?
Почитай про принцип единственной ответственности и не задавай тупых вопросов.
То есть ты не знаешь зачем он тебе, но берешься объяснять как оно тебе и всем остальным нужно?
Это нормальный вопрос, ты просто не можешь ответить))))
Может все таки снизайдешь с высот своих познаний и просветишь нас? И заодно пояснишь, чем этот принцип лучше сотни других таких же, но менее разрекламированных.
Много классов - модульность. Много сервисов - модульность. Модульность - хорошо. Объяснил как мог, надеюсь понял.
Так и все монолиты пишутся с разбиением по модулям по функционалу, с выделением подмодулей-апишек. И внутри монолита модули дергают друг друга за апишки. С синглреспонсибилити там все в порядке.
Микрочелики дают:
1. Удобство раздельной разработки и деплоя. Тебе до определенного момента похуй что в других микросервисах, ты их пишешь в отдельном репозитории и одтельно деплоишь.
2. Про отказоустойчивость. Как раз приложуха падает не вся, а кусками. Ну и несколько инстансев микросервиса тоже дают отказоусточивость.
3. Для перфоманша с горизонтальным маштабированием. Несколько инстансов твоего микросервиса если там еба нагрузка. Но это наименее важное и применимое.
возникает вопрос - где граница этой ответственности. Каждая сущность - отдельный микросервис? Куда тогда девать общую бизнес-логику?
>Реализуйте иерархию классов с примером основных принципов ООП
Типа нужно реализовать наследование?
В здравом смысле. Пиши, как считаешь правильным и дели, как только разрастается сервис до невообразимых масштабов.
>2. Про отказоустойчивость. Как раз приложуха падает не вся, а кусками
в большинстве случаев не имеет смысла полурабочее приложение.
Я понимаю если есть ядро и например модули печати/адресов/картографии/помощи - тогда да, если модуль адресов упал, ядро продолжает работать и это имеет смысл. Но если например ядро разделено на микросервисы и почти каждое действие проходит через все микросервисы - оно будет падать даже если часть приложухи живая.
По
>почти каждое действие проходит через все микросервисы
Это уже не единственная ответственность, а половинчатая, соответственно написана хуйня.
вот я написал монолит, Service инжектятся друг в друга. Теперь мне надо каждый Service выделить в отдельный микросервис? Получить еблю с транзакциями, сетевым взаимодействием, версионированием интерфейсов, мониторингом всего этого. И ради чего? Стало оно проще? Нет, не стало, всё это просто размазалось по куче микросервисов с добавлением оверхеда
Микросервисную хуйню зафорсил гугл. У них просто много команд на один проект и по сути каждая команда приносит свой библиотеку\сервис, но иногда им еще нужен сервис\библиотека другой команды. И чтобы не дергать всех подряд в этой спагетти структуре, команда просто поднимает сервер с апи для своей хуйни. Что отлично описывает запутанную природу такой разработки.
К чем это я, граница ответственности - это команда. Если это не так, то микросервисы тебе нахуй не нужны.
в манямирке идеологов возможно и существует некая независимость, но в реальном мире это миф. Почти всё зависит друг от друга и обращается друг к другу.
Бухгалтерия общается и со складом, и с архивом, и с биллингом, и с какой-нибудь интеграцией
Это ты тупой со своей идей, а я уже давно разобрался!
>Бухгалтерия должна был конечным микросервисом и не вызывать ничего.
а куда слать платёжки? Как проверять что товар есть в наличии и в нужном количестве?
покупатель хочет купить товар. Кто должен послать запрос наличия товара на склад, выставить платежное поручение и проверить поступление денег?
Имеет ли смысл работа, если например склад не работает?
>ava на данный момент является мультипарадигменным языком, тут можно писать в любом стиле, который тебе вздумается,
Ебало императивной макаки имагин?
В новых версиях ничего не добавили толком. Создают иллюзию активного развития языка. А Java как была на уровне 8, так и осталась.
Всегда спрашивают
- коллекции: хеш/три мапу, аррей/линекед лист, очереди. Заебищные интервьюеры могут спросить по конкурентным коллекциям.
- иерархию исключений
Реже, но встречается:
- иерархия ввода-вывода
- многопоточка, но там в основном ключевые слова и сами принцыпы многопоточки в джаве. Но всякие методы объекта тред: слип, вейт, йелд и джойн могут спросить.
Остальное по обстоятельствам. Ну что такое паттерн и матчер надо знать, но вспоминать методы - скорее нет.
Cижу уже месяц на 17, но использую ее как 8. Разве что Map.of(), List.of() из 11 использую.
Иногда нахожу примеры с рекордами. Типа как тут: https://www.youtube.com/watch?v=4L4LEnawcO8&t=3394s Но больших преимуществ в них не вижу и сам их не использую.
Но восьмерку уже не поддерживают новые версии большинства библиотек. И если кабан не хочет/не может обновиться на 11 хотя бы, то вот разница между свежими библиотеками и 2-3 летними под жабу8 может быть значительная.
Вот например тут. Ну ладно у него идея подсвечивает. А если это ревью пулреквеста прямо в гуе гитхаба/гитлаба? Или я копаюсь в истории коммитов тоже не через иде?
Я везде пишу типы. Пишешь левую часть выражения, а потом тупо ctrl+alt+v и идея сама подставит правую часть, и даже переменную сама назовет. Потом только поправить, если назвала бессмыленно и все.
Гигиена жизненно необходима, товарищ. Стирать нужно регулярно.
Бета-тестеры сидят на этом: https://www.jetbrains.com/ru-ru/idea/nextversion/
А коммунити - это такой стабильный навороченный блокнот.
>>ты их пишешь в отдельном репозитории и одтельно деплоишь.
так только деды пишут, сейчас используется монорепозиторий для микросервисов
>>сидят на этом:
так я про нее и говорил
>>А коммунити
это ж типа демки - чисто интерефейс посмотреть перед тем как купить/скачать с торрентов
Есть три вида работника.
Менеджер
Офисные работник
ДИректор
Все они выполняют свою работу, но делают это по своему.
То есть можно сделать общий абстрактный класс Работник с методом makeAction() и от него наследовать три класса Менеджер, Офисный и Директор и переопределить метод makeAction().
Но проблема в том, что каждый работник еще по разному проводит перерыв. Один может пообедать, другой пойти на прогулку, а третий позаниматься спортом. То есть в классе Работник есть еще метод общий метод takeBreak(). Но проблема в том, что нужно сделать Менеджера, который обедает, Менеджера, который прогуливается, Менеджера, который занимается спортом. Тоже самое с Офисным и Директором. Как это реализовать, желательно с наименьшим кодом?
Не буду же я делать еще три класса Менеджер, который обедает, Менеджер, который прогуливается, Менеджер, который занимается спортом и т.д.
Спасибо.
это как?
inferface Break {}
class Sport extends Break {}
class Meal extends Break {}
class Promenade extends Break {}
class Worker extends ... {
void take(Break break);
}
Но вообще задачка из разряда "пострадать хуетой" конечно.
Разве Мост не больше подходит?
Ну так опровергни. Или пердиксам страшно слышать про то что книги больше нинужны?
Ты книги видать никогда не читал или хуёво умеешь читать.
>>Курсов для вкатышей.
Я тож в свое время жавараш не осилил. Он попросил 5 раз вывести в консоль хэлоу ворлд, я написал цикл выводящий это в консоль - он сказал НЕПРАВИЛЬНО, НАДО 5 РАЗ СКОПИПАСТИТЬ SOUT, учитывая что от меня и до этого в прошлых заданиях требовали хэлоуворлды выводить, а скипнуть пару уровней сразу нельзя - я дропнул эту парашу. И пошел на курсеру на курс от Duke University, где писал парсер цепочек днк, взломщик шифров методом частотного анализа, генератор текста по цепи маркова
Это не троллинг чел, времена поменялись, смирись с этим
мимо мидл не прочитавший ни одной книги по айти
Никто не говорит, что без книг не вкатишься. С книгами просто быстрее будет, а ты тупое говно, проебавшее кучу времени на поиск инфы на разных васянских сайтах.
>>С книгами просто быстрее будет
там много пишут того, что устарело или вообще не нужно, или по крайней мере сенйчас не нужно и ты это все равно забудешь к моменту когда понадобится
>>ты тупое говно
я не читал ни одной книги и все рвано знаю все эти ооп, солид, драи, ацид, патерны, а также кишочки языка и фреймворков.
>>проебавшее кучу времени
Как раз таки чтение книг - проеб времени почти как чтение двачей. А навык гугления в разы полезнее.
>>на поиск инфы на разных васянских сайтах.
У меня обычно 2-3 одних и тех же васянских сайта вслывает по моим запросам. Первый - это стак оверфлоу. И обычно там либо ответ, либо ссылка на нужный кусок текста в доке.
Мало знать паттерны, нужно их применять. Я вот тоже книги не читал, но жалею, что просрал кучу времени, тыкаясь как слепой котёнок в идее. Подумываю на досуге почитать какую нибудь книженцию из шапки треда чисто для удовольствия. Лид.
>>Мало знать паттерны, нужно их применять.
Они на автомате изучаются/применяются.
>>тыкаясь как слепой котёнок в идее
Поэтому надо курсы смотреть, а не книжки читать и тыкаться не понимая как полученные знания применить. Для совсем тупых в видео даже показывают какую кнопку в идее нажать, чтоб что то сбилдить и запустилось. А в книгах часто считают что надо чисто про язык писать, а как ты будешь реально этот код запускать - твои проблемы, хоть каждый фаил руками компилируй. Регулярно в треде какой то анон появляется, который спешит поделиться батхртом от того что код в учебнике не компилируется
Какой же ты тупой, пиздец просто. Я как раз вкатывался по курсам, бесплатным правда. Абсолютная хуйня с тупейшей отрывочной подачей инфы. Хорошо, что не платил никому.
>>Какой же ты тупой
>>Я как раз вкатывался по курсам
>>Абсолютная хуйня с тупейшей отрывочной подачей инфы
Курс не смог найти ты, а тупой почему то я. Ну ок, вкатывайся по книгам, возвращайся лет через 5 когда первый круд на спринге осилишь.
Какая еще Блоха? Хорстмана читал, но кусками, потом просто легче стало загуглить. Да и че там в жаве учить то? Синтаксис быстро осилишь, всякие там ждбц и сервлеты только на базовом уровне нужны - напишешь пару раз руками, а потом будешь пользоваться спрингдатой/жуком/ждбц темплейтом. А по спрингам всяким лучше доки читать, а не книги.
Я и вкатился по книгам. Курсы дают знание "вот как прям щас сделать х", книги полируют и разжёвывают непонятное (хотя тот же второй том хорстмана даёт и первое, т.е. полностью заменяет собой курсы). Смысла не юзать книги не вижу.
мимо
С такими обращениями тебя никто всерьёз воспринимать не будет, чтоб что-то тебе пояснять. Ответить тебе по существу предъяв - значит согласиться с оскорблениями, принять навязываемые тобой правила. Это совершенно неприемлемо для нормального человека. В следующий раз пробуй уровень дискуссии выдержать.
>Почему каждая совковая пидараха обязательно посоветует книги вместо онлайн курсов, лекций топовых американских вузов и т.д.
Потому что "топовые вузы" делают хорошие курсы по Computer Science, а по конкретным языкам или не делают или делают говно. Вот пример курс MIT по Java: https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/pages/lecture-notes/ рассказывают совершенно базовые вещи, буквально глава 1 любой приличной книги по Java.
>>405663
>мимо мидл не прочитавший ни одной книги по айти
Хоть расписание автобусов своего мухосранска прочитал?
>>Хоть
>>прочитал?
У тебя какие то максималистские представления. То что я не читал книги не отменяет того, что я перечитал кучу доков. Жабу я давно освоил, а книги по фреймворкам нет смысла читать. Если брать книги по архитектуре - то часто там ничего нового, ведь ты и так в проде все эти патерны видел и применял, или хотя бы видел на всяких жокерах. Ничего нового там не узнаешь. В этом плане статья про использование какой то техи может оказаться куда информативнее книги.
В книге вся инфа уже собрана и упорядочена. Обычно делают интерактивное оглавление, что позволяет кликать по ссылочкам как в браваёзере. Не надо ничего искать, просто читаешь.
Книги рецензируют авторитетные научные работники, что гарантирует, что автор не обосрался и инфа в книге заслуживает доверия, в отличии от рандомной статьи в интернете, в которой может быть написана полная ерунда.
самая хорошая книга -- это оф. документация.
проблема книг в том, что зачастую они уже содержат устаревшую информацию.
а так, найти ответ на свой вопрос гораздо быстрее по печатным материалам, по оглавлению и ctrl + F, а не видосикам.
видосики скорее приемлемы в виде конференций, которые смотришь на чилле и можешь подчерпнуть интересные и новые вещи.
> в видео даже показывают какую кнопку в идее нажать, чтоб что то сбилдить и запустилось
тебя в гугле или на сайте жидобрейнса забанили?
>а так, найти ответ на свой вопрос
Найти ответ на конкретный вопрос проще на SO и опционально полирнуть баэлдунгом и доками, если интересует "а как эта конкретная хуйня внутри работает"
Найти ответ на вопрос - что это блядь и как это всё работает - проще в книге.
Найти ответ на вопрос - как мне собрать что-то минимальное, с чем можно поиграться - в туториалах, как текстовых, так и видео.
такие вещи как раз таки гуглить очень сложно, потому что они всем очевидны, кроме вкатыша.
>Найти ответ на конкретный вопрос проще на SO
Если это не что-то совсем тривиальное, то с вероятностью 90% на SO будет или устаревший ответ, или общие рекомендации попробовать то или се.
Нужен совет. Изучаю жабу и бд, фронт вообще не знаю.
Хочу реализовать страницу, на которой будут элементы/кнопки, при нажатии на которые в поле будут добавляться данные в указанном виде.
Так же, чтобы при нажатии на элемент в поле, чтобы он исчезал, а остальные сдвигались на место убранного элемента.
Так же будут кнопки стереть, чтобы убирался с последнего элемента и подтвердить, чтобы выполнить некоторое действие.
На чём это проще всего реализовать? Хватит ли html или нужно что-то ещё. Есть где-то готовые решения?
Так я не увидел, что этот тред мёртв, потому сначала тут запостил, а потом уже в актуальном.
Ебало представили?
В голос
Использую logback + slf4j
Нифига не могу понять, как разделить уровни логирования для разных аппендеров. Хочу чтобы в файл шло все что приоритетнее чем info, а в stdout все, начиная от TRACE. Может нужно заводить два разных логгера? Но я тогда не понимаю как их в конфиге описать, и смысл ROOT тоже не понимаю.
>Курс не смог найти ты
>КОПАЙСЯ В ГОВНЕ
>ХУЛЕ ТЫ НАШЁЛ ГОВНО, ТВОЯ ПРОБЛЕМА
Таких мидлов, как ты, в любой говноконторе даже сраный индус съест и не подавится.
>самая хорошая книга -- это оф. документация.
Да, когда эту документацию не пишет криворукий еблан, который свой же код не в состоянии проверить.
Чел, просто не пизди больше, ты нихуя не понимаешь, что несёшь.
>Вышесказанное мной не отменяет бесполезность юнит тестов. Надо просто писать чисто. Я вот пишу чисто и вообще багов не ловлю. Замена юнит тестам - ООП.
Ебать ты лошара.
Затем, что функционал у жабы побольше. А то, что кодомакака не может в вербозный ЯП, это проблема кодомакаки.
Просто люди ещё не заебались вопросом написания энтерпрайза на Си.
Когда они это сделают, то все тёлки потекут к ним.
>Вот если не допускать буйных зумеров, то размеренная работа над "легаси говном" это топ вообще.
Зависит от того, насколько клиент хочет свистоперделок и насколько до этого в легаси вставляли костыли.
Кодомакака может во что-то только когда увидит, как человек это делает.
Это копия, сохраненная 28 сентября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.