程序设计

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

12
指针与参考
给函数一个原始变量以供使用时,更好的做法是: unsigned long x = 4; void func1(unsigned long& val) { val = 5; } func1(x); 要么: void func2(unsigned long* val) { *val = 5; } func2(&x); 爱荷华州:有什么理由选择一个?

3
OAuth 2.0:好处和用例-为什么?
谁能解释OAuth2有什么好处,为什么我们要实现它?我问是因为对此有些困惑-这是我目前的想法: OAuth1(更确切地说是HMAC)请求看起来合乎逻辑,易于理解,易于开发并且非常安全。 相反,OAuth2带来了授权请求,访问令牌和刷新令牌,并且您必须在会话开始时发出3个请求才能获取所需的数据。即使这样,当令牌过期时,您的请求之一最终也会失败。 为了获得另一个访问令牌,您可以使用与访问令牌同时传递的刷新令牌。从安全角度来看,这会使访问令牌无效吗? 另外,正如/ r / netsec最近显示的那样,SSL并不是完全安全的,因此将所有内容都放到TLS / SSL而不是安全的HMAC的推动使我感到困惑。 OAuth争辩说这不是100%的安全性,而是使其发布和完成。从提供商的角度来看,这听起来并不乐观。当提到6种不同的流程时,我可以看到该草案试图达到的目的,但是我的脑袋并没有完全融合在一起。 我认为与实际不喜欢它相比,了解它的好处和推理可能要比我更努力,因此这可能是不必要的攻击,如果这看起来像是咆哮,那就对不起。
256 oauth  oauth-2.0 


6
抛出异常的哪一部分是昂贵的?
在Java中,当实际上没有错误时使用throw / catch作为逻辑的一部分通常是一个坏主意(部分),因为抛出和捕获异常的代价很高,而且在循环中多次执行通常比其他方法慢得多不涉及引发异常的控制结构。 我的问题是,是在throw / catch本身中还是在创建Exception对象时(因为它获得了大量的运行时信息,包括执行堆栈)而产生的成本? 换句话说,如果我这样做 Exception e = new Exception(); 但是不要扔,是扔的大部分费用,还是扔+渔获物处理的成本很高? 我不是在问是否将代码放在try / catch块中会增加执行该代码的成本,我是在问捕获Exception是昂贵的部分,还是创建(调用构造函数)Exception是昂贵的部分。 提出此问题的另一种方法是,如果我创建了一个Exception实例并一遍又一遍地抛出并捕获,那么这将比每次抛出新的Exception都快得多吗?

9
为什么JSF多次调用getter
假设我指定了一个outputText组件,如下所示: <h:outputText value="#{ManagedBean.someProperty}"/> 如果在someProperty调用getter for时打印一条日志消息并加载页面,则很容易注意到每个请求多次调用getter(在我的情况中是两次或三次): DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property 如果someProperty计算的值昂贵,则可能存在问题。 我在Google上搜索了一下,发现这是一个已知问题。一种解决方法是包括检查并查看是否已经计算出: private String someProperty; public String getSomeProperty() { if (this.someProperty == null) { this.someProperty = this.calculatePropertyValue(); } return this.someProperty; } 这样做的主要问题是,您获得了大量样板代码,更不用说您可能不需要的私有变量了。 有什么替代方法?没有太多不必要的代码,有没有办法实现这一目标?有没有办法阻止JSF以这种方式运行? 感谢您的输入!
256 performance  jsf  el  getter 

19
Pig和Hive之间的区别?为什么两者都有?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4年前关闭。 改善这个问题 我的背景-在Hadoop世界中工作了4周。使用Cloudera的Hadoop VM涉猎Hive,Pig和Hadoop。阅读了Google关于Map-Reduce和GFS的论文(PDF链接)。 我明白那个- Pig的语言Pig Latin是从(类似于程序员的思维方式)SQL到声明式编程风格的转变,而Hive的查询语言与SQL非常相似。 Pig位于Hadoop之上,原则上也可以位于Dryad之上。我可能错了,但是Hive与Hadoop紧密相连。 Pig Latin和Hive命令都可以编译为Map和Reduce作业。 我的问题-当一个人(例如Pig)可以达到目的时,同时拥有这两个目标是什么?仅仅是因为Pig被Yahoo传播了!和Hive by Facebook?
256 hadoop  hive  apache-pig 

30
reactjs提供错误Uncaught TypeError:超级表达式必须为null或函数,且未定义
我正在使用reactjs。 当我运行下面的代码时,浏览器显示: 未捕获的TypeError:超级表达式必须为null或函数,且未定义 关于任何错误的任何暗示将不胜感激。 首先是用于编译代码的行: browserify -t reactify -t babelify examples/temp.jsx -o examples/public/app.js 和代码: var React = require('react'); class HelloMessage extends React.Component { render() { return <div>Hello </div>; } } 更新:在针对此问题的地狱之火中燃烧了三天后,我发现我没有使用最新版本的react。 全局安装: sudo npm install -g react@0.13.2 在本地安装: npm install react@0.13.2 确保浏览器也使用正确的版本: <script type="text/javascript" src="react-0.13.2.js"></script> 希望这可以为他人节省三天的宝贵生命。

16
Express.js:如何获取远程客户端地址
我不完全了解如何获取远程用户IP地址。 假设我有一个简单的请求路由,例如: app.get(/, function (req, res){ var forwardedIpsStr = req.header('x-forwarded-for'); var IP = ''; if (forwardedIpsStr) { IP = forwardedIps = forwardedIpsStr.split(',')[0]; } }); 以上方法是正确的以获得真实用户IP地址还是有更好的方法?代理呢?



23
无法使用PIP和setup.py安装Python密码术软件包
当我尝试通过安装Python 加密程序包pip install cryptography或通过从其站点下载该程序包并运行时python setup.py,出现以下错误: D:\Anaconda\Scripts\pip-script.py run on 02/27/14 16:13:17 Downloading/unpacking cryptography Getting page https://pypi.python.org/simple/cryptography/ URLs to search for versions for cryptography: * https://pypi.python.org/simple/cryptography/ Analyzing links from page https://pypi.python.org/simple/cryptography/ Skipping https://pypi.python.org/packages/cp26/c/cryptography/cryptography-0.2-cp26-none-win32.whl#md5=13e5c4b19520e7dc6f07c6502b3f74e2 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python Skipping https://pypi.python.org/packages/cp26/c/cryptography/cryptography-0.2.1-cp26-none-win32.whl#md5=00e733648ee5cdb9e58876238b1328f8 (from https://pypi.python.org/simple/cryptography/) because it is not compatible …
256 python  cryptography  pip 

13
如何从GitHub下载ZIP格式的源代码?
我看到类似的东西: http://github.com/zoul/Finch.git 现在我不是那个CVS,SVN等老兄。当我在浏览器中打开它时,它告诉我做错了什么。所以我敢打赌我需要一些黑客风格的工具?有客人吗 (我的意思是……为什么不仅仅提供一个ZIP文件?这个世界还不够复杂吗?)
256 git  github 

19
为什么有人在SQL子句中使用WHERE 1 = 1 AND <conditions>?
为什么有人WHERE 1=1 AND &lt;conditions&gt;在SQL子句中使用(通过连接字符串获得的SQL,要么是视图定义) 我在某个地方看到过,它将被用来防止SQL注入,但是看起来很奇怪。 如果进行注射WHERE 1 = 1 AND injected OR 1=1,结果将与相同injected OR 1=1。 稍后编辑:视图定义中的用法如何? 谢谢您的回答。 仍然,我不明白为什么有人会使用这种构造来定义视图,或者在存储过程中使用它。 以这个为例: CREATE VIEW vTest AS SELECT FROM Table WHERE 1=1 AND table.Field=Value
256 sql  dynamic-sql 

28
带有Material Design和AppCompat的Android中的着色按钮
在AppCompat今天更新发布之前,我可以更改Android L中按钮的颜色,但不能更改旧版本上的按钮的颜色。包括新的AppCompat更新后,我无法更改任何一个版本的颜色,但是当我尝试尝试该按钮时,该按钮便消失了。有人知道如何更改按钮的颜色吗? 下图显示了我想要实现的目标: 白色按钮是默认按钮,红色按钮是我想要的按钮。 这是我之前所做的更改styles.xml:中按钮颜色的操作 &lt;item name="android:colorButtonNormal"&gt;insert color here&lt;/item&gt; 并动态地执行此操作: button.getBackground().setColorFilter(getResources().getColor(insert color here), PorterDuff.Mode.MULTIPLY); 我也确实将主题父级从更改@android:style/Theme.Material.Light.DarkActionBar为Theme.AppCompat.Light.DarkActionBar

7
通过命令行从unittest.TestCase运行单个测试
在我们的团队中,我们定义了大多数测试用例,如下所示: 一门“框架”课ourtcfw.py: import unittest class OurTcFw(unittest.TestCase): def setUp: # something # other stuff that we want to use everywhere 还有很多测试用例,例如testMyCase.py: import localweather class MyCase(OurTcFw): def testItIsSunny(self): self.assertTrue(localweather.sunny) def testItIsHot(self): self.assertTrue(localweather.temperature &gt; 20) if __name__ == "__main__": unittest.main() 当我编写新的测试代码并希望经常运行它并节省时间时,我要做的是在所有其他测试之前放置“ __”。但这很麻烦,使我从正在编写的代码中分散了注意力,并且由此产生的提交噪音实在令人讨厌。 因此,例如,当对进行更改时testItIsHot(),我希望能够做到这一点: $ python testMyCase.py testItIsHot 并unittest运行只 testItIsHot() 我该如何实现? 我尝试重写该if __name__ == …

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.