小编dsi*_*cha的帖子

政策与机制分开:这是什么意思?

我经常听到"将政策与机制分离"的口号,特别是在Unix哲学的背景下.这是什么意思,它的具体例子是什么?何时/为什么/它不是一件好事?

unix policy definition

15
推荐指数
1
解决办法
2204
查看次数

为什么JITted Python实现仍然很慢?

我理解为什么解释开销很昂贵,但为什么JITted Python实现(Psyco和PyPy)仍然比C#和Java等其他JITted语言慢得多?

编辑:我也明白一切都是对象,动态类型代价高昂等等.但是,对于可以推断出类型的函数,我不确定为什么这很重要.

c# python java performance jit

15
推荐指数
3
解决办法
825
查看次数

为什么不可能完全静态链接应用程序?

我正在尝试使用GCC编译静态链接的二进制文件,我收到的警告信息如下:

warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
Run Code Online (Sandbox Code Playgroud)

我甚至不知道是什么getwnam_r,但我认为它是从一些更高级别的API内部调用的.我收到了类似的消息gethostbyname.

为什么不可能像其他所有函数一样静态链接这些函数?

linux linker static-linking

15
推荐指数
1
解决办法
6083
查看次数

稳定,高效的排序?

我正在尝试创建一个非常节省空间的不寻常的关联数组实现,我需要一个满足以下所有条件的排序算法:

  1. 稳定(不会更改具有相同键的元素的相对顺序.)
  2. 就地或几乎就地(O(log n)堆栈很好,但没有O(n)空间使用或堆分配.
  3. O(n log n)时间复杂度.

另请注意,要排序的数据结构是一个数组.

很容易看出有一个基本的算法匹配这三个中的任何两个(插入排序匹配1和2,合并排序匹配1和3,堆排序匹配2和3),但我不能为我的生活找到任何东西匹配所有这三个标准.

language-agnostic sorting algorithm data-structures

14
推荐指数
3
解决办法
4935
查看次数

复制粘贴编码是否可以接受?

它通常认为,复制和粘贴编程是一个坏主意,但什么是处理,你有两种功能或代码块的情况下最好的办法,真正需要在短短的方式不同品牌推广他们非常凌乱?

如果代码基本相同,除了一些小的变化,但是那些微小的变化不是通过添加参数,模板方法或类似的东西很容易分解的东西怎么办?

更一般地说,您是否曾经遇到过这样一种情况,即您承认一点点复制粘贴编码是真正合理的.

design-patterns copy-paste

14
推荐指数
5
解决办法
2524
查看次数

为什么"显性"被视为好事?

我经常听到人们称赞语言,框架,结构等是"明确的".我试图理解这个逻辑.语言,框架等的目的是隐藏复杂性.如果它让你明确指定所有类型的细节,那么它不会隐藏太多的复杂性,只会移动它.什么是显性的如此伟大,你如何使语言/框架/ API"明确",同时仍然使其服务于隐藏​​复杂性的目的?

theory explicit

14
推荐指数
5
解决办法
997
查看次数

16位C编译器是如何工作的?

C的内存模型,使用指针算法和所有,似乎模拟平面地址空间.16位计算机使用分段存储器访问.16位C编译器如何处理这个问题并从C程序员的角度模拟一个扁平的地址空间?例如,下面的代码在8086上编译成大致的汇编语言指令?

long arr[65536];  // Assume 32 bit longs.
long i;
for(i = 0; i < 65536; i++) {
    arr[i] = i;
}
Run Code Online (Sandbox Code Playgroud)

c legacy x86 assembly 16-bit

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

依赖注入框架:它们如何工作?

我认为自己是一位经验丰富的程序员,并且理解依赖注入的基本概念.另一方面,我的大多数经验都是编写相对较低级别的单人数字运算代码.我没有任何从事大型企业项目的经验.

鉴于这种背景,我不能为我的生活包围我为什么有人需要一个框架来进行依赖注入.有人可以给我一个简短的概述这个框架是如何工作的,而不是涉及很多细节,并解释它如何使生活更轻松而不仅仅是滚动你自己?

编辑:我在这里得到了一些很棒的答案.我是否正确地说DI框架基本上为您提供了一种方便的方法来创建全局可访问的工厂,只要对象请求它们就会创建/返回依赖项实例?如果是这样,我一直在我的代码中以非常特殊的方式做这样的事情,但从未想过要使用任何形式的正式/重量级框架.

frameworks dependency-injection

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

究竟什么定义了生产?

像几乎所有编程一段时间的人一样,我熟悉术语"生产代码",并且对它的含义有一种模糊的感觉.但是,有人可以提供一个半严谨的定义,因为维基百科和谷歌似乎不能?似乎生产中有很多灰色区域,例如一小部分人使用的内部工具,因此在UI,文档等方面没有"正式化",而且开源应用程序也是如此.功能齐全,合理的无bug和工作,但缺乏润色,UI和广泛的测试.

production definition semantics

13
推荐指数
4
解决办法
9279
查看次数

Java风格的Groovy和Java一样快吗?

如果我理解正确Groovy是动态类型的,但由于它几乎是Java的超集,因此可以选择提供静态类型信息.如果只编写几个部分对性能至关重要的东西,同时避免使用多种语言的摩擦,这可能很有用.可以仅为性能关键部分提供类型注释.

在使用类似Java的子集和提供静态类型注释的函数/类中使用Groovy而不是Java的性能损失是什么?

java performance groovy static-typing groovy++

13
推荐指数
2
解决办法
431
查看次数