前端与后端的思维专注点很不相同,前端聚焦在如何把内容以可视化的方式展现给用户,后端聚焦在如何利用IT基础设施实现业务逻辑。所以前端参与后端开发时(全栈工程师必备!)首先需要理解后端会做哪些事,其次才是如何才能做好这些事。
所谓“利用IT基础设施实现业务逻辑”,意味着以下几个概念:
IT基础设施有哪些?
数据库一定是最重要的,这里特指关系数据库,例如mysql。因为前端所用的数据库往往非常简单,浏览器或者APP毕竟只服务于一位用户,而后端的数据库需要服务于全部用户,这不是一个量级。在现实世界中,一旦量级发生改变,需要用到的技术就完全不一样了。数据库的基本操作ACID、事务、关联查询、索引都是完成业务逻辑的必备品。
缓存也是前端必须理解的概念。后端可以直接操作SATA磁盘,SSD磁盘,内存等不同的存储介质,而这些介质的存取速度差异巨大。CPU操作L1和L2缓存只有3个纳秒以内,到了L3缓存(可以以MB为单位计量了)就得10纳秒以上了,而到了内存就得100纳秒以上,通过网卡访问远端则需要数百微秒,访问机械硬盘则要几十毫秒。为了能够让用户的请求尽快获得响应,必须使用缓存。很少的场景下才会直接编写缓存,通常后端都在使用的缓存服务包括redis、memcached等,其中前者使用更多。
如何正确的分析业务逻辑?
UML图是一个非常好