meixg / blog-hexo Goto Github PK
View Code? Open in Web Editor NEWblog-hexo
blog-hexo
https://meixg.cn/2019/09/12/debug-ts-d/
VSCode 在调试 TypeScript 文件时,使用的 ts-node,会出现不识别全局定义文件的问题。
https://meixg.cn/2016/01/14/design-pattern-4/
最近看了刘伟写的《设计模式的艺术》, 第一次具体的学习设计模式,整理了一下笔记。 每种设计模式基本上都只写了定义和结构图,只是写给自己看的,方便回忆使用场景、优缺点等。
https://meixg.cn/2018/11/18/typescript-compile/
最近在做一个 ts 语言编译的项目,了解了一下 ts 库提供的一些 api,以及编译流程。ts 自身提供了强大的 api,可以帮助我们进行 ts 语言编译器的开发。
https://meixg.cn/2019/04/24/ts2php/
我们实现了一个工具 ts2php,可以将 TypeScript 文件转换为 PHP 文件,支持了大部分的 TypeScript 语法。它的意义在于可以让同一份逻辑,在前端(通过 JS)和后端(通过 PHP)都可以执行。 又一个装 X 项目?为什么要将 TypeScript 转换为 PHP?当然因为 PHP 是世界上最好的语言😂。 玩笑放在一边,技术要为业务服务,这么做的原因,就是业务需要,对业务
https://meixg.cn/2016/01/06/design-pattern-2/
最近看了刘伟写的《设计模式的艺术》, 第一次具体的学习设计模式,整理了一下笔记。 每种设计模式基本上都只写了定义和结构图,只是写给自己看的,方便回忆使用场景、优缺点等。
https://meixg.cn/2017/10/18/javascript-object-oriented-note/
最近读了Nicholas大神的另一本书。这本书比较久了,不涉及ES6的部分。虽然ES6中的class更加适合面向对象编程。但这本书中的构造函数,原型,继承等也是非常需要了解的。这里只记下了读的过程中觉得不熟悉的地方,因此只适合自己看,算是一个备忘录吧。
https://meixg.cn/2015/09/25/change-two-variables-position/
今天在《深入理解计算机系统》上看到的,突然想到以前似乎看到过这样的题:不使用其他变量,交换两个变量的位置。
https://meixg.cn/2015/10/26/create-amazing-forms/
学习google的web基础的学习笔记,from Create amazing forms。
https://meixg.cn/2017/08/01/first-meaningful-paint/
在做网页的性能监控时,首屏加载时间是必不可少的统计项。但是到底如何算是首屏呢?怎么能更好的统计首屏时间呢?lighthouse中的First Meaningful Paint或许能给我们启发。
https://meixg.cn/2017/06/15/https-1/
这两天在自己的博客上启用了全站https,把过程在这里分享一下。
https://meixg.cn/2017/07/26/vue-snabbdom/
vue在2.0版本中引入了virtual-DOM,其实现复刻了开源库snabbdom,最近看了一下snabbdom的源码。snabbdom从0.6.0版本开始使用了TypeScript,本文使用的是0.5.4使用JavaScript的版本。
https://meixg.cn/2017/03/22/the-economic-way-of-thinking/
读完了《经济学的思维方式》,非常好的一本书,每一章都引发很多思考,可惜的是找不到人讨论。读一遍肯定不够,以后需要继续读。书中的内容很多,一些笔记(更像是摘抄),记录下来,有很多值得继续思考的地方。
https://meixg.cn/2018/05/19/soft-skills-notes/
最近读完了《软技能——代码之外的生存指南》,这本书重点在于如何将程序员的职业生涯过的更好。作为一个程序员,绝不仅仅是技术好就可以的,并且就连着重在哪些技术上,也是需要抉择的。这本书在职业、自我营销、学习、生产力、理财、健身和精神这几个方面都给出了很好的简易,十分推荐。
https://meixg.cn/2016/01/11/design-pattern-3/
最近看了刘伟写的《设计模式的艺术》, 第一次具体的学习设计模式,整理了一下笔记。 每种设计模式基本上都只写了定义和结构图,只是写给自己看的,方便回忆使用场景、优缺点等。
https://meixg.cn/2017/04/09/learn-motocycle/
4月7号,终于拿到了驾本。记录一下,希望能帮助到其他想增驾的朋友。
https://meixg.cn/2016/01/04/design-pattern-1/
最近看了刘伟写的《设计模式的艺术》,第一次具体的学习设计模式,整理了一下笔记。
https://meixg.cn/2015/10/22/javascript-object-inherit/
继承分为接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。由于函数没有签名,因此在ECMAscript中不支持接口继承,只支持实现继承。ECMAScript中描述了原型链的概念,并将其作为实现继承的主要方法。其基本**是利用原型让一个引用类型继承另一个引用类型的属性和方法。
https://meixg.cn/2017/05/24/vue-anchor-scroll/
在普通页面中,点击浏览器的返回按钮,在返回到上一页时会处在上次浏览的位置。单页面应用中,由于始终是同一个页面, 因此需要自行实现页面返回时的锚点。Vue-router的Scroll Behavior可以用于解决这个问题,但是只能应用在HTML5 history模式。本文实现了在hash模式下的锚点跳转。
https://meixg.cn/2018/06/20/prevent-webview-exit/
在移动端开发时,一个很常见的情况是客户端开启一个 webview 来展示 h5 页面,端上会给这个 webview 提供一个返回按钮等功能,当点按返回没有历史记录时,就会退出当前 webview。PM 有时会有需求在退出 h5 应用时弹窗提示用户,在用户点击确认后,才真正退出,这里提供一个实现这个需求的思路。
https://meixg.cn/2017/03/22/webpack-library/
如果想要使用webpack打包一个开发库供其他人使用,需要进行相应的配置。学习了一下,记录下来,其实主要是翻译的官方文档。
https://meixg.cn/2019/12/25/npm-module-diff-version/
最近开发了一个小工具:ts2php-diff-checker,用来简化 ts2php 的升级过程。其中需要安装 ts2php 的不同版本,发现在一个项目中同时安装一个库的多个版本是可行的。
https://meixg.cn/2018/04/23/vue-sfc-parser/
我们平时写的 .vue 文件称为 SFC(Single File Components)。vue 会先对 .vue 文件进行解析,分成 template、script、styles、customBlocks 四个部分,称为 descriptor。之后,再对这四个部分分别进行编译最终得到可以在浏览器中执行的 .js 文件。本文介绍将 SFC 解析为 descriptor 这一过程。
https://meixg.cn/2015/10/19/centos-openvpn/
学校的网络访问IPV4地址是计算流量的,并且相比其他高校还要贵出不少。而IPV6是不计流量的,在有IPV6地址的服务器上搭建OpenVPN可以用IPV6网络通过服务器转发访问IPV4地址,实现免流量上网。 首先需要一个有IPV6地址的服务器,我使用的是ramnode.com。CentOS 6操作系统。 另外阿里云等国内服务器使用IPv6 Tunnel Broker似乎也可以有IPV6地址。这样速度
https://meixg.cn/2019/07/11/mars-vnode/
为了提高小程序的开发效率,我们团队开发了Mars 框架,可以使用 Vue 语法开发小程序,同时支持编译到 H5。近期我们进行了 Mars 框架的性能升级,极大简化了 Vue 的 render 过程,去掉了 VNode 构建,省略了 patch 过程,从而获得了性能提升。
https://meixg.cn/2018/07/01/vue-error-handling/
最近需要在业务中加一个全局的 filter,filter 会对输入进行验证,用于进行前端监控。其中一个要处理的问题,就是验证失败后如何发送异常日志,这个过程中顺便了解了一下 vue 的异常处理机制。
https://meixg.cn/2018/05/27/simple-router/
最近做的业务展现在 app 中的 webview 里,app 提供的 webview 框架是默认有底部返回按钮的。pm 希望前端外部页面的框架保持不变,框架中展现的卡片页面可以点击返回按钮进行切换返回。于是想到了用一个简易的前端 router 来实现。
https://meixg.cn/2015/12/04/frontend-performance-rules/
from https://developer.yahoo.com/performance/rules.html 最近看了有名的yahoo关于前端性能优化的文章,做了一下笔记。
https://meixg.cn/2019/05/16/wsl/
WSL 全称为 Windows Subsystem for Linux,是一个为在 Windows 10 上能够原生运行 Linux 二进制可执行文件(ELF格式)的兼容层。微软早在 16 年就推出了 WSL,前一阵更是发布了 WSL 2.0,现在想必已经相对完善了。最近我在自己的 Windows 笔记本上安装了 WSL 并进行了体验,总体来说体验很棒,下面是具体的内容。
https://meixg.cn/2018/06/03/block-chain-background/
区块链最近很火,自己在看一本书了解一下,这里用自己的语言组织了一下区块链的一些背景知识~
https://meixg.cn/2015/10/15/integer/
最开始学习这些是在本科鼓捣单片机的时候,最近在看《深入理解计算机系统》,整理一下。
https://meixg.cn/2018/05/13/vscode-debug/
vscode 是一个非常棒的编辑器,内置功能强大的调试能力。经过简单的设定,就可以对 js 文件进行调试。但有时我们想要调试的内容是经过编译的,当然我们可以直接调试编译后的代码。但经过编译压缩以后的代码,可读性很差,且也可能无法分模块查看了,有什么方法进行编译前的代码调试么?答案当然是肯定的。
https://meixg.cn/2017/05/21/virtual-dom-1/
Virtual-DOM是现在前端框架中比较火的一个话题。不仅在React中使用,Vue2.0中也�使用了Virtual-DOM。诚然Virtual-DOM对服务器端渲染有很大帮助,但本文主要从数据流方面来看Virtual-DOM带来的变化。
https://meixg.cn/2016/09/21/RegExp-cheatsheet/
验证某个模式是否获得预期的匹配结果并不难,但如何验证它不会匹配到你不想要的东西就没那么简单了。 匹配单个字符 直接输入字符 .匹配任何单个字符 使用\进行转义 匹配一组字符 使用元字符[和]来定义一个字符集合 合法的字符区间 0-9匹配所有数字 A-Z a-z A-z会包含在Z和a之间的字符 使用元字符^对一个字符集合进行取非匹配 使用元字符 匹配空白字符 [\b]回退(Backspa
https://meixg.cn/2017/12/10/motorcycle-insurance-claims/
十一的时候自己发生了摩托车事故,第一次走了一遍交通事故理赔流程。中间有些波折,但最后总算处理完毕了,在这里记录一下。
https://meixg.cn/2017/09/13/package-json-dependency/
最近接手一个项目时,注意到其package.json中的依赖有的书写方式没见过,这里学习了一下package.json中dependency的不同写法。
https://meixg.cn/2018/05/05/css-auto-center/
垂直居中与全屏滚动不可得兼?有更好的方法。
https://meixg.cn/2017/06/12/diff-algorithm/
diff算法在Virtual-DOM中用于比较两个VNode树之间的不同,得到patch对象,之后根据patch对象来对真实DOM树进行修改。本文以React为例,介绍diff算法的过程。
https://meixg.cn/2016/08/05/weekly-2016-07-30/
新闻How Browsers will re-shape App Development with Progressive Web Apps https://welance.de/journal/progressive-web-apps/ 如何看待 Progressive Web Apps ? 你的首个Progressive Web App Progressive web apps running
https://meixg.cn/2019/06/30/prolog/
最近在看《七周七语言》这本书,其中有讲到 Prolog,感觉它跟平时自己用到的语言完全不同,是声明式的编程语言,因此安装尝试了一下。
https://meixg.cn/2019/03/03/vue-cli-create/
Vue-cli 是创建 Vue 项目的一个好方法,之前只是使用,没有关注过内部结构是咋样的。最近在做一个组内项目的 cli 工具,参考了一下 Vue-cli 的实现方法。
https://meixg.cn/2015/09/22/javascript-value-copy/
JavaScript中的变量分为基本类型的值和引用类型的值。 基本类型的值:Undefined、Null、Boolean、Number和String。 引用类型的值:object 复制变量值在复制变量时复制的都是值,两者都产生一个新的变量。不同的是 基本类型复制的是实际的值,而引用类型复制的值是地址(指针)。外在表现为基本类型值的变量在操作时原始变量不发生变化;而引用类型变量在进行操作时改变的
https://meixg.cn/2016/01/07/difference-mouseover-mouseenter/
之前在模仿qq首页的时候,有一个菜单弹出的窗口。 菜单分两部分,一部分是一直显示的,一部分是隐藏的。在鼠标进入到菜单上时,打开隐藏部分的按钮会变色,点击按钮会显示隐藏的菜单部分。 在制作这个过程中遇到了mouseover事件和mouseenter事件的不同,在这记录下来。
https://meixg.cn/2018/07/24/vscode-jsdoc-dts/
JavaScript 作为弱类型的语言,开发时不需要复杂的类型定义,可以快速实现需求完成业务迭代。但当项目越来越大,周期越来越长,弱类型反而会使得开发成本变高,利用 JSDoc + VS Code 可以一定程度上解决这个问题。
https://meixg.cn/2015/09/25/ransac/
最近在实现一篇论文时需要在3D空间点云中找出处在一个平面上的点,当共面的点超过30个时记为一个平面,尽量找出多个。 随机抽样一致性算法RANSAC(Random sample consensus)是一种迭代的方法来从一系列包含有离异值的数据中计算数学模型参数的方法。
https://meixg.cn/2019/03/11/twa/
PWA(Progressive Web App) 可以使得 Web 站点拥有类似 Native App 的使用体验,虽然已经推出一段时间,但目前来看,PWA 离真正的 Native App 还有一个重要的差别,那就是进入应用商店。Trusted Web Activity 的发布,使得将 PWA 站点打包为 Native App 放入应用商店有了更好的体验。为什么要把一个 Web 站点放入应用商店呢
https://meixg.cn/2018/06/10/vue-router-1/
最近因为业务需要,实现了一个简单的前端 router,正好也来看一下 vue router 是怎么实现的。这次先来一起看看 vue-router 初始化时做了什么💪。
https://meixg.cn/2017/10/22/koa-rate-limiter/
最近接了一个需求,很简单,就是起一个server,收到请求时调用某个提供好的接口,然后把结果返回。因为这个接口的性能问题,同时在请求的不能超过特定数目,要在服务中进行限流。 限流的要求是,限制同时执行的数目,超出这个数目后要在一个队列中进行缓存。
https://meixg.cn/2015/12/08/html-and-css/
最近看完了《HTML and CSS Design and Build Websites》,记了一下自己不熟悉的内容。
https://meixg.cn/2015/10/20/javascript-creat-object/
本文介绍了JavaScript中创建对象的几种方法,以及对象原型的问题。 创建对象的方法大致有五种,使用构造函数、使用对象字面量、工厂模式、构造函数模式以及原型模式。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.