博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
14 lessons after five years of professional programming
阅读量:4208 次
发布时间:2019-05-26

本文共 2637 字,大约阅读时间需要 8 分钟。

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 get nauseous 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.

转载地址:http://vqlli.baihongyu.com/

你可能感兴趣的文章
当前正在执行的SQL
查看>>
获取SQL Server数据库元数据的几种方法
查看>>
聚集索引重建之后
查看>>
区分大小写
查看>>
收缩数据库
查看>>
数据库修复
查看>>
找出执行时间最长的10条SQL
查看>>
主键就是聚集索引吗
查看>>
一、存储结构   在SQL Server中,有许多不同的可用排列规则选项。   二进制:按字符的数字表示形式排序(ASCII码中,用数字32表示空格,用68表示字母"D")。因为所有内容都表示为数字
查看>>
SqlServer2008数据备份以及远程备份
查看>>
SQL Server 非聚集索引的覆盖,连接,交叉和过滤 (第二篇)
查看>>
备份恢复
查看>>
sqlserver 备份
查看>>
sqlserver语句总结
查看>>
informatica
查看>>
sqlserver 文章
查看>>
test
查看>>
SQLSERVER排查CPU占用高的情况
查看>>
Informatica中实现count(distinct)
查看>>
Informatica Powercenter调优
查看>>