为新项目选择"更好"或更熟悉的技术?

Mr.*_*Boy 15 java spring hibernate

我正在寻找一个全新项目的工作,这是我作为我的第一个独立可销售项目一直在思考的问题.从广义上讲,它是一个基于Web的服务应用程序,我的第一选择,服务器语言非常简单......我在过去的Java Web应用程序中非常了解Java.

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

我并不认为Spring/Hibernate是执行任何Java Web项目的"唯一"或"正确"方式,但它们被广泛使用.另一方面,不仅试图学习这些增加了初始开发时间,而且我将利用我的学习尝试来构建生产系统.

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

"无论什么酷,总是使用首席开发人员(或开发团队?)最了解的技术"

我想知道人们怎么想的?

ps:这应该是CW吗?

gus*_*afc 6

我是一名顾问,我见过很多项目,开发人员开始使用servlets + JSP,因为这是他们所知道的,开始时非常简单.但是,它为团队提供了编写自己平台的机会/借口,这比使用其他人并编写应用程序更有趣.

随着项目的发展,该团队重新发明了越来越多的车轮,其中不少车轮最终正方形.这就是我进入图片的地方 - 为这个半灵活平台添加新东西变得如此复杂,以至于开发人员无法跟上添加功能修复错误而无需增援.只是为了增加侮辱伤害,内部开发人员通常是那些被指派去做无聊的bug修复的人,因为bug修复需要更多的知识,这些内容已成为团队专有的持久性和Web框架,所以那些gosh-danged顾问可以做一些有趣的新事物.

现在,你不应该使用框架只是因为人们一直在互相讨论关于它的真棒的博客文章,但你也应该意识到这些框架存在的原因(以及为什么使用它们)有很好的理由.如果您根本没有使用任何Web框架,我建议您使用Spring MVC,Wicket或其他任何试用版.它们并不能解决所有问题,而且它们确实会产生一些问题,但总体上通常会提高生产率,特别是如果您正在制作高级用户界面.

我一直在进行普通JDBC已经足够持久化的项目,并且不需要比servlet + JSP更高级的Web框架,但这些项目是少数.如果没有使用一两个框架,你永远不会认为你的项目是那个不需要的项目的少数民族的一部分,或者它是否是大多数人的一部分.


Ano*_*ose 1

当心新酷框架的诱惑! 我目前正在开发一个很小的网络应用程序,它只有一个登录名、一些主要是静态的页面和一些通过电子邮件请求某些信息的表单。如果用 MVC 风格来完成传统的 Servlet/JSP,我可能需要两天的时间。相反,由于日程安排有空闲,我决定使用这个项目来加快 Spring、Spring MVC 和 Spring WebFlow 的了解。虽然我很可能只是很笨,但我花了几周的时间才明白正确的做事方式,我仍然不完全相信我做的一切都是正确的,而且申请仍然没有完成。幸运的是,由于空闲,我并没有面临整个项目进度下滑的危险,但我总是问自己是否必须放弃它并重新开始。

不过,我已经吸取了教训:下一次,我不会是那个推动新框架的人,除非它是我以前用于生产项目的框架。也就是说,我很高兴我现在了解了 Spring(或者至少我认为我了解了)并且下次会毫不犹豫地再次使用它。

那么下次我该如何学习新框架呢?如果有一个项目负责人(在这种情况下,我是一个团队的项目负责人,没有帮助),我会使用他们建立的框架。如果没有,或者如果我想学习项目负责人未使用的框架,我会在自己的时间将其用于业余项目。学习是好的。通过使用未经测试的技术来让公司的工作面临风险并不是一件好事。