在知乎的回答:后端开发,主要的挑战有哪些?
这个问题是我提出的,其实也有想要总结一下自己思路的意思。我的初步的思考如下:
1、后端开发,最重要的挑战,来自于规模
规模的扩大,比如访问量扩大,文件存储量扩大,数据量扩大,服务器数量扩大,等等等等。
一个前端看起来一模一样的网站,某一种指标如果扩大十倍,几乎都会面临一大堆的问题和挑战。之前@徐湘涛 有一条微博,但是我现在搜不到了,大意是,一个系统,从小到大,仅仅在数据库方面,就要经历多次的拆分,横切、竖切,种种演进。总之是一路荆棘的过来的。
另 一方面,在规模扩大以后,后端系统架构,一定会复杂化。原来只有一台Server,LAMP都装在一起。然后数据库分出来,反向代理,负载均衡,分库分 表,Memcache,Message Queue,事务处理,CDN,NOSQL,种种架构,Server,就逐渐的演化出来了。
架构的复杂化,自然会带来更多的问题和更多的挑战。
2、第二大挑战,来自于安全
安全问题层出不穷,防不胜防。需要技术手段,也需要管理制度。这方面我也不甚了了,期待更加资深的人来解答。甚至单独开一个问题:“网络安全方面主要的挑战有哪些?”都是一个很大的问题。
3、第三大挑战,来自于效率
能否提供足够的处理速度,能否提供足够的带宽,能否保证响应能力。这些是对外的效率。
能否使用更少的服务器,能否使用更加便宜的服务器,能否使用更加节省能源的服务器。这些是对内的效率。
4、第四大挑战,来自于需求变更
当然,无论前端后端,都会面临需求变更,只要是软件开发,这都是大挑战。但是当一个系统已经 稳定的,高效的运行着的时候,需求变更来了,在满足需求之后,原来的本来没有问题的部分,会不会突然崩溃,一旦崩溃,就是后端工程师的噩梦。
从 这个角度来说,后端工程师,会更加抵触变更。一个系统只要是好好的运行着的,最好就不要去动他。CSDN密码泄漏之后,@Tinyfool 写了一段话,我认为非常有道理:“技术界有一种哲学叫做,系统如果还可以运行就不要修改它。这种哲学我一直反对,但是没有可靠的证据。CSDN这次是一个 非常好的证明,如果前年有人在CSDN内部说,咱们的数据库密码是明文,改了吧,也许有人会反驳都多少年没出事儿了。所幸现在出事儿了。”
但是,我真的非常理解那些不想变化的心态。虽然他们是错的。
5、第五大挑战,来自于教条
这个世界上有无数IT大公司,他们都很开放,都愿意分享自己的架构与技术。于是,对于“眼界开阔”的后端工程师而言,困难不在于如何解决,而在于如何从众多的解决方案中做出挑选。框架、实践不断涌现,成功案例也不断涌现。人家都用得好好的,你敢用吗?
到底是勇于尝鲜,还是保守要紧呢?这个很难。
作为后台开发人员,深表赞同。
ps:建议将知乎问题链接链过来~
http://www.zhihu.com/question/19984900