标签: architecture

基于组件的游戏引擎设计

我一直在研究游戏引擎设计(特别关注 2d 游戏引擎,但也适用于 3d 游戏),并且对如何进行的一些信息感兴趣。我听说现在许多引擎正在转向基于组件的设计,而不是传统的深层对象层次结构。

您是否知道有关此类设计通常如何实施的信息的任何良好链接?我已经看到了你的层次结构的进化,但我真的找不到更多的详细信息(他们中的大多数似乎只是说“使用组件而不是层次结构”,但我发现改变我的想法需要一些努力在两个模型之间)。

任何关于这方面的好的链接或信息都将不胜感激,甚至是书籍,尽管这里的链接和详细答案将是首选。

architecture game-engine entity-system entity-component-system

322
推荐指数
4
解决办法
16万
查看次数

为什么IoC/DI在Python中不常见?

在Java中,IoC/DI是一种非常常见的做法,广泛用于Web应用程序,几乎所有可用的框架和Java EE.另一方面,也有很多大的Python Web应用程序,但除了Zope(我听说代码应该非常糟糕),IoC在Python世界中似乎并不常见.(如果你认为我错了,请说出一些例子).

当然有几个流行的Java IoC框架克隆可用于Python,例如springpython.但它们似乎都没有被实际使用.至少,我从来没有在一个stumpled Django的SQLAlchemy的 + <insert your favorite wsgi toolkit here>,它使用类似的东西,基于Web应用程序.

在我看来,IoC具有合理的优势,并且可以很容易地替换django-default-user-model,但是在Python中广泛使用接口类和IoC看起来有点奇怪而不是"pythonic".但也许有人有更好的解释,为什么IoC没有在Python中广泛使用.

python architecture design-patterns dependency-injection inversion-of-control

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

如何防止网站抓取?

我有一个相当大的音乐网站,有一个大型的艺术家数据库.我一直在注意其他音乐网站抓取我们网站的数据(我在这里和那里输入虚拟艺术家名称然后谷歌搜索它们).

如何防止屏幕抓取?它甚至可能吗?

html architecture screen-scraping piracy-prevention

287
推荐指数
16
解决办法
8万
查看次数

Node.js在内部依赖Threads时本身如何更快?

我刚观看了以下视频:Node.js简介,但仍然不明白你如何获得速度优势.

主要是,有一点Ryan Dahl(Node.js的创建者)说Node.js是基于事件循环而不是基于线程的.线程很昂贵,应该只留给并发编程的专家来使用.

之后,他展示了Node.js的体系结构堆栈,它具有底层的C实现,内部有自己的Thread池.显然,Node.js开发人员永远不会启动自己的线程或直接使用线程池...他们使用异步回调.我明白了.

我不明白的是,Node.js仍然在使用线程...它只是隐藏了实现,所以如果有50个人请求50个文件(当前不在内存中),那么如何更好,那么不需要50个线程?

唯一的区别是,由于它在内部管理,Node.js开发人员不必编写线程细节的代码,但在其下面仍然使用线程来处理IO(阻塞)文件请求.

那么你是不是真的只是遇到一个问题(线程)并在问题仍然存在时将其隐藏起来:主要是多线程,上下文切换,死锁......等等?

必须有一些我仍然不明白的细节.

javascript architecture concurrency node.js

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

我刚刚发现为什么所有的ASP.Net网站都很慢,而我正试图找出解决方法

我刚刚发现,ASP.Net Web应用程序中的每个请求在请求开始时都会获得一个Session锁,然后在请求结束时释放它!

如果这对你造成影响,就像我一开始对你而言,这基本上意味着以下几点:

  • 任何时候ASP.Net网页需要很长时间才能加载(可能是由于数据库调用速度慢等),并且用户决定他们想要导航到另一个页面,因为他们厌倦了等待,他们不能!ASP.Net会话锁强制新页面请求等待,直到原始请求完成其缓慢的负载.Arrrgh.

  • 任何时候UpdatePanel加载缓慢,并且用户决定在UpdatePanel完成更新之前导航到另一个页面......他们不能!ASP.net会话锁强制新页面请求等待原始请求完成其缓慢的负载.双Arrrgh!

那有什么选择呢?到目前为止,我想出了:

  • 实现ASP.Net支持的自定义SessionStateDataStore.我没有找到太多的副本,它似乎有点高风险,容易搞砸.
  • 跟踪正在进行的所有请求,如果来自同一用户的请求,则取消原始请求.看起来有点极端,但它会起作用(我认为).
  • 不要使用Session!当我需要用户的某种状态时,我可以使用Cache代替,以及经过身份验证的用户名上的关键项,或者其他类似的东西.再次看起来有点极端.

我真的不敢相信ASP.Net微软团队会在版本4.0的框架中留下如此巨大的性能瓶颈!我错过了一些明显的东西吗 为会话使用ThreadSafe集合有多难?

architecture asp.net iis performance session

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

允许PHP应用程序插件的最佳方法

我正在用PHP开始一个新的Web应用程序,这次我想创建一些人们可以使用插件接口扩展的东西.

如何将"钩子"写入代码中以便插件可以附加到特定事件?

php architecture hook plugins

268
推荐指数
8
解决办法
4万
查看次数

域驱动设计:域服务,应用服务

有人可以通过提供一些示例来解释域和应用程序服务之间的区别吗?并且,如果服务是域服务,我是否会将此服务的实际实现放在域程序集中?如果是,我是否也会将存储库注入该域服务?一些信息会非常有用.

architecture domain-driven-design

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

你如何设计面向对象的项目?

我正在开发一个大型项目(对我来说),它将有许多类,需要可扩展,但我不知道如何规划我的程序以及类需要如何交互.

我在几个学期后参加了OOD课程并从中学到了很多东西; 比如编写UML,并将需求文档翻译成对象和类.我们也学习了序列图,但不知怎的,我错过了讲座或其他什么,他们并没有真正坚持我.

在以前的项目中,我尝试过使用从课程中学到的方法,但通常最终得到的代码一旦我能说"是的,看起来像我的想法"我不想挖掘泥土添加新功能.

我有一份史蒂夫麦康奈尔的代码完整副本,我不断听到这里和其他地方都很棒.我阅读了有关设计的章节,似乎没有提供我正在寻找的信息.我知道他说这不是一个削减和干燥的过程,它主要基于启发式,但我似乎无法将他的所有信息都应用到我的项目中.

那么你在高级设计阶段(开始编程之前)做了些什么来确定你需要什么类(特别是那些不基于任何"真实世界对象"的类)以及它们如何相互作用

具体来说,我对您使用的方法感兴趣?您遵循的流程是什么,通常会形成一个良好,干净的设计,能够代表最终产品?

architecture oop class-design

229
推荐指数
10
解决办法
10万
查看次数

单身人士由Jon Skeet澄清

public sealed class Singleton
{
    Singleton() {}

    public static Singleton Instance
    {
        get
        {
            return Nested.instance;
        }
    }

    class Nested
    {
        // Explicit static constructor to tell C# compiler
        // not to mark type as beforefieldinit
        static Nested() {}
        internal static readonly Singleton instance = new Singleton();
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望在我目前的C#应用​​程序中实现Jon Skeet的Singleton模式.

我对代码有两个疑问

  1. 如何访问嵌套类中的外部类?我的意思是

    internal static readonly Singleton instance = new Singleton();
    
    Run Code Online (Sandbox Code Playgroud)

    有什么叫封闭吗?

  2. 我无法理解这个评论

    // Explicit static constructor to tell C# compiler
    // not to mark type as beforefieldinit …
    Run Code Online (Sandbox Code Playgroud)

.net c# architecture singleton design-patterns

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

203
推荐指数
10
解决办法
13万
查看次数