Javascript 大型NodeJS应用程序特有的潜在复杂性/问题是什么
我来自“传统web应用程序”背景:想想Java、.NET、PHP、ColdFusion等等 在评估NodeJS作为非平凡应用程序的主要服务器端技术时,我想知道开发人员和操作人员团队可能会面临哪些NodeJS特有的复杂性、问题和挑战。简言之,我想减少我的未知。一些(并非全部)示例:Javascript 大型NodeJS应用程序特有的潜在复杂性/问题是什么,javascript,node.js,Javascript,Node.js,我来自“传统web应用程序”背景:想想Java、.NET、PHP、ColdFusion等等 在评估NodeJS作为非平凡应用程序的主要服务器端技术时,我想知道开发人员和操作人员团队可能会面临哪些NodeJS特有的复杂性、问题和挑战。简言之,我想减少我的未知。一些(并非全部)示例: 它在多大程度上适合大型团队开发?对于Node来说,在一个由20、50或200名开发人员组成的团队中,存在哪些独特的挑战 在数据库访问方面存在哪些独特的挑战?“Enterprisey”数据访问问题在Java中处理得非常
- 它在多大程度上适合大型团队开发?对于Node来说,在一个由20、50或200名开发人员组成的团队中,存在哪些独特的挑战
- 在数据库访问方面存在哪些独特的挑战?“Enterprisey”数据访问问题在Java中处理得非常简单(通过Spring连接池、安全性等)。Node就是这样吗
- 报告繁重的应用程序通常需要Excel、PDF甚至PNG导出。。。节点在这种类型的应用程序中表现如何
- 节点在开发时调试方面是否存在任何独特的挑战
- 存在哪些独特的运营挑战?从服务器重新启动/热代码交换/负载平衡到用于监视和管理生产集群的工具,无所不包李>
等等。在开发、维护和生产管理一个100+K LoC代码库方面有哪些经验教训?部署在一个服务器群中,有几十名开发人员参与其中?我将尝试回答您的一些问题 它在多大程度上适合大型团队开发?对于Node来说,在一个由20、50或200名开发人员组成的团队中,存在哪些独特的挑战?
- 它和其他任何语言都一样;没有什么!程序员团队通常使用诸如git、svn、mercurial等版本控制系统来处理处理相同文件的同事
- 节点与数据库无关。您可以将任何数据库与存在驱动程序/包装器的节点一起使用(与PHP相同)。关系数据库(MySQL、SQLite)和NoSQL(MongoDB)有许多驱动程序/包装程序
- Node可以像php和其他人一样访问普通shell。因此,如果您使用php处理图像,您将使用ImageMagick或GD的包装器。GD需要安装在Web服务器上才能工作,因为php将命令发送到命令行。与节点相同;找到包装纸(http://search.npmjs.org)使用你想要的功能
- 节点是Javascript,所以它不编译,而是JIT。因此,故障只有在执行时才会被检测到。您希望每个开发人员在您的登台/开发机器和活动服务器旁边都有一个本地env,这样他们就可以在将代码提交到登台服务器之前测试代码
- 我不知道有什么“独特”的挑战。您将像处理所有其他语言一样处理监视/心跳(是的,有些语言可以做到这一点,比如Erlang)。您需要像forever或supervisord这样的服务来在服务器重新启动时启动节点,但Apache+PHP/Perl也是如此
- (节点有一个集群模块,可帮助您处理多个工人 (用于多核服务器)
看看Git如何管理代码。并根据您想要做的事情(高并发性、可伸缩性)选择语言。我将对我有资格做的事情进行评论:
npm
包管理器,并很早就包含在node中。众所周知,它的质量很高。作者们显然预期会有很多第三方使用