pengfei huang

Results 20 issues of pengfei huang

http://hpoenixf.com/posts/2511/ 最近接触了不少面试题目,有这么一类常见的题目,没有标准答案,上下限差距很大,第一次碰到没有准备的话,回答起来总会比较纠结。 具体的题目有性能优化,提升代码质量,做埋点系统,优化webpack等,这里我把他们统称为系统设计和优化题。 在这里我尝试找一下应对这些问题的套路,让大家可以在工作和面试中找到感觉,顺利过关。

Gitalk
/posts/2511/

http://hpoenixf.com/posts/34369/ 帧同步简介帧同步是让玩家保持一致性,可以进行对战联机的功能,王者荣耀要采用了该技术。简单点来说,就是每当玩家进行操作,都会上传对应的操作给服务器,服务器定时将收到的操作发放给游戏客户端,每个游戏客户端收到的数据都是一样的,运行的结果自然也是一样的。 帧同步跟状态同步相比,优点有:高一致性,低流量消耗,简化服务器逻辑,容易反作弊。

Gitalk
/posts/34369/

http://hpoenixf.com/posts/25280/ 背景之前我分享了文章大厂前端面试考什么?,你们一定很想看答案吧?说实话,答案我是有,在准备面试的时候会时不时翻看,但内容比较多,比较凌乱,不能指望我在一篇文章中写完。 我是从非计算机专业自学前端的,到现在(2018年4月)有两年半的时间。中间经历了不少迷茫,技术也止步不前,怀疑自己可能只是一辈子这样写写页面。然而在最近的面试中通过学习和思考,找到了前进的方向,也得到一些大公司(BATJ中的两家)的

Gitalk
/posts/25280/

http://hpoenixf.com/posts/63809/ 最近读了代码整洁之道和编写可维护代码的艺术,发现这两本书的道理还是相同的,主要是下面这几点,命名,注释,逻辑,函数,格式,组织。写篇文章整合记录一下。 命名好的命名有下面的特征 名副其实 名字与抽象层级符合 有表现力 名字带上更多信息 大作用域的名字使用更长的名字。 避免误导,类似,容易混淆的名字 名字的区分有意义 可读的/容易搜索/熟悉的名字 每个概念用同一个名字,如获取数据统一用fetchX

Gitalk
/posts/63809/

http://hpoenixf.com/posts/63808/

Gitalk
/posts/63808/

http://hpoenixf.com/posts/8215/ 简介virtual dom是一个听起来很高大上的概念,是现代前端框架一个常见的概念。然而virtual dom并不像想象中的那么复杂,两三百行的代码就可以完成一个简单的实现,比如snabbdom的核心代码只有三百多行 snabbdom是一个简单而高效的virtual dom实现。vue便是维护了snabbdom的一份fork而实现virtual dom的。这两天阅读了snabbdom的源码,整理出

Gitalk
/posts/8215/

http://hpoenixf.com/posts/41240/ 背景设计一个模态弹窗,讲一下你会怎么设计。 该题目来自某大厂的电话面试。该题目具有开放性,可以考察面试者的项目构思经验与能力,是一个比较不错的题目。 我试着整理一下我的解答,在这里跟大家讨论交流一下。

Gitalk
/posts/41240/

http://hpoenixf.com/posts/2967/ 编写代码只是做好项目的一小部分,写代码难免会碰到错误。因此,在项目上线后,我们还需要主动对项目的错误进行收集,不能等用户发现错误,再联系我们,我们再去处理。这样很容易造成大的损失,提前做好错误收集和处理,可以减少损失。 本人并没有做过相关的工作,下面的文章只是我在学习中的一点思考和总结,可能有比较多不足和错误的地方,希望大家指正和指导。 本文章为前端进阶系列的一部分,欢迎关注和star本博客或是关

Gitalk
/posts/2967/

http://hpoenixf.com/posts/64382/ 在性能优化的时候,比较常见的一个建议是,把资源部署在CDN上,那么问题来了,CDN是什么?这样做有什么好处? DNS我们先讲一下域名系统DNS(Domain Name System)吧。

Gitalk
/posts/64382/

http://hpoenixf.com/posts/37425/ 面向对象有三个特点,一个个来说 封装私有变量利用闭包实现对象的私有变量。 12345678910function Animal (age) { this.getAge = function () { return age }}var dog = new Animal(3)console.log(dog.age) // undefinedconsol

Gitalk
/posts/37425/