>>1012704 Если ничего не держит - валить нахуй. Все эти говносапы и ораклы ADF дадут тебе примерно ничего (кроме умения качать говно из/в говносап / оракл ADF), как специалиста прокачают хуево и в других местах пригодятся вряд ли.
>>1012760 Проверял, выглядит внушительно, но на хабрапарашах куча народа пишет про потемкинские деревни. Мне нужно определиться, в какую контору нести деньги, чтобы получить более-менее востребованные знания. С другой стороны, есть возможность сгонять на стажировку в европейские конторы, чтобы уже была идея для вкатывания. Пообщался со знакомыми с вузов, те жмут плечами, говорят, таким-то хуям понравилось. Проблема в том, что они сами не особо доверяют мнению этих хуев.
Сап, двачуганы. Короч есть такая тема: у меня есть норм знания по джуве, но нет опыта работы. Есть вопрос: можно ли пытаться спиздеть на собеседовании, что ты уже работал? Или это как то чекается? Просто вот смотрю объяву, вижу, что около 80% из всего нужного я знаю, остальное подтянуть - не проблема. Но остается 1 нюанс, ябучий опыт работы... Как быть?
Есть таблица в бд. Допустим, есть колонка, строки в которой изменяются. Есть джарник, который по крону каждые 15 минут запускается, коннектится к бд, вытаскивает значения из таблицы, сравнивает эти значения со значениями из файла, выдает или не выдает предупреждения и перезаписывает файл новыми значениями. Собственно, можно как-то сделать это по-другому?
Господа, есть телеграм\прочая мессейджерская конфа по джаве ? Не важно - с начинающими или с мидлами, просто хотелось бы почитать ее\позадавать самому какие-то вопросы.
>>1012871 Ты, видимо, плохо прочел, но я хочу еще и почитать саму конфу. Плюс мне приятнее общаться в таких мессенджерах, там будет видно кто разбирается, а кто нет, тут же нет никакой защиты если мне ответит какой-то тролль или незнающий.
>>1012692 (OP) Подскажите по вопросу лицензирования, опенсорности, фриварности, и прочего вот этого всего. Суть такова. Работал в российской конторе, писал себе на яве, и как-то не задумывался об этих вопросах. Сейчас нужно написать софт для зарубежной компании. Ничего сложного — собирать данные с пары промышленных контроллеров, пихать в базу данных, отображать в виде таблиц эти данные. Всё это на Java/JavaFX, работать будет на промышленном предприятии, т.е., вроде как коммерческое использование. Нужно ли в этом случае покупать какую-нибудь коммерческую лицензию, не приедет ли на предприятие оракловский пативен с карательным отрядом юристов?
Смотрел, что по этому поводу пишут на stackoverflow - мнения полярны: от "нельзя ни в коем случае, ты должен сам собрать openJDK!" до "можно юзать бесплатно, если компоненты самой явы не изменяешь".
>>1012848 Кровавый тырпрайз. >>1012851 Можешь убрать нахуй джарник и переписать на груви (скрипте), питоне, твоей матери. А может обмазаться абстрактной фабрикой синглтонов и сделать через @Scheduled. А можешь забухать, сосать хуи и долбиться в жопу, бо уже написано и работает и займись чем-нибудь полезным. >>1012861 >>1012872 Тебе помощь хуями получить надо, или приятно себе сделать. Если второе, то пиздуй дрочить, а хуйней своей уважаемых господ не отвлекай. >>1012875 GNU General Public License
A. COMMERCIAL FEATURES. You may not use the Commercial Features for running Programs, Java applets or applications in your internal business operations or for any commercial or production purpose, or for any purpose other than as set forth in Sections B, C, D and E of these Supplemental Terms. If You want to use the Commercial Features for any purpose other than as permitted in this Agreement, You must obtain a separate license from Oracle.
H. COMMERCIAL FEATURES NOTICE. For purpose of complying with Supplemental Term Section C.(v)(b) and D.(v)(b), your license agreement shall include the following notice, where the notice is displayed in a manner that anyone using the Software will see the notice:
Use of the Commercial Features for any commercial or production purpose requires a separate license from Oracle. “Commercial Features” means those features identified Table 1-1 (Commercial Features In Java SE Product Editions) of the Java SE documentation accessible at http://www.oracle.com/technetwork/java/javase/documentation/index.html
Дружище, к чему эти выебоны? Ты думаешь, написав четыре слова, ответил на вопрос? Я это ответом не считаю, выше написал, почему. Что мне делать — разрабатывать или зарабатывать, я без тебя решу, мой вопрос не об этом.
Твоё сообщение ни о чём, чего там разбирать-то? Попробуй ещё раз, внятнее.
>>1012762 Могу за магистратуру пояснить, разговаривал со студентом софтваре инжиниринга не помню точное название, там учиться один год и скорее это прожект манагемент. У них сейчас более-менее отлажено 2 направления обучения: вышесказанная и роботикс. На первом надо ебашить, так как обучение всего год. Лучше туда поступать, имея за плечами опыт работы хотя б год, так как там половина задачек на прожект манагемент именно, типа группе из 2-4 человек дают задание сделать такое-то приложение с нечетким тз, а дальше эта группа уже ебется как хочет. Поограмма обучения заимствована у университета Карнеги-Меллон и вроде более-менее работает. Про роботикс мне особо нечего сказать, но преподают годно, программа отлажена, тоже спизжена у какого-то университета, то ли с Амстердамского, то ли с Сингапурского. Обратная связь со студентами тоже налажена заебись, если чего не хватает по инфраструктуре, налаживают по первому чиху. Обучение там 90% оплачивает институт, но ты должен будешь отработать 3 года в одной из компаний-партнеров института. Раньше это было 70к/год, сейчас - не знаю. Если не еблан, можешь с легкостью покрыть эти 70к/год со стипендии. Алсо, бигдата там хуевая на данный момент, лучше пиздовать во вшэ или физтех.
>>1012995 Самый сок - это IntelliJ Idea, есть бесплатная Community версия, но ньюфагам часто сложно начинать работать с ней. Можешь попробовать Eclipse, а дальше уже как потянет, это тоже неплохая IDE.
>>1012836 какая блять няшная? Куча ебаного говна, разные куски памяти, сегфолты, всаженные строки, отсутствие ооп из коробки. Каждый раз садясь писать на си получаю микроинфаркт и требуется время для привыкания, потому что мейн языки у меня высокоуровневые
>>1013055 >сегфолты Ну так пиши без сегфолтов. >всаженные строки Куда всаженные, тебе в срачельник? Наверно, имеется в виду, что они на стеке размещаются. И, что плохого в этом? >отсутствие ооп из коробки Это все не нужно.
>>1013126 > какие-то врапперы-хуяперы Две цели. 1) Для сборки (и можно для запуска, если сам умеет запускаться) проекта не нужно на машину устанавливать никакие билд тулы. gradlew скачает гредл и запустит проект сам. Как ты понимаешь, билд тулы есть не только на машинах разработчиков, которых не обломает установить maven или gradle. 2) Гарантия, что с этой версией инструмента проект запускается и работает как надо и не будет проблем, что на части серверов обновили билдер, а на части нет и теперь сборка кое-где падает.
>>1013126 Ну вот ты наваял билдскрипт градлом версии 3.1, а на версии 3.5 или какая там версионность в градле не ебу уже хуй соберется. gradlew - просто снапшот градла текущей версии, ничего более. Эта фича в мавене тоже появилась потом, кстати.
Джавист полтора года опыта работы. Только сейчас узнал, что на IDEA Community Edition можно хуярить javaee приложения, просто там нет модненьких плагинов (которые я и так не юзаю). Дискас.
>>1013812 тихо, не спугни. тут есть экземпляры, которые не знают о том, что 21-ый век уже наступил. у них там еще запросы через JDBCTemplate пуляют, Tomcat ставят и деплоят вручную на него, расцвет javaee вот это все
>>1013956 >spring boot очередной модный дилдак. Отказались от стандарта war файлов, встроили tomcat embedded, сделали свой конфиг. Встроенный веб-сервер был доступен ещё лет 15 назад. Нынешний хайп этого спринг-бута не понимаю чем обоснован.
Недостатки встроенного - один порт на приложение, сложность настройки, сложность мониторинга, отсутствие всяких фич вроде админ-панели веб-сервера, отсутствие javaEE фич и вообще поддержки javaEE. Например раньше настройку https или сертификатов можно было отдать админу. Во всяких джбоссах он вообще мышкой настраивается. Сейчас же этим приходиться пердолиться самому программисту. И пердолинг этот нетривиален
>>1013974 простой хеллоуворлд, легкость вката. Как в свое время было в пхп. Пишешь <php helloworld <php/> и оно уже работает. А ты считаешь себя великим программистом. А что такой подход не годиться для крупных приложений - об этом узнают сильно потом
>>1013974 ах да, сейчас это связано с другим модным хайпом - микросервисы. Когда приложение разбивается на кучу мелких, взаимодействующих между собой. И вот для каждого такого мелкого приложения, выполняющего свою микроскопическую часть, и предполагается использовать этот спринг-бут
Только не обоссывайте. Добавил в проект servlet-api.jar из либ томката, а идея не видит конечные классы. В чем дело? С другими библиотеками таких проблем не было
>>1013974 Из коробки тебе доступны конфигурации кучи различных либ, не нужно возиться с xml конфигами. Добавил spring-boot-huita-starter в депенденси и huita сконфижена и работает. Тебе не нужно ебаться с варкой и томкатом. Тебе не нужно копипастить конфиги всяких spring-security и web-xml из документации в сотый раз. Ну и всякие другие мелочи.
>>1013971 >один порт на приложение Настраивается кучей способов. Хоть в main функцию передавай, лол.
>сложность настройки Простота настройки.
>сложность мониторинга Например?
>отсутствие всяких фич вроде админ-панели веб-сервера, Не нужно.
>отсутствие javaEE фич и вообще поддержки javaEE И слава богу.
>Например раньше настройку https или сертификатов можно было отдать админу. Ставь перед твоим приложением nginx и отдавай админу. А лучше сразу отдай админу и скажи запроксировать.
>>1014052 >Из коробки тебе доступны конфигурации кучи различных либ, не нужно возиться с xml конфигами Окай, аггрегатор конфигов. Но проблема любых аггегаторов это "жри что дают, котлеты ближе к выходным будут". Ты можешь использовать только то и только так, как это предусмотел автор этого аггрегатора. А так как конфигов много, он физически не сможет сделать интеграцию всех этих либ и предусмотреть все возможные виды конфигураций этих либ. И делать обновления при обновлении этих либ. При выходе за пределы хеллоуворлдов тебя ждет боль
>Добавил spring-boot-huita-starter в депенденси и huita сконфижена и работает. А если не работает? Или работает не так? Или тебе нужен специальный режим работы? Вот тут приходиться лезть в кишки этого бута и разбираться, что там нахуевертили эти улучшаторы.
>Например? например через гуй посмотреть загрузку твоего приложения, какие сейчас запросы, снять дамп
>Не нужно. ясно
>И слава богу. понятно
Т.е. ты утверждаешь что аппликейшен серверы не нужны? Что десятки тысяч людей, работающих над этим, являются дураками? Всего-то надо использовать встроенный томкат
>>1014332 Ебать дебил. Уж на что я не любитель особо спринг бутов (когда их используют вообще везде), но отмочить такую пушку это полный пиздец.
Ты, псина ебаная, понимаешь разницу между каким-нибудь микросервисом, делающим ку по запросу, чуть большим проектиком, который просто нужен здесь и сейчас, и тысячей стейтлес серверов, запущенных на аппсерверах и всем говне в каком-нибудь банкнейм?
Ты понимаешь в чем смысл концепта convention over configuration и когда он подходит, а когда нет? Спринг бут, конечно, не рельсы и не говнорувирельсы (шутка), но сокращает суммарное время выката продукта.
> Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
А теперь признай мою правоту, поинт этого анона >>1014052, свою неправоту и поссы себе в рот, если у тебя есть честь.
Вопрос по Maven и InteliJ IDEA: Подскажите, пожалуйста, почему у меня в файле manifest указана входная точка (класс Runner), но, при билде проекта, в манифесте отсутствует входная точка (скрин в виртуалке). Приходится вручную прописывать недостающий Main-Class и программа начинает работать, но это адски неудобно каждый раз лезть в jar.
>>1014337 Забей, многие ЕЕ сектанты дальше своего носа не видят. Бтв, мы с приятелем как-то обсуждали бут и он постоянно упоминал, что бут - некст левел грувирельсов. Вот уж хз насколько это правда.
>>1012692 (OP) Есть три типа сотрудников: employee, manager и sales. Информация о них хранится в базе. Для каждого сотрудника указан id его позиции (то есть, employee и т.д.)
Классы employee, manager и sales происходят от общего класса worker. Мне нужно делать запрос к БД по id сотрудника и в зависимости от id его позиции создавать объект нужного класса: employee, manager или же sales. Как это сделать в ООП масштабируемо, без лишнего кода и ветвлений?
Какие-то сервлеты, какие-то томкаты и webapp'ы. Нахуй это все нужно и как это должно работать, если тот удаленный сервер все равно шлет какую-то инфу, которую можно распарсить в одну строку?
>>1015046 > employee, manager и sales Менеджеры и продажники не сотрудники, гоните их, издевайтесь! > Классы employee, manager и sales происходят от общего класса worker Всрался с наименованием суперкласса и чайлда employee. > Как это сделать Класс employee со всеми сотрудниками. Маня к Оле к таблице с типами отделов. Там же можно ссылку на себя для иерархии отделов. Если сотрудники могут двоедушничать и быть одновременно во многих отделах, то Маня к Мане. И тебе уже нахуй не всралось наследование.
Если у тебя сотрудники разных отделов имеют сильно разные поля, то общая таблица employee и к ней Оля к Оле сотрудников конкретных отделов, обладающих своими характеристиками. Но это лучше для документов ложится.
>>1015191 Чтобы не было лишней ебли при применении ORM, не нужно забивать хуище на архитектуру и чтобы была нормальная диаграмма классов, а не удивительные истории про рабочих от которых наследуются сотрудники, менеджеры и продажники.
>>1015080 >Класс employee со всеми сотрудниками. Маня к Оле к таблице с типами отделов Три таблицы для каждого типа сотрудников? И как в этом случае задать, кто у кого является подчиненным?
>>1015388 Так дело в том, что описанная тем мудилой >>1015046 архитектура БД не соответствует ни одному из предлагаемых JPA (мы же о нём) типов маппинга. Так что это НЕ решается одной аннотацией.
>>1015412 Как нет, если да. Это же стандартный "вся хуйня в одной таблице" паттерн. Под ид должности он имел ввиду не запись в другой таблице, а строковой идентификатор. Вроде бы.
Тривиальную задачу решить не можете, архитекторы хуевы, бэкендеры недоделанные. >>1015453 Это не вся хуйня в одной таблица, а по таблице на сущность, упоротый. А сущность здесь пока одна - Employee. > а строковой идентификатор А потом под должности (не роли) бизнес захочет накрутить функционал и придется либо делать новую структуру таблиц и мигрировать со старой, либо делать дикие костыли в приложении. >>1015422 Тут иначе вопрос ставить надо, нахуя тут наследование. Если оно ДЕЙСТВИТЕЛЬНО нужно, то воспользоваться стандартным решением выше в постах.
>>1015477 >Это не вся хуйня в одной таблица, а по таблице на сущность, упоротый. А сущность здесь пока одна - Employee. Это вся хуйня в одной таблице. И сущностей там N - managers, sales и тд.
>А потом под должности (не роли) бизнес захочет накрутить функционал и придется либо делать новую структуру таблиц и мигрировать со старой, либо делать дикие костыли в приложении. И добавляешь дальше себе поля в эту таблицу. Какая проблема?
Такое ощущение, что вы никогда не маппили классовые иерархии на таблицы, пиздец. А потом им хибернейт не нравится.
>>1015510 > Это вся хуйня в одной таблице. И сущностей там N - managers, sales и тд. А хуй тебе. Пока не сказано иначе (а именно разные поля у разных сотрудников), сущностей там три. Employee, Department и Position. Последнюю можно дополнительно использовать как развязочную таблицу между Employee и Department, чтобы можно было занимать несколько должностей в разных департаментах. > И добавляешь дальше себе поля в эту таблицу. Какая проблема? Угу, а потом еще и еще. И вместо таблицы сотрудников получается малопонятная хуита в которую напихали сто хуев, гондонов, смазку и лука мешок. Делать нормально надо сразу (чтобы нормально было). > Такое ощущение, что вы никогда не маппили классовые иерархии Пока никакое наследование не нужно. А если нужно, то 50 постов назад было написано как сделать.
>>1015523 >А если нужно, то 50 постов назад было написано как сделать. Как? Employee с базовыми методами расчета зарплаты и от него наследуются Manager и Sales, которые вызывают метод salary класса Employee и прибавляют к результату число, зависящее от количества подчиненных у себя?
>>1015590 >Employee с базовыми методами расчета зарплаты Забудь про наследование и активрекордс в энтерпрайзе. Отдельный сервис для расчета зарплаты, в процедурном стиле. Единственное, для чего может понадобиться наследование - это общие поля
>>1015590 Нахуй логику в доменных объектах. > метод salary Косячное название метода. > которые вызывают метод salary класса Employee и прибавляют к результату число, зависящее от количества подчиненных у себя Делаешь сервис расчета зарплаты. В реализации сервис вызываешь стратегию расчета зарплаты для должности /должности и департамента). В реализации стратегии уже хуячишь ту логику, которую хочешь - например "общий" EmployeeSalaryCalculator который юзаешь композицией или наследованием (здесь уже можно) от которого Manager/SalesSalaryCalculator. В конкретных калькуляторах хуячишь логику по расчету зп для конкретных должностей. Алсо вместо стратегии можно использовать декоратор - тоже подойдет. И все это добро просто вызываешь в реализации сервиса расчета зп через calculate(Employee employee).
>>1015614 Класс и статический метод. Или аннотация @Service в случае спринга и просто метод. На первое время не усложняй кучей паттернов. Сделай просто условными операторами. Как код покажется страшным - будешь постепенно рефакторить
>>1015609 >Делаешь сервис расчета зарплаты. В реализации сервис вызываешь стратегию расчета зарплаты для должности /должности и департамента). В реализации стратегии уже хуячишь ту логику, которую хочешь - например "общий" EmployeeSalaryCalculator который юзаешь композицией или наследованием
Уточню алгоритм расчета зарплаты. ЗП для Employee расчитывается просто, и формула расчета здесь не важна. ЗП для Manager и Sales расчитывается как маленький коэффициент (0.004 и 0.005), умноженный на суммарную зарплату всех его подчиненных. То есть для расчета ЗП, например, Manager, нужно вычислить его ЗП без прибавки, а затем подсчитать ЗП всех его подчиненных. Можно хранить в классе Manager список из всех его подчиненных, и у каждого вызвать метод вычисления ЗП при суммировании.
Итого расчет ЗП для Manager состоит из двух этапов: 1) Расчет ЗП без прибавки как для Employee 2) Расчет прибавки за подчиненных
Выглядит как вызов виртуального метода базового класса, который вычисляет ЗП без прибавки, и добавление к нему экстра ЗП от подчиненных. То есть в виртуальном методе расчета ЗП Manager вызывается виртуальный метод базового класса, а затем добавляется прибавка.
>>1015786 Разжевано же все, прочитай еще. Чуть-чуть додумать надо. > Можно хранить в классе Manager список из всех его подчиненных, и у каждого вызвать метод вычисления ЗП при суммировании. Тебе уже сказано, что нельзя хранить бизнес-логику в доменных объектах. Сейчас это расчет зарплаты, потом сосание хуев, потом посадка на бутылку и в результате у тебя половина бизнес-логики распихана по доменным сущностям, связность туже, чем анус у интернет-педофила при поимке господином майором, протестировать можно только общими интеграционными тестами на функционал, все объединено малопонятными иерархиями наследования и в итоге придется все переписывать. > Итого расчет ЗП для Manager состоит из двух этапов: > 1) Расчет ЗП без прибавки как для Employee > 2) Расчет прибавки за подчиненных В реализации стратегии (за интерфейсом, само собой) ManagerSalaryCalculator расчитываешь зп как тебе нужно (без вызова EmployeeSalaryCalculator, если он тебе не нужен), потом инициализируешь lazy-коллекцию подчиненных (или прямо вытаскиваешь из бд, если без орм) и для каждого пользователя вызываешь завайренный сервис расчета зп (никаких, блять, "базовых" методов, в жопу засунь себе свое наследование). В результате для каждого подчиненного подсчитается зп по всем правилам и отдастся сумму, которую ты обработаешь и сможешь вычислить зарплату менеджера. Только не проебись, если вдруг менеджер сам себе подчиненный, иначе SO, и что у подчиненных тоже могут быть свои подчиненные и это не факт, что должно отображаться по ЗП у суперменеджера - тут в зависимости от бизнес-правил.
>>1015806 Стратегия охуенная и похожа на наследование с виртуальными методами. Но нахуя тогда классы сотрудников, если можно просто передать их id в стратегию? Что хранить в объектах сотрудников?
>>1015846 > Но нахуя тогда классы сотрудников Незачем, это ты их придумал, не подумав головой. > то хранить в объектах сотрудников Сотрудников, блять, не поверишь. И объекты, имеющие к ним отношение - читай выше. > передать их id Лишние запросы в БД, нужно всего сотрудника передавать.
Разжевано уже все до нельзя. Разбери послания анончиков к тебе по частям и сделай соответствующие выводы для себя.
>>1016031 Мне в линкедине предлагали хуярить какой-то браузер на основе хромиума для ведра, но это не совсем джава, и скорее всего большей частью было бы ведроидспецифик дерьмо, если не хуже.
>>1016197 В Котлине он тоже есть. И в Хаскелле. И в Свифте. Но джаба петухи будут как всегда кричать НЕ НУЖНО, до тех пор пока не выйдет JDK 14: тогда они резко поменяют мнение и скажут, что рады нововведению.
>>1016196 Грин треды - это про взаимодействие ос и виртуальной машины. В го никакой виртуальной машины нет. Так что, это разные вещи. Хоть и во многом похожие.
>>1016410 Суть метода состоит в том, чтобы скачать файл с некоторого URL в указанный File. Передавать OutputStream, конечно, можно, но противоречит логике.
>>1016415 Ты уж определись, то у тебя только файл передаётся, то можно outputstream. Метод твой или нет, нихуя не понятно. Если твой, то делается два метода do(OutputStream stream){ //logic } do(File file) { // для удобства do(new FileOutputStream(file)); }
>>1016419 Метод мой. OutputStream передавать не хотелось, ибо ломать простой код ради пары тестов - идея не очень. До перегруженного метода что-то не додумался, спасибо.
>>1016777 Date randomDate(Date first, Date second, Random random) { //second >= first final long randomUtc = (long) random.nextGaussian() * (second.getTime() - first.getTime()) + first.getTime(); return new Date(randomUtc) }
>>1012692 (OP) классический нуфег 29лвл никогда не складывал 2+2 репортинг ин дайте статейку какую-нить или мож учебник есть какой-нить который бы разжевал принцип объектности и классов на пальцах. из того что я понял могу в кратце рассказать. класс - это самая главная абстракция в жава он же является объектом. класс - это что-то типо ящика, и вообще вся структура кода жава это одна большая сеть взаимодействия дохулиарда ящиков с главным ящиком. ну и плюс все действия или признаки которые можно совершать над классами. так?
>>1017442 >классический нуфег 29лвл Основной принцип объектности — жить за счёт родителей тех, кого нанимаешь на работу. Твоё время безнадёжно упущено.
>>1017442 Все публикуемые в массовых афишах вакансии, публикуются либо юнцами, которым чудится, от избытка дури в голове, что они способны создать новый Apple и изменить мир, либо вам пишут фёклы из HR отделов крупных компаний, не для того чтоб кого-то нанять, а для того чтоб создать видимость деятельности. Профей для реальной работы нанимают по знакомству, по рекомендациям, или по их публичным рекламным профилям. С профессионалами разговаривают о деле, а не о патирнях оопе или о the extar miles.
>>1017495 http://rabota.yandex.ru вон там -->> Если ты сам не можешь статистику получить, какой из тебя погромист вооще. Твоя работа вычисления. Что ж ты даже запрос к поисковой машине отправить не можеш. ЗЛЫЕ ВЫ. УЙДУ Я ОТ ВАС.
Если кузнецу сказать делать кольчугу и дать шекелей то он возвращает кольчугу. Если сыну кузница сказать делать кольчугу и дать шекелей то он возвращает кольчугу. Если сыну кузница сказать делать кольчугу и дать шекелей со стразами то он возвращает кольчугу со стразами. Когда кузнец умер то его подменил сын и так же как отец в обмен на шекели возвращал кольчугу. А то что сын пидор и кольчуги у него с прорезями это уже особенности реализации.
>>1017499 Там расписаны на пальцах все принципы ООП. Если ты ничего не понял, то программирование просто не твое.
>>1017501 Репозиторий работает с сущностями. Дао работает с чем угодно и как угодно в бд. В реальном мире на это часто забивают хуй и пишут те методы, которые нужны.
>>1017511 >Постарайся исправиться в будущем. Вот у тебя скажем Колхозница, Блядина, Шкура и Гопиха. Это наследование, чо. То, что у одной из них диплом Российского Государственного Гуманитарного Университета — это композицiя, чо. А вот, к примеру, Женщина — это уже совсем другое дело. Это интерфейс. Тут и резиновая женщина — тоже Женщина. Вот и интерфейс совпадает, чо. Пiчальна, чо.
>>1017514 Ось у тебе скажімо колгоспниця, блядіна, Шкура та Гопіха. Це спадкування, чо. Те, що у одній з них диплом Російського Державного Гуманітарного Університету - це композіцiя, чо. А ось, наприклад, Жінка - це вже зовсім інша справа. Це інтерфейс. Тут і гумова жінка - теж Жінка. Ось і інтерфейс збігається, чо. Пiчальна, чо.
Колхозница, блядина, шкура и гопниха. Все реализуют интейфейс - Женщина. У них есть метод - очаровать_куна(String кун_нейм). И этот метод будет выполняться по-своему каждой бабой. Блядина - соблазнит, гопниха доебется, колхозница - молочком угостит, шкура - помощи попросит. И, если заполнить дом объектами интерфейса, то при встрече с куном, каждая из них будет его соблазнять используя свой метод.
А диплом - это не композиция. Так-как при композиции объект может существовать лишь в составе другого объекта. Жопа - это композиция, например. А диплом - агрегация. Так-как дипломом может воспользоваться кто-то и после смерти дипломированного специалиста.
>>1017596 Всем серьезным дядям похуй на отличие композиции и агрегации. Отношение has называется композиция и всем похуй объект по референсу поля будет существовать только в рамках объекта или это ссылка на синглтон из контейнера.
>>1017901 Ты хотел сказать YobaFactory.getDefaultFactory().newInstance(YobaFactoryConfigFactory.getInstance().newInstance())? Пережитки прошлого. От xml апи каждый раз блюю. И не забудь по три чект эксепшна на каждый метод.
>>1017932 Для создания йобы нужны ехидный блинчик, жёлтая краска, черные глаза и сияющая улыбка. Чем тащить это говно в каждый класс, можно сделать фабрику, которая просто будет давать йобу.
>>1018016 Ну и хули ты в билдер засунешь, пидор, если ехидный блинчик не просто new EhidnyBlinchik(), а нужно доставать из внешнего источника - транзакционной пекарни ехидных блинчиков, к которой есть соответствующий датасорс и адаптер?
Будешь в каждый класс вайрить адаптер и полученный блинчик запихивать в пекущуюся йобу? SRP тебе по ебалу через сто хуев.
Вкатываюсь в задачки неплохо, мотивированно. Но вопрос, стоит ли вкатываться в open source на git по практике java, и, если да, какие подойдут под джунов?
Допустим есть окно, всю площадь которого занимает некий список. После выбора элемента в списке я хочу, чтобы в этом же окне список исчез и на этом месте появился какой-то текст. Как правильно делать эти появления и исчезновения? Просто фигачить setVisible(true/false) ?
>>1019501 >nanohttpd Спасибо. Ты сам его использовал? Настораживает отсутствие активности последние 6 месяцев. Удивительно, что его форкнули 1000 раз, наверное что-то интересное в нем есть.
Догорой кукарек, тот анон ни разу не упомянул слово "класс". Твоё кукарекание ничем не обусловлено единственная возможная причина - жажда нуба, спешащего поделиться открытием что в - общем, отвратительно, если не сопровождается предупреждением
Делаю пет-проект, фронт - nagular, бэк - java spring. Как лучше организовать это всё на гитхабе? Два отдельных projectname-frond, projectname-back или всё в один репозиторий пихать? Если в один, то как организовать директории лучше? Понятно, что можно хот как сделать, но как грамотнее будет?
>>1019742 Вообще именно в такого размера проектах - дело вкуса. У меня товарищ любит все в куче, js код генерирует в jsp и все такое. Я бы выбрал отдельные репы.
есть кто шарит в jsf (библиотека primeFaces но не обязательно)? нужно сделать так, что бы иконка узла дерева изменилась на промежуток времени между нажатием на развертывание узла и самим развертыванием проще говоря нужно сделать иконку загрузки
Я установил, добавил их кнопочку в редакторе и выставил параметр RAISED. Сама кнопочка работает, но выглядит как дерьмо, поскольку свойство RAISED не применяется. Кнопка должна выглядеть как на второй пикче. Просто сделайте скрин, как такая кнопка выглядит у вас, пожалуйста.
Сап, анон. Изучаю JavaFx, в общем суть такова. На форме есть куча EditText полей с подписями, больше 10. Нормально ли будет сделать кастомный ListView, и его уже подключать с ObservableList и прочим?
Не нашел подходящий тред. У меня линукс арч , установил значит я tomcat8 по гайду с арчвики. Прописал пользователей , но когда конекчусь через браузер в http://localhost:8080/manager/status и ввожу пароль . Ноль внимания , будто вводиться не правильный логин и пароль. Ананас подскажи в какую сторону копать , с меня горы бесплатного кофе и печенья.
Посаны, хочу задеплоить свое приложение, купил на digitalocean самый дешевый дроплет за $5, там 512 мб оперативки и джява не стартует, потому что ей нужно минимум 700. Такие дела.
>>1024703 Спасибо. Замапить мапу мне показалось чересчур тафтологией. На счёт невозможности использовать в запросах к сожалению не вариант. Потому что в таком случае придётся ещё раз конвертировать и прописывать по новой все руками. Т.е. как альтернатива - можно изначально во время загрузки из базы разными запросами заполнять имеющуюся мапу, но это опять же костыли получатся. Да, ещё такое дело: в мапе ключ и лист значений это данные лежащие в одной таблице что немного усугубляет проблему. >>1024732 С радостью бы. Но дело обстоит так: вот тебе легаси дерьмо, мы хотим что бы тут все было высокотехнологично и с jpa , что бы крАсивА и что бы не зависить от конкретной реализации.Но все таки давай пока на хибернейте.
>>1024798 > мы хотим что бы тут все было высокотехнологично и с jpa , что бы крАсивА и что бы не зависить от конкретной реализации именно об этом я и писал выше. Каргокульт и вера в очередную серебрянную пулю. Этот хибернейт пихают в каждую дырку, веря что это стильно модно молодежно и эффективно
видимо всё дело в незнании современными "программистами" sql. Они думают что это должно быть сгенерировано
We initially wrote an app using JPA ever since the day it went into production we have regretted it. The amount of database calls being made by the ORM were astronomical, so we have now started the process of piece-meal rewriting the application using good ol' fashioned JDBC utilizing Spring's JDBC helper classes. The pitfalls of starting with an ORM is that we spent a good deal of time learning JPA and at the end of the day we have to replace it with JDBC so our application can be more scalable without adding 3 other nodes to our Oracle RAC. So if you balance it out, the control and precision of JDBC was worth the extra lines of code you have to write. Also, most people do not understand that SQL is not something that can be generated and expected to perform. It is something that has to be written and tweaked to gain maximium performance.
>>1024871 Не надо гланды через жопу удалять потому что. у каждой тулзы есть своя область применения. хибер - это орм, она создана для превозмогания нудных CRUD операций. Если нужно аналитику фигачить, то это в другое окошко.
>>1013164 >Ты еблан? Или ты из тех кто данные инкапсулирует static функциями и ебом .h/.с файлов? Всегда проигрываю с долбоебов, которые свое ООП-говно пытаются применить к Си.
пиндосы со мной согласныпиндосы со мной согласны14/07/17 Птн 18:04:58#330№1025001
Speaking as someone who spent quite a bit of time working with JPA (Java Persistence API, basically the standardized ORM API for Java/J2EE/EJB), which includes Hibernate, EclipseLink, Toplink, OpenJPA and others, I'll share some of my observations.
1) ORMs are not fast. They can be adequate and most of the time adequate is OK but in a high-volume low-latency environment they're a no-no; 2) In general purpose programming languages like Java and C# you need an awful lot of magic to make them work (eg load-time weaving in Java, instrumentation, etc); 3) When using an ORM, rather than getting further from SQL (which seems to be the intent), you'll be amazed how much time you spend tweaking XML and/or annotations/attributes to get your ORM to generate performant SQL; 4) For complex queries, there really is no substitute. Like in JPA there are some queries that simply aren't possible that are in raw SQL and when you have to use raw SQL in JPA it's not pretty (C#/.Net at least has dynamic types--var--which is a lot nicer than an Object array); 5) There are an awful lot of "gotchas" when using ORMs. This includes unintended or unexpected behavior, the fact that you have to build in the capability to do SQL updates to your database (by using refresh() in JPA or similar methods because JPA by default caches everything so it won't catch a direct database update--running direct SQL updates is a common production support activity); 6) The object-relational mismatch is always going to cause problems.
With any such problem there is a tradeoff between complexity and completeness of the abstraction. At times I felt JPA went too far and hit a real law of diminishing returns where the complexity hit wasn't justified by the abstraction. There's another problem which takes a bit more explanation.
The traditional model for a Web application is to have a persistence layer and a presentation layer (possibly with a services or other layers in between but these are the important two for this discussion). ORMs force a rigid view from your persistence layer up to the presentation layer (ie your entities).
One of the criticisms of more raw SQL methods is that you end up with all these VOs (value objects) or DTOs (data transfer objects) that are used by simply one query. This is touted as an advantage of ORMs because you get rid of that.
Thing is those problems don't go away with ORMs, they simply move up to the presentation layer. Instead of creating VOs/DTOs for queries, you create custom presentation objects, typically one for every view. How is this better? IMHO it isn't.
I've written about this in ORM or SQL: Are we there yet?.
My persistence technology of choice (in Java) these days is ibatis. It's a pretty thin wrapper around SQL that does 90%+ of what JPA can do (it can even do lazy-loading of relationships although its not well-documented) but with far less overhead (in terms of complexity and actual code).
This came up last year in a GWT application I was writing. Lots of translation from EclipseLink to presentation objects in the service implementation. If we were using ibatis it would've been far simpler to create the appropriate objects with ibatis and then pass them all the way up and down the stack. Some purists might argue this is Bad™. Maybe so (in theory) but I tell you what: it would've led to simpler code, a simpler stack and more productivity.
>>1024976 ну ок, может я и долбоеб. Но у меня кроме программирования еще и другие заботы есть. А писать что-то серьезное на языке, где толком то тип создать собственный нельзя, а ошибки реализованы возвращающим значением из функции по мне так дело неблагодарное
>>1013055 >Каждый раз садясь писать на си получаю микроинфаркт и требуется время для привыкания, потому что я веб макак, а по совместительству тупое хуйло.
Красноглазые, мне нужна ваша помощь. Переименовал, значит, я пакет. И в итоге все импорты слетели и теперь классы из этого пакета в коде через имя пакета (com.hui.govno.MyGovnoClass).
Вопрос - как можно запилить обратно человеческие краткие импорты, не перелопачивая все ручками?
>>1025687 Ты мне сейчас посоветовал как раз то, что уже было сделано. Пакет-то и был переименован таким способом. И распидорасило. Работает все, но нечитаемый пиздец стал. 10 000 строк кода ручками удалять и импортировать самому лень.
Вышел из завязки с жавой, с 2014 года длилась, попизжу тут немного:
- идея - сраное говнище, блядь, как этой ёбанью можно пользоваться? Пидарасы, блядь, пассивные. Хуй с ним, дрочу из под vs code - тоже хуита, но не такой четерыждеблядский перепиздец как с идеей - мавен - всё так же охуенен - градл - вы чо там, совсем пизданулись с этой хуйней? - кастомные класслоадеры я ебал рисовать, как же с этим просто в сисярпе - где для ёбаной жавы нормальная объектная БД не за over 9000 денег? Опять самому рисовать чтоль? Ну хули, немного рефлексии и hsql, ок.
>>1026172 Паттерны не проходили, пнятненько. >>1026174 Ебать пиздец. Я правильно понимаю, что некоторые вкатывающиеся кукаретики пытаются кукарекать, что ORM не нужно / прямой SQL не нужен? Вообще охуеть.
>>1026200 мне сложно представить, где нужно ORM, и где оно выигрывает. Может какие-нибудь гостевухи разве что. Микросервисы - проще пару запросов написать, чем ебаться с подключением хибера и мапить объекты
Ох уж это можнозделоть. Жавамразота как обычно - пидорасит дао, мапперы и прочую ебень для элементарных вещей, ну или ебется с хибернейтом. Крудошлепы ёбаные.
>>1026223 > мне сложно представить, где нужно ORM, и где оно выигрывает. Это потому что ты войтивайти. Попытайся подумоть о схеме с нормально спроектированной доменной моделью, крудошлепстве и сохранении / обновлении графа объектов, а также как это влияет на разработку. > Микросервисы - проще пару запросов написать Если уж нужно "проще", то всегда есть грельсы. Алсо пара запросов быстро становится не парой. > чем ебаться с подключением хибера и мапить объекты Ебать дебил. >>1026224 Представься, мразь. >>1026227 Ты настолько долбоеб, что я даже поберегу мочу ссать на тебя.
>>1026297 >Попытайся подумоть о схеме с нормально спроектированной доменной моделью Попытался. Такого не бывает. Ну может только в гостевухе васи пупкина. С чего ты вообще решил, что модель хранения данных должна совпадать с объектами в твоей апликухе? Зачем ты пытаешься отдать на откуп автогенератору самую ответственную и критическую часть? Чудес не бывает. Как только оно выйдет в продакшен, тебе придется переписывать это на запросы >>1024945
>Если уж нужно "проще", то всегда есть грельсы Готов переходить на другую платформу, но только не марать руки грязным sql. Ведь ты его не знаешь. Ты знаешь только хибер. Отсюда такая страть пихать его в каждую дурку, ибо иначе ты не умеешь
>>1026307 > Попытался. Такого не бывает. Такого не бывает в параше из полтора джуна и отрицательного числа адекватных архитекторов. > С чего ты вообще решил, что модель хранения данных должна совпадать с объектами в твоей апликухе? Потому что БД хранит бизнес-сущности, разработанные для выполнения задач приложением, duh? И вот только не надо сейчас, что базы данных живут дольше приложений. Это так, но это не значит, что базы данных нужны сами по себе, а не для выполнения задач приложениями. > автогенератору Я вот прямо сейчас тебе еще раз в рот нассу за автогенератор. > Чудес не бывает. Не бывает. Просто не стоит думать, что ORM это сильвер буллет, годящийся для решения любых задач и решать, что ORM не нужен, стоит только натолкнуться на кейс, где ORM не подходит. > Как только оно выйдет в продакшен, тебе придется переписывать это на запросы >>1024945 Хуйню спизданул. ORM используются повсеместно, в том числе и в проектах более чем 10-летнего возраста. Ты ведь понимаешь, что это не от балды, как у тебя, заявление? > The amount of database calls being made by the ORM were astronomical А вот это типичный исход тех, кто решает, что ORM это сильвер буллет и поэтому SQL знать не надо и не думает, что это тот же SQL в конце концов. ORM это нихуя не избавление от SQL. Наоборот, он требует понимать SQL ничуть не меньше и не заставлять делать реализацию JPA веселые фулл сканы по неидексированному говну и ленивые подзапросы на каждый чих.
Если же этому не следовать, то исход как выше - пиздец с производительностью и переписывание на SQL с горящей жопой. > Готов переходить на другую платформу Ты так говоришь, будто одна платформа решает все проблемы. Для разных задач разные инструменты. И что один человек не может использовать разные инструменты для решения разных задач. > Ведь ты его не знаешь. Ты знаешь только хибер. Ин факт, я больше знаю SQL, нежели Hibernate. > Отсюда такая страть пихать его в каждую дурку, ибо иначе ты не умеешь Ебать ты долбоеб с маняфантазиями. Сам хуйню придумал и сам же ее обоссывает.
Поднимись по цепочке ответов, баран, и увидишь, что я обоссываю вкатывающихся кукаретиков, считающих что ORM НИНУЖНО, равно как и SQL НИНУЖНО. Нужно и то, и то. Причем даже в одних проектах.
Разбери мое послание к тебе по частям, постарайся проанализировать и сделать соответствующие выводы для себя. И больше не нести такую хуйню.
>>1026307 >Чудес не бывает. Как только оно выйдет в продакшен, тебе придется переписывать это на запросы
Нет. У меня уже есть успешный опыт вывода самописной объектной модели (поверх TimesTen сделол) в продакшн. Да, лоадер пришлось нахуярить, да, классы автогенерировались. Но работает же заебись.
Анонасы, поясните за спринг? Почему он так популярен? Это же по сути гигантская куча говноабстракций ради абстракций. Хуева туча магии и программирование на аннотациях и xml, противоречие принципам yagni и kiss. Ни из контор контор жава-титанов типа твиттера, линкедина, итд не использует эту хуйню, ну разве что нетфликс только и говноьырпрайзы. Чому кодеры добровольно едят это говно?
>>1026360 А какие альтернативы? Java EE умерла. Если еще убрать и спринг, то будет зоопарк уровня дистрибутивов линукса, мешанина из кучи библиотек, собранная и работающая через одно место. Оно тебе надо, ебаться с васяносборками?
"Q: Хули все книги на английском? A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш? Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе."
Всё, пиздец, этого хватило, полный дегенерат. Закрыл его гитхаб к хуям подальше.
Говносоветы от малолетних долбоёбов с членом на лбу не нужны. Зря только время потерял.
Закрываю двачный Java-тред вкладку, счастливо оставаться в этом уёбище! Много добьётесь, пфффф-ахахахахаха, МУАХАХАХАХА-БВАХАХАХАХАХАХАХАХАХАХАХА!!!!!!!!!!!
Задача такая. Есть приложение Spring уже скомпилированное. Нужно к этому приложению подключить свою jar библиотеку со своими контроллерами и чтобы в этом контроллере можно было использовать общие классы/объекты из основного окружения. Доступа к исходникам нет (только если декомпилировать).
Долбоёб ОП ещё и литературу дерьмовую советует изучать. Свой недопуть небось описывает, а теперь неудачник дни и ночи на дваче просиживает, ох, же лооол.
>>1026360 >Это же по сути гигантская куча говноабстракций ради абстракций Неосиляторы подъехали, лол. Называешь сейчас хоть одну лишнюю абстракцию в spring core или идёшь нахуй.
>>1026403 Забыл их в конфиг прописать или подложить в верный пакет для компонент скана.
>>1026416 Не то что ты, успешный выпускник джавараша, да?
>>1026360 ну это вольная трактовка стандартов JavaEE. Нужно чтобы каждый раз не велосипедить сервер например. Не заниматься открытием и закрытием сокетов, не велосипедить транзакции
>>1026435 В каком месте это трактова стандартов JavaEE - одному Аллаху известно. Это может быть альтернатива EE, может быть дополнение, но уж точно не реализация.
>>1026311 > ORM это нихуя не избавление от SQL. Наоборот, он требует понимать SQL ничуть не меньше и не заставлять делать реализацию JPA веселые фулл сканы по неидексированному говну и ленивые подзапросы на каждый чих. >Если же этому не следовать, то исход как выше - пиздец с производительностью и переписывание на SQL с горящей жопой. Тогда зачем он вообще нужен? Дополнительные грабли, дополнительные костыли, про которые надо помнить и которые надо обходить. Выгода? Вместо СТРАШНЫХ sql запросов появляются не менее страшные hql запросы
>>1026442 >СТРАШНЫХ Кто-то тебе про это написал? Сам придумал, сам поспорил. Молодец, хули. Если у тебя 10 join-ов в запросе, то используй plain sql. Если у тебя CRUD - используй ORM и spring data. Теперь уёбывай, а то заебали узколобые, как ты, тред засирать.
Хочу создавать объекты типо new Kokoko().addShit1(true).AddShit2(false), new Kokoko().AddShit3("kokoko").AddShit2 и т.д. применяя необходимые функции, чтобы не прописывать все вручную в конструкторе. Из того, что видел, похоже чем-то на реактивщину, такое вообще применяется, или можно как-то проще сделать?
>>1026514 Ну для такой хуйни етсь билдеры, но некоторые та ки делают. По сути ты в сеттере просто добавляешь return this В ведре так сделан Intent Зачем? -Хуй знает
>>1026363 Это и есть самый подозрительный момент, ЕЕ - монструозная хуйня с дефицитом здравого смысла. Казалось бы лучше не наступать на те же грабли, сменить парадигму, следовать простой и рабочей идее "каждой задаче - свой инструмент", unix-way, епт. Но нет, люди наевшись моснтруозного ЕЕ-говна, начали двигать уже новое сеженькое говнецо. Почти ни в одной другой популярной экосистеме нет такой глобальной ебалы как спринг для явы. Даже соседи по jvm, скалисты избегают его, потому-что это пиздец полный, завязываться на такую хероту.
>>1026421 Видишь ли в чём дело, чтобы понять что перед тобой говно, не нужно его пробовать, ну это разумеется если у тебя есть мозг и задатки какого-то мышления. Чтобы понять что спринг не нужен и говно, достаточно просто взглянуть на это, взглянуть на ебенейший код и понаблюдать за макаками, которые без спринга уже посрать не могут - им для этого нужен конфиг и спкциальный бин. которые потом сами же не могут понять, где взорвалась их приложуха, потому-что кто-то когда-то что-то заинжектил и уволился. Он создает больше проблем, чем профита.
>>1026599 братишка, это конечно дело каждого как ему удобней, но имхо такой синтаксический сахар это уже чересчур. так и до гомоебли недалеко. в команде нашлись умники, насочинявшие таких же классов. проблема в том, что функция должна делать только одну вещь. а если у тебя сеттер еще что-то возвращает, то создается впечатление, что имеешь дело с поехавшим.
>>1026603 шизик, хватит воевать с ветряными мельницами. спринг - это всего лишь DI. если ты нафигачил сдуру кучу депенденси и теперь не можешь с ними совладать, то это только твои проблемы. или мавен для тебя тоже шайтан-машина? ммм?
>>1028080 Spring, Spring Data JPA, Spring Security. Пару раз делал монолит там конфиг Spring Security очень простой(UserDetailService имплементил и збс) и из коробки. А с рестом не все так однозначно.
>>1028084 OAuth, если нужно/можно заходить через социалочки. JWT, если стильно, модно, молодежно и stateless. Просто bearer token, если нужно statefull.
>>1028093 Больше всего привлекает OAuth, но я просто охуеваю с тонны конфигов, если доставишь пример конфига на xml(если нет, сойдет и java based) с меня сотни нефти.
>>1028148 Во-первых то-то испокон веков сеттеры были void-методами, чтобы объекты возвращать. Во-вторых, какая может быть неудача у сеттера, мать его, ты логику что ли в сеттер пихаешь, наркоман? В-третьих, как уже справедливо отметили, флюент-паттерн действительно можно реализовать, возвращая объект из сеттера, но это блядь исключительно на усмотрение программиста и/или конторы, где этот паттерн или используют для скорости разработки, или не используют для улучшения читаемости. за мат извени
Из /gd отправили сюда. Сап. Хочу нырнуть в зяббу, но не наохжу в себе сил на изучение чего-то выше классов. По ситу, я не улавливаю смысл применения и такого усложнения. Вот и мотивации нет. Конечная цель - геймдев, но я понимаю, что до него еще оче много ползти. Вдохновляют такие проекты как Майнкрафт. Есть ли смысл пилить что-то свое? То ли направление - жава? Круче ресурсожорного майкрафта годное что-нибудь выходило на этой платформе? Реквестирую книги жава-геймдева для бабушек и даунов
>>1028165 >Во-первых то-то испокон веков сеттеры Похуй на историю >Во-вторых, какая может быть неудача у сеттера Например, устанавливаемое значение должно быть числом от одного до десяти, а в сеттер 100 пихают. Для этого сеттер и делают, чтобы проверки выполнять разные, иначе можно было бы просто сделать public и без сеттеров.
>>1028216 >Например, устанавливаемое значение должно быть числом от одного до десяти, а в сеттер 100 пихают. Тогда нужно кидать IllegalArgumentException, а не запутывать всех null-ами.
Я так понимаю, сеттеры это эхо увлечения паттерном ActiveRecord. Но сейчас эта практика запихивания бизнес-логики в объект признана порочной. Поэтому логика с сеттерах не нужна
>>1028280 бизнес-логика отрабатывает и просто вставляет значения в объекты. Через сеттеры или паблик поля - без разницы. Главное чтобы в сеттерах небыло бизнес-логики
>>1028304 Насколько я знаю, в гейм-деве в основном используют C++, так как он более быстрый и даёт возможность напрямую управлять памятью. Java в этом плане не очень.
>>1028317 >так как он более быстрый нет >даёт возможность напрямую управлять памятью любишь сегфолты и утечки памяти? >Java в этом плане не очень. Слава богам
К нам в отдел разработки пришёл новый сотрудник. Нужно сказать, что у нас в отделе работают почтенные крестогоспода. Новичка посадили за компьютер, но не успели даже дать задание, как он начал кодить. Тимлид из любопытства подошёл посмотреть, что он там написал. В течении секунд тридцати он побледнел, затем посинел, затем покраснел, а потом трясущимся от нескрываемого гнева голосом сказал: - Это же абстрактная фабрика, твою мать! На чём ты кодил до этого? - На Джаве. - Жабопидор! - в один голос заорали все 20 человек. - Жабопидор! Жабопидор! Жабопидор! Кто-то включил сирену. Над дверьми замигали красные лампочки тревоги. На окнах мгновенно сомкнулись плотные жалюзи. В офисе одновременно бывает два отдела человек по сорок. На обеде вся эта толпа собирается на первом этаже, где яблоку негде упасть. А поэтому, как охранники ни пытались вырвать жабопидора из рук разъяренной толпы, им это не удалось. По всему офису стоял сплошной рев: - Жабопидор! В коридоре его сразу же сбили с ног. Используя галстук как поводок, его тащили через весь коридор, передавая из рук в руки. Поэтому получалось так, что никакого движения в коридоре не происходит, но и жабопидора тоже нет. Его заволокли в каптерку под лестницей, где хранятся ведра и швабры с тряпками, и там закрыли. Под конец рабочего дня он всё же появился. За получасовой обед его изнасиловали несколько человек. Сопротивляться было бы бесполезно. Через день на нем чистым оставалось одно лицо, а на теле не было живого места. Он превращался в мразь, в животное. Его били все, даже дизайнеры и уборщицы. Его заставляли есть говно и опарышей. В очко ему совали битые лампочки, живых птиц и змей. Он стал «дельфином» – в нужнике пятнадцать дырок, он ныряет в первую, выныривает, ныряет во вторую... И так – до конца. От него постоянно воняло. С ним невозможно было рядом находиться. Был такой случай: к нам устроился работать сисадмином Степаныч. Степаныч сидит на толчке, а кто-то снизу через очко хватает его за яйца. Степаныч с воплем вылетает в коридор без штанов. Напротив - отдел разработки. Смех не стихал долго... Жабопидора нафаловали, чтобы он тихонько залез сзади через люк, подполз к Степанычу и напугал того. Потом Степаныч забил его кирзовым сапогом насмерть. Менты, как узнали, что сдох жабопидор, даже дело заводить не стали.
>>1028507 ооп только в виде наследования полей. Инкапсуляция аналогично. Ну хотя абстрактные классы, которым не нужно взаимодействие с внешним миром - там я думаю можно внутрь класса пихать всю эту тряхомундию. Например класс Calendar. С внешним миром он не общается, представляет из себя обертку над данными
Последние пару дней в треде посты от каких-то абсолютно диких долбоебов, не то что ни разу в жизни не работавших Java программистами, а вообще не писавших ничего сложнее калькулятора с одной операцией в выражении.
>>1028559 Инкапсуляция должна заключаться в том, что код, использующий эту функцию не должен знать о внутреннем устройстве обоих объектов, он должен рабоать с ними через интерфейсные функции/методы. Как это будет сделано - инкапсуляцией внутри того же объекта, или в либе, которая умеет с ними работать - похуй. Но во втором случае получается не ООП.
>>1028575 Контроллер нужен для управления потоками данных, а не для парсинга и валидации.
Корочь у меня есть проект с подключёнными либами. Ант (таргет jar) собирает это дело в jar файл с моим проектом и папку lib с jar файлами либ. Соответственно, джарник без папки lib не запускается. Как сделать в ант, чтоб он папку lib тоже ложил в jar, и у меня на выходе получался один jar файл?
Так ли необходимо знать алгоритмы, как об этом говорят? можно ли обойтись без них? Везде пишут, что нужны, но я как-то без них обходился и нормально себя чувствую
>>1029110 Разбивал бы ебало каждому, кто употребляет словосочетание "нужны алгоритмы". Алгоритмы ЧЕГО, блять? Любой твой хэлловорд - это тоже алгоритм. Кретины ебучие.
>>1029783 твои мысли как это сделать вайтишник? про ссылки вопрос позабавил, за 6ть лет работы я их видел ровно 2 раза и то они там были не шибко нужны
Доброго времени суток, ананасы. Суть вопроса: с какой книги начинать изучение джавы? Пока разрываюсь между двухтомником Хортсманна и "Философией" Эккеля. Но последнее издание Эккеля печаталось под SE6 либо я слепой еблан и не нашел под SE8, поэтому если Эккель, то в связке со справочником Шилдта по SE8. Но к последнему я с опаской отношусь со времен многих неточностей в его книге по С++.
В общем, аноны, реквестирую у вас книги, с которых начинать. До джавы изучал С, С++ (скипнул многопоточность пока что, я уебок) чуть-чуть Питон.
Как лучше организовать вычислительные расчеты с кучей переменных?
Расчеты на несколько классов я разбил, а вот с хранением как-то тяжело выходит. По смыслу что-то пикрилейтед. Есть данные на вход, а по выполнению создается новые.
Сначала думал POJO, но из-за того, что в каждом классе 15 переменных и геттеров/ сеттеров, то выбрал enummap. Но вычислять через map.get(Key.Something) как-то дофига лишнего, да и получается какая-то каша в расчетах. Так как они, когда рассчитаны в одном блоке, не изменяются в другом, то может такой вариант лучше: объявить как public final и инициализировать в конструкторе, и напрямую обращаться в расчетах?
И да, не гонись за SE8 и, тем более, за SE9. Все эти лямбды-хуямбды, java.util.concurrent'ы и прочие Date Time API нужно изучать уже после того, как ты осилил соответствующие стандартные средства более старших версий жабы. Иначе быстро запутаешься и будешь думать "Да нахуя так сложно-то?!!" Так что SE6 — самое оно.
Почему до сих пор в жаве нет полной поддержки боксинга-анбоксинга для массивов, а дженерики настолько хуёвые?
Например: Arays.asList для int[] выдаст List<int[]>.
Ответы про то что int[] - Object и asList принимает varargs, и что вообще дженерики - это всегда суть Object - хуйня. Нет, это всё нихуя не логично, можно было разрулить на уровне компилятора. Да и ведь для Integer[] всё отработает окей.
В 8й появился вариант через Arrays.stream( a ).boxed().collect( Collectors.toList() ) - это уже какойто рокетсаенс уже и понятнее циклом в одну строчку. И это нихуя не общий метод - для byte[] работать не будет.
>>1030511 Потому чта такие дженерики плохие. В десятке может лучше станет, если вальхалу доделают.
Курсы хуюрсыАноним24/07/17 Пнд 15:27:04#514№1030608
https://geekbrains.ru/geek_university/java Кто что думает про это? Стоит оно своего бабла? Анон, я оче боюсь наебаться. Оче сладко пишут про работу. Но пугает отсутствие очных занятий.
Продаван сказал, что я могу в случае чего слиться.
>>1030608 Говно для даунов. Хуже ддавараша даже. Алсо, а прошлых тредах скдидывали объявление, где они преподавателей за 30к искали. Сам как думаешь, чему тебя может научить чувак, который ПОЧЕМУ-ТО не работает программистом за 100к+, но работает преподавателем за 30к.
Жавач, вот лето пролетело, и пришло время искать работу. выпускник, хуле Вот пришел к вам за советами мудрыми. Как подготовиться к собеседованию, про что почитать, наверняка же общие темы все равно есть? Допустим, сферический джун в вакууме в энтерпрайзе. Можете и свое начало карьеры рассказать.
Я когда вкатывался три года назад его задрочил фулл все уровни за пару месяцев делая только по их гайдам и не гугля готовых решений. Подписка былаБекграунд - в универе на сях из гугла копипастил лабы. Конечно, сидел часов по 10 в день на превозмогании чтобы анлокнуть очередную серию футурамы и параллельно глядел головача.
Понятно, чтобы ок зашло - шило в жопе должно гореть и мотивация - но мотивации на жавараше чутка добавляют, например после них без проблем вошёл в кровавый энтерпрайз на джуна и за год поднялся до мидла, пока остальные дрочили первые типа 'реальные проекты'.
Понятно, что когда они проебались с копирайтами, и вместо героев нарисовали кривых хохлов, а в конце вместо футурамы на для расслабона захуярили тупых видео в стиле "я_заработал_300кк/сек" - стало хуже и совсем совково на вид. И очевидно, что реальный проект нахуй никогда никому не сдался забесплатно делать - только времени потянуть и денег подоить.
Но по соотношению цена-качество как инструмент позадрачивать синтаксис языка - вполне заебок, на русском языке явно лучше нет.
>>1030927 Для меня он лично ничем и не плох. Существуют более разумные пути к подходу изучения Джавы без каких-либо вложений. (Тот же чувак с Хабра тому пример) Да и в нынешнем 21-ом веке все знания валяются на дороге, а кто-то еще и платит за них.
>но мотивации на жавараше чутка добавляют, после них без проблем вошёл в кровавый энтерпрайз на джуна и за год поднялся до мидла Это впечатляет, что еще сказать. А мотивации конечно добавляет, зря деньги что ли сливали.
>позадрачивать синтаксис языка Можно и на гитхабе подрочить.
>>1031023 >Да и в нынешнем 21-ом веке все знания валяются на дороге, а кто-то еще и платит за них.
Это один из подходов. У всех психика разная - одним лучше с книжек/статей, других лучше с видео. Некоторым вообще нужно бабосы за курсы с посещением платить из-за травмы детства и оправдывать что они типа ща учатся - как то сходил в "центр специалист" на курс по плюсам - будто в школу попал, насколько хуёвой оказалась подача, но опыт вынес.
Конкретно жавараш ляжет на склонных к задротству с регулярными ачивочками, переводя их в более полезную область.
Вообще - подписка за около 1к в месяц - оч мало, могли бы и больше брать, работая на качество аудитории и мотивацию, а не на количество. Подобные жаварашу курсы могли бы вполне существовать и в открытом виде в виде локально развёрнутого сервера-фреймворка с аналогичными тестами и заданиями. И хоть это и охуеть как легко реализовать - никому не надо такое бесплатно делать если жавараш уже сделали.. Но ещё ачивочки же, рейтинг, ощущение что не один такой хуйней занимаешься - его продают в первую очередь.
Косвенный профит ещё - из структурированного материала в готовых курсах с постепенным усложнением - вполне может быть ценным сам по себе. Ебаться выискивать нормальную литературу именно для базового уровня - так себе занятие, т.к. не знаешь где хорошо и плохо. Часто в жава-книжках тебе могут начать с порога кидать в ебло ждбс и хибернейты с жавабинами, или ещё хуже наткнуться на какое-нибудь криво написанное криво переведённое говно, порекомедованное на форуме (тот же Шилдт например).
А можно в жаве ограничить лимит используемой памяти? Чтобы жвм жрала например 50мб оперативки и ни-ни больше. Или иначе - оно вообще заведётся, если я ограничу память на виртуалке таким объемом. Гонять планирую только базовые либы из jre в роли клиент-сервер (у меня будет клиент), без всяких спрингов-хуингов.
>>1031512 Настолько маленький вряд ли получится, но вообще конечно можно. Смотри compact1/2/3, с 9 чуть лучше будет (сам выберешь какие модули нужны). И ключи для запуска джавы.
>>1031521 Кстати, а как там вообще с областью видимости будет? Если я один раз объявил переменную Object xyu, как потом такое же имя заюзать? Ну типа String xyu. Будет что-то вроде команды очистки переменных?
>>1031515 это как я понял немного не то, вроде как жвм дофига сожрет на запуске + поверх этого будет память, которая будет ограничиваться. например при -Xmx5m -Xms5m, у меня от души поехала глючить отрисовка свинга, но памяти жралось порядка 30m, что неплохо. Без этих ключей - около 50. Впринципе, если GUI порезать, то впихнуть можно.
>>1031521 однострочный класс? или 2+2 уточнить? или мы совсем ленивые что пишем в блокноте без иде и не можем класс с пустым мейтом в три клика из темплейта создать?
Собираюсь написать свой web-фрейворк вместо сервлетов и спринга. Буду реализовывать http на сокетах и чтобы было удобно юзать. Какие подводные? В перечисленных выше технологиях не устраивают аннотации. Не хочу магии, хочу управлять всеми объектами сам
>>1031643 >В перечисленных выше технологиях не устраивают аннотации Сервлеты древних версий конфигурируются через web.xml. Что ты можешь нового придумать?
подскажите или дайте линку на гайд как мне добавить в проект чистый spring framework + что бы оно все собиралась в war. и желательно конфигурация была вся на java. На буте это все я могу сделать но вот задача стоит сделать без него. В проекте есть файлы севрисов и репозитория которые соотвественно нужно захерачить через autowired.
Где хранить логику валидации, в контроллере или в модели? Использую controlsfx, подключаю валидацию в контролере, нужны 3 вещи: 1) Проверка введенного на диапазон 2) Проверка относительно введенных полей 3) Проверка относительно полученных из модели результатов.
Хранить все это в контроллере - громоздко,может вынести это в отдельный класс?
Перекатился на Wildfly сервер со старыми ejb-ями. Где искать корневой каталог файлов для задеплоенного проекта? У меня там конфиги должны лежать, но чет не могу догадаться как написать чтобы нагуглить.
Поясните за два JVM-стула: Kotlin https://kotlinlang.org/ (обещают выполнение на JS, ведроиде и компиляцию в натив) , Scala https://www.scala-lang.org/ (тоже обещают выполнение на JS -- как и зачем?), и сюда же хочется добавить https://spring.io/ , но это не есть отдельный язык;
На что из этого стоит или не стоит поменять старушку Java? Что бы вы взяли для нового абстрактного проекта (БД + клиенты веб/натив/хз что дальше)?
>>1032136 Все пет-проекты сейчас пишу на Kotlin. По началу непривычно, но потом возвращаться на джаву как-то не особо и хочется, ибо слишком много фич, упрощающих жизнь. val/var, автовыведение типов, удобные лямбды, null-safety, default/named параметры у функций, вот это вот всё.
Посоветуйте какой-нибудь легковесный веб-фреймворк для создания RESTful микросервисов. Сейчас использую SparkJava, но очень не нравится, что обязательно надо использовать embedded сервер и из-за этого нельзя запихать полученное приложение в некий сервлет-контейнер по типу Tomcat, да ещё и зависимостей тянет за собой достаточно. Spring кажется несколько оверкиллом, ибо достаточно жирный и потянет за собой ещё и DI. На голых сервлетах писать желания особого нет.
>>1032136 не надо ничего менять. джаву хоронят всё время её существования, вот только это до сих пор самый популярный язык. имхо лезть во всякие модненькие jvm-языки стоит, если есть несколько лет работы в джава. а вообще я сам хочу в clojure втянуться
>>1032293 Потому что XML слишком многословен и не type-safe. Нужно больше запоминать: например, вместо того, чтобы просто пометить класс как @Bean, надо помнить, что в таком-то файле надо в таком-то элементе вбить элемент <bean/> с такими-то атрибутами. И я уж молчу про случай, если имя/пакет класса изменится. Ну и всякое бывает, но java-конфиг всегда будет в коде, а xml-конфиг может куда-то деться. Или прочитаться не в той кодировке. Или ещё что-то.
Анон, в этой твоей хэд фёст жабе пишут, мол не стоит ничего кодить, пока не прочёл книгу полностью. Но в любых других местах топят за то, что нужно постоянно писать код. Где правда? Дошёл до gui без сучка и задоринки, но на этой теме начал ловить себя на мысли, что по многу раз перечитываю одно и то же, чтобы понять что к чему. Подумал, может авторы меня обманули и надо было что-нибудь писать. Если всё таки писать надо, может кто поделится ссылкой на какое-нибудь вместилище заданий?
>>1032351 >не стоит ничего кодить, пока не прочёл книгу полностью Абсолютный бред. Единственный способ научиться кодить - писать, писать, писать. Прочитал про что-то новое - "о, теперь можно переписать говно получше".
Вообще, лучше всего писать проекты, которые нужны тебе самому. Бесполезные проекты очень быстро надоедают, после чего бросаются со словами "да и ладно, оно всё равно не нужно". Но если уж совсем идей нет, то newcoder.io Или можно поиграться на codewars.com
>>1031643 > В перечисленных выше технологиях не устраивают аннотации. Не хочу магии, хочу управлять всеми объектами сам Попробуй akka-http. Там лучше на скале писать, но можно и на джаве. В энтерпрайз-технологиях всегда будут аннотации, xml-конфиги и т д., потому что это энтерпрайз.
Почему Java настолько пидор, что не может в нормальные таймауты при работе с HttpURLConnection? Почему, блять, при fail-safe, когда ебучий сервер залипает и застревает в процессе передачи данных, эта хуйня не может догадаться вывалиться в таймаут? Пиздец, приходится пилить дополнительный поток, чтобы он мониторил не подвис ли ебучий сокет. 2017! 2к17, сука! И все еще не довели до ума, уроды, блять.
>>1033267 > Почему Java настолько пидор, что не может в нормальные таймауты при работе с HttpURLConnection? А зачем ты его взял? Вроде ведь общеизвестно, что он говно. Все используют Okhttp (+ Retrofit если нужен) и не знают проблем
>>1033527 Во-первых, не факт, что он будет удобным.
А во-вторых: The API will be delivered as an incubator module, as defined in JEP 11, with JDK 9. This implies: - The API and implementation will not be part of Java SE. - The module will not resolve by default at compile or run time.
Ещё они там поругали плохие альтернативы, и промолчали про хорошие.
>>1033324 Благодарствую. Хорошая штука. А что насчет HTTPS? Приходилось применять? В гуглах пишут, что с сертификатами поебаться придется, мол OkHttp только те использует, которые в KeyStore. Самоподписанные не принимает.
Зачем нужен Groovy? Понимаю преимущества Scala, Kotlin, Clojure. Но в Groovy совсем не въезжаю. Для скриптов есть тот же питон. Не для конфига gradle же его создали, блять