研发周报:精简代码,为网站减负的十大建议
来源:互联网 发布:集美大学校园网络中心 编辑:程序博客网 时间:2024/05/15 05:07
摘要:上周精彩文章有:精简代码,为网站减负的十大建议、全栈工程师会是未来的发展趋势吗?2013年软件领域因缺陷导致的五大事件、前端开发必备 40款优秀CSS代码编写工具推荐等。
春节“码”上就到了,这将是年前的最后一篇研发周报,感谢大家一直以来的支持与阅读。在此,提前祝大家“码”年吉祥、“码”到成功!
在上一周中,“全栈程序员”几乎成了微博上的热门话题。研发频道的“全栈工程师会是未来的发展趋势吗?”也引发了许多程序员们的讨论。除此之外,如何优化网站、精简代码也是大家非常关心的话题,下面就让我们一起来看看上周的热门文章。
1.精简代码,为网站减负的十大建议
2013年,网页文件大小增加了32%,竟然达到了1.7Mb,包含96个独立HTTP请求。这只是一个平均数值,其中近一半的网站已经超过了这个数值。网站的过度臃肿正趋于流行,其中很大的责任在于Web开发者。
过于笨重的网站将严重影响网站的最终体验,主要表现在以下四个方面:
- 更大的下载量,导致更慢的用户体验。并不是每个人都拥有20M的网络连接,尤其是对于那些不发达地区。不管你的网站多么优秀,用户永远不希望等待。
- 移动Web访问正迅速发展,移动网民几乎占到所有网民的1/4。在典型的3G网络连接下,一个1.7Mb的网站加载需要近一分钟。如果你的网站无法高效工作于这些移动设备,那采用响应式Web设计技术又有什么用呢?
- 网站加载速度已被谷歌加入排名算法中。加载缓慢会降低网站排名,同时也会影响搜索引擎优化。
- 网站包含的代码越多,更新和维护它所花费的时间就会越长。
- 启用GZIP压缩
- 支持浏览器缓存
- 使用CDN
前面提到的三条建议可以加快网站的加载速度,下面的建议将帮助我们高效地减少网站的冗余代码。
- 删掉没用的资源
- 合并和压缩CSS
- 压缩并合并JavaScript
- 使用正确的图片格式
- 重整大图片的尺寸
- 进一步压缩图片
- 去掉不必要的字体
2.全栈工程师会是未来的发展趋势吗?
最近,网上很流行一个词:全栈(Full Stack)工程师,也可以叫全端工程师,无论是前端知识,还是后端架构你都要了解。甚至有些调皮的程序员这样理解全栈工程师:全栈工程师=屌丝战斗机=系统+网络+研发+dba+架构+安全=没女朋友、拿一份工资做三份事情的典型、每个站长都是一个全栈工程师,每个站群的站长都是超级全栈工程师。
以前,软件工程师最在意的是成为某个领域的专家或者高手,如今,随着软件技术的发展以及需求的变化,尤其是越来越多的程序员出来自己创业,由于各种条件限制,许多技术上的问题不得不亲力亲为地去完成,因此,很多程序员慢慢地就练就了精通多门技术的本领。
这不,就有位程序员在知乎上提问:“ 怎样成为全栈工程师(Full Stack Developer)?,在OSCON会议上,一名Facebook的工程师说他们只聘请“全栈(Full stack)”的程序员。”此话题一出,引起了大家的热烈讨论。许多经验丰富的工程师纷纷在下面留言,讨论成为全栈工程师的价值在哪里?感兴趣的同学可以访问知乎讨论页。
马上就要春节放假了,许多人都在做年终总结和新一年的规划,许多程序员都希望自己在新的一年里能做出更好的产品、学到更多知识、进一步提升自己的技能和综合能力,这或许也是全栈工程师成为热门的原因之一。那么,这是否也说明,要想在软件开发领域走的更远,就必须掌握更多的技能,成为一名全栈工程师呢,这会成为未来程序员的职业趋势吗?大家不妨一起来讨论下。
3.2013年软件领域因缺陷导致的五大事件
时间飞逝,农历的2013年也快要跟大家说再见了。在软件领域里,2013年是个不平凡的一年,越来越多的科技产品走进了人们的生活,移动、大数据、云计算的快速发展给许多企业带来了各种机遇和挑战。作为程序员,除了要回顾自己一年所参与的项目之外,还得了解去年的业内动态、发生过哪些令人深思的互联网事件。
本文作者总结2013年软件领域因软件缺陷导致的五大事件,提醒所有的各位程序员在开发项目时,除了注重功能的实现,还得考虑一些其它因素,例如性能、代码规范等等。下面让我们一起来看下。
1.美国联航系统免费发放机票
2013年9月12日,美联航售票网站一度出现问题,售出票面价格为0-10美元的超低价机票,引发乘客抢购。大约15分钟后,美联航发现错误,关闭售票网站并声称正在进行维护。大约两个多小时后,该公司购票网站恢复正常,并且承认已卖出的票有效。
2.Dropbox宕机一小时
云端存储解决服务提供商Dropbox在2013年5月份发生了一次宕机事件,事件持续1小时,用户无法使用Dropbox,在页面上显示无法链接服务器。而就在2013年,Dropbox共发生过两次宕机事件,虽然官方回应并非遭到黑客攻击,但仍然引发不少用户的担心。
3.CBOE事件
CBOE(Chicago Board Options Exchange)是美国最大的期权交易所,在2013年4月,CBOE因软件故障引起延迟开盘事件,事故从早上8:30开始,直到中午12点才全部开盘。4.FSSA信息泄露事件
联邦条例规定,技术的加密和授权主要是用来安全地发送和接收保密信息。然而不幸的是,在2013年5月, 印第安纳州家庭和社会服务管理局(FSSA)泄露了用户的私人信息,其中包括社会安全号码以及错误的收件人信息,其中大约有188000人信息遭到公开。
5.Healthcare.gov灾难
HealthCare.gov是美国联邦健康保险交换系统的核心,该网站自2013年10月1日开通运营以来一直遭受各种问题的困扰,比如用户注册失败、浏览器崩溃、性能、数据问题等等。CSDN研发频道曾对该网站架构进行过具体的分析,大家可以移步过去看看: 传说5亿行代码的Healthcare.gov网站的架构。
4.前端开发必备 40款优秀CSS代码编写工具推荐CSS工具是开发者和设计者所不可缺少的,它们不仅简化了工作流,还可提高CSS编写速度。本文将列举40种CSS工具,功能涉及CSS菜单、动画、3D图形、响应式页面、图层、按钮等界面元素的设计与制作。
- Layer Styles
- CSS3 Pie
- Patternify
- CSS Compressor
- Spritemapper
- EzxtractCSS
- Tridiv
- Sky CSS Tool
- PrefixMyCss
- Responsive Web CSS
- CSS Form Code Maker
- Sencha Animator
- Buttons
- CSS Patterns Gallery
- CSS Menu Maker
- CSS Matic
- PCSS
- TopCoat
- Magic
- Skelton
更多工具及其详细介绍,欢迎点此查看访问原文。
5.趣文:假如编程语言在一起聚餐
曾有一段时间,一些幽默的程序员把各门语言比作女人,其中Java是一个精于计算的生意场上的女人、Lisp将会成为你事业上的导师,能在任何事情上为您提供理论方案,让你佩服的五体投地。
倘若把编程语言比作人类,那么,他们在一起聚餐,会聊些什么呢?Py Skool网站编辑就发表了这样的一篇文章: Programming languages come to dinner,下面是笔者对原文的摘译。
有一天,你下班回到家,发现屋里一片忙碌,妈妈告诉你,编程语言里的各位亲戚今晚要来拜访,让你赶紧打扮打扮。你进入客厅,发现C和C++在争论些什么。
C:“你个小屁孩!不要教我编写代码,等你长大了再说。”
C++笑笑,你也被迫加入到这个讨论中。C已经42岁了,是这个房间里岁数最大的语言,而排在第二的则是C++,今年37岁。在外人看来,他们两人看起来几乎是一样的。
C++:“爷爷,你叫我小孩,至少我仍然意义非凡。”
C:“我更加有意义,孩子。如果没有我,操作系统、编译器和嵌入式系统都将失败或者不复存在,同样,如果没有我,你们这些现代语言也活不了几天。”
C++:“我知道。虽然我可以接管你的角色,但是我并不想,因为我为大公司编写代码已经赚了很多钱。”
C#:这时,你年轻的表弟C#走了进来。“你们两个老头子,现在,许多大公司更加喜欢我。
C&C++:齐声说道:“不,他们不喜欢你。”
C++:“我们两个一个月赚的钱比你半年赚的都多。”
C#:“不,你们不能。我比你们年轻,我很酷。”
C吐了一下:“我仍然不喜欢你对Visual Basic所做的。”
C#举起手:“大多数时候,并不是我干的。是MicroEvil做的决定,我发现的时候已经为时已晚了。”
Visual Basic正在角落里哭泣。自从MiscroEvila公司迫使他进行整容后,让他更像C#了。他们心想,如果他能像C#那样既年轻又漂亮,他还能赚很多钱,可是他整容失败了,现在,他只有通过哭泣才能缓解痛苦。C和C#对他都感到很抱歉,并且给了他一颗止痛片。
饭好了,大家都坐在桌子旁,最后一个来的是Java。他穿着一件相当旧的T恤,拿着吉他,真是糟透了,他已经数周没洗澡了。
Java:“嘿,伙计们。我终于会谈吉他了,我现在能谈一整个完整的曲子。”
Java再次酷了一把,尽管他至少已经有20年没这样酷过了。
Java拿起吉他,谈起了曲子:‘Twinkle Twinkle Little Star’,他知道的唯一一首曲子,并且他已经谈了好几周。当他完成曲子后,每个人都很有礼貌地鼓掌。C一脸的轻蔑,而C++则把手搭在Java肩上并且低声对他说。
C++:“还记得我们讨论过什么吗?我们试着对年轻一代好点?”
Java:“我将对他们更好,如果他们赚到钱。”
C++:“他们会的,有一天我们都将会退休,真希望孩子们能赶上来。”
C点头:然后朝一个陌生面孔看去:“你是谁?”
Delphi:“我叫Delphi,你的表妹。”
C:“从未见过你。”
其它人也点头,这个Delphi伙计是谁?C#说到:“你竟然是一门编程语言?有人用你吗?”
Delphi指着他的宝马说:“比你赚的多,高调的小子。”
母亲走到中间:“大家不要吵了,你们会吓坏Cobol的。”
Cobol已经在餐桌上睡着了,并且口水都流到了桌布上。你看到一个年轻的印度小伙站在他旁边,他差不多就是个十来岁的青少年。他向你微笑。并且害羞的说:“你好。”
你也说了句“你好,”并且正在好奇他究竟是谁。妈妈走了过来,介绍说:“他叫Vishal,来自印度,你的太老爷Cobol已经太老了,我们正在训练他接替太老爷的工作。”
主人:“他看起来很年轻。”
妈妈:“是的,他才13岁。他的家族想要一部iPhone,所以把他卖给了我们。我们已经宣布他是一个非常重要的计算机资源,顺便说一下,他不需要签证,并且无需支付任何工资和税前。他睡在厕所里,并且每天工作16个小时。”
Vishal笑着说:“仅仅在两周里,我已经给一个公司带来了5万美元的利润。CEO和执行主管已经分得了数额的奖金,为了表达感谢,他们说我可以睡在厨房里了。这样大家上厕所的时候,我就无需起床了。”
Cobol睡醒了,说到:“不错,好样的,他正在完全接管我的角色。现在,他要是能把我的尿不湿换了就好了。”说完,Cobol又回去睡觉了。
你看到一个空桌子旁有两个男人坐在那里,他们戴着单片眼镜、喝着美酒,
他们好像在窃窃私语讨论些什么。
主人:“那是谁,妈妈?”你问道。“为什么他们没和我们坐在一起?”
母亲让你保持安静,并且告诉你,他们两个是贵族。他们太优秀了,不能和我们坐在一起。
Hashkell:其中一位男士站了起来,并且推推他的单片眼镜。“没关系,老朋友,让我们自我介绍一下。我叫Hashkell,是一门纯种语言。”
Lisp:另一位也站了起来,并自我介绍道:“我叫Lisp,出生在贵族的语言。”他小啜一口佳酿。“嘿,老朋友,这酒真是美味极了。”
Lisp:“嘿,小伙子,这是1970年的Chateau de Le Fancy Pants,将近800美元。”
C++说道:“那是我支付的,因为你们两个已经不工作了。”
Lisp:“亲爱的,我们可是纯正的血统、纯数学语言。我们代表着美丽、真理和优雅。你也不希望我们的手变脏,编码就好比猴子在剥花生。”
C#说道:你知道的,“我们是为了生存才工作的,我们并没有变成猴子。”
Lisp接过话题:“你看过我们的代码吗?我们是如此的优雅、美丽,每个人都喜欢我们。”
他们都摸了摸自己的头发,Haskell说道:“我们是如此的美丽,如果我们走到了现实中,我们的美丽就会减分。”
Haskell:“Yeah. We would become like you guys. Even being in the same room as you plebeians is sucking my coolness.”
C说道:“不要理他们,我们努力奋斗。”
晚餐结束了,大家陆续离开。你和大家道别,并感谢他们的到来。然后去擦桌子。正当母亲洗完碗,LolCode出现了,并且说道:“能来些吃的吗?”
各位网友,看完他们的对话后,你更加喜欢哪一位呢?你们猜到了文中的主人是谁了吗?大家不妨一起讨论讨论吧。
- 研发周报:精简代码,为网站减负的十大建议
- 研发周报:精简代码,为网站减负的十大建议
- 研发周报:精简代码,为网站减负的十大建议
- 精简代码,为网站减负的十大建议
- 精简代码,为网站减负的十大建议
- 精简代码,为网站减负的十大建议
- 精简代码,为网站减负的十大建议
- 精简代码,为网站减负的十大建议
- 精简代码,为网站减负的十大建议
- 【转载】精简代码,为网站减负的十大建议
- 精简代码,为网站减负的十大建议
- 精简代码,为网站减负的十大建议
- 为页面减负的十大建议
- 为网站减负
- 回头为自己的代码减负
- 研发周报:如何编写出拥抱变化的代码?
- 为网站减负,加快访问速度
- SQL Server -为代码减负之触发器
- 多继承
- HDU 1166 敌兵布阵
- 2014.1.27 Java RTTI && 反射
- Java 7之异步I/O第2篇 - I/O操作之NIO
- 使用django的login来登陆用户的时候需要为用户模型添加backend
- 研发周报:精简代码,为网站减负的十大建议
- Java部分面试题
- Backbone.js学习
- 漫谈浏览器的明天
- usb-serial-2 usb主机控制器驱动
- 提示框显示
- Java多线程 阻塞队列和并发集合
- 检索模块的设计
- linux2.6.35编译出现错误could not load /lib/modules/2.6.35/modules.dep