Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java架构-这个社交网络/视频编辑网站的想法使用哪种技术堆栈和插件?_Java_Architecture_Social Networking - Fatal编程技术网

java架构-这个社交网络/视频编辑网站的想法使用哪种技术堆栈和插件?

java架构-这个社交网络/视频编辑网站的想法使用哪种技术堆栈和插件?,java,architecture,social-networking,Java,Architecture,Social Networking,简而言之: 这家初创公司正在开发一个专门用于视频编辑的社交网站。(因此,最大的技术挑战之一是移动、上传和下载或大于2Gb的大文件)。制作人决定使用Java,他的开发人员推荐Liferay作为构建它的框架。现在,当我加入进来时,我提倡使用Spring和Grails,但实际上我不确定使用哪种技术堆栈和插件来开发这个应用程序。我希望你们能帮我。要求如下: 能够处理大型文件上传/下载 社交网络:一个项目有许多合作者,一个人在许多项目上工作,一个项目由一个项目经理拥有,有状态更新和类似于的按钮和视频和照

简而言之:

这家初创公司正在开发一个专门用于视频编辑的社交网站。(因此,最大的技术挑战之一是移动、上传和下载或大于2Gb的大文件)。制作人决定使用Java,他的开发人员推荐Liferay作为构建它的框架。现在,当我加入进来时,我提倡使用Spring和Grails,但实际上我不确定使用哪种技术堆栈和插件来开发这个应用程序。我希望你们能帮我。要求如下:

  • 能够处理大型文件上传/下载
  • 社交网络:一个项目有许多合作者,一个人在许多项目上工作,一个项目由一个项目经理拥有,有状态更新和类似于的按钮和视频和照片评论
  • 信息传递:像电子邮件一样的信息传递,像聊天一样的信息传递
  • 项目管理(拥有人员和原始视频文件,最终制作出适销对路的电影)
  • 某种形式的版本控制(但应该使用哪个存储库?jackrabbit?svn?文件系统?自定义的东西?)
所以你看到了一些问题:我们正在重新发明轮子(版本控制、项目管理、电子邮件、社交网络)。但我在这里要问的问题是:我们应该在什么Java技术的基础上构建它?Liferay是个不错的选择吗?春天+圣杯怎么样?还有其他想法吗

谢谢你的意见

信息传递:像电子邮件这样的信息传递,以及 类似聊天的信息

我建议您使用redis,因为它的速度非常快。是最流行的用于java的redis客户端

某种形式的版本控制

我会建议你使用,或者主持你的项目。Github将花费您一些钱,但Github确实是最好的

信息传递:像电子邮件这样的信息传递,以及 类似聊天的信息

我建议您使用redis,因为它的速度非常快。是最流行的用于java的redis客户端

某种形式的版本控制


我会建议你使用,或者主持你的项目。Github将花费您一些钱,但Github确实是最好的。

如果可能,请远离Portlet。我不知道liferay是否还支持其他任何东西,但我将其用作门户容器,对此一点印象都没有。只是很多不需要的复杂性。如果可能的话,远离Portlet。我不知道liferay是否还支持其他任何东西,但我将其用作门户容器,对此一点印象都没有。只是很多不需要的复杂性。一些形式的版本控制是针对用户的,而不是针对开发人员的。例如:一个视频编辑项目,有10个合作者,100个文件,其中20个文件超过2Gb。他们希望跟踪项目文件的修订。Java中有jackrabbit,但也有普通的老SVN(它不在我们的Java Web应用程序中,我提出了这样一个想法,即我们的文件和版本管理完全不在Web应用程序中)。或者,我们可以通过将旧文件复制到服务器文件系统上的新位置,并将指向该旧文件的指针存储在关系数据库中,来实现自己的版本控制。某种形式的版本控制是针对用户的,而不是针对开发人员的。例如:一个视频编辑项目,有10个合作者,100个文件,其中20个文件超过2Gb。他们希望跟踪项目文件的修订。Java中有jackrabbit,但也有普通的老SVN(它不在我们的Java Web应用程序中,我提出了这样一个想法,即我们的文件和版本管理完全不在Web应用程序中)。或者,我们可以通过将旧文件复制到服务器文件系统上的新位置,并在关系数据库中存储指向该旧文件的指针,来实现自己的版本控制。