标签: code-separation

头文件中的C++代码

我使用C++的个人风格总是把类声明放在一个包含文件中,并在.cpp文件中定义,非常类似于Loki对C++头文件,代码分离的回答.不可否认,我喜欢这种风格的部分原因可能与我花费编码Modula-2和Ada的所有年份有关,两者都有与规范文件和正文文件类似的方案.

我有一个同事,比我更了解C++,他坚持认为所有的C++声明应尽可能在头文件中包含定义.他并不是说这是一种有效的替代风格,甚至是一种稍微好一点的风格,而是这是每个人现在都用于C++的新普遍接受的风格.

我不像以前那样柔软,所以我并不急于拼抢他的这个潮流,直到我看到更多的人和他在一起.那个成语真的有多常见?

只是给出答案的一些结构:它现在是The Way,非常常见,有点普遍,不常见,还是出错?

c++ coding-style code-separation

183
推荐指数
11
解决办法
11万
查看次数

在现代复杂游戏中实现成就系统

如今创建的许多游戏都有自己的成就系统,奖励玩家/用户完成某些任务.stackoverflow上的徽章系统完全相同.

虽然有一些问题我无法找到好的解决方案.

成就系统必须始终关注某些事件,想想一个提供20到30个成就的游戏,例如:战斗.服务器会检查这些事件(如:玩家避免X在这场战斗中对手还是玩家的攻击走到X英里)的所有时间.

  • 服务器如何处理这么大量的操作而不会减速甚至崩溃?

成就系统通常需要仅在游戏的核心引擎中使用的数据,如果没有那些令人讨厌的成就,就不需要那些数据(想想例如:每次战斗中玩家跳跃的频率,你不要我不想将所有这些信息存储在数据库中.)我的意思是,在某些情况下,添加成就的唯一方法是将检查其当前状态的代码添加到游戏核心,这通常是一个非常糟糕的主意.

  • 成就系统如何与拥有后来不必要信息的游戏核心相互作用?(见上面的例子)

  • 他们如何与游戏的核心分离?

我的例子可能看起来"无害",但想想目前在"魔兽世界"和同时在线的众多玩家中可获得的1000 多项成就.

optimization code-separation achievements

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

C++头文件,代码分离

我是C++的新手,我有一些关于代码分离的一般问题.我目前在一个文件中构建了一个小应用程序.我现在想要做的是将它转换为单独的文件,使它们包含类似的代码或诸如此类的东西.我现在真正的问题是,我怎么知道如何分开事物?代码应该分开的隐形边际是什么?

另外,头文件有什么意义?它是否转发声明方法和类,以便在编译期间链接器包含它们之前我可以在我的代码中使用它们?

对方法或最佳实践的任何见解都会很棒,谢谢!

c++ header code-separation

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

Sonar Qube的项目隔离

我有一个如下所示的项目结构.

在此输入图像描述

云项目文件夹有四个类型的项目(生态项目,evn项目,元项目,svn项目)

每种类型的项目都包含四个不同的项目,例如生态项目,我们有生态1项目,生态2项目,生态3项目,生态4项目.

我已经在Sonar Qube中集成了这个,当我显示所有组合项目的源代码时,我只有一个Project作为Cloud项目,如下所示.

在此输入图像描述

我们可以在Sonar Qube中拥有像可视化这样的层次结构,例如,当我点击Sonar Dashbaord中的Cloud Projects时,它将导航到另外四个项目,例如生态项目,evn项目,元项目,svn项目现在让我们说当我点击生态项目时,它将向我展示生态1项目,生态2项目,生态3项目,生态4项目,现在当我点击eco-1项目时,它将显示其源代码相关的仪表板和覆盖范围

我的sonar-project.properties如下

# Required metadata
sonar.projectKey=cloud-projects
sonar.projectName=Cloud Projects
sonar.projectVersion=1.0
# Language
sonar.language=java

# Encoding of the source files
sonar.sourceEncoding=UTF-8

sonar.modules=eco-projects, evn-projects, met-projects, svn-projects

eco-projects.sonar.projectName=eco-projects
eco-projects.sonar.language=java
eco-projects.sonar.modules=eco-1-projects, eco-2-projects, eco-3-projects,eco-4-projects

eco-projects.eco-1-projects.sonar.projectName=eco-1-projects
eco-projects.eco-1-projects.sonar.sources=docroot/WEB-INF/src
eco-projects.eco-1-projects.sonar.language=java

eco-projects.eco-2-projects.sonar.projectName=eco-2-projects
eco-projects.eco-2-projects.sonar.sources=docroot/WEB-INF/src
eco-projects.eco-2-projects.sonar.language=java

eco-projects.eco-3-projects.sonar.projectName=eco-3-projects
eco-projects.eco-3-projects.sonar.sources=docroot/WEB-INF/src
eco-projects.eco-3-projects.sonar.language=java

eco-projects.eco-4-projects.sonar.projectName=eco-4-projects
eco-projects.eco-4-projects.sonar.sources=docroot/WEB-INF/src
eco-projects.eco-4-projects.sonar.language=java
:
:
:
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我一些解决方案

java code-separation sonarqube

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

在C#中分离UI和逻辑

有没有人有任何关于保持我的GUI类逻辑的建议?我尝试使用良好的类设计并保持尽可能多的分离,但我的Form类通常最终会混入比我想要的更多的非UI内容,并且它往往使维护变得非常痛苦.

(Visual Studio 2008 Professional,C#,Windows应用程序).

非常感谢.

c# user-interface business-logic code-separation

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

保持客户端 - 服务器游戏中的代码组织

背景: 我帮助开发一种多人游戏,主要用C++编写,使用标准的客户端 - 服务器架构.服务器可以自己编译,客户端与服务器一起编译,因此您可以托管游戏.

问题

游戏将客户端和服务器代码组合到同一个类中,这开始变得非常麻烦.

例如,以下是您在公共类中可能看到的一些小样本:

// Server + client
Point Ship::calcPosition()
{
  // Do position calculations; actual (server) and predictive (client)
}

// Server only
void Ship::explode()
{
  // Communicate to the client that this ship has died
}

// Client only
#ifndef SERVER_ONLY
void Ship::renderExplosion()
{
  // Renders explosion graphics and sound effects
}
#endif
Run Code Online (Sandbox Code Playgroud)

标题:

class Ship
{
    // Server + client
    Point calcPosition();

    // Server only
    void explode();

    // Client only
    #ifndef SERVER_ONLY
    void renderExplosion(); …
Run Code Online (Sandbox Code Playgroud)

c++ architecture oop design-patterns code-separation

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

如何从PHP代码中分离sql

我有一个课程可以帮助我处理用户.例如:

$user = new User("login","passw");
$name = $user->getName();
$surname = $user->getSurname();
$table = $user->showStats();
Run Code Online (Sandbox Code Playgroud)

所有这些方法都有SQL查询.有些操作只需要一个SQL查询,有些只需要一个以上.如果数据库结构发生变化 - 将很难更改所有查询(类很长).所以我想让SQL查询远离这个类.但是怎么做呢?

在阅读了这个问题之后,我就了解了存储过程.这是否意味着,现在一个动作只需要一个SQL查询(调用存储过程)?但是如何从php组织分离sql?我应该在数组中保留sql-queries吗?或者它应该是一个sql-queries类.如果是的话,如何组织这个课程(也许我应该学习什么样的模式)

php sql class code-separation

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

1 个输入分隔中的 3 个值(数字)。蟒蛇3

我现在正在编写一个代码,其中一部分需要要求用户在一行中输入 3 个不同的数字(每个数字可以是任意位数)。假设我要求用户输入,他输入:“31 722 9191”。数字之间需要有空格。您将如何分离这些数字并为每个数字分配一个变量。例如 31 是“A”,722 是“B”等等......到目前为止我得到的是:

user_input = input(" Please enter the numbers: ")
Run Code Online (Sandbox Code Playgroud)

谢谢 !

python input code-separation python-3.x

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

多个单例实例

我正在编写一个实用程序类库,其中许多是单例.我使用继承实现了它们:

template <class T>
class Singleton {
    public:
        T& getInstance() {
            if(m_instance == 0) {
                 m_instance = new T;
            }

            return m_instance;
        }
    private:
        static T* m_instance;
};

class SomeClass : public Singleton<SomeClass> {
    public:
        SomeClass() {}
        virtual ~SomeClass() {}

        void doSomething() {;}
};
Run Code Online (Sandbox Code Playgroud)

显然这是一个简单的例子,而不是一个真正的类.无论如何,我发现使用如下代码:

SomeClass::getInstance().doSomething();
Run Code Online (Sandbox Code Playgroud)

将创建SomeClass的多个实例.我想这可能是因为它在我的库(.a)文件之外以及内部使用.例如,我使用的是一个非自己编写的UI库,它是单独编译的,我正在添加它.其中一些添加使用单体,这些单体也在我的.a库中使用.

单独的编译会导致这种情况吗?别的什么?

我设法解决这个问题的唯一方法是在main.cpp文件中创建一个全局对象,我用我需要的任何单例初始化它.然后,所有代码都通过以下调用访问此公共全局对象:

GlobalObject::getSomeClass().doSomething()
Run Code Online (Sandbox Code Playgroud)

我不想每次创建另一个单例时都要为这个对象添加一个额外的方法.使用第一种访问方法,语法似乎更清晰,更熟悉:

SomeClass::getInstance().doSomething();
Run Code Online (Sandbox Code Playgroud)

如果您有任何想法,意见等,请告诉我.

谢谢.

c++ singleton code-separation

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

Java Swing - 单用户应用程序到多用户应用程序

我是新手......我有一个Java Swing应用程序,它在我的机器上运行良好.我想通过Citrix从服务器访问此应用程序.因此,当我单击已发布的图标时,它将在jar文件中运行main方法,并使我能够访问该应用程序.此应用程序将能够访问数据库服务器中的数据库.

但我希望多个用户同时访问该应用程序,这就是我的问题所在:

  1. 我想为n个用户创建n个可用的线程(即)我可以设置并发访问的限制.但是什么是切入点.....我的意思是当我点击发布的图标时,它意味着每次调用main方法.

  2. 我可以想到从逻辑层分离我的用户界面....但我不知道如何做到这一点.当然我正在关注MVC模型.我的问题是每次访问应用程序时创建gui的多个实例.

  3. 最后我想使用数据库连接池.那么,这是否意味着我必须创建一个单独的java程序来创建这个池,我的应用程序将使用它的数据源?

任何人都可以'指出'我正确的方向吗?我不是在寻找具体的想法,而只是想知道如何创建这个多用户应用程序.

java swing layer multi-user code-separation

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