程序设计

专业和发烧友程序员的问答

26
可以使用哪些技术来加快C ++的编译时间?
可以使用哪些技术来加快C ++的编译时间? 这个问题出现在Stack Overflow问题C ++编程风格的一些注释中,我很想听听那里有什么想法。 我看到一个相关的问题,为什么C ++编译需要这么长时间?,但这并没有提供很多解决方案。
249 c++ 


27
让二传手返回“ this”是否是错误的做法?
使Java中的setter返回“ this”是好是坏的主意? public Employee setName(String name){ this.name = name; return this; } 这种模式很有用,因为这样您就可以像这样链接设置器: list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!")); 代替这个: Employee e = new Employee(); e.setName("Jack Sparrow"); ...and so on... list.add(e); ...但是有点违反标准惯例。我想这可能是值得的,因为它可以使设置者做其他有用的事情。我已经看到此模式在某些地方使用过(例如JMock,JPA),但这似乎并不常见,并且仅用于定义非常明确的API,该模式随处可见。 更新: 我所描述的内容显然是有效的,但是我真正要寻找的是一些关于是否可以普遍接受以及是否存在陷阱或相关最佳实践的想法。我知道Builder模式,但是它比我描述的要复杂得多-正如Josh Bloch所描述的那样,有一个关联的静态Builder类用于对象创建。
249 java  design-patterns  api  oop 



19
HTML5:仅采用整数的数字输入类型?
我正在使用jQuery Tools Validator,该工具通过jQuery实现HTML5验证。到目前为止,除了一件事之外,它一直都很棒。在HTML5规范中,输入类型“数字”可以同时具有整数和浮点数。这似乎是非常短视的,因为它仅在数据库字段为带符号浮点数时才是有用的验证器(对于无符号int,您将不得不使用“模式”验证,从而失去诸如向上和向下的额外功能)支持它的浏览器的箭头)。是否存在另一种输入类型或可能将输入限制为无符号整数的属性?我找不到任何东西,谢谢。 编辑 好的,伙计们,我感谢您的时间和帮助,但是我发现许多不受欢迎的:D正在进行投票。将步长设置为1并不是答案,因为它不会限制输入。您仍然可以在文本框中输入一个负浮点数。另外,我知道模式验证(我在原始帖子中提到过),但这不是问题的一部分。我想知道HTML5是否允许将“数字”类型的输入限制为正整数值。对于这个问题,答案似乎是“不,不是”。我不想使用模式验证,因为使用jQuery Tools验证时​​这会导致一些缺点,但是现在看来,该规范不允许采用更简洁的方式来执行此操作。

30
流行语言的语言书籍/教程
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 不久以前,我还是一名初学者,试图找到有关我想学习的语言的好书/教程。即便如此,有时候我还是需要相对较快地为正在从事的新项目选择一种语言。这篇文章的重点是记录这些语言的一些最佳教程和书籍。我将以我能找到的最好的列表开始,但希望你们在那里能为您提供更好的建议/新语言。这是我发现的: 由于现在可以进行Wiki编辑,因此我将控制权交给了社区。如果您有任何建议,请在本节中提出。我决定还添加一个部分,以便更好地成为一本更好的程序员书籍和在线参考。再次欢迎所有建议。 通用编程 在线教程 的编程基础作者:Karl Seguin-来自Codebetter,它基于C#,但是其思想在各个方面都是正确的,因此无法相信还没有人发表过这篇文章。 如何编写无法维护的代码 -反手册,教您如何以最不可维护的方式编写代码。如果这些建议中有很多没有如此正确,那将很有趣。 维基书籍的编程部分 -由吉姆·罗伯特(Jim Robert)建议,在完成的各个阶段中都有大量有关多种语言的书籍/教程, 只是基础知识。 书籍 代码完整 -这本书不用多说,在很多方面都非常出色。 The Pragmatic Programmer-与主编码器一起工作时的第二件事,即教您他们所知道的一切。 掌握正则表达式 -正则表达式是每个程序员工具箱中必不可少的工具。帕特里克·洛齐(Patrick Lozzi)推荐的这本书是学习他们的能力的绝佳方法。 算法Ç,C ++和Java的 -所有学习经典算法,如果你深入找到Knuth的书有点过一个伟大的方式。 C 在线教程 该教程看起来非常简洁,而且经过仔细研究,看起来非常不错。不过,不确定它对新程序员有多友好。 书籍 K&R C-无疑是经典。可能有人争辩说所有程序员都应该阅读它。 C Primer Plus-由Imran推荐,是初学者的终极C书。 C:参考手册 -Patrick Lozzi推荐的参考书。 C ++ 在线教程cplusplus.com 上的教程似乎是最完整的。我在这里找到了另一个教程,但是它不包括多态性这样的主题,我认为这是必不可少的。如果您来自C,那么本教程可能是最适合您的。 另一个有用的教程C ++ Annotation。在Ubuntu系列中,您可以通过安装c++-annotationSynaptic的软件包来获得多种格式的电子书(pdf,txt,Postscript和LaTex)(已安装的软件包可在中找到)/usr/share/doc/c++-annotation/。 图书 C ++编程语言 -对任何C ++程序员都至关重要。 C …

7
信任库与密钥库-使用keytool创建
据我了解,密钥库通常会保存私钥/公钥,而信任库通常只保存公钥(并且代表您打算与之通信的受信任方的列表)。好吧,这是我的第一个假设,因此,如果这不正确,那么我可能起步并不顺利... 不过,我很想了解使用keytool时如何/何时区分商店。 因此,到目前为止,我已经使用 keytool -import -alias bob -file bob.crt -keystore keystore.ks 这将创建我的keystore.ks文件。我回答yes了我是否信任bob的问题,但是我不清楚这是否创建了密钥库文件或信任库文件?我可以将我的应用程序设置为使用该文件。 -Djavax.net.ssl.keyStore=keystore.ks -Djavax.net.ssl.keyStorePassword=x -Djavax.net.ssl.trustStore=keystore.ks -Djavax.net.ssl.trustStorePassword=x 并与System.setProperty( "javax.net.debug", "ssl")设置,我可以看到根据该证书信任认证(但不是下的密钥库部分)。我要导入的特定证书只有一个公共密钥,我打算用它通过SSL连接将数据发送给Bob(但这也许是另一个问题了!)。 任何指针或澄清将不胜感激。无论您导入什么,keytool的输出是否都是相同的,并且它的公正约定说一个是密钥库,另一个是信任库?使用SSL等时有什么关系?
249 java  ssl  keytool  jce 

8
如何显示对象的所有方法?
我想知道如何列出对象可用的所有方法,例如: alert(show_all_methods(Math)); 这应该打印: abs, acos, asin, atan, atan2, ceil, cos, exp, floor, log, max, min, pow, random,round, sin, sqrt, tan, …

12
比较两个java.util.Date以查看它们是否在同一天
我需要比较两个Dates(例如date1和date2),并得出在同一天boolean sameDay这两个Dates共享的true,否则返回false。 我怎样才能做到这一点?这里似乎有混乱的旋风……我想尽可能避免引入除JDK之外的其他依赖项。 需要说明的是:如果date1并且date2共享相同的年,月和日,sameDay则为true,否则为false。我意识到这需要了解时区...传入时区会很好,但是只要知道行为是什么,我就可以使用GMT或本地时间。 再次澄清: date1 = 2008 Jun 03 12:56:03 date2 = 2008 Jun 03 12:59:44 => sameDate = true date1 = 2009 Jun 03 12:56:03 date2 = 2008 Jun 03 12:59:44 => sameDate = false date1 = 2008 Aug 03 12:00:00 date2 = 2008 Jun 03 12:00:00 => …
249 java  datetime 

10
如何快进分支机构?
在分支上开发了很长一段时间后,我切换到了master。日志显示: 您的分支落后“起源/母版” 167次提交,并且可以快速转发。 我试过了: git checkout HEAD 没有作用。这是因为我已检出master上的中间提交。 如何使主人保持头脑清醒?
249 git 

11
Java:分割逗号分隔的字符串,但忽略引号中的逗号
我隐约有这样的字符串: foo,bar,c;qual="baz,blurb",d;junk="quux,syzygy" 我想按逗号分割-但我需要忽略引号中的逗号。我怎样才能做到这一点?似乎正则表达式方法失败了。我想我可以在看到报价时手动扫描并进入其他模式,但是使用预先存在的库会很好。(编辑:我想我的意思是那些已经属于JDK或已经属于诸如Apache Commons之类的常用库的库。) 上面的字符串应分为: foo bar c;qual="baz,blurb" d;junk="quux,syzygy" 注意:这不是CSV文件,它是文件中包含的单个字符串,具有较大的整体结构
249 java  regex  string 

11
多个GitHub帐户和SSH配置
我很难让两个不同的SSH密钥/ GitHub帐户一起正常使用。我有以下设置: 可以从一个帐户访问回购 git@github.com:accountname 使用其他帐户可访问的回购 git@github.com:anotheraccount 每个帐户都有其自己的SSH密钥。两个SSH密钥均已添加,并且我创建了一个配置文件。我不相信配置文件是正确的。我不太确定如何指定使用访问的存储库git@github.com:accountname应该使用id_rsa和git@github.com:anotheraccount应该使用id_rsa_anotheraccount。
249 ssh  github  ssh-keys 


8
如何检查远程(原始)Git存储库中的更改?
题 执行以下工作流程的Git命令是什么? 情境 我从一个存储库克隆并对本地存储库做了一些自己的提交。同时,我的同事对远程存储库进行了提交。现在,我要: 检查远程存储库上是否有其他人的新提交,即origin? 假设自上次上拉以来,远程存储库中有3个新提交,我想比较远程存储库中的提交,即 HEAD~3with HEAD~2,HEAD~2with HEAD~1和HEAD~1with HEAD。 在知道远程更改之后,我想从其他人那里获取最新的提交。 到目前为止我的发现 对于第2步:我知道插入符号的符号HEAD^,HEAD^^等和波浪符号HEAD~2,HEAD~3等等。 对于第3步:我猜只是一个git pull。
249 git 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.