[Ответить в тред] Ответить в тред

15/10/15 - Набор в модераторы 15.10 по 17.10
27/09/15 - Двач API — Инструкция к применению
15/09/15 - Про пожертвования и ДДоС

Официальная Телеграм конфа Двача **CLICK**


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 124 | 6 | 60
Назад Вниз Каталог Обновить

Разработка веб-сайта на java Аноним 03/01/16 Вск 22:08:54  618046  
14518481347890.jpg (32Кб, 301x301)
Суть темы.
Приветствую тебя умный анон. Суть темы в том, что материала типа "выучи джаву за 21 день и стань джуном" куча, но очень мало материала по сайтостроению или EE. И хотелось бы собрать инфу по этому вопросу.

Предисловие.
Программируя на пхп, я осознал свою никчемность я осознал, что мне нужно реальное веб приложение, с более менее хорошим быстродействием и параллельными вкусностями (а не круговорот постоянных инициализаций каждый раз в скриптах), статическая типизация, компиляция и прочее вкусности для приложений средний или большой величины.

Вопросы.
Пробегаясь по языкам, я остановился на джаве, но открыв джава EE я несколько офигел.
Отсюда выплыли следующие вопросы.

1. Есть ли более легкие пути чем EE для создания сайтов, если такое имеется, то имеет ли это все какой-то термин, чтобы можно было загуглить?

2. Какой стек технологий сейчас используется для построения простых веб приложений (не совсем хоум странички, но и не энтерпрайз банка, например, хочу написать по старинке некий портал с форумом)?

3. Можно где-то откопать сорцы сайтов (типа гитхаба) или CMS'ок, чтобы посмотреть, как вообще пишут сайты на джаве?

4. Кидайте вообще любые материалы по теме, хочется собрать все что возможно, так как я немного в ступоре (материал русскоязычный так же приветствуется, даже устаревший, хотя конечно я все понимаю - инглиш наше все).

PS так же можете кидать ссылки по любой тематике джавы, не только для веб-сайтов, все полезное схоронится и передастся так же потомкам, вспоминая труды анона.
Аноним 03/01/16 Вск 22:26:02  618065
ну блять, а сервлеты - вся вот эта хуйня
ты смотрел на них?
Аноним 03/01/16 Вск 22:28:41  618067
>>618065
сервлеты смотрел, смотрел jsp и даже о jsf узнал, поэтому хотелось бы полный стек услышать, чтобы быть в тренде, а не на голых сервлетах писать.
Аноним 03/01/16 Вск 22:29:34  618069
https://www.playframework.com/ - для сайтов
https://spring.io/ - для энтерпрайз приложений
Аноним 03/01/16 Вск 23:09:27  618106
>>618069
play там вроде уклон больше на скалу?
Аноним 03/01/16 Вск 23:13:39  618114
По Spring предложу два стула:
http://start.spring.io/
http://jhipster.github.io/

С первым получаешь немного магии, быстрый старт и минимальное приложение, разбираешься и добавляешь функциональности.
Со вторым - получаешь сразу просто дохуя магии, бест практис по версии авторов и ковыряешься в куче всего, чего тебе даже не понадобится.

По play, если интересует java, то нужно смотреть первый.
Аноним 03/01/16 Вск 23:26:32  618128
>>618114
хипстеры конечно хорошо, но хочется быть в мейнстриме. Пускай со всей болью, но надежно и надолго.
Конечно интересуют лучшие практики.
Пока нарыл такой стек
-maven (помима управления пакетов им еще развертывавают)
-spring DI (в видосах говорят что достаточно депендеси инжекшен только, хотя у j2EE есть вроде CDI крутой какой-то?)
-Hibernate(для базы)
-log4j (для логов)
-я так понимаю jsp (не уловил фишку jsf, там XHTML, а HTML 5 не поддерживается?).

Томкат - как "сервер", я так понял один томкат на один сайт? А для нескольких доменов glassfish?

Вроде ничего не забыл.

Насколько это будет все шустро, если я проект с пхп перенесу, не выйдет так, что я смогу еще просесть в производительности или по ОЗУ (например из-за хибернейта)? При условиях, что я пишу правильно :) (то есть насколько это все тяжело для простого сайта)
Аноним 03/01/16 Вск 23:32:26  618132
>>618128
Нарыл тесты хибернейта и jdbc, ну собственно оверхед как в любой ORM там, в моем случае наверно jdbc через (пока мне неизвестный) DAO лучше подойдет?
Аноним 03/01/16 Вск 23:59:11  618154
Поддержу тред, вкинув ссылку

http://dou.ua/lenta/articles/java-enterprise-guide/
Аноним 04/01/16 Пнд 00:24:08  618178
>>618154
годная инфа, благодарю
Аноним 04/01/16 Пнд 00:27:55  618181
>>618132
При всей спорности, но также вброшу https://github.com/akullpp/awesome-java#web-frameworks
Аноним 04/01/16 Пнд 00:36:47  618191
>>618178
Не за что

У меня все равно как-то руки опускаются от количества всех технологий

Ментора тоже нет, преподы нулячие в моей мухосрани

Эх, дизмораль
Аноним 04/01/16 Пнд 00:37:13  618193
>>618046 (OP)
Для любителей кушать под видео с трубы

https://www.youtube.com/channel/UCLAkvv3lfwveX2aqo2oO9GQ/playlists?view=50&sort=dd&shelf_id=5

Собранные в один плейлист видео Ивана Головача (не самая свежая публикация, но, помоему, самая богатая по стеку из всех)
http://www.youtube.com/playlist?list=PLwcDaxeEINaeOqd15C3D0PwotuKknFwxF
Аноним 04/01/16 Пнд 00:52:28  618214
>>618191
Стек технологий большой, но в то же время (я себя успокаиваю), что все это как бы проверенное годами и какой-то де-факто стандарт. Например, взяв другой язык с фреймворком, можно словить кучу внутри особенностей, сравнимых с со стеком в джаве. В пхп вообще каша, от части что-то похоже, от части больная фантазия очередного автора. Поэтому тут если и осилить, то более менее одно и все (а не каждые два года смотреть, что там выдумали нового).

По поводу ментора, это вообще проблема ИТ. Профи не хотят возиться, хеллоуворщики (любители тупо почесать языком, начитавшись хабра, но сами имеющие минимум практики) вообще могут бред в голову вбить, проку никакого.
Имхо, развиваться можно только силами самих обучающихся (буду бампать тему, как буду что годное находить).
Аноним 04/01/16 Пнд 00:54:04  618216
>>618214
>По поводу ментора, это вообще проблема ИТ
никакой проблемы
идёшь в норм контору
тебя учат
Аноним 04/01/16 Пнд 01:30:53  618249
>>618191
Про технологии это все бред. Я лично знаю человека который работает начальником отдела разработки ПО одного из крупнейших банков на территории экс-совка, он мне по секрету признался что когда принимает на работу смотрит на самого человека, его качества и поведение, а то какие он там технологии знает это уже все до одного места.
Технологий миллиард, в энтерпрайзе миллионы, все не выучишь ни при каких условиях, если тебя захотят загрузить на собеседовании то с легкостью загрузят. Претендентов сотни на место, им есть из кого выбирать.
Что нужно чтобы устроиться на работу? Ходить по собеседованиям, это как игра - если будешь часто кидать кубики, то рано или поздно выпадут нужные цифры.

Аноним 04/01/16 Пнд 01:53:13  618270
>>618214
Минутка надежды в этом треде

Ты на каком уровне "погрязания" во все эти технологии?

По конторам рассылал резюме, был даже на стажировке. Учителя сказали, что каждая компания редко использует опенсорсные фреймворки, часто это коммерческие, вбив название которых в Гугл мало что узнаешь. Но мне даже названия не сказали - по рангу было не положено.
Аноним 04/01/16 Пнд 01:59:33  618275
Кстати, у шарперов есть своя конфа в телеграме. Думаю, стоит запилить для джаванов или всем похуй?
Аноним 04/01/16 Пнд 02:08:07  618277
>>618275
есть конфы в гиттере, вроде иногда новости мелькают там и слегка флудят.
Аноним 04/01/16 Пнд 03:55:25  618305
>>618275
Закинь @DefDef, если прочитаешь
Аноним 04/01/16 Пнд 13:51:27  618441
Так, аноны, запилил конфу в телеграме

Не знаю, взлетит или нет

https://telegram.me/joinchat/Bbfo5gUiYnQn8tWtl0OlrA
Аноним 04/01/16 Пнд 14:37:25  618463
>Предисловие.
>Программируя на пхп, я осознал свою никчемность я осознал, что мне нужно реальное веб приложение, с более менее хорошим быстродействием и параллельными вкусностями (а не круговорот постоянных инициализаций каждый раз в скриптах), статическая типизация, компиляция и прочее вкусности для приложений средний или большой величины.
C S H A R P
S
H
A
R
P
Аноним 04/01/16 Пнд 16:24:11  618537
>>618463
Люди говорят про серьезную разработку веб-приложений, а не окошечки писать под винду.
Аноним 04/01/16 Пнд 17:42:17  618605
>>618537 ASP.NET MVC, шизик.
Аноним 04/01/16 Пнд 18:21:43  618635
>>618605
если только ты оплатишь мне все мелкомягкие лицензии на дедик и еще будешь админить с гарантией, а не с чистой верой что все это в боевых условиях выживет.

О мире шарпея
А вообще, сейчас фокус это веб разработка и мобильное гуано. Поэтому винда, даже с корявой моно, даже с опенсорсным с сообществом 2-3 человека, и даже с обещаниями, что патентами не тронут :) - идет просто лесом.

Да мой юный студент, когда тебе промывали мозг в универе, весь мир писал на опенсорсе и не хило так поднялся не имея зависимости от одного поставщика. Поэтому иди со своим шарпом в конторы где надо конвертировать эксель таблички с вордом и не мешай дядькам творить будущее.
Аноним 04/01/16 Пнд 18:24:23  618641
>>618635
Дядька диванный, так еще и нищий.
Аноним 04/01/16 Пнд 18:35:43  618649
14519217438030.jpg (71Кб, 604x402)
>>618641

>так еще и нищий.
Аноним 05/01/16 Втр 14:28:39  619130
>>618635
>если только ты оплатишь мне все мелкомягкие лицензии на дедик
На дедик чего, ебанашка? ASP.NET давно уж легко крутится на прыщах.
>еще будешь админить с гарантией, а не с чистой верой что все это в боевых условиях выживет
Что несет, вообще охуеть.
>:)
>идет просто лесом
Бля...
>Да мой юный студент, когда тебе промывали мозг в универе, весь мир писал на опенсорсе
Даденька, почему вы дегенерат? ASP.NET опенсорс уж давно.
https://github.com/aspnet
>не мешай дядькам творить будущее
>жаба
>будущее
М, ясн...
Аноним 05/01/16 Втр 19:20:14  619391
>>619130
тебе явно сказали, с кривым моно или костылевыми поддержками идти лесом.
Запустить хеллоуворд в 100 строчек, еще не значит вести проект на линухе с хреновым количеством запросов в секунду.
То есть, ты можешь писать код, а можешь себе загнать в кишку метровую трубу. Писать код как бы ты будешь, но в последнем случае весьма неудобно. Так вот шарп на линухе это как эта труба, и возникает вопрос - зачем?
Опенсор нахер не вкотился без большого комьюнити.

В общем, все эти доводы бестолковы, это как онанизм, вроде юные головые успокаивает, но на практике проблем не решает.
Аноним 05/01/16 Втр 20:47:20  619475
>>619391
>тебе явно сказали, с кривым моно или костылевыми поддержками идти лесом.
Причем тут моно, уебан? ASP.NET vNext + .NET Core нативны для линукса.
>Запустить хеллоуворд в 100 строчек, еще не значит вести проект на линухе с хреновым количеством запросов в секунду.
Расскажи это разработчикам стаковерфлоу, уебище беспруфное.
>Опенсор нахер не вкотился без большого комьюнити.
Дефайн большое комьюнити.
>В общем, все эти доводы бестолковы, это как онанизм, вроде юные головые успокаивает, но на практике проблем не решает.
Проблема тут только в твоей ДНК.
Аноним 05/01/16 Втр 21:19:38  619508
>>619475
Это все жутко сырое и не работает. Проверяли неделю назад. MS еще нужно лет 10 пилить свой .NET чтобы он НОРМАЛЬНО! работал на Linux
Аноним 05/01/16 Втр 22:19:01  619559
Если ОПу еще интересно.

Работаю в организации джуниором, разрабатываем систему в сфере транспортной логистики, в общем самый энтерпрайз.

JBoss используется в качестве сервера приложений (аналог GlassFish)
К нему в нагрузку идет MS SQL Server и Hibernate.
Далее сразу в веб часть. Наши веб порталы реализованы в виде отдельных веб приложений. По одному приложению "на сайт" (условно, так одно приложения для конечных клиентов, второе для внутреннего пользования, и так далее). Вертятся все на одном томкате.
Далее по внутренностям.
Maven для сборки
Spring Framework как основа основ, как я понял это таки и есть стандарт дефакто. К слову этот же фреймворк можно юзать и для разработки standalone (ну т.е. десктопных) приложений.
Spring MVC - этакая обертка над сервлетами, более высокий уровень абстракции
Spring Security - авторизация и аутентификация пользователей с прочими куками.
Кроме этого юзают ExtJS для написания клиентского приложения (то что в браузер пользователю загрузится)

В более упрощенном виде Apache Tomcat используется как сервер приложений, т.е. то самое пресловутое веб приложение и будет твоей центральной частью, оно будет взаимодействовать с базой, с ним же будет взаимодействовать пользователь через клиентское приложение.
СУБД можешь юзать любую (ну точнее что подойдет под твои нужды). ORM - тот же Hibernate, особенно если у тебя развесистая модель данных, но можно юзать JDBC как есть, тот же spring имеет удобные обертки для работы с JDBC драйвером, зацени еще SqlBuilder с валидацией из коробки дабы SQL чистым текстом не писать.
В общем и целом накодил серверную часть, задеплоил в виде war архива на tomcat, далее стучишься по адресу из браузера.

О куче технологий в стеке. Да, может несколько демотивировать. Я когда пришел в организацию энтерпрайз даже близко не видел, не говоря уж о том что не знал как оно работает. Тем не менее под рукой были исходники системы. На текущий момент удалось изучить то что необходимо хотя бы для минимального использования так сказать в быту. Поэтому все в твоих руках, были бы исходники.

Попробуй на том же GitHub поискать веб приложения по ключам war, tomcat, spring mvc.
Аноним 05/01/16 Втр 22:48:15  619580
>>619559
маджента чтоли :3
Аноним 05/01/16 Втр 23:02:35  619594
Про Dependency Injection.
Сам по себе Java EE это набор спецификаций, их реализацией являются серверы приложений - JBoss, GlassFish и другие. Кроме всего прочего спецификация описывает такое понятие как IoC - https://en.wikipedia.org/wiki/Inversion_of_control , суть такова - тяжесть управления зависимостями между компонентами твоего приложения ложится на т.н. "контейнер", компонент спецификации и сервера приложений в частности. В его задачи входит управление частями твоего приложения - бинами. Контейнер выполняет внедрение ссылок одних бинов в другие (раньше делалось через развесистые XML, ныне через удобные аннотации). Бины в общем случае это сервисы предоставляющие услуги для работы с некоторого рода данными.

Скажем ты делаешь портал для управления персоналом (условно). Тогда в таком приложении могут присутствовать следующие сервисы
EmployeeService - предоставляет операции для добавления/уволнения сотрудников, получения различной информации по сотрудникам
WageService - сервис для начисления зарплат сотрудникам, такой сервис точно должен быть связан с предыдущим так как нужно получить где-то списки сотрудников для расчета зарплаты.
Оба сервиса также имеют ссылку на компонент обеспечивающий работу с базой (предоставляется самим контейнером).
Ну ты понел.

В общем и целом, контейнер (IoC, CDI или DI) предоставляется спецификацией ЕЕ и присутствует в типовых серверах приложений. Tomcat однако не реализовывает спецификацию, поэтому своего контейнера не имеет. В тоже время контейнер есть у Spring (опять же, в разработке под десктоп Spring дает все плюшки IoC). В области сайтов на Java я начал бы с семейства фреймвороков Spring, а как основы будут усвоены можно глянуть на что-нибудь еще.

Аноним 05/01/16 Втр 23:03:25  619595
>>619580
>маджента чтоли :3
Мало что-ли контор занимающихся транспортной логистикой? да :3
Аноним 06/01/16 Срд 00:12:41  619664
Яков Файн - приятный украинский еврей вещает из ньюйоркщины тотал нуфагам, ооочень годно, толково и доходчиво, прям с нуля и хорошо по стеку и принципам идет, с примерами и задачами. Слышал что один работодатель приннимает на работу узнав что нуфаг обучался по его книжке. Не знаю на какой ты стадии, может кому-то другому будет полезно.- https://www.youtube.com/playlist?list=PLkKunJj_bZefB1_hhS68092rbF4HFtKjW

А вот Сергей Немчиский, ссылки на его статью здесь уже вбросили, на своем канале очень много и в деталях рассказывает об особенностях ЕЕ кухни в этих странах, менторство, устройство, собеседования, рабочий процесс, стек технологий которыми пользуються реально, а не хипсторы, и т.д. Иногда беседует в чатике лайв - https://www.youtube.com/channel/UCVbz7l0COUdLupcY4YtYH0w
Аноним 06/01/16 Срд 01:41:07  619769
>>619559
Спасибо анон, полезная инфа.
Аноним 06/01/16 Срд 01:59:19  619781
>>619508

[режим теории заговора]
на месте мс я бы не стал делать дотнет лучше чем на винде вообще. Я бы сделал так, что как бы можно было бы, но чтобы если уже серьезный продукт вести нужно было обосраться и перейти на основную среду дотнета (это желание будет куда ярче если у вас уже тонна кода и программистов)
Аноним 06/01/16 Срд 02:24:45  619799
>>619475
>Расскажи это разработчикам стаковерфлоу, уебище беспруфное.
У них же вин сервер, не? Недавно обновляли пост с описанием своих технологий, win server стал r2, а не просто 2012.
Аноним 06/01/16 Срд 02:26:01  619801
>>618635
>А вообще, сейчас фокус это веб разработка
Она в фокусе уже довольно давно и ms решения там вполне себе живут.
Аноним 06/01/16 Срд 10:23:38  619901
>>619559
Спасибо, вот такого рода инфы не хватает всегда, и обычно узнаешь только при общении
Аноним 06/01/16 Срд 13:03:48  619956
>>618114
>немного магии
>немного
Аноним 06/01/16 Срд 17:05:04  620112
Шалом, парни. Тут есть кто-то кто работал с корпоративными приложениями? Нужны пару советов по архитектуре и вообще процессу.
У меня есть задача построить что-то внутренней корпоративной социальной сети с разными типами пользователей, возможностью загрузки видео, документов, изображений для определенных групп и определенных пользователей. В энтерпрайзе никогда не работал, но опыт своих поделий на схожем стеке имею.
Приложение строю на Spring Container, Sping Data, Spring MVC, Spring Seurity. На чем писать фронт еще не решил, скорее всего Angular, не будет получаться, буду пилить на JSP.
Пока что только сконфигурировал слоя, что дальше делать плохо представляю, кажется нужно маппить сущности - вот только не знаю как это сделать правильно с учетом моего Security слоя, прибегнуть ли к наследованию, или нет.
Короче если есть желание немного подсказать - оставьте фейкомыльца, или я свое оставлю, не важно.
Аноним 06/01/16 Срд 18:01:07  620153
>>620112
Касательно модели данных - по возможности избегай наследования. Допустим есть у тебя сотрудники, они делятся на некоторые категории, которые в свою очередь подразделяются на дополнительные категории, ну ты понел. Так вот в этом случае лучше всего реализовать один класс для сущности "сотрудник", а категории реализовать в виде свойств такого класса. Много проще потом это все в БД хранить ну и работать с этим.

А вообще я для себя выработал примерно такой порядок:
- модель данных (отражение предметной области в коде), сюда включаем создание классов сущностей и маппинг через твою ORM (Hibernate я надеюсь)
- сервисы - они же бины, предоставляющие услуги конечным "потребителям" по обработке твоих сущностей, добавление новых, удаление старых, формирование списков и так далее; сюда же включаем бизнес логику, которая выполняет некоторые дополнительные вычисления над данными перед тем как они уйдут в БД.
- клиентская часть - то что собственно и будет видеть пользователь, веб портал, мобильно приложение, возможно веб или REST сервис

В самом кошерном виде твои сервисы должны быть спроектированы так, чтобы предоставлять услуги любым потребителям. В этом случае ты не связан по рукам и ногам в реализации клиентской части. Сегодня намутил сайт, а завтра андроид приложение, при этом используя одни и те же сервисы твоего ядра.

Перед тем как непосредственно кодить лучше спроектировать свое решение. Определить требования, которые предъявляются системе, какие возможности она должна иметь, что пользователям можно будет делать с ней. Т.е. скажем, начинаешь проектирование с пользовательского интерфейса, в течение этого процесса формируешь требования для твоих сервисов в ядре. Модель данных впрочем лучше строить на основе прикладной части с которой ты работаешь, потом немного корректируя под нужды или же ограничения системы.

Стремись к снижению сложности разработки. Между реализацией какой-то супер мега универсальной фичи и более простым но возможно топорным вариантом выбирай топорный. Во первых понизишь сложность разработки, во вторых проще будет потому самому сопровождать, в третьих сократишь время разработки. В конце концов с течением времени когда будет готов костяк системы можно будет реализовывать те самые супер мега фичи, но опять же всегда следуй принципу сокращения сложности разработки.

Помни еще один немаловажный момент. Разработка это во многом итерационный процесс. Порой решить некоторую задачу невозможно до тех пора пока ты собственно не начнешь ее решать. Некоторых подводных камней не видно в самом начале и ощутить всю сложность затеи можно только погрязнув в ней с головой. Поэтому и следует стремиться к сокращению сложности разработки - ты быстрее реализуешь первую версию, столкнешься с основными подводными камнями и с этим знанием сможешь приступить к следующей итерации и выпуску уже второй версии (при этом мы учитываем что первая версия должна быть юзабельной).
Не стоит стремиться сделать сразу все идеально - можно в итоге никогда не закончить.

Фейкомыльца - на мой взгляд идея плохая. В треде затронута очень важная тема. Оп все верно написал что есть тонна книга о том как изучить базись, но о том как именно кодить реальные рабочие системы написано крайне мало. Поэтому это стоит обсуждать в открытую - мне в свое время этого крайне не хватало.

На досуге рекомендую почитать Стива Макконнелла - Совершенный код. Книга фактически компиляция самых годных best practice именно о разработке вообще. Как стоит делать, как не стоит делать, как корректнее приступать и выполнять проектирование.
Аноним 06/01/16 Срд 18:20:13  620175
>>620153
Спасибо тебе антоша за такой развернутый ответ, очень помогло! Теперь хоть понятно с чего и как начинать.
Совершенный код читал конечно, но там больше технические детали языка, хотя вроде и по проектированию интерфейсов есть пару страниц.
Аноним 06/01/16 Срд 18:46:41  620205
>>620175
>Совершенный код
Наоборот же, главы до пятой рассказывают как раз о процессе проектирования вообще. Именно Стив Макконнелл пишет про сокращение сложности как об основном принципе которым следует руководствоваться при разработке и проектировании.
В любом случае добра тебе и успехов в разработке. Пиши читабельный и легко сопровождаемый код.
Аноним 06/01/16 Срд 19:43:04  620256
>>618249
>ПО одного из крупнейших банков

Не путай гавношарагу с ит-компаними. Из кого они там выбирают. Нормальный грамотный чел в банк не пойдёт.
Аноним 07/01/16 Чтв 00:11:07  620489
>>619580
Работал на похожем проекте в маженте лет 6-7 назад. По описанию от анона тоже подумал, что мажента, оказалась и вправду она. Бывает же такое
Аноним 08/01/16 Птн 09:07:31  621455
>>618046 (OP)

Spring MVC (JSP/Servlet) + JS-скрипты на клиентской части
Как вариант, все запросы к серверу делать через JS, на джаве только сервлеты

JSF/Tapestry/прочие компонентные фреймворки - с виду выглядит неплохо, но реально медленные, и если нужны кастомные компоненты или поведение - начинаются большие проблемы
Аноним 08/01/16 Птн 15:57:44  621639
>>620153
> Поэтому это стоит обсуждать в открытую
Спасибо тебе, анон.
Аноним 09/01/16 Суб 02:51:10  622000
>>620153
>Оп все верно написал что есть тонна книга о том как изучить базись, но о том как именно кодить реальные рабочие системы написано крайне мало

Так и есть, когда ты вроде уже умеешь кодить, нужен материал каких-то лучших практик, чтобы сразу ворваться и писать "как все" (точнее учиться писать как все, хуже нет, когда впитываешь инфу, а потом она просто оказывается не актуальна). Поэтому надеюсь сорцы найти, или быть может кто опубликует что (какой-то каркас, что не жалко). Нужен ориентир. Если не найду попробую какую CMS поковырять (хотя код CMS это та еще каша для головы).

========================

Может кто прям внятно расписать из каких слоев состоит веб приложение?
Как я уловил сервлеты->сервисы бизнес логики -> данные (типа сишных структур, рекорды еще зовут, но с геттерами и сеттерами)

Мне вот интересно, как например организовать кошерно в джаве такой подход:
Создание поста (сообщения) где либо (пользователь создает сообщение уже послал данные):

-адресуем (/post/save) на нужный сервлет:

-обрабатываем POST запрос, проверка корректности данных POST запроса (проверка наличия всех нужных переменных, их длин и определения какого-то поведения при наличие каких-то управляющих переменных (пользователь например отключил смайлы в посте)).

-парсинг тегов (например BB тегов как на дваче).
-парсинг смайлов (спец-маркеры переделываем в ссылки на смайлик).
-фильтрация/экранирование безопасности, вырезаем html и js возможные вставки.

-передача на сохранение (быть может какая-то операция экранирования для SQL безопасности)

-переадресация 302 на страницу комментов (допустим без ajax мы)


Как это все будет выглядеть в джаве? (прям детально не надо, надо базис уловить)

========================
Пока выпал чуток из темы, бампану
Видюхи (по EE)
http://www.youtube.com/watch?v=OQVTyjPzzeo&list=PLwwk4BHih4fjstwgKAHPAuUcjpRUiRh5k

У пользователя так же есть видосы по Spring по гуq и еще там что-то (полно материала, какой-то образовательный сайт, который опубликовал видосы)
Аноним 09/01/16 Суб 12:07:31  622083
>>618046 (OP)
Аноны, что скажете про GWT? Актуален он или нет? Стоит petProgect на нем мутить?
Аноним 09/01/16 Суб 15:12:00  622207
по-моему годные примеры-сорцы, название сначала отпугнуло, думал какой-то фрейморк очередной, но вроде то, что нужно.
https://github.com/jknack/modern-web-app
Аноним 09/01/16 Суб 20:34:42  622430
14523608823520.png (26Кб, 696x363)
>>622000
Разделяй весь процесс на абстракции. Скажем твой же пример.

>-адресуем (/post/save) на нужный сервлет:
>-обрабатываем POST запрос, проверка корректности данных POST запроса (проверка наличия всех нужных переменных, их длин и определения какого-то поведения при наличие каких-то управляющих переменных (пользователь например отключил смайлы в посте)).

Несомненно это вещи связанные непосредственно с транспортировкой запросов от клиента к серверу и должно это оставаться в пределах того же сервлета.

Далее

>-парсинг тегов (например BB тегов как на дваче).
>-парсинг смайлов (спец-маркеры переделываем в ссылки на смайлик).
>-фильтрация/экранирование безопасности, вырезаем html и js возможные вставки.

Это уже логика твоего приложения. Логика не должна знать подробностей о реализации транспартировки данных от клиента к серверу, не должна знать как потом данные будут у тебя храниться. Логика выполняет некоторую последовательность действий связанную с твоей предметной областью. В твоем примере это обработка сообщений от пользователя. Зацитированные пункты канонично должны находится в сервисе/бине твоего приложения.
Есть некий метод который и выполняет обработку, т.е. представляет собой некий черный ящик, который на входе получает сырую информацию, а на выходе отдает данные готовые для сохранения или каких-либо дополнительных действий.
Описанные действия можно в принципе разделить на отдельные сервисные методы, особенно если часть логики предполагается использовать в другом месте.

Последнее

>-передача на сохранение (быть может какая-то операция экранирования для SQL безопасности)
>-переадресация 302 на страницу комментов (допустим без ajax мы)

Готовые данные отправляются на сохранение.
Сохранением в БД в энтерпрайзе занимается EntityManager, у Hibernate для этого есть SessionManager, у JDBC драйвера это DataSource (если не путаю). В общем и целом это отдельный компонент, который также через CDI может быть внедрен в твои сервисные бины и именно этому компоненту потом передается информация для сохранения данных.
Если никаких исключений в процессе не упало то возвращаем пользователю ОК, в противном случае страницу/сообщение с ошибкой.

В итоге имеем следующее:
- сервлет принимает запрос от клиента, валидирует его и сырые данные передает твоему сервису (MessageHandlerService.handleMessage())
- сервис вызывает метод выполняющий непосредственную обработку данных (MessageHandlerService.parseMessage()), такой метод можно будет покрыть тестами
- далее сервис выполняет сохранение либо через DAO объект (MessageDAO.updateMessage()), либо через непосредственный вызов того же EntityManager (на случай если процедура сохранения не предполагает каких-либо сложных действий и обрабатываемая модель данных не имеет сложную иерархию)

Т.е. все можно свести к следующему порядку:
1. Обработка запроса от клиента
2. Передача сырых данных сервису
3. Сервис выполняет:
- непосредственную обработку данных
- сохранение данных в БД

Плюсом того что логика обработки данных вынесена в отдельный метод является возможность написания тестов. В этом случае не придется городить огород с тестовыми БД, моками сервлетов и прочего.

Дроби код на различные сервисы, одна сложная операция может быть разбита на несколько более простых, которые относятся к разным сферам твоей предметной области, и которые в дальнейшем можно будет переиспользовать в другом месте твоего веб приложения.

(пичка нарисована в draw.io)
Аноним 09/01/16 Суб 20:52:41  622451
>>622000
>Может кто прям внятно расписать из каких слоев состоит веб приложение?
>Как я уловил сервлеты->сервисы бизнес логики -> данные (типа сишных структур, рекорды еще зовут, но с геттерами и сеттерами)

Все верно. Данные также называют сущностями, сущностями твоей предметной области, для которой ты пишешь свое приложение. Сишные структуры, рекорды - в общем смысле это все сущности. Сущности затем перекладываются на реляционную модель твоей БД. Скажем в твоем примере можно выделить:
пользователь - содержит имя, почту, etc
сообщение - содержит текст, пользователя автора, возможно изображения или другое медиа
тема - содержит набор сообщений
ветка/раздел - содержит набор тем
изображение - содержит линк на изображения на твоем сервере, либо само изображение в BLOB (условно)
и так далее.

Сущности обрабатываются бизнес логикой в сервисах. Методы сервисов вызываются клиентами запросами через сервлеты, RMI запросами, SOAP или RESTfull сервисами, т.е. любыми внешними потребителями.
Как правило сервисы взаимодействуют друг с другом, сервисы с более простыми операциями вызываются сервисами с более сложной логикой. Но общий процесс остается неизменен.

Чем сложнее предметная область, которую охватывает твой сайт/система, тем больше будет сущностей и тем сложнее будет связь между ними. Чем больше система тем больше возможностей по обработке данных она должна предоставлять, и соответственно тем более развесистым будет набор твоих сервисов с бизнес логикой.
Аноним 10/01/16 Вск 01:20:03  622648
>>618046 (OP)
EE - самое основное отличие от всякого рода php- твоё приложение не самостоятельно. Его исполняет контейнер. Этот пункт часто опускается, как сам собой разумеющийся. но он крайне важен для быстрого понимания, как быстро запилить скелет приложения.

Исходя из этого -
1)требуется сторонний сервер, который вообще может выполнять EE приложения, например glassfish.
2)поставив этот самый glassfish нужно настроить там datasourse и прочее, т.к. твоё приложение по сути раб контейнера и юзает тот em что дают.
3) смотри структуру папок в проекте, который собирает maven

Когда всё настроено(тут надо курить гайды и мануалы, надо чтобы пустой проект взлетал и было всё понятно в конфигах итд), создай java файл и читая документацию по WS запили первый роут, который ответит
hello world на get запрос.

Дальше сразу выяснится что размещать логику прямо в роутах - говнокод высшего калибра из чего и следуют все традиционные слои (dao, сервисы итд)
Аноним 10/01/16 Вск 02:51:35  622675
>>619130
> ASP.NET давно уж легко крутится на прыщах.
Нахуя он там нужен? Спермоутки пусть дальше посасывают на своим окошках, а хипстеры всякие вообще на нод.жс/го/раст/<вставить название любого недоязыка младше 2005 года> сайты пишут.
мимо
Аноним 10/01/16 Вск 07:43:28  622783
>>622648
Вот кстати вопрос, а сервера приложений да и стек технологий различается для веб приложений внутреннего применения и для интернета? Где то, наверно на хабре, проскакивало нечто типа (суть): "ошибка пытаться выполнить желание заказчика, адаптировать написанное для внутреннего использования приложение для открытого доступа из интернет"...
Аноним 10/01/16 Вск 10:21:50  622818
>>622783
Пожалуй корпоративное приложение(написанное для применения фирмой и её контрагентами) действительно не лучшая идея делать общедоступным сервисом(но тут решает совет директоров же. Хотя зачем ему это?). Сервер приложений в принципе имеет нормальную производительность, тем более если приложение горизонтально масштабируется, то стак технологий не создаст особых проблем.
Аноним 10/01/16 Вск 13:24:54  622888
>>622675
юнити3д запускать же
Аноним 10/01/16 Вск 13:35:15  622896
>>618046 (OP)
В 2016 сайты делают на JavaScript. Максимум куда можно воткнуть джаву - это REST сервисы. По этой теме рекомендую посмотреть на Dropwizard - очень практичный набор инструментов без налета энтерпрайз-безумия
Аноним 10/01/16 Вск 13:39:29  622900
>>622083
Говнище лютейшее, Гугл на него давно положил хуй. Изучай JavaScript.
Аноним 10/01/16 Вск 15:19:41  622938
>>622430
>>622451

спасибо за инфу, по сути в бизнес логике можно творить что хочешь? Я так понял, каких-то там стандартов нет (ну в рамках модульности и ООПшности писать)
Аноним 10/01/16 Вск 15:21:22  622940
>>622675
>>622896

Игнорьте этих школо-троллей, а то весь тред засрут.
Аноним 11/01/16 Пнд 20:29:48  623500
>>620153
Антоша, я >>620112-кун который возможно займется реализацией проекта из описания в посте, хотел спросить такую штуку — на твой взгляд, сколько времени может занять реализация такого проекта, при условии что над ним будет работать два человека, один из которых имеет небольшой опыт в спринге и сопутствующих технологиях, а второй только с фронтендом? Да вопрос глупый, куча факторов, но все же — есть какие-то средние цифры? Пол-года, год?
И еще один тоже довольно каверзный вопрос — есть какие-то денежные рамки при разработке подобного? Как считается конечная стоимость — по количеству строк кода, времени на разработку... фазы луны, етс.
Аноним 12/01/16 Втр 00:31:33  623630
>>623500
Очень сложный вопрос, по крайней мере для меня. Смотря как вы будете работать - полный рабочий день или только по вечерам в свободное время, но даже в первом случае разработка может затянутся до года. Хотя эта цифра очень абстрактная. Я могу сильно ошибиться в масштабности вашей затеи, пусть кто-нибудь из местных анонов еще прикинет примерное время.

Считать стоимость по строкам кода - дикий пиздец. Насколько мне известно за основу берется стоимость часа у конкретного разработчика, а затем прикидывается сколько по времени займет реализация того или иного функционала. При этом как писал небезызвестный Стив Макконнелл - порой оценить реальную сложность задачи можно только после того как приступишь к ее решению, следовательно временные рамки могут раздвинуться и соответственно вырастет стоимость разработки.
Аноним 12/01/16 Втр 00:43:21  623633
>>622938
Фактически да, но опять же как и энтерпрайзе в целом так и в Spring в частности есть несколько разных типов бинов заточенные под различные типы задач.
Stateless/statefull/singleton/др. бины по спецификации EE, prototype/singleton/др. по Spring'у.
В простом варианте все бины являются синглтонами. Но если необходимо чтобы приложение можно было масштабировать, плюс если необходимо использовать плюшки серверов приложений то нужно смотреть в сторону stateless/statefull бинов.
Пусть анон поправит меня если я где ошибся, потому как этом направлении ориентируюсь не достаточно хорошо.
Аноним 12/01/16 Втр 01:54:55  623771
>>623630
>>623500

>полный рабочий день или только по вечерам в свободное время, но даже в первом случае разработка может затянутся до года

Я написал суровую веб-платформу под нагрузку за 2 месяца, максимум сидел часов 10 в неделю. Один!

Все эти гавно шаражки где у них там штат по 100 человек, синьёры, хуёры. Сидят они там, сидят, что-то пилят.

Однажды я туда ради прикола устроился. Кароче, там 90% сами не понимают что они делают, остальные 10 процентов кое-как может и шарят, что большинство времени сидят в вк или пьют кофе в коридоре. Ебали они программирование и вообще разработку.

Дай мне 2-3 человека средней руки и 1 дизайнера, чтобы кнопки нарисовал. Я подниму гугл или вк за пол года неспеша.
Аноним 12/01/16 Втр 01:57:39  623773
>>623771

И да, писал на спринге с мощной базой, кеш серверами и с 0 реализовывал авторизацию и админку. Я предусмотрел все дыры безопастности и конечно же написал в правильном и грамотно всё стиле. Я даже блять дизайн нарисовал и написал весь фронт на ЧИСТОМ джаваскрипте.

Если я дебил такое поднял, я не представляю что могут поднять грамотные и прошаренные ребята за столько же времени.
Аноним 12/01/16 Втр 06:51:43  623834
>>623773
>предусмотрел все дыры безопастности
Очень смелое утверждение

>Кароче, там 90% сами не понимают что они делают, остальные 10 процентов кое-как может и шарят, что большинство времени сидят в вк или пьют кофе в коридоре.
>Ебали они программирование и вообще разработку.

А вот тут согласен. Особенно с последним утверждением.

Да и вообще, можно горы свернуть, было б только желание. А если желания нет то и задачи средней легкости будут тяжело даваться.
Аноним 13/01/16 Срд 23:26:26  625121
>>622896
>Dropwizard
люто плюсую этого адеквата. я сам джавист, на работе пришёл заказ написать rest на dropwizard на бэке и angularjs на фронте. Сначала поебались знатно по незнанию, но когда размутились поняли, как это охуенно. Dropwizard хорош тем, что он из коробки умеет в json, в базу и в angularjs. т.е. он сразу идёт в комплекте с jetty сервером, и соответственно angular app уже разворачивает в нём. знали бы вы как это охуенно!!!!
Аноним 13/01/16 Срд 23:38:23  625129
>>618046 (OP)
http://scala-lang.org/
http://spray.io/
http://www.scala-js.org/
Аноним 14/01/16 Чтв 00:23:13  625169
ОП, не слушай мудаков. Если тебе нужно просто налабать быстро небольшой сайт - твой выбор Spark + Freemarker как темплейт енджин. Нужна бд - хуяришь JDBC или просто подцепляешь легкий Ebean. И у тебя выйдет небольшое приложение, которое будет летать на Raspberry и на днище машине. Если хочешь прокачаться именно по карьере - Spring + Hibernate без вариантов. EE мертв. Play для мудаков.
Аноним 14/01/16 Чтв 01:16:59  625189
>>625169
спасибо за инфу, погляжу
Аноним 18/01/16 Пнд 15:14:58  628210
Кто что скажет про Spring Boot?
http://habrahabr.ru/post/257223/

Вроде как раз "простой веб" на джаве.
Аноним 18/01/16 Пнд 22:31:59  628585
>>625169
Я бы заменил sparkjava на ratpack
Аноним 21/01/16 Чтв 20:57:04  631294
Grails не советовали еще?
Аноним 22/01/16 Птн 09:41:38  631677
>>628210
Те же хабровята в комментах писали, что на прстых примерах все круто, но как только дело доходит до серьезных вещей начинают вылезать ограничения и подводные камни.
Сам не пользовался, добавить мне нечего. Может кто из анонов еще что-нибудь подскажет.
Аноним 03/02/16 Срд 00:07:01  641500
Тема имеет больше всего просмотров, но активность нулевая((
Аноним 03/02/16 Срд 00:39:02  641521
>>628210
https://www.youtube.com/watch?v=YCRt5VjQSCc
vot jhipsterok norm raspisal
Аноним 03/02/16 Срд 07:01:00  641590
>>618106
Есть версия 1.X, которую всё ещё выпускают и которая для java.
Арий 03/02/16 Срд 08:44:33  641613
>>618046 (OP)
1) есть , это штмл
3) порыскай в плей маркете. Там должно быть
Аноним 03/02/16 Срд 12:07:23  641700
14544904438230.jpg (51Кб, 453x750)
>>641521
Ohooenno
Аноним 12/02/16 Птн 09:54:34  651010
14552600745420.jpg (126Кб, 500x698)
Бамп годному треду.
Аноним 13/02/16 Суб 06:05:55  652081
>>618046 (OP)
А чем тебе php хуев? Ну там php fpm + nginx? Бд percona, кэширование memcached. Фреймворк по вкусу(Zend, yii, symphony)
Аноним 13/02/16 Суб 06:08:54  652082
>>620153
Два чаю этому посту в особенности за Макконнела.
Аноним 13/02/16 Суб 06:16:43  652083
>>623500
Вдвоём? Я думаю в лучшем случае год, хотя это условно, ведь задача очень абстрактно поставлена.
А оценивать куда уж проще? Время разработчиков, вот это и считайте.
Аноним 13/02/16 Суб 10:35:25  652134
>>618046 (OP)
Ты бы ещё на сишке сайты решил клепать, наркоман.
Аноним 13/02/16 Суб 10:36:30  652135
>>618046 (OP)
>как вообще пишут сайты на джаве?
Лучше тебе этого не видеть. Хотя... ты ж пхпешник
Аноним 13/02/16 Суб 10:43:57  652140
Хочу создать свой двачь новой расцветки, так как заебало сидеть там, где записываются все IP и выдаются ФСБ в случае чего. Пусть там будут сидеть только мои одноклассники и вайпать все говном, а я буду думать, что чего-то стою в этой жизни.
Аноним 13/02/16 Суб 10:44:13  652141
>>652140
Java подойдет?
Аноним 13/02/16 Суб 11:16:36  652152
>>652141
На лиспе пили.
Аноним 13/02/16 Суб 13:14:35  652208
Тред не читал. Сам пользуюсь связкой Stripes framework + apache myBatis для работы с бд. Упорот и самодостаточен. На спрингоблядей посматриваю, как на говно. Перегруженное enterprise нечто.
Аноним 13/02/16 Суб 13:29:39  652225
>>652152
На Clojure же! Это и лисп, и жаба, 2 в одном.
Аноним 13/02/16 Суб 14:31:46  652280
>>652225
Ага. Мед и деготь 1 к 1.
Аноним 18/02/16 Чтв 19:45:39  658856
kotlin на днях релизнули, как думаете, стартанет в вебе или он затухнет в андройдах
Аноним 18/02/16 Чтв 20:26:09  658939
>>658856
Хз, если распробуют на андройдах, возможно. У Скалы пиздец какая экосистема для веба, оче сложно конкурировать.
Аноним 18/02/16 Чтв 20:52:04  658960
>>658939
за скалу ничего не знаю, как-то с недоверием смотрел на эту моду (уходящую) со смешением ФП и всего и вся (что превращало код в подобии с++, т.е. код для сопровождения становился перегруженным). Что меня привлекает в котлине, это настоящая обратная совместимость и политика не трогать синтаксис.
Аноним 18/02/16 Чтв 22:57:51  659102
>>658960
>с недоверием смотрел на эту моду (уходящую) со смешением ФП и всего и вся
ФП - то будущее куда, мы все движемся. Достаточно осторожное, но его нельзя не заметить. А вот смешение со всем подряд - действительно плохо. Смешение должно быть вдумчивым.

>настоящая обратная совместимость и политика не трогать синтаксис
Да, за счет прагматичного дизайна и экспертизы JetBrains Котлин может выстрелить.
Аноним 18/02/16 Чтв 22:58:24  659103
>>659102
>Достаточно осторожное
читать — Движение достаточно осторожное
Аноним 18/02/16 Чтв 23:49:49  659138
>>659102
чаще я вижу, что ФП это объект измерения собственной важности у программистов (почему-то у многих это главная линейка), больше никакой практической пользы и реальных телодвижений не видел. Конечно есть там интересные решения и их давно просто к себе перетащили, поэтому развития не будет уже точно (высосали все что нужно было).

Писать мудрено не сложно, сопровождать высер больного разума "гения", это беда. Сейчас вроде тенденция к упрощению и я рад этому (лучше я напишу на 5 строчек больше кода, чем потом повисну мозгами на какой-то "умной" строчке кода)
Аноним 19/02/16 Птн 00:49:10  659175
>>659138
Думаю, родись ты лет на 30 раньше, ворчал бы так же, но про "заумный" ООП.
Аноним 19/02/16 Птн 00:51:13  659176
>>659138
Посмотри на ReactJS и Redux. Там ФП прячет вообще всю сложность создания и менеджа UI: Больше не нужно вручную описывать, как именно интерфейс должен меняться при действиях пользователя или получения каких-то событий с бекенда. Нужно просто написать функцию, которая из данных (State) создает VirtualDOM интерфейса. Тоже самое с диспетчеризацией действий пользователя: получили Action, вернули новый экземпляр Store. Интерфейс сапдейтился через уже написанную функцию store -> VirtualDOM. Никакого геморроя с Observable, привязкой данных к UI и т.п. Пример хорошего годного ФП подхода.
Аноним 19/02/16 Птн 05:21:06  659248
>>659176
Этого двачую. Функциональщина уже на фронте, на фронте блджад! А жавамакаки всё копаются в своей процедурной хуете, производя по 150 строчек кода там, где достаточно десяти. Хотя им то что, зарплату платят, а раз так, то будут однотипные действия повторять.
Аноним 19/02/16 Птн 06:55:11  659260
У меня по клику на таблицу стоит эвент, если кликнут 3й столбец, то условие. Все нормально работает, но при этом в консоли, если любой другой столбец кликнут, вылетает куча ошибок.

Что не так в коде?

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {

String url = jTable1.getValueAt(jTable1.getSelectedRow(), 3).toString();
int col = jTable1.columnAtPoint(evt.getPoint());
if (col == 3) {
try {
openWebpage(url);
}
catch(Exception e) {
String message = "Cannot open the page";
JOptionPane.showMessageDialog(new JFrame(),
e, message, JOptionPane.ERROR_MESSAGE);
}
}
}
public static void openWebpage(String urlString) {
try {
Desktop.getDesktop().browse(new URL(urlString).toURI());
} catch (Exception e) {
String message = "Cannot open the page";
JOptionPane.showMessageDialog(new JFrame(),
e, message, JOptionPane.ERROR_MESSAGE);
}
}

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Аноним 19/02/16 Птн 06:57:03  659261
>>659260
а все уже.
Аноним 19/02/16 Птн 13:23:56  659379
>>659175

я и про ООП так же думаю, по сути все там пишут в процедурном стиле (пустые данные и сервисы, что как бы напоминает сишные функции и структуры с геттерами и сеттирами (просто верх развития программирования, лол)).

ООП выстрелил за счет умения связать отдельные кучки программистов, в одну продуктивную работу, чтоб те обезьяны не срались между собой и не мешали друг другу (за счет интерфейсов, он же полиморфизм), ну и за возможно реально спрятать от других данные (инкапсуляция).
А в остальном там костыли такие, что даже есть паттерны решающие по сути недостатки ООП.

Так же невидимой фишкой ООП является то, что начинающий программист по умолчанию сразу более менее структурирует свои алгоритмы (хватает мозгов собрать в классы). Процедурный же дает много вольностей и писать модульно, надо еще научится (хотя я и в классах вижу чудеса)

Но мне на самом деле похер, просто это эпичное наебалово, которое смогли "продать".
Что насчет ФП, так тут в истории аналогии нет, я уже сказал, все хорошее высосали.

Аноним 19/02/16 Птн 13:51:30  659393
>>659379
>я и про ООП так же думаю
Всё с тобой ясно, мартыхан

>напоминает сишные функции и структуры
Это потому что болезные процедурные дебилы всегда пытаются переизобрести ООП, передачей указателя на структуру первым аргументом и т.п. анальными ухищрениями, лишь бы не признавать убогость своего недоязычка.
Аноним 19/02/16 Птн 16:32:18  659546
>>618046 (OP)
>Программируя на пхп
>Разработка веб-сайта на java

ты в своём уме? перекатывайся с пыха на ноду с экспрессом и будет тебе счастье.
Аноним 19/02/16 Птн 18:22:17  659656
>>659393
Ага, такие дебилы как например Martin Fowler и его (а может не его, но им представленная) анемичная модель предметной области.

Просто некоторому юному поколению того времени, которым промывали мозги ООП, пришлось пройти некоторую боль и сделать неожиданное открытие, что данные и алгоритмы должны быть раздельными и это уже общепринятая норма (но ты конечно городишь god object и счастлив, не понимая в программирование нефига (кстати на нативном уровне именно так и реализовано, в памяти же не дублируются методы)).

Что касается передачи объекта в свой метод, это да, анахронизм полный (но именно это я понял тебя больше всего и коробит, ты слишком ленив для еще одного аргумента и вся критика сводится не к теории программирования или проектирования языков, а все лишь к ебучему лишнему аргументу в методе :D )
Аноним 19/02/16 Птн 18:27:04  659660
>>659546
пыха для меня все, она начала пародировать java, при этом пародия то неудачная. Каждый раз фронт инитит тысячи классов и это боль. Не по пути скрипта пошла пыха, для полноценной ООП-радости нужно работающие приложение в памяти, а не дрочка инициализаций и проверкой типов каждый раз.
Аноним 19/02/16 Птн 20:18:28  659856
>>659656
Господи! Да что за хуйню ты несёшь? Не пиши сюда больше.
Аноним 19/02/16 Птн 21:04:41  659988
>>659856
ок, звучит аргументированно
Аноним 19/02/16 Птн 22:35:47  660286
>>659988
Было бы что оспаривать. Просто не пиши сюда больше, возвращайся в свой пхп-тред или откуда ты там вылез.
Аноним 20/02/16 Суб 00:54:01  660577
Короче, скрипт, который делает колонки таблицы по размеру текста. как к нему добавить разворачивание по клику или хотя бы полосу прокрутки к ячейкам.
cmodel.getColumn(4).setCellRenderer(textAreaRenderer);
только к колонке применяется.
http://ideone.com/ECAnuo
Аноним 20/02/16 Суб 02:55:38  660719
14559261385930.jpg (61Кб, 604x471)
>>660286
Я тебя так сильно обидел?
Аноним 20/02/16 Суб 11:08:01  660790
>>659656
В голос с дебила.
Аноним 20/02/16 Суб 12:24:24  660840
>>660790
перелогинься, лол
Аноним 20/02/16 Суб 12:32:26  660849
>>660840
Смачно перелогинился тебе в рот, чмоша
Аноним 21/02/16 Вск 18:00:01  661972
если я пройду курс на javarush я стану прогромистом, или это параша?
Аноним 21/02/16 Вск 20:26:45  662221
>>659856
этот оопшник порвался
>>660790
а этот еще нет, но тоже близок
ООП - развод для лохов.
Аноним 21/02/16 Вск 20:27:28  662222
>>659393
> я и про ООП так же думаю
> Всё с тобой ясно, мартыхан
Но ведь мартыхи это как раз ООП-бляди.
Аноним 21/02/16 Вск 20:33:12  662233
Еще раз напоминаю три основных обсёра ООП макак
1) Полиморфизм. Для ООП-макаки полиморфизм = сабтайпинг.
2) Инкапсуляция. Уровня private членов класса. Модулей низавизли.
3) Наследование. Решает для манкипатчинга в скриптах. На большее не годится.
Аноним 22/02/16 Пнд 00:27:40  662573
>>662233
Все монады пролямбдил?
Аноним 22/02/16 Пнд 02:01:19  662653
>>662573
анафорически

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 124 | 6 | 60
Назад Вверх Каталог Обновить

Топ тредов