Позвольте мне ответить на них с точки зрения разработчика / архитектора в небольшом стартапе, столкнувшегося с кучей этих проблем.
Какие трудности могут возникнуть в веб-разработке Java EE, развертывание и обслуживание?
Как вы решаете, какой набор инструментов / каркас использовать?Вам нужна IDE?Какая система контроля версий и почему?Хотите ли вы разрабатывать в каком-то месте и развертывать в другом месте или разрабатывать непосредственно на сервере?Вы покупаете коробку Linux для этого или арендуете какое-то облако?Сколько они стоят, с точки зрения лицензий и обучения?
О каких вещах следует помнить / какие соображения следует учитывать при переходе с фона PHP на Java?
Как бы ваш сервлет отправил электронное письмо?Это намного проще в PHP.Нужна безопасная передача зашифрованных объектов?Ява твой друг.Как насчет отслеживания сеанса?Использовать куки или у вас есть специальный класс?Как вы получаете доступ к базе данных?Хотите использовать спящий режим?От каких других инструментов зависит гибернация?Каковы их расходы (лицензия + обучение)?Можете ли вы использовать JDBC напрямую?Каковы плюсы и минусы?Какую базу данных использовать, почему.
Почему веб-приложения Java не так популярны сегодня?(или в случае, если я понял это неправильно, перечислите какие-либо основные варианты развертывания помимо connectedIn и ebay)
Я не уверен, что это так, но возможными причинами могут быть наличие .net и интеграцияс системами на основе C # и Apple отказывается от Java из своего SDK.Но это мое предположение, не цитируйте меня об этом.Я сам занимаюсь разработкой крупномасштабной системы на Java 6.
и, наконец, что нужно узнать перед тем, как приступить к веб-разработке в Java EE?
(Это мое мнение) есть тест или настройка всей архитектуры.Основан ли на веб-браузере GUI?Это апплет?Автономное приложение, разговаривающее с сервером?JNLP система загрузки архивов и JRE вне сети?Вы обнаружите, что некоторые вещи не работают в Windows 7, некоторые не работают в Vista, W3C устарел тегом апплета из HTML, но Sun / Oracle просит вас использовать его, различные браузеры не поддерживают содержимое таблицы стилей и т. Д.
Настройка брандмауэра - еще одна важная задача - вы начинаете использовать пул потоков с использованием библиотек Spring, и ваши возможности использовать DBvisualizer для проверки таблиц БД исчезли!Теперь вам нужны администратор базы данных и системный администратор, чтобы исправить их, которых у вас нет!
Лично я нашел архитектуру LAMP (Linux-Apache-MySQL-PHP) самым быстрым способом для небольших приложений, ноесли вам нужны более тяжелые ружья для вашего приложения (безопасность, графический интерфейс с качанием, многопоточность и т. д.), замените P в LAMP контейнером tomcat.Самое сложное, что я нахожу, - это оценить ценность инструмента в контексте моего приложения - мне не нужен инструмент, который генерирует файлы Java с помощью методов getter / setter со списком переменных - для меня это еще один уровень косвенности, но тогда JUnit в eclipse полезен для отладки.
Просто поделился некоторыми своими мыслями - надеюсь, это поможет, - MS