All in Programming

提到Java没有人不想到大名鼎鼎的NPE(Null Pointer Error),可见广大程序员受其毒害之深。所以做接口设计的时候,一个好的习惯就是注明Nullbility。 对于Nullable的参数或者返回值,从Java 8后Optional 是推荐的方式,因为它强迫接口使用者显示进行空值检测。 但如果接口设计中是想注明非空的情况呢,通常情况下你会发现有两个看起来很类似的annotation, @NotNull 以及 @Nonnull, 而且你可能会发现代码库里使用两者的都有。但是,正如Stackoverflow上的这个帖子分析道…

It is a rule in math that the absolute value of a number must be no less than zero. Is it true in computer languages? Well, most of the case except one. Let me take C language for example.

For a 32-bits C interger, its value ranges from [-2147483648, 2147483647] .So for x = -2147483648, what is the result of abs(x)? 2147483648, -2147483648, 2147483647, 0 or something else?

很多情况下在写一些小页面时想用一些字符串模板,但Javascript又不原生支持字符串模板,只好用一些第三方库,但引用第三方库的缺点在于很多功能的冗余, 浪费前端加载时间和流量,甚至会造成命名冲突等问题。 其实有时候的需求很简单,不需要很高级的字符串模板功能,只需要像'My Name is {name}. Hello {herName}这样的线性替换就行。其实这个需求实现起来非常容易,四行代码就搞定了。如下…

ORM中通常将对象引用映射到外键,但是对于继承,关系数据库中没有自然有效的方法来对应。从数据存储的角度来看,在映射继承关系时,可以采用几种方式(参考JPA中的InheritanceType.定义):

使用单个表,在JPA中称作SINGLE_TABLE。整个继承树共用一张表。使用唯一的表,包含所有基类和子类的字段。 每个具体类一张表,在JPA中称作TABLE_PER_CLASS。这种方式下,每张表都包含具体类和继承树上所有父类的字段。因为多个表中有重复字段,从整个继承树上来说,字段是冗余的。 每个类一张表,继承关系通过表的JOIN操作来表示。在JPA中称作JOINED。这种方式下,每个表只包含类中定义的字段,不存在字段冗余,但是要同时操作子类和所有父类所对应的表。

Django的ORM也支持上述三种继承策略,同时,得益于python的动态特性,还支持代理模型和多重继承关系的映射。

本文转自:http://happylaoyu.i.sohu.com/blog/view/111505796.htm 估计入门时都会遇到的。我是在windows下用的Python25自带的IDLE编辑运行的,发现运行脚本得出的结果有一些中文显示是乱码,但有一些是正常的。百思不得其解。首先查看了一下源文件的编码格式,是UTF-8。经过搜索再搜索,调试再调试,也换了几个编译器,发现比IDLE还糟糕(可能需要进行encode设置)。问题终于解决了,一共花了俺将近5个小时,写在这里,希望遇到问题的人能搜索到这里,不再重犯…

在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义。同源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那么什么叫相同域,什么叫不同的域呢?