问题标签 [system-design]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
9249 浏览

c# - 如何实现撤销功能?

在我的应用程序中,我想为用户提供一个小的撤消功能。用户可以撤消的操作并不多。具体行动如下:

  • 向对象添加注释
  • 为对象着色
  • 用字符串标记对象

现在我想到了如何实现这一点。我首先想到了一个动作类,它是用户可以采取的 3 种不同动作的抽象基类。每次用户执行这些操作时,都会创建此抽象 Action 类的子类的新适当实例,并将其插入到包含所有操作的列表中。

每当用户想要撤消某事时,列表就会显示给用户,他可以选择他想要撤消的操作。

现在我在想什么必须存储在这样的动作对象中:

  • 动作前对象的状态
  • 采取的实际行动(例如,添加到对象注释中的字符串)

我不确定这是否足够。我还考虑过类似时间顺序的东西,但这应该是必要的,因为列表可以按时间顺序保持正确。

还有其他我应该考虑的事情吗?

0 投票
1 回答
186 浏览

embedded - embedded system design: partitioning resources

I want to design a device that supports both cellular connectivity ((ie. HSDPA/HSUPA) for high-speed downloads/uploads and telephony) and heavy multimedia applications (like playing streaming video in high resolution, streaming being done over the cellular connectivity).

Let us say that the hw platform under consideration has an OMAP 4430 (at least for argument's sake), and has a cellular modem connected to it as well as a nice amoled display. It runs embedded linux.

Now, I am not sure how to partition the system's software and hardware resources so that neither requirement is starved of resources. Also, what should I do to avoid issues in the quality of the streaming playback while still maintaining my cellular throughput?

If I were to add more applications later to this device, then how would I design this system keeping this requirement in mind?

Thanks, -Mno

0 投票
3 回答
1726 浏览

database-design - 数据结构和系统设计问题

如果有人被要求“为某某设计一个系统”或“您将为某某使用什么数据结构?”......可以用关系数据库系统设计来回答吗?完成表、实体、它们之间的关系、外键和主键等?对于有丰富的数据库系统使用经验但没有使用数据结构的项目经验的人来说,这可以吗?我只知道链表、二叉树、二叉搜索树、堆栈和队列……为即将到来的实习面试感到紧张。有什么建议吗?

0 投票
1 回答
546 浏览

linux - 读取条形码并通过 HTTP 将它们发送到 php 脚本的守护程序

我期待构建一个原型,它应该完全无头运行且无需用户交互,系统应该能够启动条形码阅读器,通过互联网将其发送到 php 作为 file.php?code=var ...

哪种方法最简单?

我正在考虑:

  • windows-console 应用程序,某种 ping...
  • linux-console 应用程序,某种 wget 或类似的东西

有没有人有更好的方法。

系统应该是完全自主的,插入,扫描条形码,发送代码,重复......

0 投票
1 回答
905 浏览

php - 为本地编程竞赛系统构建客户端-服务器应用程序

我正在考虑构建一个客户端服务器系统,其中服务器可以接收用户的代码并编译它并将结果返回给用户。该系统将用于我所在大学的本地在线编程竞赛。

所以基本上,用户可以编写一些代码(PHP / C++ / Java 等)并从前端(Web 应用程序)提交他们的代码。一旦他们点击提交,这个代码必须被发送到服务器,然后服务器将编译代码并将结果返回给用户。最好的方法是什么,以便服务器可以编译多种语言代码(C++、C、Java、PHP、Python 等)?

设计这个系统的最佳实践是什么?我是否需要使用 Web 服务将用户代码传递给不同的服务(1 个服务接收和编译 c++ 代码,1 个服务接收和编译 Java 代码,1 个用于 python 等)?

请分享您的想法和经验。

0 投票
1 回答
17054 浏览

architecture - 您如何编写基于网络的实时协作工具,例如 google docs?

我真的很好奇

如何编写协作工具,例如 google docs?

我能想到的最接近的事情是编写一个类似于聊天的消息传递系统,然后来回发送消息,以便每个客户端自行更新。

你知道他们编写这样一个小工具的教程/演示吗?

他们用什么工具来做这种应用程序?

TIA 对于您可以提供的任何指针。

0 投票
2 回答
3587 浏览

spell-checking - 设计一个可以检测错别字和建议的系统

这是在采访中被问到的。

我认为可以通过构建所有有效单词的 trie 来完成答案,然后可以根据可能的有效路径提出建议,否则会被认为是不正确的。

假设如果用户键入 apfle,系统会检测到在 ap 之后可能的有效路径是 app,这将满足 apple 的要求。

还有比这更好的解决方案吗?也许是拼写检查器实现的。

0 投票
9 回答
7482 浏览

javascript - 开发大型 JavaScript 应用程序的最佳实践

我在 Java/C++ 方面有很强的背景,我想知道是否有可能在不降低质量的情况下开发一个更大的 JavaScript 应用程序。

任何提示都表示赞赏:

  • 发展环境
  • 调试技术
  • 单元测试
  • 剖析
  • 仪器仪表
  • 系统设计
  • 界面设计
  • 代码设计

我也很好奇JavaScript PC EmulatorJavaScript Game Engine等项目是如何处理这些问题的,以防你们中的一些人知道。

0 投票
2 回答
2336 浏览

c++ - BOOST ASIO multi-io_service RPC 框架设计 RFC

我正在研究 RPC 框架,我想使用多 io_service 设计将io_objects执行 IO(前端)的线程与执行 RPC 工作的线程(后端)分离。

前端应该是单线程的,后端应该有一个线程池。我正在考虑使用条件变量使前端和后端同步的设计。但是,似乎boost::threadboost::asio没有混合——即,似乎条件变量async_wait支持不可用。我在这里有一个关于这个问题的问题。

我突然想到io_service::post()可以用来同步两个 io_service 对象。我在下面附上了一张图表,我只想知道我post是否正确理解了机制,并且天气这是一个明智的实现。

rpc系统实现

0 投票
3 回答
264 浏览

architecture - 在用例分析中使用参与者对这些角色进行建模

我正在建模一个具有(除其他外)这些类型的角色的系统:

  1. 个人球员
  2. 团体选手

以下是一些额外的事实:

  • 单个播放器有一组功能要求
  • 有几种类型的团体玩家(例如射手,导航员,工程师等)
  • 组播放器的选择(即类型)会影响播放器可用的功能
  • 团体玩家的功能是以下各项的结合: (a) 单个玩家可以做的事情的子集 (b)(可选),基于角色的一些附加要求(例如,肉搏战等)。

我可以将演员抽象为通用 Player 的专业化 - 但我不太确定如何将它们“组合在一起”作为系统“形式分析”的一部分。

任何人都可以帮忙吗?