前言

光看文章,估计很多人都以为博主是前端程序员,其实我是个正经的C#后端,前端只是前几年才开始接触,最开始从业的时候,我连前端页面的基础布局都搞不定,菜的抠脚。

作为一名正儿八经的 C# 程序员,我也没想到有一天写的文章会是JavaScript的居多。

是的你没看没错,我是个写C#的暴躁程序员老哥,平常做的也主要是后端开发,但一打开我的博客,却大部分都是前端和 JavaScript 的内容。

这么多和 C# 没啥关系的文章,难道是我的职业选择有误?其实根本不是这样,背后还有点故事。

今天就来聊聊,为什么一个 C# 后端程序员的文章基本都是 JS 相关的内容。

后端开发:小公司的代码复制机

先说说我们 C# 后端程序员的日常。对于小公司而言业务一般来说没有什么太大难度,核心无非就是 CRUD,也就是增删改查,个别业务可能需要思考一下业务逻辑,但大部分都不会太难。小公司的后端开发更简单,基本上是接需求、写接口、数据库调来调去,最后再把数据传给前端去展示。久而久之,你会发现:后端的世界和想象中不太一样——没有多少炫酷的效果,没有纷繁复杂的交互,只有本地稳稳的数据库、线上说炸就炸的RDS和静悄悄的docker容器。

当然我这么说并不是后端开发不重要。相反,后端是非常关键的部分,保障着整个应用的数据管理和业务逻辑。

但直白点说,后端开发就是一种有点重复的工作。

你会发现,某个逻辑写一次就够了,接下来的大部分时间可能就是“复制-粘贴-微调”的日常。

再加上小公司的项目节奏比较紧,很多时候并没有足够的空间去折腾更复杂的技术。

对比之下,想从后端工作中“榨”出点新鲜的写作素材,有点苦难!

后端内容:我不敢,我怕大佬嘴上,手下都不留情!

其实,我在以前的旧博客网站上也尝试写过一些的后端内容。

比如说:微服务架构、大数据处理、分布式系统,听起来都很带感不是吗?

问题是,真要写起来却发现不太合适。

举个例子吧,有一次公司做了一个分布式系统的项目,我也参与了开发,正想着 “哦豁,这个可以好好总结下,写个系列文章了。” 结果项目上线没多久,公司一算钱,好家伙,一年支出八百万,盈利不到一百万,终于在前年,众多股东看着账上冰冷的余额“几万块”后,原地解散,其他业务部门赚的钱全在我们这花掉了。

PS:其实我不知道具体有多少钱,但是我知道,大部分都花给我们项目了,你问我为什么知道?因为我和财务的人熟悉,毕竟经常帮他们修电脑。

于是,这个“分布式项目”就成了个短命的实验,经验半吊子不说,连总结都不知道该从哪里下手。

还有大数据处理,我仅仅只是学习过,没有实践过,真要写出来,我还真怕误导人家。

对这些高级话题,能读到的书也不少,真要动笔写出来,我还得担心自己写得不够全面,甚至弄巧成拙。

所以在后端的写作上,往往卡在两个问题上:

  • 一个是写来写去都是 CRUD,没啥新意;

  • 一个就是大题材有过浅尝辄止的经历,写出来说不定会“误人子弟”。所以,写来写去,后端反而成了“难啃的骨头”。

水文章:前端不要太多

反观前端这边,那可真是轮子永不停歇!

年年都有新框架新工具,什么 React、Vue、Angular,三巨头谁都不服谁。

好不容易把这几个框架摸透了,又冒出来 Svelte、SolidJS 等新玩意。

还搞出一堆新概念——渐进式应用、单页应用、服务器端渲染,更何况前几年的WebAssembly我都还没有开始研究。

光是框架的更新就够忙了,更不用说工具链和开发流程的变化了。

还记得刚开始用 Webpack 构建项目,觉得已经很好用,结果一转眼 Vite、Parcel 等工具就来了,说它们更高效、更快速,非得按着我的头,叫我赶紧学。

我说这个不行,这是另外的价钱,现在的公司都不用,没人给我加钱。

这种情况下,天天有新知识点,倒不愁没啥好写的,虽然我不学,但是我可以水点文章,顺带了解一下。

实际上,框架我还是只学了基础的js、旧项目不得不用的jquery以及现在不得不学的Vue与Uniapp,没办法,谁叫工作需要呢。

坑之多,一篇文章写不下

要说坑,前端真是“藏坑”之地啊。

JavaScript 虽然好用,但它的灵活性带来了各种兼容性问题。

你可能在 Chrome 上一切顺利,结果到了 Edge 就出问题;或者你在新版浏览器上测试没事,结果客户用老旧浏览器打开,一堆报错。还有事件冒泡与捕获、跨域问题的处理、Promise 和异步处理等各种“奇技淫巧”,就这些细微之处,每天都能带来一堆头疼的 bug。

每次遇到这种情况,我都得去三大搜索引擎找起来。

我相信很多用 vs code 的应该也都遇到过,啥都没动,或者可能只是改了个变量,然后报错了,跑不起来了,查了半天问题,一个重启解决问题了。

遇到这种情况,真是想原地螺旋升天送 "它们" 见太奶。

各种奇奇怪怪的bug,再加上各种包的加持,有时候解决bug特别麻烦。

有些是包的存在,很多包是停止更新或者本身包内代码报的错,但是报错提示又没有具体内容,导致以为是自己的使用问题,查半天bug。

有些是ide奇奇怪怪的bug,我不知道这是所有前端ide都会,还是只有vscode,因为目前只用过vscodeHbuilderx ,其他没用过。

全能之神:多而不精之小公司程序员

其实还有个现实原因,那就是小地方、小公司人手少,因为小地方人不好招、工作也不好找,所以基本上除非公司倒闭了,不然基本不会怎么有人员变动。

因为人少,就避免不了小公司里的程序员很多时候基本啥都要会一点,有可能今天写后端,明天写前端,后天可能还得搞搞测试,甚至有的时候还要写写运维脚本。

几年下来,要不是我偶然间看见我github上主页的代码统计,发现自己写的前端代码比后端还要多,我都没发现这个问题。

虽然我在后端开发上更有经验,但前端的日常接触和实践也使我拥有水文章的素材。

所有虽然我是个 C# 程序员,但实际工作和写作内容却偏向了 JavaScript。这并不是因为 C# 不好,而是因为前端领域的发展和工作环境的需求导致的。同时,后端工作在小公司环境中相对稳定,变化少,能拿来当素材的写文章的也少。