程序设计

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


30
最喜欢的(聪明的)防御性编程最佳实践
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 如果您必须选择最喜欢的(聪明的)技术进行防御性编码,它们将是什么?尽管我当前使用的语言是Java和Objective-C(具有C ++背景),但是可以使用任何语言进行回答。除了我们这里70%以上的人已经知道的防御技术外,这里还将重点介绍巧妙的防御技术。因此,现在该深入了解您的绝招了。 换句话说,除了这个无趣的示例,请尝试思考其他问题: if(5 == x) 代替 if(x == 5):避免意外分配 以下是一些有趣的最佳防御性编程实践的示例(特定于语言的示例在Java中): -锁定变量,直到您知道需要更改它们为止 也就是说,您可以声明所有变量,final直到知道需要进行更改为止,此时可以删除final。一个普遍未知的事实是,这对于方法参数也有效: public void foo(final int arg) { /* Stuff Here */ } -发生不良情况时,请留下大量证据 发生异常时,您可以执行许多操作:显然,将其记录下来并执行一些清理工作只是其中的一部分。但是您也可以留下一些证据(例如,在调试器中将变量设置为“ UNABLE TO LOAD FILE”或99999等哨兵值将很有用,以防您碰巧遇到异常catch-block)。 -关于一致性:细节决定成败 与您正在使用的其他库保持一致。例如,在Java中,如果要创建一种提取一系列值的方法,则将下限包括在内,将上限值排除在外。这将使其与String.substring(start, end)以相同方式运行的方法保持一致。在Sun JDK中,您会发现所有这些类型的方法都具有这种行为,因为它会进行各种操作,包括与数组一致的元素迭代,其中索引的范围是从零(包括)到数组的长度(不包括)。 那么,您最喜欢的防御方法是什么? 更新:如果您还没有的话,请随时鸣叫。在选择正式答案之前,我有机会获得更多回应。

11
用Java淡入淡出Android动画
我想要一个2秒的ImageView动画,该动画花1000ms淡入,然后1000ms淡出。 到目前为止,这是我的ImageView构造函数中的内容: Animation fadeIn = new AlphaAnimation(0, 1); fadeIn.setDuration(1000); Animation fadeOut = new AlphaAnimation(1, 0); fadeOut.setStartOffset(1000); fadeOut.setDuration(1000); AnimationSet animation = new AnimationSet(true); animation.addAnimation(fadeIn); animation.addAnimation(fadeOut); this.setAnimation(animation); 当我运行该动画时,没有任何显示。但是,当我删除其中一个alpha动画时,该行为将按预期方式工作。 我已经尝试过的事情: 的所有可能的组合setFillBefore,setFillAfter和setFillEnabled。 添加LinearInterpolator到AnimationSet。
148 android  animation 

14
将CocoaPods与iOS逻辑测试一起使用时找不到库
我正在尝试针对一些项目中的类编写一些iOS逻辑测试,这些测试使用了podspec中某些库的功能。我正在使用Xcode中提供的标准单元测试包(尽管不是Application Tests,只是单元测试)。 例如,我使用Magical Record,并在podspec中链接了该库。它存在于我的工作区的Pods项目中,并且可以在模拟器或设备上运行该应用程序时按预期工作。但是,当我尝试链接到使用Magical Record的对象的测试时,出现链接器错误,指出它无法从Magical Record中找到选择器。我曾尝试在逻辑测试包中更新HEADER_SEARCH_PATH,甚至将其硬编码到CocoaPods创建的标头目录中,但没有运气。 我可以毫无问题地对不使用CocoaPods库的类进行单元测试。 我要解决这个错误吗?我是否应该做其他事情来让编译器查看CocoaPods库?

26
在Swift中从笔尖加载UIView
这是我的Objective-C代码,我正在使用该代码为我的自定义加载笔尖 UIView: -(id)init{ NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"myXib" owner:self options:nil]; return [subviewArray objectAtIndex:0]; } Swift中的等效代码是什么?
148 swift  uiview  xib 

11
Web API 2和.NET 4.5.1迁移后不存在GlobalConfiguration.Configure()
我最近开始按照本指南进行操作,以将项目迁移到.NET 4.5.1和Web Api 2。 MS开发人员Rick Anderson要求您做的第一件事就是更改: WebApiConfig.Register(GlobalConfiguration.Configuration); 至 GlobalConfiguration.Configure(WebApiConfig.Register); 在global.asax文件中。但是当我尝试构建时,这给了我一个错误: 错误1'System.Web.Http.GlobalConfiguration'不包含'Configure'的定义 我的项目目前在MVC 5,Web Api 2和.NET 4.5.1上,但是我认为System.Web.Http仍然认为它是.NEt 4.0版本。 我该如何解决这个问题? 谢谢。 编辑: 这是我的程序集绑定: <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/> </dependentAssembly> <!-- <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/> </dependentAssembly> <dependentAssembly> …

5
如何获得FFT中每个值的频率?
我有一个FFT结果。它们存储在两个double数组中:实部数组和虚部数组。如何确定与这些阵列中的每个元素相对应的频率? 换句话说,我想创建一个数组来存储FFT的每个实部和虚部分量的频率。

8
Android / Java中的JSON数组迭代
我正在构建一个需要下载并与在线数据库同步的android应用,我将查询从该应用发送到php页面,该页面以JSON格式从数据库返回相关行。 有人可以告诉我迭代JSON数组的最佳方法吗? 我收到一个对象数组: [{json object},{json object},{json object}] 我可以用来访问数组中的JSONObjects的最简单的代码是什么? 编辑:现在,我想到它,我用来迭代循环的方法是: for (String row: json){ id = row.getInt("id"); name = row.getString("name"); password = row.getString("password"); } 所以我想我已经能够以某种方式将返回的Json变成可迭代的数组。有什么想法可以实现吗? 我为自己的冒昧表示歉意,但我通过网上发现的一个示例进行了此操作,此后一直无法找到它。
148 java  android  arrays  json 

11
如何调整AVD模拟器的大小(在Eclipse中)?
我正在为有一些Droid手机的小型企业编写我的第一个Android应用程序。我为手机设置了正确的分辨率AVD:854像素高。 我正在使用最大屏幕分辨率为900像素的MacBook Pro,所以当模拟器启动时,底部被切除了。 有没有一种方法可以将模拟器的显示比例缩小到75%左右,或者适合我的屏幕显示?还有其他解决方案(除了在手机上运行所有功能以外)?

10
如何解决错误:通过创建架构,“找不到属性/元素的架构信息”
我有一个用C#用VS2010编写的Windows窗体应用程序,并在app.config文件中得到以下错误: Message 4 Could not find schema information for the attribute 'name' Message 8 Could not find schema information for the attribute 'name' Message 12 Could not find schema information for the attribute 'name' Message 5 Could not find schema information for the attribute 'serializeAs' Message 15 Could not find …

24
如果内容太宽,请在HTML标记中插入省略号(...)
我有一个带有弹性布局的网页,如果调整了浏览器窗口的大小,该网页的宽度就会改变。 在此布局中,标题(h2)的长度是可变的(实际上是我无法控制的博客文章的标题)。当前-如果它们比窗口宽-分为两行。 是否有一个经过测试的(跨浏览器)优雅的解决方案(例如jQuery),可以缩短该标题标签的innerHTML,并在文本太宽而无法在当前屏幕/容器宽度?

13
如何创建多维数组
谁能给我一个带有多维输入数组的JavaScript示例/示例?希望您能有所帮助,因为我还是JavaScript的新手。 就像您输入2行2列时一样,输出将是2行输入和2列输入。 像这样: [input][input] [input][input]

8
jQuery滚动加载更多数据
我只是想知道如何才能在div.loading可见的情况下在滚动上实现更多数据。 通常,我们寻找页面高度和滚动高度,以查看是否需要加载更多数据。但是下面的例子有点复杂。 下图是一个很好的例子。下拉框中有两个.loading div。当用户滚动内容时,无论哪个可见,都应开始为其加载更多数据。 那么,如何确定.loading div是否对用户可见?因此,我只能开始为该div加载数据。

7
使用ngRepeat时限制显示结果的数量
我发现AngularJS教程很难理解。这是引导我构建一个可显示手机的应用程序。我正在执行步骤5,我想作为一个实验,尝试让用户指定他们希望显示多少。该视图如下所示: <body ng-controller="PhoneListCtrl"> <div class="container-fluid"> <div class="row-fluid"> <div class="span2"> <!--Sidebar content--> Search: <input ng-model="query"> How Many: <input ng-model="quantity"> Sort by: <select ng-model="orderProp"> <option value="name">Alphabetical</option> <option value="age">Newest</option> </select> </div> <div class="span10"> <!--Body content--> <ul class="phones"> <li ng-repeat="phone in phones | filter:query | orderBy:orderProp"> {{phone.name}} <p>{{phone.snippet}}</p> </li> </ul> </div> </div> </div> </body> …


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.