问题标签 [code-organization]

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 回答
4562 浏览

asp.net-mvc - asp.net mvc2 - 用于母版页和代码组织的控制器

我刚刚完成了我的第一个 ASP.NET MVC (2) CMS。下一步是建立网站,显示来自 CMS 数据库的数据。这是网站设计:

http://img56.imageshack.us/img56/4676/portal.gif http://img56.imageshack.us/img56/4676/portal.gif


#1(红框) - 显示文章类别。视图模型:

#2(棕色框) - 显示最后 x 篇文章;跳过绿框 #3 中的那些。视图模型:

#3(绿色框) - 显示最后 x 篇文章。使用与棕色框 #2 相同的 ViewModel

#4(蓝色框) - 显示即将发生的事件列表。dataContext.Model.Event用作ViewModel

方框#1、#2 和#4 将在整个网站上重复出现,它们是母版页的一部分。所以,我的问题是:将这些数据从模型传输到控制器并最终传输到视图页面的最佳方式是什么?

  1. 我应该为母版页和 ViewModel 类创建一个控制器,它将所有这些类包装在一起,或者
  2. 我是否应该为这些框中的每一个创建部分视图并让它们中的每一个都继承适当的类(如果它甚至有可能以这种方式工作?)或
  3. 我应该把这个重复的代码放在所有控制器中,并通过 ViewData 传输所有额外的数据,这可能是更糟糕的方式:) 或者
  4. 也许有更好,更简单的方法,但我不知道/看到它?


提前致谢, Ile



编辑:
如果您的答案是#1,那么请解释如何为母版页制作控制器!

编辑 2:
在本教程中,描述了如何使用抽象类将数据传递到母版页:http
://www.asp.net/LEARN/mvc/tutorial-13-cs.aspx 在“清单 5 – Controllers\MoviesController.cs ",使用 LINQ 直接从数据库中检索数据,而不是从存储库中检索数据。所以,我想知道这是否只是在本教程中,或者这里有一些技巧并且存储库不能/不应该使用?

0 投票
1 回答
213 浏览

c# - 代码组织难题:具有多个支持 DLL 的 Web 项目?

我正在尝试掌握项目中代码组织的最佳实践。我在互联网上四处寻找好的示例,到目前为止,我已经看到了一个 Web 项目的示例,它具有一个或多个它引用的支持类库,或者一个具有遵循其命名空间约定的子文件夹的 Web 项目的示例。

假设没有正确的答案,这就是我目前对代码组织的看法:

我的项目网

这是我的网站。我在这里引用我的类库。

我的项目.DLL

作为基本命名空间,我将此 DLL 用于通常需要消耗的文件。例如,我的项目中包含所有枚举的类“枚举”就住在那里。与所有异常处理的类 MyProjectException 一样。

我的项目.IO.DLL

这是一组可能处理文件上传和下载的 20 个文件(到目前为止)。

MyProject.Utilities.DLL

我所有的常用类和方法都集中在一个通用的 DLL 中。每个类都遵循“XHelper”约定,例如“SqlHelper、AuthHelper、SerializationHelper 等等……

我的项目.Web.DLL

我使用这个 DLL 作为主客户端接口。现在,这里的大多数类文件是:

1) 属性(例如学校、位置、帐户、帖子) 2) 授权内容(例如自定义成员资格、自定义角色和自定义配置文件提供者)

我的问题很简单——这看起来合乎逻辑吗?

另外,如何避免从一个项目库到下一个项目库交叉引用 DLL?例如,MyProject.Web.DLL 使用来自 MyProject.Utilities.DLL 的代码,而 MyProject.Utilities.DLL 使用来自 MyProject.DLL 的代码。这是否通过单击属性并选择“依赖项”来解决?我试过了,但似乎仍然没有访问我选择的程序集的命名空间。我是否必须为每个类库引用我需要的每个程序集?

感谢您的回复并感谢您的耐心等待。

0 投票
8 回答
539 浏览

c++ - 关于 C++ 编程实践的意见

我有一个正在编写的程序,不是太大。除了主要功能外,它还有大约 15 个其他功能,在不同时间调用各种任务。代码在一个文件中都可以正常工作,就像现在一样。

但是,我想知道是否有人对将这些函数放在与 main 所在位置不同的单独文件中是否更智能/更有效/更好的编程有任何建议,或者它是否重要。如果是,为什么?如果没有,为什么不呢?

我不是 C++ 新手,但也绝对不是专家,所以如果你认为这个问题很愚蠢,请随时告诉我。

谢谢你的时间!

0 投票
1 回答
1526 浏览

php - 在哪里存储辅助函数?

我有很多我从网上创建或复制的功能。

我想知道我是否应该将它们存储在我刚刚包含在脚本中的文件中,或者我应该将每个函数作为静态方法存储在一个类中。

例如。我有一个 getCurrentFolder() 和一个 isFilePhp() 函数。

它们应该按原样存储在文件中还是每个都存储在一个类中:

文件夹::getCurrent() 文件::isPhp();

你好吗?

我知道这是一个“如你所愿”的问题,但有一些建议/最佳实践会很棒

谢谢。

0 投票
2 回答
1623 浏览

javascript - 如何使用 rails 和 jquery 组织 javascripts

我正在使用大量的 javascript 在一个大型且丰富的 Rails Web 应用程序中工作。我想知道是否有人有组织 javascripts 的提示。今天我正在生成一个名为 controller.js 的新文件,并使用 content_for 将它添加到我的视图中。问题是,有些文件变得很大,有时,我需要一个控制器的功能在另一个控制器中,所以最后,我将 products.js 添加到细节控制器只是为了保持干燥。那个解决方案好吗?还有其他提示吗?我认为同样的模式也可以应用于 css 文件?

0 投票
1 回答
267 浏览

javascript - 为大型网站组织 JS 包括哪些好的技术?

每个页面是否应该有自己的 .js,并在每个页面的某种 all.js 中包含可重用功能(实时搜索、下拉菜单)?不确定构建它的最佳方法是什么。感谢您的输入!

0 投票
4 回答
1756 浏览

model-view-controller - KO3:如何处理样式表和脚本文件

我正在使用 Kohana 3,它是模板控制器。我的主站点模板控制器目前看起来像这样:

然后在我的模板视图中我这样做:

这工作正常。问题是它需要将样式和脚本文件添加到控制器中,而实际上不必关心这些。如果视图是由我以外的其他人完成的,这也很麻烦,因为他们不得不在控制器上胡闹,只是为了添加一个新的样式表或一个新的脚本文件。如何以更好的方式做到这一点?

只是为了澄清,我想知道的是如何处理特定于页面的样式表和脚本。默认和站点范围的我从配置文件中获取或直接放在模板视图中没有问题。我的问题是如何以一种好的方式为特定页面添加自定义页面。

0 投票
3 回答
245 浏览

.net - 为移动设备和桌面开发

我正在开始一个新项目。它将在运行 Windows CE、Windows Mobile 6 的设备上运行,并且还将具有桌面版本。该软件将使用它自己的协议通过串口连接到一些设备。基本上它会:

  • 连接到设备
  • 发送和接收信息
  • 读写二进制文件

这些任务将在桌面设备和移动设备之间共享。我一直在搜索我需要的信息,但我仍然有一些疑问:

  1. 如果我创建了针对 Windows CE 设备的解决方案,它是否也适用于 Windows Mobile 6?
  2. 创建一个面向 Windows CE 的类库会给我在桌面版本中使用它带来什么麻烦?(当我添加对该类库的引用时,我的 VS 说我可能会遇到一些意想不到的结果)
  3. 是否可以在运行 Windows CE 4.2 的设备上安装 .NET CF 3.5?

谢谢!

0 投票
2 回答
516 浏览

cpu - 大规模 VHDL 模块化技术

我正在考虑在 VHDL 中实现 16 位 CPU。一个简单的 CPU。ADD、MULS、NEG、BitShift、JUMP、Relitive Jump、BREQ、Relitive BREQ,我不知道这些方面的内容> 可能都只使用 16 位操作数。我什至可以减少它,只使用一个操作数和一个累加器。使用一些状态寄存器,进位,零,负(除非我使用累加器),

我知道如何设计逻辑门的所有部分,并计划从第一原则构建它们,所以对于我的 ALU,我需要“构建”一个 ADDer,可能是一个进位预测,组加法器,这个加法器它自己是由几个部分组成的,它们本身是由几个部分组成的。

无论如何,我的问题不在于 CPU 设计,也不是 VHDL(我或多或少懂语言)。这就是我应该让事情井井有条的方式。我应该如何使用包,我应该如何命名我的进程和端口映射?(我从未见过命名端口映射或进程的好处)

0 投票
2 回答
1237 浏览

.net - 解决方案源代码组织指南(OO/DDD)

我开始我的第一个商业项目(.NET),并试图遵循 DDD 原则。是否有组织源代码和命名空间的准则或通用模式?

例如,您的域对象是否进入命名空间MyProject.Domain或其他什么?你会把具体的实现和接口分开吗?在不同的命名空间中?不同的文件夹?不同的解决方案?

我知道这其中很多是主观的,并且取决于项目规模,但是对于开始一个相对较小但可扩展的 n 层项目的一些指示或建议会很有用。