有人知道Django是如何"模块化"的吗?我可以只使用ORM部分来获取映射到DB表的类,并知道如何从这些表中读/写吗?
如果没有,你会推荐什么作为"Hibernate的Python等价物"?
是否存在允许我将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现在已经快14岁了,而且这个时代已经开始显现.在我的行业(银行业),我们开玩笑说Java是21世纪的COBOL; 除了它不是一个笑话,这是悲伤的现实.
Java有许多"包袱",这些"包袱"是为了向后兼容而保留的 - 这对于像银行这样的客户来说至关重要.但我经常认为现在是重启的时候了.只需阅读"Java Puzzlers"即可找到语言设计中的痛点列表.我不是在责怪语言设计师 - 在过去的14年中学到了很多经验教训!但是,我真的很喜欢一些重大变化,这些变化可以很好地打破向后兼容性,同时使语言更好.
以下是我在语言中更改的(非常部分)列表:
List
; 它必须是List<Something>
.这只是我的头脑......所以,我想听听:
澄清:我不是在寻找一种新语言(如Scala或C#).我正在寻找一些显然仍然是Java的东西 - 但需要为现有代码进行一些移植工作.请注意,对于我建议的许多更改,代码可以自动或半自动移植.我知道银行不会很快采用它(嘿,我在那里工作)但我也知道银行经常开始新项目,并且喜欢利用现有程序员的知识,同时享受更好的语言.
对于所有那些声称,对于我的许多建议,团队可以只执行自己的规则(例如,没有超载):足够真实,但我们高度依赖第三方代码.不是每个人?
我希望所有单元格都采用“vertical-align:top”样式。由于我无法控制的技术原因,我无法定义新类,也无法更改样式表;我也不能为单个单元格甚至行设置“样式”。我所能做的就是设置元素本身的“style”属性<table>
。
使用<table style="vertical-align:top">
失败——显然,它设置了表格在其自身上下文中的对齐方式,而不是其中单个单元格的对齐方式。我还缺少其他选择吗?
如果您使用JavaScript查看Google网页的来源,您会发现JavaScript显然无法读取或维护.例如,所有变量和函数都是一个字母命名的(至少,前26个是......); 没有多余的白色空间或线条; 没有评论; 等等.
这个编译器的好处很明显:页面加载速度更快,JavaScript执行速度更快,而作为奖励,竞争对手将难以理解您的混淆代码.
显然,谷歌正在使用某种JavaScript-to-JavaScript压缩编译器.我想知道他们使用的是什么是内部工具?如果没有,什么是他们使用?是否有任何公开的(理想情况下,免费/开源)工具?
java ×2
annotations ×1
const ×1
css ×1
django ×1
javascript ×1
obfuscation ×1
optimization ×1
orm ×1
python ×1