前端工程师素养
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
程序是写给人读的,只是偶尔让计算机执行一下。” ——Donald Ervin Knuth(高德纳)
DRY(Don’t Repeat Yourself)
一种是完全没有抽象概念,重复的代码散落在各处,更奇葩的是,有一部分的抽象,但更多的是重复,
另一种极端是过度设计,在写每个逻辑的时候都去抽象,让代码的可读性大大下降,
SRP(Single Responsibility Principle) SRP也是一个比较著名的设计原则——单一职责,在面向对象的编程中,认为类应该具有单一职责,一个类的改变动机应当只有一个。
对于前端开发来说,最需要贯彻的思想是函数应当保持单一职责,一个函数应当只做一件事,
LKP(Least Knowledge Principle) LKP原则是最小知识原则,又称“迪米特”法则,也就是说,一个对象应该对另一个对象有最少的了解,你内部如何复杂都没关系,我只关心调用的地方。
前端的一点想法
React 的本质只是一个 UI Library,并不是框架 Framework 。
普及下 ECMA 的标准的流程:
stage-1:前期设想 stage-2:正式提案(装饰器所在的阶段) stage-3:实现候选 Stage-4:完成测试 各个浏览器 JS 引擎实现; TypeScript 实现
我相信任何一个实现过构建工具的人都被 Node gyp 打败过。node-sass, fsevent 的痛不必细说。更不用说万年被黑的 node_modules 了,你根本不知道一个简单的 npm install 命令会导致安装成千上万个 npm 包被安装到你的机器上。
Go/Rust 这种把源代码编译打包成单个可执行文件的方式才是好的解决方式。
ESBuild :一个极快的 JavaScript bundler 。这个工具可以说是真正的「 Game changer 」。同样是一个打包任务,它快到让你没反应过来就完成任务了。ESBuild 使用 Go 语言编写,实现了整套 并行的 ES 解析器、代码生成器,作者是 Figma 的 CTO (是的国外的 CTO 是要写代码的)。最近更新很频繁,Vue 新的构建工具也会基于它来做 TS 部分的打包功能。
Deno :一个安全的 JavaScript & TypeScript 运行时。Deno 的方向充满了可能性,未来 deno 不仅仅可以做 JS 后端,还能和 Rust 打通,给 JS 注入一些原生 native 的能力,然后 Webasmbly, webGL 之类的技术都变成了可能,1.0 正式版发布日期也快到了。
Figma:一个在线版的 Sketch,虽然功能还没有 Sketch 强大,但是已经有了设计界面的基本能力。关键还在于它的整个实现都是基于 web 技术,底层 C++ 实现图形的渲染、绘制,前端通过 Webasmbly 与浏览器 Canvas 交互,做到了让用户在浏览器端体验到了 Native 软件能力。像 AutoLayout 这种功能在用户体验上就是颠覆式的,使用的时候它很自然,没有什么存在感。但是用了就回不去了。
Hybird是用WebView加载一个网站或一个SPA。
小程序是国内前端技术的一次厚积薄发:底层运行的迷你React的虚拟DOM, 内置组件是使用Web Component,API来源于Hybird的桥方法,打包使用webpack,调试台是Chrome console的简化版, WXML、WXSS的语法高亮也应该是webpack或VS Code的插件, 模块机制是Node.js的CommonJS……其中最值得一提的是微信开发者工具,以后开发者工具成了各种小程序/快应用的标配。
最小化范围的必然结果是分离功能和非功能的变化。
我个人来说的应该是有点焦虑了 开始学rust 因为前端的天花板 太低了 还是要朝着外面走
离职原因 公司的整体环境不太稳定,结构性调整
已拿到其他家offer 18年 去了 腾讯科技 负责 的工作 项目 的需求, 对口的业务线。。。 微业贷, 小微企业。 提供的app。
经验: 成长角度、在选择上面、下一个地方:稳定性 。
学习一些领域的东西,深度距离。
技术栈: Vue、App RN 小程序 原生
项目形态: 小程序、Pc、App、ToC\ToB ToB的系统
职务:主要对外小程序(toC)、商家工作台(微前端)sass化、绩效能够推荐一些新技术、新框架、新工具
团队都有: 1. 业务型 2. 技术型 3. 产品型 4. 项目型 2. 提升框架使用层面(光度)、担心() 3. 还有两轮技术面---中心领导 找 hr 4. 领导----基于已有的东西--面试