一年前端工作 | 方法论 | 实践 | 思维

不知不觉自己从毕业已经从事了一年多的前端工作,当然如果加上实习期,那就更长了,一年中,有最初的兴奋和憧憬,也有迷茫和困惑,这里想要总结归纳一下这一年学到的一些程序的抽象层和思维和方法论上面的东西,谨以记录勉励自己前行。

这里首先致敬感谢老大乔总的鞭策和指导,如果说我在前几任老大学到怎么写代码,那么乔总教会的我是怎么从软件工程思维去思考一个问题,一种另类的学习方法和规划、设计思路的方法论。

模型层

在此前我一直待在一家996的公司,大家业务紧当然是能跑就行,最多加点"你看不看得懂没关系,反正老子写了"的注释,维护组件和数据异常蛋疼,上千行的组件非常常见。

当然呼应主题必须引入ts的故事

因为大佬强推Typescript接触到了Typescript,当然在一开始我是有点抵触的,"定义一个复杂些的东西好复杂啊,能不能不用啊"。但是后面发现确实加了这玩意之后,配合vscode各种类型提醒更有谱了,而且因为你定义好了所以你用a.b.c.d这种对象的时候不用反复比对这玩意之前是不是这么写的,并且线上确实很少发生"xxx underfunded,xxx is null"这种炸了的事情。"真香"

后来我发现大佬在处理一些复杂数据,例如多条件结算,多权限判断的时候使用了模型层的概念,我研究后发现这么干有如下好处

  • 视图更加纯粹地渲染视图,不带复杂恶心逻辑
  • 数据层处理好数据,接口变动无需去业务代码里面翻找修改,专心处理数据,这其实也是mvvm这类框架的灵魂。
  • 调用者可以无需知道model内层复杂的判断逻辑,调用方法即可,避免每个开发者去“review”这个方法所在的项目业务代码的痛苦过程
  • 可跨框架,跨项目使用这个model层,提高开发效率

先设计后实践

以前我拿到一个需求总是从图形入手再想这玩意大概用什么方法api可以搞定就动手了,这样子的思维存在一个缺陷,因为从图形入手我很容易在最后将他和view耦合过深, 抽离困难,或者卡住在某个地方没有思路继续不下去,后来我看到大佬在写一些程序的时候会在头部先写一些思维构想,譬如:"主要思路,抽取空闲通道,将弹幕插入xxxx,需要考虑**问题",然后再开始写代码,果真读他的代码结构清晰,和view耦合低,因为是原生js,所以甚至可以抽离出来给任何项目调用。

问题拆分组合分析能力

因为我们在做微信的一些业务,而微信生态里面发生了什么对于我们来说它就是一个黑盒,我们不能用常规的方式去排查它,而且网上也找不到任何确切相关的资料,而我们拿到一个问题的时候,总是觉得这个问题非常的庞大,很难拆分,不知道如何入手去排查他,而大佬通过自己一些经验告诉我们有时候一些问题不仅仅要靠常规经验,你必须动手用设置对照组,拆分条件,js不对拆css,拆加载顺序,模拟加载,多做实验,其实,软件工程也是跟科研一样,我们需要不停的实验不停的尝试,最终得到你自己的判断。

Service

你以为service只是后端的东西?前端也可以有,在项目中发现一些小工具可以开发出来公用,但是我们又不希望他只能在特定项目使用,具有通用性和容错性,譬如我们的前端授权服务,前端监控上报服务,我们都可以抽出sdk servide的概念,总结特点如下。

1,业务非耦合 - 不和业务耦合,即使跨项目也能使用能够通过npm,script直接引入,不依赖【业务依赖】

2,兼容 / 扩展性 - 可以通过独立发版进行拓展功能和升级,对不同项目没有js版本/依赖等要求

3,容错度 - 即使我们的服务炸了,也不会影响业务代码(搞出xxx is undefine等阻塞页面),或者最低影响

深层思考

万变不离其宗,其实很多人都在担忧前端技术更新日新月异好害怕,但是大佬用他的实践告诉我们,先不要害怕一个东西,先观察,但是不要先去看源码,先看我们用最简单的方法看能不能造出来,譬如api表现怎么样的。我们的思维定势一直是出了个新东西,先疯狂追一下新,然后学会怎么用。再看看能不能看懂源码,而大佬每次都能在我们说会用的时候给我们以降维打击。后期我学着这种思路去看了express,react-router, vuex, redux的一些实现,体会很深,有时候我们真的就卡在一个点,如果告诉你,react-router是基于context实现的props跨级传递和history api的一些简单应用(当然redux也是基于context),vuex的全局store数据驱动更新是因为它把store作为更高层级的"data"并利用了vue原本的数据对象观察的能力,我估计大部分人会说"哇,那这样我也知道啊",其实有时候就是这样的,我们的思维定势先设定我们很难去理解大神做的东西,所以我们缺了去思考"how it run"的动力。我们习惯于膜拜某些看源码的大佬,但是这种方式用大佬的说法是像高中解数学题,先看了答案再去想实现,这并不是最优的思维方式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,093评论 1 32
  • 可最后的最后,他们还是重逢了……不是相逢,而是重逢……就像是那天夕阳西下的时候,孤零零等在月台上的苏茜就要哭了,而...
    橘生淮南爱吃橙子阅读 524评论 0 1
  • 冷不是罪过,缩颈套手,黯然销魂。 #没穿秋裤#
    仇志飞阅读 186评论 0 0