小编M. *_*ein的帖子

仅使用Django的DB部分

有人知道Django是如何"模块化"的吗?我可以只使用ORM部分来获取映射到DB表的类,并知道如何从这些表中读/写吗?

如果没有,你会推荐什么作为"Hibernate的Python等价物"?

python django orm

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

使用Annotations在Java中使用const正确性?

是否存在允许我将Java方法注释为@Const的现有库,以便编译器(使用apt I presume)在更新字段时标记错误,或在字段上调用非@ Const方法; 并将参数注释为@Const,以便接受方法不能调用其任何非@Const方法,或更新其任何字段?

(基本上,尝试使用注释向Java添加const-correctness;上面的问题中没有涉及一些明显的细节,例如分配给@ Const-typed参数等等)

我发现了这个:http://confluence.atlassian.com/pages/viewpage.action?pageId = 182158080,但它似乎只作为IDEA的一部分提供.

根据下面的澄清请求,这里的示例代码显示我的意思:

class Person {
  private String name;
  private String address;

  @Const public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  ... etc. for address
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我定义一个方法,例如:

void processPerson(@Const Person p)
Run Code Online (Sandbox Code Playgroud)

的线,例如:p.getName()将是OK processPerson,由于getName被标记为@const方法.但是p.setName()从内部调用processPerson会被标记为错误.

请注意,这与以下内容非常不同final:如果参数被定义为final Person p,则任何赋值p都是非法的,但修改p引用的内容仍然完全有效(使用p.setName(...)或者更直接地使用p.name = ....

java annotations const

12
推荐指数
2
解决办法
2669
查看次数

Java是否需要重启?

Java现在已经快14岁了,而且这个时代已经开始显现.在我的行业(银行业),我们开玩笑说Java是21世纪的COBOL; 除了它不是一个笑话,这是悲伤的现实.

Java有许多"包袱",这些"包袱"是为了向后兼容而保留的 - 这对于像银行这样的客户来说至关重要.但我经常认为现在是重启的时候了.只需阅读"Java Puzzlers"即可找到语言设计中的痛点列表.我不是在责怪语言设计师 - 在过去的14年中学到了很多经验教训!但是,我真的很喜欢一些重大变化,这些变化可以很好地打破向后兼容性,同时使语言更好.

以下是我在语言中更改的(非常部分)列表:

  • 删除所有已弃用的项目.现在是时候了,Thread.stop和好友会死.
  • 禁止超载.那是一个错误.(我知道这个有点有争议,但......)
  • 构造者必须是私人的.静态方法应该用作工厂方法来获取实例.这允许主要和重要的优化.(再次,有争议,但学术界似乎同意.另见有效Java中的第1项.)
  • 删除死的/错误设计的API部分.特别是,修复Date类.
  • 放下"敲定".
  • 删除对泛型类的"原始"变体的支持.没有更多的List; 它必须是List<Something>.
  • 属性.当你在它时,没有非私人领域.
  • 提供"equals"的默认实现,迭代字段并调用它们的"equals"; 允许一些注释("@NonState")标记不属于相等测试的字段.
  • "=="应该调用equals(); 添加一个新的运算符"is",用于标识.
  • 从Object中删除"clone"; 只有实现Cloneable的对象才应该有这个方法.
  • 为测试类提供特殊注释; 测试类应该能够访问同一个包中所有类的私有成员.
  • 在库中充分利用Enums - 很明显,许多旧类使用int常量代替.
  • 删除"Thread.run"; Thread.start应该接受一个Runnable对象(你会惊讶于我看到的调用Thread.run而不是Thread.start的bug数量).

这只是我的头脑......所以,我想听听:

  • 你是否同意重启Java(一个破坏与旧代码兼容的新版本)将是一件好事?
  • 什么是你的宠儿,你认为需要用语言固定的东西?我自己的例子集中在可复杂性破坏项目上 - 在当前Java中你不能做的事情而不破坏现有代码.但也欢迎其他想法.

澄清:我不是在寻找一种新语言(如Scala或C#).我正在寻找一些显然仍然是Java的东西 - 但需要为现有代码进行一些移植工作.请注意,对于我建议的许多更改,代码可以自动或半自动移植.我知道银行不会很快采用它(嘿,我那里工作)但我也知道银行经常开始新项目,并且喜欢利用现有程序员的知识,同时享受更好的语言.

对于所有那些声称,对于我的许多建议,团队可以只执行自己的规则(例如,没有超载):足够真实,但我们高度依赖第三方代码.不是每个人?

java programming-languages

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

如何通过设置表格元素的样式来为表格中的所有单元格设置垂直对齐?

我希望所有单元格都采用“vertical-align:top”样式。由于我无法控制的技术原因,我无法定义新类,也无法更改样式表;我也不能为单个单元格甚至行设置“样式”。我所能做的就是设置元素本身的“style”属性<table>

使用<table style="vertical-align:top">失败——显然,它设置了表格在其自身上下文中的对齐方式,而不是其中单个单元格的对齐方式。我还缺少其他选择吗?

css

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

是否有免费/开源的JavaScript-to-JavaScript压缩编译器(如Google的)?

如果您使用JavaScript查看Google网页的来源,您会发现JavaScript显然无法读取或维护.例如,所有变量和函数都是一个字母命名的(至少,前26个是......); 没有多余的白色空间或线条; 没有评论; 等等.

这个编译器的好处很明显:页面加载速度更快,JavaScript执行速度更快,而作为奖励,竞争对手将难以理解您的混淆代码.

显然,谷歌正在使用某种JavaScript-to-JavaScript压缩编译器.我想知道他们使用的是什么是内部工具?如果没有,什么他们使用?是否有任何公开的(理想情况下,免费/开源)工具?

javascript compiler-construction obfuscation optimization

3
推荐指数
1
解决办法
639
查看次数