标签: architecture

有没有办法在多个处理程序中使用相同的 request.Body 而无需手动编写大量代码,或者我需要改变我这样做的方式?

这篇很棒的文章在这里:https : //www.alexedwards.net/blog/how-to-properly-parse-a-json-request-body 很好地解释了如何编写 Golang 处理程序。

我需要使用两个处理程序,一个接一个,仅当第一个出现错误时。

像这样:

func main() {
    r := chi.NewRouter()

    r.Post("/api", MyHandlers)
}

func MyHandlers(w http.ResponseWriter, r *http.Request) {

    err := DoSomething(w, r)

    if err != nil {
        println("OMG! Error!")
        DoSomethingWithThisOneInstead(w, r)
    }

}

func DoSomething(w http.ResponseWriter, r *http.Request) error {
    // here I need to read request's Body
    // and I can use io.TeeReader()
    // and I can use all the code in the amazing article example
    // but I don't want to, because …
Run Code Online (Sandbox Code Playgroud)

architecture middleware handler go go-chi

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

将接口实现对象从一个命名空间转换为另一个命名空间,因为两者都具有相同的接口但不同的命名空间

有没有办法将接口实现对象从一个命名空间转换为另一个命名空间,因为两者都具有相同的接口,但只有命名空间不同?

用例如下

namespace namespaceA
{
    Public Interface IInterface
    {
        Method1();
        Method2();
    }
}

namespace namespaceB
{
    Public Interface IInterface
    {
        Method1();
        Method2();
    }
}
Run Code Online (Sandbox Code Playgroud)

我们得到两种对象。

namespaceA.IInterface 对象 - 新实现

namespaceB.IInterface 对象。- 作为遗留实现的一部分存在。

基于新的实现,我们只想处理代码中的一个对象,即 namespaceA.IInterface 对象。但是由于遗留实现,我们也得到了 namespaceB.IInterface 对象。但是我们不想对遗留对象进行任何特定的处理,我们希望以与新对象和实现相同的方式进行处理。

所以如果我们得到一个 namespaceB.IInterface 对象,有没有办法将它转换/转换为 namespaceA.IInterface 对象,前提是接口定义相同但只存在于不同的命名空间中?

所以代码不必只关心遗留对象的处理。

c# architecture design-patterns

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

培养初级开发人员

我正在培训初级开发人员.

我想指派他完成设计和构建面向对象应用程序的任务.

网上是否有任何非平凡的样本练习,其中包括对问题的良好描述和建议的架构图?

architecture oop

-2
推荐指数
2
解决办法
1535
查看次数

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

跨平台C++确定最大整数值(无标题)

根据编译器体系结构,使C++函数或结构,类(使用元编程)确定有符号和无符号类型的最大值.一个用于签名,另一个用于无符号数字.

要求:

  • 没有头文件
  • 自我调整到可变大小(没有stdint.h)
  • 没有关于可能溢出的编译器警告

澄清:

评论后,我很惊讶,对非典型的C++问题的反应.我已经知道强调这个问题很好,这个问题不是家庭作业,也不是来自月球,但它是实用的领域.

对于所有感兴趣的应用这些东西...首先:它不是功课:).这是基于我所面临的实际问题实用,可回答的问题 - 如SO.FAQ所建议的那样.感谢您提供有关climits等的提示,但我正在寻找"智能代码".当然climits,limits经过良好测试和良好的代码片段,但它们是巨大的,不一定"聪明,棘手".我们正在寻找智能解决方案(不是"巨大的任何"解决方案),不是吗?即使你,climits建议也没关系,作为起点.对于那些对区域感兴趣的人,其中包括头文件是不允许的,并且源代码的大小是相关的,很少有:编译器的实验,程序转换,为编程竞赛准备问题集等.实际上它们的树与问题有关I我目前正在努力.所以我不认为(SO.FAQ)过于本地化,我认为,对于(SO.FAQ)爱好者程序员来说,这是肯定的问题.如果您认为即使所有这些,这个问题都有问题,请告诉我 - 我不想再犯错误.如果没关系,请告诉我,我能做些什么来不让它失败?

c++ architecture cross-platform metaprogramming

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

如何在C中从/向不同的arch运行代码?

我开发了一个小型(非常小)的ftp客户端和服务器.
这两个程序只有在使用相同的arch时才能编译和运行.

  1. 如果客户端是Ubuntu amd64而服务器是Ubuntu i386我得到了一个段错误(我认为这是一个指针问题)
  2. 如果客户端是Ubuntu amd64而服务器是Ubuntu amd64都可以
  3. 如果客户端是Ubuntu i386而服务器是Ubuntu i386都可以

我怎样才能使这两个程序在不同的拱门上工作?
这是一个代码问题?如果是这样我必须做什么?
提前致谢!

c architecture

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

为什么在64位操作系统中,32位操作系统的4GB内存不等于2GB?

据我所知,"32位"等于2 ^ 32,这意味着我可以用32位操作系统定义4GB的内存.并且"64位"是2 ^ 64,允许15EB.因此,使用64位操作系统,我们可以在计算机中放入更多内存.

但是,我对另一点感到困惑.

我们可以在32位的情况下看到我们在系统中有(比方说)4GB的物理内存,我们将4GB除以32位整数的大小,我们可以存储一些整数(称为N)记忆.并且,在64位中,计算是4GB除以64位整数的大小,因此我们只能存储一半的整数.结果,对于64位,我们无法存储具有相同内存的整数.

这是否意味着微软通过在32位和64位版本的操作系统中将此内存显示为"4GB"来欺骗我们?

architecture computer-architecture computer-vision 32bit-64bit

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

DW在NoSql世界中的作用是什么?

为什么有人会同时保留这两个系统?

DW最大的问题是昂贵的启动成本.在将数据和业务领域分解为事实和维度之前,需要充分了解您的数据和业务领域.如果你的假设是错误的,那么在整个过程中的任何时候,你都会被束缚在一起,或者经历另一个艰难的维护周期.我已经看到由于这种高昂的开销成本,DW过程永远不会到任何地方.更不用说,如果你的DW人离开,那么培训替补是非常困难的,因为领域的知识与他有关.是的,它就像经典的瀑布流程,僵硬而脆弱,通常无法应对不断变化的需求/商业环境.

另一方面,NoSql是敏捷的.您可以根据需要以临时方式动态创建索引.在存储数据之前,几乎不需要了解您的数据.随着您的理解的提高,NoSql解决方案可以很好地扩展.

考虑到NoSql如何轻松承担DW的角色,而不是相反,为什么还要烦扰DW呢?当你已经拥有NoSql解决方案时,你如何证明DW系统的昂贵存在?2有共存的地方吗?

architecture database-design data-warehouse nosql

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

您如何选择使用哪种设计模式?

您如何决定使用哪种设计模式?

我至少在2次不同的采访中被问到上述问题.显然我不是唯一一个.其他人在glassdoor上发布了同样的问题.

http://www.glassdoor.com/Interview/How-would-you-decide-which-design-pattern-to-use-QTN_47521.htm

关于如何回答这个问题的任何想法/建议/意见?

c# java architecture design-patterns

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

数据类型模型c ++

大家.我刚开始学习C++和编程,我的考试任务是:

"数据类型模型"是什么意思?你知道什么样的'数据类型模型'?

实际上,我在网上找不到任何关于它的东西:(

c++ architecture types

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