我正在尝试从另一个模块调用属于某个模块的函数(用于代码分解、组织等)。
这是我的箱子结构:
? mod_test git:(master) ? tree
.
??? Cargo.lock
??? Cargo.toml
??? src
??? bin
? ??? one.rs
??? lib
? ??? two.rs
??? main.rs
3 directories, 5 files
Run Code Online (Sandbox Code Playgroud)
在main我声明:
pub mod bin {
pub mod one;
}
pub mod lib {
pub mod two;
}
Run Code Online (Sandbox Code Playgroud)
所有这些文件只包含一个微不足道的 pub fn main() {println!("hello");}.
此时,一切正常。
lib::two::main的bin/one.rs?use crate::lib::two;, use super::lib::two;, 都没有use self::super::lib::two;添加到bin/one.rs工作中。 …
如果我有一个这样结构的项目:
\nproject\n\xe2\x94\x82 README.md\n\xe2\x94\x82 config.json\n package.json\n\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80folder1\n\xe2\x94\x82 \xe2\x94\x82 fileA.js\n\xe2\x94\x82 \xe2\x94\x82 fileB.html\n\xe2\x94\x82 \n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80folder2\n \xe2\x94\x82 fileC.js\n \xe2\x94\x82 fileD.html\nRun Code Online (Sandbox Code Playgroud)\n如何向CODEOWNERS文件添加规则,仅授予用户对根文件夹中的文件的所有权,而不授予用户对任何子目录中的文件的所有权?
我尝试了以下方法,但似乎没有一个能按我想要的方式工作:
\n# CODEOWNERS\n/ @johnSmith\n\n./ @johnSmith\n\n/* @johnSmith\nRun Code Online (Sandbox Code Playgroud)\n 首先,我看了以下几页,并没有得到我的答案: 你如何组织一个颠覆 - 内部存储库软件项目以及 你如何做 -组织-您的版本控制系统信息库
我还查看了使用Subversion的实用版控制的第8章.
他们都有很好的建议,但我很难将其与我的需求联系起来.
基本上,我想组织我们的Web服务器的代码.我们有$ WEBROOT/htdocs和$ WEBROOT/cgi-bin.在我们的htdocs目录下,我们为java脚本和样式表提供了$ WEBROOT/htdocs/js和$ WEBROOT/htdocs/css.
我们的"项目"不是真正的项目,而是一些代码 - 可能是Perl脚本,java脚本文件和样式表.我们可能有大约一百个这样的小"项目",它们几乎都是相互独立的,但都存在于同一个Web服务器上的同一个$ WEBROOT中.
我们的代码还没有进行颠覆,但我希望它是 - 我只是在组织它时遇到了麻烦.如果需要,我们可以有多个svn存储库,但如果每个存储库只有3-10个元素,那对我来说似乎是一种浪费.
我认为可以工作的是这样的:如果我编写一个脚本来计算Web服务器上正在运行的进程(为了一个例子).假设我有一个perl脚本,一个js文件和一个css文件.我可以将"project"命名为webserver_processes,并将其作为以下内容检入存储库:
/svnrepo/webserver_processes/trunk
Run Code Online (Sandbox Code Playgroud)
在行李箱下,我可以:
htdocs/html/webserver_processes
htdocs/js/webserver_processes
htdocs/css/webserver_processes
cgi-bin/webserver_processes
Run Code Online (Sandbox Code Playgroud)
我在这个"项目"中没有任何静态html文档,但如果我这样做,他们会进入"html"目录.
我在这个结构中看到的好处是,我可以一次签出一个"项目",而不会真正影响Web服务器上的任何其他内容.缺点(也许并非真正的缺点)是部署.我必须一次从存储库部署1个项目.我不知道如何用我的$ WEBROOT/htdocs结构和$ WEBROOT/cgi-bin使用这种方法创建一个工作副本.
另外一个选项:
我可以像这样创建一个svn存储库:
/svnrepo/webcode/trunk
Run Code Online (Sandbox Code Playgroud)
在trunk下面是我的web服务器上的所有代码,在这两个目录中:
htdocs
cgi-bin
Run Code Online (Sandbox Code Playgroud)
最大的缺点是,对于1个元素的小代码更改,我将不得不检查我的Web环境中的每一段代码.好处(有点)是我可以在我们的Web服务器上执行"svn update"以获取对存储库提交的任何更改.
也许我只是让它变得比它应该更复杂,但是有没有人对如何在subversion中有效地组织我的代码有任何建议?
提前谢谢了!
布赖恩
我用于Python代码的SPE IDE使用这个"视觉提示",它看起来像一个垂直虚线,用于对齐(我会称之为)功能块.如何在Visual Studio 2008中获得此选项?
这是它的样子:

我最近开始创建服务层并进行如下声明:
MyService myService = new MyService();
myService.DoSomething();
Run Code Online (Sandbox Code Playgroud)
这是受一些ASP.NET MVC视频的启发,我喜欢这种模式.
然后我开始创建接口和模拟,如:
IMyService myService = new MockMyService();
myService.DoSomething();
Run Code Online (Sandbox Code Playgroud)
所以我可以隔离部分代码进行测试.但现在我的服务层文件夹加载了类,接口和模拟类:
IServiceTypeA.cs
ServiceTypeA.cs
MockServiceTypeA.cs
IServiceTypeB.cs
ServiceTypeB.cs
MockServiceTypeB.cs
...
IServiceTypeZ.cs
ServiceTypeZ.cs
MockServiceTypeZ.cs
Run Code Online (Sandbox Code Playgroud)
你如何以合理的方式组织这些?
我正在构建一个具有单个全局命名空间的应用程序,如下所示:
var myApp = {};
Run Code Online (Sandbox Code Playgroud)
然后,我有一堆不同的可重用"模块",包括模型,视图和控制器.
//Bar chart module code
org.example.chart.bar.module
org.example.chart.bar.model
org.example.chart.bar.view
org.example.chart.bar.controller
Run Code Online (Sandbox Code Playgroud)
我还有一个大的dataSource单例和一个dataManager,用于将数据加载到dataSource:
org.example.data.dataSource
org.example.data.dataManager //populates the dataSource with CSV data
Run Code Online (Sandbox Code Playgroud)
最后,应用程序中应该提供的翻译字符串和设置:
org.example.static.translations
org.example.static.settings
Run Code Online (Sandbox Code Playgroud)
您如何(重新)组织这个以便我可以轻松访问应用程序级单例(例如dataSource,dataManager,翻译等)并且可以轻松实例化在当前应用程序实例下获取作用域的可重用模块?
(例如,你是否已经从一开始就为你的"类"和你的应用程序使用相同的命名空间?或者你可能会像这样引用:myApp.translations = org.example.static.translations?)
我很抱歉,但我无法定义我想弄清楚的"事情".
在编写函数时我们可以采用不同的方法,我已经做了一些"占位符"示例:
--------A---------
getImageSmall();
getImageLarge();
getTextSmall();
getTextLarge();
--------B---------
getImage('small');
getImage('large');
getText('small');
getText('large');
--------C---------
get('image','small');
get('image','large');
get('text','small');
get('text','large');
--------D---------
get(array('type'=>'image','size'=>'small'));
get(array('type'=>'image','size'=>'large'));
get(array('type'=>'text','size'=>'small'));
get(array('type'=>'text','size'=>'large'));
--------E---------
get('{"type":"image","size"=>"small"}');
get('{"type":"image","size"=>"large"}');
get('{"type":"text","size"=>"small"}');
get('{"type":"text","size"=>"large"}');
Run Code Online (Sandbox Code Playgroud)
我也可以包含对象,但我现在更喜欢保持简单.
"D"中的数组是一个php数组,用于显示使用json的示例"E"之间的区别.
您可以看到这种方法如何逐渐从一种思维方式转变为另一种方式,其中功能定义转向信息交换.这并不意味着"get"函数是执行所有操作的主函数,它可能是调用其他函数的信使函数,其唯一目的可能是将应用程序转换为服务.
欢迎澄清和评论/问题/答案,以改善这个问题.
我刚刚学习了一些Swift,我遇到了关于嵌套函数的部分:
函数可以嵌套.嵌套函数可以访问外部函数中声明的变量.您可以使用嵌套函数来组织长或复杂函数中的代码.
从这里开始
因此,如果声称的好处是"组织代码",为什么不在外部函数之外独立地拥有嵌套函数?对我来说,这看起来更有条理.
我能辨别的唯一好处是你"可以访问在外部函数中声明的变量",但与嵌套函数的混乱相比,这似乎微不足道.
有什么想法吗?
conventions function code-organization nested-function swift
它们似乎在文档示例中位于同一文件中:https : //facebook.github.io/react/docs/thinking-in-react.html。
在这样的某些组件很小的实例中,如何将组件分解为页面?
class ProductCategoryRow extends React.Component {
render() {
return (<tr><th colSpan="2">{this.props.category}</th></tr>);
}
}
class ProductRow extends React.Component {
render() {
var name = this.props.product.stocked ?
this.props.product.name :
<span style={{color: 'red'}}>
{this.props.product.name}
</span>;
return (
<tr>
<td>{name}</td>
<td>{this.props.product.price}</td>
</tr>
);
}
}
class ProductTable extends React.Component {
render() {
var rows = [];
var lastCategory = null;
this.props.products.forEach((product) => {
if (product.name.indexOf(this.props.filterText) === -1 || (!product.stocked && this.props.inStockOnly)) {
return;
}
if (product.category !== lastCategory) { …Run Code Online (Sandbox Code Playgroud) 我有多个装置(一个网站和一个混合应用程序之间的交互),我想运行一个测试套件(烟雾测试,回归测试...),但是我不确定该怎么做。
这是我的测试结果:
我想做的是运行所有测试(例如CreatePollAndCloseIt.js,CreatePollPinAndDelete.js,CreateStreamAssertions.js等,直到最后一个VotePollWhitelabel),然后获取报告。
谢谢!
automated-tests code-organization web-testing e2e-testing testcafe
javascript ×2
c# ×1
coding-style ×1
conventions ×1
e2e-testing ×1
function ×1
github ×1
jsx ×1
module ×1
namespaces ×1
organization ×1
php ×1
reactjs ×1
rust ×1
rust-crates ×1
svn ×1
swift ×1
testcafe ×1
theory ×1
web-testing ×1