Tag: code review

自己检查私有API“用法”?

所以,我们都知道苹果公司禁止在iOS应用程序中使用私有或未公开的API。 我对此没有任何问题,因为这是一个好主意,这里有合理的技术原因。 然而,现在有两次我有一个应用程序因为使用私有API而被拒绝,但事实并非如此。 这并不困难 – 私有API包含像connectionState , setThumbnail , setOrder等符号。 您对名为的方法所做的任何调用都将被标记为私有API使用,即使被调用的方法是您自己定义的。 对于使用连接,缩略图或事物顺序进行操作的程序,上面提到的方法名称并不是那么不可能。 被拒绝,不得不重新提交一个方法,并重新提交延迟至less一个星期,而你等待一个新的审查。 那么有没有办法,使用nm ,iOS框架的类转储等来找出自己的方法名称是否与其中的任何内容冲突? 如果是这样,我们可以在发布前纠正这个问题,避免不必要的拒绝。

java中的代码分析和任务分配

我最近看了一个关于喷气推进实验室的一部分如何进行代码审查的有趣的演讲 。 基本上他们有一个工具(磨砂): 在代码上运行各种代码分析器 与有问题的开发人员进行匹配 为该开发者创build一个任务/错误。 那么开发者可以: a)同意(解决问题 – 它消失)b)不同意c)讨论 该工具保持所有对话的踪迹。 然后在他们的每周会议上,他们只讨论不同意/讨论项目。 我想知道是否有人在Java中遇到类似的工具? 例如,我可以使用声纳 – 进行代码分析,但是没有办法自动创build任务或跟踪数字对话。 任何build议,欢迎! 谢谢。

连接closures时ResultSet没有closures?

我一直在做我们的宠物项目之一的代码审查(主要是使用像FindBugs的工具)和FindBugs标记下面的代码是错误的(伪代码): Connection conn = dataSource.getConnection(); try{ PreparedStatement stmt = conn.prepareStatement(); //initialize the statement stmt.execute(); ResultSet rs = stmt.getResultSet(); //get data }finally{ conn.close(); } 错误是这个代码可能不会释放资源。 我发现ResultSet和Statement没有closures,所以最后closures了它们: finally{ try{ rs.close() }catch(SqlException se){ //log it } try{ stmt.close(); }catch(SqlException se){ //log it } conn.close(); } 但是我在许多项目(来自不less公司)遇到过上述模式,没有人closuresResultSet或Statements。 当Connectionclosures时,您是否遇到ResultSet和Statement没有closures的问题? 我发现只有这一点 ,它指的是甲骨文在closures连接(我们使用Oracle数据库,因此我的更正)closures结果集有问题。 java.sql.api在Connection.close()javadoc中什么都没说。

如何获得完整的上下文的git diff?

如何创build适合在坩埚中复习的补丁? git diff branch master –no-prefix > patch 这只产生三行上下文。 所以我做了以下 git diff –unified=2000 branch master –no-prefix > patch 希望所有的文件将有不到2000行。 有没有办法告诉git在补丁中包含文件中的所有行,而不必指定最大行数?

TFS代码评论 – 显示更新的文件以回应评论

我们开始使用VS 2012和VS 2013预览中内置的代码审查function。 请求审查和添加评论似乎非常简单。 如果有人添加了要求更改代码的注释,那么请求者如何进行这些更改并显示它们? 所以这个过程会像这样stream动: 人1请求代码审查。 人2添加评论并select“需要工作”。 人1进行必要的更改。 Person 1现在如何向Person 2显示这些更改? 您可以添加注释并发送它们,但文件不会更改。 我假设这些文件来自请求原始审阅时创build的变更集。 第1人是否应该closures此评价,并要求第二次评审? 创build第二个审查看起来并不是最佳的,因为你失去了为什么要进行更改的谈话历史。 有很多网站展示了如何使用代码评论的基本function,但是有没有哪些网站能够展示最佳实践? 例如,谁应该点击文件旁边的checkbox?