高效能程序员的修炼
这本书是 Coding Horror博客的精华文章合集
记录一下精华之处
我决不提倡为了学编程儿学编程,我鼓励的是毫无保留的追求你的快乐
程序员的八种境界
-
不朽的
离开人世,代码依旧活着 在计算机博物馆里
-
成功的
广泛知名度,运营不错的公司
-
胜任的
有工作能力
-
普通的
应付一般编程工作
-
业余的
热衷编码,有想法、有激情(创意)
-
低调的
仅仅是份工作
-
烂程序员
技能匮乏,bug百出
初读感觉挺有意思的
ps:看看自己,默默扭头
关于写作
每个人都应该大量写作,不管是写博客、写书、回复、写电子邮件,这种书面沟通有助于理清我们的思路。当你需要向其他人详细解释某样东西的时候,你会惊讶的发现你自己有多无知,于是,你不得不开始一个全新的探索过程。
极为认同这一段话
零散几句
- 传统的“萝卜加大棒”的激励只对那些重复的、机械化的任务有效。
- 一路向前冲,也要快速迭代
- 只加必须加的注释,学会读源码、向橡皮鸭求助
- 提问的方式,提问本身也是一种思考,不要浪费别人的时间
- 创意要有执行力才有价值
- 电梯测试:向客户解释清楚自己作为程序员在做什么
- 性能制胜:雅虎十二条
- 多显示器提高生产力
注释多了其实也会头大emm,写那种逻辑清楚,一看代码就知道是干嘛的,那种注释是极为自然的(代码就相当于注释)
读源码特别有助于理解现在所学的东西(当然,一开始学别玩那么多,先会用,再精通)
向橡皮鸭求助:在你问别人问题前,先假设面前有一只橡皮鸭,向它提问,讲出来。
(问橡皮鸭问题时,说不定就有思路,就可以自己解决了)
emm,挺有意思,有效果
提问真的不要太浪费别人时间(会烦死你的)
电梯测试,这个就是向别人展示你干了什么,干了活得会说,要不然别人当你白干。
多显示器,表示很有冲动
雅虎十二条
1.减少http请求次数
图片方面:雪碧图,应用场景:合并背景图片和小图标;database64—转换图片
合并js css文件
2.样式放在头上
原因:样式放在头上,浏览器解析结构时就可以对页面进行渲染了,而不需要等到结构解析完,再去用css渲染页面了,先出现光秃秃的结构页面在绚丽起来
3.脚本文件放在底部
浏览器会阻塞加载直到样式文件加载完毕,因此脚本文件被放在下面,否则脚本后面的文件加载将被阻塞,
阻塞并行下载数量,一般浏览器的js并行下载数量为两个,同时间不能下载更多,—(但图片可以超过两个并行下载)
4.避免css 表达式
不仅页面显示和resize时计算表达式,而且当页面滚屏,甚至当鼠标在页面上移动时都会重新计算表达式
5.js和css从外部引入
文件从外部引入会加快页面的显示速度,因为外部文件会被缓存,在页面中虽然减少了http次数,但增大了页面大小
6.最小化js代码
两个流行的工具是#JSMin和YUI Compressor。混淆是最小化于源码的备选方式
7.避免重定向
注意:重定向会增加http请求的次数,但必要的重定向又可以提高用户体验
避免重定向的方式
1.在定义链接地址href属性时,尽量使用全的,直接的链接地址,如:
-使用www.cnblogs.com 而不是cnblogs.com
-使用cn.bing.com 而不是bing.com
-使用www.google.com.hk 而不是google.com
-使用www.mysite.com/products/ 而不是 www.mysite.com/products
2、在使用Response.Redirect的时候,设置第二个参数为false
-考虑是否可用Server.Execute代替
-考虑Respone.RedirectPermanent
3、如果涉及到从测试环境到生产环境的迁移,建议通过DNS中的CNAME的机制来定义别名,而不是强制地重定向来实现 –待理解
8.删除重复的脚本文件
合理封装js代码,减少不必要的http请求,使用模版系统建立脚本管理模块
9.缓存ajax
10.使用CDN(Content Delivery Network,内容分发网络)
11.增加Expires Header
12.减少DNS查询次数
注意:减少主机域名可减少DNS查询次数,但可能会造成并行下载数的减少,一个可行这种的办法是把资源部署到2-4个不同的主机名上
DNS解析域名时浏览器不会进行下载
来自这里:https://blog.youkuaiyun.com/qq_35047721/article/details/68923425