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

2022-09-03 15:26:22

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

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

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

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

“无论什么很酷,都要始终使用首席开发人员(或开发团队)的技术?最了解”

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

ps:这应该是CW吗?


答案 1

我是一名顾问,我见过很多项目,开发人员都是从servlets+JSP开始的,因为这是他们所知道的,而且入门非常简单。但是,它给了团队一个机会/借口来编写自己的平台,这比使用别人的平台和编写应用程序更有趣

随着项目的发展,团队重新发明了越来越多的轮子,其中相当多的轮子最终都是方形的。这就是我进入画面的地方 - 向这个半灵活的平台添加新的东西已经变得如此复杂,以至于开发人员无法在不调用强化的情况下继续添加功能和修复错误。只是为了增加伤害的侮辱,内部开发人员通常是那些被指派进行无聊的错误修复的人,因为错误修复需要更多地了解已经成为团队专有的持久性和Web框架的血腥内脏,所以那些天马虎敢的顾问可以做新的,有趣的事情。

现在,你不应该仅仅因为人们一直在反刍彼此关于它的真棒的博客文章而使用框架,但你也应该意识到,为什么这些框架存在(以及为什么使用它们)有很好的理由。如果你根本没有使用过任何Web框架,我建议你参加Spring MVC,Wicket或其他任何东西的试驾。它们并不能解决所有问题,它们确实会引起一些自己的问题,但总体总数通常是生产力的提高,特别是如果你正在制作高级用户界面。

我曾经参与过一些项目,在这些项目中,普通的JDBC对于持久性来说已经足够了,并且不需要比servlets + JSP更高级的Web框架,但这些项目是少数。如果没有使用一两个框架,你永远不会知道你的项目是不需要一个的少数人的一部分,或者它是否是绝大多数人的一部分。


答案 2

不要一次尝试所有事情 - 一次采用一项新技术。


推荐