Аноны, есть какая-то шпаргалка по Джава? Если забыл что-то, посмотрел и все. Типо про разные циклы, ввод/вывод. Не надо, чтобы объяснялось как это работает.
>>926594 (OP) Аноны, я хочу вкатиться в Java. Но на многих вакансиях требуют еще и знания html/php/javascript и прочей веб-параши. Вопрос: нужно ли уважающему java-девелоперу учить это? Ведь я хочу чисто кодить на джаве и, возможно, приложения на ведроид клепать. Мне не западло, просто не уверен, что эти знания в дальнейшем понадобятся.
>>928477 Бля, Вася, всем похуй чего тебе хочется. Работать ты будешь на дядю, а вот ему хочется, что бы ты еще и вебпарашу знал. Так что уважающий себя java-девелопер, милости прошу с динамическому шалашу.
>>928913 А зачем тебе еще один серверный язык? К тому же, так исторически сложилось, что php и говнокод идут рука об руку. Если в конторе один из компонентов работает на php, то тебя с большой долей вероятности попросят либо этот компонент поддерживать, либо переписывать. И то и другое может лишить веры в лучшее будущее, желания жить, работать и создавать клевые вещи.
>>928913 С тем что пхп и ява решают задачи разными способами. В яве есть стандартный годами испытаный набор решений. В пхп полно легаси говна и новохипстерского говна. Разбираться в том как работает эта ссаная мешанина симфонии юии и плейн пхп ты охуеешь. Оставь это пхп макакам.
Алсо один раз попробовав контейнеры начинаешь смотреть на прочие решения как на говно. Контейнеры божествены. Так же как и ejb, jms, jpa. Увидев попытки реализовать данные концепции в неяве ты охуеваешь от того как криво это реализовано там. Ява язык богов.
Ну и поскольку ты нюфаня прими на веру один факт, затем сам в этом убедишься. На яве в бэкенде можно сделать все. Абсолютно все. И это все будет охуено горизонтально масштабируемо с минимальными затратами. Единственное на что стоит отвлекаться ява разработчику от познавания стека ЕЕ и спринга - это другие языки жвм. Скалка, груви позводяют решать многие задачи явы используя сахарок. Вводят новые хоть и спорные концепции в хайлоад бэкенд. Котлин нсли тебе хочется кидить и под андроид. Кложур если хочешь гаебнуть лиспоговна.
Джвм языки могут многое. Но чистая ява может сделать все что могут они. Просто более многословно.
Ну и учи либы полезные. От апача, гугля, парсеры сериализаторы, ломбок и прочее. Они сильно повышают производительность как кода, так и самого программиста.
http://coursera.cs.princeton.edu/algs4/assignments/percolation.html Помнит кто как делал? Сообразил только такое быдло-решение: 1. Создаю матрицу 20x20. 2. Наполняю её случайными числами от 0 до 100. 3. Объявляю, что, мол все ячейки значение в которых больше 50 - есть закрытые ячейки. 4. Последовательно пробегаюсь по матрице с этим условием, попутно присваивая всем открытым ячейкам первое найденную открытую ячейку. 5. Если значения в первом ряду, равны значениям в последнем, значит матрица "прососачивается"
>>929831 > Наполняю её случайными числами от 0 до 100. У тебя другое задание. Создаешь матрицу. Пробиваешь одну случайную ячейку. Проверяешь протекает или нет. Если нет то пробиваешь еще одну ячейку и проверяешь на протекание. Как только начинает протекать - запоминаешь номер на котором это случилось и повторяешь сначала. В конце высчитываешь статистику из сохраненных значений количества проколов после которых начало текти. Твой алгоритм не сработает на всех возможных вариантах - нужно делать несколько проходов, либо реализовывать что-то подобное алгоритму дейкстры - но этот вариант не подходит (скорее всего) в плане эффективности. Как эффективно решать там есть жирный намек в самом низу страницы.
Надоело крудошлепать? Предлагаю вместе написать какой либо полезный прожект. И уму разминка и на гитхабе зелень.
Предлагаю запилить прокси сервер. На нетти. С фильтрацией рекламы. С авторизацией через АД. С удобной вебмордой администрирования и аналитикой в виде отчетов.
Есть одно тестовое задание круд, ага, и сделать его нужно с помощью JdbcTemplate, JTA и DataSource, поставляемого с сервера приложений(это важно!).
Все бы ничего, но при попытке прикрутить JTA у меня возникла проблема с преобразованием дата сорса с сервера в XADataSource. В инете есть примеры с транзакциями, но нет примеров, когда датасорс внедряется прямо из сервера приложений. В общем если кто знает как использовать эти три кучи говна, понапридумывали хуйни своей жабьей!!1Ё компонента вместо, то я весь внимание.
>>929990 У тебя какой уровень? Я из Пайтон/Си-мирка, скорее сетевым программированием интересуюсь, чем Жавой. К примеру, более-менее разбираюсь в протоколах TCP/IP, датаграммы, пакеты вот это всё; могу ньюфажный многопоточный/асинхронный TCP/UDP-сервер из туториалов запилить на Си. Видел реализацию AD-авторизации на Си и Эрланге.
>>930114 >JTA ты не путаешь его с jpa? это вообще то разные вещи.
>>930125 Я ЕЕ примат. Хотел бы на нетти это делать. Общее приложение в виде еарки под вилдфай. варка с веб-амдинкой и джарку с сетевой частью. ПРоблема тут как ты понимаешь не в простой реализации многопоточного прокси. Проблема в фильтрации рекламы. Здесь же не просто по домену имени файла фильтровать охота. А пре-рендерить JS и уже как ublock вырезать и блокировать динамическую рекламу.
>>930180 А ну да. У меня ждта используется для смт. Если хочешь бмт то можешь и локал ресурсес тип оставлять. И потом ужеина уровне бинов пердолить транзакции
Шалом, умные! есть у меня задача косвенно связанная с джавой,авось пощадите и поможете. нет никакого опыта в рекрутинге, в айти мало, но нужно узнать среднюю зп старшего Java разработчика с оптом от 4 лет, умеющим в spring и свободным английским. все бы ничего, но мне блядь нужно сравнить 3 города: ДС2, Минск и Львiв. в дс2 пошерстил и нашел среднюю зп в 170к, с /b/елорусами и хохлами пока глухо. Вот тебе интересная задачка на вечер пятницы, анон. что узнаешь - отписывайся, а я пойду и сам попробую порешать, периодически побампаю смищными картинками
>>928477 возможно приложения на ведроид? ты уж определись с тем что тебе нужно, веб или ведроид. веб - тебе нужнен кор, ентерпраес, хмл, хтмл, жс, цсс, знание каких нибудь билд тулов ведроид я не ебу что нужно, но друг мой приводил как пример задачи рядовой - имплементацию к примеру красно-черного балансирующегося дерева. Хотя кому я блять отвечаю, в джаву он вкатиться хочет.
>>930313 в городе хохлов такой юнит будет стоить примерно 3к. Будут просить больше - шли нахуй.
>>930460 > ведроид я не ебу что нужно, но друг мой приводил как пример задачи рядовой - имплементацию к примеру красно-черного балансирующегося дерева. Это задача уровня круглых люков
>>930180 У меня нет гибернейта, или JPA, только голые POJO классы, и дата сорс внедряется аннотацией @Resource. мопед не мой
>>930178 К сожалению не путаю. Нужно именно упаковать ждбц темплейт в жта транзакцию, но дата сорсы не совпадают и я хз как их преобразовать. С сервера приходит WildFlyDataSource, а транзакциям нужен XADataSource.
>>930620 Без jpa? Ужос кокой. Или у тебя стандалон приложение? Тогла какого хуя датасорсы из контейнера? Хотя jndi сработает и из стандалона. Ресурсом можно подключить по нему
Анон, поясни один момент. Пытаюсь сейчас разобраться с XML, изучаю DOM parser. Вот смотри: есть экземпляр класса Document с названием document. Я хочу посмотреть какие у него методы есть и как всё внутри устроено. Открываю исходный код, хуяк - а это интерфейс наследованный от Node. Node тоже интерфейс. Это что получается, document это экземпляр интерфейса? Так разве бывает?
>>930737 Ну охуеть теперь. Правильно я понимаю, что DocumentBuilder парсит xml, создаёт этот самый DocumentImp, кастит его в Document и уже его возвращает мне?
>>931070 Так они там есть. Хуячишь в энтити-класс @EntityListerers(DickErect.class) class Pizda{ } class DickErect { @PostUpdate public void erect(Pizda pizden) { } }
>>931009 > Есть две таблицы хуй, пизда(один ко многим). У пизды есть поле хуйАйди. Нахуй патриархат и пуританство. Тут без развязочной таблицы не обойтись.
>>931303 Это тот что по mtproto протоколу? Написал короче вроде метод чтоб коннектилось, а оно не коннектится и кидает исключение. http://pastebin.com/Ky9XDSay
такой вопрос, можно ли как-то передать данные контроллеру, как только сервлет начал работу? как только запустился сервер - сервлет ебенит переменную контроллеру
>>927632 Вообще, старается лимитировать (придерживаться значения parallelism), но иногда компенсирует, когда какие-то воркеры блочатся. Мне это, однако, не помогло, когда я однажды влетел в starvation-deadlock, нахуярив созависимых CompletableFuture.*Async в paralllelStream.
>>926594 (OP) Джваны по долгу службы и открытию нового проекта, нужно в максимально короткие сроки изучить Unit-тестирование. Пока что из годного нашёл курсы на Courser'a. IDE правда там Эклипс, сильно ли это будет выкручивать мне яйца, если я работаю в IDEA? В общем, посоветуйте, что годного можно почитать/посмотреть.
Посоны я понимаю что модно молодежно это wildfly от жыбосса. Но что из кровавого ынтерпрайза лучше подучить? Вебложик новый? С такими то клаудами.. Вебсферу - с ее некро ЕЕ6 Или еще что?
По работе понадобилось кое-что сделать в джаве. Сам крестовик. Мне просто нужно добавить 1 линию в файл. Просто одну блядь линии. И для этого надо написать:
new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true), "UTF-8"))
Еб вашу матушку ребята, что это за пиздец, как вы нахуй так живете? Как блядь ваша джава умудрилась стать такой популярной, это же блядь один сплошной велосипед из костылей, где для простейшей операции надо написать блядь простыню уродливого кода и оно еще работать нихуя не будет.
>>932446 Трайкетч еще забыл. Работа с файлами - самое ебаное, что в джаве есть. Да и апи его не менялось сильно лет 10-15. Для таких штук я груви юзаю.
Ребят, юзал я идею и не особо заморачивался, все работало. Но теперь я решил освоить FX и немного прихуел. SceneBuilder работает через жопу, даже при учете, что я скачал его отдельно и прописал путь. Например, в свойствах компонента в Layout вообще ничего нет, и еще интерфейс полностью говнится при дебаге, не такой как в дизайнере, пока не перезапустишь идею. Возможно ли решить эти проблемы? Мне нравится эта ИДЕ.
Аноны, помогите советом. В общем закончил 9ю главу Хорстмана, первый том. Дальше идут темы по разработке настольных приложений, а тратить на это время не хочется. Хочу вкатиться в бэкенд разработку, из знаний есть java core(ооп, дженерики, коллекции). Что читать? Куда идти? Попробовал вкатиться на курс на stepik.org по веб разработке на джава и люто сгорел на первом задании, ибо постановка задания была тупая и я тупо не осилил, вообще как по мне, так тот курс рассчитан не на чайника, как сначала заявлялось автором. Да и читать книжки меня люто заебало, ибо вроде читаешь, вроде понимаешь, но практики нету. В общем помогите плз
>>932674 потому, что я имел опыт разработки настольных приложений на vba(универ). Решил, что хватит с меня этого говна уже. Хочется написать что-нибудь на вебе.
>>932694 кстати, единственная тема, которой я не коснулся это "многопоточность" есть ли смысл перед этой книгой проработать эту тему? Или можно будет освоить это во время изучения спринга?
>>932699 Первое правило написания многопоточных приложений: не пиши это. Не, ну мозги не выключай во время написания кода, но все эти каунтдаун латчи и атомик булены по делу и нет смотрятся чаще смешно, чем полезно. Не спеши познать все, понимание многих вещей придет с практикой, а не из второсортных книжек.
>>932700 > Аноны, кто сколько тратил на изучение джавы? Учу всего месяц, а так мало умею или это мало? После месяца изучения устроился стажером за 5к, лол. Еще через девять месяцев ушел на 60к в Мухосранске - в профессии жуткий дефицит хоть сколько-то квалифицированных людей.
>>932701 често у меня уже горит, я конечно понимаю, что шел не по самому сложному пути: прочитал Хорстмана до 9 главы, затащил все задачки на codingbat почти на изи, но понимаю, что ничего не знаю и не понимаю. С другой стороны знакомый работает обезьянкой за 50к, ни о ООП принципах ни о чем и не слышал, алгоритмов сортировки не знает. И я, вроде все это знаю, но не знаю главного, как писать то. Спрашиваю у людей, которые не прочли ни одной книги, но что-то там под андроиды да IOS'ы пишут, говорят учились по туторам в ютубе и всяким там платным курсам....
>>932708 Толку от твоих знаний уровня вики, если ты эти принципы на практике не умеешь применять? Кстати, знание алгоритмов сортировки в яве не нужно. Главное компаратор напиши. Бтв, ни одной книги по программированию дальше пятой главы не читал: отвратительное говно, которое чудом состоит из воды на 70%. Ничто не заменит практику.
>>932714 я согласен в какой-то мере, в том то и дело, что лучшее, что я видел в плане практичности это методички разных универов, жаль только, что все они ограничиваются "знаниями на уровне Википедии"
>>932714 >Бтв, ни одной книги по программированию дальше пятой главы не читал: отвратительное говно, которое чудом состоит из воды на 70%. Ничто не заменит практику. Мда хех. Ему в книге изложили все грабли, на которые на практике наступили авторы и много других программистов, а он хочет потратить 100500 времени и наступить на всё сам.
Все эти асинхронные футуры обсерваблы и многопоточность позволяют грамотно распаралелить задачу. И как минимум многопоточный код будет не медленней однопоточного.
>>932801 Какую ты блять задачу решил распараллелить? Работа на 80% состоит из крудопараши. >>932770 Ничего подобного. В каждой первой книге мне с нуля про ооп поясняют и воду льют. Исключение - Effective Java, но она полезна для совсем уж начинающих, так как до большей части советов и граблей, описанных там, сам доходишь за пару месяцев. Ну и да, именно там был совет вроде "если ты думаешь, что легко можешь писать многопоточный код, то ты неправ". Оставьте эту тему разработчикам фреймворков, бд и веб серверов. Пишите молча свои круды и чините баги.
>>932829 А с чего ты взял, что "крудопарашу" не нужно распаралеливать? И что ты планируешь делать остальные 20%?
Также, наблюдение. Пренебрежительное выражение "крудопараша" слышу всегда только от каких-то школьников, либо программистов неудачников, которые пытаются компенсировать свои фейлы тем, что в душе представляют себя Седжвиками.
>>932852 А кстати вся крудопараша и распараллелена. Вот только не вручную а самим контейнером и ejb. Пулы бинов таки и представляют из себя слабосвязанную многопоточную архитекутуру. Особенно если они общаются по jms
Самый простой пример многопоточности - это сетевые соединения. У них процент последовательных вычислений минимальный. Особенно если они не хранят стейта, не хранят сессий.
Многопоточный неблокирующий асинхронный сокет - чем не пример.
>>932877 А фреймворк - это у нас блекбокс, и его содержимое тебя не касается?
Или вот пример, тебе приходит "крудопарашный" запрос, тебе нужно дернуть три микросервиса, чтобы его выполнить. Что ты будешь делать? Последовательно их дергать в одном треде? Или просто скажешь "аа блядь крудопараша заебала" и пойдешь на двач, хвастаться как охуенно сортируешь пузырьковой сортировкой?
Повторю вопрос из ньюфаг треда, так как тут больше java-анонов.
Посоны, кто-нибудь проходил курс Java rush? Стоит он затраченного времени? Потому что я вот на втором уровне и меня как-то настораживают многократно повторяющиеся задачи типа "выведи петросянские смехуечки на экран"
>>932909 Когда только начинал учить java, проходил там курс до 2015, информации там маловато, но практические задачи вполне неплохие, но лучше все же читать книги, например философию эккеля и выполнять задания оттуда.
Единственный плюс, который мне показался интересным - Стажировка, там используется Spring/jpa,hibernate,REST и другое. Если это действительно так, то для новичка в качестве практики это очень даже хорошо
Анано, вопрос насчет Хорстмана, где-то читал, что лучше читать только первый том, а после него читать другие книжки и только через какое-то время можно переходить ко второму тому, поясните пожалуйста.
Новичок на связи. Поясните за связи в базе данных, пожалуйста. Использую Hibernate. Есть база с двумя таблицами: Room и Student. При обращении к определённой комнате надо получать всех студентов, проживающих в ней. Меня навели на мысль, что следует использовать @OneToMany и @ManyToOne. Будьте добры, разжуйте, как для дауна, как это всё реализовать.
>>933428 >Будьте добры, разжуйте, как для дауна, как это всё реализовать. Объясняю. Открываешь браузер. Заходишь на google.com. В поисковой строке вводишь запрос "hibernate manyToOne example". Жмешь клавишу enter. Проходишь по предложенным ссылкам - там все разжевано.
>>932504 Мне обязательно нужны JTA, так сказал хуй, который давал задание. Мне не нужны jndi, jpa, hibernate и любая другая джавовская хуита, которой в ней допизды. Мне нужно ПРОСТО преобразовать DataSourse(WildFlyDataSourse, который приходит с сервака, путем злоебучего внедрения зависимостей. Он может преобразоваться в датасорс, но больше ни во что) в XADataSource. Как это сделать? Тут выше советовали править какие то xml, но у меня нету никаких xml'ек, сервак создает коннект к бд, сервак предоставляет датасорс, всё! Как одну кучу жабьего говна преобразовать в другую? Даже гугол не знает, только предлагает мне навернуть инфы в чем между этими кучами говна разница. наверно никто просто так не делает, но давшему мне задание гению на это накласть
антоши, есть ли какие-то годные ресурсы, где можно практиковаться в выполнении всяких заданий для новичков? А то решил вкатиться в эту вашу джаву, вроде все понятно, но одно дело читать, другое на практике применять знания. Тем более что я забывчивое хуило, без закрепления материала мне ну вообще никак.
>>933880 Ну в его случае можно использовать JTA в самом спринге. Если через jndi получать usertransaction по сути это будет jta транзакция, но уровня бинов, а не контейнера.
Что то такого <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="userTransactionName"> <value>UserTransaction</value> </property> </bean>
>>930747 Недавно начали использовать для одного небольшого кейса.
В будущем, когда вместо рест апи для интеграций между компонентами будем использовать очереди, возможно, найдем более широкое применение spring integration.
>>934063 >>934040 Чем спринг интегрейшен лучше апач камела? Вроде как у камела и компонентов больше и все паттерны eip им реализуемы. Да и используют камел внутри своих систем многие проекты.
>>933888 >>933894 Мне сказали не использовать спринг. Так бы ясен хер по манулам все бы норм работало.
>>933880 Инжектится некий WildFlyDataSource. Который может преобразоваться в DataSource. XADS в standalone.xml сервера тоже имеется, в веб интерфейсе сервера проверял, все норм. С ним кстати тоже все работает. Всё, кроме преобразования его в XADS в самом приложении. Буду ковырять в сторону UserTransaction. Спасибочки всем за советы.
Даже вот этому уёбе >>934036 Который считает что есть какая то разница между кодингами на разных языках.
>>933872 Ходил, лол. Единственный в группе выполнил тестовое задание и вообще задачки по погромированию делал, а в итоге взяли жопастую бабу и самого болтливого парня из нашей и так немногочисленной группы.
Искал в code conventions какие-то правила для модификаторов доступа, в частности для классов - не нашел. Где-то они по хардкору прописаны? Или как бы и так понятно, что нужно не выебываться, и не светить лишнее. Но блять, это же должно быть где-то явно напиано, иначе идите нахуй все, все буду хуярить public и ебать в рот кукаретиков.
>>934536 При compile time зависимость должна присутствовать только при компиляции (но compile time зависимость может часто влечь за собой и run time). run time нужен во время работы. >>934547 Какие code conventions тебе нужны? У класса есть интерфейс (определяется при проектировании). Этот интерфейс публичный, все остальное приватно.
>>934547 Поля всегда приватны, что написано в миллионе мест и известно даже детям.
Доступ к методам для имплементирующего класса - выбор автора исходя из задач. Например, ты хочешь заэнфорсить толкьо определенные способы использования класса. Может быть, использование какого-то метода отдельно от других не имеет смысла или ломает какую-то важную взаимосвязь - тогда делаешь приватным или защищенным, чтобы не повадно было.
>>934547 > Но блять, это же должно быть где-то явно напиано, иначе идите нахуй все, все буду хуярить public и ебать в рот кукаретиков. Основные принципы ООП прошли мимо процедурного дурачка. > все буду хуярить public и ебать в рот кукаретиков Нет, маня. Ебать в рот на ревью будут тебя, а пулл реквесты твои будут помечать need works, а то и вообще деклайнить.
>>934077 > Чем спринг интегрейшен лучше апач камела? Тащемта особо ничем, кроме того, что часть springframework проектов. Java dsl имхо ебанутый в интегрейшене и меньше адаптеров. Со спрингом нормально интегрируется и то, и то. Но вообще ради какой-нибудь простой цепочки с роутерами, трансформерами и адаптерами тащить зависимость нового продукта не айс и вполне можно обойтись spring integration.
Пишу некоторый анализатор текста, и хотелось бы подсвечивать некоторые слова в нем. Т.е есть TextArea, например, там текст, и в нем слово, хоть как-нибудь выделенное. Есть возможность это как-то реализовать на javaFX? Нагугли только построение html. Алсо, желательно это дело еще и хранить как-то.
>>935406 Что-нибудь попроще? Нужно буквально несколько массивов пикселей нарисовать в процессе работы кода, не хочется для этого писать обёртки для опенгл.
Вечер в хату, жабаны. На собеседовании дали задачу - построчно прочитать текстовый файл и вывести его в консоль. Написал такой код: import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException;
public class Program { public static void main(String[] args) { try (BufferedReader br = new BufferedReader(new FileReader("data.txt""))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } } В ответ меня обоссали и сказали, что в Java это делается в одну строчку. Как?!
>>935736 Обоссы их в ответ, сказав, что на Java это делается разными способами, в том числе и твоим. Любители самоутвердиться за счёт новичков, скорее всего, имели в виду следующее:
>>935391 >>935476 В AWT используй классы BufferedImage (для управления отдельными пикселями) и Graphics2D (для сложных спецэффектов). Чтобы сохранить результаты в файл или прочитать из файла - ImageIO. Чтобы отобразить на экране в окне - Canvas.
>>935762 Умеет, только задрочен он под скалу, а это так сайд плагин, так же к в мавене есть компайлер для скалы, который высрали, только для того чтобы так же заявить, что скалу он тоже может собирать.
>>934082 У Шилдта по крестам нормальные книги. Лучше, чем по Java и C#, где встречаются даже ошибки в коде. Он на С++ c 1991 года пишет (раньше писал на Turbo C), участвовал в создании ISO стандарта. А снобизм по отношению Java/C# - типично для крестобляди, видимо написал пару апплетов и решил по-быстрому срубить бабла на книгах, пока мода на новые языки не спала.
По жабе нужно читать ее автора Гослинга: 1) Кен Арнольд, Джеймс Гослинг. "Язык программирования Java" - старая жаба до 8-й версии (нет лямбд и stream'ов) 2) Джеймс Гослинг, Билл Джой, Гай Стил, Гилад Брача, Алекс Бакли. "Язык программирования Java SE 8. Подробное описание" - современная жаба
>>935800 Мля ты реально тролишь? Если ты уже в теме, то указатели это тема которую можно понять за несколько часов, взяв нормальнкю литературу. Можешь сэкономить это время и подрочить тут на дваче.
>>935808 ищи книги и доки по glassfish. это самый крутой апп сервер для обучения, потом можно с этими знаниями осилить любой энтерпрайз левел апп сервер, просто по наитию.
>>935821 В плане указателей я начинал с си, потомучто их никогда не понять если не потрогать этот язык. Прочитать литературу, а потом поробывать несколько разнообразных многоуровневых разименований над ними вполне достатчно для понимания всей концепции.
>>935821 >>935831 Вот тебе пару задач для реализации на Сишке: 1) односвязный список; 2) бинарное дерево; 3) работа с матрицами: создание матрицы произвольной размерности, сложение, перемножение матриц и т.п. Этого хватит чтоб понять суть указателей и работы с памятью.
>>935840 А если еще прикинуть, что все внешние контрагенты вообще никогда не имеют никаких интеграций с твоей системой, обмен файлами это очевидный единственный способ обмена данными.
>>935843 > обмен файлами это очевидный единственный способ обмена данными
Ананас, назови компанию, где ты работаешь. Только без вранья - ты онанимен и тебе незачем врать. Если компания маленькая и название будет деаноном, то опиши сколько рыл и чем занимается.
Эгей гей жавачаны, чо каво. Стало быть кароч пытаюсь жабу понять не андроедную. Читаю спринг ин экшон. Иии бля чо это за дерьмо? Ну типа там ваще есть чо по вебу связанное? Типа я хочу понять как писать под веб для начала. А там мне про каких то меньетострелей, пианины абстрактные выводят в консольку строки. Я этого дерьма в вузике наслушался про выводы в консоли абстракктный людей которые наследуют профессии рабочий доктор милиционер. Например когда под андроид читал книженцию там чел сразу приложение пишет дерьмовое простое но бля реальное. А не абстрактныйх коней. Есть норм книги для веб жабы? В оп шапке посмотрел книги, типа чо там в одной из них есть про веб или они типа жава раша учат создавать абстрактных животных и двигать их по абстрактным клеткам?
>>936014 И еще добавлю, чо за зоопарк из каких то бобов, серверных лиц, с серверными страницами вроде понятно. Почему кто то гооврит надо типа спринг мвс учить а кто то жабу ЕЕ. Как я понимаю там еще пара десятков веб фрейморков на жабе есть. И еще пара десятков веб серверов типа томката жети гласфиш. Типа в чем разница?
>>936014 И еще добавлю, чо за фигня с иксемелками, это какой то фетиш? Типа описывать классы в иксемелках. Больше половины кода в книги это какие то бобовые иксемелки.
>>936037 Ну да но всетаки чо мне снуля создавать роутеры мвс штуки? Я конечно могу велосипедить, но чото мне подсказывает что за пару лет жабы это уже как то было за меня написано. А выводить в сокет как абстрактный рыцарь рубит унаследованого дракона чот гайдай какой то
>>936037 И я не тролю, просто хочу разобраться или как то определиться с ориентацией своей что из этого зоопарка использовать, кучи серверов, вариантов запуска. кучь фреймвокров. И куча иксмлок.
>>936036 Ну начать надо с того что томкэт и джети не являются совместимыми с EE стандратми контейнерами сервлетов. Есть Томкат ЕЕ, но это зашквар, который всегда в жопе с последними реализациями. У тебя действительно два пути Спринг и реальный ЕЕ совместимый код. По сути в 80 процентов случаев все выбирают спринг, потомучто стандарты во-первых никто не читал и не знает, во-вторых все это гавно можно собрать и запустить на том же томкэте, если вдруг не облимлся реальный ЕЕ апп сервер. Минусы же очевидны. Первый - это депенденси хэл. Любое приложение на спринге тянет зависимостей на стони мегабайт. В одном профайле часто деплоят приложения с разными версиями спринга, что приводит к интересным эксепшенам с зависимостями, если какая-то часть библиотекы изначально была общая. Это все можно преодолеть если грамотно наследоваться от стандартного рутового пома. Если такой процесс не поставлен в конторе, то все будет работать через жопу и каждый девелопер будет на каждый чих тянуть какую-нить либу которая не конфликтует со спрингом.
Если же идти по дороге ЕЕ решений, то приложения используют только интерфейсы и сигнатуры согласно стандарту, в разных ЕЕ ап серверах могут быть разные имплементации, но если они гарантируют совместимость со стандартом, то будет абсолютно похеру где деплоить твое 200 килобайтное приложение. В нем почти не будет никаких дополнительных зависимостей, которые могут быть частью общих с другими приложениями. Ты просто берешь прикладные либы и дуплоишь еар со своим изолированным класс патом. Естественно, на лекговесные контейнеры ты это приложение не накатишь. Но в реальных организациях такие сомнительные миграции не случаются. Что выбирать, зависит конкретно от тебя. Со спрингом проще найти вакансию и творить ад. С чистым ЕЕ вакансий меньше, но там как правило люди понимают, что делают и работают на зрелой платформе.
>>936323 Сервлет, это объект который находится в прослойке представления, его основная задача, получить запрос, спустить вниз по цепочке, затем сформировать ответ клиенту. Е бобы это объекты прикладной логики, они являются частью стандрта ЕЕ для выполнения конкретной бизнесс логики.
>>936323 Жсп это всеголишь темплейты которые описывают структуры хтмл ответа, с логикой отрисовки нужных частей, в которые потом будут подставлены нужные значения.
>>936338 JSF полюбас существует и без спринговой имплементации. JSF простым языком это надстройка на Servlet и JSP. Его основная задача натянуть клиентский вызов на конечную модель в приложении без лишних телодвижений, он и провалидирует входные параметры, потом сеарилизует их в нужный объект намапив нужные поля запроса на нужные поля модели. У спринга своя реализация, естественно не совместимая.
Анон! до какого лвл можно дрочить javarush? и в какую задачу перекатываться с базой? А то получается что есть как бэ javacore с котиками и выведи массив на экран, а есть всякие hibernate, вжиу вжиу вжиу вжиу jdbc )))))
>>936426 ну чувак даже я только что вкатился пару минут назад посмотрел шапку, чож ты такой ленивый там же 6 страниц в которой по 10 слов на каждой, ну ебана.
>>936504 Извини, братан, не очень сегодня с экстрасенсорикой, небо пасмурное, не могу заглянуть к тебе. Проблему нормально опиши, еблан тупой, приложи логи и кодельник.
Сколько в москве средняя/высокая зп для девелопера (джава) с опытом 2года? не лида, а просто прогера (и не сеньор). работаю на галере за 105к, и думаю мало это или нет. на хенхантерах и прочей теме слишком большой разброс, есть ваки на 180к с легчайшими требованиями, не верю в такие наебы.
>>936593 >ваки на 180к с легчайшими требованиями, не верю в такие наебы Ну это и не наёб, в общем-то. >ой, а вы этого не знали? >а с этим не работали?)) >ну что ж вы так))) давай сейчас на 90, а через полгода пересмотрим))
Время читки книгиАноним19/02/17 Вск 23:18:39#302№936695
Начал короче вникать в спринг. Читаю spring in action 4rd edition на англе офк. И начинает казаться, что я делаю это тормознуто. Вот сегодня специально засек. На одну главу(25 страниц пдф) потратил два часа с минимальными отвлеканиями. Нормально ли это? Хреново? Стараюсь вникать глубоко в код, примеры и концепции спринга. В общем отпишите, как долго вы читаете книги такого рода и способ чтения(диагонально / досконально).
>>936271 > С чистым ЕЕ вакансий меньше, но там как правило люди понимают, что делают и работают на зрелой платформе. Странно, но мой опыт показывает обратное: все встреченные мною адепты EE стека обычно изображают из себя про, а не деле нули. А крутые ребята кодят на чём надо, но в вопросах желаний в рот ебали эти ваши аппликейшн сервера.
>>936699 Дак а в чем разница между спрингом и ее, типа стандарт ее ок понял какой то стандарт написан и что дальше? Спринг чо типа написан не по стандартам табы вместо пробелов или камелкейс вместо еще какого то?
>>936701 понимаю цикл создания бина. Понимаю, как внутренне работают различные <context:annotation-config>, понимаю зачем нужны бинпостпроцессоры, и зачем они нужны, как писать прокси, и т.д. Хуйня, а я долбоеб. Знаю.
>>936751 >й то стандарт написан и что дальше? Спринг чо типа написан не по стандартам табы вместо пробелов или камелкейс вместо спринг - это как бы вещь другая. Только некоторые принципы( и соответственно аннотации) работают так же как и в ее
>>936754 >вещь другая Это другой код? Или в спринге все на иксмлках, а в ее нет? Это другие паттерны программирования? Типа какой нибудь АОП? Или тут как с аналом пока не попробуешь не поймешь надо тебе оно или нет?
>>936764 Или может типа ее стандарте описаны типа какие штуки должны быть и как ими пользоваться чтоб написать веб приложение, а спринг типа я буду по своему делать и делает там как то по другому?
>>936557 Я свитчер с другой професии. Выучил джаву и понял что я нахуй никому ненужен. Учить андроид не хочу. Хочу запилить свой сайт чтобы выебываться на собеседовании. Начал учить Тырпрайз и понял что это сущий ад. Туева хуча технологий, джавы практически нет, нихера нельзя понять, что куда пихать. Даже книг нет. Мне кажется что люди могут понимать ЕЕ только на интуитивном уровне.
>>936770 мне вот сложно тебя оценить, ты лучше когда дочитаешь до чего то конкретного, запили какую нибудь фигню. И тогда уже напиши сколько ты дней читал книжку и сколько дней пилил чонить. Ты же обучающую книгу читаешь а не войну и мир. В итоге ты должен чему то научиться вроде, а не просто получить удовольствие.
А то хз как оценить чо ты там за час прочитал.
Да и что изменит если кто то скажет что он за день осилил и стал синьером? И ты такой уу сука буду теперь быстрее читать и все понимать?
Или ты ожидаешь услышать какой ты пиздатый так быстро осваивашье и увеличить ментально свой половой хуй?
Голая жаба нахуй жи никому не упала > Туева хуча технологий, джавы практически нет, нихера нельзя понять, что куда пихать. Даже книг нет Жиза блять. Но книги есть но они ваще хз кем написаны.
>понимать ЕЕ только на интуитивном уровне. А мне кажется надо чтоб какой нибудь наставник был. Типа за кем наблюдать, а потом самому делать. А потом как более менее поймешь можно всякие книженции читать и ваще откроешь в себе чакры жабапогромиста.
>>936777 >наверни про DI, Я вот понимаю как делаецо ди в других языках, но на жабе мне предлагают сделать какой то контекст чего то там и описать все это в иксемелке и загрузить иксемелку спомощью какого нибудь аспектЖ или еще чего то такого. Либо я не правильно понимаю, либо надо читать дальше и понимать как эти иксемелки писать.
>>936776 >то изменит если кто то скажет что он за де Довольно таки хороший вариант предлагаешь, спасибо) Увеличить ментально свой хуй не хочу, а "уу сука буду теперь быстрее читать и все понимать" вполне мне подходит. Понимаю, что это неправильно, всегда будет тот, кто к примеру читает, понимает, пишет быстрее. Но, тем не менее как призыв действую, работает это хорошо))
>>936777 Написал крестики нолики, морской бой и энгрибердз на свинге. Учил ёбанную балистику и формулу полёта снаряда. ИИ у меня получился на уровне рандомного выбора. Задрочить минимакс и этот ваш депенденси инъекшн конечно нужно, но боюсь что на собеседовании меня обосцут в любом случае. А по поводу жабаскрипта, так его итак требуют по умолчанию.
Не получается сконфигурировать spring mvc проект через xml. После деплоя получаю ошибку 500 от сервера и эксепшн:
"org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dormitoryController' defined in file [/home/hm/apache-tomcat-9.0.0.M17/webapps/ROOT/WEB-INF/classes/org/pkg/dormitory/controller/DormitoryController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.pkg.dormitory.service.StudentService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} <...>"
Эксепшн гуглил, но решения не нашёл. Может кто помочь, пожалуйста?
>>936777 Чот не доконца понял, нах какую то херню писать, типа может лучше блог или инет магаз написать на жабе? Или сервис какой. Че твой минимакс поможет?
>>936799 Дам совет. Многим это не понравится, но это мой взгляд.
Забей на спринг сразу и бесповоротно. Начни обмазываться ЕЕ. Начни со стека редхата, вилдфлай, хиберней ,активмку. Затем посмотри стек айбиэм, благо новая сфера бесплатная и ЕЕ7 фулл профайл умеет. Это шаг назад и в сторону но так надо. Ну и под конец веблоджик. Это уже совсем другое говнище. Но знать эти три стека нужно. Нормальный бекендер жолжен знать все основные фулстек аппсервера, особенности их деплоймента
>>936866 Микросервисы как соа мом - все есть в аппсерверах. Веблоджик это вообще смесь всего что можно представить. Начиная от некро jsp/jsf и заканчивая клоуд бейсед соа. Во фьюжене чего только нет. У редхата есть фьюс, пл сути сервис микс. Смесь апачевских карафа цэиксэф и активэмку, замешаные на феликсе осги контейнеры. Что как раз есть отражение соа и мом в бэкенде. Мир ЕЕ богат, и давно уже не мешанина хмля с гигом озу подсессию
>>936890 >мир ЕЕ. Это я напиздел. Мир энтерпрпйзной явы я хотел сказать. Есб соа мом, мезос с зоокипером для оркестрации кластерами все это ява. И все это ссыт на хипстерские недоподелки уровня докера и унтерменшей с js и goвном головного мозга
Но к чему я это? К тому что спринг не нужен для вкатывальщика. ЕЕ умеет все что спринг. Да тут раздадутся манякукареуи про спрингдатаджпа с репозиториями, что конечно удобнее чем вручную писать еджб фасады перед джпа. Но испольщуя спрингдату ты нихуя в итоге не понимаешь как это работает. Чистый джпа дает больше понимания. Раздадутся кудахи что мвц круто а джсф протух. Хуй там. Протухло и то и другое. Фронт пишут на жс давно и бесповоротно. А накидать простой вебинтерфейс и на джсф мржно. Для остального есть рест. Предвижу вскукареки что для реста ЕЕ и не нужен. Есть джерси и прочее. А вот нихуя скажу я. В апсервере у меня есть джпа джмс иетеграция дистрибьбтед кеши и прочее вкусное. Спринговский рест горищонтально не масштабируем. В ЕЕ ща счет кешей кластер рест не сложнее одиночного сервера. Что еще забыл?
>>936851 Неа и нейроночки ни писал, мнеб с основами разобраться, так по мелочи говнецо типа авторизации телеги делал. Но эт уже на понимание алгоритма программы, но без понимания работы стека под который ты реализуешь свои нейроночки, ты нихуя в итоге не напишешь. Так что падажжи ты со своими кампуктер сцаенцами
>>936792 > Error creating bean with name 'dormitoryController' > Unsatisfied dependency expressed through constructor > No qualifying bean of type 'org.pkg.dormitory.service.StudentService' > Эксепшн гуглил, но решения не нашёл. Тупорылый дебил. >>936799 > Чот > доконца > нах > какую то > типа > Че Возвращайся обратно админить, уборщица. Пытаешься прыгнуть выше головы.
>>936779 Да, так и есть. Спрингомакаки по сути ретрограды-контрамоты, они не любят оопе, а любят есть говно модульное программирования во имя Никалуса Вирта, любят пить мочу статические классы и антипатеррн Синглетон. Сама суть оопе в динамическом выстраивании связей между объектами, в построении графа неких абстрактных объектов, но спрингомани не хотят выстраивать архитектуру, они хотят программировать xml-конфиги, чтобы об объектах можно было вообще не думать, просто воспринимаешь класс как модуль и заебись, всё остальное напрограммируем в xml.
>>937010 И почему тогда почти все вакансии спринг содержат в своих требованиях? Или это как битрикс какой нибудь в пхп дешево, быстро, тупо? Или можно как то избавиться в спринге от иксмлок? В книге про спринг пишут что так надо, но можно без этого как то?
>>936894 > спринг не нужен для вкатывальщика Но работу то не найти, если не учить спринг почти все вакансии с ним. Я бы за еду даже пошел лишь бы взяли
>>937073 У тебя как минимум есть аннотации и джаваконфиг. Хмл идёт наследством некроверсий. У хмл конфига есть один плюс. Можно менять код без пересборки. Например добавить какие бины или поля инициализации поправить. Яваконфиг хардкод и требует перекомпиляции. Говорят там еще что то добавили но я давно уже не смотрел на их доки.
>>937074 Я не понял ничего. По твоей ссылке что то о телеграме на шарпе. Я хотел запилить хостинг ботов на явке но посоны в моби сказали говно идея. Я дропнул.
Чет заебал гит, помогите. Создал репозиторий локально писал код. Создал удаленный репозиторий загрузил туда код. Вроде все ясно. Создал новый проект из старого, снова создал локаль, потом решил загрузить в тот самый удаленный, но выбило ошибку ожидаемо, что коммиты не совпадают. Сделал пул, потом снова отгружаю но в гите остались старые коммиты, а мне они нахуй всрались?
Сап, джавач. Расскажи ка мне, где у нас в Россиюшке нынче душа программирования живёт? А то вот я задумался о какой работке бы помечтать, но даже придумать не могу, вот решил у анона советов мудрых попросить.
>>937327 Именно так. Но как это противоречит тому, что он написал?
>>937076 >У тебя как минимум есть аннотации и джаваконфиг. Джаваконфиг - самая худшая из конфигураций спринга имо. Я лучше еще ебану иксемеля, чем это раздутое говно буду строчить. Последнее время смотрю в сторону groovy-конфига, но там свои косяки, вроде невозможности использования property placeholder'ов.
>У хмл конфига есть один плюс. Можно менять код без пересборки Нахуй не нужно.
Если избавлять от ручного объявления бинов (что, будем честными, утомительно независимо от стиля конфигурации), то стоит смотреть в сторону компонент скана. На него все около спринговые проекты и ориентируются: кто пробовал пользоваться Spring Data без компонент скана, тот поймёт.
Кстати, вайлдфлаепидору смачно ссу на лицо, заебал уже своими EE-снобизмом. Макак везде хватает и не фреймворк определяет уровень программиста.
>>937336 Так и знал, что начнёшь с конфигурации бинов, ибо самое очевидное. Давай за транзакции, например? Прекрасный @Transactional против тучи поинткатов и прочего дерьма?
>>937330 >самая худшая из конфигураций спринга А мне норм.
>Нахуй не нужно. Несколько раз пригождалось и это ахуенно. Когда у тебя выбор поправить war-ку за 5 секунд или ждать 10 минут пока сбилдится, а потом зальется на сервак хз за сколько времени, думаю, что ты выберешь первое. Но это, конечно, зависит от того бывают ли у тебя такие проблемы. А писать xml ради просто xml... Ты поехавший же! Обновил пост - увидел про строчки. Ну переходи на скалу там или на хачкель сразу - ух сэкономишь!
>>937337 Мы же про способы объявления бинов и говорили. Как вообще @Transactional связан с ява конфигурацией? За это отдельный бин пост процессор отвечает, независимый от стиля конфигурации. Я могу ебануть @Transactional над классом и объявить его хоть в xml, хоть в груви, хоть в яве, хоть компонент сканом найти. @RequestMapping, @Repository, @Scheduled, остальная хуйня - тот же случай.
>>937338 >Несколько раз пригождалось и это ахуенно. Когда у тебя выбор поправить war-ку за 5 секунд или ждать 10 минут пока сбилдится, а потом зальется на сервак хз за сколько времени, думаю, что ты выберешь первое. Я выберу второе. Потому что если я не дай боже забуду этот же хотфикс себе в проект внести и закоммитить, кто-то пройдёт через боль пытаясь понять, почему запущенный сервак работает, а проект в гите - нет. Я через такую боль проходил, потому что у нас есть мудак в компании, который даже .class файлы в варках подменял. Никому не пожелаю.
>Обновил пост - увидел про строчки. Ну переходи на скалу там или на хачкель сразу - ух сэкономишь! Так я не про экономию. Я говорю, что ява конфиг - пиздец раздутый. А мне тут говорят, что xml хуже.
>>937342 >раздутый Ну так и Java раздутая. Тот же java-config можно сжать в несколько строк (как иногда делают некоторые извращенцы). А так навигация по коду в бесплатной Идее из каробки и проверка в компайл-тайме.
>>937330 > Именно так. Но как это противоречит тому, что он написал? А то, что бин дефинишены уже в контексте будут, как их на лету менять-то? Или там автоподгрузка?
>>937346 Дифинишны определяются xml конфигурацией. Которая может быть вне твоей джарки, а значит никак не связана с компиляцией. Без пересборки != на лету. Перезапуск приложения таки необходим (но не перекомпиляция, как в случае с JavaConfig'ом или сканом классов).
>>936894 >Раздадутся кудахи что мвц круто а джсф протух. Хуй >там. Протухло и то и другое. Фронт пишут на жс давно и >бесповоротно Cеку только минимально в jsp. Поэтому сразу извиняюсь за возможную тупость. А чем джс мешает? Это же из разных тем. Понятно, что свистоперделки на джсе. А основа веб-страниц уже на jsp/jsf. Разве нет?
Аноны, помогите, выучил java core, html, css. Хочу быть бекэндером на java. Некоторые аноны советуют сразу начать учить spring не которые говорят, что нужно учить JEE прежде чем переходить к спрингу. Как быть? Я вообще не имею представления, что есть бекэнд на джаве. Поясните пожалуйста
>>937353 Ты рест ручками на джсп решил пилить? Ну хз. Можно конечно, но зачем когда есть джакс-рс.
Смысл в том что жс фронт и рест на бэке подразумевают стейтлесс коннекшены. Никаких сессий, никаких лавйциклов. Джсф это стейтфул фреймворк. Хотя можно и не отслеживать состояние и пилить контролеры с реквест скоупом
А в дополнение. Стейтфул нужен если ты делаешь допустим сложные формы, включающие транзакции и обращение к долгим методам. Например юзер набрал корзину товаров. В жс и ресте это просто переменные в жс на локальном компе. В жсф это бин на сервере. Ты можешь его валидировать. Делать просчет вероятной доставки по адресу, наличие на ближайших складах и прочее. Это хорошо ибо данные не потеряются если у пользователя упал браузер. Пока у сессии не вышел таймаут данные сохранены на серверной стороне. Но это и лишняя память. Потому сейчас модно молодежно на goвне или еще каком хипсторском языке пилить сугубо рест обертки над субд, а логику переносить в жс на браузере. Сервер за 8 евро сможет тянуть хоть 1000 таких юзеров одновременно
>>937416 Двачую тоже хуй пойми чо блять за бекенд в жабе, но чувак все тщетно тут никто нихуя пояснить не может. Насолько я понял это тебе не питон с проксирующим сервером и джанго, и не рельсы с такой же хуитой и даже не пхп с апачем, это блять хуй пойми какое месиво. Контейнер сервлетов, сами сервлеты, в которых какая то хуита типа диспатчера, и тут типа начинается спринг или хуй пойми что это начинается из одних иксмлок нахуй. Если найдешь годноту скинь сюда плиз. Ну или давай вместе разбираться.
Спринг типа фреймворк с какой то своей ахуевшей логикой и кучей иксмлок. ЕЕ как я понимаю это всякие фреймворки которые поддерживают стандарты хуй пойми откуда взявшиеся.
>>937641 че-то не вкурю, заклонь ветку с сервака. скопируй тупо все содержимое локальной репо поверх только что заклоненного, коммить одинм комитом и запушивай на сервак.
>>937641 >Создал новый проект из старого, снова создал локаль, потом решил загрузить в тот самый удаленный, но выбило ошибку ожидаемо, что коммиты не совпадают.
Хули ты там создал? Склонировал чтоли проект в новую папку? Или скопировал в другую папку? И как ты потом блять какую еще локаль? Нахуй ты загружаешь еще раз ты же уже из старого создал.
Сука иди читай как с гитом работать не еби мозги нахуй или сломай себе пальцы больше не програмируй хули я блять я вообще пытаюсь помочь ретарду который даже проблему описать не может сука.
>>937766 ЕЕ - набор спецификаций всего лишь. Спринг их просто соблюдает. По сути, тебе нужен контейнер сервлетов, веб-фреймворк, dependency injection - фреймворк и орм-фреймворк. И стандартная шалупонь вроде junit и log4j. И все. Xml, кстати, в джаве не юзается уже лет 7.
>>937805 Нахуй ты вообще тогда живешь? А когда кто то говорит иксмлка в устной речи ты вечером приходишь надеваешь чулки и начинаешь себя хлестать и порезы на бедрах/запястьях делать? Ты блять забыл где ты находишься червь? Это не швабра, там можешь выебывацо. Так что иди нахуй питух пренципиальный
ИКСЕМЕЛКА ИКСЕМЕЛКА ИКСЕМЕЛКА как тебе? страдаешь пидор?
>>937805 Твоего макакерского мозга не хватает в осознание того что при написании иксмлка нажимается 7 кнопок, а буржуйско пидорского xml 5. Притом иксмлка это вполне человеческое название, потому это по дружески. А не в офисе где тебя начальник страпонит за то что ты говоришь не профессанально. Так что оставь свои галерные замашки, и будь нормальным поцаном.
>>937766 >grails интересно что за зверь такой Уже не нужен.
>>937610 Да на самом деле всё проще некуда. Вместо апачей и всякого говна у тебя есть контейнер сервлетов/аппликейшн сервер. Он управляет жизненным циклом твоего приложения и всякими мелкими ништяками вроде датасорсов и шаред либ. Контейнер сервлетов ловит http запросы и отправляет их на сервлеты в зависимости от маппинга в их настройках. Вот тут и начинается твоё веб приложение. Если у тебя Spring Mvc, то этот запрос попадает в DispatcherServlet, который через кучу обёрток отдаст его на обработку какому-нибудь контроллеру. Ну дальше уже всё как и везде: контроллеры, слой сервисов, слой доступа к данным, всякие вью да и всё. Для сбора всего этого зоопарка компонентов в кучу и связи между собой используется какая-нибудь шняга с наклейкой IoC/DI. Например всё тот же Spring Core (это его главная функция). Делается это с помощью сканирования классов, либо с помощью конфигов (xml, java, groovy), да. Для работы с данными используют ORM фреймворки (см. Hibernate), чтобы не херачить руками sql (а херачить hql) и не мапить результаты запросов в объекты. Ну и еще нужно что-то, что скомпилит твои файлы и соберёт из нах jar/war с учётом зависимостей и всего этого говна: тут на выбор maven/gradle. Чтобы вкатиться в это говно быстрее есть тысячи туторилов по 15 минут https://spring.io/guides здесь.
>>937451 >йтфул нужен если ты делаешь допустим сложные формы, включающие транзакции и обращение к долгим методам. >Например юзер набрал корзину товаров. Честно говоря я тот еще нуб. И полностью(до охуенности) не осознаю, что такое рест, хоть и крутится на слуху уже давно. А про серв за 8 евро и вычислениями на клиенте, это ты нормально задвинул, интересная инфа, спасибо)
>>938120 Да он и про стейтфул магазин нехило задвинул. Ни один вменяемый человек на этой планете не любит стейтфул протоколы. А вайлдфлаеёб любит. Не наводит на мысли?
>>937610 КОНТЕЙНЕР СЕРВЛЕТОВ Сам не эксперт, могу объяснить как понимаю. Контейнер сервлетов - хуйня которая держит контекст(сервлетов). В простом случае один контекст на одно веб-приложение(но офк не всегда). В контейнере лежат сервлеты, которые мапятся на определенные url'ы. Сервлет принимает реквест и отправляет респонс(можно указывать разные методы http-протокола). Код сервлета обрабатывается естественно в разных потоках, шобы клиент не ждал конца работы предыдущего. СПРИНГ И ЕЕ ЕЕ - набор спецификаций, спринг поддерживает, но не все. Когда спринг противопоставляют ЕЕ, в массе своей речь идет о спринг vs ejb. Одно из главных различий в том, что EE работает на кошерном application servere(контейнер сервлетом + разная хуйня), а спринг на обычном контейнере сервлетов. Да, у спринга логика охуевшая. Базируется она на DI, управлении классами бизнес-логики(bean'ами), которые по стандарту сингольтоны и создаются при старте приложухи, ну и на проксях. Вокруг всего этого уже вяжутся разные Aspect-oriented programming и т.д. Это что касается spring core. Кроме этого спринг, как фейсбук и прочие монополисты, вливает в себя другие самостоятельные фреймворки, то есть получается такая большая каша из разных подфреймворков, использоваться все сразу естественно - не обязатательно
>>938134 EE - болото. EE стандарты писали какие-то аутисты для аутистов. Точнее для машин (аппликейшн серверов). Тот же спринг кор смотрится намного лучше, будто бы для людей делали. Хотя на дата слое везде ебаный хибернейт, а конфигурацию все любят на аннотациях, так что если не заморачиваться по деталям (заморачиваться стоит), то всё сведется к выбору между @Inject/@Autowired и @Component/@Singleton. Ну и для не EE приложений нахуй не сдался аппликейшн сервер, который по всем параметрам выглядит как взрыв из прошлого.
>>938146 >@Inject/@Autowired и @Component/@Singleton. Ну и для не EE приложений нахуй не сдался аппликейшн сервер, слышь, братан, а ты может подскажешь, почему service(или DAO) инджектят в контроллер? Это нормально или говнокод? Просто в моем понимании заинджектится полюбасу один объект, даже если сконфигурировать скоуп не синглтон. Ну тоесть многопоточность от этого не страдает? Просто на чистых сервлетах я бы в каждом запросе новый DAO крепил
>>938158 >а ты может подскажешь, почему service(или DAO) инджектят в контроллер Дао - плохо, сервис - хорошо. Что еще туда по твоему инжектить?
>Просто в моем понимании заинджектится полюбасу один объект, даже если сконфигурировать скоуп не синглтон Нет, если будет прототайп, то на каждый инжект создастся свой объект.
>Ну тоесть многопоточность от этого не страдает? А схуяли должна?
>Просто на чистых сервлетах я бы в каждом запросе новый DAO крепил Нахуя? DAO - стейтлес объекты.
>>938162 Плюсану к >>938164 этому парню. Только rest наружу выставлять можно, любая попытка внедрить хоть немного фронт енда на яве обречена на провал.
Жабаны еще вопрос. Тупой вопрос, так что не горите сильно. Иногда нахожусь далеко от нормального комплюктера, под рукой только нетбук. Иде не поставишь. Да и хз сервер локально сожрет 2 гига наверное. Все будет тормозить. Отюсда вопрос обойтись каким нибудь сублимом атомом можно? мавен под виндой запустится из консоли? Лольный сревак может всетаки будет работать?
>>938178 > мавен под виндой запустится из консоли? Почему не должен? Там и грэдл запускается, и ант. > Отюсда вопрос обойтись каким нибудь сублимом атомом можно? Можно. > Да и хз сервер локально сожрет 2 гига наверное. Jetty не настолько прожолив. > нетбук Не проще ли заменить на ультрабук с ssd? Или что-то вроде этого https://www.avito.ru/moskva/noutbuki/karbonovyy_lenovo_i5-4300u_4gb_1000gb_918761920 только батарею заменить на полегче и диск на ssd. За счёт дикса компенсируется потеря в батарее.
>>938124 Не ври. Я выше как раз написал, что не стоит ни джсф и спрингмвц использовать. Что стейтфул устарело и только для узких задач нужно, а в хипсторском мододежном веби нужно юзать стейтлес на основе рест и фронта на жс. Вфф
>>938242 Я мог бы расписать плюсы и минусы каждого подхода. Но похоже ситуация повторяется. Меня тут хейтят и все что я пишу нахуй никомуне интересно. Впрочем какое дело вкатывальщикам до горизонтальной масштабируемости. Вфф
>>938162 Если тебе интересно. То что ты перечисляешь - попытки сделать что то лучше jstl В джсф используются фейслеты и неймспейс ф кля компоновки. Для жсф есть либы как сервисные так и компонентные для фронта. Есть попытки связать их с модными цсс темплейтами и жс фрймворками. Не згаю как сейчас но раньше был жив bootfaces. Но например никто не запрещает использовать любой цсс и жс фреймворк в джсф а ел использовать чисто для инжекции данных с стейтлесс контроллеров. Но этот подход говно. Джсф компоненты в большинстве своем сделаны под стейтфул. Они хранят данные сессии на сервере. Они подчиняются лайвциклам. А вырождение лайвцикла до реквест скоупа точно так же дергает постоянно дао бины как делал бы это рест. Потому проще сразу делать рест. Но в случае с рестом усложняется аутентификация. Приходится вместо декларативного метода с использованием jaas использовать jwt. Ибо рест не должен уметь сессии. Так что тут 2 стула. Я например советую админку делать на джсф. А юзерский фронт уже на жс+рест
>>938246 Тот же магазин например. Админка с ведением номенклатуры цен и прочего делается на джсф без особых извращений. Анонимный юзер видит каталог на жс с данными о товарах подгружаемых по ресту, картинки вообще статика. Корзину можно сделать на жс и запонимать итем айди и количество. Но вот настал момент чекаута. Юзер должен аутентифицироваться. Должен подтвердить данные о товарах и количестве, должен подтвердить адрес доставки и самый главный этап - провести транзакцию по карте, которая тоже не моментальная а по сути работа с удаленным апи платежной системы. В момент платежа может придти отказ транзакции, таймаут или еще что. В данном сценарии стейтфул единственное решение которое гарантировано может управлять логикой чекаута. Транзакция чекаута с вложеной транзакцией к апи. Если делать это без транзакции то можно проебать все что угодно. Товар списался со склада, но платеж не прошел, в случае без сессии и транзакции как откатить это? Любые серьезные транзакционные логики требуют стейта.
В итоге что имеем? Админка магазина - джсф, можно стейтфул если вводим количество, можно и стейтлесс если номенклатуру. Анонимный покупатель рест и жс. Момент чекаута связанный с авторизацией, персональными данными и транзакцией с платежной системой - только стейтфул.
Это вкоатце. Есть с схеме и подробности но я и так уже страницу написал. У хейтеров весь день бомбить будет. А я не люблю конга меня пидором называют.
>>938248 > В данном сценарии стейтфул единственное решение которое гарантировано может управлять логикой чекаута. Транзакция чекаута с вложеной транзакцией к апи. > Если делать это без транзакции то можно проебать все что угодно. > Товар списался со склада, но платеж не прошел, в случае без сессии и транзакции как откатить это? > Любые серьезные транзакционные логики требуют стейта. У белых людей это решается через CQRS
>>938249 Я не знаю что это. Но для сохранения целостности обычно принято использовать транзакции. Распределенные или локальные. В моей схеме это вполне локальная транзакция, охватывающая и работу с бд и с удаленным апи. Туда можно было запихнуть например кведомления по смс или почте, двухфакторную аутентификацию и прочее
>>938250 > Я не знаю что это. Все действия надёжно записываются в журнал, а потом последовательно обрабатываются и результат записывается в обычную базу. Если сервер внезапно сгорает, следующий просто загружает журнал из какой-нибудь сассандры и начинает с того же места.
>>938252 Если сервер сгорает то баланссер перекидывает клиента на очередную ноду кластера. Сессии и стейтфулл бины хранятся в распределенном кеше и подхватываются на новой ноде.
Писал пару месяцев на жсе и питоне. Хуйня полная. Особенно жс. Возможно вы назовете меня дауном, но мне нравится синтаксис жабы. Так что я с вами анончики. Буду дальше вкатываться в джаву. Может что нибудь из этого и выйдет.
>>938248 Ну я хз, но пока мне твои посты понятны, так что пейши есчо. Звучит логично, да я нубас но всетаки. А когда начинают предлагать какие то непонятные вещи с журналами и другими неизвестными космическими технологиями, это сразу напоминает жс тред с их вебпаками бебеалми кофискриптами и прочими гульпогрунтами.
>>938245 >И да спрнг это ебаная каша астрактныхпроскифакторсинглтонов. >Уже за одно это его можно не любить В твоём-то вайлдфлае бины магией создаются, без синглтонфактори. Там жопа такая же. И хибернейт тот же.
>>938242 >Я выше как раз написал, что не стоит ни джсф и спрингмвц использовать. А спрингмвц чем тебе помешал? Он то на ура джексоновский сериализатор в качестве вью использует.
>>938297 Это разновидности бинов. Стейтфул сохраняют состояние, стейтлес нет. Еще есть мдб бины, которые обычно имеют один метод на обработку входящего джмс сообщения. Алсо есть синглтоны, шедулер бины. Так же еджб уеаследовали ремот и локал интерфейсы. Но для вебсайта они особо не нужны. Обычно бины выполняют роль фасада для джпа, хранят бизнесметоды, являются контроллерами для реста джсф и прочего.
Есть один нюанс который ставит нубасов в тупик а именно. Сам по себе джсф имеет собственную реализацию бинов. Это позволяет написать на джсф сайт и задеплоить его в любой контейнер умеющий веб профиль ЕЕ. Томкат, джетти. А есть еджб бины. Ну или спринг бины. Аннотации для всех типов бинов похожи и в инете сраная куча примеров разных видов. Тут важнее понимать что для еджб биеов нужен контейнер фул профиля ЕЕ. То есть проект на еджб бинах уже не будет работать в томкате. Так что если мы описываем бин как @Named то его скоп должен быть тоже из ЕЕ неймспейса а не джсф. А если как @ManagedBean то это бин джсф и анноьация скоупа должна быть из джсф. Уороче правило - не смешивать типы бинов и аннотаций. Либо если смешиваем то должны знать что делаем. Удобнее использовать еджб на контролерах потому что мржно инжектить бины фасада дао. Тут кстати тоже есть две аннотации. @inject и @ejb. О различиях почитай сам. Но лучше использовать вторую.
Оьычное приложение веба выглядит так. Жнтити классы для джпа. Еджб фасад поверх джпа. Еджб или джсф контроллеры поверх фасада.
>>938301 Бины создаются на основе пулов. Конфигурации пулов настраиваешь сам. Контейнер управляет и выдачей и пассивизацией бинов, алсо если используется распеределенный кеш то управляет и им. А вообще ты злой. Из-за тауих как ты я редко пишу тут
>>938303 Такой подход возможен. Но в рамках CI работают с исходниками. Таск собирает мавеном билд, прогоняет тесты, и может задеплоить если все успешно.
Алсо последний за сегодня мой совет вкатывальщикам в ЕЕ. Потратьте время на изучение докера. Испольщуйте его. Субд в контейнере, Апсервер в контейнере, свой гитсераер в контейнере, свой дженкинс в контейнере Основная система чиста и не засрана.
>>938335 В будущем на собеседовании если даже вы обосретесь в написании краснрчерного дерева, всегда можно перейти в девопсы скащав что охуено шарите в лайвцикле приложения. Про билды дженкинса, автотесты и CI наплетете и профит.
>>938319 Если честно, ебанутый прав, так как war-файлы по сути бинарные и если хранить их в гите, то репозиторий сильно будет расти в размерах, а никакой выгоды не будет. Вообще любые бинари в гите не стоит хранить.
>>938343 Дак никто и не говорит что это для своего собственного гуглоамазона, просто пока нету возможности настроить ci и прочее и чтобы это все еще работало более менее приемлемо. Например можно постоянно дропать ветку каждым новым варом, тогда он не будет так сильно разбухать, а будет содержать только размер самого вар файла и все.
>>937935 молю, расскажи как ты видишь становление java back-end программистом? Вот мое видение: html, css, javascript(база), http, java core. Далее что нужно изучать? Java servlet API далее Java Application servers и только после этого спринг? цель именно грамотно влиться в эту тему и как можно быстрее стать человеком которой хоть что-то может написать в плане back-end разработки. И да, хочется слезть с мамкиной шеи.
Вот смотри, есть инструменты для чего-то предназначенные хорошо, а для чего-то - не очень. Гит не предназначен для хранения бинарных файлов, храни их в другой VCS, в гитлабе, хоть в небе с Аллахом, но не пытайся в ответ на совет сделать по-человечески убеждать людей в том, что они неправы.
>>938306 >фул сохраняют состояние, стейтлес нет. >Еще есть мдб бины, которые обычно имеют один метод на обработку входя Уже не первый раз вижу, как в качестве примера аппсервера называют томкэт. Он же обосанный аппсервер, разве нет?) Вроде как даже ее7 не поддерживает
>html, css, js Не особо нужны бекенд разработчику, но в 2017 не знать основ этих вещей - дурной тон.
>http Слабо представляю, что там учить. Реквест-респонз, полтора статуса и пять методов? Но вот понимать что такое стек протоколов было бы неплохо.
>Java servlet API далее Java Application servers и только после этого спринг? Ну все же работа со спрингом и с EE стеком часто противопоставляется (не смотря на вполне себе интеграцию спрнга с тем самым стеком), так что нет нужды учить их по порядку. Что интереснее - то и бери. Вон напиши гостевуху на рандомном выбранном стеке - отличный способ научиться писать код. И вообще, главное писать код. Можешь прям на гитхаб выкладывать и сюда ссылки кидать: тут тебя быстро в гавно окунут и подскажут что не так.
>>938479 >Докер тоже не без слабых мест их там много, не спорю. Но он позволяет с минимальными потерями разворачивать инфраструктуру из работающих приложений без предолинга, в шиндошсе >спрингом и с EE стеком часто противопоставляется Так это потому что это фактически альтернатива. Делающая одно и то же. По моему мнению в ЕЕ все гораздо удобнее. У спринга функционала больше. Например АОП охуеная штука. Просто охуительная.
>>938481 да ладно, какого гавна и кастылей в зависимости не напихают, лишь бы не притрагиваться к стандартным апп серверам. Естественно, там надо разбираться, как это чудовище работает, что как бы намекает, на то как эти кодеры с таким отношением избеганием непонятного, на самом деле пишут код.
>>938428 Я понял что ты имеешь ввиду, но просто хочу добавить, что если не мержить то вполне удалятся. Удалил ветку локально и удаленно, созадал ветку локально, закомитил в нее вар файл, и запушил на удаленный сервер. Там переключился на ветку с варом.
Звучит ебануто, но яж не собираюсь это использовать как супер мега правильную версию, хотя думаю проще скрипт написать, который по ссш кидает его на сервер и не парится.
>>938484 мое мнение, что аопу вообще не место в нормальных приложениях, которые требуется поддерживать после старых разработчиков. Пона хуярят оберток в разных местах, потом сиди жри это киллометры эксемеля, чтобы найти где-жн всетаки это говно вызывается. Для всех этих костылей, а обычно это все для мониторинга используют, в подавляющем большинстве случаев, уже есть готовые решения на базе облачных профайлеров.
>>938486 Например хороший апсервер почти все фреймворки несет в себе. И в депенси достаточно добавить лишь пакет с api. >>938495 Скажу на своем личном примере. Есть приложение на спринге. Без исходников. Декомпилировать его можно для понимания логики. Но пересобрать хуйнаны. Чтобы переопределять методы в готовых джарках остается лишь один метод. Через хмл внедрить аоп и подменять по сигнатуре метода его код.
>>938499 суровые будни. Пример прям зашибись. Но из-за того, что ты нашел костыль для конкретной ситуации, это не значит что аопу есть место в обычной разработке без подобных барьеров.
>>938505 Я вспоминаю свои бывших коллег, которые джава гуру, и не в зуб ногой во фронт. Любая задача где нужно прикрутить простяцкий юзер интерфейс на их контроллер, сразу всплывает с 30 а то и выше юзер поинтами. Так и просрали все полимеры.
>>938510 Да и все бэк решения были всегда говно, если чел не варится в общейтеме, то и кругозор соответствующий, джава 1.6 для настоящих мужиков, митал, крутые тачки, турция - курорт и т.д.
>>938516 >настоящих мужиков, митал, крутые тачки, турция - курорт и т.д. Ведь должно быть так настоящих хипсторов, построк, гироскутеры, тайланд - удаленка и т.д. разве нет?
>>938484 >их там много, не спорю. Но он позволяет с минимальными потерями разворачивать инфраструктуру из работающих приложений без предолинга, в шиндошсе Ну это очень хорошо, если у тебя на проекте все им пользуются и весь процесс налажен. Краснаглазить в одно лицо уныло.
>По моему мнению в ЕЕ все гораздо удобнее. По мне наоборот.
>У спринга функционала больше. Большая часть которого - всякие спринг даты, буты и интегрейшны, уровень кода которых значительно ниже, чем у ядра. Вот рядом со мной парень сидит и кодит на EE стеке после спринга. И по его словам он вообще разницы не видит. Потому что @Inject, а не @Autowired - так себе смена парадигмы.
>Например АОП охуеная штука. Просто охуительная. На любителя. Я признаю только аннотированные поинткаты.
>>938486 >Естественно, там надо разбираться, как это чудовище работает Любая сложная система выглядит чудовищем для незнакомого человека. Люди и к спрингу боятся подходить. Он же тоже обширный.
Задали сделать "декодировщик". Типа есть текст с полетевшей кодировкой, и нужно наклепать прогу, которая восстанавливает эту самую кодировку. В винхексе ношол правильную кодировку, но вот не знаю, как это реализовать в программе. Исходный текст в ANSI 1251, восстанавливается текст в CP866. Опять же, восстановленный текст должен быть в 1251. Направьте плес, как мне это реализовать в программе? Просто залипая в таблицы кодировок ну вот никак я не вижу так какой-либо логики.
>>938246 я бомж, можешь объяснить что за рест? В моем понимании - это просто набор конвенций в юрлах и эйчтипипи методах. В нем типа на джакс-рс что-то охуенное делать можно?