java - 为新项目选择 'better' 或更熟悉的技术?

标签 java hibernate spring

我希望开始一个全新的项目,作为我的第一个独立可销售项目,我已经考虑了一段时间。 从广义上讲,它是一个基于 Web 的服务应用程序,而我的首选服务器语言非常简单……我过去在 Java Web 应用程序上工作过,对 Java 非常了解。

但是,我在开发 Web 应用程序方面的经验涉及 JSP、Servlet 和 JSTL……我知道 Hibernate/Spring 等新技术背后的想法,但从未使用过它们。所以我们编写了自己的 DAO,通过编写生成 XML/JSON 页面的特殊 mini-JSP 页面来处理 AJAX,等等。

我不太赞同 Spring/Hibernate 是执行任何 Java Web 项目的“唯一”或“正确”方式,但它们被广泛使用。另一方面,尝试学习这些不仅会增加初始开发时间,而且我会利用我的学习尝试来构建生产系统。

我记得 Joel 早期的一篇文章中说过(我会解释一下,因为我找不到它)

"regardless what's cool, always use the technologies that the lead developer (or dev team?) knows best"

我想知道人们对此有何看法?

ps:这应该是CW吗?

最佳答案

我是一名顾问,我见过很多项目的开发人员都是从 servlet+JSP 开始的,因为这是他们所知道的,而且上手非常简单。但是,它给了团队一个机会/借口来编写自己的平台,which is more fun than using someone else's and just writing an application .

随着项目的发展,团队重新发明了越来越多的轮子,其中不少最终变成了 square .这就是我进入画面的地方 - 向这个半灵活的平台添加新东西变得如此复杂,以至于开发人员无法在不调用增援的情况下继续添加功能修复错误。雪上加霜的是,内部开发人员通常被指派进行无聊的错误修复,因为错误修复需要更多了解团队专有的持久性和网络框架的血腥内脏,所以那些天哪的顾问开始做新的、有趣的事情。

现在,您不应该仅仅因为人们在彼此的博客文章中反复谈论它的精彩就使用框架,但您也应该意识到这些框架存在的充分理由(以及使用它们的原因) )。如果您根本没有使用任何 Web 框架,我建议您使用 Spring MVC、Wicket 或其他任何东西进行试驾。它们并不能解决所有问题,并且确实会导致一些问题,但总体而言通常是生产力的提高,尤其是在您制作高级用户界面时。

我参与的项目中,纯 JDBC 已经足够持久化,并且不需要比 servlet+JSP 更高级的 Web 框架,但这些项目是少数。如果没有使用一两个框架,您将永远无法确定您的项目是属于不需要框架的少数群体,还是属于需要框架的大多数群体。

关于java - 为新项目选择 'better' 或更熟悉的技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2903185/

相关文章:

java - 有没有办法在正则表达式(java)中使用\p{Punct}\p{Lower}\p{Upper},但没有 "."字符?

mongodb - 将MongoDB和Hibernate结合使用的Grails 3.3.0 M1和3.3.0 M2失败

java - 如何修复 Tomcat 9 上的部署错误 - Java 动态 Web 项目中的 java.lang.IllegalArgumentException?

Spring Boot JPA 多数据源错误

spring - 使用 AuthenticationManagerBuilder 添加自定义提供程序时如何获取 AuthenticationManager?

java - Spring MVC 验证状态 400

java - 将图像保存到数据库时JAVA中的classcastException

java - 为 JButton 自定义有点复杂的样式

java - JodaTime 类型转换

java - 按 ID 跨表拆分 hibernate 实体