14 lessons after five years of professional programming
来源:互联网 发布:数据交易 qq 编辑:程序博客网 时间:2024/05/16 10:02
14 lessons after five years of professional programming
In no particular order:
1. When performance is an issue, if you can calculate or process it at the application layer, then take it out of the database layer. order by/group by are classic examples. It’s almost always easier to scale out your application layer than your database layer. As true for MySQL on your server as it is on the sqlite in your handheld.EDIT Some great comments on HN for this one so I felt like I better clarify: we only do this for certain queries not to improve necessarily the client response time, but to relieve load if the query is battering the DB and making it a significant bottleneck for ALL clients.
2. Concurrency, avoid it if you can. If not, then remember that with great power comes great responsibility Avoid working directly with threads if you can. Work at a higher level of abstraction if possible. In iOS,for example: GCD, dispatch and operation queues are your friends. The human mind was not designed to reason about infinite temporal state—I getnauseous thinking about how I learned all this first hand.
3. Minimize state as much as possible, and keep it as localized as possible. The functionalists were/are onto something.
4. Short composable methods are your friend.
5. Comments are dangerous since they can get out of date and mislead, but so is not having them. Don’t comment the trivial, but strategically write paragraphs if needed in specific sections. Your memory will fail you, as soon as tomorrow morning, even after coffee.
6. If you feel one use-case scenario will “probably be ok”, that’s the one that’s going to lead to catastrophic failure a month in production. Trust your paranoid gut, test and verify.
7. When in doubt, over communicate all concerns with your team.
8. Do the right thing—you usually know what that thing is.
9. Your users aren’t stupid, they just don’t have the patience for your cut corners.
10. If an engineer is not tasked with the long term maintenance of the systems they build, view them with suspicion. 80% of the blood, sweat, and tears of software occurs after its been released—that’s when you become a world weary, but wiser “professional.”
11. Checklists are your friends.
12. Take initiative to purposeful enjoy your work, sometimes this will take effort.
13. Silent failures, I still have nightmares. Monitor, log, alert. But be wary of false positives and the inevitable desensitization it leads to. Keep your system senses clear and alert.
14. At the end of the day, we’re paid to manage complexity. Work accordingly.
*Side note: talks by Rich Hickey and Clean Code by Robert Martin have been very positive recent influences on my work.
- 14 lessons after five years of professional programming
- 14 lessons after five years of professional programming
- Top 20 Programming Lessons I've Learned in 20 Years
- Top 20 Programming Lessons I've Learned in 20 Years
- Top 20 Programming Lessons I\'ve Learned in 20 Years
- 7 Years of YouTube Scalability Lessons in 30 Minutes
- [cite]Top 20 Programming Lessons I've Learned in 20 Years
- 20/20: Top 20 Programming Lessons I've Learned in 20 Years
- The First Five Years
- after running a think tank for a number of years
- Programming lessons I learned
- Agricultural Bank of China Changde branch commitment 6 years after the cash Jin Jian rice of large s
- 10 life lessons I have learned in last few years
- 20 years of Linux
- Linux System Programming --Chapter Five
- Professional PHP Programming
- Professional ADO.NET Programming
- Professional Oracle Programming
- Install:Wrapper.CreateFile failed with error 123:文件名、目录名或卷标语法不正确
- Hello world
- hadoop什么时候开始执行reduce操作
- A*算法
- Linux学习之"exit函数"
- 14 lessons after five years of professional programming
- rrdtool info结果分析
- 实施组合测试
- IE中字体旋转90度的问题及解决方案
- Interactive 3D Graphics-Lesson4 Problem Set
- QT StyleSheet(二)
- Android GDI基本框架
- Hibernate 各种数据库的配置
- Java正则表达式实例详解