RainBow
RainBow
## 一、面试题 - [2018大厂高级前端面试题汇总](https://github.com/yygmind/blog/issues/5) - [饥人谷 2019 前端押题(讲义)](https://zhuanlan.zhihu.com/p/59707202) - [饥人谷 2018 前端面试押题(讲义)](https://juejin.im/post/5aa8b00d5188255572081188) 【 [answer 1](https://www.jianshu.com/p/3d08d492a51f)】 - 中高级前端大厂面试秘籍,为你保驾护航金三银四,直通大厂 【 [ 上篇](https://juejin.im/post/5c64d15d6fb9a049d37f9c20) / [中篇](https://juejin.im/post/5c92f499f265da612647b754) / [下篇](https://juejin.im/post/5cc26dfef265da037b611738) 】 - [霖呆呆的中大厂面试记录及 2 年前端薪资对比(附赠学习方法)](https://juejin.im/post/5eda38ebf265da7700281d57) -...
```html Document function toUnicodeFun(data) { if (data == '' || typeof data == 'undefined') return '请输入汉字' var str = '' for (var i = 0; i < data.length; i++) {...
## 身份证正则校验 > 公民身份号码是 18 位数特征组合码,由 17 位数字本体码和 1 位数字校验码组成。 > > 第 1、2 位数字表示:所在省份的代码 > 第 3、4 位数字表示:所在城市的代码 > 第 5、6 位数字表示:所在区县的代码 > 第 7 位至 14 位为出生日期码,YYYYDDMM 出生年、月、日(其中...
## 如何成为优秀开发人员[0]:怎样算是优秀的? **文章目录** ★ 引子\ ★ 何为优秀?\ ★ 本系列的目录 ## ★ 引子 有感于国内软件开发人员的素质普遍低下,招聘程序员往往面试了 N 个人都看不到一个顺眼的(当然这里面有很大原因是教育体制的问题)。因此考虑写一个系列,聊一下"如何成为优秀的开发人员"这个话题。 ## ★ 何为优秀? 要想成为一个优秀的开发人员,先得搞清楚什么样的开发人员才能称得上是优秀的?要给"优秀开发人员"下一个准确的定义有一点点困难,于是我用举例来说明。\ 经我多年观察,对于大部分的软件开发团队都有这样的一个现象,那就是团队中的**少数**(一般来说,小于总人数的 20%)开发人员具有更快的开发效率、更好的程序设计、更好的代码质量、更善于 debug、更能够解决技术难题......(总之就是让 team leader 事事省心)。而且这一小撮开发人员的贡献总和可能与另外那一大撮人(大于总人数的 80%)的贡献总和不相上下(甚至可能超过)。那么,这一小撮开发人员,就是我所谓的优秀开发人员。(跑题一下,实际上这就是二八原理的一种生动体现,请看[二八原理系列的帖子](https://program-think.blogspot.com/2009/02/80-20-principle-0-overview.html))\ 说到这里,列位看官应该明白我所指的"优秀开发人员"是什么样的了吧?(如果个别读者还是不明白,那只能说明你智商偏低,本系列帖子不适合你)\ 如果你觉得自己目前还不属于这一小撮之列,但是希望自己日后成为他们中的一员,你该怎么做呢?我的建议就是:仔细阅读后续的"如何成为优秀的开发人员"系列文章。我会在里面逐一介绍相关的东东,或许有助于你能力的成长。\ 反之,如果你自认为已经**完全**符合我所说的优秀开发人员,那么恭喜你,你可以直接略过该系列文章,去看点别的什么东西吧 :-)\ ...
```html 透明气泡框(带上箭头) ``` ```scss .bubble-tag { position: relative; display: flex; justify-content: center; height: 40px; line-height: 40px; background: #ffffff; border: 1px solid #aaaaaa; text-align: center; font-size: 24px; color: #999; border-radius: 18px;...
## macOS & Linux 通过设置 http_proxy、https_proxy,可以让终端走指定的代理。 配置脚本如下,在终端直接执行,只会临时生效: ```bash # 设置代理 export http_proxy=http://127.0.0.1:8899 export https_proxy=$http_proxy # 或是一行命令 export https_proxy=http://127.0.0.1:8899 http_proxy=http://127.0.0.1:8899 # 还原代理 unset http_proxy https_proxy ``` `8899` 是 http 代理 Whistle...
> docs: https://vant-contrib.gitee.io/vant/v2/#/zh-CN/dialog > repo: https://github.com/youzan/vant/blob/2.x/src/dialog/index.js ## 函数调用 Dialog 是一个函数,调用后会直接在页面中弹出相应的模态框。 ```js import { Dialog } from 'vant'; // 基础提示 Dialog({ message: '提示' }); // 消息提示:用于提示一些消息,只包含一个确认按钮。 Dialog.alert({ title: '标题', message: '弹窗内容',...
几乎所有的技术团队,都会经历或多或少的技术债务。技术债务虽然是实现快速收益的一种捷径,但是为了修复那些为了快速收益而不得不为之的技术问题,企业往往需要花费大量的金钱、人力等。那么如何有效地避免技术债务,使得开发人员能把更多的精力投入在有效的工作,从而产生额外价值、提高企业的产品竞争力呢? 技术债务的产生有着很多原因,但其中更多的是由于要在短时间内匆忙完成原本耗时较长的工作,导致部分业务逻辑没有完整的设计等,使得产品在短时间内有效,但是长远来看,却是一颗不稳定的炸弹,一旦触发,对产品、对企业都有可能造成无法挽回的损失。总而言之,技术债务会带来很多麻烦,有些甚至是"致命"的。 ## 什么是技术债务?  技术负债(英语:Technical debt),又译技术债,也称为设计负债(design debt)、代码负债(code debt),是编程及软件工程中的一个比喻。指开发人员为了加速软件开发,在应该采用最佳方案时进行了妥协,改用了短期内能加速软件开发的方案,从而在未来给自己带来的额外开发负担。这种技术上的选择,就像一笔债务一样,虽然眼前看起来可以得到好处,但必须在未来偿还。软件工程师必须付出额外的时间和精力持续修复由于之前的妥协所造成的问题及副作用,或是进行重构,把架构改善为最佳实现方式。 ------摘自 维基百科 很多人将技术债务类比于金融债务,但是和金融债务不同的是,技术债务可能不会承担利息。例如当需要快速验证产品的某个特点的时候,带有一定技术债务的产品可能是个好的选择;当验证之后,无需该特点的时候,即可以直接移除等,此时可能不会承担债务利息。但是大多数时候,此类情况较少,就算仅仅是为了验证产品,也不建议使用技术债务的方式去实施。类似这样的技术债务可称为有意的技术债务,另一种更加危险的技术债务称为无意的技术债务,无意的技术债务就像是前文说到的隐藏在代码中的炸弹。 无论是那种技术债务,在未来的产品迭代过程中,都需要开发人员去界定债务边界,不能任由技术债务滋生,否则在迭代过程中,面临的困难会越来越多,甚至需要被迫承担更多的技术债务。基本上,你承担的债务越多,项目的进度就越慢,项目的后续阶段就会更加困难。 但是需要清楚的是,技术债务是无法消除的,你必须随时做好承担技术债务的准备。因为在有的项目场景中,一些解决方案可以针对性解决某些具体问题,但是该方案可能不是全局有效或最佳的,于是在系统的其他方面就形成了一个不可避免而必须承担的技术债务问题。一个好的工程师团队,应该是能够最小化技术债务影响,并对技术债务进行合理管理的团队。  上文提到,技术债务分为有意的技术债务和无意的技术债务,两种形式的技术债务形成的原因和带来的结果是不同的。在某些情况下,有意的技术债务相比无意的技术债务更好,有意的技术债务会让团队意识到问题,从而有意的去进行优化改进等;而无意的技术债务可能在项目中潜伏很长一段时间,可能导致严重的问题,然而,无意的技术债务在项目中是无法避免的,只能通过在工程师团队中强化编码规范、业务理解等来对技术债务进行管理或者减弱其出现的可能。 另外还可以将技术债务分类为鲁莽型技术债务和谨慎型技术债务。一些谨慎型的技术债务在项目进程中是可取的,但是不论是哪种技术债务,都需要每个人勇于承担。理想的情况下,承担的债务应当是那些有意的和谨慎的技术债务,而那些无意的和鲁莽的技术债务应当不惜一切代价去避免。 ## 为什么要关心技术债务?  **技术债务如何影响开发** 在开发阶段,开发人员不可避免会遇到技术债务,应当直面技术债务,并积极处理技术债务问题。虽然处理技术债务可能会使得开发周期变长,但从长远来看,开发人员及时处理技术债务是有益的,一方面处理技术债务是一个技术经验积累的过程,另一方面及时的处理可以在之后的迭代中减少技术债务产生的可能等。每一个开发人员都应当有意的或者尽力地避免那些无意的和鲁莽的技术债务。 **技术债务如何影响客户** 虽然乍看起来,技术债务和客户并无联系,客户也不太关心产品的代码质量等,客户只需要在成本没有增加的情况下,产品能够按时交付使用。然而,一个背负无意或者鲁莽的技术债务的产品在开发过程中,往往需要花费更多的时间、精力和资源,导致成本增加而收益却减少的情况等。  **技术债务如何影响用户** 即使是间接的,用户也会受到技术债务的影响。他们可能不关心软件开发所需的工作量或资金,但他们确实关心它的可靠运行,以及快速添加的新功能,这两者都可能受到大量技术债务的影响。用户越快乐,客户越快乐,开发者越快乐。 ## 技术债务最佳实践 ...
## 工具方法 ### load ```js function loadCss(url, callback) { return new Promise((resolve) => { var node = document.createElement("link"); node.type = "text/css"; node.rel = "stylesheet"; node.href = url; node.onerror = node.onload...
## 目录 **职位** - CEO:首席执行官 (Chief executive officer),是在一个企业中负责日常事务的最高行政官员,又称作行政总裁、总经理或最高执行长 - CTO: 首席技术官(Chief technology officer), 类似总工程师,是企业內负责技术的最高负责人 - COO: 首席运营官(Chief operating officer) ,是公司团体里负责监督管理每日活动的高阶官员,并直接报告给首席执行官 - CFO: 首席财务官(Chief financial officer) ,类似财务总经理 - PM: 项目主管或项目经理(Project Manager),主要负责统筹规划项目进度及产品生命,其工作职能直接对公司高层负责。...