看了软件的介绍, QQ 空间的程序员转战 GitHub 了。我给加点弹幕吧,方便大家看:
继优秀作品 shearphoto 截图插件,本人又再推出国产山寨 JQUERY ,
我很 NB ,这已经不是我的第一个优秀作品了。(老王卖瓜,自卖自夸)
为什么我要开发一个山寨 JQUERY ?老实说我从来没用过 JQUERY ,正因为我反感JQUERY 。 为什么我反感,因为我完全有开发 JQUERY 的能力, JQUERY 的底层我都了如指掌。
我很反感 JQUERY ,因为我完全有开发 JQUERY 的能力。(连正确拼写 jQuery 的能力都没有)
我开发插件一直都是用原生 JS ,大家可以看下我前面的作品 shearphoto 就是用原生 JS 写的。
用原生 JS 的程序员,就是看不起你们用 jQuery 的。
虽说我反感 JQUERY ,但是 JQUERY 却在前端界占有大量的用户份额,之后我有个想法,不如重新开发一个属于自己思想,自己架构的 JQUERY 。有了想法就要实现我山寨 JQUERY 之路
但是,用 jQuery 的小白太多了,所以,我自己山寨一个。
我给了他一个霸气的名字: MingGeJs ,
没感觉很霸气啊。(明哥 JS ?)
MingGeJs 是什么?它是我一个星期完成的作品,它是一个 JS 类库,它拥有和 JQUERY 相同的语法,相同函数,相同的函数用法, 但是动画,选择器性能,函数 效率都在 JQ 之上,同时兼容 IE 6 7 8 ,同时与 JQUERY 相兼容
我很 NB ,一个周末——哦,看错了——是一个星期就完成了。(看来还是不够厉害)
它的名字叫 MingGeJs , MingGe 就是我的大名, 一看到插件名字,就知道作者是我,知道它是国产的,让别人知道国产类库一样做得很出色,出众
(我看了插件名字,怎么也不知道是你呢。后面语句倒是实话,看到名字,就知道是国产的)
本人文化程度不高,初中毕业!半句英文都不会,但是我相信只要肯努力一样可以实现自己的梦想。
比尔盖茨,乔布斯之流,根本没法和我比。他们都是大学辍学,而我初中就不上了。
MingGeJS 的梦想有点大胆,就是在全球范围内,占据 JQUERY 百分之 50 以上的用户份额。 MingGeJs 已在 GIT 开源,欢迎各路前端高手对 MingGeJs 类库进行评测!
(刚才特意去看了 Zepto.js 的介绍,好像也没有这么说)
我是 mingge 请支持国产 minggeJS 类库,因为我们都是中国人。
前面唧唧歪歪说那么半天,归根结底还是,不转不是中国人。
既然真么厉害,那就先膜拜一下吧。
果然厉害, QQ 还是 VIP 的。
地点 dalian ,这个单词好像是“大连”。
neusoft 呢,东软。
让它结束吧:issue#186
1
justjavac OP 刚刚手贱,点开了源码
``` /* MingGEjs 框架 1.6 * * 你会用 JQUERY ,那你也会用这个框架,语法都是一样的! * * MingGejs 选择器的执行速度,是 JQUERY 的十倍以上,绝对排行世界尖端 * * 作者:明哥先生 --QQ399195513 QQ 群 461550716 官网 www.shearphoto.com */ ``` |
2
vitovan 2015-12-14 09:28:37 +08:00 1
|
3
ooTwToo 2015-12-14 09:28:59 +08:00
233333 地址栏的 ID 亮了
|
4
hussion 2015-12-14 09:29:53 +08:00
已醉
|
5
heian0224 2015-12-14 09:32:10 +08:00 via Android
看了下,有点像 jQuery 啊,有大牛看看他的选择器比 sizzler 比咋样?
|
6
ooTwToo 2015-12-14 09:32:17 +08:00
感觉还是有点实力的。
|
7
polandeme 2015-12-14 09:32:38 +08:00
这不是 叶良明 吗....
|
8
kassadin 2015-12-14 09:34:08 +08:00
就是 QQ 的锅咯
|
9
unique 2015-12-14 09:34:42 +08:00
噗,已醉。。
|
10
elya 2015-12-14 09:35:05 +08:00
我为什么想起了叶良辰???
|
11
lizheming 2015-12-14 09:41:10 +08:00
@heian0224 https://github.com/drduan/minggeJS/blob/master/MingGe_1.6.js#L631
道理我都懂,可是用了 `querySelectorAll` 是怎么敢保证说兼容 IE6,7,8 的... 反正我是没看到有这个函数的定义... |
12
skylancer 2015-12-14 09:42:08 +08:00
这个所谓 MingGe 的语文老师也是死的比较早.. 你看 Readme 就疯了
|
13
Unknwon 2015-12-14 09:44:18 +08:00
> 我是 mingge 请支持国产 minggeJS 类库,因为我们都是中国人。
看到这种词直接 block 项目。。 另外,当大家都是小学生吗 0 0 哈哈哈哈哈哈哈哈......... |
14
wangyun122 2015-12-14 09:46:37 +08:00
进了官网 还在论坛看到这个。。槽点也很多
http://www.shearphoto.com/bbs/forum.php?mod=viewthread&tid=2&extra=page%3D1 |
15
theoractice 2015-12-14 09:47:17 +08:00
shearphoto 做得不错啊。
|
16
hronro 2015-12-14 09:49:41 +08:00
这个确实是溜到不行,虽然没看他的代码写的怎样,但我真的想笑
|
17
jin5354 2015-12-14 09:50:56 +08:00 1
学会了新姿势,不 star 不是中国人!
|
18
nimingyonghu 2015-12-14 09:51:31 +08:00 5
https://raw.githubusercontent.com/drduan/minggeJS/master/MingGe_1.6.js
作者对原生 js 的函数,事件模型,DOM 操作,事件监听器机制都是有一定了解的,代码方面也没有 tab 和空格混用,还配有规范的注释,逻辑也是很清晰,目测甩 iV2EX 上大部分水逼几条街吧. |
19
lizheming 2015-12-14 09:52:06 +08:00
各位…… PR 也有亮点…
|
20
lizheming 2015-12-14 09:53:38 +08:00
@nimingyonghu 前面 8 行那个注释就叫..... 规范……的……注释……了?
|
21
sox 2015-12-14 09:53:45 +08:00
@nimingyonghu 规范的注释?你是指开头的介绍吗。。
|
22
TTry 2015-12-14 09:54:01 +08:00
以下内容截取自 @wangyun122 分享的链接:
“//取回相对路径,不懂原理的话,你不要改动哦,否则你又鸡巴痛了” “//后端处理地址,保证正确哦,这是常识,连这个地址都能写错,你就是菜 B ,已经在本版本中帮你加入相对路径,你基本不用改这里了” “//比例截图, JS 端也要相应设置哦,不然系统会给你抱出错误,不设比例填 0 ,如填比例 : 3/4 代表宽和高的比例是 3/4(3 除以 4 的意思懂吗,菜菜,你可直接填 0.75 ,没错)” 虽然你写的是不错但是面对这个注释我该用什么表情才好...... |
23
jjplay 2015-12-14 09:55:06 +08:00 1
吐槽归吐槽,但是不要嘲讽,我很佩服也很支持这样做的人,上面说的 querySelectorAll 的兼容问题 他在开头里写了 ifQuery 是不是为了兼容... 我也是粗略的看了看
|
26
Mcatt 2015-12-14 09:58:38 +08:00
> 它是一个 JS 类库,它拥有和 JQUERY 相同的语法,相同函数,相同的函数用法, 但是动画,选择器性能,函数 效率都在 JQ 之上,同时兼容 IE 6 7 8 ,同时与 JQUERY 相兼容
跑个分?贴一下跟 jQuery 速度比较的结果图? |
28
justjavac OP @sox PR 太亮了
#1 https://github.com/drduan/minggeJS/pull/1/files - return system.insertHTML.aply(this, arguments); + return system.insertHTML.apply(this, arguments); aply ---> apply |
29
justjavac OP #2 https://github.com/drduan/minggeJS/pull/2/files
elem[on + "eveName"] = null; elem["on" + eveName] = null; |
30
daben1990 2015-12-14 10:04:39 +08:00
cmdFun: function(cmd) {
cmd = D.trim(cmd); switch (cmd) { case "外前": case "beforeBegin": cmd = "beforeBegin"; break; case "外后": case "afterEnd": cmd = "afterEnd"; break; case "内前": case "afterBegin": cmd = "afterBegin"; break; case "内后": case "beforeEnd": default: cmd = "beforeEnd"; break; } return cmd; }, 这段代码,碉堡啊。。。 |
31
oott123 2015-12-14 10:05:33 +08:00
目瞪口呆
目瞪口呆 x2 目瞪口呆 x3 |
32
whwei 2015-12-14 10:05:41 +08:00
谁能告诉我他为什么要“开发一个山寨 JQUERY ”,读了 3 遍没看懂。
|
33
banri 2015-12-14 10:07:51 +08:00
就想知道十倍性能是怎么得出的………………
看了下源码还是蛮好理解的,但似乎没有 jQuery 那样的模块化支持机制、传让$以及插件接口 没怎么仔细看,感觉除了中二了点也没什么吐槽的地方,技术感觉还是可以的 |
34
fuxiaohei 2015-12-14 10:09:18 +08:00
还是 jQuery Lite 的感觉,还差好多东西
还是要支持一下 |
35
lizheming 2015-12-14 10:09:36 +08:00 1
@jjplay 并不是,整个代码几处出现的 ifQuery 都没有对这个 selector 进行补完,而且 selector 内部实现也没有这个判断。
|
37
zkd8907 2015-12-14 10:11:04 +08:00
QQ 空间什么鬼?
|
38
overtrue 2015-12-14 10:17:08 +08:00
已经笑晕了,谁来救救我。。。
|
40
crs0910 2015-12-14 10:23:37 +08:00
阿里一群人在 pull request
|
41
denghongcai 2015-12-14 10:24:34 +08:00
PR 里四个淘宝的前端真是够了 233333
|
42
yxaaa123 2015-12-14 10:24:41 +08:00
这么狂容易被虐
|
44
wdhwg001 2015-12-14 10:30:32 +08:00
看了两分钟代码。
第 95 行: model = "string" == typeof model && /^linear$|^ease$|^ease-in$|^ease-out$|^ease-in-out$|^cubic-bezier\s?\(.+\)$/.test(model) ? model: "ease-out"; 第 409 行: var of = typeof parameter; if (of === "string") return '"' + parameter + '"'; if (of === "number") return parameter; var types = this._type_(parameter); if (types === "[object Object]" || types === "[object Array]") { return false; } @nimingyonghu 长到 1080P 都显示不全的渣正则和 if 后面不加大括号也算是你所谓的逻辑很清晰吗( 不过不得不承认,这样的代码质量能凑合着写 1k+行不崩逻辑重来也算是天才了。 |
45
ynyounuo 2015-12-14 10:34:00 +08:00
PR 笑死个鬼的了呀………………
+1 +1 +1 哈哈哈哈哈哈 |
46
crs0910 2015-12-14 10:34:07 +08:00
还是表示佩服
|
47
usb 2015-12-14 10:42:16 +08:00
哈哈哈哈 不 star 不是中国人😂
|
48
bzw875 2015-12-14 10:44:46 +08:00
比我厉害, star +1
|
49
wdhwg001 2015-12-14 10:49:36 +08:00
第 1253 行:
return document.createElement("canvas").getContext("2d") ? true: false; @oott123 目瞪口呆×3 我还真恶趣味居然又看了两分钟代码… |
50
imdoge 2015-12-14 10:53:27 +08:00
@daben1990
虽然不知道这代码是什么鬼(还带中文的。。) commit 一下是不是能成为贡献者 cmdFun: function(cmd) { cmd = D.trim(cmd); var result = { "外前": "beforeBegin", "beforeBegin": "beforeBegin", "外后": "afterEnd", "afterEnd": "afterEnd", "内前": "afterBegin", "afterBegin": "afterBegin", "内后": "beforeEnd", "beforeEnd": "beforeEnd" } return result[cmd] || "beforeEnd"; } |
51
Phariel 2015-12-14 10:57:07 +08:00 via iPhone 1
// 请在看到这行注释后三分钟内 star ,你就会有好运发生。。。
|
52
hkongm 2015-12-14 11:16:09 +08:00
笑死了
|
53
leeyuzhe 2015-12-14 11:25:10 +08:00
佩服,比我厉害
|
55
johnhsm2333 2015-12-14 11:37:32 +08:00
语文老师死的早,描述写出来就是打算让人家笑的。而是说去描述这一个项目,所以才会给大家笑。
踏实做人才是真。 |
56
yxzblue 2015-12-14 11:44:36 +08:00
看了下源码, JS 水平在我之上,我就不评价了...
|
58
gulullu 2015-12-14 11:55:31 +08:00
和作者在一个群,链接已发,貌似在开源中国也被喷了, 2333
|
59
hyuwang 2015-12-14 12:04:20 +08:00
这种...充满了槽点却无力吐槽的感觉
shearphoto 写的真不错啊 ( QQ 空间版王垠的既视感。。。) |
60
oott123 2015-12-14 12:04:31 +08:00
@imdoge
cmd = D.trim(cmd); var translation = { "外前": "beforeBegin", "外后": "afterEnd", "内前": "afterBegin", "内后": "beforeEnd" }; return translation[cmd] || cmd; |
61
sahrechiiz 2015-12-14 12:17:41 +08:00
看代码就好 其他的只是行为艺术
|
63
bramblex 2015-12-14 12:28:40 +08:00
我基友也写了一个,没有用正则,兼容到 ie6 。 https://github.com/icymorn/morn-js
|
64
codespots 2015-12-14 12:31:34 +08:00
我靠,这是我们的群里的前成员带带大神啊,哈哈哈哈,火钳刘明!
|
66
lolqqdd 2015-12-14 12:49:04 +08:00 5
|
67
SCaffrey 2015-12-14 12:50:41 +08:00
这并不是大连人的真正水平
|
68
kimown 2015-12-14 12:51:38 +08:00
比我强
|
69
adamwang 2015-12-14 12:53:45 +08:00 2
难道只有我一个人第一眼看成了 Dr.Duang 吗。= = #
|
70
yernsun 2015-12-14 13:00:35 +08:00
http://www.shearphoto.com/bbs/forum.php?mod=viewthread&tid=21
不是 QQ 空间的程序员么?怎么失业了? |
71
bramblex 2015-12-14 13:01:24 +08:00
其实下面喷的人水平都不见得比这货好……
|
72
bk201 2015-12-14 13:08:14 +08:00
程序员中的凤姐?
代码先不说,就意义来讲毫无意义的轮子。 |
73
movtoy 2015-12-14 13:17:43 +08:00
有直播写代码的水平。。
“口才好” |
74
nareix 2015-12-14 13:24:08 +08:00
技术是不错,但一直不是很理解这类人的做法。现在英语已然是开源项目的唯一语言了,既然这么想当世界第一,花点时间学下程序员够用的英语很难么,难度还没四级大,又不是考托福雅思。
如果 linux 邮件列表强制用芬兰语沟通,还有今天么。 |
76
cYcoco 2015-12-14 13:28:37 +08:00
看不懂 JS 。。顶一个
|
77
magicdawn 2015-12-14 13:33:12 +08:00
多弗朗明哥~
次回, 霸王 v.s 霸王, 霸气的对决 |
78
leizongmin 2015-12-14 13:40:39 +08:00
此贴必火,广告位招租
|
79
aalska 2015-12-14 13:41:18 +08:00 via Android
看不懂 js 。 不过感觉很牛逼
|
80
branchzero 2015-12-14 13:41:30 +08:00
readme 一股中二气息啊,不过看了 js ,水平不低啊。
还有 PR 里面几只 A 家的前端是什么节奏 2333333 |
82
yangxiongwei 2015-12-14 14:00:19 +08:00
|
83
g0thic 2015-12-14 14:09:44 +08:00
```
find: function(Z) { var elem, i = 0, newD = new D(), R; if (R = optionColation(Z)) { while (elem = this.ObjArray[i++]) { circulateNode.call(newD, elem, R); } newD.ObjArray = removing(newD.ObjArray); } return newD; }, ``` 看了几行,本人 js 渣渣, if while 判断里用一个 = 还是第一次见,求大神解释 |
84
bramblex 2015-12-14 14:12:42 +08:00
@branchzero 但也不高啊……造这种东西其实大部分都是体力劳动,脏活累活
|
85
w88975 2015-12-14 14:22:19 +08:00
@Troevil
return document.createElement("canvas").getContext("2d") ? true: false; 这个函数名叫 "isHTML5" 用这种方式判断确实没错啊 至于你说的 return if (a == true)并不存在 因为 document.createElement("canvas").getContext("2d")返回的并不是一个 bool 值 |
86
oott123 2015-12-14 14:28:31 +08:00
@g0thic 这个倒是没什么问题……相当于 R = optionColation(Z); if (R) ,只不过这么用有点别扭就是了……
|
87
wdhwg001 2015-12-14 14:28:33 +08:00 2
@w88975
先不说为何不用!!document.createElement("canvas").getContext("2d") 也不说?true:false 是一个多么令人震撼和难忘的用法 最基本的,如果 getContext 压根就是 undefined 的话,又该如何做到调用它呢… 我输了,我居然在纠正这个… |
88
oott123 2015-12-14 14:29:18 +08:00
@w88975 其实可以写成 return !!document.createElement("canvas").getContext("2d") 的……
|
89
yolio2003 2015-12-14 14:40:27 +08:00
好恶心
|
91
justjavac OP |
92
justjavac OP |
93
branchzero 2015-12-14 14:46:05 +08:00
@bramblex 会造轮子也比这里不少猴子水平高啦,虽说大部分是脏活累活,不过这也需要一些基础积累,还得考虑很多细节上的问题:)
|
94
bramblex 2015-12-14 14:49:20 +08:00
@branchzero ╮(╯_╰)╭,那只能说明这里猴子的水平比较低……我基友去年也造了一个,真·支持到 IE6 的轮子,而且性能真·比 Jquery 高一点点。
|
96
Email 2015-12-14 14:57:06 +08:00 1
服!! |
97
neoblackcap 2015-12-14 14:59:27 +08:00
淘宝的前端太凶残了,作者快被玩坏了
|
98
testisitok 2015-12-14 15:01:17 +08:00 via Android
如果真是初中毕业,能做到这水平,的确令人佩服
|
99
suikator 2015-12-14 15:03:36 +08:00 via Android
@w88975
return !!(document.createElement('canvas').getContext && document.createElement('canvas').getContext('2d')); |
100
Lcys 2015-12-14 15:04:35 +08:00
我只听说过 GS.js
|