PayPal为什么从Java迁移到Node.js,性能提高一倍,文件代码减少44%
by ourjs keys 技术前沿 1386812656000

大家都知道PayPal是另一家迁移到Node.js平台的大型公司,Jeff Harrell的这篇博文 Node.js at PayPal  解释了为什么从Java迁移出来的原因: 开发效率提高一倍(2个人用更少的时间干了5个人的活), 性能提高一倍, 代码量减少33%, 文件减少44%:

(小编: 个人认为深层次原因是Java正在越来越走向封闭,而且变得越来越复杂而且oracle正在对Java收费,参见: Oracle计划发布收费版JVM , 这促使了越来越多的公司加入了去Java化的队伍)

外面有很多人说PayPal正在迁移到node.js平台。我很高兴地在这里宣布,传言是真的,我们正在从Java迁移至node.js

由于历史原因,我们的工程师一直分为两拨人,一拨在浏览器上写代码(HTML,CSS,JavaScript);另一拨用Java写应用层的代码。想象一下,一个写HTML的不得不去叫一个写Java将A/B两个页面链接到一起吗?我们正在这样干,我们称这样的人为全端工程师,那些即可以设计精美界面和服务器后台的那些人。现在前后端已经没有界限了,这曾经是阻碍PayPal发现的一个很大的瓶颈。

Node.js帮助我们将前、后端合二为一,现在我们一个全端团队即可解决用户的所有问题。

代码审查:写出好的 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> 参数,而单独写提交信息
JavaScript专业八级测试,你能做对几道?
by ourjs keys 求职面试 1392214753000
OurJS注* 本文翻译自JavaScript Puzzlers! do you really know JavaScript? (JavaScript迷题!你真的懂JavaScript吗?) 。本文考察了很多JavaScript中生僻冷门用法和许多容易忽视混淆的概念,据多名Hacker News网友回复,做第二遍依然无法全部答对,jser专家们可以尝试一下。
编写更好的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);
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。

Linux应该作为基础教育的一部分
by ourjs keys 行业动态 1392002046000
强制学生使用Window应该是合法的犯罪,学生要么付钱,如果他们付不起,他们只能使用盗版软件,这是他们不得不使用盗版的其中一个根本原因。这种强迫学生的事情发生在世界各地,甚至没有人在意。 Linux应该是学校教育的基础,学生应该有选择的权利。
微软花费了大量的资源来维持其全球垄断地位,并从一开始就整合进教育系统,垄断和腐蚀着年轻一代,他们没有认识到这对他们的将来会有多少大的损害。
用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 开发者与日益增多的连接设备联系起来,甚至还有人想利用连接设备改变网站后端开发环境

长时间工作意味着什么
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. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. 在无管理员权限的情况下,使用安装Python补全pip临时配置环境变量;即零权限使用node.js/npm
  2. Python鉴权方法:Depends 依赖注入;装饰器;与基于Proxy模式的Session状态管理自动计算脏属性;将用户数据存储在Redis中
  3. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  4. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  5. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  6. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  7. Node.js 打印vite react+go项目目录树
  8. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  9. Windows与Mac通过git ssh和rsync实现文件共享互传
  10. Windows与Mac通过git ssh和scp实现文件共享互传

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

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

OnceOA