当前标签: 漂亮代码

 
Leo C.W 2014-04-01 19:16 阅读:544 评论:5
 
Leo C.W 2014-03-31 22:34 阅读:1275 评论:24
 
Leo C.W 2014-03-31 10:41 阅读:1037 评论:15
 
Leo C.W 2014-01-07 22:50 阅读:2319 评论:40
 
Leo C.W 2013-05-09 23:00 阅读:322 评论:8
 
Leo C.W 2013-04-08 21:32 阅读:355 评论:5
 
Leo C.W 2013-03-27 23:25 阅读:648 评论:9

Leo C.W 2014-03-31 22:34 阅读:1275 评论:24
 
Leo C.W 2014-03-28 23:27 阅读:517 评论:5
 
Leo C.W 2013-07-15 12:33 阅读:435 评论:1

使用ReSharper打造团队代码检查流程

 

首先我想跟大家分享一下我们团队的代码检查流程。

1. 项目经理随时会检查成员的代码,如果发现有不符合规范的代码,会在注释里面加todo。比如,假设leo的代码不符合规范,那么项目经理就会加注释:

//todoleo: refactor below code to match the standard of defining a class in JS

2. 每个成员随时会检查属于自己的todo项,然后修改代码。比如,leo会把项目里所有todoleo的项列出来,然后一个一个检查。检查完了之后,将todo改成review。

3. 项目经理会检查所有的review。如果代码没有问题了,就会删除这个review(曾经的todo);如果代码仍然有问题,那么会再次改成todo。

下面我再一步一步详细介绍如何使用resharper来实现这一个流程。

1. 下载、安装、破解resharper。下载地址:http://www.jetbrains.com/resharper/。下载之后直接安装,安装后再百度下keygen吧,如果找不到,可以联系我。

2. 为每一个团队成员指定唯一的名字,通常为成员名字或者姓的拼音,只要简单易记就可以了。比如todoleo, tododaniel, todoben. 再将这些名字告诉每一个成员。

3. 打开VS, 在菜单栏找到Resharper,然后打开todo items。(此时你必须要打开一个项目才看得见)

4. 点击settings(如下图),这是会打开resharper对于todo item的设置。当然,你也可以通过菜单栏resharper-options-tools-todo items打开该设置。

5. 你可以选中一个pattern,再点击duplicate,然后后再在编辑表单中修改。你也可以基于下图的设置来修改,注意红框框标记的地方。

6. 设置好了之后点击resharper - options的保存,退出设置。此时再打开todo-items,你可以看到filter下方有你自定义的过滤条件了。这些pattern会像resharper自带的todo,bug一样,在注释中加粗显示,特别醒目。

好了,上面就是全部的操作,非常简单吧。

我们团队已经使用这一代码检查流程有几个月了,在实践中发现这一流程非常有用,让每一个成员的工作变得独立,同时又能得到项目经理对代码质量的控制。

我们的终极编码规范

 

我们的终极编码规范,最重要的只有3点:

  1. 每一个文件不能超过300行代码,最好不超过200行;
  2. 每一个方法不能超过30行代码;
  3. 不写一行注释。

这3点看上去很简单,但是很多人做不到,即使是多年工作经验的。我们提出这3点,有很多人不相信做得到,或者认为即使做到实际意义也不大。事实是,我们多个项目成功做到了这3点,我们的团队深刻体会到了写代码的优雅、写代码的艺术。

这3点应该在所有项目中遵守,不管是c#,还是js、HTML、java,都应该尽可能达到。

除了这3点,还有其他几点可供参考:

  1. 每一个文件夹不能超过30个文件和子文件夹,对于架构而言;
  2. 业务相关的代码一定要放到一起;
  3. 尽可能降低各个类的耦合度;
  4. 写任何代码,当性能不是问题的时候,都应该把代码写的更易读。

命名指导:

对于日期和时间的命名。如果存的值只是日期,那么以Date结尾;如果值是时间,那么以Time结尾。如:CreatedDate代表这条记录的创建日期,不包含时间;CreatedTime代表这条记录的创建时间,包含日期和时间。

命名要准确,不可模糊。不能因为命名太长而选择有歧义或模糊意义的命名。比如以前项目中的一个案例:数据库中有一个“Recipe(菜)”表,做这个菜的时间包含:PrepareTime, CookTime, OvenTime, CleanTime。这里的命名有问题,因为调用者不知道这里Time是存的秒还是分还是带小数的小时,于是改成:PrepareMinutes, CookMinutes, OvenMinutes, CleanMinutes。另一个常见例子是,单词“interval”用作命名的时候,调用者也不清楚是分钟还是毫秒,于是后面都要加单位。

Bool类型返回值的方法,除了is做前缀外,还有can, will, does, has, should。以前在项目中看到一个方法,叫IsReceiveMessage,我在想是不是IsReceivingMessage,因为很多国内程序员英语语法不好,但后面我看到注释才发现,这个方法实际上是判断用户是否能收到短信,也就是说这个方法应该叫CanReceiveMessage。我相信写这个方法的程序员,写完这个方法命名时,肯定自己读着也感觉不太懂,所以加了个注释。实际上所有加注释的地方,要么命名不准确,要么方法太长。一旦你发现自己在写注释,那么你就需要思考这2个问题了。

未完待续,本帖长期更新中...

 

使用ReSharper打造团队代码的更多相关文章

  1. 使用ReSharper打造团队代码检查流程

    首先我想跟大家分享一下我们团队的代码检查流程. 1. 项目经理随时会检查成员的代码,如果发现有不符合规范的代码,会在注释里面加todo.比如,假设leo的代码不符合规范,那么项目经理就会加注释: // ...

  2. 打造smali代码库辅助分析

    打造smali代码库辅助分析 在分析Android应用程序的时候,我们往往会插入代码重打包apk来辅助我们分析的工作 一个比较取巧的方法就是先用java写好代码以及相关的调用之后, 然后直接扣出代码 ...

  3. 中小型前端团队代码规范工程化最佳实践 - ESLint

    前言 There are a thousand Hamlets in a thousand people's eyes. 一千个程序员,就有一千种代码风格.在前端开发中,有几个至今还在争论的代码风格差 ...

  4. iOS团队代码规范

    iOS团队代码规范 工程之始可能需要的工具: 1.使用CocoaPods类库管理工具.CocoaPods安装和使用教程. 2.下载安装注释插件VVDocumenter-Xcode. 一.项目结构管理 ...

  5. Resharper中注释代码的快捷键

    Resharper中     Visual Studio中 注释代码        Ctrl+Alt+/             Ctrl+E+C 取消注释        Ctrl+Alt+/     ...

  6. 用StyleCop规范团队代码

    前言 编码风格,每个人都是有不同的特点,风格各异,而且一个人在不同的时期,编码风格的差异也可能是非常大的,好比学生时代,刚工作的时候,工作一段时间后等. 在一个团队中,或一个项目中,如果出现了N种风格 ...

  7. 腾讯Alloy团队代码规范

    概述 我个人很看重代码规范,因为代码是写给别人看的,按规范写别人才更容易理解.之前苦于没有代码规范的资料,现在在github上面看到了腾讯Alloy团队的代码规范,于是学习了一下,并记录下我自己还没怎 ...

  8. VS、ReSharper 设置修改代码颜色、提高代码辨识度!附VS超实用快捷!

    ReSharper 配置代码颜色 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心 ...

  9. 团队代码中Bug太多怎么办?怎样稳步提高团队的代码质量

    最近负责的Android APP项目,由于团队成员变动.界面改版导致代码大幅修改等原因,产品发布后屡屡出现BUG导致的程序崩溃. 经过对异常统计和代码走读,BUG主要集中在空指针引起的NullPoin ...

随机推荐

  1. jaxb和dozer简介

    一.jaxb是什么     JAXB是Java Architecture for XML Binding的缩写.可以将一个Java对象转变成为XML格式,反之亦然.     我们把对象与关系数据库之间 ...

  2. ftk学习记录(脚本文章)

    [声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 上一篇说到了对话框.今天就看看结果. watermark/2/text/aHR0cDovL2Js ...

  3. 使用myeclipse将Javaj项目标ar套餐邂逅classnotfound解决问题的方法

    做一件事的今天,该Java项目打包成jar文件.折腾2小时,最终运行jar文件报告classnotfound异常,我觉得程序写入依赖jar包不玩成,但是,我手动添加.或不.网上找了很多办法.或不.后. ...

  4. 启用IIS7报错功能

    进入:控制面板 - 卸载程序 - 打开或关闭Windows功能 如果访问任何不存在页面或页面出错时空白: Internet 信息服务 - 万维网服务 - 常见 HTTP 功能 - HTTP 错误 打勾 ...

  5. XFtp中文乱码解决

    异常处理汇总-开发工具  http://www.cnblogs.com/dunitian/p/4522988.html 一张图解决 异常处理汇总:http://www.cnblogs.com/duni ...

  6. MVC验证05-自定义验证规则、验证2个属性值不等

    原文:MVC验证05-自定义验证规则.验证2个属性值不等 本文体验2个属性值不等.即当一个属性输入值,另外一个属性输入的值不能和第一个属性值相等.相关文章包括: MVC验证01-基础.远程验证   M ...

  7. Android Material Design带UI变化

    谷歌Matias Duarte称,"Material Design是漂亮和大胆的.由于干净的排版和布局简单且easy理解.内容才是焦点. 谷歌I/O 014开发人员大会上宣布全新的设计语言& ...

  8. Java遍历解析URL类型字符串中参数

    public static void main(String[] args) { String str="&emailCheckURL=447&useremail=vip@c ...

  9. 天体程序猿叹息——变化hosts对

    没有解释更新一SDK像贼,我真诚地希望在天上Android.ios我们已经禁止了.要玩不能玩才最寂寞 安装成功不寂寞hosts文件: 74.125.237.1 dl-ssl.google.com173 ...

  10. 在 VS2013的ASPNET站点开发中用 xheditor v1.1.13 作为HTML编辑器

    要用vs2013开发一个博客站点,.net   framework  4,须要一个HTML编辑器作为写文章的工具.经多方试用,排除了dotnettextbox.kceditor.认为xheditor ...