ourjs

编写更好的jQuery代码的建议
by ourjs keys JS学习 1386638858000

讨论jQuery和javascript性能的文章并不罕见。然而,本文我计划总结一些速度方面的技巧和我本人的一些建议,来提升你的jQuery和javascript代码。好的代码会带来速度的提升。快速渲染和响应意味着更好的用户体验。

首先,在脑子里牢牢记住jQuery就是javascript。这意味着我们应该采取相同的编码惯例,风格指南和最佳实践。

首先,如果你是一个javascript新手,我建议您阅读 《JavaScript初学者的最佳实践》 ,这是一篇高质量的javascript教程,接触jQuery之前最好先阅读。

当你准备使用jQuery,我强烈建议你遵循下面这些指南:

缓存变量

DOM遍历是昂贵的,所以尽量将会重用的元素缓存。

// 糟糕
h = $('#element').height();
$('#element').css('height',h-20);

// 建议
$element = $('#element');
h = $element.height();
$element.css('height',h-20);
代码审查:写出好的 commit message
by ourjs keys 编程技巧 1386724567000

为什幺要关注提交信息

  • 加快 Reviewing Code 的过程
  • 帮助我们写好 release note
  • 5年后帮你快速想起来某个分支,tag 或者 commit 增加了什么功能,改变了哪些代码
  • 让其他的开发者在运行 git blame 的时候想跪谢
  • 总之一个好的提交信息,会帮助你提高项目的整体质量

基本要求

  • 第一行应该少于50个字。 随后是一个空行 第一行题目也可以写成:Fix issue #8976
  • 喜欢用 vim 的哥们把下面这行代码加入 .vimrc 文件中,来检查拼写和自动折行
autocmd Filetype gitcommit setlocal spell textwidth=72
  • 永远不在 git commit 上增加 -m <msg> 或 --message=<msg> 参数,而单独写提交信息
一个人称代词引发的论战:Joyent宣布Ben退出Node.JS开发
by ourjs keys 大话编程 1386661763000

作为一个开源项目,Node.js以及相关项目都是由社区和志愿者共同维护的,任何的改动都会引发大家的讨论,尤其是现在Node.js在软件行业 中用的越来越广,但是,5天前的一个Pull Request请求被拒绝引发了轩然大波,整个事件的起因是有人希望在注释中使用“them”替换“him”,减少具有性别歧视的内容。

Rackspace员工Alex首先提交了一个pull request请求,希望把libuv(node.js所依赖的库)注释中的“him”修改为“them”,大家对这样一个看似无关紧要的请求各持不同的意见,最终libuv的主要贡献者之一、StrongLoop联合创始人Ben Noordhuis拒接了Alex的请求。

随后事件开始升级,大家讨论的中心转向了具有性别指向的名词对于女性权利的侵犯,对于请求被拒绝,Alex表示十分困惑:

尽管这是一个微不足道的变化,但我还是很遗憾听到这个消息,我想不明白你为什么没有合并它。花费几秒钟时间按下一个“合并”按钮进而减少敌对的行为难道不是值得吗?

随着Alex支持者越来越多,Joyent员工、Node.js负责人Isaac开启了一个新的Pull Request,确认从现有的代码中替换具有性别指向的人称代词。

随后,Node.JS官网宣布: Ben Noordhuis 决定退出Node.JS核心开发团队,不再为Node.JS贡献代码,node社区损失一员大将。

Python不可维护?终于把一个8万行的Python程序用Java重写了
by ourjs keys 技术前沿 1386553727000

水木社区上出现了一个贴子:终于把一个8万行的Python程序用Java重写了

争论主题: Python写大型系统是否缺乏可维护性。

正方: Python真可怕,非常容易被滥用,不适合写X万行以上的代码,写大型系统还得Java这样的正规军来。

反方: 用不好就说语言不好,而且Java省代码也不符合常识,Java束缚性太强,不适合喜欢自由的程序员;这其实是一个工程问题,如果再用Python重写的话会比Java写出的要精简的多得多得多。

贴子内容

在噩梦般地维护了一年多一个8万多行的Python程序之后,终于争取到机会把这个破烂玩
意用Java重写了一遍,大概是4万行Java左右。说说效果吧:
1. 从过去平均每周down一次,到现在连续运转近半年只down过一次。
2. 节省超过80%的cpu和内存
3. 代码多了很多功能,过去无数因为系统太复杂无法实现的功能现在都能简单清爽地实现
了。
4. 单元测试真管用了,不是过去那种把代码反过来写一遍的滥用mock了
前后代码都是同一个team写的,写代码的人都不是菜鸟(顶级公司的核心团队)区别只有
语言和几年的经验积累。
总结一句话就是:动态语言滥用起来真是可怕  
珍惜生命,远离Python。

用JavaScript玩转物联网:Technical Machine获100万美元融资,打造Tessel微处理器
by ourjs keys 技术前沿 1386383338000

在由 True Ventures、Slow Ventures 与天使投资人领投的种子轮融资中,Technical Machine 获得了 100 万美元,这家今年新成立的公司位于波士顿,其创始人手里有一个名为Tessel的小巧项目,它致力于打造一个开发板,让懂 JavaScript 的你轻松玩转物联网。

Tessel 是一个能运行 JavaScript 的微处理器,趣味十足,藏于其背后的创业理念反映了一种新趋势。正如来自 Technical Machine 的 Kelsey Breseman 所言,Tessel 的目标是让网站开发者能够轻松玩转物联网。作为一个常用If This then That (IFTTT)来将网站应用与设备结合起来的人,我对此理念深信不疑。

无独有偶,Bechtel 的新兴技术部经理 Chris Matthieu 创立了被他称作是物联网即时通讯的Skynet项目,让人们用 Node.js 就能在网络上构建连接设备。再比如,IBM 的Node Red能让用户轻松掌控连接设备,弥补了应用于嵌入式系统中晦涩难懂的代码与开发者熟知的 JavaScript 语言之间的鸿沟。

用 Java 控制物联网显得太过臃肿,所以人们尝试通过新的编译器、对代码或中间设备的优化,让 Java 开发者与日益增多的连接设备联系起来,甚至还有人想利用连接设备改变网站后端开发环境

编程面试的10大算法概念汇总
by ourjs keys 求职面试 1386383543000

以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。本文将从Java的角度看问题,包含下面的这些概念:

1. 字符串
2. 链表
3. 树
4. 图
5. 排序
6. 递归 vs. 迭代
7. 动态规划
8. 位操作
9. 概率问题
10. 排列组合

1. 字符串

如果IDE没有代码自动补全功能,所以你应该记住下面的这些方法。

toCharArray() // 获得字符串对应的char数组
Arrays.sort()  // 数组排序
Arrays.toString(char[] a) // 数组转成字符串
charAt(int x) // 获得某个索引处的字符
length() // 字符串长度
length // 数组大小
创业Idea重要吗?如何看待创业想法被偷走
by ourjs keys 创业辛勤 1386293118000

一篇关于创业idea被copy的问答,可以看出绝大多数都认为Idea不重要。

创业idea被大佬「偷走」,创业者该愤怒么?
360推出儿童手环,此前据说周鸿祎以投资为名与某家创业团队的领导接触过,据信360儿童手环正是该创业团队的想法、运营模式等。
1、好的idea更重要?还是执行力更重要?
2、如果你是该创业团队负责人,你会愤怒么?

回答之一:

实事求是的讲,创业里面最不值钱的就是idea, 
先驱比较容易成先烈,
关键是做这个idea的人如何, 团队如何
团队才核心战斗力,团队的执行力够强,才能在试错的过程 中不断地调整方向……

我之前经营过的一个项目, 不到两个月时间模式就被人家全被copy过去了,而且网站内容一个字不差地全部copy过去,只要市场证明你的模式有效,就会有人抄,
所以如果你怕别人偷你的想法的话,你还是不要创业了,

长时间工作意味着什么
by ourjs keys 求职面试 1386218078000

在科研和设计部门经常有人会长时间工作,一周会超过70个小时。他们就像获得荣誉勋章的烈士一样。但我们要清楚一点,长时间工作其实意味着:你是在免费工作

即使你获得了薪水,但你还是在免费工作。因为每周工作40小时之后,你继续工作的话也不会让你的口袋多增加一分钱。

长时间工作不合理,也不可持续。

客户和老板会期望开发人员长时间工作。

允许长时间工作的公司的企业文化大有问题。

每周工作80-100个小时会毁掉一个人。这完全是不可持续不健康的,因此人们会辞职。他们辞职的时候,我敢保证,他们肯定会跟同事抱怨辞职原因。这样的话,有可能会引发严重的员工流失问题,更糟糕的是公司将不得不想方设法摆脱让员工过度工作的恶名。

长时间工作意味着领导力薄弱。

长时间工作是项目管理能力缺乏的标志。

我和共享软件的那些事:我赚到了十万块
by ourjs keys 挨踢职场 1386166481000

我们自己用了之后,觉得确实很方便,再也不用每过一段时间就要跑到电脑前面上架宝贝了,软件开在那里,基本上什么不用管,比以前省事多了。后来我们想,既然有用,别的卖家肯定也需要,于是我们把软件挂出来卖,70块钱一台机(绑定网卡),没想到反响不错,没过几天,卖软件的销售利润就比老婆卖银饰赚的还要多。

当我们卖这款软件时,市面上根本没有竞争对手,只此一家,别无分店。可是一个多月后,出现了许多模仿者,它们中一些,在销量上可能还超过了淘宝发布大王。即使如此,淘宝发布大王的销量也还是可以的,差不多每天能卖十来个授权,这对于当时的我来说,实在是一笔不菲的收入。大概是由于用的人越来越多,引起了淘宝网的注意,他们还曾派人电话采访了我,说要写一篇采访稿,记录淘宝网二次开发人员的创业情况,可惜的是,我一直没有见到那篇文章。

最后统计了一下,这个软件卖了超过十万元。说起来不多,但对于当时拿着几千元月薪的我来说,已经是一笔不小的数字了。靠着这笔钱,我终于拥有了属于自己的房子,开始了幸福的房奴生活。几年后,广州房价飙升,现在再次回想起来,可以说淘宝发布大王从一定程度上改变了我的人生轨迹

世界上最优秀的程序员同时也是活得最快乐的人
by ourjs keys 心得体会 1386112386000

Colin走到我的办公室门口叫我去看他最新的研究成果。他拆解了他的显示器切换器(用来在两台PC之间切换显示器的设备),拆开的设备就摊放在他 的桌子上。他用从RadioShack网站上淘来的部件重新组装了它,并用VB6开发了一套管理它的服务器和客户端程序,经过这样的改造,他实现当鼠移动 到屏幕边缘时显示器就能自动切换的功能。Colin在做这个项目时获得了很大的乐趣,并且正在变成我们团队里最强大的程序员。这发生在Arduino创建 之前一段时间,那时硬件Hacking的门槛还很高。VB6正在衰退,使用它的人被认为只能维护那些烂的LOB程序。从Colin身上,我看到了好的创造 者都会有的精神:享受创造的过程而不管使用什么样的工具。


 近期热门 - 点击最多
  1. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  2. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  3. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  4. Springboot+Gradle+Mysql+Jpa最简单实例教程
  5. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  6. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  7. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法
  8. TypeScript定义数字范围类型即仅包含【小时:分钟】的时间类型,每天指定时间点执行任务
  9. 比较测试:用百度文心一言和阿里通义千问写删除文件目录并且是async/await代码
  10. node.js使用TensorFlow入门教程二:什么是张量神经网络运算与矩阵的关系及基本入门代码

  全端社区 - 最新回复
  1. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  2. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  3. ReactNative获取Android/iOS的MAC/IP地址: react-native-device-info模块的安装与使用
  4. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  5. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  6. Springboot+Gradle+Mysql+Jpa最简单实例教程
  7. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  8. Paddle/abbyy等ocr比较:如何将图片生成可选择文字版PDF
  9. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  10. 如何用JavaScript获取某个元素copy selector的CSS选择器

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA