小编Yve*_*omb的帖子

如果知道背景颜色,如何找到漂亮的字体颜色?

似乎有很多色轮,颜色选择器和颜色匹配器网络应用程序,在那里你给出一种颜色,他们会发现一些其他颜色,当组合使用时会产生谐波布局.但是,它们中的大多数仅关注背景颜色,并且在每种背景颜色上打印的任何文本(如果在预览中完全打印文本)是黑色或白色.

我的问题不同了.我知道我想用于文本区域的背景颜色.我需要帮助的是选择几种颜色(更多,更好,我可以在这个背景上用作字体颜色).最重要的是,颜色将确保字体是可读的(对比度不是太低,也可能不是太高,以避免眼睛受到压力),当然,前景和背景的组合看起来很好.

有人知道这样的申请吗?我更喜欢Web应用程序,我需要下载任何内容.谢谢.

accessibility readability colors

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

事件驱动模型和反应堆模式有什么区别?

来自维基百科Reactor Pattern文章:

反应器设计模式是用于处理通过一个或多个输入同时传递给服务处理器的服务请求的事件处理模式.

它命名了几个例子,例如nodejs,twisted,eventmachine

但据我所知,上面是流行的事件驱动框架,所以让它们也成为反应堆模式框架?

如何区分这两个?或者他们是一样的?

events design-patterns twisted eventmachine

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

Scala中隐式参数的好例子?

到目前为止,Scala中的隐式参数对我来说并不好看 - 它太接近于全局变量,但是由于Scala看起来像是相当严格的语言,我开始怀疑自己的看法:-).

问题:当隐式参数真正起作用时,你能展示一个真实(或接近)的好例子吗?IOW:比这更严重的东西showPrompt,这将证明这种语言设计的合理性.

或者相反 - 你能否展示出可靠的语言设计(可能是想象的),这种设计会使隐含的不必要.我认为即使没有机制比implicits更好,因为代码更清晰,没有猜测.

请注意,我问的是参数,而不是隐式函数(转换)!

更新

全局变量

谢谢你们所有的好答案.也许我澄清了我的"全局变量"异议.考虑这样的功能:

max(x : Int,y : Int) : Int
Run Code Online (Sandbox Code Playgroud)

你叫它

max(5,6);
Run Code Online (Sandbox Code Playgroud)

你可以(!)这样做:

max(x:5,y:6);
Run Code Online (Sandbox Code Playgroud)

但在我眼中的implicits作用是这样的:

x = 5;
y = 6;
max()
Run Code Online (Sandbox Code Playgroud)

它与这样的构造(类似PHP)没有太大的不同

max() : Int
{
  global x : Int;
  global y : Int;
  ...
}
Run Code Online (Sandbox Code Playgroud)

德里克的回答

这是一个很好的例子,但如果你能想到不使用发送消息的灵活使用implicit请发一个反例.我对语言设计的纯度非常好奇;-).

parameters scala implicit

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

Java单元测试,目录布局

在为Java代码构建一套单元测试时,是否存在将测试代码放在与源代码相关的位置的约定?

例如,如果我有一个/java包含大量.java源文件的目录,那么将测试用例放在/java自身或使用类似的东西更好/java/test.

如果后者是首选,当类的private /protected成员在包外不可用时,如何测试代码的内部?

java unit-testing

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

为什么循环引用被视为有害?

为什么对象引用另一个引用第一个对象的对象是一个糟糕的设计?

.net oop

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

"nit"在黑客说话中意味着什么?

当有人在提交时写"nit:删除空格"时,"nit"是什么意思?我也看到它大写,好像它是一个缩写(即NIT).有关示例用法,请参阅此帖子:

当然,评论说:"Nit:尾随空格"和"根据编码手册第V节第VII小节,你不应该添加尾随空格.请注意你没有." 或者类似的东西.后者是一种被动攻击性的爆发,前IMO只是一个快速提醒.

"Chromium Code Reviews"中的其他示例:

问题9662:修复次要样式nit(已关闭)

编辑:答案来自Bugzilla的评论页面:

有时,审稿人会在他的评论前加上"Nit:".这意味着他只是"挑剔" - 你没有必要解决这些问题,但我们希望你这样做.

abbreviation shorthand

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

Python总和,为什么不是字符串?

Python有一个内置函数sum,它实际上相当于:

def sum2(iterable, start=0):
    return start + reduce(operator.add, iterable)
Run Code Online (Sandbox Code Playgroud)

除了字符串之外的所有类型的参数.它适用于数字和列表,例如:

 sum([1,2,3], 0) = sum2([1,2,3],0) = 6    #Note: 0 is the default value for start, but I include it for clarity
 sum({888:1}, 0) = sum2({888:1},0) = 888
Run Code Online (Sandbox Code Playgroud)

为什么特别遗漏了字符串?

 sum( ['foo','bar'], '') # TypeError: sum() can't sum strings [use ''.join(seq) instead]
 sum2(['foo','bar'], '') = 'foobar'
Run Code Online (Sandbox Code Playgroud)

我似乎记得在Python列表中讨论的原因,所以解释或解释它的线程的链接会很好.

编辑:我知道标准的方法是做"".join.我的问题是为什么禁止对字符串使用sum的选项,并且没有禁止,例如,列表.

编辑2:虽然我认为这不是必需的,但我得到了所有的好答案,问题是:为什么sum在包含数字的迭代或包含列表的迭代但不包含包含字符串的迭代?

python types sum built-in

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

为什么人们在代码中使用消息/事件总线?

我认为您已经听说过消息/事件总线,它是系统中所有事件流动的单一位置.在计算机的主板和LAN网络中可以找到类似的架构.这对于主板和网络来说是一个很好的方法,因为它减少了电线的数量,但它对软件开发有好处吗?我们没有像电子产品那样的限制.

消息总线/事件总线的最简单实现可以是:

class EventBus {
    void addListener(EventBusListener l}{...}
    void fireEvent(Event e) {...}
}
Run Code Online (Sandbox Code Playgroud)

发布事件是通过bus.fireEvent(事件)完成的,接收消息由bus.addListener(侦听器)启用.这种体系结构有时用于软件开发,例如MVP4G为GWT实现类似的消息总线.

活跃项目:

休眠/死亡项目:

它只是流行的Observer(Listener)模式"全局" - 系统中的每个对象都可以监听每条消息,我认为这很糟糕,它打破了封装原则(每个对象都知道所有内容)和单一责任原则(例如,某些对象需要一种新类型的消息,事件总线通常需要更改,例如在Listener类中添加一个新的Listener类或一个新方法.

由于这些原因,我认为,对于大多数软件来说,Observer模式比事件总线更好.您如何看待事件总线,它对典型应用程序有什么好处?

编辑:我不是在谈论像ESB这样的"大型"企业解决方案 - 它们可能很有用(ESB提供的内容远远超过事件总线).我在询问有关在"常规"Java代码中使用消息总线进行对象到对象连接的有用性 - 有些人这样做,请查看上面的链接.事件总线可能是电话到电话通信或计算机到计算机通信的最佳解决方案,因为网络中的每个电话(或计算机)通常可以相互通信,并且总线减少了电线的数量.但是对象很少相互交谈 - 一个对象可以拥有多少合作者 - 3,5?

java events design-patterns event-handling

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

通用接口

假设我想定义一个代表远程服务调用的接口.现在,对远程服务的调用通常会返回一些内容,但也可能包含输入参数.假设实现类通常只实现一种服务方法.鉴于以上信息,以下是一个糟糕的设计(它感觉不太正确):

public interface IExecutesService<A,B>
{
    public A executeService();
    public A executeService(B inputParameter);
}
Run Code Online (Sandbox Code Playgroud)

现在,假设我使用一个使用输入参数执行远程服务的类来实现此接口:

public class ServiceA implements IExecutesService<String,String>
{
  public String executeService()
  {
    //This service call should not be executed by this class
    throw new IllegalStateException("This method should not be called for this class...blabla");
  }

  public String executeService(String inputParameter)
  {
    //execute some service
  }
Run Code Online (Sandbox Code Playgroud)

关于上述问题我有两个问题:

  1. IExecutesService<A,B>在您想要提供需要不同输入参数和接口方法的返回类型的子类的情况下,是否使用通用接口()?
  2. 我怎样才能做到更好?即我想在一个公共接口(IExecutesService)下将我的服务执行者分组; 但是,实现类通常只实现其中一个方法,并且使用IllegalStateException感觉非常难看.此外,对于在IExecutesService<A,B>没有任何输入参数的情况下调用服务的实现类,B类型参数将是多余的.对于两个不同的服务调用来说,创建两个独立的接口似乎也是过度的.

java interface

54
推荐指数
3
解决办法
19万
查看次数

无法更改配置的依赖关系(启用即时运行后)

我只是启用instant run了我的android工作室项目.(按照这里说明)

我的项目包含git子模块,不知怎的,这些子模块不再编译.

这是我得到的错误:

错误:(8,0)在解析后,无法更改配置':libraries:my_library:classpath'的依赖关系.

知道那可能有什么问题吗?

顶级build.gradle:

buildscript {
repositories {
    mavenCentral()
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    classpath 'com.android.tools.build:gradle:2.0.0-alpha1'
    classpath 'com.novoda:bintray-release:0.2.7'
    classpath 'io.fabric.tools:gradle:1.+'
}}
Run Code Online (Sandbox Code Playgroud)

模块build.gradle:

apply plugin: 'android'
apply plugin: 'io.fabric'

android {

    defaultConfig {
       versionCode 4850
       versionName '4850'
       compileSdkVersion 23
       buildToolsVersion '23.0.1'
    }

    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/MANIFEST.MF'
        exclude 'META-INF/NOTICE'
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    useLibrary 'org.apache.http.legacy'
}

repositories {
    mavenCentral()
    jcenter()
} …
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio android-gradle-plugin

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