10个最“优秀”的代码注释

下面是stackoverflow网站上网友针对你看到过的最好的代码注释是什么样的?这个问题给出的回答的前10条:

1.

// 亲爱的维护者:
// 如果你尝试了对这段程序进行‘优化’,
// 并认识到这种企图是大错特错,请增加
// 下面这个计数

mybatis-generator-gui

Mybatis官方推出的mybatis-generator

介绍mybatis-generator-gui之前,有必要介绍一下什么是mybatis generator

拖拽排序插件-jQuery List DragSort

在实际的WEB开发中,经常有对列表排序或者左右拖拽互选的需求,你可以使用jQuery List DragSort这款插件,可以很好的满足这些需求,经过测试,很好的兼容chrome/firefox/IE8+(包括IE8)等浏览器。

具体使用文档请参考官网:http://dragsort.codeplex.com/

ApiDebug-接口调试插件-ApiDebug is a browser plug-in for testing RESTful web services.

ApiDebug是用于测试RESTful web服务的浏览器插件。它也可以用于测试其他HTTP请求。支持接口调试(POST,GET),支持JSON、XML和其他参数。

如果不能在线访问chrome网上应用商店安装,可以下载离线版本,下载地址见下面的github地址。

更多介绍请参考:github

Velocity中Velocity和VelocityEngine的区别

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。

当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只 关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提 供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。

在我们使用velocity的过程中,使用方式有二种

闭包-Closure

闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的创建方式,就是在一个函数的内部创建另外一个函数。


createComparisonFunction (propertyName){  
    return function (object1,object2) {  
        var value1 = object1[propertyName];//*  
        var value2 = object1[propertyName];//*  
        if (value1 < value2) {
                return -1;
 

计算机机械硬盘的结构和工作原理

学习操作系统的文件系统必须要了解一下计算机的硬盘的结构和工作方式,否则,对存取效率等问题不能很好的理解,今天学习了一下机械硬盘的结构和原理,在这里和大家分享一下。

由上图所示,机械硬盘主要由以下几部分组成:机械手臂(Boom),磁头(Head),转轴(Spindle),盘片(Platter)组成,在实际应用中又将盘片分成了磁道(Track),扇区(Sector)和柱面(Cylinder),下面就分别介绍一下这些组成部分。

nginx配置location总结

一个示例:
location  = / {
  # 精确匹配 / ,主机名后面不能带任何字符串
  [ configuration A ] 
}

location  / {
  # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求
  # 但是正则和最长字符串会优先匹配
  [ configuration B ] 
}

location /documents

Javascript几种实现继承方式

许多OO语言都支持二种继承方式:

  • 接口继承和实现继承。
  • 接口继承只继承方法签名,而实现继承则继承实际的方法。

由于JavaScript函数没有签名,在ECMAScript中无法实现接口继承,ECMAScript只支持实现继承,JavaScript中的继承主要是依靠原型链来实现的。

1:原型链

思想:利用原型让一个类型继承另一个引用类型的属性和方法。每个构造函数都有一个原

ThreadLocal 是如何保证线程安全

ThreadLocal本身并没有承担存储每个线程中的数据的职责,它是通过操作每个线程内部的一个“副本”-ThreadLocalMap来实现线程之间的隔离,从而保证了线程安全。

首先我们查看一下Thread类的源码:

/* ThreadLocal values pertaining to this thread. This map is maintained by the ThreadLocal class. */  
ThreadLocal.ThreadLocalMap threadLocals = null;

Thread类中有一个ThreadLocalMap类