问题列表 - 第7921页

你如何组织你的代码库?

我很想知道人们如何组织他们的代码库,特别是关于可重用组件.我在下面以OO术语进行讨论,但我对如何组织其他类型语言的库感兴趣.

例如:

  • 您是否适合所有类课程项目,或者您更喜欢将所有内容保存在单个项目中?
  • 您是否重用了预先构建的DLL,或者您是否在当前工作中包含以前项目中的各个类?如果是个别课程,您是否在项目之间共享它们以确保所有课程都保持最新或允许分支?
  • 你的可重用元素有多大?他们有多关注?他们是如何关注的?
  • 您通过首选实践获得了多大程度的重用?

等等

编辑

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

organization reusability package-design

7
推荐指数
1
解决办法
1621
查看次数

sql查询中的最大参数数

有一段时间我会尝试使用LINQ.枚举集合并在我的代码中更改其某些属性的典型方法如下所示:

ATDataContext dc = new ATDataContext(Settings.connection_string);

int[] col = ListViewClass.getListViewSelectedPositionTags(listView);

try
{
    foreach (var item in col)
    {
        var ctx = (from r in dc.MailingLists
                   where r.ID == item
                   select r).Single();

        ctx.Excluded = 'Y';
        ctx.ExcludedComments = reason;
    }

    dc.SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)

有一段时间有一个建议来做到这一点...似乎更聪明的方式:

var ctx = from r in dc.MailingLists
    where col.Contains(r.ID)
    select r;

foreach (var item in ctx)
{
    item.Excluded = 'Y';
    item.ExcludedComments = reason;
}

dc.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

Iit在很多层面上都很有意义,我喜欢这个解决方案.它比第一个更聪明,更快捷.

我已经在生产环境中使用了这个解决方案一段时间了.

几周后,我在搜索应用程序日志文件时看到了什么,并看到了这一点:

"传入的表格数据流(TDS)远程过程调用(RPC)协议流不正确.此RCP请求中提供的参数太多.最大值为2100."

LINQ to SQL转换where col.Contains(r.ID)IN子句看起来像:
WHERE ID …

c# linq-to-sql

29
推荐指数
1
解决办法
3万
查看次数

SQL中的持久临时表?

是否有可能在MS-SQL中有一个'持久'临时表?我的意思是我目前有一个后台任务,它生成一个全局临时表,由各种其他任务使用(这就是为什么我把它全局化).不幸的是,如果表未被使用,它会被SQL自动删除 - 这是由我的系统优雅地处理,因为它只是将它排队再次重建,但理想情况下我希望它只是每天构建一次.所以,理想情况下我可以设置类似设置一些超时参数的东西,比如"如果没有触及这个1小时,那么删除".

我真的不希望它在我现有的数据库中,因为它会导致负载更多与管理数据库相关的麻烦(碎片,日志增长等),因为它有效地汇总数据,仅在24小时内有用,并且占用更多超过一千兆字节的高清空间.

最糟糕的情况我的计划是在与tempdb相同的驱动器上创建另一个数据库,称之为类似PseudoTempDB,并且只是自己处理掉线.

任何见解将不胜感激!

sql sql-server tempdb

5
推荐指数
2
解决办法
1万
查看次数

JavaScript中的字符串插值

在Ruby中你可以像这样使用字符串插值:

text = "This is visit number #{numVisits} to this website"
Run Code Online (Sandbox Code Playgroud)

这绕过了显式连接的需要.

我正在使用jQuery并且有点像这样:

$(document).ready(function(){
    $("a.ajax").click(function(event){
        $("#content").load("data.html this.getClass");
    });
});
Run Code Online (Sandbox Code Playgroud)

我想要的行为是"点击<a class="ajax" id="schedule"></a>content div在当前页面上替换为schedule divfrom data.html.如果我手动写入

load("data.html #test"); 
Run Code Online (Sandbox Code Playgroud)

这工作,但我希望脚本加载DIV与点击锚点的ID值.任何帮助都会膨胀!

示例页面:http://www.mariahandalex.info/stack/

javascript jquery

13
推荐指数
4
解决办法
1万
查看次数

问题关于C++中的&运算符

我正在查看Wrapper类的.h文件.该类包含一个私有成员:

T* dataPtr;
Run Code Online (Sandbox Code Playgroud)

(其中,T是如template < class T >在.h文件的顶部定义)

该类提供了两个"*重载运算符"方法:

T& operator*()
{
   return *dataPtr;
}

const T& operator*() const
{
  return *dataPtr;
}
Run Code Online (Sandbox Code Playgroud)

两者都只是简单地返回*dataPtr,但*dataPtr实际上用简单的英语返回的符号是什么?它如何适合返回类型" T&"?

c++ pointers wrapper

1
推荐指数
1
解决办法
261
查看次数


OOP:良好的班级设计

我的问题与这个问题有关:Python工具,它为类的方法构建依赖关系图.

在找不到任何工具之后我自己写了一个快速黑客:我已经使用了编译器模块,我已经将源代码解析为抽象源代码树,并且我已经走了它来收集类方法之间的依赖关系.我的脚本生成了graphviz的输入文件,用于生成看起来像这样的依赖图.

此时我已经陷入困境.我意识到我不知道如何重构这个类以减少它的复杂性.我根本不知道我应该追求什么.例如,在关系数据库的理论中,有一些简单的规则用于将数据库带到正常形式.关于良好类设计的一些类似理论(就其方法之间的依赖关系而言)怎么样?这个主题是否涵盖在某处,以便我可以研究它?

python language-agnostic oop

15
推荐指数
1
解决办法
3439
查看次数

"要解密的数据长度无效." Rijndael解密期间的异常

我得到"要解密的数据长度无效".我试图解密内存流时的异常.我是初学者,无法弄清楚什么是错的.怎么了?

public bool EncryptStream()
    {

        string password = @"myKey123"; // Your Key Here
        UnicodeEncoding UE = new UnicodeEncoding();
        byte[] key = UE.GetBytes(password);

        s_EncryptedStream = new MemoryStream();
        int NoOfBytes;
        byte[] b_Buffer = new byte[8192];

        s_MemoryStream.Seek(0, SeekOrigin.Begin);

        RijndaelManaged RMCrypto = new RijndaelManaged();

        s_CrytpoStream = new CryptoStream(s_EncryptedStream,
            RMCrypto.CreateEncryptor(key, key),
            CryptoStreamMode.Write);

        while (s_MemoryStream.Length < s_MemoryStream.Position)
        {
            NoOfBytes = s_MemoryStream.Read(b_Buffer, 0, 8192);
            s_CrytpoStream.Write(b_Buffer, 0, NoOfBytes);
        }

        s_MemoryStream.Seek(0, SeekOrigin.Begin);

        while (s_EncryptedStream.Position < s_EncryptedStream.Length)
        {
            NoOfBytes = s_EncryptedStream.Read(b_Buffer, 0, 8192);
            s_MemoryStream.Write(b_Buffer, 0, NoOfBytes);

        }
        s_CrytpoStream.Flush();
        s_CrytpoStream.Close();

        return …
Run Code Online (Sandbox Code Playgroud)

exception rijndaelmanaged

4
推荐指数
1
解决办法
9406
查看次数

Qt中使用的C++语言有多现代?

我听说Qt API是用过时的C++语言编写的.这是真的吗?
有没有计划让它使用更现代的C++语言?有关于此的官方信息吗?

是否有任何项目旨在用更现代的C++包装当前的Qt API结构?

更新
这个问题比模板更重要,这不仅仅是关于当前事态的问题(这就是我用未来标签标记它的原因).

更新
我特别关注Qt API,因为这是该框架的用户使用的.
在API中使用现代C++语言使其更加健壮,灵活且易于使用.
在Qt中使用什么样的C++对我来说重要得多.

c++ api qt

10
推荐指数
6
解决办法
3957
查看次数

GDB断点相同的功能出现的次数更多

使用gdb,我遇到了一个奇怪的问题:有一种方法出现三次:

(gdb) b Logger::Logger
[0] cancel
[1] all
[2] Logger at src/Logger.cpp:52
[3] Logger at src/Logger.cpp:52
[4] Logger at src/Logger.cpp:52
Run Code Online (Sandbox Code Playgroud)

从所有三个实例都在文件Logger.cpp的第552行的事实来看,可以推断出它们实际上是指相同的方法.这是什么意思?Logger :: Logger构造函数是否意外地进入了二进制文件三次,或者这是一个gdb错误?

gdb

1
推荐指数
1
解决办法
2161
查看次数