-3

我想知道关于可能启动一个基本上从头开始构建网络会议平台的项目的两件事。它需要有一个交互式白板、音频/视频、屏幕共享、聊天、记录会话中发生的内容等。所以......

1.) 这种事情是 1 个月的项目吗?1年?几千元?成千上万???

2.) 假设这个被创建了,主持会议涉及什么?它们可以仅托管在主持人的计算机上吗?还是需要服务器?常规宽带连接是否足够或需要 T1 线路?

并不是在这里寻找具体的解决方案。只是一些一般的想法和大致的数字会很棒。

4

1 回答 1

1

1. 估算需要谨慎和时间

制作软件太难了!!做对了会花钱。是的……几个月。你会想为他们为你工作的每一滴汗水和每一分钟付出代价,因为开发人员和你一样都是努力工作的女性和男性。尤其是初学者需要付费。他们不擅长估算,只为一分钱工作。你可以称它为自我造成的奴役,但许多人支持它,希望它便宜又快。无耻。人们需要了解开发人员的工作方式。

稍微解释一下:

每个新的软件项目都涉及到许多问题。我们需要非常详细地回答这些问题,以了解每一步需要多长时间。

业务

  • 它会有什么特点?
  • 用例场景的每个功能是什么?
  • 我预计每小时有多少用户?
  • 预计托管费用是多少?
  • 我需要存储数据突变或事件流吗?
  • 哪些部分是明显的、复杂的、复杂的或混乱的?看到这个:https ://en.wikipedia.org/wiki/Cynefin
  • 我需要雇用谁以及执行什么任务?
  • 当应用程序准备好首次发布时,我将如何销售它?
  • ETC

前端

  • 你的系统需要怎样的外观和感觉?
  • 我们是否正在构建基于任务的用户界面?
  • 如果有的话,你打算使用什么 javascript 框架?
  • 我需要写什么内容?
  • 我必须自动化前端开发流程吗?
  • 浏览器兼容性
  • ETC

后端

  • 我将使用哪种服务器端语言?
  • 我使用什么样的数据库?
  • 我应该使用什么框架?
  • 我需要考虑 CQRS 和 Eventsourcing 吗?
  • 我需要一个做得非常好的领域模型吗
  • 我需要什么服务器工具?
  • 持续部署、集成等呢?
  • 引入、变更和所有权的成本?
  • 我将使用什么数据库?我们需要更多吗?
  • 我应该使用什么缓存?反向代理?
  • 我将使用什么网络服务器?
  • 我们会写测试吗?TDD、BDD 等?
  • ETC

服务器:

  • 网络服务器?
  • 码头工人?
  • 虚拟机?
  • 操作系统
  • 数据存储
  • 维护
  • 安全
  • ETC

在确定所有这些东西并加载和加载更多之后,我们然后决定总和的每个部分需要多长时间。我们估计。

然后你可以做两件事:瀑布或敏捷开发。

在阅读了您想要构建的内容之后,我想说您有一个艰巨而漫长的项目,其中所有部分都有很多深度。如果您没有在包括规格在内的技术文档中彻底计划整个事情,就不可能为项目提供固定的价格和时间跨度。

本文档可能会更长,但我希望您能看到我试图提出的观点。

2. 研究后才能选择技术

-edit- 由于我上面解释的事情,我没有回答第二个问题。出现了很多问题:

  • 您将同时支持多少用户?
  • 当我们知道这一点时,我们将获得硬件规格
  • 我们将支持哪些国家?
  • 一些国家可能需要不同的通信协议
  • 我们是否需要技术支持来安装额外的东西,比如 flashplayer、silverlight、java,或者我们有什么?
  • 我们需要什么服务器?
  • 我们使用 nginx-pushstream 还是其他异步工具?

Skype 在其网站上有一个关于带宽的列表:

<table style="width:100%; text-align:left">    <tbody>        <tr>            <th>Call type</th>            <th>Minimum download <br>            / upload speed</th>            <th>Recommended download <br>            / upload speed</th>        </tr>        <tr>            <td class="first-child">Calling</td>            <td>30kbps / 30kbps</td>            <td class="last-child">100kbps / 100kbps</td>        </tr>        <tr>            <td class="first-child">Video calling /<br>            Screen sharing</td>            <td>128kbps / 128kbps</td>            <td class="last-child">300kbps / 300kbps</td>        </tr>        <tr>            <td class="first-child">Video calling <br>            (high-quality)</td>            <td>400kbps / 400kbps</td>            <td class="last-child">500kbps / 500kbps</td>        </tr>        <tr>            <td class="first-child">Video calling<br>            (HD)</td>            <td>1.2Mbps / 1.2Mbps</td>            <td class="last-child">1.5Mbps / 1.5Mbps</td>        </tr>        <tr>            <td class="first-child">Group video<br>            (3 people)</td>            <td>512kbps / 128kbps</td>            <td class="last-child">2Mbps / 512kbps</td>        </tr>        <tr>            <td class="first-child">Group video<br>            (5 people)</td>            <td>2Mbps / 128kbps</td>            <td class="last-child">4Mbps / 512kbps</td>        </tr>        <tr>            <td class="first-child">Group video<br>            (7+ people)</td>            <td>4Mbps / 128kbps</td>            <td class="last-child">8Mbps / 512kbps</td>        </tr>    </tbody></table>

来源:Skype https://support.skype.com/en/faq/FA1417/how-much-bandwidth-does-skype-need

您将需要两个客户端之间的中间服务。

就像你看到的那样……还有很多事情需要给出答案。计划将需要一些时间和大量关于您的目标和想法以及预算范围内的对话。

敏捷开发很可能是您的最佳选择,因为您的应用程序会及时获得功能块。然后,您可以决定后续 sprint 的功能将被构建或不会被构建或将被解决的错误。需要更改的设计等

希望我的回答有所帮助;)

于 2015-09-06T21:16:23.850 回答