>>1608794 Ага, как же, в прошлом и до 1000 нормально не стало. Ещё и перекатили, блеать. Сейчас опять латентные делфисты вернутся. И будет только хуже.
Скоро джава-треды будут как питоньи. Перекаты до 500, куча вкатышей, обсуждения про while и System.out.println на сотни постов и попытки понять, почему код из 10 строчек не компилируется.
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 соединение и всё норм. На сайте всякие стандартные поеболы типо "Наши клиенты" "Наши сотрудники" "О нас". И этот весь текст с картинками на одной странице! А теперь главное - наверху сайта есть панелька, с этими о нас и прочим, когда юзер тыкает на вот этот о нас, сделанно так, что почему-то страница перезагружается, в PATH ставится # типо sait/#oNac и и юзера просто кидает на текст, что был внизу. Нахуя перезагружать страницу, если в жсе можно просто вниз отправить, нет? Второй вопрос - одновременно в network я вижу что открылось второе соединение http, если я тыкаю этот О нас. Это вообще нормально, что теперь я имею и https и http, которые так-то ведут на одну страницу
>>1609260 >Джава может скомпилироваться перед выполнением? Да, она компилируется перед исполнением, в байт код. Чистый код джавы не интерпретируется. Байткод, собранный в jar нужен, чтобы ты 100500 "экзешников" на каждую платформу не таскал. Кросскомпиляция это не всегда круто, как кажется.
>>1609267 Зачем асинхронное программирование? Это тебе в гугл.
Был на собесе, на стажёра жава, в одной из контор Котосиба. Надо было сделать какой-то обход бинарного дерева, и объяснить как внутри устроен гарбедж коллектор, я ничего не смог. Я очень много читал книг, пытался их до конца вычитать, и по синтаксису и по ее, и про все пытался читать. Сейчас зашёл домой, так обидно что-то. Видимо это все же не мое, и надо узнавать как вкатиться в Яндекс еду.
>>1609442 Ты создал уже? Никогда не понимал таких советов. Создай ПО которое будет полезно самому себе, как Тинькофф например, был такой мне совет. Ну пиздец, охуеть, а Интел с Майкрософтом мне не создать?
>>1609461 Ну смотри, с жабой ты можешь потом в случае чего перекатиться куда угоднов кровавый тырпрайз, а с дартом ты будешь сидеть и пузыри из жопы пускать
>>1609439 Пиздос, сочувствую. Я вот тоже сейчас миллион книг задрачиваю, и будет, скорее всего, точно так же. Хотя, обход бинарного дерева смог бы сделать, наверное. А тебе уже готовое бинарное дерево дали и тебе надо было его обойти?
>>1609573 Ничего. Просто уже реализовывал бинарное дерево и рекурсивный обход каталогов и подкаталогов. Обход биндерева особо ничем не отличается.
Это что неработающий код у Шилдта?Аноним20/02/20 Чтв 22:28:58#56№1609606
Читаю Шилдта, увидел его реализацию очереди, претендующую на постоянное выполнение. Код прилагаю https://pastebin.com/LTFZ2Mqc Но неожиданно, если очередь полностью заполнить, то putloc перескакивает на 0, и getloc = putloc = 0, программа выдает, что очередь пуста, хотя, она все еще заполнена.
Не думал встретить такого в книге, но вдруг кто расшарит, что я не так понял
>>1609622 Нет смысла, если у твоё приложение - раб спринга.
>>1609616 Отдельные функционалы вполне хорошо строятся на отдельных контекстах, вся спринг-лабуда строго инкапсулирована, наружу pojo.
>>1609606 Ничего удивительного, в книгах про основные алгоритмы дохера фундаментальных ошибок подобного рода. Помню сутки с красными глазами искал баг в удалении из сбалансированного дерева, списанного с какой-то модной книги, но алгоритм был наглухо дебильный, и только на вид рабочий. в принципе нет книжек в котором есть работоспособное удаление из сбалансированного дерева, поэтому в итоге задача была решена пересозданием дерева после накопления мусора до определенного уровня
>>1609675 >>1609675 Тем, что выполняется требование инкапсуляции. Классы, явно задействованные в конфиге путем аннотирования, согласно SRP, лишаются роли бизнес-логики и становятся техническими адаптерами, заменителями xml. Общий контекст уместен только для части проекта, являющейся main entry, т.е. то, что крутится в контейнере.
>>1609691 Про "требование инкапсуляции" это примерно та же самая болезнь, которая заставляет людей возле каждого простейшего Dao аккуратно рисовать одноименный интерфейс. Дальше правда человека что-то совсем в сторону понесло...
>>1609696 Не, не про это, я имею в виду про скрытие реализации и луз каплинг за счет инкапсуляции. В спринге же обычно начинаются куча сеттеров или аннотации (что уже зашквар - зависимость от спринга). В итоге, как правило, получается кашица. Может мне не повезло с проектами, хз. Больше всего мне понравился фреймворк контейнера idea, там инжекшен на конструкторах. Сделано изящно, на грани здравого смысла, но таки зачетно.
>>1609715 Да нихуя вы не поняли, начитались книжек, а сути не понимаете. Не зря Алан Кей сказал, что не имел в виду цпп, когда придумывал ООП, интересно, что бы он сказал про джаву. Но так-то да, да деревьями леса не видно.
>>1609717 >начитались книжек Это как раз скорее про тех, кто готов не жалеть сил ради великой идеи соблюдения луз каплинга. Кто не читал, тот, может, и слов таких не знает.
>>1609721 Это не такие уж и великие идеи, а простые слова, обозначающие насущную необходимость, способствующую улучшению читаемости, тестируемости, масштабируемости и проч. коммерческим ценностям кода.
>>1609724 Хорошо бы тогда показать, как конкретно "зависимость от спринга" ухудшает тестируемость и масшатабируемость, а множественные контексты улучшают.
>>1609717 Кого ебет что он там думал: а) симула была раньше б) мнение автора термина, по поводу того что он обозначает - всего лишь одна из интерпретаций среди многих других в) динамическая сгущенка с супер поздним связыванием и абьюзом паттерна обсервер - никак не повышает и, наоборот, понижает надежность кода, его предсказуемость, консистентность и даже читаемость. г) Рим пал, центурион смолток проиграл (и на то были объективные причины)
>>1609737 Я хотел начать со своего while. Узнал, что тут можно изменять переменные из внешнего скоупа, это всё упростило. С фором можно напридумывать инфиксных функция, типа to, downto, step и прочего с отсылкой к бейсику.
>>1609743 Чтоб не инстанциировать весь, ты для теста пары методов будешь поднимать всё приложение? Впрочем да, можно везде lazy написать, но как правило не так просто всё оказывается. >>1609742 Потише братиш, я лишь хочу отметить что под ООП каждый понимает что-то своё. смолток проиграл потому что сан его купил
>>1609748 > с чуть большим количеством скобок При этом. Если обмазываться сахарком, абстрагируешься от того, что ты вызываешь функции/методы и начинаешь думать в системе координат своего DSL. Это как в лиспе.
>>1609761 Это уже к дизайну DSL. Вот градл тоже таит кучу сайд-эффектов, но о них не задумываешься. Вообще, так много магии и сахара я не видел нигде, кроме перла.
>>1609747 >Чтоб не инстанциировать весь, ты для теста пары методов будешь поднимать всё приложение? Если это действительно тест пары методов, это скорее юнит-тест, для которого контекст не нужен. А для тестов с контекстом, по моему опыту, действительно гораздо здоровее всегда поднимать его целиком. Это с одной стороны как раз освобождает тебя от возни с разными контекстами или их подмножествами, с другой - дает больше гарантий, что ты тестируешь именно то, что реально потом запускаешь, а не какую-то специально созданную ради тестов конструкцию.
Правда такая >>1609767 ситуация была создана моим предшественником, и корректно забороть её без переписывания всего проекта невозможно, а на это нужен повод для бизнеса, поэтому я еще больше возненавидел спринг и высираюсь тут теперь
>>1609779 Вот, достигнуто похожее решение путем увеличения количества скобок ))) Прозреваю что котлин напихает там атомиков, или заинлайнит просто всё, интересно, как оно там реализовано. Скорее второе.
>>1609802 У меня был похожий в одном проекте. Ну там да, в целом в котлине красиво выглядит, судя по >>1609794 Но я бы не стал идти в проект, в которым таким занимаются.
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, но как создавать проект, чтобы запускать код с ним, приложенный к книжке не написано.
>>1609863 Он сам сказал запусти в cmd - я запустил. А теперь запусти в какой нибудь иде(а как запускать в инструкции к иде должно быть якобы). У него эклипс - у меня - идея. Ладно, раз ты советуешь еще раз постараюсь нагуглить, как работаать в иде с пакетами. Спасибо.
>>1609916 кстати, кококотлин шире всего распространен в андрюхиной среде именно из-за этого. кококомпилятору кококотлина можно задать целевую версию жабы и он будет выдавать нужный байткод
>>1609917 потому што андрюхины вмы жрут байткод 7 жабы. андрюха 7 вроде восьмую жабу поддерживает, но если ты хочешь таргерировать все андройд девайсы, то вынужден обходиться седьмой жабой
>>1609927 Во-первых, пишут на котлине энтерпрайз (пусть пока и не так много). Во-вторых, может хоть ты расскажешь, что за бэкенд на jvm, который при этом не есть по сути тот же энтерпрайз? Ты много такого видел?
>>1608821 Ну а представьте что через 50 лет будет? Это еще сейчас вкатывальщики (это я) как бы запрыгивают в последние вагоны поезда по сравнению с общим временем популяризации технологий, а потом программирование вовсе перестанет ассоциироваться с каким-то временным промежутком, и по сути само понятие "вкатывания" вообще перестанет иметь смысл. Ну типа какое значение будет иметь своевременность "входа", если технологиям уже больше 70+ лет? Так что не понимаю всех этих баребухов по этому поводу, как будто it сфера через пару лет уже закроется, потому что всё все выучили и будут дальше жить вечно
>>1609979 Любые предметные области и профессии, программирование это или нет, так или иначе приходится учить. Делается это не мгновенно. В этом и суть "вкатывания". Даже если появится мифическая "армия программистов", программирование не станет таким же лёгким, как интеллектуальная работа дворника.
>>1610027 Для своих проектов. Два просто классических сайта с шаблонами и тупо с ajax. И два json сервиса для такое херни которую я даже не объясню, но очень надо.
>>1609439 >>1609523 пиздец, имею уже год опыта, сменил 2 места работы ни разу на собесе не спрашивали алгоритмы и GC. Когда буду перекатываться в мидла придется хер сосать и читать кучу всего
Чтобы делать контентный сайт, не нужно одностраничные реакты, которые порой плохо кушаются поисковиками и которые долго грузятся (что в совокупности плохо влияет на ранжирование).
>>1610111 1) Производительность. 2) Проблема динамической типизации в большом многолетнем проекте. 3) Низкое качество некоторых решений в php (я про некоторые библиотеки/фреймворки).
Да, один топ проект переписывал в свое время с пхп, теперь пхп вообще уже не помню.
>>1610166 Если не думаешь вкатываться во фриланс (где пхп, вроде, до сих пор в топе) и вообще сможешь осилить JVM мир (он таки сложнее чем пхп) то стоит.
По своим ощущениям, на котлине, я вообще не понимаю зачем писать сейчас на пхп, питоне, ноджс. Нет уже такой топорности как на джаве (хотя я на ней писал дольше).
Есть одно но. В мире джава-либ полно плохо за-дизайненных (по рамкам современности) библиотек/фреймворков. Они порой просто не совсем удобные или переусложненные на ровном месте. Но за то они будут качественнее, чем аналогичное фасадное говно из того же пхп (субъективное, это мое мнение).
>>1610185 Тут моя идея в чем, кто бы тебе не говорил, но ты никогда не сможешь освоить хорошо много языков, много усилий уходит на освоение "экосистемы" языка и практики (иначе ничего в голове не отложится толком). Поэтому есть идея выбрать только один наиболее идеальный и универсальный язык для себя.
Java, С++ (может быть когда-то C#) и python - это наиболее такие универсальные языки.
Например на втором проекте (на самом деле десятом, просто не все успешные были) была просто избыточна джава, но я не хотел осваивать еще какой-то язык, я лучше потрачу время на углубление знаний в той же джаве, чем освою какой-то питон, или переосвою пхп.
Поэтому мой набор инструментов - это углубленно джава и поверхностно js (только на фронте).
>>1610561 Хотя сейчас вроде как интерном никто не пользуется, а computed strings попадают в пул через алгоритм дедуплекации, тк с восьмой жабы завезли сборку мусора в метаспейсе и могут себе позволить.
Посоны, чо по котлину порешать, шоб сахарок нормально освоить? Интересует что-то типа жидовских коанов. Они конешно были норм, но мало. Не чувствую силу.
>>1610743 Именно что из-за легаси. JSP компилируется в сервлеты и к тому же иногда вынуждает вставлять блоки кода на джаве. Прям в лучших традициях пхп. С JSTL, впрочем, ещё жить можно. На самом деле, сейчас и серверные шаблонизаторы используют всё реже, в моде клиент-сайд рендеринг (реакт и вот это вот всё).
>>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().. твоя лошадь будет иметь внутри поле с наслелником от ебала, которое ржет, а птица с наследником от ебала, которое чирикает + поле крыльев, пегас будет иметь поля крыльев и ржущее ебало
>>1610865 Это работает если пегас всегда будет частным от лошади. А если лошадь какает, а пегас не какает (ебаное фантастическое животное), то начнутся проблемы из-за которого ненавидят наследования.
Как сказал анон выше, наследование лучше избегать кроме случаев полиморфизма.
>>1610897 Основной поинт в том, что этот шаблонизатор есть везде (питон, пхп, ноджс). Когда есть зоопарк проектов и можешь влиять на архитектуру, удобно.
>>1609323 >А как быстренько вкатиться в скалу? Без 500 страниц книги и без видеокурса на 40 часов? Никак. Выучить язык != научиться писать грамотный код в стиле ФП.
>>1610933 У тебя вопрос как раз уровня целого мануала.
Это однохерственно что: - как мне сделать сайт - как мне начать программировать на джава - как мне бросить писать на го и начать профессионально разрабатывать на котлин - как мне спасти вселенную от галюнов.
Вот допустим, есть json файл со сложной структурой. И допустим, мне надо внутри этого файла поменять значение у объекта, который сам есть значение у объекта. Все остальное должно остаться как есть. Как это лучше всего сделать? Использовал бибилиотеку одну, там можно распарсить json в массив объектов и дальше тоже самое проделывать и получить доступ к нужному полю. Но проблема в том, что объекты в том массиве неупорядочены и когда я это отправляю на вывод порядок там другой. Как можно мою задачу решить попроще?
>>1610812 Кто тебя заставляет использовать проперти файлы в тестах? Делаешь тестовый конфиг с 4 бинами. Инжектишь их в тест. И через параметризированные тесты запускаешь 4 раза.
>>1611511 Я могу собирать любого зверя по интерфейсам. Перебирать множество возможностей. При наследования я ебнусь это делать (каждая вариация это абстрактный класс и возможно даже еирархия абстрактных классов).
>>1611385 У меня коллега на работе решил изучать сишарп(из экономистов стать программистом). Купил он себе книги и макбук. Насчёт макбука мы всем офисом проигрывали. Через месяц он это дело бросил. Через полгода от нас уволился, поотсылал заявки на стажера/джуниора си шарпа и его конечно же послали. Сейчас он не работает и хуйней страдает. (его ожидает Макдональдс с двумя высшими и он еще третье высшее хочет)
Есть телефоны Cisco. Можно ли к ним напрямую подключаться с помощью библиотек и вытворять всякие действия, например количество непринятых звонков получить? Если да, то подскажите пожалуйста в каком направлении это искать? Api Cisco?
>>1611554 Он вообще программировать не умеет, куда ему макбук для шарпа. Больше для понтов его наверное купил. И мантры были типа "Винда глючит, как на ней можно работать, плавность АРЯЯЯЯ!". И вообще непонятно почему именно шарп этот чел выбрал. Для всяких вкатывальщиков хорош питон или си. Даже мы ему это советовали.
>>1611567 Я как бы тоже начинал с Си K&R. Правда я там только дочитал по сути только до синтаксиса - создание переменных, if, циклы, чтение файла до EOF. Помню когда впервые увидел for(fahr = 0; fahr <= 300; fahr = fahr + 20) не понял что написано, как будто инопланетный язык. Но зато потом остальные языки понятными казались, Си-подобные же. Хорошо, что не дошел до указателей и управления памятью, а то бы испугался.
Хочу сходить на собеседование в ерат. Вакансия какая-то общая... Как вы думаете, к чему готовиться? Самому ничего найтись не получилось. Но попалась инфа, что у них есть жёсткая система грейдов. Но не на публике. Никто не намекнет что нужно, что бы не опустили до миддл-, а быть миддл+-сеньор?
>>1611681 Конкуренция всегда хорошо. Джава стала развиваться, даже что-то годно к 2024 наметили годное (есть доклад на трубе).
Джава и Котлин не конкуренты, я серьезно. Они едят с одного стола. Потонет джава, потонет и котлин.
Котлин не обязателен. Это личный выбор. Тем более не обязательно даже что-то переписывать только фанбои носятся с идеей что надо срочно все переписать на новый язык. Котлин прекрасно живет с джавой.
Котлин не идеален, он просто удобен (я им реально себе питон стал заменять). Нет идеального языка, я по крайней мере не нашел.
>>1611655 придёт микрочелик со списком тем, и по каждой теме будет тебя опрашивать и ставить оценку напротив каждого пункта. Нет английского, нет вышки, нет лычек - сразу минус, ты становишься ниже уровнем чем их стажёры
>>1609671 Cursed Я вообще люблю адово поиздеваться над языком, к примеру я вообще подумал, можно ли сделать подписку на события как в шарпе. Ответ - да, Можно
>>1612088 >66% андроид >57% жвм Ну если учесть что таргет jvm входит в таргет андроид, то там считанные единицы не-ведра Но окей, даже так хороший знак. Может даже вакансии на веб появятся когда-нибудь на нём.
>>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.OnClickListener 2)непосредственно лямбду (v:View)->Unit и я не могу написать butt::setOnClickListener.subscribe(::myfunc). А если написать так то вроде все ок. У меня вроде нет нескольких одинаковых колбаков в классе. fun ((v:View)->Unit).subscribe(func:((v: View)->Unit)->Unit) = func(this). Но я все-равно получу хуй. Так как во время запуска он скажет что я попытаюсь превратить лямбду в View.OnClickListener. Из всего выше описанного можно сделать вывод: Метод нихуя не два, а блять один, и котлин просто меня тролит.
Скорее всего это все из-за функциональных интерфейсов в java. Я пробовал на джаве создать метод принимающий объект реализующий интерфейс. И в котлине IDE также подсветила, что там есть перегрузки
>>1612175 как спринг-дата сочетается с энтерпрайзом? Энтерпрайз это каждый запрос пишется лично дбашником, опционально через вьюху или хранимку. 100500 метрик производительности и оптимальности этого запроса. А тут херак херак твоя спринг-дата нахерачила фулсканов
>>1612423 Добавлю, что каждый запрос также должен пройти согласование в трех комиссиях, с оформлением всех документов по гостам. Энтерпарйз же, что вы хотите.
>>1612520 Ты представь только, каждое findUserByUsername "пишется лично дбашником, опционально через вьюху или хранимку". В таком зачарованном месте, я думаю, само время течет как-то иначе.
Анонасы, как совладать с этим эксепшеном? persistence.xml есть в WEB-INF/classes/META-INF, архив с Хибернейтом в папке с либами. Не знаю уже что делать, весь стаковерфлоу с ног на голову перевернул, всё не подходит.
>>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?
>>1612423 >Энтерпрайз это каждый запрос пишется лично дбашником
Ну да, но надо придумать ORM, чтобы а ВДРУГ ПОНАДОБИТСЯ сменить оракл на постгрес, а код минять не надо сразу изкаробки, еще и тестируем на h2 в тестах заебися
Че там жопа горит у оптимизаротов котоые хотспот дрочили микросекундами, а вот хуяк ПЛОТИ НОЛОХ за каждый процессор, а ты че думал инструментарий в опенждк не завезли
>>1612669 > ВДРУГ ПОНАДОБИТСЯ Прям как клепать пустые геттеры и сеттеры вместо того, чтобы сделать поле публичным, а ВДРУГ завтра в сеттере понадобится логика.
>>1612677 >клепать пустые геттеры и сеттеры вместо того, чтобы сделать поле публичным
ну это скорее байтоебские фреймворки которые прямо в байткод лезут и им нужен метод а не переменная, как эти спринги которые инжектят прайвет филды блять
>>1612682 Спринг может что-то засеттить через рефлексию, если не нашёл сеттер. Другой вопрос, когда даже ебучий POJO пишут с приватными полями и портянкой геттеров-сеттеров. Ещё и ругают тех, кто так не делает.
>>1612849 Ну сейчас пока никаких ошибок нет, хотя как раз сейчас они бы очень пригодились.
>>1612851 >>1612862 Видимо, так и придётся сделать. Хотя я ведь до этого устанавливал другие библиотеки и фреймворки нормально. Почему именно Хибернейт так странно себя ведёт?
В общем, скачал hibernate-entitymanager той же версии, что и core. Ошибка осталась. Как дальше действовать? Какие ещё нужны зависимости?
>>1612891 > Спринг сразу кидал ошибку, когда отсутствовала какая-то зависимость Проблема ещё и в том, что у зависимостей могут быть свои зависимости, и сходу это не определить, пока не попробуешь что-то вызвать.
>>1612876 > hibernate-entitymanager той же версии, что и core А и правда, теперь вроде как он влит в core. Значит, не в этом дело. Но зависимости все собрать по нормальному тебе все равно придется.
>>1612891 >Спринг сразу кидал ошибку, когда отсутствовала какая-то зависимость. И тебе это приятно было? Я по столу кулаком бью, если хоть что-то красным текстом увижу.
>>1612923 Это, значит так, шутка что ли, блядь!? Во-первых, шутят здесь только два человека с помощью третьего человека - вычищателя спринга! ВЫ БЛЯДЬ МНЕ ТУТ НЕ ШУТИТЕ СО МНОЙ! ЧЕ ТЫ ХУЙНЮ ПИШЕШЬ, МУДИЛО!? МУДАК! МУДИЛО! ХУЛИ ТЫ БЛЯДЬ УМИШКО СВОЙ КУЦЫЙ ПОКАЗЫВАЕШЬ БЛЯДЬ!? КОМУ ПОКАЗЫВАЕШЬ УМИШКО?!.
>>1612895 >>1612897 >>1612899 Ладно, пойду всё-таки читать туториал по Мавену. Всё равно ведь рано или поздно на работке потребуют. Но инструкцию по ручной установке всё равно схороню. Смущает, конечно, немного, что она за 13-й год, но всё-таки.
>>1612918 Ну, по крайней мере приятнее, чем когда вообще не понятно, что происходит и в какой стороне ошибка.
>>1612966 От таких принципиальных не спасёт ничего. Но от большинства анонов, сидящих только в 1-2 тредах, иногда от скуки листающих ленту, вполне может.
Поясните мне нубу. Почему когда я делал вебпроект на Dynamic Web Project на Eclipse я без проблем создавал сервлеты и т.д. Что бы через Idea сделать сервлет мне нужно добавить Maven и в нем добавить зависимость? Я что-то не так делаю? Я думал сервлеты это часть JDK.
>>1612977 Лучше уж спринг-дрочильня, чем: 1. Постоянные набеги "Java - говно мамонта и вообще кобол" 2. Повторяющиеся по 10 раз за тред вопросы от вкатывальщиков, гуглящиеся за 30 секунд 3. На вопросы сложнее чем про синтаксис никто ничего не может ответить.
С котлином повеселее, но кроме него тут ещё и рака изрядно прибавилось.
>>1612993 1. Вообще не реагирую, детям надо выплеснуть энергию. В основном это гоферы, думающие, что у них в треде джависты срут (на самом деле срут там все).
2. и 3. Классика ру-форумов. Тут никуда не деться. Лучше постить в треде годноту и обсуждать ее, чем играть в stackoverflow
>>1612920 По хорошему надо на создании распарсить шаблон, чтобы при render() не парсить его, а просто сконкатенировать куски шаблона и переданные параметры.
>>1608778 (OP) Я так, смотрю, страница старт.спринг.ио просто по максимуму хипстерская: 1. Написана на реакте 2. Градл 3. Язык можно выбрать котлин и груви 4. Джаву можно выбрать 13 5. И есть тёмная тема.
>>1613073 >Постпроцессоры поминать не будем Ну почему же? Если ты не расширяешь функциональность спринга, а пилишь стандартное приложение, постпроцессоры не нужны.
>>1613101 Утверждаю, что котлин и скала это совсем разные звери, как раз в смысле близости к джаве. Поэтому у самого котлина шанс "жить" заметно больше (где там скала на андроиде, например?), а также это означает, что отдельные котлинотреды имеют довольно мало смысла - там бы обсуждали тот же самый спринг и тот же самый андроид.
эт нормально в mysql базе поставить на ключ on delete restrict, и перехватывать исключение при попытки удаления ну чтоб не лазить лишний раз в базу в поисках по разным таблицам ссылаются ли они на данную запись или нет
>>1613061 Смысл в производительности. У тебя разбор шаблона идет каждый раз как вызывается render(), а надо бы один раз его распарсить и выделить: постоянные части и места для подстановочных параметров. И внезапно выясняется, что MessageFormater такое уже умеет!
>>1613121 Ну тогда нужно подшапку про котлин и в андройд и ios тредах запостить. У нас же KOTLIN MULTIPLATFORM. Ну и в С и С++ тредах. Ведь у нас KOTLIN NATIVE.
>>1613275 В каждом ФП сраче слышал про то как меряются хвостовой рекурсией, но никогда не понимаю важность этого. Неужели трудно сразу в цикле написать?
>>1613279 Даже так: generateSequence(1, {it + 1}).map(::factorial).take(10).toList()
>>1613281 В ФП подразумевается отсутствие изменяющегося состояния и, как следствие, отсутствие циклов. Поэтому всё, что остаётся - это рекурсивно вызвать ту же самую функцию с немного изменённым состоянием. Практическую пользу и важность в этом всём не ищи, это придумали дохуя теоретики.
Анонас, помоги понять одну вещь в Мавене. Вот билдит он мои приложения вместе с зависимостями, а где эти зависимости искать в рантайме? Насколько я понял, сам classpath не меняется при этом. Мне самому внести репозиторий в classpath?
>>1613331 твой код собирается в .jar или .war, и мавен распаковывает либы и складывает их внутрь. Ещё есть разные модификаторы для мавена - scope - складывать или не складывать и на каком этапе
>>1613477 Вот я и думаю: 1. ФП хуёво ложится на архитектуру 2. На ФП хуёво моделировать реальный мир И какой тогда резон вообще его использовать, кроме фокусов типа map/filter? Оно же абсолютно нежизнеспособно. Ну и ладно, здесь не место для ФП-срача, к тому же котлин не позиционирует себя как функциональный.
>>1613481 Старая (школа) попытка сделать мини-билдер
Например создание объекта может быть сложным или вариативным, поэтому ты делаешь небольшой фасад для удобства. А если нужен полный контроль используешь "нативный" конструктор.
Но из-за DI это плохая практика, потому что класс сразу знает о зависимостях (они жестко прописаны). Либо ты честно делаешь билдер либо не страдаешь фигней.
Так же встречаются долбокодеры которые это делают потому что так им нравится.
>>1613496 >Но из-за DI это плохая практика, потому что класс сразу знает о зависимостях (они жестко прописаны) Поясни, при чем тут жесткое прописывание зависимостей
>>1613496 >Либо ты честно делаешь билдер либо не страдаешь фигней. Кстати, в некоторых языках наличие именованных аргументов и аргументов по умолчанию позволяет во многих случаях прекрасно обходиться без билдеров.
>>1613524 > Но со StringBuilder не выйдет. Ну да, тут речь не о динамических штуках типа StringBuilder, а о паттерне билдер, который для конструирования дохуя сложных объектов с кучей параметров.
>>1613515 Ну смотри у тебя есть два интерфейса interface IFly interface 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
>>1613481 На самом деле это нужно, чтобы сделать несколько статических методов, которые принимают разные параметры: https://gist.github.com/Stingray42/feb16623f1328dd8d1eb42fafdec8612 А вот чем это лучше нескольких конструкторов, я хз. Если нет деконструкторов, ничего не мешает делать все те же действия внутри конструкторов. Но чаще я вижу вариант с фабричными методами. Кто-нибудь объяснит, в чем смысл?
В общем случае, правило такое: нельзя создавать реализации сервисов в том же файле/классе, даже если они в статическом методе. за редким исключением, конечно
Есть тут кто-то кроме хелоуворлдистов и студентоты? Вопрос такой: есть значит спринг бут приложуха, которая использует кафка стрим, который агрегирует данные из топика в кейвалью стейт стор а.к.а. РоксДБ, и потом этот агрегат отдаёт по ресту. На одном инстансе всё работает заебись, но кому нахуй нужен один инстанс? Я хочу иметь топик с дохуя партишенами, и дохуя инстансов приложения, для процессинга данных. И тут возникает проблема, как посмотреть на все данные целиком? Потому что инстанс приложения с кафка стримом хранит только часть данных, а точнее, только из тех партишенов, которые ему заассайнил брокер. Т.е. если у меня, например, топик на 4 партишена, я поднимаю два инстанса приложения с кафка стримом, в итоге получается по 2 партишена на инстанс. И каждый инстанс имеет доступ только с локальному стейт стореджу. Тобиш половина данных у меня персистится в одном инстансе, а половина в другом. Ну и всё это реплицирейтся где-то в брокере, но туда доступа нет. Чтобы их объединить, нужно херачить по РПЦ(например, по ресту) из одного инстанса в другой, использую кафка брокера, как сервис дискавери. Ёбаный стыд, это что за пездец? И как это должно работать в том же кубернетисе? Мне чё, на каждый ПОД сервис отдельный поднимать, чтоб до него можно было достучаться? Или как ваще?
>>1613591 >половина данных у меня персистится в одном инстансе, а половина в другом Изначально откуда потребность в такой архитектуре взялась, чтобы инстанс персистил только локально?
>>1613601 Ни откуда, кафка стримы так работают, хочешь ты этого или нет, когда ты каким-либо образом аггрегируешь кафка стрим, он персистится в память, на диск, реплицируется в брокер и т.п. Вопрос в том, как получить картину на все данные целиком, без ебли между инстансами сервиса, и как это делать в реалиях кубернетиса того же.
>>1613618 А если все же очень хочется обойтись только тем, что уже есть на твоих инстансах, только бы их как-то объединить, можешь, например, взять IMDG типа hazelcast. Для сервис дискавери там уже есть решения.
>>1613613 Ничем, разницы никакой. Единственно, что методом ты его можешь как-то обозвать как надо, особенное если типы совпадают. Date.ofEpochTime(...) Date.ofFormatString() Date.ofString()
>>1613684 А какая разница? Если ты хочешь сказать, что пилить микросервисы, которые дёргают друг друга через рест это леджит решение хоть чего-то, то иди дальше хелоу ворлды пили.
А есть что-то вроде Spring Initializr, но чтобы просто список всех артефактов пружинной экосистемы. Могу конечно просто тыкать в инициализере на нужную зависимость и копировать только часть pom'ника. Но есть ли список красивый?
>>1613771 Там никакой разницы нет, стартер или не стартер. Если генерить проект, тоже будет пачка стартеров. Смысл этого в том, что в таком-то фрагменте бута уже все зависимости подцеплены и сконфигурированы.
>>1613591 По-хорошему надо использовать какую - нибудь распределенную БД. RocksDB это не более, чем движок хранения данных. Поверх него уже можно накатать распределенную БД (как это сделали в CockroachDB например). То, что ты сейчас пытаешься получить полную картину -- это сам понимаешь нетривиальная задача в условиях множества узлов и Kubernetes тут тебе не оч поможет. Не, в принципе можно, но я думаю это пиздец какой гемор.
Короче, мой тебе совет посмотреть в сторону нормальных попенсорс распределенных БД и туда персистить свои сообщения. Под нормальными я имею ввиду консистентные, с ACID-гарантиями, с транзакциями и все такое. Благо, сейчас с этим не так туго, как лет 5 назад. Лично моим выбором был бы FoundationDB. Только почитай в начале доки на нее, там оч много нюансов и модель данных там низкоуровневая (хотя есть надстройки над ней, который я думаю даже для JPA приспособить можно). После того, как все в базу сохранишь -- можешь легко проитерироваться по всем записям. Например, в FoundationDB для этого существует специальный AsyncIterator, который позволяет пробежаться по всем ключам в кластере в промежутке [rangeStart, rangeEnd].
>>1613791 Да, я так понимаю, тебя смущает, что в кафке все твои сообщения уже есть, но по вообще всем сообщениям пробежаться нельзя, так? Я хз, мб ты просто не нашел в доках это, но советую еще раз поискать. Если таки возможности действительно там нет -- выкидывай ее нахуй и юзай FoundationDB как очередь. Вот пример: https://apple.github.io/foundationdb/queues.html
>>1613800 Да, думаю чел хуйней страдает. Я бы спокойно сохранял все в отдельную бд, не переживая, что оно уже где-то там лежит. Тем более в кафке эти сообщения не вечно же лежат в RocksDB, а подчищаются время от времени.
>>1613883 Сри, если совсем стесняешься, то можешь приватный репозиторий завести. Это больше для тебя самого, чтобы ты через год мог посмотреть и вспомнить.
>>1613899 Зависит от настройки ретеншена. Да, можно сделать вечными.
>>1613930 Кафка стрим это либа всего лишь. Как часть себя, она тащит в приложуху роксДБ, в которую персистит стейт при процессинге. Это всё аут оф зе бокс функциональность.
нужно для себя настрогать ведроид приложуху, взял думаю котлету и меня не покидает чувство что взяли жабу и просто малость почистили от говна обратной совместимости.
>>1614313 И это именно интерполяция, а не шаблоны, как ты назвал. Темплейты это совсем другое (это полноценные темплейты FreeMarker, Mustache, Mustache)
>>1614323 >Как в котлине это сделать с неизвестной во время компиляции строкой? Тогда это не инторполяция строк, используй форматирование. Не нужно путать два понятия и писать форматирование при простом сложение строки, как это сдали в питоне, от чего строку порой не возможно прочитать.
Для форматирования используй Си-стайл "%.3f".formate(1.2456)
>>1614328 >Тогда это не инторполяция строк >Не нужно путать Вот анон тот и сделал не интерполяцию, а простейшим базовый шаблонизатор, типа StringSubstitutor из commmons. А ты заебал нотации читать. Не путать, блять, ему.
>>1614338 Тот анон сделал форматирование, которое в джаве уже есть. Нам нужно больше форматирований, особенно похожих на интерполяцию строк как в котлине, си шарпе... Зачем нам скучный String.format()!
>>1614355 Тебе строку отформатировать или тебе шаблон целый нужен, ты уж определись? Но главное и то и то давно уже есть, в случае форматирования вообще де-факто стандарт есть на все языки.
Хипстерский стайл, который не вводит никаких фич, не нужен. Ты увидел интерполяцию строк в каком-то языке и тебе просто захотелось такое же в жабке, но ты даже не погрузился в предметную область.
Одно дело отформатировать строку, другое дело шаблоны, которые нужно как минимум собирать/кэшировать и прочие тонкости (херова тучу тестов на все извращенные вариации твоего синтаксиса).
Поигрался - молодец, но не надо позиционировать свое говно, как истинное решение, соревнующийся с де-факто стандартом форматирования. Ты и пятой части не знаешь, что оно там может сделать и какие кейсы за десятилетия оно там может решить (о которых даже фантазии у тебя не хватит).
>>1614384 Можно похоливарить (а что еще делать в утонувшем треде) над шарповской интерполяцией, она же и в пыхтоне почти такие же. {<interpolationExpression>:<formatString>}
Тут, вроде, сначала кажется очень удобным, коротко, зумеры и хипстота оценит. Но в то же время в шарп версии рождается какой-то псевдо синтаксис, когда в котлине выражение такое какое есть в реале (вообще котлин разворачивает все в простую конкатенацию).
>>1614408 Например как годно продуман си-шарп. В котлине надо расширять функцию чтобы получить форматирование даты. А в шарпе это: $"Сейчас {date:yyyy-MM-dd}"
>>1614420 И тут вроде столкновение знаний. Дохера умные проектировщики скажут - форматирование это не есть тоже самое что и дата, и держать это вместе не имеет смысла. В тоже время форматирование даты это пиздецки частое явление.
И кто окажется прав? Сеньоры-помидоры архитекторы, или же опыт? А права окажется рациональность. Потому что предметная область это отражения реальности, а не маня-фантазий архитектора, как должен выглядит мир, его глазами.
>>1614408 >>1614420 >>1614428 А теперь посмотрите как форматируют дату в го! Вот так же, человек с опытом, совсем не зумер, взял и тупо положил болт на многолетний опыт паттернов даты и высрал свое невьебательское чудо. Теперь есть даже целый сайт, который конвертирует привычный паттер в го формат.
Ну будьте такими же долбаебами, стремитесь унифицировать знания, а не размножить стандарты (если конечно ваш вариант реально не "серебряная пуля")
Стоит брать год джавараша за 6к, если я совсем нубас? Без скидки у них стоит 18к и это точно не стоит того. Если это все говно, то можете подсказать на что лучше потратить 5-10к(больше у меня нет) на изучение джавы(чтобы потраченные деньги тебя стимулировали), чтобы это дало какую-то пользу, а не просто выкинутые деньги.
>>1614457 Ну так уже. Но я сижу как-то мало. Часа по полтора-два в день. Хочу найти какую-нибудь мотивашку, в виде платной недорогой приблуды, чтобы сидеть по 3-4.
Ну раз это шаблоны, где мои управляющие конструкции? Как я могу расширить функционал? Как это по производительности? Это компилиться? Это кэшируется на уровне либы или мне нужно об этом заботиться?
Посоны, а давайте запилим свой язык! ЧОООО? Че за семантика-хуянтика какая-то. Нахуй надо. Давайте свой молодежный синтаксис запилим а семантика в рот она ебись. Вон там jls какой-то тип, норм. Мы чо, лохи шотль хуетой какой-то заниматься)))
>>1613337 Но мне не надо, чтобы он запаковывал. У меня есть папка для классов, и компилирую я, соответственно, тоже туда. Вот что Мавен будет делать с зависимостями, просто рядом их положит?
Сап побывал на собесе и понял, что от меня хотят какой-то алгоритмизации. В этой связи вопрос, что делать и читать? СИКП я вижу вроде популярная книга, это про это вообще? Также, интересует мнение о литкод и джавараш!?
>>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-кун вроде готов тебя менторить, лол.
>>1614890 Да это понятно, его пивотал делает. Но они с оглядкой на фишечки ждк, который пилит оракл и томкэт, который за фондом апачей и определённые фичи можно профинансировать если надо. Но от сервлетов никуда не деться, а jakarta ee похер на спринг.
>>1614896 Одна сторонняя либа опирается на другую стороннюю либу. Такой сценарий очень распространён, все либы во всех языках так и живут, и срать они хотели на то, что используемые либы не входят в стандартную. Почему именно с сервлетами должно быть как-то иначе?
>>1614933 У меня вебапп, так что запускает контейнер. Я так понимаю, мне нужно воспользоваться его настройкой classpath, либо разместить репозиторий в одной из его папок для либ?
>>1615921 Ты теперь можешь делать хеллоуворлды разными способами. С пакетами и без, из консоли и иде, из-под разных ОС, с разными версиями джав, через варарг или обычный стринг[] аргс.
Поясните хотя бы в чем моя проблема. На leetcode даётся какая-то задача, даются входные и выходные данные. На уровне easy все решается в уме в одно действие, но почему я не могу это сделать на java?
>>1616379 Какое-то древнее говно у тебя с PYPL Проблема поиска в том, что он собирает всех студентов. В инете есть видео динамики языков и джава там забавно прыгает в период сессий.
>>1616842 То, что фронты вопят о себе на весь интернет, не отменяет того, что есть куча тихих дядек-прогеров, из года в год поддерживающих своё легаси. Просто их нет в твиттере.
>>1616861 Тогда тем более всё. Глядя на этот рейтинг, можно говорить "на таких-то языка тонны говна мамонта", но никак не "топ N языков, которые обязательно нужно выучить в 2к20".
>>1616817 >>1616842 Это сейчас они хотя бы научились немного рисовать в сравнение с другими данными в инете, раньше у них вообще своя маня-статистика была.
>>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+ вопросов, если не знаешь хотя бы несколько на собеседованиях в центральных городах и больших компаниях будешь лажать. Если живешь где нить далеко и амбиции не завышенные, то в какую нибудь небольшую контору с перечисленными знаниями попасть не сложно.
>>1617892 Уже понял, что задача не решаема, плюс криво пример писал нужно было решение для той же задачи но без использования splitterWord. Если в крации задача такая распарсить текст "в link заменить слово "x1" на "x2" и "x3" на "x4" " и для всех x внутри может быть любое количество кавычек решение паттерн: .?слово\"(?<group1>.?)\" на \"(?<group2>.*)\" тоесть эта штука найдет весь текст, потом достать уже через matcher group2 и на неё рекурсивно применять тот же самый паттерн пока ничего не найдем, короче та ещё херня.
>>1617907 Тоже сталкивался что некоторые задачи в один паттерн не решаются, либо просто для понимания проще разбить (по принципу "код пишем один раз - читаем потом много раз").
>>1618030 Это срачегенная тема, но под LSP ещё и подразумевают, что ты в подклассе не только интерфейс не сломаешь, но и логику, переопределив поведение базового класса. На практике это сделать трудно, поэтому единственный реальный способ следовать LSP - вообще никогда ничего не переопределять.
>>1618186 А, так ты через это хочешь. На сервере будет обычный спринговый контроллер, у него на входе будет DTO с данными формы. Гугли "spring controller accept form".
>>1618231 Это я и был. Под чистой джавой, вероятнее всего, подразумевается SE. У ЕЕ, вроде, есть свой SDK, но вряд ли у того анона она имеется, раз он такой вопрос задаёт.
>>1618423 Нет бы расспрашивать и понять границы знаний потенциального будущего работника. @ Нет, буду давать странные задачи, не имеющие отношение к предметной области текущей работы. И думать какой я невьебаться умный.
Аноны, есть строка вида ", , , someword, , someword, , someword, , ". Дайте, пожалуйста, регулярку, которая убирает боковые запятые и пробелы и оставляет только те, которые находятся между первым и последним someword (someword - любые слова).
>>1618843 Трудно или нет, спроси того чей вопрос, попросили именно регулярку - я доставил. Если лично мое мнение интересно, то я скажу что микрооптимизации это то еще зло, можно день убить на суб-рутину это а глобальную задачу не сделать. Так что скорее проблем-солвер, а не победитель. А ты видимо стримы даже не используешь, да? "Зачем, что мне трудно цикл написать чтоли?"
>>1618879 Обрати внимание - регэксп решает более общую задачу - "убрать все что не буква". Через неделю тебя попросят к пробелу и комме еще crlf добавить, двоеточие, слеши и тд. Удачи в цикле это все перебирать. А с классом \w при нужных настройках и юникод можно обрабатывать. Нужно это или нет это другой вопрос. Я привык домысливать что именно хотел сказать заказчик ("проблема XY"). Конечно без фанатизма конечно же
>>1618888 >Через неделю тебя попросят к пробелу и комме еще crlf добавить, двоеточие, слеши Для это и есть (или пишут) trim с varargs чаров: trim(',', ' ', ':', '\', '\n')
>>1619020 Что характерно, даже во всемогущем спринге у класса StringUtils не нашёлся нужный метод. Можно только один какой-то конкретный символ указать, но не список.
Подскажите по javaFx, есть textfeild и есть кнопка, в обработчике кнопки есть создание объекта, который получает переменную textfiled --> textFiledName.getText(). При запуске вылетает NullPointerException В чём проблема? Надо для textfield создать обработчик или использовать проперти?
Насколько сложно из .нет мвс мирка вкатиться в спринг или че там щас в жавамире модно? Слышал у вас там настолько ад абстракций что уже даже фреймворк для конфигурации фреймворка сделали
>>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 (написав свой крутой язык запросов), но по гибкости совместимой с реляционной бд. Вот это круть.
А вообще нет такой книжки (по крайней мере не видел), где прям вся архитектера БД, каждый ее компонент был представлен очень точно. Ибо это сугубо практическая вещь и каждый педалит ее по-своему. На бумаге ничего не доказывается. Все просто прогоняется на рандомизированных тестах много-много раз, с введением искусственных отказов того или иного компонента, типо диска или сети, и так убеждаются в корректности БД в целом.
>>1619480 Мне нрав SQL, по выразительной мощности ничего круче я не видал
>>1619451 >>1619461 Теория это конечно хорошо, спасибо, я и сам шапку прочитал. Но покажи мне вакансии в веб на жаве, в веб на котлине и на андроид на котлине. И желательно в дс-4. Ну так, циферки сравнить.
>>1619625 > вакансии в веб на котлине Их действительно сейчас мало, но относиться к этому надо несколько иначе. Не будет сейчас такого, что ты найдешь вакансию с котлином, придешь туда со знанием одного котлина, будешь на нем только и писать и ничего больше не видеть. Но котлин это штука, которую надо держать в уме, когда вспоминаешь, что джава это >пожилое говно говна без сахара
Потому что в реальности может получиться, к примеру, так, что ты придешь с джавой на джава-вакансию, и обнаружишь, что чуваки там присматриваются к котлину и начинают осторожно на нем писать новый код, а ты с радостью присоединишься к этой инициативе. Джаву при этом знать и использовать нужно будет тоже, но в этом нет проблемы, это очень близкие штуки. Тут примерно как с java 11+. Тоже далеко не везде еще есть, но это не повод туда не смотреть.
>>1619641 >нахуя отдельный тред делать было Повторяли уже много раз, просто одному евангелисту (не мне) хотелось миссионерской деятельности для максимально широких масс, а этот тред не перекатывают
>>1619656 Расскажи как собеседование проходило. Боялся? Какие вопросы были? Тебе перезвонили или сразу сказали, что ты годен? Как прошел первый день работы? Как принял коллектив?
Подскажите, где можно взять jdk 10.0.1? На оракле для скачивания архивных версий требуется зарегистрироваться с указанием РАБОТЫ и ДОЛЖНОСТИ блеать, коих у меня нет. Проверил 3 трекера, пусто.
>>1619847 Человек не может запустить мой jar сделанный на 1.13, сделаю на 10. А так не обязательно от оракла, просто в библиотеке профессионала был указан оракл, я им и пользовался. Крч уже скачал с jdk.java.net
>>1619856 > А на джаве без ее? В простейшем случае хватит синглтонов, лол. Вместо @Autowired private Service service; Будешь писать: private Service service = Service.getInstance(); Но наверняка есть и другие реализации DI.
> И как вообще джаву ее подключить? Например, добавить в мавен javaee-api. Ещё понадобится сервер приложений, тот же wildfly.
> Я помню там какая-то еботня с xml файлами нужна. Это для конфигурации.
>>1619928 Ты же в курсе что для URI домен ftp.bad-domain будет валиден (потому что это валидный домен)?
Надо спеку читать, может ли доменная зона иметь дефис (скорее всего может, потому что это тоже домен-левел)
Так что соснул ты. Потому что твоя URI это примитивный топорный парсер. А руками ты можешь достичь большего, например проверить префикс в доменной зоне.
>>1619947 Ты вообще не понимаешь, что такое домен и поддомен, и не в состоянии решить поставленную задачу. Пошел нахуй из серьезного треда, иди дальше свои регекспы в котлин-треде дрочи.
>>1619961 чел ты даун ты реально нихера не представляешь ни задачу, ни предметную область, зато настрочил хуйни в онлайн-редакторе котлина забирай свою хуйню и уебывай, нормальные люди все равно будут использовать InternetDomainName.topPrivateDomain из гуавы
Есть в джаве (11) какая нибудь шняга типа f-строк в питоне или $-строк в C#? Должна же быть.
Типа, хочу писать f"Строка номер {smth.getRnd()}", вместо того чтоб сначала форматирование делать, а потом аргументы сучить. Если есть, то как называется? Если нет, то почему?
>>1620544 И да, котлин мне уже заменил питон (были файловые парсеры/утилиты).
Как вообще на нем пишут ML, я не понимаю. Как только выходишь из базовых конструкций, с тобой приходит предметная область и абстракции, кодить становится нереально без типов (и хинты мало чем помогают, я уже молчу про рефакторинг через динамическую удачу).
>>1620550 >я уже молчу про рефакторинг через динамическую удачу Серьезно, постоянно говорят про прототипирование. Мол, если прототипировать, то это питон!!!
Что блин?? Ты блин класс нормально переименовать не можешь, какое нафиг прототипирование вообще?? Как из непонятно чего, заменять на непонятно что? Как логику "подвинуть", если у тебя "нечто" работает с "нечто". Писать сразу хинты? Да ну нафиг, лучше мне автоматом где надо язык сам выведет через var/val
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
https://github.com/random76/Java-Thread/wiki
https://github.com/qqqlll/Java-Thread/wiki