草庐IT

software-design

全部标签

语言 : lack of contains method design-justification

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion在浏览包含方法时,我遇到了以下问答contains-method-for-a-slice在这个问答中多次提到这个方法实现起来真的很简单。我不明白的是,如果它如此容易实现,并且看到DRY是一种流行的软件原则&&并且大多数现代语言如何实现所述方法,排除这种简单方法的背后可能涉及什么样的设计推理?

google-app-engine - 为什么 os.Getenv ("SERVER_SOFTWARE") 为我返回空白字符串?

我最近升级到最新版本的GoSDK(1.8.0),现在当我调用os.Getenv("SERVER_SOFTWARE")时,我得到一个空字符串。我正在使用它来确定我是在我的本地开发服务器上还是在实时环境中,我不知道有任何其他检查方法。所以任何一个问题的答案都适合我:1)为什么现在返回一个空字符串?或2)是否有其他方法可以检查我是否在开发服务器上? 最佳答案 使用os.Environ函数查看为开发服务器设置了哪些环境变量。查看它们中是否有任何一个是区分开发服务器和生产服务器的候选者。例如,APPLICATION_ID环境变量。TheGoD

json - 我应该如何处理源代码中的大块文本,以免影响代码的可读性?

最近在修复系统中的一个错误并为其编写测试时,我们在测试源代码中放置了一大块html字符串。我唯一担心的是大块会分散注意力并损害代码的可读性。我为i提出的一些显而易见的解决方案是:将单个文本block移动到单独的文本文件中,在测试运行时读取这些文件。(我关心的是:效率和可扩展性)将文本block移动到单个json文件中并将其加载到json对象中一次(对这个解决方案不太自信。太过分了,如果我们只是碰巧对大文本block进行一些这样的测试?)在包含block的同一包中创建一个单独的代码文件(与前一个问题相同)坚持当前的解决方案,即源代码中的大块代码。而且这不是什么大问题。语言:Go问题:哪个

design-patterns - 断路器设计模式 sleep vs time.AfterFunc

我正在尝试创建一个Circuitbreakerpattern,我想执行命令exec.Command如果失败,在X定义的时间内重试,出于测试目的,我正在做这样的事情来测试time.AfterFunc:packagemainimport("fmt""time")funcmyFunc()error{fori:=1;itime.AfterFunc适用于上面的代码,但不适用于下面的示例,我不得不将其替换为sleep以实现预期的结果:packagemainimport("fmt""os/exec""time")funcExec(donechan./sleep的内容:#!/bin/shsleep3为

design-patterns - 函数中的 GoLang 实时连接

我对golang中更好的代码使用有疑问。在几个包中使用实时连接(如数据库)的最佳情况是什么。最好像这样添加数据库连接1.func(databaseDB)getRows(){}或者2.funcgetRows(database*DB){}或者3.funcgetRows(){initdatabaseconnection...}对于第一种用法,我们需要为数据库创建本地结构typeDBstruct{connection}在不同的包中,我需要通过在每个包中创建本地结构来移动数据库连接,或者当某些包不使用数据库连接但使用导入包时?如何发送一个配置并只创建一个连接?单例是个好主意?对于这种情况的使用,

go - docker注册的驱动在源码哪里初始化?

我正在尝试理解Docker的源代码,同时也在学习Go。Docker的一个让我感到困惑的区域是docker/daemon/graphdriver/driver.go内部在第75行,访问strings映射的name属性以获取类型为InitFunc的函数。但是,我似乎无法找到使用已注册驱动器初始化drivers的位置,似乎需要在某处完成。 最佳答案 在line62在init()中:funcinit(){drivers=make(map[string]InitFunc)}然后在依赖于它的每个包中,他们调用graphdriver.Regist

design-patterns - Web 应用程序的 Go Lang 文件夹结构

如您所知,Go是OOPimo的一种现代方法,它具有一些出色的功能,例如强制您使用组合而不是继承。我只是想了解如何根据文件夹和包结构设计编写良好的go代码。我只是想知道这种类似React的方法是否可行(如下所示-将应用程序作为组件划分到不同的包中)?或者你能给我一个例子、链接、关于网络api的文件夹/打包的良好结构的想法。Go将只是我的开源项目后台的一个api,在客户端,我计划有一个单页的React应用顺便说一下。非常感谢, 最佳答案 标准Go项目布局GitHub上有一个Repo,有很多星标(截至撰写时为22k)这种方法实际上非常完整

android - 在 android.support.design.widget.TabLayout 中设置选项卡的宽度?

我正在为我的Viewpager使用选项卡,这是现在的XML:它们看起来很棒,但我希望能够有更多选项卡,而不是让所有内容都挤在屏幕上。但是我不喜欢切换到可滚动的tabMode,因为那样的话一切都会变平并且看起来很乱。如何设置各个选项卡的宽度? 最佳答案 TabLayout不提供特定选项卡固定宽度的属性。但是您可以设置最小和最大宽度。tabMinWidthandtabMaxWidthhttps://developer.android.com/reference/android/support/design/widget/TabLayou

java - 安卓 : Design shown in XML not reflected in the UI

我正在开发一个Android应用程序,我在该应用程序中显示注释。之前我在为noteImage指定180X180DP大小时遇到​​的问题是图像的右侧被切掉了。所以我指定了match_parent。当我这样做时,XML预览会正确显示它,但当我运行该应用程序时,文本会出现在图像下方和图像之外,图像也会向下移动,而标题(主题)会向上移动。检查下面的屏幕截图:我想做的是像下面这样的事情,只有2列我正在使用GridView并指定columns=2;但方形图像。我已经在代码中将列表指定为GridView。显示布局的XML文件。:请让我知道我能做什么。非常感谢。:-)更新的XML-->更新截图:htt

java - 错误膨胀类 android.support.design.widget.NavigationView [启动时崩溃]

该应用程序应该有一个从左侧拉出并显示各种Activity的抽屉导航,但是一旦将导航栏添加到XMLactivity_homescreen文档中,该应用程序就会在启动时立即崩溃。HomeScreen.javapackagecom.t99sdevelopment.centralized;importandroid.content.Intent;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.view.Window;impor