问题标签 [reusability]

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 投票
4 回答
1914 浏览

reusability - 你如何组织你的代码库?

我很想知道人们如何组织他们的代码库,尤其是在可重用组件方面。我在下面用 OO 术语谈论,但我对您如何为其他类型的语言组织库也很感兴趣。

例如:

  • 您是所有类库项目的忠实拥护者,还是更喜欢将所有内容保存在一个项目中?
  • 您是否重用了预构建的 DLL,或者您是否在当前工作中包含了以前项目中的各个类?如果是单独的课程,您是否在项目之间共享它们以确保所有课程都保持最新,或者您是否允许分支?
  • 您的可重用元素有多大?他们的专注度如何?他们是如何集中注意力的?
  • 您通过首选实践实现了何种程度的重用?

等等

编辑

我不是在这里寻找具体的指导,我只是对人们的思想和实践感兴趣。我对在不同项目之间重用代码特别感兴趣,而不是在单个项目中重用。(不幸的是,这里使用“项目”具有误导性——我的意思是在为客户开展的实际项目之间重用,而不是 Visual Studio 意义上的项目。)

0 投票
2 回答
598 浏览

android - Android:如何使用现有的图形元素

我想创建一个包含网络指示图标(3G、WiFi ...)的用户界面,并且我想使用显示在通知栏中的现有图形元素。

有谁知道如何获取这些现有元素并在自定义布局中使用它?

我猜这些图标都是 ImageView 元素,我想知道是否可以用findViewById()方法检索它们。

0 投票
1 回答
1529 浏览

apache - Curl、Apache 和 mod_wsgi 的连接重用

我在 Apache 上部署了一个 mod_wsgi 应用程序,并且有一个使用 Curl 的客户端程序。

在用户端的 CURL api 上,我让它尝试重用连接,但是查看来自 wireshark 的连接,我看到对于每个 HTTP 请求/响应,都会建立一个新连接。

在每个 HTTP 请求结束时,HTTP 响应标头都有“Connection: Close”

这和Keep-Alive一样吗?我需要在 Apache/Mod_wsgi 端做什么来启用连接重用?

0 投票
4 回答
191 浏览

mysql - 在 Mysql 中禁用重复使用已删除记录

我有一个与 MySql 数据库交互的 Web 应用程序。当我删除一条记录时,它的插槽似乎在我下次创建新记录时被重用。由于每条记录都有一个连续的主键,因此下一条记录将有一个新键,比如 5,但新记录将放置在最后一个空的位置,比如记录号 2 曾经所在的位置。有没有办法在列表底部直接添加新记录?有没有办法用 MySQL 查询浏览器做到这一点?

这是我所描述的一个例子:

当记录 #2 消失时,下次我进行新添加时,记录 #5 占据了 2 号位置:

是否有推荐的方法来指示 MySQL(可能在创建表时)只应在列表底部添加新记录?所以,我们想禁用自动记录重用。

提前感谢您的帮助最诚挚的问候

0 投票
1 回答
944 浏览

asp.net-mvc - MVC 可重用属性网格

在我的 Web 应用程序框架(当前为 WebForms)中,我有一个类似于经典属性网格的控件。它使用对象 ID(数据库键)进行初始化,然后读取元数据以确定对象的类型和对象的属性。它将属性、字符串属性显示为文本框、布尔属性显示为复选框、枚举属性显示为下拉列表。在页面提交上有一个控制 ctrl.SaveData() 的方法,它将更改的属性值保存回数据库。

WebForm 控件树和事件模型很好地支持这种方法。现在我问自己是否有可能为 ASP.NET MVC 实现类似的解决方案。主要目标是拥有一个通用的、可重用的组件,可以在各种情况下轻松应用。此外,该解决方案必须足够灵活,以便将多个对象的多个组件实例放在一个页面上。在这里,自动生成的 WebForms HTML ID 也有帮助。

我很好奇你的想法!非常感谢您的回答!

0 投票
5 回答
1836 浏览

c# - 当不能选择多重继承时如何重用代码?

我想将几个旧测试类中的一些方法用到我正在构建的新类中。不幸的是,C# 不支持多重继承。如何重用这些旧类的代码?我只是将它们创建为成员对象吗?或者我还有其他选择吗?

0 投票
3 回答
892 浏览

vb6 - 如何在我的 VB6 应用程序中重用类?

首先,由于我使用的是 VB6,请将您的建议仅限于应用于 VB6 的技术。

替代文字

如上图所示,我有一组相互关联的控件。它包括几个树视图、一个拆分栏、一个列表视图、一个子窗体(一个用户控件)等。

当我单击或更改左侧的树视图节点时,右侧控件将相应地更改其显示,反之亦然。

幕后数据保存在 Access 数据库中。

这组数据管理和显示用于几个不同的应用程序。所以我写了几个类来实现逻辑,并在我的应用程序中一次又一次地包含这些类模块。

所以我实际上是在“复制和粘贴”模式下重用我的课程。它有效,但有问题。如果我在一个类中进行更改,我必须在多个应用程序中进行更改。

这些天来,我正在考虑将它们制成所谓的 ActiveX 组件。但我不确定我应该开发哪种 ActiveX 组件来重用整个架构。

简而言之,我想知道如何才能更优雅地重用它,而不仅仅是“复制和粘贴”。以下是对新的“优雅重用”的一些想法或期望,但不限于它们。

(1) 我希望它看起来像一个具有属性页的 ActiveX 控件,以便我可以在设计时设置它的一些属性。

(2) 对于不同的应用程序,右边的子窗体可能显示不同的信息,具有不同的控件,可能需要额外的编码和设计。

(3) 此外,我可能需要为不同应用程序的树视图和列表视图编写一些新行为。这个要求使得整个表单的整个用户控件不适合。因为 MSDN 说“对 ActiveX 控件的引用,永远不应该返回给客户端应用程序。”

0 投票
6 回答
7565 浏览

linux - 套接字和文件描述符重用(或缺少)

在下面的服务器代码中调用套接字后,我收到错误“打开的文件太多”。此代码被重复调用,并且仅在 server_SD 获得值 1022 之后才发生。所以我假设我达到了“ulimit -n”所禁止的 1024 的限制。我不明白的是我正在关闭套接字,这应该使 fd 可重用,但这似乎没有发生。

注意:使用 linux,是的,客户端也关闭了,不,我不是 root 用户,所以移动限制不是一种选择,我一次最多应该打开 20 个(左右)套接字。在我的程序的整个生命周期中,我希望打开和关闭接近 1000000 个套接字(因此需要非常强大的重用)。

有谁知道如何保证关闭和可重用性?

谢谢。

0 投票
6 回答
268 浏览

architecture - 你如何构建你的可重用库?

你如何组织你的代码,以便它可以轻松地跨业务项目移植而不会带来不必要的膨胀?

例如(在 .Net 中),假设您有以下命名空间:

  • 您是否为每个父命名空间创建一个项目,然后在其他项目中引用该项目 dll?
  • 您是否创建了一个大型类库并将其移植(即使您只需要 5% 的库)?
  • 或者,您是否只是创建一个文件并将所需的代码复制到该文件中;将该文件放入您需要实现“即插即用”架构的所有项目中(就像这看起来一样糟糕)?

编辑: 我不是专门寻找 .Net 答案,但这是我正在使用的具体示例(因为在这种情况下,抽象示例会使问题更难理解)

0 投票
9 回答
5851 浏览

c# - 如何创建和维护代码重用库?

我正在尝试设置可重用代码的存储库。我正在考虑让每个可重用代码模块都具有一定的“成熟度”等级。评级将被定义为可重用代码位于特定要求集内的级别。最高成熟度级别将是一组预定义要求的最高标准程度。

例如:
水平;要求; 描述
0 级;代码合法使用;代码在商业行业/跨多个合同/等中使用是否合法?
1级; 基本代码行并满足 0 级要求;原型代码、第 3 方工具等
2 级;有功能接口和注释,满足1级要求;每个类和功能都有足够的文档;能够从评论中确定功能
3 级;遵守编码标准并满足2级要求;遵循定义的编码标准并通过代码检查实用程序测试
4 级;包括测试用例并满足 3 级要求;有足够的测试用例来测试代码的所有功能
5级;经重用委员会批准,符合4级要求;由重用专家和同行审查并验证它符合所有成熟度级别

我想知道这个成熟度级别是否应该是一个层次结构,为了进入下一个级别,您需要满足所有先前级别的要求(如上所示)?

或者如果它应该是满足下一个级别的要求的子集?

例如,我们满足了 y 中的 x 要求,我们可以进入下一个级别(要求与上面提到的相同)。

0 级,满足 6 个要求中的 0 个
1 级,满足 6 个要求中的 1 个
……

我在子集方法中看到的问题是某些要求应该具有更强的权重,并且在这种方法中不会考虑到(除非我开始变得具体,满足 b 中的 a 和 y 中的 x 等)。但随后它可能开始变得复杂。

以前有没有人这样做过,如果是这样,你是如何设置你的图书馆的?您是否有一个成熟度级别或其他一些结构?任何投入将不胜感激。