我面试过一个小伙子,前端简历上写着“全栈开发”。好还后端好问他前端盒子模型讲得头头是前端道,问到后端数据库索引原理,好还后端好支支吾吾。前端最后他坦白,好还后端好前端是前端看视频学的,后端是好还后端好培训班速成的。结果入职第一周,前端他写的好还后端好接口把服务器内存撑爆了——因为他不知道数据库连接要关闭。这就是前端前端和后端的区别,一个管你眼睛看到的好还后端好,一个管你看不到的前端。但你说哪个好?好还后端好这问题本身就有点蠢。
前端的前端爽感是即时的。你写个`
后端呢,讲究的是稳。你写的代码可能用户永远看不见,但服务器一崩,全公司都看得见你。我另一个朋友做后端,他负责的支付系统每天跑几百万笔交易。他说最骄傲的时刻不是上线新功能,而是某个深夜系统日志安安静静,一屏错误都没有——那种“一切尽在掌握”的踏实感,前端很难给到你。后端的逻辑更抽象,你要考虑并发、缓存、分布式、数据一致性,每个决定都像下棋,走一步要看三步。但代价是枯燥,对着黑底白字的终端一坐一整天,头发掉得比代码涨得快。
但你要是问我个人倾向,我反而觉得前端更“难”。难在它把技术和人性揉在一起。用户不会管你底层用了什么牛逼算法,他们只关心按钮好不好点,页面流不流畅。你得揣摩人的心理,一个动画慢了0.1秒,用户就觉得卡;一个字体小了2像素,用户就觉得廉价。这种对细节的极致敏感,不是靠背API能练出来的。而后端再复杂,面对的是机器,机器的逻辑是确定的,只要你遵循规则,它就不会耍脾气。
不过话说回来,现在这年头,纯前端或纯后端都越来越难混。云服务把后端的基础设施都包了,你写个函数就能跑;前端的框架也把复杂状态管理给你封装好了。真正的分水岭在于你解决问题的能力边界。我见过前端转后端特别痛苦的,因为习惯了即时反馈,受不了调一个bug要查半天日志;也见过后端转前端抓狂的,因为搞不懂为什么同样的代码在Safari和Chrome里长不一样。
所以别问哪个好,问你自己喜欢什么。喜欢看得见摸得着的反馈,选前端;喜欢在混沌中构建秩序,选后端。但最怕的是你既没有前端的审美,又没有后端的逻辑,那才真是两头不靠。我那个面试的小伙子后来被劝退了,他走的时候问我:“那我到底适合学啥?”我说你适合去当产品经理,因为那个岗位不需要写代码,只需要说“这个需求很简单”。