问题标签 [flexibility]
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.
database - 引荐数据库架构
我正在使用现在典型的“推荐”系统编写一个新的 {monthly|yearly} 付费网站:当新用户注册时,他们可以指定其他用户的 {username|referral code}(如果他们可以自动检测到来自一个特殊的 URL),这将导致推荐人赚取新用户支付的任何费用的一定百分比。
在重新发明轮子之前,我想知道你们中是否有人有将此类数据存储在关系数据库中的经验。目前我正在使用 MySQL,但我相信任何好的解决方案都应该很容易适应任何 RDBMS,对吧?
我希望支持以下功能:
在线计费系统- 一旦支付了每张发票,就会计算推荐人的收入,他们将能够兑现。这当然包括在线浏览发票/付款的可能性。
付费选项各不相同- 它们的性质和成本不同(有时会有所不同),因此应根据每张最终发票计算佣金。
跟踪推荐(用户之间的关系、被推荐的日期以及任何其他有用的信息 - 有什么想法吗?)
访问历史推荐数据(已支付多少)或应计佣金的简单方法。
将来,我可能会提议用累积的现金来换取订阅续订(包括全部或部分新订阅,如果需要,必须支付差额)
多个级别- 我正在考虑支付大约 10% 的直接推荐收入 + 2% 的下一个级别,但这可能会在未来发生变化(添加更多级别,更改百分比),所以我应该能够存储历史数据。
请注意,我不打算在任何其他项目中使用它,所以我不担心它是“即插即用”的。
你做过类似要求的工作吗?如果是这样,你是如何处理所有这些事情的?你会推荐任何特定的数据库模式吗?为什么?
我有什么遗漏可以帮助实现更灵活的实现吗?
user-interface - 您允许用户创建 uid 有多大的灵活性?
在不得不在另一个网站上注册之后,对用户名进行了愚蠢的限制(没有空格或特殊字符),我想知道为什么我们仍然有程序员限制这样的事情。
是否对允许的用户名的方法达成共识?
customization - 可定制的 Web 应用程序
在我的公司,我们开发预制的 Web 应用程序。虽然我们的应用程序在许多情况下都按原样工作,但我们经常会收到复杂的定制请求。我们在尝试以结构化方式执行此操作时遇到问题。通用功能不应受到自定义的影响。目前我们正在研究 Spring Web Flow,它看起来可以处理我们需要的一部分。
例如,我们有一个在线购物,我们有一个客户的请求,要求在签出购物篮订单时必须将其写入专有的日志记录系统。使用 SWF,可以使用 ClientX Checkout Flow 继承我们的 Generic Checkout Flow,并使用执行自定义日志写入所需的状态对其进行扩展。这种情况似乎处理得很好。这意味着我们可以根据 Open/Closed 原则保持我们的通用结账流程不变并使用自定义功能对其进行扩展。我们的团队可以及时向通用结账流程添加功能,并且可以在不修改扩展程序的情况下将其分发给客户。但是,有时客户要求我们的页面进行定制。例如,在我们的在线购物应用程序中,客户请求多币种功能。在这种情况下,您需要修改视图以及流(控制器)。有没有一种技术可以让我扩展通用视图而不是修改它?到目前为止,似乎只有两种具有大多数基于模板的视图(JSP、Struts、Velocity 等)的解决方案
- 为每个客户提供特定版本的视图。这显然会导致实现爆炸
- 根据导致代码爆炸的参数(如果是 multipleCurrency 则)使应用程序可配置 - 必须在每个页面中检查许多配置条件
在这种情况下,最好的解决方案是什么?可能还有一些我不记得的其他定制案例。是否有一种基于组件的视图技术可以让我扩展某些基本视图并且这样做有意义。可配置 Web 应用程序问题的典型解决方案是什么?
c++ - 编写灵活软件的指南?
一段时间以来,我一直在为我的(深奥的,如果你愿意的话)编程语言开发一个 C++ 解释器。我注意到的主要事情之一:我从一个灵活的概念开始,我编写的代码越多(Tokenizer->Parser->Interpreter),整个系统变得越不灵活。
例如:我一开始没有实现一个include
函数,但是解释器已经启动并运行了——我在实现它时遇到了极大的困难,就像后来“修补一些东西”一样。我的系统很快就失去了灵活性。
- 我怎样才能学会在开发过程中保持相对较小的 C++ 项目尽可能灵活和可扩展?
c# - 动态用户控制变量(嵌入式语言?)
我正在创建一个软件(用 C# 编写,将是一个 Windows 应用程序),我遇到了这个问题 -
我有一组变量,我需要允许用户在这些变量上定义广泛的数学函数。
但我的用户不一定必须具备任何有关编程的先验知识。
我考虑过的选项是:
- 创建某种 GUI 来定义数学“函数”。但这是非常有限的。
- 实现一种非常简单的嵌入式语言,这将提供灵活性,同时保持相对容易理解。我查看了 Lua,但问题在于您非常需要具备编程方面的先验知识。我在想一些更易读的东西(有点类似于 SQL),例如“将 3 分配给 X;”
欢迎其他想法。
假设我的用户没有任何编程知识,我基本上是在寻找最好的方法。
但是,请注意,这不是我的软件的主要功能,所以我假设如果用户想要/需要使用此功能,他会花几分钟时间查看手册并学习如何操作所以,只要不是太复杂。
谢谢,马尔基 :)
performance - 科学计算中网格数据的内存布局
我正在开发一个有限元系统。像往常一样,模拟由一组网格节点组成,每个节点都有一组属性(浮点),例如随时间演变的几个材料属性、坐标或物理量。
您可以采用两种极端方法:
属性方面:为每个属性维护一个数组:
double* x, *y, *z, *e_field, *b_field, *conductivity;
入口方式:维护一个数组,其中每个数组都是 struct
struct { double x, y, z, e_field, b_field, conductivity; } *meshnodedata;
在这些之间,可以混合使用,例如仅对坐标 x、y、z 应用第二种方法,而对其余属性使用第一种方法。您的模拟为每个网格节点维护的属性越多,混合的可能性就越大。
一方面,我有一个经典问题,就程序性能和代码可维护性而言,这些方法(及其组合)中的哪一种最适合科学计算。另一方面,我想知道如何以使不同方法之间的迁移变得容易的方式来实现代码。此外,它甚至可能是在程序不同部分的不同内存布局之间迁移的解决方案。
言归正传:
- 您对这些不同的方法有何经验?
- 这些差异有多大?
- 您是否获得了在这两种布局之间迁移的经验?
php - 时间如何存储它
好吧,我有点困惑。我正在做一个必须time()
在数据库中存储一些的项目。在我看来,为了更好的灵活性,我应该将它存储为时间戳,以便我可以在 2 次和其他很酷的东西之间进行操作。但是我已经看到(这里比其他任何地方都多)很多人以日期格式将时间存储在数据库中,遇到一些常见问题,例如:如何将日期格式转换为时间戳?或者我怎样才能将一个日期减去另一个具有不同日期格式的日期?等等
我使用时间戳并稍后将其转换为时间格式(显示给用户)是否错了?mysql数据库。
c# - 性能和灵活性问题 - 我应该如何对我的 XML 文件数据库进行分类?使用 XML 或目录?
我不确定这是这个论坛的问题。
我正在创建一个使用 500-1500 个文件的程序,我想知道哪种方式是最好的方式来对我的数据库进行分类。
我目前正在通过标记从 xml 文件中对我的文件进行分类:
这给了我控制 xml 文件的高度灵活性。尽管它降低了很多性能,但给了我更高的空间使用率,创建更多功能的可能性更小(由于性能低下)。
我认为我应该做的是创建一个名为“Basic”(例如)的文件夹并将我的“Basic”分类 XML 文件存储在其中 - 这将给我更多的性能(等等),但灵活性较低。
我应该改用文件夹吗?
先谢谢了,
丁。
class - cakephp 模型层次结构
我正在将 CakePHP 用于 Web 应用程序。而且我正处于非常初级的发展阶段。我正在同时进行设计和开发。
到目前为止,我有 7 张桌子。
我对所有这些类的层次结构感到困惑。
目前我正在定义关系站点 hasMany ABC 和 ABC hasMany BCD...LOC,反之亦然。我目前能够检索和保存数据。
我担心的是系统是否足够灵活,可以轻松地包含任何未来的变化。
关于我的类的层次结构,Should Site 扩展 AppModel 和 ABC 扩展 Site 等等。或者 定义关系会给我我需要的一切。
一切都由 ABC 控制器驱动。
有什么建议吗?
先感谢您。
spring - 速度 - 哪种技术具有灵活性?
我正在使用 Spring(使用 ROO 搭建脚手架)和 Velocity 为模板引擎构建 Web 应用程序。
这些应用程序的流程非常相似,大部分时间逻辑不会发生太大变化,因此我可以在多个 Web 应用程序中使用相同的控制器。需要定制的是UI端。
我想建立一个灵活的系统,允许:
- 在开发的同时在本地工作
- 将模板打包到 webapp 之外
- 在不重新部署 webapp 的情况下更改一些模板。
到目前为止,我已经构建了一些使用WebappResourceLoader和URLResourceLoader的东西:
所以基本上,“默认”模板位于 webapp 内部,并且可以被位于可通过 URL 访问的某个位置的模板覆盖(现在在 Apache 的一个简单文件夹中)。
最后,每个“皮肤”的模板都应该打包在一个单独的 WAR 中。
现在我不知道如何能够在本地使用这种架构......
大多数时候,我将致力于自定义模板代码,所以我想我可以有一个只有模板的 WAR 项目,并使用 Maven 的 WAR Overlay 将它们变为现实。
但在这种情况下,模板在 WAR 中,这不是我想要的......
有任何想法吗 ?