问题标签 [program-structure]

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 投票
2 回答
108 浏览

cakephp - MVC:一种模型,多种应用

我正在启动一个基于多个 Web 应用程序(Website、ControlPanel、RestAPI)的项目,每个 Web 应用程序都基于相同的 Data[bases] 和一个 MVC 框架。

为了避免并行代码维护,我想为每个应用程序使用相同的模型文件。但是当深入思考时,所有可能的方法都有一些优点和缺点。我想我会问一些专家。

可能的方法(我知道):


1.插件 ~one4all

逻辑的核心封装为部署在每个应用程序中的插件。

++ 所有应用每张表只有一个模型

-- 一个 bug 会导致 4 个应用崩溃

-- 每个应用程序有很多未使用的代码


2.重复代码 ~all4one

重复模型文件的双重维护。

++ 错误只影响一个应用程序

++ 模型不包含未使用的代码

——低效开发


3. 应用之间的API ~lonewolves

应用程序从 api 获取数据。

++ 一个代码服务于所有应用程序

-- 不常见的方法

-- 巨大的开销


4. 模型符号链接 ~lazy1

一个应用程序保存模型文件,其他应用程序将符号链接/包含它。

++ 几乎没有额外的工作要做

+- 看起来很搞笑

-- 一个错误影响所有应用程序

-- 可以限制调试


还有更多可能的方法吗?哪一个是常见的/推荐的?我不想将所有应用程序的功能合二为一,以免一拉就崩溃。

非常欢迎更多的方法和想法。先感谢您。

0 投票
3 回答
92 浏览

rust - 如何简化重复功能逻辑

问题

我想知道是否有办法改进我程序中某些函数的当前结构,因为我觉得发生了大量不需要的重复。

背景

我正在编写一个小型记录器,以便 CLI 应用程序可以在终端中拥有更漂亮的文本。我有几个函数可以向标准输出添加一些图标,例如success(),它需要一条消息并向其添加一个绿色复选标记图标,与 等相同error()warn()它们都可以在末尾添加换行符或忽略它取决于用户是否same()在它之前调用过。

目前他们使用下面定义的三个函数来决定是否添加换行符,以及是否添加时间戳。

代码

这是该success函数目前如何使用输出函数的方式:

这同样适用于所有其他功能,它们要么输出到stderr要么stdout

0 投票
1 回答
49 浏览

programming-languages - 影响编程风格的因素

在编写程序时,通常会看到程序员遵循默认的风格准则。例如,在我处理过的大多数语言中,我们总是写if x < 5而不是,if 5 > x尽管两者都是底层语法允许的表达式。

有没有人对我们在编写这些表达式时可能导致我们发现这些偏见的原因提出建议?

关于可能原因的一些想法 -

  • 它可能是早期编程语言(如 Scheme、Algol 甚至是 Assembly)的语法中的约束?
  • 这可能是一些早期风格检查员强制执行的规则?
  • 任何其他?

    如果有人能分享就太好了

  • 将这些偏好与编程早期的实践联系起来的见解,甚至是讨论这些偏好的学术参考。
  • 帮助提供他们可能订阅/遇到的此类偏好的更多示例。

  • 0 投票
    1 回答
    104 浏览

    javascript - 我是否走在构建在线游戏机器人的正确道路上?

    我绝不是程序员或开发人员或类似的人,但我对机器学习和人工智能充满热情。

    我什至不知道我是否用正确的词来描述我的问题,所以请多多包涵(应该很容易回答)

    基本上我决定通过一个项目学习一些编程语言:制作一个在线游戏机器人(它仅用于教育目的,这个游戏的美妙之处在于你在其中所做的一切都符合规则啊哈哈)

    只是让你知道这是一个基于网络的 MMORSG 游戏(少于 100 名玩家,但宇宙很大)。游戏不包含任何动作或 3d 对象(就像国际象棋)

    这是程序应该做的(1和2仅供参考,3是我需要帮助的问题):

    1.浏览不同的网页并扫描网站的一些html部分以存储数据(如排名、球员统计数据、坐标等)

    2.保存所有这些数据,可能在 SQL 数据库中(随着时间的推移,它跟踪的信息越多,它应该能够做出的计算决策就越多)

    3.在游戏上执行任务(为了这篇文章,假设这意味着只是在 Chrome 上实际执行 1 和 2 作为一项任务,而不是 100 个不同的脚本)

    附加信息:我实际上能够在 chrome 控制台上通过 javascript 手动执行所有游戏任务。

    问题是:我电脑上的一个 python 脚本必须以某种方式将行政命令发送到游戏中。Selenium 有点像我想要的,但并不完全整洁,因为最终,系统应该能够同时管理浏览器上的多个页面,并且最好不要控制我的鼠标和键盘(我不是在制作宏)

    我能想出的最接近的最终结果是某种 Chrome 扩展程序,它可以与我计算机上的 python 脚本进行交互,基本上只是做 python 想要它做的事情。这使 python 能够管理和控制浏览器上每个打开的选项卡。最后,python 还应该有主控件(打开关闭选项卡和窗口等,但我认为这部分很简单,甚至可以用苹果 shell 脚本完成。)

    我的问题是:这样的程序是否已经存在?如果不是,您认为最好的方法是什么?我从哪说起呢?

    请随时给我任何您认为有帮助的反馈,我选择的这件作品比我的嘴巴要大得多,老实说,我什至不知道我是低估了这里的任务还是让它变得比应该的更复杂。

    但是我决心完成这个项目:)