一看就是好代码的代码(不断更新中)

缓存

function repush(array, item) {

// 对存在的item,更新到最后

// 用ii加速for循环

for (var i = 0, ii = array.length; i < ii; i++)

if (array[i] === item) {

return array.push(array.splice(i, 1)[0]);

}

}

function cacher(f, scope, postprocessor) {

// f是生成缓存的函数

// scope是f的域

// postprocessor是处理旧缓存的函数

// --------------------------------------

// 1e3是lru队列的量,用短路方法(&&)执行

function newf() {

var arg = Array.prototype.slice.call(arguments, 0),

args = arg.join("\u2400"),

cache = newf.cache = newf.cache || {},

count = newf.count = newf.count || [];

if (cache.hasOwnProperty(args)) {

repush(count, args);

return postprocessor ? postprocessor(cache[args]) : cache[args];

}

count.length >= 1e3 && delete cache[count.shift()];

count.push(args);

cache[args] = f.apply(scope, arg);

return postprocessor ? postprocessor(cache[args]) : cache[args];

}

return newf;

}

兼容amd cmd export

(function(root, factory) {

if (typeof define === ‘function‘ && define.amd) {

define([], factory);

} else if (typeof exports === ‘object‘) {

module.exports = factory();

} else if (typeof define === "function" && define.cmd) {

define(function(require, exports, module) {

module.exports = factory();

});

} else {

root.Sword = factory();

}

}(this, function() {

}))

时间: 2024-10-12 14:55:21

一看就是好代码的代码(不断更新中)的相关文章

看别人写的优秀代码,是对自己的一种提高,看别人写的很恶心的代码,对自己也是一种提高:告诉自己不要这样写(转)

这两天,我做了两件事: 1.重构了系统某个模块的部分代码: 花了一天时间,一个6k多行的java文件,搞到4k行加若干个类文件,恕我能力有限,后面的实在重构不下去了,那是一种3个domain属性名几乎一样100多个字段但是却用同一个copy了三遍的方法来处理的欲哭无泪,那是一种使劲滚鼠标滚轮都滚不到一个方法尾部的绝望(100多个字段的几个类属性equals来,equals去,get来,set去的,这样类型的方法有那么五六个,你说能不多吗)...... 2.做了一个日志处理的小工具: 客户要求把日

Java Core 学习笔记——3.char/Unicode/代码点/代码单元

通用字符集(UCS) UCS是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所制定的标准字符集. UCS包括了其他所有的字符集(包含了已知语言的所以字符). ISO/IEC 10646定义了一个31位的字符集(首位恒定为0,占用4字节). Unicode(万国码.国际码.统一码.单一码) 编码方式: Unicode编码空间从“U+0000”到“U+10FFFF”(共1112064个码位),Unicode的编码空间划为17个平面,每个平面包含216(65536)个码位.17

eclipse实现代码块折叠-类似于VS中的#region……#endregion

背 景 刚才在写代码的时候,写了十几行可以说是重复的代码: 如果整个方法或类中代码多了,感觉它们太TM占地方了,给读者在阅读代码上造成很大的困难,于是想到能不能把他们“浓缩”成一行,脑子里第一个闪现出的就是Visual Studio中的#region和#endregion. 没有用过VisualStudio的朋友可以先看看#region和#endregion在代码整理上的效果: 打开第二个方法看看折叠的代码块内部: 如果在eclipse中也可以像这样实现自定义的代码块折叠,那感觉多清爽啊,网上找

学习Git的一点心得以及如何把本地修改、删除的代码上传到github中

一:学习Github的资料如下:https://git.oschina.net/progit/ 这是一个学习Git的中文网站,如果诸位能够静下心来阅读,不要求阅读太多,只需要阅读前三章,就可以掌握Git的常用命令. 二:学习Git中远程仓库的问题: Git的远程仓库:就是管理你代码的地方,这个是Github中提供的有,只要你在Github中注册一下你就可以获得无限个Git的远程仓库. 我的Github中的远程仓库如下图所示: 对远程仓库我首先理解为:在Gitbash中敲一个命令:Git init

Android 代码实现查看SQLite数据库中的表

前言 以前写PHP的时候,内置了print_r()和var_dump()两个函数用于打印输出任意类型的数据内部结构,现在做Android的开发,发现并没有这种类似的函数,对于数据库的查看很不方便,于是就写了一下查看数据库表的方法代码. 代码实现 import java.util.Arrays; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteData

Scala 深入浅出实战经典 第51讲:Scala中链式调用风格的实现代码实战及其在Spark中应用

王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2土豆:http://www.tudou.com/programs/view/5uuKOP38d6s/优酷:http://v.youku.com/v_show/id_

抓取天涯文章的蜘蛛代码,刚经过更新(因为天涯页面HTML代码变化)

#_*_coding:utf-8-*- import urllib2 import traceback import codecs from BeautifulSoup import BeautifulSoup def openSoup(url,code): page = urllib2.urlopen(url) soup = BeautifulSoup(page,fromEncoding=code)#,fromEncoding="gb2312" #soup = BeautifulSo

用Handler的post()方法来传递线程中的代码段到主线程中执行

自定义的线程中是不能更新UI的,但是如果遇到更新UI的事情,我们可以用handler的post()方法来将更新UI的方法体,直接传送到主线程中,这样就能直接更新UI了.Handler的post()方法就是将Runnable中的代码段传送到主线程. 布局文件就是个textView,我就不贴了. 全部代码 package com.kale.handler; import android.app.Activity; import android.graphics.Color; import andro

Scala 深入浅出实战经典 第48讲:Scala类型约束代码实战及其在Spark中的应用源码解析

王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2 技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群 DT大数据梦工厂① :462923555 DT大数据梦工厂②:437123764 DT大数据梦工厂③

通过限时写代码,优化代码的方式。

1.通过限时写代码,优化代码的方式. 1.containerView ->frame:self.window.bounds containerView.frame = self.window.bounds 初始化窗口跟window一样大 2.命名:View:containerView label:userNameLabel 3.内存管理:1.View ->alloc —>对应着有一个release 4.window的内存管理: 1.把strong改为retain 2.重写dealloc方