读书笔记:高效能程序员的修炼

入门须知

  • 编程只是整个解决方案中极其微小的一个部分
  • 生命中最困难的,是想清楚你真正像要做的事情
  • 每个人都应该大量地写作

把一堆烂事搞定的艺术

  • 如果你想造一艘船,那就不要催着工人们去收集木材,分发工作,发号施令.你应该教会他们的是对无边无际大海的渴望.
  • 代码,反思,讨论,学习

高效编程之原则

  • 高效编程原则:
    • 永远都是你的错
    • 大道至简
    • 避免写注释
    • 学会读源代码
  • 真正的骇客世界里只有一个简单的事实:如果一个软件在我的机器上运行,那它就是我的软件.我要对它负责,我必须把它弄明白.从源代码构建是一条必须遵循的原则,而且从不例外.我必须控制我的环境,我还要控制我所依赖的东西.
  • 好的团队很重要哦
  • 要有全局的观念:在交付完整解决方案过程中,编写代码只是其中一环.它自身并不是目的.
  • 网站性能致胜

招聘程序员须得其法

已经整理在这篇文章中

使团队紧密合作

  • 领导须以身作则,不要只做个训导别人做事的人
  • 保持谦虚
  • 要想赢得信誉和尊敬,最好的方法就是努力工作并且取得实实在在的成绩
  • 百说不如一干
  • 有效的一种技术领导就是以身作则
  • 像你希望别人如何待你一样去对待别人|你希望别人怎么待你,你就怎样对待别人
  • 领导力的很大一部分就是要学着在乎别人,而这恰恰是我们程序员不擅长的
  • 会议是浪费工作时间的最佳去处
    • 会议绝对不要超过1h
    • 每个会议都要有清晰的目标声明
  • 远程办公
    • 需要最顶级的程序员,新手或者闲散的程序员不适合这种方法
    • 为了保证效率,远程团队需要完全自治,还需要一个有很强烈愿景和执行力的领导者
    • 实时交谈
    • 固定的邮件列表
    • 固定的团队状态报告

蝙蝠洞:程序员的高效工作场所

  • 程序员的权利
    • 每个程序员都应该有两台显示器
    • 每个程序员都应该有一台快速电脑
    • 每个程序员都应该自己选择鼠标和电脑
    • 每个程序员都应该有一把舒适的椅子
    • 每个程序员都能快速接入互联网
    • 每个程序员都应该有安静的工作环境
    • 高效人体工学工作站

设计时要把用户放在心上

令人赏心悦目的产品和让人勉强容忍的产品之间的差别,在于它们的细节有没有做好

  • 细节决定成败
  • 用户界面须优先设计
  • 分页显示该休矣

读者觉得作者这么说观点新并且很有道理,作者的观点有:1.1000以内的条目分页还可以理解2.当你有几千页条目时.读者并不在意第3810页第5条目是什么,并且 人在合理的时间段内能够阅读和处理的信息是有限的,关键是 搜索,搜索到你真正想要的内容

  • 可以试试无穷分页法:当用户看到页面底部时动态加载更多内容

  • 分页有时会是一种阻力

设想下面的情景:用户在回复答案时要先看完所有的评论,若有4页评论,那么就不得不看完每一页的评论再回复.而且有时候下一页按钮做得也不是很好

  • 也不建议把所有的传统分页方法替换成无分页方法,要避免没头没脑地生成成千上万个列表.

  • 第一个版本做得不好,照样发布,用来收集反馈改善

安全基础:保护用户的隐私

  • 所有的网络通信都应该加密吗?
    • 在用户登录之前,使用的都是HTTP连接;而一旦登录,网络连接就自动切换到HTTPS.这么做听合理的.
    • HTTPS意味着没人能在互联网上监视你
  • 防范字典攻击
    • 限制每个用户的登录尝试次数
    • 更好的做法是:每次登录失败后增加后续登录的延迟时间
  • 安全哈希,快速哈希
  • 彩虹表:以存储空间换时间的权衡
  • 如果你只是用户:确保你的密码长度要超过12位,甚至还要长很多
  • 如果你是开发人员:哈希的话只考虑bcrypt或PBKDF2

加强代码测试,别让他太差劲

  • 软件开发人员应该与客户患难与共
  • 代码评审(code review)
  • 加大测试力度
  • 不写单元测试的程序员是愚蠢的
  • 用户是疯狂的,测试人员讨厌你的代码,有些bug是无关紧要的

创建并管理社区,同时从中受益

  • 倾听社区的声音,但别被它牵着鼻子走
  • 参与并支持你的社区
  • 别盲目听从你的用户
  • 学习是有趣的
  • 游戏是学习的助手

程序员,你幸福吗?

“……最难的是,要搞明白你没日没夜地拼命工作到底是为了什么.”

  • 情绪上的幸福感
    • 一个人每天经历的情绪质量,包括快乐,压力,悲愤,愤怒以及其它让人开心或者不开心的感情的频率和强度
  • 对生活的看法
    • 指人们在审视他们生活所持的看法
  • 如果收入的对数作为参考坐标,人们对生活的看法随着收入的提高在稳步提升,而情绪上的幸福也在提升.但是当收入到一定程度(如年收入7.5万美元)时幸福感就停滞不前
  • 钱本身能给你带来的幸福是有限的
  • 马斯洛需求层次理论
  • 关于幸福,其实大部分人不知道它的科学本质—什么能带来幸福?什么能维持幸福?
    • 经历胜过物质:东西会变旧,东西会变得平淡无奇.东西就是东西,它还会磨损,很难拿来分享.
    • 但是经历完全不同,它是独特的,他在你的记忆力像钻石一样光芒四射,而且常常还会历久弥新.经历永远都可以拿来与人分享.只要可能的话,把钱花在经历上,而不是物质上.
    • 助人为乐
    • 为将来埋单:为了幸福的最大化,给自己一个期待和念想,比如期待网购的物品寄到家的那种感觉是不是很幸福或难忘?