问题列表 - 第1761页

对大型代码库进行代码标准重构

我的工作室拥有超过10年的大型代码库.我们开始使用的编码标准是在内部开发人员很少的情况下开发的,早在我们不得不担心与C++相关的任何标准之前.

最近,我们在内部开展了一个小型研发项目,我们更新了我们的编码惯例,使其更适合我们的环境.研发工作将集成到现有项目代码中.我们面临的一个主要问题是,我们现在对这两个工作领域有两个标准,现在代码库将会交叉.我不想在工作室有两个标准,我真的很乐意用一个标准来推进.(我们如何进入这种情况的"方式"并不重要 - 只是我们是,而且我曾希望我们不会这样做.)

问题是重构现有代码.我不太热衷于有两个代码库(一个相对较小,一个非常大)看起来不同.我有兴趣对现有的一个代码库进行一些重构,使其符合其他标准.问题是,较小的代码库是(IMO)更令人向往的标准.

我开始寻找可以为我做大规模重构的工具.我对重新排列和收紧代码不感兴趣.我有兴趣改变这样的事情

class my_class {}
....
class my_class A;
Run Code Online (Sandbox Code Playgroud)

class MyClass {}
....
class MyClass A;
Run Code Online (Sandbox Code Playgroud)

基本上做功能/变量级重命名.我不想使用像Visual Assist这样的东西,因为这需要很长时间.我有超过10000个源/头文件,包含数十万行代码.一次使用VA一个类将是一个时间杀手,不值得努力.

我确实在另一篇关于SO的帖子中遇到了Vera.这似乎可以完成这项工作并做得很好.我想知道是否有人具有使用Vera的特定经验,以了解我所处的情况,或者对可能完成工作的工具有任何其他建议.我认为这个工具实际上理解代码结构很重要,这样我们就不会只是以搜索/替换方式重命名变量,因为如果不仔细完成,这将导致细微的错误.

编辑:虽然我的例子显示我将从名称之间使用_转换为camelcase类型表示法,但对我们来说,移动另一种方式可能更有利.我真的在寻找一种有助于大规模重命名的通用解决方案.

谢谢.

c++ refactoring

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

如何防止和/或处理StackOverflowException?

我想要阻止或处理我在写作中StackOverflowExceptionXslCompiledTransform.Transform方法的调用Xsl Editor.问题似乎是用户可以写一个Xsl script无限递归的东西,它只是在调用Transform方法时爆炸.(也就是说,问题不仅仅是典型的编程错误,这通常是造成这种异常的原因.)

有没有办法检测和/或限制允许的递归次数?或者任何其他想法,以防止这些代码炸毁我?

.net c# stack-overflow xslcompiledtransform

68
推荐指数
4
解决办法
12万
查看次数

Ruby到Python的桥梁

我有兴趣让一些Python代码与Windows,Linux和其他平台上的一些Ruby代码进行对话.具体来说,我想从Python访问Ruby中的类并调用它们的方法,访问它们的数据,创建新的实例等等.

一个显而易见的方法是通过XML-RPC或CORBA之类的东西,但我会对任何其他方法感兴趣.

其他人做了什么来使Python和Ruby之间的代码相互通信,无论是在同一系统本地还是远程通过网络?

提前致谢.

ruby python interop

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

java中已提交内存的确切状态

我很好奇从"MemoryUsage"类中查询值时"已提交"内存的确切含义.该类将其解释为"已提交表示保证可供Java虚拟机使用的内存量(以字节为单位)." 这是否意味着内存正在被jvm进程使用,并且在java进程释放之前不可用于其他进程,或者它是否意味着如果java进程尝试分配高达该内存量,则该进程将成功?我意识到这可能是特定于实现的,但我只对hotspot感兴趣.

java memory jvm-hotspot

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

在C#中重定向包含伪loc(unicode)字符串的ConsoleOutput

我正在运行一个控制台应用程序(myApp.exe),它将一个伪本地化(unicode)字符串输出到标准输出.如果我在常规命令提示符(cmd.exe)中运行此命令,则unicode数据将丢失.如果我在unicode命令提示符(cmd.exe/u)中运行它或将控制台的属性设置为"Lucida Console",则会保留unicode字符串.

我想在C#中运行此应用程序并将unicode字符串重定向到本地变量.我正在使用RedirectStandardOutput = true的Process对象,但unicode字符串总是丢失.

如何指定保留此unicode信息?

        private static int RunDISM(string Args, out string ConsoleOutput)
        {
            Process process = new Process();
            process.StartInfo.FileName = "myApp.exe";
            process.StartInfo.Arguments = Args;

            try
            {
                process.StartInfo.CreateNoWindow = true;
                process.StartInfo.UseShellExecute = false;
                process.StartInfo.RedirectStandardOutput = true;
                process.StartInfo.WorkingDirectory = Environment.CurrentDirectory;

                process.Start();
                process.WaitForExit(Int32.MaxValue);
            }
            catch (Exception e)
            {
                WEX.Logging.Interop.Log.Assert("Failure while starting or running process.\nERROR: " + e.Message);
                ConsoleOutput = null;
                return EXITCODE_ERROR;
            }

            ConsoleOutput = process.StandardOutput.ReadToEnd();
            return process.ExitCode;
        } 
Run Code Online (Sandbox Code Playgroud)

c# unicode console command-line process

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

刮一个动态的网站

什么是抓住动态网站的最佳方法,其中大部分内容是由似乎是ajax请求生成的?我之前有过使用Mechanize,BeautifulSoup和python组合的经验,但我还有新的东西.

- 编辑 - 更多细节:我正在试图刮掉CNN 主数据库.那里有大量的信息,但似乎没有api.

python ajax screen-scraping beautifulsoup

12
推荐指数
2
解决办法
7598
查看次数

如何使用POSIX线程实现阻塞读取

我想实现一个遵循大致接口的生产者/消费者场景:

class Consumer {
private:
    vector<char> read(size_t n) {
        // If the internal buffer has `n` elements, then dequeue them
        // Otherwise wait for more data and try again
    }
public:
    void run() {
        read(10);
        read(4839);
        // etc
    }
    void feed(const vector<char> &more) {
        // Safely queue the data
        // Notify `read` that there is now more data
    }
};
Run Code Online (Sandbox Code Playgroud)

在这种情况下,feedrun将运行在独立的线程和read应该是一个阻挡读出(如recvfread).显然,我需要在我的双端队列中进行某种互斥,我需要某种通知系统来通知read再试一次.

我听说条件变量是要走的路,但我所有的多线程经验都在于Windows,我很难绕过它们.

谢谢你的帮助!

(是的,我知道返回向量是没有效率的.让我们不要进入那个.)

c++ multithreading pthreads producer-consumer

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

从工作线程更新表单控件的最佳方法是什么?

我做了一些研究,我真的找不到从C#中的工作线程更新表单控件的首选方法.我知道BackgroundWorker组件,但是在不使用BackgroundWorker组件的情况下,最好的方法是什么?

c# forms multithreading

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

从Web应用程序打印到客户端打印机

如果我有一台打印机直接连接到电脑(带打印机的信息亭),我将如何创建网页(.net网络应用程序)打印jpg到信息亭打印机的能力,除了用户干预除了点击页面上的按钮?

.net javascript c# printing asp.net

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

我是否必须将数据库连接/初始化置于FCGI循环之外以利用Perl中的FastCGI?

假设我有一些Perl代码,每当它被命中时,它会增加数据库特定行中的列,并且我希望它经常被命中,所以我想用FCGI对它进行优化.现在,我基本上把大部分代码包装成这样的东西:

while (FCGI::accept() >= 0) {
 [code which currently creates a db connection and makes calls through it]
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否最好将数据库连接(我的$ dbh = DBI-> connect(etc))放在FCGI循环之外,以便脚本保持连接活动,或者我仍然可以获得FCGI速度的优势将资源留在循环中?

mysql perl fastcgi

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