我经常听到"将政策与机制分离"的口号,特别是在Unix哲学的背景下.这是什么意思,它的具体例子是什么?何时/为什么/它不是一件好事?
我理解为什么解释开销很昂贵,但为什么JITted Python实现(Psyco和PyPy)仍然比C#和Java等其他JITted语言慢得多?
编辑:我也明白一切都是对象,动态类型代价高昂等等.但是,对于可以推断出类型的函数,我不确定为什么这很重要.
我正在尝试使用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.
为什么不可能像其他所有函数一样静态链接这些函数?
我正在尝试创建一个非常节省空间的不寻常的关联数组实现,我需要一个满足以下所有条件的排序算法:
另请注意,要排序的数据结构是一个数组.
很容易看出有一个基本的算法匹配这三个中的任何两个(插入排序匹配1和2,合并排序匹配1和3,堆排序匹配2和3),但我不能为我的生活找到任何东西匹配所有这三个标准.
它通常认为,复制和粘贴编程是一个坏主意,但什么是处理,你有两种功能或代码块的情况下最好的办法,真正做需要在短短的方式不同品牌推广他们非常凌乱?
如果代码基本相同,除了一些小的变化,但是那些微小的变化不是通过添加参数,模板方法或类似的东西很容易分解的东西怎么办?
更一般地说,您是否曾经遇到过这样一种情况,即您承认一点点复制粘贴编码是真正合理的.
我经常听到人们称赞语言,框架,结构等是"明确的".我试图理解这个逻辑.语言,框架等的目的是隐藏复杂性.如果它让你明确指定所有类型的细节,那么它不会隐藏太多的复杂性,只会移动它.什么是显性的如此伟大,你如何使语言/框架/ API"明确",同时仍然使其服务于隐藏复杂性的目的?
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) 我认为自己是一位经验丰富的程序员,并且理解依赖注入的基本概念.另一方面,我的大多数经验都是编写相对较低级别的单人数字运算代码.我没有任何从事大型企业项目的经验.
鉴于这种背景,我不能为我的生活包围我为什么有人需要一个框架来进行依赖注入.有人可以给我一个简短的概述这个框架是如何工作的,而不是涉及很多细节,并解释它如何使生活更轻松而不仅仅是滚动你自己?
编辑:我在这里得到了一些很棒的答案.我是否正确地说DI框架基本上为您提供了一种方便的方法来创建全局可访问的工厂,只要对象请求它们就会创建/返回依赖项实例?如果是这样,我一直在我的代码中以非常特殊的方式做这样的事情,但从未想过要使用任何形式的正式/重量级框架.
像几乎所有编程一段时间的人一样,我熟悉术语"生产代码",并且对它的含义有一种模糊的感觉.但是,有人可以提供一个半严谨的定义,因为维基百科和谷歌似乎不能?似乎生产中有很多灰色区域,例如一小部分人使用的内部工具,因此在UI,文档等方面没有"正式化",而且开源应用程序也是如此.功能齐全,合理的无bug和工作,但缺乏润色,UI和广泛的测试.
如果我理解正确Groovy是动态类型的,但由于它几乎是Java的超集,因此可以选择提供静态类型信息.如果只编写几个部分对性能至关重要的东西,同时避免使用多种语言的摩擦,这可能很有用.可以仅为性能关键部分提供类型注释.
在使用类似Java的子集和提供静态类型注释的函数/类中使用Groovy而不是Java的性能损失是什么?
definition ×2
java ×2
performance ×2
16-bit ×1
algorithm ×1
assembly ×1
c ×1
c# ×1
copy-paste ×1
explicit ×1
frameworks ×1
groovy ×1
groovy++ ×1
jit ×1
legacy ×1
linker ×1
linux ×1
policy ×1
production ×1
python ×1
semantics ×1
sorting ×1
theory ×1
unix ×1
x86 ×1