程序员最艰巨的十大任务
by ourjs keys 心得体会 1386897959000

程序员最艰巨的任务跟编写代码没有多少关系。编码是逻辑思路的一种实践,这跟程序员日常工作中的其它任务比起来相对简单。如果你认为自己还是一个水平一般的程序员,在你真正的能进入到高手行列前,请确保你已经克服了下列晋级的障碍。

1. 解释你在干什么

解释软件开发过程是一个很困难的事情。那些非程序员职业的人也许知道很多关于编程的事情,但很显然,他们不会编程。对于他们来说,我们的生活就是在一间黑暗的屋子里趴在键盘前消耗着咖啡。

你会在你的朋友、家人和同事中遇到这样的人,他会认为编码不是一个正确的职业

2. 形象的说出软件解决方案

根据一些简短的需求——通常是一知半解的,你需要设计出数据结构,软件架构,代码算法,通信协议,以及其它所有针对商业问题的解决方案各种组成部分。然后你需要用一种外行人听的懂的术语将它们表达出来,并需要在规定的时间里提交给客户。

3. 评估工期

这是程序员痛苦的根源。在开发任务没有完成之前,你是绝对没有可能确定完成这个任务需要的时间。也许程序跟以前写的很相似,但环境变了,问题变了,限制条件变了。

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> 参数,而单独写提交信息
一个人称代词引发的论战: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社区损失一员大将。

编写更好的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。

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

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

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


 近期热门 - 点击最多
  1. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  2. Springboot+Gradle+Mysql+Jpa最简单实例教程
  3. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  4. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  5. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法
  6. TypeScript定义数字范围类型即仅包含【小时:分钟】的时间类型,每天指定时间点执行任务
  7. 比较测试:用百度文心一言和阿里通义千问写删除文件目录并且是async/await代码
  8. node.js使用TensorFlow入门教程二:什么是张量神经网络运算与矩阵的关系及基本入门代码
  9. node.js使用TensorFlow入门教程一:简介及工作原理环境安装及初始化
  10. node.js用saml2连接Identity Provider服务器完成Azure AD/Active Directory域帐号身份认证

  全端社区 - 最新回复
  1. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  2. Springboot+Gradle+Mysql+Jpa最简单实例教程
  3. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  4. Paddle/abbyy等ocr比较:如何将图片生成可选择文字版PDF
  5. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  6. 如何用JavaScript获取某个元素copy selector的CSS选择器
  7. 青否数字人5.0上线,支持真人接管实时驱动!
  8. 遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!
  9. 比fs.watch更加优秀的Chokidar文件变化检测库
  10. HTML页面嵌入部分使用Vue3,在jQuery应用中用类似Vue2使用Vue3

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

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

OnceOA