`
lizhuang
  • 浏览: 906006 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

新浪微博java编码规范

 
阅读更多
/*
* 文件名(可选),如 CodingRuler.java
*
* 版本信息(可选),如:@version 1.0.0
*
* 版权申明(开源代码一般都需要添加),如:Copyright (C) 2010-2013 SINA Corporation.
*/
 
package com.sina.weibo.sdk.codestyle;
 
/**
* 类的大体描述放在这里。
*
* <p>
* <b>NOTE:以下部分为一个简要的编码规范,更多规范请参考 ORACLE 官方文档。</b><br>
* 地址:http://www.oracle.com/technetwork/java/codeconventions-150003.pdf<br>
* 另外,请使用 UTF-8 格式来查看代码,避免出现中文乱码。<br>
* <b>至于注释应该使用中文还是英文,请自己行决定,根据公司或项目的要求而定,推荐使用英文。</b><br>
* </p>
* <h3>1. 整理代码</h3>
* <ul>
*    <li>1.1. Java 代码中不允许出现在警告,无法消除的警告要用 @SuppressWarnings。
*    <li>1.2. 去掉无用的包、方法、变量等,减少僵尸代码。
*    <li>1.3. 使用 Lint 工具来查看并消除警告和错误。
*    <li>1.4. 使用 Ctrl+Shift+F 来格式化代码,然后再进行调整。
*    <li>1.5. 使用 Ctrl+Shift+O 来格式化 Import 包。
* </ul>
*
* <h3>2. 命名规则</h3>
*    <h3>2.1. 基本原则</h3>
*    <ul>
*         <li>2.1.1. 变量,方法,类命名要表义,严格禁止使用 name1, name2 等命名。
*         <li>2.1.2. 命名不能太长,适当使用简写或缩写。(最好不要超过 25 个字母)
*         <li>2.1.3. 方法名以小写字母开始,以后每个单词首字母大写。
*         <li>2.1.4. 避免使用相似或者仅在大小写上有区别的名字。
*         <li>2.1.5. 避免使用数字,但可用 2 代替 to,用 4 代替 for 等,如 go2Clean。
*     </ul>
*    
*    <h3>2.2. 类、接口</h3>
*    <ul>
*         <li>2.2.1. 所有单词首字母都大写。使用能确切反应该类、接口含义、功能等的词。一般采用名词。
*         <li>2.2.2. 接口带 I 前缀,或able, ible, er等后缀。如ISeriable。
*    </ul>
*    
*    <h3>2.3. 字段、常量</h3>
*    <ul>
*         <li>2.3.1. 成员变量以 m 开头,静态变量以 s 开头,如 mUserName, sInstance。
*         <li>2.3.2. 常量全部大写,在词与词之前用下划线连接,如 MAX_NUMBER。
*         <li>2.3.3. 代码中禁止使用硬编码,把一些数字或字符串定义成常用量。
*         <li>2.3.4. 对于废弃不用的函数,为了保持兼容性,通常添加 @Deprecated,如 {@link #doSomething()}
*    </ul>
*        
* <h3>3. 注释</h3>
*    请参考 {@link #SampleCode} 类的注释。
*    <ul>
*    <li>3.1. 常量注释,参见 {@link #ACTION_MAIN}
*    <li>3.2. 变量注释,参见 {@link #mObject0}
*    <li>3.3. 函数注释,参见 {@link #doSomething(int, float, String)}
*    </ul>
*    
* <h3>4. Class 内部顺序和逻辑</h3>
* <ul>
*    <li>4.1. 每个 class 都应该按照一定的逻辑结构来排列基成员变量、方法、内部类等,
*             从而达到良好的可读性。
*    <li>4.2. 总体上来说,要按照先 public, 后 protected, 最后 private, 函数的排布
*             也应该有一个逻辑的先后顺序,由重到轻。
*    <li>4.3. 以下顺序可供参考:
*         定义TAG,一般为 private(可选)<br>
*         定义 public 常量<br>
*         定义 private 常量、内部类<br>
*         定义 private 变量<br>
*         定义 public 方法<br>
*         定义 protected 方法<br>
*         定义 private 方法<br>
* </ul>        
*
* <h3>5. 表达式与语句</h3>
*    <h3>5.1. 基本原则:采用紧凑型风格来编写代码</h3>
*    <h3>5.2. 细则</h3>
*    <ul>
*         <li>5.2.1. 条件表示式,参见 {@link #conditionFun(boolean)}
*         <li>5.2.2. switch 语句,参见 {@link #switchFun(int)}
*         <li>5.2.3. 循环语句,参见 {@link #circulationFun(boolean)}
*         <li>5.2.4. 错误与异常,参见 {@link #exceptionFun()}
*         <li>5.2.5. 杂项,参见 {@link #otherFun()}
*         <li>5.2.6. 批注,参见 {@link #doSomething(int, float, String)}
*     </ul>
*
* @author 作者名
* @since 2013-XX-XX
*/
@SuppressWarnings("unused")
public class CodingRuler {
 
    /** 公有的常量注释 */
    public static final String ACTION_MAIN = "android.intent.action.MAIN";
 
    /** 私有的常量注释(同类型的常量可以分块并紧凑定义) */
    private static final int MSG_AUTH_NONE    = 0;
    private static final int MSG_AUTH_SUCCESS = 1;
    private static final int MSG_AUTH_FAILED  = 2;
 
    /** 保护的成员变量注释 */
    protected Object mObject0;
 
    /** 私有的成员变量 mObject1 注释(同类型的成员变量可以分块并紧凑定义) */
    private Object mObject1;
    /** 私有的成员变量 mObject2 注释 */
    private Object mObject2;
    /** 私有的成员变量 mObject3 注释 */
    private Object mObject3;
 
    /**
     * 对于注释多于一行的,采用这种方式来
     * 定义该变量
     */
    private Object mObject4;
 
    /**
     * 公有方法描述...
     *
     * @param param1  参数1描述...
     * @param param2  参数2描述...
     * @param paramXX 参数XX描述... (注意:请将参数、描述都对齐)
     */
    public void doSomething(int param1, float param2, String paramXX) {
        // 以下注释标签可以通过Eclipse内置的Task插件看到
        // TODO  使用TODO来标记代码,说明标识处有功能代码待编写
        // FIXME 使用FIXME来标记代码,说明标识处代码需要修正,甚至代码是
        //       错误的,不能工作,需要修复
        // XXX   使用XXX来标记代码,说明标识处代码虽然实现了功能,但是实现
        //       的方法有待商榷,希望将来能改进
    }
 
    /**
     * 保护方法描述...
     */
    @Deprecated
    protected void doSomething() {
        // ...implementation
    }
 
    /**
     * 私有方法描述...
     *
     * @param param1  参数1描述...
     * @param param2  参数2描述...
     */
    private void doSomethingInternal(int param1, float param2) {
        // ...implementation        
    }
 
    /**
     * 条件表达式原则。
     */
    private void conditionFun() {
        boolean condition1 = true;
        boolean condition2 = false;
        boolean condition3 = false;
        boolean condition4 = false;
        boolean condition5 = false;
        boolean condition6 = false;
 
        // 原则: 1. 所有 if 语句必须用 {} 包括起来,即便只有一句,禁止使用不带{}的语句
        //       2. 在含有多种运算符的表达式中,使用圆括号来避免运算符优先级问题
        //       3. 判断条件很多时,请将其它条件换行
        if (condition1) {
            // ...implementation
        }
 
        if (condition1) {
            // ...implementation
        } else {
            // ...implementation
        }
 
        if (condition1)          /* 禁止使用不带{}的语句 */
            condition3 = true;
 
        if ((condition1 == condition2)
                || (condition3 == condition4)
                || (condition5 == condition6)) {
 
        }
    }
 
    /**
     * Switch语句原则。
     */
    private void switchFun() {
 
        // 原则: 1. switch 语句中,break 与下一条 case 之间,空一行
        //       2. 对于不需要 break 语句的,请使用 /* Falls through */来标注
        //       3. 请默认写上 default 语句,保持完整性
        int code = MSG_AUTH_SUCCESS;
        switch (code) {
        case MSG_AUTH_SUCCESS:
            break;
 
        case MSG_AUTH_FAILED:
            break;
 
        case MSG_AUTH_NONE:
            /* Falls through */
        default:
            break;
        }
    }
 
    /**
     * 循环表达式。
     */
    private void circulationFun() {
 
        // 原则: 1. 尽量使用for each语句代替原始的for语句
        //       2. 循环中必须有终止循环的条件或语句,避免死循环
        //       3. 循环要尽可能的短, 把长循环的内容抽取到方法中去
        //       4. 嵌套层数不应超过3层, 要让循环清晰可读
 
        int array[] = { 1, 2, 3, 4, 5 };
        for (int data : array) {
            // ...implementation
        }
 
        int length = array.length;
        for (int ix = 0; ix < length; ix++) {
            // ...implementation
        }
 
        boolean condition = true;
        while (condition) {
            // ...implementation
        }
 
        do {
            // ...implementation
        } while (condition);
    }
 
    /**
     * 异常捕获原则。
     */
    private void exceptionFun() {
 
        // 原则: 1. 捕捉异常是为了处理它,通常在异常catch块中输出异常信息。
        //       2. 资源释放的工作,可以放到 finally 块部分去做。如关闭 Cursor 等。
        try {
            // ...implementation
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
 
        }
    }
 
    /**
     * 其它原则(整理中...)。
     */
    private void otherFun() {
        // TODO
    }    
}
分享到:
评论

相关推荐

    新浪微博JAVA SDK DEMO

    调试好的新浪微博SDK DEMO,下载后可以直接使用

    新浪微博java程序

    【标题】"新浪微博java程序"涉及的是使用Java编程语言开发的与新浪微博相关的应用程序。这个程序可能允许用户通过命令行或图形用户界面与新浪微博平台进行交互,例如发布微博、浏览信息流、评论、点赞等社交功能。 ...

    阿里Java的编码规范

    Java、编码规范、Java编码规范、阿里巴巴、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里巴巴Java编码规范、阿里...

    新浪微博OAuth授权的Java实现.pdf

    新浪微博OAuth授权的Java实现 一、 OAuth协议简介 OAuth协议是一种广泛使用的授权协议,使用户不需要直接向第三方应用提供用户名及密码,且使一个账户在多个网站中使用成为可能。OAuth协议的细节描述可参考其官方...

    毕业设计,关于新浪微博API的Java编程

    毕业设计,关于新浪微博API的Java编程.毕业设计,关于新浪微博API的Java编程. dev文件夹为新开发的代码. 其中获取所有微博的接口使用:命令行参数第一个为 accessToken,第二个为Uid. 毕业设计题目:基于新浪微博API...

    华为JAVA编码规范.pdf

    华为JAVA编码规范.pdf 华为JAVA编码规范.pdf是华为公司编写的JAVA编程语言编码规范,旨在提供一个统一的编程风格和代码组织方式,以提高代码的可读性、维护性和可重用性。该规范涵盖了编程语言的基本结构、命名规则...

    阿里巴巴java编码规范

    阿里巴巴java编码规范 ,Java 并发编程培训(阿里巴巴) 《阿里巴巴Java开发手册》,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大...

    新浪微博通过账户和密码获取cookie

    新浪微博通过账户和密码获取cookie

    【3K认证】新浪微博Java开发包 weibo4j 。好使

    【3K认证】新浪微博Java开发包 weibo4j weibo4j 或者叫 sinat4j 是新浪微博的 Java 客户端开发包,支持Basic Auth, OAuth, 上传图片,头像,地理位置等功能。 示例代码: package weibo4j.examples; import ...

    java新浪微博(含源代码)

    在这个项目中,我们重点讨论基于Java实现的新浪微博API客户端,它提供了访问和交互微博数据的能力。 首先,Java是面向对象的编程语言,它的强大在于其丰富的类库和强大的社区支持。在开发微博应用时,可以使用如...

    java编码规范考试题答案.doc

    "java编码规范考试题答案" 一、Java编码规范考试题答案 本文档涵盖了Java编码规范的各种方面,包括集合类、线程、对称密码算法、异常处理、命名规范、随机数生成、压缩文件解压、安全编程规范、操作系统登录用户名...

    新浪微博开放平台

    ### 新浪微博开放平台知识点详解 #### 一、概述 新浪微博开放平台借鉴了Twitter的设计理念和技术框架,两者在API设计、参数定义以及请求方法等方面高度相似。熟悉Twitter API的开发者可以快速适应新浪微博开放平台...

    java sdk 新浪微博数据采集代码

    标题 "java sdk 新浪微博数据采集代码" 涉及的核心技术是利用Java SDK来实现对新浪微博数据的抓取和处理。在这个项目中,开发者可能使用了名为`weibo4j`的开源Java库,这是一个专门用于访问新浪微博API的工具。`...

    腾讯java编码规范

    腾讯 Java 编码规范 腾讯 Java 编码规范是腾讯集团管理标准的一部分,旨在确保公司项目代码的易维护性和编码安全性。该规范涵盖了 Java 编码风格、文件组织、代码风格、注释、命名、声明、异常、习惯等方面。 一、...

    Java获取新浪微博评论

    Java获取新浪微博评论是一个涉及到网络爬虫技术和OAuth2认证授权的过程。在Java中,开发者可以使用第三方库如Weibo4J来实现对新浪微博API的调用,从而获取并处理微博的评论数据。Weibo4J是一个Java接口库,专门用于...

    weibo4j-oauth2【新浪微博Java版SDK】

    新浪微博官方Java版Sdk,项目源代码,下载下来是个包含测试代码的整个SDK源代码,可以打包成jar文件方便调用,我这里打包成名为weibo4j-oauth2.jar的文件,注意先修改config.properties文件中的应用id、应用密码、回...

    andoid新浪微博客户端源代码

    【标签】:“andoid新浪微博客户端源代码”、“android”、“java”、“新浪微博客户端” 本文将深入探讨基于Android的新浪微博客户端源代码,主要涉及以下几个关键知识点: 1. **Android开发基础**:Android是...

    新浪微博API-取消关注

    微博API是开发者用来与新浪微博平台交互的接口,它允许用户进行各种操作,如发布、阅读、转发微博,管理关注列表等。在“新浪微博API-取消关注”这个主题中,我们将深入探讨如何利用API来批量取消关注,特别是在应对...

    新浪微博话题爬虫

    本项目是关于“新浪微博话题爬虫”的实现,主要使用C#编程语言完成,开发者通过Visual Studio 2010(VS2010)进行开发。爬虫技术在大数据时代扮演着重要的角色,它能有效地抓取互联网上的信息,而新浪微博作为中国...

    Neusoft公司Java编码规范.rar

    Java编码规范(Java Coding Standard) oiNSFT-BS-OT0105 V3.0 2005-5-11 东软集团有限公司 商用软件事业部 版权所有 中国 沈阳浑南高新技术产业开发区 东软软件园

Global site tag (gtag.js) - Google Analytics