本文为伊凡原创撰写投稿一颗优雅草科技仅仅代表伊凡个人观点,与一颗优雅草科技无关切不代表其立场,谢谢,欢迎喜欢写文的道友来投稿,未经许可禁止转载,如需转载请保留原创信息否则将会视为侵权行为,为保护原创知识产权做出努力。
先凑一下字数给大家说明下我最后用英文不是刻意要用英文,是因为媒体平台限制30个字不用英文“为什么”三个字打出来会超出限制,正式开始。
相信大家在协同开发中总会遇到有这样的问题,比如一个问题出现产品会去找前端,前端说这不是我的问题是后端的问题,让后端改“这样。。。这样。。。然后这样很简单的”就好了,当找到后端的时候,后端又说“为什么要后端这样改,这样改很麻烦啊,你让前端这样。。。这样。。。然后这样……就能很简单改啊,为什么要后端改,非常复杂的”,这个时候一般就需要技术更厉害点的人站出来或者cto之类的管理人员站出来从整体考虑最优方案给出一个决定,为什么会这样,而且这种情况在开发中是绝对不会少的,就是因为如题程序员前端眼里的后端和后端眼里的前端都是“太简单”,那么为什么会这样呢?
如果不曾互换职位才发现自己干不了的情况,只是浅显理解对方基本就会形成以下的看法:
前端眼里的后端:
·99%都是增删改查,就是ifelse+CURD
·写那点api就觉得自己是整个企业的核心了
·为什么让你后端处理下你就非要我前端转换
后端眼里的前端:
·就只会写点界面都不需要思考的
·乱七八糟的框架看都看不懂,非要搞那么复杂
·不就是对接api吗,搞得跟写浏览器一样,知道我放出api是怎么困难吗,知道我要怎么考虑架构吗
其实这就是一个过程,做了全栈以后才会去理解,编程的道路永无止境,任何行业都是永无止境的学习,创新,更新,迭代,再创新,为什么前端要用框架,其实框架就是前端行业的进步,当年没有框架的情况下要去做移动端和pc端兼容是有多么的困难知道吗,而那个时候的前端只能停留在div+css布局,可不像现在能做这么多逻辑处理的。
再说说后端,后端一个产品上线后要考虑的压力很大,app变卡了,app挂了,接口又挂了,mysql连接数耗尽,cpu又满了?哎呀数据库读写次数为什么高?总之不是这里问题就是那里问题,这个时候才真正考验后端的能力了,从tcp协议,操作系统(Linux/windows),数据结构,分布式处理,一致性缓存,跨域问题,负载均衡,nginx,apache,IIS……可以这样说学后端基本就是学一点点然后开始被带偏各种学习才可以解决问题,外包公司很难遇到这样的问题是因为外包公司很难做大型项目,除非很大很大的外包公司,那也确实不一样,比如你给国家电网做系统,给做系统,后端也是未来一定会集群化,集中化,微服务必然是一个趋势,如果一直还在中间件迟早被挤压到没饭吃,毕竟现在的前端要学的好那基本学后端也不是啥问题,后端学的好去学前端也没问题,总之不做不知道一做吓一跳。
其实真的大家都不容易,前端后端都不是容易事儿,必须当自己前后端都会成为全栈开发以后才能体会,不过这种争论其实也不是坏事,在某种情况下是择出了最好的方案,但是也有弊端就是如果领导是蒙子就会做出错误的决定,一错再错最后一个烂摊子等下一轮的人民再来完善。
每一个产品如果要做到极致都很难,一坨好不容易堆砌的粪山一样的东西,看上去摇摇欲坠,然后勉强能够有用,然后不断的修补它的形状,不断的给它添加挂件和清除垃圾,真的非常非常不容易,除非就是想草草了事,其实很多外包公司产品都不会从0开始做产品,毕竟从0就会存在巨大的成本问题,但不从0,别说半年,3个月,就是给你1年也未必能将一个产品做到相对满意,为什么大部分公司一找外包项目一开发没事,一上线就完蛋,为什么外包公司和产品公司的差异会巨大,我们曾经也是外包公司慢慢成长为产品公司,深知其中的问题且深刻领悟反省过,(当然了这里我必须排除那种很大很大的外包公司,大的外包公司是不一样的,不能以偏概全)互联网外包公司和产品公司的技术差距这个东西可以后面单独写一篇探讨。