是否有任何工具可以帮助组织#include属于.c或.h文件顶部的s?
我只是想知道因为我正在重组我的代码,将各种小函数定义/声明从一个长文件移动到不同的较小文件中.现在,每个较小的文件都需要位于#include长文件顶部的s 的子集.
只是烦人且容易出错,手动弄清楚所有#includes.虽然并非所有#include的代码都存在,但代码通常会编译.示例:文件A std::vector广泛使用但不包括vector; 但它目前包括一些不起眼的其他标题,恰好包括vector(可能通过一些递归包含).
你有什么时候做单元测试
举个例子,想象一下测试一个CSV阅读器(我刚刚编写了一个演示符号),
def test_readCsv(): ...
@dependsOn(test_readCsv)
def test_readCsv_duplicateColumnName(): ...
@dependsOn(test_readCsv)
def test_readCsv_unicodeColumnName(): ...
Run Code Online (Sandbox Code Playgroud)
我希望只有在父测试成功的情况下才能运行子测试.这背后的原因是运行这些测试需要时间.许多失败的报告可以归结为一个原因也不会提供信息.当然,我可以把所有边缘情况都塞进主要测试中,但我想知道是否有更有条理的方法来做到这一点.
我发现了这些相关但不同的问题,
更新:
我发现TestNG具有很强的内置支持测试依赖性.你可以写这样的测试,
@Test{dependsOnMethods = ("test_readCsv"))
public void test_readCsv_duplicateColumnName() {
...
}
Run Code Online (Sandbox Code Playgroud) 我正在构建我的第一个Android应用程序,它已经变得有点混乱了.我正在使用List/detail模式,因为它们适合环境,但因为我正在开发移动设备和平板电脑,所以它有点失控.对于每个屏幕(列表/细节是一个屏幕),创建四个文件.ListActivity,ListFragment,DetailActivity,DetailFragment.到目前为止有四个屏幕,从字面上开始项目,我有12个文件,加上一个数据库表的三个帮助文件.
我问的是,组织这个的最好方法是什么?我正在使用Android Studio,似乎我无法将文件排序到文件夹中而不将它们放在单独的包中.所以我会做一些像com.domain.app.screen1.(片段|活动),com.domain.app.screen2.(片段|活动)等等?或者我忍受了吗?或者有更好的方法吗?
如果我不清楚,请告诉我,我会尽力清除它
我曾经是jQuery(及其一些小插件)的用户.我多年来开发的Javascript代码最好被描述为......凌乱.它在这里和那里使用了大量的全局变量和函数,没有使用组织代码的标准方法,也没有使用任何设计模式.
我目前正在构建一个新版本的网站,我已经完成了与PEAR :: MDB2和Smarty模板的后端.剩下的就是自制PHP和一些课程.
现在,我将在网站顶部添加Javascript图层,以提高某些功能的用户友好性.(同时确保一切都优雅地降级)我想写出比以前更好,更清晰,更有条理的Javascript,所以我做了一些研究.我阅读了Stefanov的面向对象的Javascript,以便更好地掌握我所知道的一些概念(原型,构造函数等).现在我陷入困境,我想知道我应该使用哪些Javascript框架,以及如何组织它们.
在进行我的研究之后,我理解了Cappuccino和Objective-J,而Sproutcore并不是我想要的.引用Cappucino关于页面的话:
卡布奇诺不是为建立网站或使现有网站更"动态"而设计的.我们认为这些目标与应用程序开发的目标相差甚远,无法通过单一框架提供.像Prototype和jQuery这样的项目非常适合这些任务
就是这样.然后我发现了Coffee Script,它更像是一对一的"编译器",并且无法帮助我实际组织我的代码.
我还偶然发现了一些提供指导的文章:
我还发现了Backbone.js,Shoestring,JavaScriptMVC,Google Loader,jQuery Tools,jQuery UI.我真的不知道该怎么办......我知道的事情:
现在,我使用jQuery和jQuery Tools,并使用简单的属性和方法在一个简单的命名空间/对象文字中"组织"所有这些,并且,由于网站已本地化,我只是计划使用简单的vsprintf(就像我一样)在后端)使用键:从后端提供的对象文字加载的值对.JavaScriptMVC似乎很有趣,但我担心这会给规模相当小的项目带来太多的复杂性.这是我需要你的建议的地方!非常感谢你提前.
我想做一个简单的版本控制系统,但我没有关于如何构建我的数据和我的代码的想法.
这是一个简短的例子:
用户应该能够看到树.(不同版本)树最多只能达到2个级别:
|
|--File_A_0
\--File_A_1
\--File_A_2
\--File_A_3
\--File_A_4
Run Code Online (Sandbox Code Playgroud)
还有两种类型的文件,一个final(最新批准的版本)和一个草稿版本(最新上传的文件)该文件将物理存储在服务器上.每个文件都由用户(或更多)拥有,只有一个组.
编辑:组代表一组文档,文档只能由一个组一次拥有.用户不依赖于组.
开始编辑:
这就是我所做的,但效率并不高!
id_article | relative_group_id | id_group | title | submited | date | abstract | reference | draft_version | count | status
id_draft | id_file | version | date
Run Code Online (Sandbox Code Playgroud)
但是很难管理,扩展.我认为这是因为小组参议员......
结束编辑
所以问题是:
(该应用程序是用PHP和Zend Framework开发的,数据库应该是mysql或postgresql)
是否有用于组织多文件Ruby程序的标准或传统系统?我已经开始使用Ruby中的第一个大型"项目",这是一个逻辑上组织成多个文件和目录的搜索程序.我在下面概述了我的潜在结构:
但是,代码目前有一个类(让我们称之为Searcher),每个协议的搜索类都继承自(GoogleSearcher <Searcher).为了管理这个,我需要将主文件包含在这些协议文件中(对吗?),考虑到我理想的结构,这似乎是不可能的.
除了我的具体例子,我想知道是否有任何约定,例如"更多文件而不是更少",或"文件的逻辑结构是不必要的".有一个"帮助"函数的文件是常见的(例如在Rails中?)什么级别的抽象被认为是合适的?
最后,我计划有一天将它集成到Rails作为库(不是插件;我希望它也可以单独工作).我不知道这是否会影响组织.
我知道这是一个非常开放的问题,但那是因为我会感谢任何与远程相关的建议.提前致谢.
ruby ruby-on-rails project code-organization project-organization
在C#中,您可以将文件放在与其命名空间相对应的文件夹中,并在解决方案资源管理器中查看它们.
在F#中,似乎我必须将所有内容放在简单有序的列表中进行编译.当我达到~300级的规模时,它会让人感到有些困惑和混乱,我开始羡慕C#,并认为它可能是类型推断的代价.
有没有比拆分成几个组件更好的选择?
由F#编译器的源来看它的路线,他们已经采取,但我有互联组件(控制器视图,> 300类 - - 视图模型)的相当大的系统,我想是因为在循环依赖的一个组件,即使在接口水平.
我应该忘记一个文件 - 一个类并创建一些巨大的文件?(例如,在F#编译器中,您有几个100kb到300kb范围内的源文件,并且有些自动生成1Mb左右!)
您对大型F#项目的体验是什么?
您如何组织扩展方法?假设我有对象类和字符串类的扩展我很想将这些扩展方法分成IE类:
public class ObjectExtensions
{
...
}
public class StringExtensions
{
...
}
Run Code Online (Sandbox Code Playgroud)
我是把它弄得太复杂还是这个有意义?
据我所知,该module!类型为受保护的命名空间提供了比object!该'use函数更好的结构.如何在模块中绑定单词 - 我注意到与未绑定单词相关的一些错误:
REBOL [Type: 'module] set 'foo "Bar"
Run Code Online (Sandbox Code Playgroud)
另外,Rebol如何区分module('foo)的本地字和系统函数('set)的字?
稍后更新,不久之后:
我看到有一个改变绑定方法的开关:
REBOL [Type: 'module Options: [isolate]] set 'foo "Bar"
Run Code Online (Sandbox Code Playgroud)
这有什么不同的做法?默认情况下使用此方法有什么问题?
如何在模块内部编写函数或作为某种类型的静态成员之间做出决定?
例如,在F#的源代码中,有许多类型与同名模块一起定义,如下所示:
type MyType = // ...
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
module MyType = // ...
Run Code Online (Sandbox Code Playgroud)
为什么不简单地将操作定义为MyType类型的静态成员?
f# ×2
module ×2
algorithm ×1
android ×1
assemblies ×1
c ×1
c# ×1
c#-to-f# ×1
c++ ×1
frameworks ×1
header-files ×1
javascript ×1
jquery ×1
namespaces ×1
php ×1
project ×1
python ×1
rebol ×1
rebol3 ×1
ruby ×1
sql ×1
unit-testing ×1