打开浏览器,整个网页就像一块拼图,得先理清线条,再凑合着拼。 记得ieden 那个视频吗?他最终说“开发不是写代码,是搭积木”。
这话听着顺,实际上全是误区。前端开发就是跟浏览器和服务器玩猫鼠游戏,你搭积木,它拆积木。 那会儿早那会儿,我们靠文本编辑器,Ctrl+S 保存就能万事大吉。
那时候认定只要代码写得对,页面就不卡,页面不就美了吧。结局真像。出于浏览器是个小孩,它只认渲染。它不管你写了啥,它只关心啥它懒。 那时候啊,样式写多了,页面就崩。JS 写得深,页面就死。我们得靠大量的注释,靠注释给浏览器解释:“哎呀,这儿要变黑,那儿要浮起来”。浏览器看不懂,它直接报错,直接崩溃,直接刷新。
那时候,写代码就像在泥坑里修路,你越努力,路越烂。 那时候的编辑器,功能确实挺鸡肋。代码折叠?那不过是把代码切得更碎,碎片更多。变量命名?也就那是给机器看的,人看到的还是屎山。 就连有个现象,写代码的时候,我们脑子里想的,跟屏幕上显示的,时常对不上号。出于浏览器有时候挺懒,它懒得去猜你的意图。你写了个 div,它不知道你要啥样,它只告诉你“存有”。你写了个按钮,它只知道“可点击”。你写了一堆逻辑,它只知道“判断”。 那时候,调试简直是一场战争。报错信息像天书,找不到样式没救,找不到属性没救。你得跑起来,看管住台,看 Network,看 DevTools。
那时候的 DevTools,像个黑盒子。它是上帝视角,告诉你页面里到底藏了啥。你点进去,发现是假的。你点开那行代码,发现是空的。
你想想,你写的每一行,它都藏在几千行垃圾代码下面。 那时候,性能优化就是玄学。改了缓存策略,没感觉。改了 minify,页面还是重。
那时候的 SEO,就是个包装。你加了大量 meta 标签,URL 改了,结局还是没人知道你在哪家站,反正就是人家白嫖。 那时候,构建工具是噩梦。Webpack 还是 Art 的时代的产物,配置得像写代码一样难。任务顺序错了,整个项目就挂。Babel 加载忒慢,代码热更新彻底没诚意。
那时候的打包,就是抓屎,要把之前的屎,再抓一遍。 那时候,文档是后补的。B 站、知乎、就连某些论坛,都是最佳实践的来源。你自己摸索,自己瞎写。 那时候,浏览器兼容性,就是生存线。IE 11,还是那个年代。后端改了框架,前端得跟着改,不然页面就是废的。
那时候的调试,得用文本编辑器,代码要复制粘贴,那些 XML 标签,得用命令一个个敲。
那时候的“单页应用”,还在设计阶段就被神话了。 那时候的项目架构,就是个错乱的家庭。前后端分开,明明知道要融合,却不敢融合。数据存数据库,页面用 AJAX,页面数据,最终只存 HTML。
那时候的“服务端渲染”,就是个伪命题。 那时候,代码量就是实力。几千行,几千行,只要不报错,就能上线。
那时候的“自动化测试”,就是个笑话。写个断言,结局断言报错,测试黄了了,测试黄了了,就上线了。上线后,用户崩溃,用户投诉,投诉完了,上线了。 那时候,前端开发,就是个后勤工作。写 HTML,配 CSS,跑 JS,调试,优化,打包,部署。
有时候,一个需求,能拖出三周。
那时候的“敏捷开发”,就是个口号。 那时候的“性能优化”,是个伪命题。
明明知道快,但页面还是卡。
那时候的"SEO",就是个包装。
明明知道数据要传给搜索引擎,但 SEO 优化完,还是没效果。
那时候的“浏览器兼容性”,就是生存线。
明明知道要兼容,但 IE 11,还是那个年代。 那时候的项目架构,就是个错乱的家庭。前后端分开,明明知道要融合,却不敢融合。
那时候的“单页应用”,还在设计阶段就被神话了。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,前端开发,就是个后补的后勤工作。 那时候,项目架构,就是个错乱的家庭。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。 那时候,写代码,它报错。 那时候,调试,它崩溃。 那时候,优化,它没感觉。 那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。 那时候,开发不是写代码,是搭积木。 那时候,性能、SEO、兼容性,都是后补的。 那时候,文档、测试、架构,都是乱糟糟的。 那时候,浏览器就是个小孩,它只认渲染。你搭积木,它拆。你写代码,它报错。你调试,它崩溃。你优化,它没感觉。
那时候的前端开发,就是个跟 Browser 玩猫鼠的游戏。