🔇 如何成为公司里不可替代的前端人才

阿轩的BUG
文章191
评论56
标签101
站点日志
作者总数:1位
置顶文章:0篇
标签总数:101条
文章总数:196篇
评论总数:56条
微语总数:201条
运行天数:2317天
最近更新:2026-07-28
文章标签
最新评论
Sherlock
2025-08-21
不是应该打包成apk文件吗,怎么突然就运行编译了,下一步呢
老金er
2025-05-25
人生设计非常必要,在信息化发达的今天,周围大部分人依然只能过着人生工程模式生活,长时间生活洗礼后,尽管“人生工程”已经不再适合很多人,他们也无法做出任何改变,人生设计给我们提供了新的思路,值得尝试
赏帮赚
2025-05-25
职场太多的尔虞我诈
三笑
2024-08-16
emlog6.0.1可以升级支持吗?
pony
2024-07-08
这篇文章提供了一种新的人生规划方法——"人生设计",它借鉴了产品设计的理念,鼓励人们以创造性和探索性的方式思考和规划自己的生活。以下是对这篇文章的几个评价维度: 创新性:将产品设计的理念应用于人生规划是一个新颖的视角,为人们提供了一种跳出传统生活轨迹,探索个性化生活路径的方法。 实用性:文章不仅提出了理念,还详细介绍了具体的实施步骤,包括自我评估、制定计划、原型设计和实践选择等,具有很强的操作性。 启发性:通过强调好奇心、不断尝试、重新定义问题等心态,文章鼓励人们打破常规,勇于探索未知,这对于激发个人潜能和创造力具有积极作用。 适应性:"人生设计"理念适用于不同人生阶段和不同背景的人,无论是希望从头开始的人,还是已经取得一定成就但希望探索新方向的人,都可以从中获得启发。 情感共鸣:文章对许多人对传统生活轨迹的不满和对改变的渴望进行了深刻的洞察,能够引起读者的共鸣。 可持续性:人生设计强调的是一个持续迭代和试错的过程,这与现实生活的发展规律相吻合,有助于人们在不断变化的环境中做出适应性调整。 教育意义:作为一种人生规划方法,"人生设计"可以作为教育的一部分,帮助年轻人更早地学会自我探索和规划,为未来的生活和职业发展打下基础。 局限性:尽管"人生设计"提供了一种新的思考框架,但它可能需要个人具备一定的自我认知和反思能力,对于一些缺乏自我探索经验的人来说,可能需要额外的指导和支持。 总体来说,这篇文章提供了一种有价值的人生规划方法,对于那些渴望改变、寻求个性化生活的人来说,是一种有益的参考和指导。
首页值得一看 🔍️

前言

最近几年前端发展的非常快,SPA的繁荣让前端的工程化也越来越重。在很多场景下,前端的复杂度和难度也早已经超过了后端。但快速的发展下,前端也逐渐暴露出了许多问题。众所周知,前端从业人员很少谈程序的设计原则或设计思想。设计模式也顶多是在八股面试时千篇一律的问答“观察者模式”和“发布订阅者模式”。“内聚”和“解耦”这样的词语也很少从前端嘴里蹦出。这就难免导致前端代码写成一座大屎山。而这还是在基于类MVVM框架开发模式的前提下,前端代码天然具有了组件级别的抽象,如果是刀耕火种的MVC时代,更是难以想象。

同事负责的一个前端项目频频爆出bug,已经到了修1个bug产生3个bug的程度,甚至很多bug无法定位。问了同事原因,回答项目比较复杂。窃以为项目复杂不是写成屎山的理由(举一个极端的例子,你的项目再难再复杂也不会超过Chrome浏览器,那如果Chrome浏览器项目可以被维护的非常得体,难度更低的项目一定也能找到好的技术方案和架构来应对。)。出于好奇大致浏览了这个项目的代码,发现这就是一座典型的前端大屎山。除了作者本人应该没有任何人可以或愿意接住该项目,未来的命运就只能是招个新人从0开始重构,甚至一行代码都没法参考(我经历过这事!)。

纯粹从编写软件的角度,其实目前有很多成熟的代码规范可以参考,甚至规范到变量命名等等。但这里我们暂且只讨论前端这个领域的屎山堆积技巧。

精华教程

  • 拒绝Ts
    坚决不用Ts,甚至将Ts写的项目重构成Js代码。去年我被空降了一个leader。在看了一眼我维护的富文本编辑器项目之后,告诉我需要重构该项目,重构目标是抛弃Ts,用Js重写。我在纠结了好几天之后,做出了一个艰难的决定。。。

  • 拒绝hooks
    所有组件都用Class组件,拒绝函数组件,拒绝hooks。

  • 全面拥抱状态管理器
    所有状态都通过类似Redux或Mobx等状态管理器去管理。

  • 不做模块抽象和复用
    每个功能都从0开始实现,不抽象任何公共组件,不把高频出现的逻辑抽象成hooks,不抽象出工具函数,坚决不复用任何逻辑。

  • 把JSX结构掰开揉碎
    直接在JSX上写长函数和复杂参数,至少需要达到一眼看上去稀碎,完全无法在脑中构建出页面的样子。

  • 编写长长长长长的组件
    一整个页面只编写1个组件去维护,单个组件代码行数轻松写到1000行以上。

  • 父子组件多传参,尽可能多层传递
    父组件给子组件传非常多参数,然后子组件继续又将这些参数层层往下传递。

  • 单文件开发
    将状态、数据、类型、工具函数、网络请求和组件等等全部放入一个文件中。

  • 打破文件组织结构与组件结构关系
    虽然组件天然是一个多叉树结构,但相应的文件全部平铺到1层。

  • 不封装网络请求函数
    每次请求都创建新的Axios实例,网络请求错误不统一拦截,全部单独catch。

  • 样式混用和强行覆盖
    内联样式与css文件样式混用和覆盖。类名随便起,不要透露结构信息,相同的css代码在各个类上直接复制黏贴一份。遇到冲突的样式强行再覆盖一层。

  • 到处修改UI组件库内部样式
    为了达到设计要求,通过导出类名强行覆盖UI组件库的内部css样式,多用!important魔法。

  • 多用Js代替CSS实现效果
    伪类伪元素等坚决不用,动画过渡等效果也必须通过Js实现。

  • 到处使用微前端
    尽可能的把页面拆成一个个单一功能的微前端应用。

  • 不要argue需求
    对于产品或设计给到的需求全盘接受,尽力实现交互复杂混乱繁冗的功能,获得技术成就感,做一只不挑食的小白兔。

收益

  • 每次提交上线,产品测试后端都围着你充当鼓励师,唯恐出现生产事故大家一起背3.25警告。
  • 每天都看起来非常忙,大家排队求你分一点时间处理各种技术问题,都哭着叫你大佬,饱受尊敬。
  • 老板对你印象深刻,认为是个技术牛逼的救火队员,夸你勤奋不摸鱼下班晚,周报总是满满当当。
  • 公司地位无可撼动,除了你这个项目没人有能力或愿意接住,只能给你加钱,生怕你离职。

一则旧闻
魏文王问扁鹊:“你们家兄弟 3 人,都精于医术,到底哪一位最好呢 ? ”
扁鹊答:“我的大哥医术最好,二哥次之,我最差。”
文王再问:“那么为什么你最出名呢 ? ”
扁鹊答道:“我大哥治病,是治病于病情发作之前的时候,由于一般人不知道他能事先铲除病因,反而觉得他的治疗没什么明显的效果,所以他的名气无法传出去,只有我们家的人才知道。我二哥治病,是治病于病情初起的时候,看上去以为他只能治轻微的小病,所以他的名气只能在我们乡里流传。而我扁鹊治病,是治病于病情已经严重的时候。一般人看到我在经脉上穿针放血,在皮肤上敷药,用麻药让人昏迷,做的都是些不可思议的大手术,自然以为我的医术高明,因此名气响遍全国,远远大于我的两位哥哥。”

上一篇
🔒️ Localhost使用HTTPS
下一篇
🏫 搞垮团队的独门秘籍