月薪一万元在北京过的是什么样生活 引用开始:薪一万在北京已经算是比较高的工资了吧!很多人的收入离这个关口还很远。话虽如此,但你可知道,在北京这样的城市,月薪一万能过什么样的生活呢?看完这个可能让你飙泪……
(一)每月到手收入计算
税前工资:10000元
(1)个人缴费
社保与公积金缴费明细:养老8%:800元;医疗2%:200+3元;失业0。2%:20元。
个税:应纳税额总计:4277。00,缴纳个税:322。70元。
个人缴费合计:2223。00
我为什么选择 D3.js 这不是一篇介绍D3的使用教程,而是只想说说我为什么选择使用D3,借以思考在面对新的技术的时候我该如何选择。
这段时间我在录制一门课程网页上的图表。录制课程前我调查了一下,应该用哪些工具/库来制作图表。可以确定的是,我要用svg来生成图表,而不是用html5中的canvas。开始采用的是Raphaël,一个用来创建和操作网页上矢量图形的javascript库。最开始偏向于使用Raphaël是因为之前看到的一个很漂亮的页面。在费了几天的时间,经过了很多挫折和参考资料没找到太多的情况下,做出了一个凑合的简单的图表。然后我退缩了,直到我发现了D3。
D3的缩写是Data Driven Documents,与Raphaël的关系:
相同点
都是用javascript写的针对矢量图的库
都可以对DOM节点进行操作,包括绘制,修改,添加动画效果以及图形的交互
Javascript模块化编程:AMD规范及require.js用法 随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。

网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑。
Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。
Javascript社区做了很多努力,在现有的运行环境中,实现"模块"的效果。本文总结了当前"Javascript模块化编程"的最佳实践,说明如何投入实用。虽然这不是初级教程,但是只要稍稍了解Javascript的基本语法,就能看懂。
一个草根创业者的失败反思 本能式创业
当初创立开心白日梦,出于一腔热血和本能就开始干了。表面上看似简单的协作型功能,其实对用户的要求极度的高端,不仅需要用户能走出现有教育思维的框架,还需要博采多学和能力超强,只有这样,才能真正的明白开心白日梦的用处,也只有这样才会愿意付出去进行创作,创作从来不是一件轻松的事情。所以,开心白日梦的用户,基本要求是人才中的人才,既不是只会念书的好学生(但又不切实际),又不是只会做事的现实主义者(缺乏梦想)。而我们主流的用户群是90后和00后,这样的年轻人就更加稀少了。
虽然核心用户依然对开心白日梦不离不弃,但流量一直没有很大程度的增长,对于一个网站来说,每天只有500ip的流量只能算是失败的,就像我在《非你莫属》上张绍刚老师评价的那样,200ip只能算是2个。
开始的时候就从来没有认真思考过定位问题,想当然的觉得我有这种需求,我会参与,会创作,别人也会,没有从人性,产品,市场的角度客观的分析过。
程序员最艰巨的十大任务 程序员最艰巨的任务跟编写代码没有多少关系。编码是逻辑思路的一种实践,这跟程序员日常工作中的其它任务比起来相对简单。如果你认为自己还是一个水平一般的程序员,在你真正的能进入到高手行列前,请确保你已经克服了下列晋级的障碍。
1. 解释你在干什么
解释软件开发过程是一个很困难的事情。那些非程序员职业的人也许知道很多关于编程的事情,但很显然,他们不会编程。对于他们来说,我们的生活就是在一间黑暗的屋子里趴在键盘前消耗着咖啡。
你会在你的朋友、家人和同事中遇到这样的人,他会认为编码不是一个正确的职业。
2. 形象的说出软件解决方案
根据一些简短的需求——通常是一知半解的,你需要设计出数据结构,软件架构,代码算法,通信协议,以及其它所有针对商业问题的解决方案各种组成部分。然后你需要用一种外行人听的懂的术语将它们表达出来,并需要在规定的时间里提交给客户。
3. 评估工期
这是程序员痛苦的根源。在开发任务没有完成之前,你是绝对没有可能确定完成这个任务需要的时间。也许程序跟以前写的很相似,但环境变了,问题变了,限制条件变了。
PayPal为什么从Java迁移到Node.js,性能提高一倍,文件代码减少44% 大家都知道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 为什幺要关注提交信息
- 加快 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开发 作为一个开源项目,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代码的建议 讨论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重写了 水木社区上出现了一个贴子:终于把一个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。