Прошлый: >>1595845 (OP)Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?А: Нет, не поздно.https://github.com/random76/Java-Thread/wikihttps://github.com/qqqlll/Java-Thread/wiki
>>1608794Ага, как же, в прошлом и до 1000 нормально не стало. Ещё и перекатили, блеать.Сейчас опять латентные делфисты вернутся.И будет только хуже.
Скоро джава-треды будут как питоньи. Перекаты до 500, куча вкатышей, обсуждения про while и System.out.println на сотни постов и попытки понять, почему код из 10 строчек не компилируется.
>>1608821Шутки шутками, но вы благодарите бога, что сюда не лезут всякие питонутые додики-инфантилы, которым фигурные скобочки глаза режут.
Kotlin:Вкатываемся в новый язык на превосходной отточенной jvm с богатейшим набором библиотек от java.>Что имеем:У нас есть синтаксический сахар поверх джавы, немного ФП (очень удобные лямбды), корутины с асинхронщиной, DSL и многое другое.В синтаксисе можно встретить много WTF-решения (как же без них), но в целом, плюсы перевешивают минусы, во всех языках есть что-то что раздражает.Параллельно jvm платформы пиляться kotlin-js (котлин для javascript) и kotlin-native (компилируемый в нативный код котлин). В целом, DSL позволяет даже писать на HTML и CSS, если кому-то это надо.>Хайп:Язык был подкреплен гуглом в связки мобильной разработки, а с недавних пор рекомендован как основной, из-за чего начался рост популярности языка.Так же для языка был создан фонд, чтобы в случае покупки создателей не повторилась судьба с джавой. Вероятно условия гугла.В связи с этим, котлин очень популярен в мобильной разработке, порой даже раздражает что весь контент пишут именно о телефонах. Но нужно помнить, котлин это та же джава и сейчас мы видим, многие фреймворки предлагают решения сразу на двух языках (как минимум пишут примеры).>Производительность.Не забываем, что java (с JIT) одна из самых производительных платформ. Она делит топ 10 на ровне с многими другими производительными платформами. Так же у джавы хорошо оптимизированный бд-драйвер, что видно по тестам.https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=queryНередко именно база-данных является узким местом в веб-приложениях.>IDE - среда разработки.Бесплатная community editon - обычно более чем достаточно, но можете попробовать триал-версию.https://www.jetbrains.com/idea/download/>Официальный сайт и там же чтивоhttps://kotlinlang.org/docs/reference/>То же с переводом:https://kotlinlang.ru/>Awesowe (либы близкие к kotlin)https://github.com/KotlinBy/awesome-kotlin#libraries-frameworks-webилиhttps://kotlin.link/>Чаты в телеге (еще живые):https://kotlinby.github.io/kotlin-telegram/
Быстрый вопрос. Есть сайт на жабе + спринг и прочие привороты отвороты. Если посмотреть на сайт как юзер, то когда юзер заходит на сайт открывается https соединение и всё норм. На сайте всякие стандартные поеболы типо "Наши клиенты" "Наши сотрудники" "О нас". И этот весь текст с картинками на одной странице! А теперь главное - наверху сайта есть панелька, с этими о нас и прочим, когда юзер тыкает на вот этот о нас, сделанно так, что почему-то страница перезагружается, в PATH ставится # типо sait/#oNac и и юзера просто кидает на текст, что был внизу. Нахуя перезагружать страницу, если в жсе можно просто вниз отправить, нет? Второй вопрос - одновременно в network я вижу что открылось второе соединение http, если я тыкаю этот О нас. Это вообще нормально, что теперь я имею и https и http, которые так-то ведут на одну страницу
>>1608945Что значит видишь соединение https и http, что конкретно по этим адресам? Может там картиночки по http передают, а остальное по https
>>1609089Они же пытались свой тред создавать, но он быстро умер, и куда интереснее паразитировать на этом.Пора наш тред переименовать в jvm-тред
>>1609054Да разобрался уже, кто-то впихнул на ссылку http место https, в итоге получалась копия первоначального. >>1609087Ну сойт то на спринге и жабе, а треда для вопросы чисто по вебу у нас нет как на форче
>>1608941>JIT>производительных платформЗвучит неубедительноДжава может скомпилироваться перед выполнением?
>>1609260>Джава может скомпилироваться перед выполнением?Да, она компилируется перед исполнением, в байт код.Чистый код джавы не интерпретируется.Байткод, собранный в jar нужен, чтобы ты 100500 "экзешников" на каждую платформу не таскал.Кросскомпиляция это не всегда круто, как кажется.>>1609267Зачем асинхронное программирование? Это тебе в гугл.
>>1609281>Зачем асинхронное программирование?для однопоточных понятно.или котлин решил сделать комбо?
>>1609298Если поиграть и не хочешь ебаться, то просто IDE поставьБесплатная community editonhttps://www.jetbrains.com/idea/download/PS картинки анимешнику из прошлого треда.
Надо бы в шапку потом добавить>Try Kotlin (пробуй и кодь)https://try.kotlinlang.org/>Поиграться просто.https://play.kotlinlang.org/
А как быстренько вкатиться в скалу? Без 500 страниц книги и без видеокурса на 40 часов?На джава второй год работаю, а сейчас у нас новый проект будет, и там нужна скала.
Парни. Простите за даунский вопрос. Объясните пж. Как у ServletResponse, например, могут быть прописаны методы в оракл.докс, если это интерфейс, а в нем нету тел методов?Получается, что там целый пласт класов имплементит этот интерфейс, и определяет их?
Был на собесе, на стажёра жава, в одной из контор Котосиба. Надо было сделать какой-то обход бинарного дерева, и объяснить как внутри устроен гарбедж коллектор, я ничего не смог. Я очень много читал книг, пытался их до конца вычитать, и по синтаксису и по ее, и про все пытался читать. Сейчас зашёл домой, так обидно что-то. Видимо это все же не мое, и надо узнавать как вкатиться в Яндекс еду.
>>1609442Ты создал уже? Никогда не понимал таких советов. Создай ПО которое будет полезно самому себе, как Тинькофф например, был такой мне совет. Ну пиздец, охуеть, а Интел с Майкрософтом мне не создать?
>>1609439> объяснить как внутри устроен гарбедж коллекторТакое минимум на миддла спрашивают. Так что не расстраивайся, проблема не в тебе.
>>1609461> dartМёртворождённая хуита на уровне react native.Учить для андроида нужно и джаву, и котлин.
>>1609461Ну смотри, с жабой ты можешь потом в случае чего перекатиться куда угоднов кровавый тырпрайз, а с дартом ты будешь сидеть и пузыри из жопы пускать
>>1609439Пиздос, сочувствую. Я вот тоже сейчас миллион книг задрачиваю, и будет, скорее всего, точно так же. Хотя, обход бинарного дерева смог бы сделать, наверное. А тебе уже готовое бинарное дерево дали и тебе надо было его обойти?
>>1609573Ничего. Просто уже реализовывал бинарное дерево и рекурсивный обход каталогов и подкаталогов. Обход биндерева особо ничем не отличается.
Читаю Шилдта, увидел его реализацию очереди, претендующую на постоянное выполнение. Код прилагаюhttps://pastebin.com/LTFZ2MqcНо неожиданно, если очередь полностью заполнить, то putloc перескакивает на 0, и getloc = putloc = 0, программа выдает, что очередь пуста, хотя, она все еще заполнена.Не думал встретить такого в книге, но вдруг кто расшарит, что я не так понял
>>1609622Нет смысла, если у твоё приложение - раб спринга.>>1609616Отдельные функционалы вполне хорошо строятся на отдельных контекстах, вся спринг-лабуда строго инкапсулирована, наружу pojo. >>1609606Ничего удивительного, в книгах про основные алгоритмы дохера фундаментальных ошибок подобного рода. Помню сутки с красными глазами искал баг в удалении из сбалансированного дерева, списанного с какой-то модной книги, но алгоритм был наглухо дебильный, и только на вид рабочий. в принципе нет книжек в котором есть работоспособное удаление из сбалансированного дерева, поэтому в итоге задача была решена пересозданием дерева после накопления мусора до определенного уровня
>>1608778 (OP)Это что же получается, в котлине можно свои синтаксические конструкции пилить??? Ну всё, нахуй жабу.
Достаточно давно тут сижу, все это время пишу на котлине и радуюсь. Забавно наблюдать, как теперь внезапно прорвало.
>>1609660>Отдельные функционалы вполне хорошо строятся на отдельных контекстахНо зачем? Чем это лучше одного контекста?
>>1609675>>1609675Тем, что выполняется требование инкапсуляции.Классы, явно задействованные в конфиге путем аннотирования, согласно SRP, лишаются роли бизнес-логики и становятся техническими адаптерами, заменителями xml.Общий контекст уместен только для части проекта, являющейся main entry, т.е. то, что крутится в контейнере.
>>1609691Про "требование инкапсуляции" это примерно та же самая болезнь, которая заставляет людей возле каждого простейшего Dao аккуратно рисовать одноименный интерфейс. Дальше правда человека что-то совсем в сторону понесло...
>>1609671только представь количество нечитаемого, неподдерживаемого говна, которое написано с использованием вот таких вот фишечек
>>1609696Не, не про это, я имею в виду про скрытие реализации и луз каплинг за счет инкапсуляции.В спринге же обычно начинаются куча сеттеров или аннотации (что уже зашквар - зависимость от спринга).В итоге, как правило, получается кашица. Может мне не повезло с проектами, хз.Больше всего мне понравился фреймворк контейнера idea, там инжекшен на конструкторах. Сделано изящно, на грани здравого смысла, но таки зачетно.
>>1609708>луз каплинг>аннотации (что уже зашквар - зависимость от спринга)Да-да, мы тебя правильно поняли, все нормально
>>1609715Да нихуя вы не поняли, начитались книжек, а сути не понимаете. Не зря Алан Кей сказал, что не имел в виду цпп, когда придумывал ООП, интересно, что бы он сказал про джаву. Но так-то да, да деревьями леса не видно.
>>1609717>начитались книжекЭто как раз скорее про тех, кто готов не жалеть сил ради великой идеи соблюдения луз каплинга. Кто не читал, тот, может, и слов таких не знает.
>>1609721Это не такие уж и великие идеи, а простые слова, обозначающие насущную необходимость, способствующую улучшению читаемости, тестируемости, масштабируемости и проч. коммерческим ценностям кода.
>>1609724Хорошо бы тогда показать, как конкретно "зависимость от спринга" ухудшает тестируемость и масшатабируемость, а множественные контексты улучшают.
>>1609731Придется инстанциировать сабсет контекста, а это уже не один контекст или костыли с $пропердяме.
>>1609717Кого ебет что он там думал:а) симула была раньше б) мнение автора термина, по поводу того что он обозначает - всего лишь одна из интерпретаций среди многих другихв) динамическая сгущенка с супер поздним связыванием и абьюзом паттерна обсервер - никак не повышает и, наоборот, понижает надежность кода, его предсказуемость, консистентность и даже читаемость.г) Рим пал, центурион смолток проиграл (и на то были объективные причины)
>>1609737Я хотел начать со своего while. Узнал, что тут можно изменять переменные из внешнего скоупа, это всё упростило.С фором можно напридумывать инфиксных функция, типа to, downto, step и прочего с отсылкой к бейсику.
>>1609743Чтоб не инстанциировать весь, ты для теста пары методов будешь поднимать всё приложение? Впрочем да, можно везде lazy написать, но как правило не так просто всё оказывается. >>1609742Потише братиш, я лишь хочу отметить что под ООП каждый понимает что-то своё. смолток проиграл потому что сан его купил
>>1609746Даже подумываю, что можно запилить какой-нибудь билдер DOM'а, типа такого:html(lang="ru") {it.head {it.title("page")}it.body {it.h1("Page")}}
>>1609748>чуть большим количеством скобокЭто примерно как рассуждать, что xml это тот же json, только чуть больше буков
>>1609748> с чуть большим количеством скобокПри этом. Если обмазываться сахарком, абстрагируешься от того, что ты вызываешь функции/методы и начинаешь думать в системе координат своего DSL. Это как в лиспе.
>>1609761Это уже к дизайну DSL. Вот градл тоже таит кучу сайд-эффектов, но о них не задумываешься.Вообще, так много магии и сахара я не видел нигде, кроме перла.
>>1609747>Чтоб не инстанциировать весь, ты для теста пары методов будешь поднимать всё приложение?Если это действительно тест пары методов, это скорее юнит-тест, для которого контекст не нужен. А для тестов с контекстом, по моему опыту, действительно гораздо здоровее всегда поднимать его целиком. Это с одной стороны как раз освобождает тебя от возни с разными контекстами или их подмножествами, с другой - дает больше гарантий, что ты тестируешь именно то, что реально потом запускаешь, а не какую-то специально созданную ради тестов конструкцию.
>>1609766Это всё заебись когда у тебя в контексте 25 сосаторов JMS, которые сразу начинают что-то пытаться процессить
Правда такая >>1609767 ситуация была создана моим предшественником, и корректно забороть её без переписывания всего проекта невозможно, а на это нужен повод для бизнеса, поэтому я еще больше возненавидел спринг и высираюсь тут теперь
>>1609757Если серьезно, ты можешь присмотреться и понять, что разница все же не только в количестве скобок
>>1609772Тут даже сможешь научиться писать такое самомуhttps://kotlinlang.org/docs/reference/type-safe-builders.html
>>1609779Вот, достигнуто похожее решение путем увеличения количества скобок )))Прозреваю что котлин напихает там атомиков, или заинлайнит просто всё, интересно, как оно там реализовано. Скорее второе.
>>1609798Именно с этим примером да, а теперь попробуй сделать DSL для html (вопрос о полезности и нужности именно такого DSL рассматривать не будем)
>>1609802У меня был похожий в одном проекте. Ну там да, в целом в котлине красиво выглядит, судя по >>1609794Но я бы не стал идти в проект, в которым таким занимаются.
>>1609814Как -то так.В имплементации пищешь println('<table>') ; consumer.accept( .. всяка разная логика .. ); println('</table>');буков конечно много, но и что-то сопостовимое с хтмл по уровням и разнообразию вложенности вообще не имеет смысла так оборачивать, странная херня получится, как ни крути.
>>1609439Пчел ты.......Меня на стажера взяли когда просто рассказал что учил джаву и учу и интересно. После месяца стажерства получил какой никакой опыт, провалил один собес, а на втором взяли и дали 800 евро в руки. Вопросы были самые базовые, дерево не крутил. Вообще легкота была на типо что такое обжект, как вот соединение сделать. Потом один sql дали и задачку с веревкой, на которую я прикинулся что не знаю. Правда мне потом дали на 2 недели сделать веб сервис с аутефикацией, авторизацией, бд и прочим на спрингбуте, но на самом собесе изи, так что забей на этих говнарей лул. Вот список каких никаких обыкновенных вопросов на джуна, которые я себе как-то составлял.hascode / equals / equals и == / collections (карту коллекций нарисовать, пару предложений чем одна вещица отличается от другой )/ какие виды garbage collector-a есть и кратко как устроены вообще у баелдунга довольно очень хорошие кратко, чекай его/ immutable / threads (volatile - runnable и thread - wait sleep notify notifyAll - atomic CAS - syncronished ) / enums / singelton how to write и почему он pattern / пачку паттернов в придачу / inner class и виды / что первым грузиться в джаве, класслоадер - статик блок и вот это всё / compile и runtime polymorphism разница между ними, можно ли оверайдить или оверлоадить статик методы / String и в чем разница между просто str = 'alo' и new String('alo')
>>1609832Так, но за это тебе скажут молодец и попросят сделать в варианте в виде класса. А потом ещё скажут сделать чтобы потокобезопастным стал. На своём опыте говорю. Это как тебя просят реверстнуть стринг, избавиться от дублекатов в аррее и сохранить порядок, сделать аррейлист синхронайзд и прочее. Ну ты с умным лицом отвечаешь Arrays.asList и Collections.reverse, в линкед лист потом в сет и обратно, Collections.synchronized и протягиваешь листочек с ручкой обратно, на словах говоря как ты сделал это такими вот методами. Однако ехидный тимлид улыбается и просит сделать всё то же самое, только вот без использования этих и кучи посторонних методов. Всегда от такого бомбило, но таки я понял, что это на самом деле норм. Стоит заучить один базовый вариант и немного потянуть время пока пишешь, в слух проговаривая мысли и тогда время на интервью затянется и тебя не спросят как устроена архитектура спринга и ты обмякнув не сможешь объяснить про прокси и адвайсы.
Так еще раз спрашиваю, про книжку для нулевых.Вопрос в том, плохо ли начинать с книг по 5-6 версии(thinking java, head first java).В прошлом треде посоветовали Хорстманна(Java SE 8. Базовый курс). Сходу показалась сложной. Не понял, как запускать хелловорд из книги в иде.
>>1609851Если что там в первом хеловорде был использован package, но как создавать проект, чтобы запускать код с ним, приложенный к книжке не написано.
>>1609851Забыть про ide и первое время писать код в сраном блокноте. Хорсман, как старт, очень и очень гуд. Осиль первый том.
>>1609863Он сам сказал запусти в cmd - я запустил. А теперь запусти в какой нибудь иде(а как запускать в инструкции к иде должно быть якобы). У него эклипс - у меня - идея.Ладно, раз ты советуешь еще раз постараюсь нагуглить, как работаать в иде с пакетами. Спасибо.
>>1609863И просто так ради интереса. Если книжки времен 5-7 джавы уже не подходят, почему многие их советуют?
>>1609911Заебали уже со своей стратегиейМожно хоть через стратегию-синглтон-сервислокатор-фасад-мост-адаптер.
>>1609916кстати, кококотлин шире всего распространен в андрюхиной среде именно из-за этого. кококомпилятору кококотлина можно задать целевую версию жабы и он будет выдавать нужный байткод
>>1609917потому што андрюхины вмы жрут байткод 7 жабы. андрюха 7 вроде восьмую жабу поддерживает, но если ты хочешь таргерировать все андройд девайсы, то вынужден обходиться седьмой жабой
>>1609927Во-первых, пишут на котлине энтерпрайз (пусть пока и не так много). Во-вторых, может хоть ты расскажешь, что за бэкенд на jvm, который при этом не есть по сути тот же энтерпрайз? Ты много такого видел?
>>1608821Ну а представьте что через 50 лет будет? Это еще сейчас вкатывальщики (это я) как бы запрыгивают в последние вагоны поезда по сравнению с общим временем популяризации технологий, а потом программирование вовсе перестанет ассоциироваться с каким-то временным промежутком, и по сути само понятие "вкатывания" вообще перестанет иметь смысл. Ну типа какое значение будет иметь своевременность "входа", если технологиям уже больше 70+ лет? Так что не понимаю всех этих баребухов по этому поводу, как будто it сфера через пару лет уже закроется, потому что всё все выучили и будут дальше жить вечно
>>1609979Любые предметные области и профессии, программирование это или нет, так или иначе приходится учить. Делается это не мгновенно. В этом и суть "вкатывания". Даже если появится мифическая "армия программистов", программирование не станет таким же лёгким, как интеллектуальная работа дворника.
>>1609800>Так и до деонона недалеко..Уже представляю, как бегают аноны и пишут твоим родным, друзьям, что ты кодишь на джаве.
>>1609946После того как запилили котлин, на шарп даже уже не посматриваю. Котлин для меня убил шарп, лол.
>>1610027Для своих проектов.Два просто классических сайта с шаблонами и тупо с ajax.И два json сервиса для такое херни которую я даже не объясню, но очень надо.
>>1609439>>1609523пиздец, имею уже год опыта, сменил 2 места работы ни разу на собесе не спрашивали алгоритмы и GC. Когда буду перекатываться в мидла придется хер сосать и читать кучу всего
>>1610035Пассивный заработок. Поисковой трафик - реклама - профит.Чтобы делать контентный сайт, не нужно одностраничные реакты, которые порой плохо кушаются поисковиками и которые долго грузятся (что в совокупности плохо влияет на ранжирование).
>>16101111) Производительность.2) Проблема динамической типизации в большом многолетнем проекте.3) Низкое качество некоторых решений в php (я про некоторые библиотеки/фреймворки).Да, один топ проект переписывал в свое время с пхп, теперь пхп вообще уже не помню.
>>1610162Юзер (трафик) заходит на сайт, получает свой контент, часть трафика сливается об рекламу - реклама платит за переходы.
>>1610164Понил. Я тут к бэку присматриваюсь. Мне обычно пхп рекомендуют. Думаешь стоит вместо этого взять kotlin?
>>1610164Это, наверно, самая фундаментальная схема заработка на вебе. Забавно что многим это сейчас в диковинку.
>>1610166Если не думаешь вкатываться во фриланс (где пхп, вроде, до сих пор в топе) и вообще сможешь осилить JVM мир (он таки сложнее чем пхп) то стоит.По своим ощущениям, на котлине, я вообще не понимаю зачем писать сейчас на пхп, питоне, ноджс. Нет уже такой топорности как на джаве (хотя я на ней писал дольше).Есть одно но. В мире джава-либ полно плохо за-дизайненных (по рамкам современности) библиотек/фреймворков. Они порой просто не совсем удобные или переусложненные на ровном месте. Но за то они будут качественнее, чем аналогичное фасадное говно из того же пхп (субъективное, это мое мнение).
>>1610185Тут моя идея в чем, кто бы тебе не говорил, но ты никогда не сможешь освоить хорошо много языков, много усилий уходит на освоение "экосистемы" языка и практики (иначе ничего в голове не отложится толком). Поэтому есть идея выбрать только один наиболее идеальный и универсальный язык для себя.Java, С++ (может быть когда-то C#) и python - это наиболее такие универсальные языки.Например на втором проекте (на самом деле десятом, просто не все успешные были) была просто избыточна джава, но я не хотел осваивать еще какой-то язык, я лучше потрачу время на углубление знаний в той же джаве, чем освою какой-то питон, или переосвою пхп.Поэтому мой набор инструментов - это углубленно джава и поверхностно js (только на фронте).
>>1610301>>1610307На практике, если точно не уверены, можно просто кликнуть и посмотреть исходник функции.
>>1609851Начинать нужно с Java programming language 1997 Там версия 1.0.2 и нет всякого ненужного говна, ну вы меня понимаете.
>>1610556Вроде как литерал сразу в пул попадет, а если через конструктор, то только через интерн. или типа того
>>1610554Ну да, дохера всяких конфигообразных вещей так же пишется. И котлин позволяет это делать гораздо изящнее
>>1610561Хотя сейчас вроде как интерном никто не пользуется, а computed strings попадают в пул через алгоритм дедуплекации, тк с восьмой жабы завезли сборку мусора в метаспейсе и могут себе позволить.
>>1610494Смешно, спасибо за внимание конечно. Но мог бы ты объяснить чего нет в книгах написанных по 5-7 версии, что нужно для новичка?
>>1610577>чего нет в книгах написанных по 5-7 версии, что нужно для новичкалямб, сримов и ворк стилинг пука нет)
>>1610584Во всех языках??Или ты гофер и пытаешься тут матерых программистов удивить тем, что if может быть не прибитым к полу оператором, а выражением?
Посоны, чо по котлину порешать, шоб сахарок нормально освоить? Интересует что-то типа жидовских коанов. Они конешно были норм, но мало. Не чувствую силу.
>>1610655https://try.kotlinlang.org/https://play.kotlinlang.org/byExample/overviewhttps://play.kotlinlang.org/koans/overview
Кто придумал скалу? Ебанаты какие-то. При взгляде на котлин и груви сразу видно, что и для чего, а это пиздец, с++ какой-то.
>>1610656>>1610659Чем Фримаркер лучше jsp? И почему jsp гораздо чаще видно в требованиях на работку? Вряд ли из-за какого-то легаси.
>>1610743Именно что из-за легаси. JSP компилируется в сервлеты и к тому же иногда вынуждает вставлять блоки кода на джаве. Прям в лучших традициях пхп. С JSTL, впрочем, ещё жить можно.На самом деле, сейчас и серверные шаблонизаторы используют всё реже, в моде клиент-сайд рендеринг (реакт и вот это вот всё).
>>1610750Сидеть и долго продумывать его дизайн, как создатели промышленных языков, а не клепать и уж потом думать.
>>1610750>Как написать свой DSL, чтобы не получилось говно? Написать хотя бы десяток их. Одинадцатый может годный получится. Другого пути нет. Только практика. Набивание шишек.
а откуда вы узаете хайповые технологии, а то я тута подсмотрел у коллег на другом проекто они юзают thymeleaf, orika, откуда они вобще узнают про эти тихнологии?
Можно ли в буте прогнать тесты с разными .properties файлами? Есть бин (jax-rs прокси), который настраивается при помощи .properties файлов. Конкретно настраиваются accept и content-type хедеры. Так вот, нужно перебрать 4 комбинации данных хедеров (application/xml и application/json) и 4 раза прогнать тесты с этими комбинациями. Можно конечно 4 абсолютно идентичных теста написать, но это по - моему вообще зашкварно. Еще в голову приходит мысли через рефлекшн в рантайме там подложить бину нужные настройки. Такой вариант тоже не оч сами понимаете. Гуглил, ничего не нашел.
Есть тупой дегенератский вопрос, т.к. я нуб.Вот множественное наследование. Его нет. Говорят "юзайте интерфейсы". Ок.Вот у меня класс лошадь и класс птица, мне надо класс пегас с методами "летать" и "ржать". Допустим летать и ржать это интерфейсы, которые воплощаются лошадью и птицей (да, лошадь летает а птица ржёт, не суть). Но если я сделаю класс "пегас", воплощающий летать() и ржать(), то как мне скопировать его реализацию у родителей? Если я пегаса сделаю наследником лошади, то смогу Super.летать() или как-то так, но ржать() то всё равно придётся заново воплощать, т.к. птица не является родителем.
>>1610823>как мне скопировать его реализацию у родителей?Копипастом. Ржать как лошадь пегас еще сможет, а вот летать точно будет не как птица. Дальше сам.
>>1610812Похоже, тривиально это не делается.В тестах можно попробовать юзануть DataProvider, а данные для него взять через какой-нибудь свой резолвер properties-файлов.
>>1610823Если у тебя реально всего два метода, можно в классе "Пегас", имплементящем два интерфейса, объявить поля "Лошадь" и "Птица", а в реализациях интерфейсов тупо дёргать соответствующие методы "Лошади" и "Птицы".
>>1610823Старые джависты сделали бы так:Летать <- Ржать <- Пегас.Но это антипатерПоэтому остается только делегирование (паттерн).Делаешь пегаса, в него суешь объекты ржать и летать, потом юзаешь типа такогоpublic void Ржать() {// своя логикаthis.объектРжать.doРжать()// своя логика}Эту херню решают обычно миксины, но их чет никуда не завозят, поэтому паттерн делегирования.
>>1610823наследование говно, делай класс - крылья и абстрактный класс ебало с методом open().. твоя лошадь будет иметь внутри поле с наслелником от ебала, которое ржет, а птица с наследником от ебала, которое чирикает + поле крыльев, пегас будет иметь поля крыльев и ржущее ебалоэто называется композиция
>>1610823interface Winged {void fly();}interface Horse {void neigh();}class PlainOldHorse implements Horse {@Overridevoid neigh() {sout("Sup dvach");}}class Pegasus extends PlainOldHorse implements Winged {@Overridevoid fly() {sout("LOOK MOM IM FLYING!1")}}
>>1610845>>1610850И да, если мы про котлин, у котлина есть делегаты свойств (ну в край можно извратиться и через extension function)
>>1610865Это работает если пегас всегда будет частным от лошади. А если лошадь какает, а пегас не какает (ебаное фантастическое животное), то начнутся проблемы из-за которого ненавидят наследования.Как сказал анон выше, наследование лучше избегать кроме случаев полиморфизма.
>>1610897Основной поинт в том, что этот шаблонизатор есть везде (питон, пхп, ноджс).Когда есть зоопарк проектов и можешь влиять на архитектуру, удобно.
>>1609323Так что? Никто не подскажет, как быстрее всего выучить скалу?Что-нибудь формата изучаем скалу во имя добра?
>>1609323>А как быстренько вкатиться в скалу? Без 500 страниц книги и без видеокурса на 40 часов?Никак. Выучить язык != научиться писать грамотный код в стиле ФП.>>1610906>Так что? Никто не подскажет, как быстрее всего выучить скалу?https://www.ozon.ru/context/detail/id/31921731/
>>1610897>>1610900>>1610825Есть вероятность, что я обосрался и напутал с этимhttp://mustache.github.io/
>>1610925а местные эксперты не в курсах?зачем эти треды по проге нужны если вы только в гугль можете отправить?
>>1610933У тебя вопрос как раз уровня целого мануала.Это однохерственно что:- как мне сделать сайт- как мне начать программировать на джава- как мне бросить писать на го и начать профессионально разрабатывать на котлин- как мне спасти вселенную от галюнов.
>>1610944если бы ты хотя бы спок фреймворк упомянул то уже было бы веселее, тебе просто нет дела до моего вопроса
>>1610922Тут про тесты для джавы вряд ли кто-то ответит, а ты про груви. Скорее всего, ты быстрее осилишь всё сам, чем дождёшься тут совета.
>>1610964ну обезьяны баш юзают, а на выходе потом получают гавно которое пиздец как сложно поддерживать, переносить, версионировать и трекать
>>1611094>@Override>public void kakat() {>//Pegasus should not kakat!throw new UnsupportedOperationException("ebobo shtole??7");>}
Вот допустим, есть json файл со сложной структурой. И допустим, мне надо внутри этого файла поменять значение у объекта, который сам есть значение у объекта. Все остальное должно остаться как есть. Как это лучше всего сделать? Использовал бибилиотеку одну, там можно распарсить json в массив объектов и дальше тоже самое проделывать и получить доступ к нужному полю. Но проблема в том, что объекты в том массиве неупорядочены и когда я это отправляю на вывод порядок там другой. Как можно мою задачу решить попроще?
>>1610812Кто тебя заставляет использовать проперти файлы в тестах? Делаешь тестовый конфиг с 4 бинами. Инжектишь их в тест. И через параметризированные тесты запускаешь 4 раза.
>>1611349Пусть как можно больше людей так считают, чтобы у нас не было тонны вкатывальщиков, как у жс, питона и сярпа.
>>1611331> объекты в том массиве неупорядочены и когда я это отправляю на вывод порядок там другойкакая разница какой порядок когда неупорядочены
>>1610865Продолжаем теребить пегаса и лошадь.Господа ООПешники, все по канону сделал (с дефекацией)?https://pl.kotl.in/j9k0wsiEl
>>1611478Добавил полиморфизма. И гоферов.https://pl.kotl.in/hclcmiTPBПовторяющийся код, на самом деле он не должен быть одинаковый, поэтому абстрагировать его не нужно.Сейчас попробую описать то же через делегирование
При делегирование, код кажется намного гибче.https://pl.kotl.in/JCIfJovQWВот так мы вернулись из ООП программирования в процедурное, с интерфейсами
>>1611399Мне потом надо сохарнить все это в файл и чтобы он был точно таким же как до правки, кроме тех значений, которые я заменил.
>>1611511Я могу собирать любого зверя по интерфейсам. Перебирать множество возможностей. При наследования я ебнусь это делать (каждая вариация это абстрактный класс и возможно даже еирархия абстрактных классов).
>>1611521...по сути круто было отказаться от наследования (кроме интерфейсов) и добавить миксины/трейты и все.
>>1611385У меня коллега на работе решил изучать сишарп(из экономистов стать программистом). Купил он себе книги и макбук. Насчёт макбука мы всем офисом проигрывали. Через месяц он это дело бросил. Через полгода от нас уволился, поотсылал заявки на стажера/джуниора си шарпа и его конечно же послали. Сейчас он не работает и хуйней страдает. (его ожидает Макдональдс с двумя высшими и он еще третье высшее хочет)
Есть телефоны Cisco. Можно ли к ним напрямую подключаться с помощью библиотек и вытворять всякие действия, например количество непринятых звонков получить? Если да, то подскажите пожалуйста в каком направлении это искать? Api Cisco?
>>1611547https://www.youtube.com/watch?v=5Y0Alqb9H_IВообще не юзается, и его поля не инициализируются. А для этого в родителе создали специальный конструктор. Костыли в jdk!
>>1611533>Насчёт макбука мы всем офисом проигрывали.Студия же есть под мак. И на aspnetcore херачить.
>>1611550Кто вообще юзает эти Properties? Они есть у System. Но кто свои собственные городить будет?Только если проект на java 1.0-1.1
>>1611554Он вообще программировать не умеет, куда ему макбук для шарпа. Больше для понтов его наверное купил. И мантры были типа "Винда глючит, как на ней можно работать, плавность АРЯЯЯЯ!". И вообще непонятно почему именно шарп этот чел выбрал. Для всяких вкатывальщиков хорош питон или си. Даже мы ему это советовали.
>>1611549Аннотация можно забыть и получить граблями по лицу. Ключевое слово обязательно и приведет к ошибке сразу, без граблей в лицо.
>>1611567Я как бы тоже начинал с Си K&R.Правда я там только дочитал по сути только до синтаксиса - создание переменных, if, циклы, чтение файла до EOF. Помню когда впервые увиделfor(fahr = 0; fahr <= 300; fahr = fahr + 20) не понял что написано, как будто инопланетный язык. Но зато потом остальные языки понятными казались, Си-подобные же.Хорошо, что не дошел до указателей и управления памятью, а то бы испугался.
Хочу сходить на собеседование в ерат.Вакансия какая-то общая...Как вы думаете, к чему готовиться?Самому ничего найтись не получилось. Но попалась инфа, что у них есть жёсткая система грейдов. Но не на публике. Никто не намекнет что нужно, что бы не опустили до миддл-, а быть миддл+-сеньор?
>>1611647Строковая интерполяция это вот этоhttps://pl.kotl.in/ViPtmJVw8А то что ты говоришь, это что котлин заменяет некоторые геттеры из джавы .getName() на .name
>>1611646Лицемерие лицемерием, но тут реально есть анон, ненавидящий аннотации, генерики, лямбды и вывод типов в джаве.
>>1611660Котлин выбирают новички из-за хайпа.Налили сахара и мухи полетели.Ну и в последних релизах джавы, тоже начали добавлять сахар, котлин не нужен.
>>1611681Конкуренция всегда хорошо. Джава стала развиваться, даже что-то годно к 2024 наметили годное (есть доклад на трубе).Джава и Котлин не конкуренты, я серьезно. Они едят с одного стола. Потонет джава, потонет и котлин.Котлин не обязателен. Это личный выбор.Тем более не обязательно даже что-то переписывать только фанбои носятся с идеей что надо срочно все переписать на новый язык. Котлин прекрасно живет с джавой.Котлин не идеален, он просто удобен (я им реально себе питон стал заменять).Нет идеального языка, я по крайней мере не нашел.чувствую себя уже евангелистом, лол
Коротко и четко: зачем нужны класслоадеры? Это что-то типа подгрузки ресурсов во время загрузочного экрана в играх?
>>1611655придёт микрочелик со списком тем, и по каждой теме будет тебя опрашивать и ставить оценку напротив каждого пункта.Нет английского, нет вышки, нет лычек - сразу минус, ты становишься ниже уровнем чем их стажёры
>>1611840> принтлн статический, а String.format нетЭто тебе не жаба, здесь:1. Вообще нет static2. принтлн - не метод, а функция.
>>1611884По вызову конструктораProgram().main()А так вызываются компаньоны, аналог статик (скобок нет).Program.other()
>>1611926Ты не понимаешь смысла printf. Он не должен переносить строку, если ты явно не поставил ключ %n.
>>1609671CursedЯ вообще люблю адово поиздеваться над языком, к примеру я вообще подумал, можно ли сделать подписку на события как в шарпе. Ответ - да, Можно
>>1612088>66% андроид>57% жвмНу если учесть что таргет jvm входит в таргет андроид, то там считанные единицы не-ведраНо окей, даже так хороший знак. Может даже вакансии на веб появятся когда-нибудь на нём.
>>1612094Если есть официальный перевод, всегда кидаю ру-вариант.как представитель вменяемого ру-коммьюнити
>>1612097Петучинский грит не будет.https://youtu.be/DGBHodUOwds?t=15>>1612101Там множественный выбор и скорее всего с пет-проектами.
>>1612107АААА ОПЯТЬ ОН!!!Ну всё, теперь интеллектуальный уровень этого треда опустится на сотню постов до МВП-шного.
>>1612125Это сраные котлинисты. Надо для них отдельный загон выделить, чтобы не мешали белым вычищателям спринга.
>>1612046магия Extensions. В котлине можно спокойно расширять. Ну я незнаю как такое компилиться в jvm, но в шарпе свойства компиляться функции(а c# слизан с джавы между прочим), и тут никакого криминала нет, так как мы не добавляем никаких переменных или же резервных полей в класс. Тут все подробно рассказано -> https://kotlinlang.org/docs/reference/extensions.html.Я вообще хотел изначально расширить непосредственно лямбду setOnClickListener. вот такfun (((v: View)->Unit)->Unit).subscribe(func: (v:View)->Unit) = this(func).Но не получилось так что перегрузок метода setOnClickListener вроде несколько1)Принимает View.OnClickListener2)непосредственно лямбду (v:View)->Unitи я не могу написать butt::setOnClickListener.subscribe(::myfunc). А если написать так то вроде все ок. У меня вроде нет нескольких одинаковых колбаков в классе.fun ((v:View)->Unit).subscribe(func:((v: View)->Unit)->Unit) = func(this).Но я все-равно получу хуй. Так как во время запуска он скажет что я попытаюсь превратить лямбду в View.OnClickListener.Из всего выше описанного можно сделать вывод:Метод нихуя не два, а блять один, и котлин просто меня тролит.Скорее всего это все из-за функциональных интерфейсов в java. Я пробовал на джаве создать метод принимающий объект реализующий интерфейс. И в котлине IDE также подсветила, что там есть перегрузки
>>1611453Не юзал exposed но есть алтернативы женапример JOOQ или легковесная библиотечка мне прям очен понравилась sql2ohttps://www.sql2o.org
>>1612175как спринг-дата сочетается с энтерпрайзом?Энтерпрайз это каждый запрос пишется лично дбашником, опционально через вьюху или хранимку. 100500 метрик производительности и оптимальности этого запроса.А тут херак херак твоя спринг-дата нахерачила фулсканов
>>1612437Вот короче книга, там много интересного по кишочкам. Она конеш пиздец старая, но база особо не поменялась с того времени.
>>1612423Добавлю, что каждый запрос также должен пройти согласование в трех комиссиях, с оформлением всех документов по гостам. Энтерпарйз же, что вы хотите.
>>1612423Охуеть, это где так?Мы все запросы пишем сами, все скрипты миграции, процедуры, триггеры и т.д. - всё сами.
>>1612520Ты представь только, каждое findUserByUsername "пишется лично дбашником, опционально через вьюху или хранимку". В таком зачарованном месте, я думаю, само время течет как-то иначе.
>>1608778 (OP)На jug ru высрали видео с джокера, налетайтеhttps://www.youtube.com/user/JUGRuVideo/videosда, неделю назад, я тормоз
>>1612541Затем же, зачем и в остальных местах. Чтобы не проебать старое значение, если попытаешься изменить.
>>1612520>Мы все запросы пишем сами, все скрипты миграции, процедуры, триггеры и т.д. - всё сами.и работаете вы в ип магомедов?
>>1612536простейший кейс: в твоём findUserByUsername поиск по неиндексированным полям. В тесте всё норм, в проде тормозит
>>1612579Охуеть, оказывается, поля для поиска надо индексировать! Ну тады ладно, придется сажать по пять дба на каждый запрос.
>>1612576Зелёный банк. Запросов у нас столько, что потребовалось бы столько же дбашников, сколько кодеров.>>1612579То есть ты хочешь сказать, что перед деплоем на прод никто не проверяет на большом количестве данных?
>>1612442Тут я соглашусь.Для тяжелого проекта лучше юзать чистое SQL, иначе просто добавишь себе проблем.
Анонасы, как совладать с этим эксепшеном? persistence.xml есть в WEB-INF/classes/META-INF, архив с Хибернейтом в папке с либами. Не знаю уже что делать, весь стаковерфлоу с ног на голову перевернул, всё не подходит.
>>1612620>persistence.xmlИ что в нем? И как в коде инициализируется jpa? Это "TestPersistence" у тебя где-то явно прописано?
>>1612627>>1612612В контракте get:>@return the value to which the specified key is mapped, or null if this map contains no mapping for the keyТо есть, все-таки не норм.
>>1612641Существует достаточно много случаев, когда нет разницы, no mapping for the key это или само значение null. Если для твоей задачи разница есть, то не норм.
>>1608778 (OP)Анончики, я хочу выучить прогинг под андроид с нуля, и как ни странно я застопорился в самом начале, т.к. мне кажется это весьма важно. В общем вопрос может для кого легкий, но для меня сложныый - kotlin или java in 2k20?
>>1612639xml как на пикче. Изначально был другой, этот взял с одного из ответов, заменив значения на свои.Инициализация вот такая.
>>1612423>Энтерпрайз это каждый запрос пишется лично дбашникомНу да, но надо придумать ORM, чтобы а ВДРУГ ПОНАДОБИТСЯ сменить оракл на постгрес, а код минять не надо сразу изкаробки, еще и тестируем на h2 в тестах заебися
>>1612538Че там жопа горит у оптимизаротов котоые хотспот дрочили микросекундами, а вот хуяк ПЛОТИ НОЛОХ за каждый процессор, а ты че думал инструментарий в опенждк не завезли
>>1612667Только запостил - понял, что все properties вообще мимо кассы. Заменил xml на пикрелейтед, ошибка осталась та же.
>>1612669> ВДРУГ ПОНАДОБИТСЯПрям как клепать пустые геттеры и сеттеры вместо того, чтобы сделать поле публичным, а ВДРУГ завтра в сеттере понадобится логика.
>>1612677>клепать пустые геттеры и сеттеры вместо того, чтобы сделать поле публичнымну это скорее байтоебские фреймворки которые прямо в байткод лезут и им нужен метод а не переменная, как эти спринги которые инжектят прайвет филды блять
>>1612680Именно для main() толку мало.А так - чтобы можно было вызывать как через main("foo", "bar", "baz"), так и через main(arr).
>>1612682Спринг может что-то засеттить через рефлексию, если не нашёл сеттер.Другой вопрос, когда даже ебучий POJO пишут с приватными полями и портянкой геттеров-сеттеров. Ещё и ругают тех, кто так не делает.
>>1612721Запили экранирование, чтобы, к примеру, выражение "$${value}" не заменялось и превращалось в "${value}".
Господа джависты, в чем разница между Date() и LocalDateTime(). Какой фатальный недостаток был в Date?Пик - я чет офигел от кода для LocalDateTime и зачем вообще ему timezone, если время эпохи линукс в utc??
>>1612775https://play.kotlinlang.org/#eyJ2ZXJzaW9uIjoiMS4zLjUwIiwiY29kZSI6ImltcG9ydCBqYXZhLnRpbWUuTG9jYWxEYXRlVGltZVxuXG5mdW4gbWFpbigpIHtcbiAgICBwcmludGxuKExvY2FsRGF0ZVRpbWUubm93KCkpXG59IiwicGxhdGZvcm0iOiJqYXZhIiwiYXJncyI6IiJ9
>>1612553>Затем же, зачем и в остальных местахПеред методом и классом другое назначение имеет final. Не во всех остальных местах.
>>1612819Вот почти все, кроме этого только пара архивов из библиотеки для расчёта md5. Брал из репозитория Мавена.
>>1612832>hibernate-entitymanagerСначала его и хотел скачать. Но послушался табличек пикрелейтед и не стал.>а еще другие зависимости самого хибернейтаРазве он сам бы не выдавал исключение, если бы чего-то не хватало?>>1612833Почему?
>>1612844>Почему?Потому что разработчики мавена и спринга уже решили эту проблему за тебя, а ты страдаешь хуйней.
>>1612641Смотря какая мапа же, у хэшмапы первое значение будет null если вставишь, куда она будет все вальюсы возвращать
>>1612863>На собесе у тебя не будет мавена, я на бумажке писал список нужных зависимостей.чел ты к даунам на работу пришел...
>>1612835Это прекрасно. Но все же как оно там, на все случаи жизни? Если мутабельный pojo для хибернейта мне нужен, например, будет работать?
>>1612863Ещё, небось, и java -cp 100500 жарников нужно будет писать вручную на бумажке, вспоминая их названия и версии?
>>1612849Ну сейчас пока никаких ошибок нет, хотя как раз сейчас они бы очень пригодились.>>1612851>>1612862Видимо, так и придётся сделать. Хотя я ведь до этого устанавливал другие библиотеки и фреймворки нормально. Почему именно Хибернейт так странно себя ведёт?В общем, скачал hibernate-entitymanager той же версии, что и core. Ошибка осталась. Как дальше действовать? Какие ещё нужны зависимости?
>>1612876https://stackoverflow.com/questions/16721211/installing-hibernate-by-hand-without-eclipse-or-maven-or-any-ide-or-build-toolЭто пробовал?
>>1612876>Хотя я ведь до этого устанавливал другие библиотеки и фреймворки нормальнонет чел, ты этого нормально не делал
>>1612866А никак! Ебись как и раньше ручками.Вообще, конечно иммутабельности должно быть в меру. Но увы - хайп дривен девелопмент.
>>1612884Градл или мавен - разницы нет. Просто мне что-то подсказывает, что дело не только в зависимостях (но как минимум в них).Ант сам по себе не резолвит зависимости, это почти то же самое, что ты делаешь сейчас, но не командой в консоли, а в виде xml.
>>1612878Ещё нет. Сейчас буду пробовать, спасибо.Но, один вопрос: что такое>src folder? Просто любой каталог из classpath?>>1612879Ну, до этого момента не было реальной нужды в Мавене. Спринг сразу кидал ошибку, когда отсутствовала какая-то зависимость.
>>1612891> Спринг сразу кидал ошибку, когда отсутствовала какая-то зависимостьПроблема ещё и в том, что у зависимостей могут быть свои зависимости, и сходу это не определить, пока не попробуешь что-то вызвать.
>>1612876> hibernate-entitymanager той же версии, что и coreА и правда, теперь вроде как он влит в core. Значит, не в этом дело. Но зависимости все собрать по нормальному тебе все равно придется.
>>1612891>Спринг сразу кидал ошибку, когда отсутствовала какая-то зависимость. И тебе это приятно было? Я по столу кулаком бью, если хоть что-то красным текстом увижу.
>>1612923Это, значит так, шутка что ли, блядь!? Во-первых, шутят здесь только два человека с помощью третьего человека - вычищателя спринга! ВЫ БЛЯДЬ МНЕ ТУТ НЕ ШУТИТЕ СО МНОЙ! ЧЕ ТЫ ХУЙНЮ ПИШЕШЬ, МУДИЛО!? МУДАК! МУДИЛО! ХУЛИ ТЫ БЛЯДЬ УМИШКО СВОЙ КУЦЫЙ ПОКАЗЫВАЕШЬ БЛЯДЬ!? КОМУ ПОКАЗЫВАЕШЬ УМИШКО?!.
>>1612895>>1612897>>1612899Ладно, пойду всё-таки читать туториал по Мавену. Всё равно ведь рано или поздно на работке потребуют.Но инструкцию по ручной установке всё равно схороню. Смущает, конечно, немного, что она за 13-й год, но всё-таки.>>1612918Ну, по крайней мере приятнее, чем когда вообще не понятно, что происходит и в какой стороне ошибка.
>>1612936Я не помню, есть ли там какие либы он юзал.Но если хочешь посмотри.https://youtu.be/y8yKxmz6iDY
>>1612962Если мне надо погадить на шарписта, я ищу последней тред по тегам. Тут не /b, тема в топе мало что дает
>>1612966От таких принципиальных не спасёт ничего. Но от большинства анонов, сидящих только в 1-2 тредах, иногда от скуки листающих ленту, вполне может.
>>1612969Просто признайся, треды развиваются не так как тебе хочется.Из одиночной спринг-дрочильне, тред стал популярный, разносторонний и живой.
Поясните мне нубу. Почему когда я делал вебпроект на Dynamic Web Project на Eclipse я без проблем создавал сервлеты и т.д. Что бы через Idea сделать сервлет мне нужно добавить Maven и в нем добавить зависимость? Я что-то не так делаю? Я думал сервлеты это часть JDK.
>>1612977Лучше уж спринг-дрочильня, чем:1. Постоянные набеги "Java - говно мамонта и вообще кобол"2. Повторяющиеся по 10 раз за тред вопросы от вкатывальщиков, гуглящиеся за 30 секунд3. На вопросы сложнее чем про синтаксис никто ничего не может ответить.С котлином повеселее, но кроме него тут ещё и рака изрядно прибавилось.
>>16129931. Вообще не реагирую, детям надо выплеснуть энергию.В основном это гоферы, думающие, что у них в треде джависты срут (на самом деле срут там все).2. и 3. Классика ру-форумов. Тут никуда не деться.Лучше постить в треде годноту и обсуждать ее, чем играть в stackoverflow
>>1612993>На вопросы сложнее чем про синтаксис никто ничего не может ответить.это типа зачем нужен final?
>>1612920По хорошему надо на создании распарсить шаблон, чтобы при render() не парсить его, а просто сконкатенировать куски шаблона и переданные параметры.
>>1613008Финал, принтф, даты, мап, что там ещё было.Нет бы про постпроцессоры бинов или ещё про несколько контекстов попиздеть.
>>1613034У ts тоже нет своего треда, но в js его тискают.У скалы вроде интероп херовый, он там к джаве имеет не оч отношение
>>1613044я не про интероп скалы с жабой и их отношение, а про то шо котлинотред будет такой лишь чуть менее мертвый
>>1613013>постпроцессоры бинов>несколько контекстовFun fact - обе эти темы тащил один и тот же человек
>>1613064>я не про интероп скалы с жабой и их отношениеА будь ты чуть более в теме, понимал бы, что в этом и суть
>>1608778 (OP)Я так, смотрю, страница старт.спринг.ио просто по максимуму хипстерская:1. Написана на реакте2. Градл3. Язык можно выбрать котлин и груви4. Джаву можно выбрать 135. И есть тёмная тема.
>>1613068>нахуй не нужныПостпроцессоры поминать не будем, а с контекстами, да, это и пришлось объяснять
>>1613073>Постпроцессоры поминать не будемНу почему же? Если ты не расширяешь функциональность спринга, а пилишь стандартное приложение, постпроцессоры не нужны.
>>1613074>Если пилишь стандартное приложение, постпроцессоры не нужны.Согласен. Но в нестандартных случаях нужны они чаще, чем контексты.
>>1613101Утверждаю, что котлин и скала это совсем разные звери, как раз в смысле близости к джаве. Поэтому у самого котлина шанс "жить" заметно больше (где там скала на андроиде, например?), а также это означает, что отдельные котлинотреды имеют довольно мало смысла - там бы обсуждали тот же самый спринг и тот же самый андроид.
эт нормально в mysql базе поставить на ключ on delete restrict, и перехватывать исключение при попытки удаления ну чтоб не лазить лишний раз в базу в поисках по разным таблицам ссылаются ли они на данную запись или нет
>>1613061Смысл в производительности. У тебя разбор шаблона идет каждый раз как вызывается render(), а надо бы один раз его распарсить и выделить: постоянные части и места для подстановочных параметров. И внезапно выясняется, что MessageFormater такое уже умеет!
>>1613195ОК. Сделай лучше синтакс, но так чтобы не бил по производительности. тем более что это не так сложно
>>1613186Тебе в БД-тред.Но ведь констреинты других таблиц и так свалятся, если ты попытаешься что-то удалить, не удалив порождённые записи.
>>1608778 (OP)Джаваны! подскажите годных ресурсов где можно изучить профайлинг и оптимизацию для джавовых приложенийпока что нарыл только https://www.amazon.com/dp/1449358454/ref=rdr_ext_sb_ti_sims_1https://www.amazon.com/Java-Performance-Depth-Advice-Programming/dp/1492056111/ref=sr_1_32?keywords=java&qid=1582493088&s=books&sr=1-32
>>1613121Ну тогда нужно подшапку про котлин и в андройд и ios тредах запостить. У нас же KOTLIN MULTIPLATFORM. Ну и в С и С++ тредах. Ведь у нас KOTLIN NATIVE.
>>1613240Ну так надо будет - запилят (в андроиде уже вроде есть). Мы джава-jvm разрабы и заводим свой котлин.
>>1613275В каждом ФП сраче слышал про то как меряются хвостовой рекурсией, но никогда не понимаю важность этого. Неужели трудно сразу в цикле написать?
>>1613279Даже так:generateSequence(1, {it + 1}).map(::factorial).take(10).toList()>>1613281В ФП подразумевается отсутствие изменяющегося состояния и, как следствие, отсутствие циклов. Поэтому всё, что остаётся - это рекурсивно вызвать ту же самую функцию с немного изменённым состоянием. Практическую пользу и важность в этом всём не ищи, это придумали дохуя теоретики.
Посоны, читал кто эту хуйню? https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.html Есть такое же, только для даунов?
Анонас, помоги понять одну вещь в Мавене. Вот билдит он мои приложения вместе с зависимостями, а где эти зависимости искать в рантайме? Насколько я понял, сам classpath не меняется при этом. Мне самому внести репозиторий в classpath?
>>1613331твой код собирается в .jar или .war, и мавен распаковывает либы и складывает их внутрь.Ещё есть разные модификаторы для мавена - scope - складывать или не складывать и на каком этапе
>>1613282>Поэтому всё, что остаётся - это рекурсивно вызвать ту же самую функцию с немного изменённым состоянием. Байтоебом остается позаботится о том чтоб высрать ассемблер без циклов
>>1613481Смысл такой же, как тут: апишка для любителей фабричных методов. https://github.com/google/guava/blob/master/guava/src/com/google/common/collect/Lists.java#L82
>>1613477Вот я и думаю:1. ФП хуёво ложится на архитектуру2. На ФП хуёво моделировать реальный мирИ какой тогда резон вообще его использовать, кроме фокусов типа map/filter? Оно же абсолютно нежизнеспособно. Ну и ладно, здесь не место для ФП-срача, к тому же котлин не позиционирует себя как функциональный.
>>1613481Старая (школа) попытка сделать мини-билдерНапример создание объекта может быть сложным или вариативным, поэтому ты делаешь небольшой фасад для удобства. А если нужен полный контроль используешь "нативный" конструктор.Но из-за DI это плохая практика, потому что класс сразу знает о зависимостях (они жестко прописаны). Либо ты честно делаешь билдер либо не страдаешь фигней.Так же встречаются долбокодеры которые это делают потому что так им нравится.
>>1613496>Но из-за DI это плохая практика, потому что класс сразу знает о зависимостях (они жестко прописаны)Поясни, при чем тут жесткое прописывание зависимостей
>>1613496>Либо ты честно делаешь билдер либо не страдаешь фигней.Кстати, в некоторых языках наличие именованных аргументов и аргументов по умолчанию позволяет во многих случаях прекрасно обходиться без билдеров.
Анончики посоветуйте годной литературы вкатывальщику. Экман? Сам пока смотрю на metanit, но чет совсем тяжко, сраные конструкторы ни как не идут(
>>1613524> Но со StringBuilder не выйдет.Ну да, тут речь не о динамических штуках типа StringBuilder, а о паттерне билдер, который для конструирования дохуя сложных объектов с кучей параметров.
>>1613515Ну смотри у тебя есть два интерфейсаinterface IFlyinterface INeighЕсть класс завязанный на эти интерфейсыclass Pegasus(val neigh: INeigh, fly: IFly)Он ничего не знает про реализацию, он привязан только к интерфейсу.И где-то ручками или авто, через инжектор, мы передаем конкретно реализации. Типа такогоval pegasus = Pegasus(NeighService(), FlyService())В любой момент мы можем подменить, а в начале можем вообще заглушки передать.val pegasus = Pegasus(SimpleNeighService(), SimpleFlyService())Плохо когда в конструкторе мы создаем NeighService() - мы прибываем его гвоздями к этому классу.Простая практика для простого приложения прям в main создавать все экземпляры и потом ручками просунуть всем. Как тутhttps://pl.kotl.in/JCIfJovQW
>>1613564>у тебя есть два интерфейсаВсе отлично, но там вроде было на тему "конструктор vs фактори метод". Ладно, забыли.
>>1613481На самом деле это нужно, чтобы сделать несколько статических методов, которые принимают разные параметры:https://gist.github.com/Stingray42/feb16623f1328dd8d1eb42fafdec8612А вот чем это лучше нескольких конструкторов, я хз. Если нет деконструкторов, ничего не мешает делать все те же действия внутри конструкторов. Но чаще я вижу вариант с фабричными методами. Кто-нибудь объяснит, в чем смысл?
>>1613571Если не то, то давай код. Я не телепат.В общем случае, правило такое: нельзя создавать реализации сервисов в том же файле/классе, даже если они в статическом методе. за редким исключением, конечно
>>1613580>за редким исключением, конечноНе таким уж и редким, стандартный пример - подкладывать реализации по умолчанию.https://github.com/jtwig/jtwig-core/blob/master/src/main/java/org/jtwig/JtwigTemplate.java#L36
Есть тут кто-то кроме хелоуворлдистов и студентоты?Вопрос такой:есть значит спринг бут приложуха, которая использует кафка стрим, который агрегирует данные из топика в кейвалью стейт стор а.к.а. РоксДБ, и потом этот агрегат отдаёт по ресту. На одном инстансе всё работает заебись, но кому нахуй нужен один инстанс? Я хочу иметь топик с дохуя партишенами, и дохуя инстансов приложения, для процессинга данных. И тут возникает проблема, как посмотреть на все данные целиком? Потому что инстанс приложения с кафка стримом хранит только часть данных, а точнее, только из тех партишенов, которые ему заассайнил брокер.Т.е. если у меня, например, топик на 4 партишена, я поднимаю два инстанса приложения с кафка стримом, в итоге получается по 2 партишена на инстанс. И каждый инстанс имеет доступ только с локальному стейт стореджу. Тобиш половина данных у меня персистится в одном инстансе, а половина в другом. Ну и всё это реплицирейтся где-то в брокере, но туда доступа нет. Чтобы их объединить, нужно херачить по РПЦ(например, по ресту) из одного инстанса в другой, использую кафка брокера, как сервис дискавери.Ёбаный стыд, это что за пездец? И как это должно работать в том же кубернетисе? Мне чё, на каждый ПОД сервис отдельный поднимать, чтоб до него можно было достучаться? Или как ваще?
>>1613582Я уже и забыл про джавовый костыль с дефолтами.>нельзя создавать реализации сервисов в том же файле/классеРечь именно про сервисы. Но это конечно больше философская тема>Не таким уж и редкимНадо считать
>>1613591>половина данных у меня персистится в одном инстансе, а половина в другомИзначально откуда потребность в такой архитектуре взялась, чтобы инстанс персистил только локально?
>>1613601Ни откуда, кафка стримы так работают, хочешь ты этого или нет, когда ты каким-либо образом аггрегируешь кафка стрим, он персистится в память, на диск, реплицируется в брокер и т.п.Вопрос в том, как получить картину на все данные целиком, без ебли между инстансами сервиса, и как это делать в реалиях кубернетиса того же.
>>1613610>Они уже есть в стореджеНо что-то видимо этот сторедж не очень подходит для всех твоих задач, раз ты пришел с такой проблемой
>>1613612Для евент дривен архитектуры нужны:1. Мессадж брокер2. Персистант евент стореджЭто всё делает кафка.
>>1613618А если все же очень хочется обойтись только тем, что уже есть на твоих инстансах, только бы их как-то объединить, можешь, например, взять IMDG типа hazelcast. Для сервис дискавери там уже есть решения.
>>1613618Не лечи меня, а?https://docs.confluent.io/current/streams/developer-guide/interactive-queries.html
>>1613613Ничем, разницы никакой.Единственно, что методом ты его можешь как-то обозвать как надо, особенное если типы совпадают.Date.ofEpochTime(...)Date.ofFormatString()Date.ofString()
https://gist.github.com/Stingray42/feb16623f1328dd8d1eb42fafdec8612Теперь можно использовать любые символы для обозначения подстановки.
>>1613684А какая разница? Если ты хочешь сказать, что пилить микросервисы, которые дёргают друг друга через рест это леджит решение хоть чего-то, то иди дальше хелоу ворлды пили.
А есть что-то вроде Spring Initializr, но чтобы просто список всех артефактов пружинной экосистемы.Могу конечно просто тыкать в инициализере на нужную зависимость и копировать только часть pom'ника. Но есть ли список красивый?
>>1613684>кафка только мешаетВ роли очереди сообщений, почему бы нет. А вот как основное хранилище, это, конечно, интересно...
>>1613757Да, я им пользовался, просто смущало слово starter у каждой зависимости. Но это одно и то же, как я посмотрел.
>>1613771Там никакой разницы нет, стартер или не стартер. Если генерить проект, тоже будет пачка стартеров. Смысл этого в том, что в таком-то фрагменте бута уже все зависимости подцеплены и сконфигурированы.
>>1613591По-хорошему надо использовать какую - нибудь распределенную БД. RocksDB это не более, чем движок хранения данных. Поверх него уже можно накатать распределенную БД (как это сделали в CockroachDB например). То, что ты сейчас пытаешься получить полную картину -- это сам понимаешь нетривиальная задача в условиях множества узлов и Kubernetes тут тебе не оч поможет. Не, в принципе можно, но я думаю это пиздец какой гемор. Короче, мой тебе совет посмотреть в сторону нормальных попенсорс распределенных БД и туда персистить свои сообщения. Под нормальными я имею ввиду консистентные, с ACID-гарантиями, с транзакциями и все такое. Благо, сейчас с этим не так туго, как лет 5 назад. Лично моим выбором был бы FoundationDB. Только почитай в начале доки на нее, там оч много нюансов и модель данных там низкоуровневая (хотя есть надстройки над ней, который я думаю даже для JPA приспособить можно). После того, как все в базу сохранишь -- можешь легко проитерироваться по всем записям. Например, в FoundationDB для этого существует специальный AsyncIterator, который позволяет пробежаться по всем ключам в кластере в промежутке [rangeStart, rangeEnd].
>>1613791Да, я так понимаю, тебя смущает, что в кафке все твои сообщения уже есть, но по вообще всем сообщениям пробежаться нельзя, так? Я хз, мб ты просто не нашел в доках это, но советую еще раз поискать. Если таки возможности действительно там нет -- выкидывай ее нахуй и юзай FoundationDB как очередь. Вот пример: https://apple.github.io/foundationdb/queues.html
>>1613791Что ты распинаешься? Человеку первым делом написали - клади в отдельную БД. Говорит "зачем, уже все есть в кафке, и вообще не лечи".
>>1613800Да, думаю чел хуйней страдает. Я бы спокойно сохранял все в отдельную бд, не переживая, что оно уже где-то там лежит. Тем более в кафке эти сообщения не вечно же лежат в RocksDB, а подчищаются время от времени.
https://gist.github.com/Stingray42/feb16623f1328dd8d1eb42fafdec8612Вот теперь можно и пулл реквест в jdk создавать. Только кому это нахуй надо, как и жавадоки.
>>1613867>https://gist.github.com/Stingray42/feb16623f1328dd8d1eb42fafdec8612Нахуя, если есть апачевский StrSubstitor в commons-lang библиотеке? В котором и экранирование есть, и он даже рекурсивно резолвит плейсхолдеры.
Только что завел гитхаб, стоит там срать решениями задачек с кодварса и кодфорса или лучше не позориться?
>>1613807>а подчищаются время от времени.Стейт там вечный, а вот сами логи компресятся, и заново собрать стейт может быть накладно.
>>1613883Сри, если совсем стесняешься, то можешь приватный репозиторий завести. Это больше для тебя самого, чтобы ты через год мог посмотреть и вспомнить.
О, пока чел с кафкой в треде, спрошу. От чего сообщения могут застревать в топике и не процесситься дальше?
>>1613891В смысле вечный, ты хочешь сказать, что сообщения никогда не удаляются оттуда, даже если все получатели ack-нули его?
>>1613899Зависит от настройки ретеншена. Да, можно сделать вечными. >>1613930Кафка стрим это либа всего лишь. Как часть себя, она тащит в приложуху роксДБ, в которую персистит стейт при процессинге. Это всё аут оф зе бокс функциональность.
>>1613980Набросать скрипт за 5 минут, что-нибудь сделать с файликами, сохранить результат и забыть. Иде дольше запускается.
>>1613988Делать на баше что-то сложнее grep/sed/awk/curl - пиздец. Да и аналога питоних либ нет, лол.
нужно для себя настрогать ведроид приложуху, взял думаю котлету и меня не покидает чувство что взяли жабу и просто малость почистили от говна обратной совместимости.
>>1614313И это именно интерполяция, а не шаблоны, как ты назвал.Темплейты это совсем другое (это полноценные темплейты FreeMarker, Mustache, Mustache)
>>1613976Всегда можно было.Питон перделка без модульности (кроме имитации через костылы virtenv, то есть даже js модульнее питона, лол)
>>1613985Можно и так. Котлин, неожиданно, может в скрипты *.kts (c kscript можно вообще разгуляться в башскрипты)Но я предпочитаю понятие "утилит" и использую толстые jar-ники (потому что часть утилит написаны когда-то на джаве)
>>1613985>Иде дольше запускается.Для пук-скриптов тебе хватит комьюнити версии, которая не имеет 100500 плагинов и которая запускается быстро.В край можешь писать на vs code, какая разница где градл таски дергать.
>>1614107Синдром утёнка в программировании, это серьезный показатель профнепригодности, никогда такое в слух не говори.
>>1614323>Как в котлине это сделать с неизвестной во время компиляции строкой?Тогда это не инторполяция строк, используй форматирование.Не нужно путать два понятия и писать форматирование при простом сложение строки, как это сдали в питоне, от чего строку порой не возможно прочитать.Для форматирования используй Си-стайл"%.3f".formate(1.2456)
>>1614328>используй Си-стайлЭто дефакто стандарт. А то сейчас зумеры набегут и расскажут на коленках свое форматирование.
>>1614328>Тогда это не инторполяция строк>Не нужно путатьВот анон тот и сделал не интерполяцию, а простейшим базовый шаблонизатор, типа StringSubstitutor из commmons. А ты заебал нотации читать. Не путать, блять, ему.
>>1614338Тот анон сделал форматирование, которое в джаве уже есть. Нам нужно больше форматирований, особенно похожих на интерполяцию строк как в котлине, си шарпе...Зачем нам скучный String.format()!
>>1614345Действительно, зачем нужны все на свете шаблонные движки, ведь уже есть форматирование с прекрасными и главное наглядными %s и %f.
>>1614355Тебе строку отформатировать или тебе шаблон целый нужен, ты уж определись?Но главное и то и то давно уже есть, в случае форматирования вообще де-факто стандарт есть на все языки. Хипстерский стайл, который не вводит никаких фич, не нужен. Ты увидел интерполяцию строк в каком-то языке и тебе просто захотелось такое же в жабке, но ты даже не погрузился в предметную область.Одно дело отформатировать строку, другое дело шаблоны, которые нужно как минимум собирать/кэшировать и прочие тонкости (херова тучу тестов на все извращенные вариации твоего синтаксиса).Поигрался - молодец, но не надо позиционировать свое говно, как истинное решение, соревнующийся с де-факто стандартом форматирования. Ты и пятой части не знаешь, что оно там может сделать и какие кейсы за десятилетия оно там может решить (о которых даже фантазии у тебя не хватит).Будь скромен, зумер.
>>1614384Можно похоливарить (а что еще делать в утонувшем треде) над шарповской интерполяцией, она же и в пыхтоне почти такие же.{<interpolationExpression>:<formatString>}Тут, вроде, сначала кажется очень удобным, коротко, зумеры и хипстота оценит. Но в то же время в шарп версии рождается какой-то псевдо синтаксис, когда в котлине выражение такое какое есть в реале (вообще котлин разворачивает все в простую конкатенацию).
>>1614408Например как годно продуман си-шарп. В котлине надо расширять функцию чтобы получить форматирование даты. А в шарпе это:$"Сейчас {date:yyyy-MM-dd}"
>>1614420И тут вроде столкновение знаний. Дохера умные проектировщики скажут - форматирование это не есть тоже самое что и дата, и держать это вместе не имеет смысла. В тоже время форматирование даты это пиздецки частое явление.И кто окажется прав? Сеньоры-помидоры архитекторы, или же опыт? А права окажется рациональность. Потому что предметная область это отражения реальности, а не маня-фантазий архитектора, как должен выглядит мир, его глазами.
>>1614408>>1614420>>1614428А теперь посмотрите как форматируют дату в го!Вот так же, человек с опытом, совсем не зумер, взял и тупо положил болт на многолетний опыт паттернов даты и высрал свое невьебательское чудо. Теперь есть даже целый сайт, который конвертирует привычный паттер в го формат.Ну будьте такими же долбаебами, стремитесь унифицировать знания, а не размножить стандарты (если конечно ваш вариант реально не "серебряная пуля")
Стоит брать год джавараша за 6к, если я совсем нубас?Без скидки у них стоит 18к и это точно не стоит того.Если это все говно, то можете подсказать на что лучше потратить 5-10к(больше у меня нет) на изучение джавы(чтобы потраченные деньги тебя стимулировали), чтобы это дало какую-то пользу, а не просто выкинутые деньги.
>>1614457Ну так уже. Но я сижу как-то мало. Часа по полтора-два в день. Хочу найти какую-нибудь мотивашку, в виде платной недорогой приблуды, чтобы сидеть по 3-4.
>>1614517>>1614447Ну раз это шаблоны, где мои управляющие конструкции? Как я могу расширить функционал? Как это по производительности? Это компилиться? Это кэшируется на уровне либы или мне нужно об этом заботиться?
>>1614636Да вообще, одни вкатывальщики с хеллоуворлдами на котлине и латентные питонщики, даже вычищатель куда-то пропал.
Посоны, а давайте запилим свой язык!ЧОООО? Че за семантика-хуянтика какая-то. Нахуй надо. Давайте свой молодежный синтаксис запилим а семантика в рот она ебись. Вон там jls какой-то тип, норм. Мы чо, лохи шотль хуетой какой-то заниматься)))
>>1613337Но мне не надо, чтобы он запаковывал. У меня есть папка для классов, и компилирую я, соответственно, тоже туда. Вот что Мавен будет делать с зависимостями, просто рядом их положит?
Сап побывал на собесе и понял, что от меня хотят какой-то алгоритмизации. В этой связи вопрос, что делать и читать? СИКП я вижу вроде популярная книга, это про это вообще? Также, интересует мнение о литкод и джавараш!?
>>1614736То есть, если я хочу пока ничего не запаковывать, нужно самому репозиторий добавить в classpath?
>>1612980Сервлеты это часть жабы ЕЕ, они не включены в JDK. Сидят в пакете javax, нужно подключать отдельно. Проще всего подключить через Maven:<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope></dependency>Для хэлловорлда можно и jar-ник скачать. Но я тебе советую начать пользоваться мавеном, и новые проекты начинать только на нём.
>>1614449Деньги-то ты потратишь, но мотивация скоро пройдёт. Чтобы оно работало, ты реально должен последние штаны отдать. Лучше всего найти ментора, но хуй знает, сколько придётся за это выложить. Хотя >>1614501-кун вроде готов тебя менторить, лол.
>>1614816Поздравляю. Теперь ты слишком стар для разработчика. Пора в менеджмент идти, ну или на пенсию.
>>1614820Но ведь жабу ЕЕ выкинули из 11 ждк. Как же теперь их дальше развивать? Они же у спринга под капотом.
>>1614890Да это понятно, его пивотал делает. Но они с оглядкой на фишечки ждк, который пилит оракл и томкэт, который за фондом апачей и определённые фичи можно профинансировать если надо. Но от сервлетов никуда не деться, а jakarta ee похер на спринг.
>>1614896Одна сторонняя либа опирается на другую стороннюю либу. Такой сценарий очень распространён, все либы во всех языках так и живут, и срать они хотели на то, что используемые либы не входят в стандартную. Почему именно с сервлетами должно быть как-то иначе?
>>1614933У меня вебапп, так что запускает контейнер. Я так понимаю, мне нужно воспользоваться его настройкой classpath, либо разместить репозиторий в одной из его папок для либ?
Салют, как с помощью jsoup'a достать отсюда значение value (ссылку)? И еще как убрать "amp;" в ссылке?<option value="http://www.example?action=show&global=true&root=1000002"> source </option>
>>1615396Не на крупном (просто проект рано свернули).Там вроде завезли для котлина что-то, понадобиться асинхронное, определенно рассмотрю первым (если только у них корутины не свои).
>>1615921Ты теперь можешь делать хеллоуворлды разными способами. С пакетами и без, из консоли и иде, из-под разных ОС, с разными версиями джав, через варарг или обычный стринг[] аргс.
>>1615949Из vim и emacs хоть делал?А иде не нужна, лучше все классы и методы помнить. И возвращаемые значения.
У меня вопрос, надо ли дальше пытаться что-то делать, если не могу решить easy задачи на leetcode? Читал дохера всего, а на практике ничего не умею.
>>1616090Уметь в олимпиадное программирование != уметь делать что-то практичное.Напиши пет-проект. Пользы куда больше, чем от ёбнутых задачек.
Поясните хотя бы в чем моя проблема. На leetcode даётся какая-то задача, даются входные и выходные данные. На уровне easy все решается в уме в одно действие, но почему я не могу это сделать на java?
https://gist.github.com/Stingray42/feb16623f1328dd8d1eb42fafdec8612Забыл самое главное - вложенные проперти.
Ознакомился с нововведениями.record - зачет (хотя в целом нахуй не нужно)text block - фейспалм, они ебанулись там?
>>1616090На РАБоте обычно лютый говноэнтерпрайз. Возьми какой-нибудь ретро-проект из экселя и реализуй под жабой.
>>1616280Проще было бы уже тогда компилировать txt файлы, чтоб они сразу в виде объекта были доступны.
>>1616376А это и есть гитхаб. Ну гитхаб я никогда не котировал. Всё бесплатное пишется для тщеславия.
>>1616379Какое-то древнее говно у тебя с PYPLПроблема поиска в том, что он собирает всех студентов. В инете есть видео динамики языков и джава там забавно прыгает в период сессий.
>>1616817Он был всё со своего появления. Кто-то всерьёз воспринимает рейтинг, где бейсик выше жабаскрипта?
>>1616842То, что фронты вопят о себе на весь интернет, не отменяет того, что есть куча тихих дядек-прогеров, из года в год поддерживающих своё легаси. Просто их нет в твиттере.
>>1616861Тогда тем более всё. Глядя на этот рейтинг, можно говорить "на таких-то языка тонны говна мамонта", но никак не "топ N языков, которые обязательно нужно выучить в 2к20".
>>1616912А джаву нужно учить или там тонны говна мамонта? Мне джава нравится, правда я других ЯП не знаю, сравнить не с чем. Но все равно нравится.
>>1616952Говна мамонта хватает, но и новые проекты пишут. Сильно зависит от того, куда попадёшь. Да и на любом языке хватает легаси.
>>1616817>>1616842Это сейчас они хотя бы научились немного рисовать в сравнение с другими данными в инете, раньше у них вообще своя маня-статистика была.http://pypl.github.io/PYPL.htmlТут внизу объясняют почему они не tiobe
>>1608778 (OP)Джавач, пора снова строить график в экселе. Кто-то должен это делать, а если не я, то кто? Вооот. Также, глуховато что-то в последние несколько дней, скучно без котлина, скучно.
Джава-тред это в каком-то смысле срез общества. Небольшой, да, всего 145 человек, но все же. Небольшая демографическая выборка. И кого мы видим? Мы видим долбоебов, которые даже не понимают как именно работает спринг. Откуда берутся бины? А хуй его знает, с неба падают на парашюте. А ведь это кстати не самые тупые люди на всем /pr. Это девелоперы, студенты вузов. Молодежь, которая грызет алгоритмы. Но даже они в душе не ебут, что происходит в спринге. Поэтому вообще бессмысленно тут что-то обсуждать.
>>1617532Какая разница, как он работает? Ну, узнаешь ты про прокси-классы, и дальше что? Твой код будет эффективнее, а волосы станут мягкими и шелковистыми? Хуйня это всё, как и " не знаешь ассемблер - не программист".
>>1608778 (OP)Изучал вакансии, сложилось впечатление, что в работу с Java можно вкатиться имея самые базовые: вышка, базовые алгоритмы и структуры, ООП, БД. Это так, или у меня ложно впечатление сложилось?
Есть люди шарящие в regExp? Сразу скажу если не понятно чем отличается .+? от .+ дальше можно не читать.Нужно написать regExp для извлечения текста из кавычек (\\") учитывая следующие условия: 1. текст в кавычках может содержать кавычки2. текст может состоять из нескольких блоков с кавычками3. текст может состоять из одного символапо сути не правильный вариант выглядит следующим образом \"(?<group>.+?\S)\"\\s(splitterWord)т.е предложение вида: "какие то словаа "не нужный кусок"" splitterWord, "ещё один блок текста" splitterWord, "8" splitterWordдолжно парсится вgroup1 какие то словаа "не нужный кусок"group2 ещё один блок текстаgroup3 8
>>1617622Загугли вопросы java собеседование, там есть ссылка с 400+ вопросов, если не знаешь хотя бы несколько на собеседованиях в центральных городах и больших компаниях будешь лажать. Если живешь где нить далеко и амбиции не завышенные, то в какую нибудь небольшую контору с перечисленными знаниями попасть не сложно.
>>1617719Чето я не понял сложности задачи видимо? И зачем делать много групп когда можно итеративно всего через одну группу?
>>1617892Уже понял, что задача не решаема, плюс криво пример писал нужно было решение для той же задачи но без использования splitterWord.Если в крации задача такая распарсить текст "в link заменить слово "x1" на "x2" и "x3" на "x4" "и для всех x внутри может быть любое количество кавычекрешение паттерн:.?слово\"(?<group1>.?)\" на \"(?<group2>.*)\"тоесть эта штука найдет весь текст, потом достать уже через matcher group2 и на неё рекурсивно применять тот же самый паттерн пока ничего не найдем, короче та ещё херня.
>>1617907ошибся.?слово\"(?<group1>.?)\" на \"(?<group2>.)\"первая группа lazy вторая бедер до самой последней кавычки
>>1617907Тоже сталкивался что некоторые задачи в один паттерн не решаются, либо просто для понимания проще разбить (по принципу "код пишем один раз - читаем потом много раз").
>>1617914Ещё неплохо было бы следовать правилу: если что-то хуёво выражается регекспами, то не стоит их здесь использовать.
И что они тут нового изобрели? В джаве всегда сабкласс можно сунуть на место суперкласса. Солид, если что.
>>1618030Это срачегенная тема, но под LSP ещё и подразумевают, что ты в подклассе не только интерфейс не сломаешь, но и логику, переопределив поведение базового класса. На практике это сделать трудно, поэтому единственный реальный способ следовать LSP - вообще никогда ничего не переопределять.
>>1617719У тебя была проблема. Ты решил использовать RegExp. Теперь у тебя две проблемы.trollface.png
>>1618144На сервере сделать апишку для этого, а на клиенте дёрнуть её через fetch или XMLHttpRequest.
>>1618186А, так ты через это хочешь.На сервере будет обычный спринговый контроллер, у него на входе будет DTO с данными формы. Гугли "spring controller accept form".
>>1618201Ну, можешь обмазаться сокетами, с нуля написать HTTP-сервер и обрабатывать через него формы. Ты уверен, что хочешь этим заниматься?
>>1618231Это я и был.Под чистой джавой, вероятнее всего, подразумевается SE. У ЕЕ, вроде, есть свой SDK, но вряд ли у того анона она имеется, раз он такой вопрос задаёт.
>>1618320Да, а на джаве нужно сначала подключить сервер как библиотеку, и джава уже становится не чистой, увы
>>1618320>А на чистом гоОн бы передавал из метода возвращаемое значение и boolean - успешно ли выполнился метод, или нет.
>>1618345Пришло 200 OK с какой-нибудь хуйней типа nil at 0x000fdd: Segmentation fault - Core dumped. Твои действия?
>>1618431Нет, я загуглил, что такое FizzBuzz, и остановился где-то на втором варианте отсюда https://www.tomdalling.com/blog/software-design/fizzbuzz-in-too-much-detail/Только использовал print, чтобы не использовать конкатенацию строк.
>>1618423Нет бы расспрашивать и понять границы знаний потенциального будущего работника.@Нет, буду давать странные задачи, не имеющие отношение к предметной области текущей работы. И думать какой я невьебаться умный.Что ты там не смог в FizzBuzz, там же на 3 IF'а?
>>1618423Надо было подключить этот пакет и сказать что ты против велосипедов:https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
>>1618440ЭТО ХОРОШО, ЧТО ВЫ СЕНЬОР С 10 ГОДАМИ ОПЫТА, НО ПРЕДСТАВЬТЕ: ВОТ У ВАС ЕСТЬ ДВУМЕРНЫЙ МАССИВ...
>>1618472Пройтись автозаменой по проектуПисать доки на русскомСмириться, как и с кривыми переводами идентификаторов.
Аноны, есть строка вида ", , , someword, , someword, , someword, , ". Дайте, пожалуйста, регулярку, которая убирает боковые запятые и пробелы и оставляет только те, которые находятся между первым и последним someword (someword - любые слова).
>>1618546>>1618539Я кстати попробовал с регуляркой, но с наскоку не взял такую задачку и вообще я пьян, отстаньтеМожно так:https://pl.kotl.in/uDLxCpInd
>>1618546>>1618539Лан, не буду я страдать, конечно в котлине есть вменяемый триммер. Но так не интересно.https://pl.kotl.in/vXKs57TwB
>>1618624>Ты мне котлин нахуя суешь?Чтоб ты нормальный trim ручками не писал, а тем более регулярной это не вздумал парсить.
>>1618539А на питоне мог бы написать:", , , someword, , someword, , someword, , ".strip(" ,")И никакие регулярки не нужны.
>>1618810>125 stepsТы просто победитель по жизни. Трудно в цикле пройти сначала и с конца до первого символа который не равен ' ' (пробел) и ',' ?
>>1618843Трудно или нет, спроси того чей вопрос, попросили именно регулярку - я доставил. Если лично мое мнение интересно, то я скажу что микрооптимизации это то еще зло, можно день убить на суб-рутину это а глобальную задачу не сделать. Так что скорее проблем-солвер, а не победитель. А ты видимо стримы даже не используешь, да? "Зачем, что мне трудно цикл написать чтоли?"
>>1618857Регулярки зло если их используешь везде где не нужно.Это тебе не питон, где все тормозит так, что можно ложить болт на оптимизацию совсем.Это конкретная задача "убрать все пробелы и запятые до слова с конца и с начала".Хороший вопрос для нубо-собесов, посмотреть как будет мидл решать (побежит лепить регулярку или сделает аналог trim c StringBuilder).
>>1618878Он не понимает что надо маску вычленить.В жабке вроде нет как в пхп и перле замена с подмасками?и замени [^\w] на [ ,]и не совсем понятно почему +?, а не *?, вдруг есть вариант где строка не имеет "шума" из запятых.
>>1618879Обрати внимание - регэксп решает более общую задачу - "убрать все что не буква". Через неделю тебя попросят к пробелу и комме еще crlf добавить, двоеточие, слеши и тд. Удачи в цикле это все перебирать. А с классом \w при нужных настройках и юникод можно обрабатывать. Нужно это или нет это другой вопрос. Я привык домысливать что именно хотел сказать заказчик ("проблема XY"). Конечно без фанатизма конечно же
>>1618888>Через неделю тебя попросят к пробелу и комме еще crlf добавить, двоеточие, слеши Для это и есть (или пишут) trim с varargs чаров:trim(',', ' ', ':', '\', '\n')
>>1618924И кстати регулярка накрываться когда, у наc меньше двух символов, даже если (\w.*?\w)", , , a, , "Поэтому, я вчера с пьяну так и не понял как сделать универсальную регулярку.
>>1618951А не, перестает первый вариант работать (писать без тестов - зло)Тогда я не знаю, надо звать гоферов, пускай помогут.
>>1619020Что характерно, даже во всемогущем спринге у класса StringUtils не нашёлся нужный метод. Можно только один какой-то конкретный символ указать, но не список.
>>1618539 String s = ", , , someword, , someword, , someword, , "; int a = 0, b = s.length() - 1; while (s.charAt(a) == ' ' || s.charAt(a) == ',') { a++; } while (s.charAt(b) == ' ' || s.charAt(b) == ',') { b--; } System.out.println(s.substring(a, b + 1));
Подскажите по javaFx, есть textfeild и есть кнопка, в обработчике кнопки есть создание объекта, который получает переменную textfiled --> textFiledName.getText().При запуске вылетает NullPointerExceptionВ чём проблема? Надо для textfield создать обработчик или использовать проперти?
>>1619126На гитхабе такого навалом. Открываешь, вбиваешь в поиске фразу, видишь кучу примеров проектов, учишься.https://github.com/Nasruddin/spring-boot-samples/tree/master/spring-boot-todo-application-full
>>1619146ТЗ, говоришь? А как насчёт фантазии?Ну, можно взять какой-нибудь реально существующий туду-лист jira, лол и сделать клона.
Столько пафоса, это по-любому местный с /pr. Признавайтесь спрингбутные, это кто-то из вас?https://www.youtube.com/watch?v=HKo5DFxc6nI
Насколько сложно из .нет мвс мирка вкатиться в спринг или че там щас в жавамире модно?Слышал у вас там настолько ад абстракций что уже даже фреймворк для конфигурации фреймворка сделали
>>1619323Легко.> ад абстракцийКонкретно в фреймворках этого нет. А вот многие проекты этим да, грешат, но такие кодеры на чём угодно так будут писать.
>>1619323Говорят, что очень легко, и у всех технологий есть прямые аналоги. Но язык может поначалу вызвать отторжение. Сам немного на сисярпе кодил.
>>1619333На шарпе работы меньше и везде фуллстак>>1619351Ну язык да, пожилое говно говна без сахараС другой стороны в жаве кейсклассы раньше чем в шарпе появятся
>>1619427Забавно что джависты как в криокамере не знают популярные тенденции шарфика, так шарписты как в криокамере не знают о jvm мире.Один я котлинист, знаю про всех.На, покушай из котлин треда>Q: Котлин это что-то про разработку на андроиде?A: Нет, не только. Объем разработки на JVM высок, но в основном где-то на галерах. Смотрим статистику:https://www.jetbrains.com/ru-ru/lp/devecosystem-2019/kotlin/
>>1619158Бля, хочу свою БД распределенную написать на жабе. Чтоб с транзакциями, асинхронщиной и все дела. Потом склеить это все со spring-data и spring-webflux. В голове есть примерная картина архитектуры, как ето должно все работать. Знания тоже имеются для этого. Но боюсь начинать пиздец. Вот ето был бы охуенный пет прожект. Жаль я никогда за него не возьмусь даже :(
>>1619455Бояться говнокодить? Ладно я ленивая жопа, а это что-то новое.Скорее всего ты тоже ленивая жопа, просто завуалировал проблему и оправдал для себя.
>>1619427Котлин - не обязательно андроид. Он совместим с джавой и, следовательно, с её сферами применения, тот же бекенд.Я вот ни разу не писал на котлине для андроида, но вполне успешно написал на нём спринговую аппку.
>>1619457Ну а че? Вся веселуха там, а то заебало готовыми решениями пользоваться. Хочется свое, родное, навелосипеденное >>1619459Я не боюсь говнокодить, просто хочу, чтоб все было идеально, постоянно продумываю все детали, в итоге до дела не доходит.
>>1619455Хорошая идея. Жаль, что многие идеи на корню вырезаются вопросом "Зачем?". Да и забей на этот вопрос, просто пиши в своё удовольствие понемногу.
>>1619464А ты не делай идеально. Делай в самом первом приближении, "в лоб", а затем итерационно улучшай. У меня была подобная хуйня с одним проектом (не программирование), и из-за стремления к идеальности он далеко не продвинулся. Затем я забил на идеальность и начал делать в лоб, сразу всё начало получаться.
>>1619466Угу. Вот только реляционная модель данных (в нормальной форме) для распределенных решений не очень хорошо подходит. Из - за большого кол-ва join-ов в типичной бизнесовой БД вся производительность летит к хуям. По крайней мере такое мнение было распространено, когда распределенные БД только - только стали доступны обычным компаниям (имею в виду HBase и Cassandra).
Вот написать бы бд, из которой можно было бы выкинуть КОБОЛоподобие SQL (написав свой крутой язык запросов), но по гибкости совместимой с реляционной бд. Вот это круть.
>>1619470Могу посоветовать: https://www.amazon.com/Database-Internals-Deep-Distributed-Systems/dp/1492040347Там конечно не очень разжевано, но чисто по верхам пройтись самое то. После этого уже можно идти читать статейки про то, как реализуется конкретный компонент БД. А вообще нет такой книжки (по крайней мере не видел), где прям вся архитектера БД, каждый ее компонент был представлен очень точно. Ибо это сугубо практическая вещь и каждый педалит ее по-своему. На бумаге ничего не доказывается. Все просто прогоняется на рандомизированных тестах много-много раз, с введением искусственных отказов того или иного компонента, типо диска или сети, и так убеждаются в корректности БД в целом.>>1619480Мне нрав SQL, по выразительной мощности ничего круче я не видал
>>1619487>по выразительной мощности ничего круче я не видалНаверное и от CSS тоже получаешь удовольствие?
>>1619451>>1619461Теория это конечно хорошо, спасибо, я и сам шапку прочитал.Но покажи мне вакансии в веб на жаве, в веб на котлине и на андроид на котлине. И желательно в дс-4. Ну так, циферки сравнить.
>>1619625> вакансии в веб на котлинеИх действительно сейчас мало, но относиться к этому надо несколько иначе. Не будет сейчас такого, что ты найдешь вакансию с котлином, придешь туда со знанием одного котлина, будешь на нем только и писать и ничего больше не видеть. Но котлин это штука, которую надо держать в уме, когда вспоминаешь, что джава это>пожилое говно говна без сахараПотому что в реальности может получиться, к примеру, так, что ты придешь с джавой на джава-вакансию, и обнаружишь, что чуваки там присматриваются к котлину и начинают осторожно на нем писать новый код, а ты с радостью присоединишься к этой инициативе. Джаву при этом знать и использовать нужно будет тоже, но в этом нет проблемы, это очень близкие штуки.Тут примерно как с java 11+. Тоже далеко не везде еще есть, но это не повод туда не смотреть.
>>1619641>нахуя отдельный тред делать былоПовторяли уже много раз, просто одному евангелисту (не мне) хотелось миссионерской деятельности для максимально широких масс, а этот тред не перекатывают
>>1619656Расскажи как собеседование проходило. Боялся? Какие вопросы были? Тебе перезвонили или сразу сказали, что ты годен? Как прошел первый день работы? Как принял коллектив?
>>1619656>>1619765С какими знаниями пришел? Много книг читал? С умом как, с математикой? Сколько времени ушло с нуля до собеседования?
>>1619753Нет, потому что go это не JVM, это отдельный мир со своими практиками, своими либами и фреймворками.
Подскажите, где можно взять jdk 10.0.1? На оракле для скачивания архивных версий требуется зарегистрироваться с указанием РАБОТЫ и ДОЛЖНОСТИ блеать, коих у меня нет. Проверил 3 трекера, пусто.
>>1619847Человек не может запустить мой jar сделанный на 1.13, сделаю на 10. А так не обязательно от оракла, просто в библиотеке профессионала был указан оракл, я им и пользовался. Крч уже скачал с jdk.java.net
>>1619855А на джаве без ее? И как вообще джаву ее подключить? Я помню там какая-то еботня с xml файлами нужна.
>>1619856> А на джаве без ее?В простейшем случае хватит синглтонов, лол. Вместо@Autowired private Service service;Будешь писать:private Service service = Service.getInstance();Но наверняка есть и другие реализации DI.> И как вообще джаву ее подключить?Например, добавить в мавен javaee-api. Ещё понадобится сервер приложений, тот же wildfly.> Я помню там какая-то еботня с xml файлами нужна.Это для конфигурации.
>>1619867Ну то есть там по прежнему нужно несколько отдельных хмл файлов, вместо одного вменяемого жэва-конфига.
>>1619869Кидаю тебе ссылку на www.bad-domain и ты сосешь хуй, потому что не умеешь пользоваться классом URI.
>>1619869>можно на джаве написатьВсе что угодно можно написать на любом тьюринг-полном языке, вопрос только зачем
>>1619873Тот просто пример и там есть некоторые баги в логике.А вообще, тру путь - валидировать только нормальные ссылки, а все попытки и перджежи вычищать другим парсером.
>>1619914Схера тогда не рабочий?Тебе сказали что парсер работает только с валидными ссылками, подчищать невалидное - задача другого парсера.Но специально для тебя пофиксил.https://pl.kotl.in/7uIPUbPmD
>>1619928Ты же в курсе что для URI домен ftp.bad-domain будет валиден (потому что это валидный домен)?Надо спеку читать, может ли доменная зона иметь дефис (скорее всего может, потому что это тоже домен-левел)Так что соснул ты. Потому что твоя URI это примитивный топорный парсер. А руками ты можешь достичь большего, например проверить префикс в доменной зоне.
>>1619947Ты вообще не понимаешь, что такое домен и поддомен, и не в состоянии решить поставленную задачу. Пошел нахуй из серьезного треда, иди дальше свои регекспы в котлин-треде дрочи.
>>1619953Смотриwww.domain.ru // это доменwww.domain.ru. // это тоже доменdomain.ru. // это тоже доменru. // это тоже домен. // это тоже доменЗумер нИхера не знает спеку но уже оплевал тред слюной с криком "Я ТУТ ПРАВ!" Лолнул.
>>1619961чел ты даунты реально нихера не представляешь ни задачу, ни предметную область, зато настрочил хуйни в онлайн-редакторе котлиназабирай свою хуйню и уебывай, нормальные люди все равно будут использовать InternetDomainName.topPrivateDomain из гуавы
>>1620045>тебе нейметсяУ нас просто на работе одни толстые, волосатые мужики, а так хочется милого джуниора потискать.
Есть в джаве (11) какая нибудь шняга типа f-строк в питоне или $-строк в C#? Должна же быть.Типа, хочу писать f"Строка номер {smth.getRnd()}", вместо того чтоб сначала форматирование делать, а потом аргументы сучить. Если есть, то как называется? Если нет, то почему?
>>1620188>Если нет, то почему?Уёбищный систаксис.String.format() есть, можешь сделать статический импорт и делать просто format().
>>1620524Дотнет хорошая платформа (как и JVM), но если прям реально зудит, то после шарфика лучше котлин заюзать (и да, я про бэкенд). Смотри на котлин как на typescript для javascript. Как бы без js никуда (как и без джава либ), но ts дает некоторые полезные плюшки.Как на работе отпустит чуток, планирую даже навернуть kotlin-js (есть немного юзер-скриптов на tampermonkey, как раз самое то).
>>1620544И да, котлин мне уже заменил питон (были файловые парсеры/утилиты).Как вообще на нем пишут ML, я не понимаю. Как только выходишь из базовых конструкций, с тобой приходит предметная область и абстракции, кодить становится нереально без типов (и хинты мало чем помогают, я уже молчу про рефакторинг через динамическую удачу).
>>1620550>я уже молчу про рефакторинг через динамическую удачуСерьезно, постоянно говорят про прототипирование. Мол, если прототипировать, то это питон!!!Что блин?? Ты блин класс нормально переименовать не можешь, какое нафиг прототипирование вообще?? Как из непонятно чего, заменять на непонятно что? Как логику "подвинуть", если у тебя "нечто" работает с "нечто". Писать сразу хинты? Да ну нафиг, лучше мне автоматом где надо язык сам выведет через var/val