From 9e2d932c97f6924e7294bc161d531d147185c3be Mon Sep 17 00:00:00 2001 From: quanru Date: Fri, 20 Sep 2024 14:24:46 +0000 Subject: [PATCH] deploy: 7613a13c3a98a928cd7449d3be57659eb0edea93 --- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../HTML5\346\210\252\345\233\276/index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- 404.html | 2 +- about/index.html | 4 +- archives/2015/06/index.html | 2 +- archives/2015/07/index.html | 2 +- archives/2015/08/index.html | 2 +- archives/2015/09/index.html | 2 +- archives/2015/11/index.html | 2 +- archives/2015/index.html | 2 +- archives/2016/03/index.html | 2 +- archives/2016/04/index.html | 2 +- archives/2016/08/index.html | 2 +- archives/2016/10/index.html | 2 +- archives/2016/11/index.html | 2 +- archives/2016/12/index.html | 2 +- archives/2016/index.html | 2 +- archives/2016/page/2/index.html | 2 +- archives/2017/03/index.html | 2 +- archives/2017/08/index.html | 2 +- archives/2017/12/index.html | 2 +- archives/2017/index.html | 2 +- archives/2018/02/index.html | 2 +- archives/2018/index.html | 2 +- archives/2019/07/index.html | 2 +- archives/2019/index.html | 2 +- archives/2020/04/index.html | 2 +- archives/2020/05/index.html | 2 +- archives/2020/06/index.html | 2 +- archives/2020/09/index.html | 2 +- archives/2020/10/index.html | 2 +- archives/2020/index.html | 2 +- archives/2021/04/index.html | 2 +- archives/2021/12/index.html | 2 +- archives/2021/index.html | 2 +- archives/2022/12/index.html | 2 +- archives/2022/index.html | 2 +- archives/2023/06/index.html | 2 +- archives/2023/07/index.html | 2 +- archives/2023/index.html | 2 +- archives/index.html | 2 +- archives/page/2/index.html | 2 +- archives/page/3/index.html | 2 +- archives/page/4/index.html | 2 +- archives/page/5/index.html | 2 +- atom.xml | 42 +++++++++---------- .../index.html" | 4 +- categories/index.html | 2 +- .../index.html" | 6 +-- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../\346\200\273\347\273\223/index.html" | 4 +- .../index.html" | 8 ++-- .../index.html" | 6 +-- .../\351\235\242\350\257\225/index.html" | 4 +- content.json | 2 +- index.html | 10 ++--- page/2/index.html | 4 +- page/3/index.html | 6 +-- page/4/index.html | 8 ++-- page/5/index.html | 6 +-- tags/Bundler/index.html | 4 +- tags/CSS/index.html | 4 +- tags/Canvas/index.html | 4 +- tags/Compiler/index.html | 4 +- tags/Diagnostics-Tool/index.html | 4 +- tags/Git/index.html | 4 +- tags/Goal-Management/index.html | 4 +- tags/JavaScript/index.html | 4 +- tags/JavaScript/page/2/index.html | 6 +-- tags/JavaScript/page/3/index.html | 8 ++-- tags/Javascript/index.html | 4 +- tags/JsBridge/index.html | 4 +- tags/LifeOS/index.html | 8 ++-- tags/Linux/index.html | 4 +- tags/Micro-Frontend/index.html | 4 +- tags/Monorepo/index.html | 4 +- tags/Node-js/index.html | 4 +- tags/Node-js/page/2/index.html | 4 +- tags/PKM/index.html | 4 +- tags/Periodic-Note/index.html | 4 +- tags/React/index.html | 4 +- tags/Redux/index.html | 4 +- tags/Task-Management/index.html | 4 +- tags/Time-Management/index.html | 4 +- tags/Webview/index.html | 4 +- tags/index.html | 2 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 6 +-- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../index.html" | 6 +-- .../index.html" | 4 +- .../index.html" | 4 +- "tags/\351\207\215\346\236\204/index.html" | 4 +- 150 files changed, 292 insertions(+), 292 deletions(-) diff --git "a/2015/06/14/\344\270\215\350\246\201\345\217\253\346\210\221\347\250\213\345\272\217\347\214\277-\346\210\221\346\230\257\345\211\215\347\253\257\345\274\200\345\217\221\345\267\245\347\250\213\347\213\256/index.html" "b/2015/06/14/\344\270\215\350\246\201\345\217\253\346\210\221\347\250\213\345\272\217\347\214\277-\346\210\221\346\230\257\345\211\215\347\253\257\345\274\200\345\217\221\345\267\245\347\250\213\347\213\256/index.html" index 055b72ea..e0ab8937 100644 --- "a/2015/06/14/\344\270\215\350\246\201\345\217\253\346\210\221\347\250\213\345\272\217\347\214\277-\346\210\221\346\230\257\345\211\215\347\253\257\345\274\200\345\217\221\345\267\245\347\250\213\347\213\256/index.html" +++ "b/2015/06/14/\344\270\215\350\246\201\345\217\253\346\210\221\347\250\213\345\272\217\347\214\277-\346\210\221\346\230\257\345\211\215\347\253\257\345\274\200\345\217\221\345\267\245\347\250\213\347\213\256/index.html" @@ -1,5 +1,5 @@ -不要叫我程序猿,我是前端开发工程狮 - 林宜丙的博客 -

不要叫我程序猿,我是前端开发工程狮

上学期期末开始了解到前端开发,当时忙于做实验、写论文、投文章,也就没深入了解,当时觉得挺好玩的,所以屁颠屁颠的去借了一本《HTML与CSS入门经典》,当时那个迷茫啊。一开始是借了《Java编程思想》和《Android 4.X从入门到精通》,想着复习下Java,然后动手写写安卓,然后毕业搞安卓开发,后来也没看下去。那本入门经典是很基础的那种,看起来轻轻松松地,兴趣也慢慢培养起来。

+

不要叫我程序猿,我是前端开发工程狮

上学期期末开始了解到前端开发,当时忙于做实验、写论文、投文章,也就没深入了解,当时觉得挺好玩的,所以屁颠屁颠的去借了一本《HTML与CSS入门经典》,当时那个迷茫啊。一开始是借了《Java编程思想》和《Android 4.X从入门到精通》,想着复习下Java,然后动手写写安卓,然后毕业搞安卓开发,后来也没看下去。那本入门经典是很基础的那种,看起来轻轻松松地,兴趣也慢慢培养起来。

引言

上学期期末开始了解到前端开发,当时忙于做实验、写论文、投文章,也就没深入了解,当时觉得挺好玩的,所以屁颠屁颠的去借了一本《HTML与CSS入门经典》,当时那个迷茫啊。一开始是借了《Java编程思想》和《Android 4.X从入门到精通》,想着复习下Java,然后动手写写安卓,然后毕业搞安卓开发,后来也没看下去。那本入门经典是很基础的那种,看起来轻轻松松地,兴趣也慢慢培养起来。之后隔了一个寒假回来,论文却被拒了。差不多也是那时开始决心好好学习前端,所以借了一些特别经典的前端书籍,例如:《CSS权威指南》、《精通CSS:高级Web标准解决方案》、《JavaScript编程精解》、《JavaScript权威指南》。

diff --git "a/2015/06/15/JavaScript\346\235\203\345\250\201\346\214\207\345\215\227\343\201\256\347\254\224\350\256\260/index.html" "b/2015/06/15/JavaScript\346\235\203\345\250\201\346\214\207\345\215\227\343\201\256\347\254\224\350\256\260/index.html" index a4b87fb0..aa1965ca 100644 --- "a/2015/06/15/JavaScript\346\235\203\345\250\201\346\214\207\345\215\227\343\201\256\347\254\224\350\256\260/index.html" +++ "b/2015/06/15/JavaScript\346\235\203\345\250\201\346\214\207\345\215\227\343\201\256\347\254\224\350\256\260/index.html" @@ -1,5 +1,5 @@ -JavaScript 权威指南の笔记 - 林宜丙的博客 -

JavaScript 权威指南の笔记

    +

    JavaScript 权威指南の笔记

    1. 当Javascript解释器启动时,它将创建一个新的全局对象,并给它一组定义的初始属性。
    2. 只要引用了字符串直接量的属性,就会将字符串值通过调用new String(). 方式转换成对象,一旦引用结束,则销毁这个临时对象。
    3. “==”将运算符将原始值与其包装对象视为相等,而“===”不然。
    4. diff --git "a/2015/06/16/16\345\256\253\346\240\274\346\213\226\346\213\275/index.html" "b/2015/06/16/16\345\256\253\346\240\274\346\213\226\346\213\275/index.html" index c9a860c9..b0756fc3 100644 --- "a/2015/06/16/16\345\256\253\346\240\274\346\213\226\346\213\275/index.html" +++ "b/2015/06/16/16\345\256\253\346\240\274\346\213\226\346\213\275/index.html" @@ -1,5 +1,5 @@ -16宫格拖拽 - 林宜丙的博客 -

      16宫格拖拽

      实现一个如图所示的16宫格页面,其中各个数字盒子之间是能相互拖拽,并交换位置的。而横纵各自的标题栏ABC与XYZ实现的功能则是,ABC(XYZ)之间两两互换位置,从而引起两列(行)一起调换位置。

      +

      16宫格拖拽

      实现一个如图所示的16宫格页面,其中各个数字盒子之间是能相互拖拽,并交换位置的。而横纵各自的标题栏ABC与XYZ实现的功能则是,ABC(XYZ)之间两两互换位置,从而引起两列(行)一起调换位置。

      16宫格拖拽

      实现一个如图所示的16宫格页面,其中各个数字盒子之间是能相互拖拽,并交换位置的。而横纵各自的标题栏ABC与XYZ实现的功能则是,ABC(XYZ)之间两两互换位置,从而引起两列(行)一起调换位置。

      diff --git "a/2015/07/19/HTML5\346\210\252\345\233\276/index.html" "b/2015/07/19/HTML5\346\210\252\345\233\276/index.html" index 4d9bbd8c..d93125a1 100644 --- "a/2015/07/19/HTML5\346\210\252\345\233\276/index.html" +++ "b/2015/07/19/HTML5\346\210\252\345\233\276/index.html" @@ -1,5 +1,5 @@ -HTML5 截图 - 林宜丙的博客 -

      HTML5 截图

      实现一个类似于QQ截图的小东西,点击载入按钮,则载入图片,长按图片,弹出截图框,截图框右下角能够调整大小,并在右边的截图预览区域实时显示

      +

      HTML5 截图

      实现一个类似于QQ截图的小东西,点击载入按钮,则载入图片,长按图片,弹出截图框,截图框右下角能够调整大小,并在右边的截图预览区域实时显示

      需求

      实现一个类似于QQ截图的小东西,点击载入按钮,则载入图片,长按图片,弹出截图框,截图框右下角能够调整大小,并在右边的截图预览区域实时显示,其最终效果图如下:
      示意图

      diff --git "a/2015/07/19/Javascript \345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\343\201\256\344\271\246\346\221\230/index.html" "b/2015/07/19/Javascript \345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\343\201\256\344\271\246\346\221\230/index.html" index 61bcdacc..c3747a51 100644 --- "a/2015/07/19/Javascript \345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\343\201\256\344\271\246\346\221\230/index.html" +++ "b/2015/07/19/Javascript \345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\343\201\256\344\271\246\346\221\230/index.html" @@ -1,5 +1,5 @@ -Javascript 函数式编程の书摘 - 林宜丙的博客 -

      Javascript 函数式编程の书摘

      章一

      1,确定抽象,并为其构建函数;
      2,利用已有的函数来构建更为复杂的抽象;
      3,通过将现有的函数传给其他的函数来构建更加复杂的抽象。

      +

      Javascript 函数式编程の书摘

      章一

      1,确定抽象,并为其构建函数;
      2,利用已有的函数来构建更为复杂的抽象;
      3,通过将现有的函数传给其他的函数来构建更加复杂的抽象。

      章一

      1,确定抽象,并为其构建函数;
      2,利用已有的函数来构建更为复杂的抽象;
      3,通过将现有的函数传给其他的函数来构建更加复杂的抽象。

      diff --git "a/2015/08/16/Schema\344\270\216\344\270\213\350\275\275\346\235\241/index.html" "b/2015/08/16/Schema\344\270\216\344\270\213\350\275\275\346\235\241/index.html" index ef27fd83..012433a6 100644 --- "a/2015/08/16/Schema\344\270\216\344\270\213\350\275\275\346\235\241/index.html" +++ "b/2015/08/16/Schema\344\270\216\344\270\213\350\275\275\346\235\241/index.html" @@ -1,5 +1,5 @@ -Schema 与下载条 - 林宜丙的博客 -

      Schema 与下载条

      由于我司有个网站还没有对应的移动端版本,因此需要在移动端访问该网站时,在底部显示一条下载条,而且点击该下载条时需要满足以下两个需求:

      +

      Schema 与下载条

      由于我司有个网站还没有对应的移动端版本,因此需要在移动端访问该网站时,在底部显示一条下载条,而且点击该下载条时需要满足以下两个需求:

      1. 点击下载时,如果本机已经安装该软件,则尝试打开对应软件;
      2. 点击下载时,如果本机未安装该软件,则跳转到对应系统的下载地址。
      3. diff --git "a/2015/09/14/\344\273\216line-height\345\210\2600-5px/index.html" "b/2015/09/14/\344\273\216line-height\345\210\2600-5px/index.html" index c9cff165..becacee1 100644 --- "a/2015/09/14/\344\273\216line-height\345\210\2600-5px/index.html" +++ "b/2015/09/14/\344\273\216line-height\345\210\2600-5px/index.html" @@ -1,5 +1,5 @@ -从 line-height 到 0.5 px - 林宜丙的博客 -

        从 line-height 到 0.5 px

        前几天发现写的一段代码,其中line-height(1.7rem)与height(1.7rem)相等,font-size(1.1rem);在ios设备上文字垂直居中,而在android设备上竟上下缝隙相差1px(其实我看不出来是不是一像素,我猜的)。

        +

        从 line-height 到 0.5 px

        前几天发现写的一段代码,其中line-height(1.7rem)与height(1.7rem)相等,font-size(1.1rem);在ios设备上文字垂直居中,而在android设备上竟上下缝隙相差1px(其实我看不出来是不是一像素,我猜的)。

        问题

        前几天发现写的一段代码,其中line-height(1.7rem)与height(1.7rem)相等,font-size(1.1rem);在ios设备上文字垂直居中,而在android设备上竟上下缝隙相差1px(其实我看不出来是不是一像素,我猜的)。

        diff --git "a/2015/11/18/\345\256\236\344\271\240\346\200\273\347\273\223/index.html" "b/2015/11/18/\345\256\236\344\271\240\346\200\273\347\273\223/index.html" index 79b56998..d104e904 100644 --- "a/2015/11/18/\345\256\236\344\271\240\346\200\273\347\273\223/index.html" +++ "b/2015/11/18/\345\256\236\344\271\240\346\200\273\347\273\223/index.html" @@ -1,5 +1,5 @@ -实习总结 - 林宜丙的博客 -

        实习总结

        上接《不要叫我程序猿,我是前端开发工程狮》,话说我去了挖财实习,此处省略一万字,然后我就顺利转正,接着回学校撰写毕业论文了。

        +

        实习总结

        上接《不要叫我程序猿,我是前端开发工程狮》,话说我去了挖财实习,此处省略一万字,然后我就顺利转正,接着回学校撰写毕业论文了。

        上接《不要叫我程序猿,我是前端开发工程狮》,话说我去了挖财实习,此处省略一万字,然后我就顺利转正,接着回学校撰写毕业论文了。

        diff --git "a/2016/03/18/Node.js \345\274\200\345\217\221\346\214\207\345\215\227\344\271\246\346\221\230/index.html" "b/2016/03/18/Node.js \345\274\200\345\217\221\346\214\207\345\215\227\344\271\246\346\221\230/index.html" index f40a43ad..29fa0805 100644 --- "a/2016/03/18/Node.js \345\274\200\345\217\221\346\214\207\345\215\227\344\271\246\346\221\230/index.html" +++ "b/2016/03/18/Node.js \345\274\200\345\217\221\346\214\207\345\215\227\344\271\246\346\221\230/index.html" @@ -1,5 +1,5 @@ -Node.js 开发指南の书摘 - 林宜丙的博客 -

        Node.js 开发指南の书摘

        章三

        1,单次加载:

        +

        Node.js 开发指南の书摘

        章三

        1,单次加载:

        require不会重复加载模块,无论调用多少次require,获得的模块都是同一个;

        diff --git "a/2016/03/18/Node.js \347\232\204 Morgan \346\250\241\345\235\227\344\270\216 Cluster \346\250\241\345\235\227/index.html" "b/2016/03/18/Node.js \347\232\204 Morgan \346\250\241\345\235\227\344\270\216 Cluster \346\250\241\345\235\227/index.html" index 7564d988..5a3aa196 100644 --- "a/2016/03/18/Node.js \347\232\204 Morgan \346\250\241\345\235\227\344\270\216 Cluster \346\250\241\345\235\227/index.html" +++ "b/2016/03/18/Node.js \347\232\204 Morgan \346\250\241\345\235\227\344\270\216 Cluster \346\250\241\345\235\227/index.html" @@ -1,5 +1,5 @@ -Node.js 的 Morgan 模块与 Cluster 模块 - 林宜丙的博客 -

        Node.js 的 Morgan 模块与 Cluster 模块

        这段时间鼓捣Node.js,跟着《Node.js 开发指南》把 Microblog 给实现了一下,由于该书撰写于 2012 年,Node 版本目前最新已更新至 v5.9.0,且 Express 也发生了相当大的变化,导致很多书中代码已经不符合当前的版本了。关于实现部分,可参考这篇文章:《nodejs开发指南》微博实例express4.x版 。BTW,目前 express 启动命令改为 npm start,该命令执行 bin 目录下的 www 文件,相当于直接执行 node ./bin/www。此处简要记录下该书第六章提到的关于日志与多核CPU的优化问题,并介绍一款 debug tool。整个 microblog 的代码已放至 github 上:摸我

        +

        Node.js 的 Morgan 模块与 Cluster 模块

        这段时间鼓捣Node.js,跟着《Node.js 开发指南》把 Microblog 给实现了一下,由于该书撰写于 2012 年,Node 版本目前最新已更新至 v5.9.0,且 Express 也发生了相当大的变化,导致很多书中代码已经不符合当前的版本了。关于实现部分,可参考这篇文章:《nodejs开发指南》微博实例express4.x版 。BTW,目前 express 启动命令改为 npm start,该命令执行 bin 目录下的 www 文件,相当于直接执行 node ./bin/www。此处简要记录下该书第六章提到的关于日志与多核CPU的优化问题,并介绍一款 debug tool。整个 microblog 的代码已放至 github 上:摸我

        一、前言

        这段时间鼓捣Node.js,跟着《Node.js 开发指南》把 Microblog 给实现了一下,由于该书撰写于 2012 年,Node 版本目前最新已更新至 v5.9.0,且 Express 也发生了相当大的变化,导致很多书中代码已经不符合当前的版本了。关于实现部分,可参考这篇文章:《nodejs开发指南》微博实例express4.x版 。BTW,目前 express 启动命令改为 npm start,该命令执行 bin 目录下的 www 文件,相当于直接执行 node ./bin/www。

        diff --git "a/2016/04/17/\344\275\277\347\224\250 Linux \347\263\273\347\273\237\345\274\200\345\217\221Web\345\211\215\347\253\257/index.html" "b/2016/04/17/\344\275\277\347\224\250 Linux \347\263\273\347\273\237\345\274\200\345\217\221Web\345\211\215\347\253\257/index.html" index 904a268c..d46b55c9 100644 --- "a/2016/04/17/\344\275\277\347\224\250 Linux \347\263\273\347\273\237\345\274\200\345\217\221Web\345\211\215\347\253\257/index.html" +++ "b/2016/04/17/\344\275\277\347\224\250 Linux \347\263\273\347\273\237\345\274\200\345\217\221Web\345\211\215\347\253\257/index.html" @@ -1,5 +1,5 @@ -使用 Linux 系统开发Web前端 - 林宜丙的博客 -

        使用 Linux 系统开发Web前端

        为什么使用 Linux? Mac纵有千千万万的好,作为学生党来说,毕竟其较高的价格让的确让许多我”党“人士望而却步,去年刚进公司实习的时候,使用的是Win7,对于Windows下的命令行体验真是无力吐槽,特别是对于Web前端来说,非常多的工具都运行在终端内,比如不计其数的Node.js工具,后来改用Linux就舒畅多了。

        +

        使用 Linux 系统开发Web前端

        为什么使用 Linux? Mac纵有千千万万的好,作为学生党来说,毕竟其较高的价格让的确让许多我”党“人士望而却步,去年刚进公司实习的时候,使用的是Win7,对于Windows下的命令行体验真是无力吐槽,特别是对于Web前端来说,非常多的工具都运行在终端内,比如不计其数的Node.js工具,后来改用Linux就舒畅多了。

        为什么使用 Linux

        Mac纵有千千万万的好,作为学生党来说,毕竟其较高的价格让的确让许多我”党“人士望而却步,去年刚进公司实习的时候,使用的是Win7,对于Windows下的命令行体验真是无力吐槽,特别是对于Web前端来说,非常多的工具都运行在终端内,比如不计其数的Node.js工具,后来改用Linux就舒畅多了。

        diff --git "a/2016/04/17/\346\266\210\345\244\261\347\232\2041px/index.html" "b/2016/04/17/\346\266\210\345\244\261\347\232\2041px/index.html" index 3d6f362a..49203c29 100644 --- "a/2016/04/17/\346\266\210\345\244\261\347\232\2041px/index.html" +++ "b/2016/04/17/\346\266\210\345\244\261\347\232\2041px/index.html" @@ -1,5 +1,5 @@ -消失的 1px - 林宜丙的博客 -

        消失的 1px

        之前本人写过一篇文章,是关于1px边框的:从line-height到0-5px。文中提到用缩放的方法固然可行,但是在使用rem或者百分比单位时,时常会造成1px边框在某些机型下消失;而使用border-image方案则不会出现消失的情况;本文将探索该1px边框消失的原因以及后者为何能正常显示。

        +

        消失的 1px

        之前本人写过一篇文章,是关于1px边框的:从line-height到0-5px。文中提到用缩放的方法固然可行,但是在使用rem或者百分比单位时,时常会造成1px边框在某些机型下消失;而使用border-image方案则不会出现消失的情况;本文将探索该1px边框消失的原因以及后者为何能正常显示。

        前因

        之前本人写过一篇文章,是关于1px边框的:从line-height到0-5px。文中提到用缩放的方法固然可行,但是在使用rem或者百分比单位时,时常会造成1px边框在某些机型下消失;而使用border-image方案则不会出现消失的情况;本文将探索该1px边框消失的原因以及后者为何能正常显示。

        diff --git "a/2016/08/14/Node.js \345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\345\274\200\345\217\221\345\260\217\350\257\225/index.html" "b/2016/08/14/Node.js \345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\345\274\200\345\217\221\345\260\217\350\257\225/index.html" index 3f24ba41..8b1d02f6 100644 --- "a/2016/08/14/Node.js \345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\345\274\200\345\217\221\345\260\217\350\257\225/index.html" +++ "b/2016/08/14/Node.js \345\276\256\344\277\241\345\205\254\344\274\227\345\217\267\345\274\200\345\217\221\345\260\217\350\257\225/index.html" @@ -1,5 +1,5 @@ -Node.js 微信公众号开发小试 - 林宜丙的博客 -

        Node.js 微信公众号开发小试

        申请服务器: 微信公众号的开发需要使用一台用于接收并处理消息的服务器, 此处推荐申请腾讯的免费云主机, 点我去申请吧, 每天九点半开抢, 我选择的服务器镜像是Ubuntu, 关于如何在服务器上配置Node环境, 可参考我另一篇博客使用 Linux 系统开发Web前端. 公众号开发的原理就是通过设置一个接收接口, 一旦开启开发者模式, 微信服务器将转发消息至该接口.

        +

        Node.js 微信公众号开发小试

        申请服务器: 微信公众号的开发需要使用一台用于接收并处理消息的服务器, 此处推荐申请腾讯的免费云主机, 点我去申请吧, 每天九点半开抢, 我选择的服务器镜像是Ubuntu, 关于如何在服务器上配置Node环境, 可参考我另一篇博客使用 Linux 系统开发Web前端. 公众号开发的原理就是通过设置一个接收接口, 一旦开启开发者模式, 微信服务器将转发消息至该接口.

        申请服务器

        微信公众号的开发需要使用一台用于接收并处理消息的服务器, 此处推荐申请腾讯的免费云主机, 点我去申请吧, 每天九点半开抢, 我选择的服务器镜像是Ubuntu, 关于如何在服务器上配置Node环境, 可参考我另一篇博客使用 Linux 系统开发Web前端. 公众号开发的原理就是通过设置一个接收接口, 一旦开启开发者模式, 微信服务器将转发消息至该接口.

        diff --git "a/2016/10/02/\345\237\272\344\272\216 Gitlab Web Hook \347\232\204\350\207\252\345\212\250 Eslint \350\257\255\346\263\225\346\243\200\346\237\245/index.html" "b/2016/10/02/\345\237\272\344\272\216 Gitlab Web Hook \347\232\204\350\207\252\345\212\250 Eslint \350\257\255\346\263\225\346\243\200\346\237\245/index.html" index 4b3df550..1f0fea88 100644 --- "a/2016/10/02/\345\237\272\344\272\216 Gitlab Web Hook \347\232\204\350\207\252\345\212\250 Eslint \350\257\255\346\263\225\346\243\200\346\237\245/index.html" +++ "b/2016/10/02/\345\237\272\344\272\216 Gitlab Web Hook \347\232\204\350\207\252\345\212\250 Eslint \350\257\255\346\263\225\346\243\200\346\237\245/index.html" @@ -1,5 +1,5 @@ -基于 Gitlab Web Hook 的自动 Eslint 语法检查 - 林宜丙的博客 -

        基于 Gitlab Web Hook 的自动 Eslint 语法检查

        Eslint, 一个插件化的 Javascript 语法检查工具, 如何将其结合 Gitlab 并应用于开发呢?

        +

        基于 Gitlab Web Hook 的自动 Eslint 语法检查

        Eslint, 一个插件化的 Javascript 语法检查工具, 如何将其结合 Gitlab 并应用于开发呢?

        Gitlab Web Hook

        Gitlab Web Hook 提供如下事件的 Hook:

        diff --git "a/2016/10/02/\350\256\260\344\270\200\346\254\241 Webview Jsbridge \346\216\245\345\217\243\345\260\201\350\243\205/index.html" "b/2016/10/02/\350\256\260\344\270\200\346\254\241 Webview Jsbridge \346\216\245\345\217\243\345\260\201\350\243\205/index.html" index bae71cfd..ef6aeed5 100644 --- "a/2016/10/02/\350\256\260\344\270\200\346\254\241 Webview Jsbridge \346\216\245\345\217\243\345\260\201\350\243\205/index.html" +++ "b/2016/10/02/\350\256\260\344\270\200\346\254\241 Webview Jsbridge \346\216\245\345\217\243\345\260\201\350\243\205/index.html" @@ -1,5 +1,5 @@ -记一次 Webview Jsbridge 接口封装 - 林宜丙的博客 -

        记一次 Webview Jsbridge 接口封装

        由于我司原有的 Jsbridge 方案调用繁琐, 参数多层嵌套, 并在多个 APP 上存在兼容性问题, 引来我司前端开发人员的一致吐槽…

        +

        记一次 Webview Jsbridge 接口封装

        由于我司原有的 Jsbridge 方案调用繁琐, 参数多层嵌套, 并在多个 APP 上存在兼容性问题, 引来我司前端开发人员的一致吐槽…

        前因

        客户端开发人员站在自己的角度上, 根据前端需要使用的功能设计出了一套 Jsbridge 交互方案, 该方案虽然能很好地完成 native 与 h5 页面的相互调用对方的函数(方法), 但是由于没有充分考虑到前端开发的使用习惯, 导致该方案难以推广, 作为我司前端的一员, 恰好又被分在了公共组, 觉得十分有必要封装一层对前端开发人员友好的 API.

        diff --git "a/2016/10/04/git checkout \344\270\216 git reset \345\244\207\345\277\230\345\275\225/index.html" "b/2016/10/04/git checkout \344\270\216 git reset \345\244\207\345\277\230\345\275\225/index.html" index f2693248..209c0f68 100644 --- "a/2016/10/04/git checkout \344\270\216 git reset \345\244\207\345\277\230\345\275\225/index.html" +++ "b/2016/10/04/git checkout \344\270\216 git reset \345\244\207\345\277\230\345\275\225/index.html" @@ -1,5 +1,5 @@ -git checkout 与 git reset 备忘录 - 林宜丙的博客 -

        git checkout 与 git reset 备忘录

        一直没搞清 git checkout 与 git reset, 昨晚特地建了一个仓库进行实验, 特此备忘.

        +

        git checkout 与 git reset 备忘录

        一直没搞清 git checkout 与 git reset, 昨晚特地建了一个仓库进行实验, 特此备忘.

        git 的三块区域与仓库

          diff --git "a/2016/10/06/\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\344\270\255\347\232\204\346\237\257\351\207\214\345\214\226\345\210\260\345\272\225\346\234\211\344\273\200\344\271\210\347\224\250\357\274\237/index.html" "b/2016/10/06/\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\344\270\255\347\232\204\346\237\257\351\207\214\345\214\226\345\210\260\345\272\225\346\234\211\344\273\200\344\271\210\347\224\250\357\274\237/index.html" index 74b1d37c..1b8682c7 100644 --- "a/2016/10/06/\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\344\270\255\347\232\204\346\237\257\351\207\214\345\214\226\345\210\260\345\272\225\346\234\211\344\273\200\344\271\210\347\224\250\357\274\237/index.html" +++ "b/2016/10/06/\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\344\270\255\347\232\204\346\237\257\351\207\214\345\214\226\345\210\260\345\272\225\346\234\211\344\273\200\344\271\210\347\224\250\357\274\237/index.html" @@ -1,5 +1,5 @@ -函数式编程中的柯里化到底有什么用? - 林宜丙的博客 -

          函数式编程中的柯里化到底有什么用?

          函数式编程最近越来越活跃,去年实习的时候买了一本 《JavaScript 函数式编程》,囫囵吞枣的看了一遍,似懂非懂的, 今年重新看了一遍,现写下这篇博客,谈谈我对柯里化的理解吧。

          +

          函数式编程中的柯里化到底有什么用?

          函数式编程最近越来越活跃,去年实习的时候买了一本 《JavaScript 函数式编程》,囫囵吞枣的看了一遍,似懂非懂的, 今年重新看了一遍,现写下这篇博客,谈谈我对柯里化的理解吧。

          柯里化

          柯里化函数为每一个逻辑参数返回一个新函数。(《JavaScript 函数式编程》)

          diff --git "a/2016/11/20/JavaScript \350\257\255\350\250\200\347\262\276\347\262\271\343\201\256\347\254\224\350\256\260/index.html" "b/2016/11/20/JavaScript \350\257\255\350\250\200\347\262\276\347\262\271\343\201\256\347\254\224\350\256\260/index.html" index fea4087c..89900992 100644 --- "a/2016/11/20/JavaScript \350\257\255\350\250\200\347\262\276\347\262\271\343\201\256\347\254\224\350\256\260/index.html" +++ "b/2016/11/20/JavaScript \350\257\255\350\250\200\347\262\276\347\262\271\343\201\256\347\254\224\350\256\260/index.html" @@ -1,5 +1,5 @@ -Javascript 语言精粹の笔记 - 林宜丙的博客 -

          Javascript 语言精粹の笔记

          最近买了几本书,这本《JavaScript 语言精粹》果真精粹,篇幅很少,而附录较多,作者是 JSON 的发明者 Douglas Crockford ,听起来屌屌的,其中的干货也是不少的,看完受益匪浅!

          +

          Javascript 语言精粹の笔记

          最近买了几本书,这本《JavaScript 语言精粹》果真精粹,篇幅很少,而附录较多,作者是 JSON 的发明者 Douglas Crockford ,听起来屌屌的,其中的干货也是不少的,看完受益匪浅!

          JavaScript 语言精粹

          章四,五

          函数、继承

          diff --git "a/2016/11/27/\347\274\226\345\206\231\345\217\257\347\273\264\346\212\244\347\232\204 JavaScript \343\201\256\347\254\224\350\256\260/index.html" "b/2016/11/27/\347\274\226\345\206\231\345\217\257\347\273\264\346\212\244\347\232\204 JavaScript \343\201\256\347\254\224\350\256\260/index.html" index d9176ae6..4f644f84 100644 --- "a/2016/11/27/\347\274\226\345\206\231\345\217\257\347\273\264\346\212\244\347\232\204 JavaScript \343\201\256\347\254\224\350\256\260/index.html" +++ "b/2016/11/27/\347\274\226\345\206\231\345\217\257\347\273\264\346\212\244\347\232\204 JavaScript \343\201\256\347\254\224\350\256\260/index.html" @@ -1,5 +1,5 @@ -编写可维护的 JavaScriptの笔记 - 林宜丙的博客 -

          编写可维护的 JavaScriptの笔记

          第一部分主要涉及编程风格,为了让团队的代码看起来如出一人之手;第二部分为编程实践,学到了很多关于 JavaScript 的编程经验;第三部分是关于自动化的,介绍的工具链,在 2016 年底看来已经相当过时。

          +

          编写可维护的 JavaScriptの笔记

          第一部分主要涉及编程风格,为了让团队的代码看起来如出一人之手;第二部分为编程实践,学到了很多关于 JavaScript 的编程经验;第三部分是关于自动化的,介绍的工具链,在 2016 年底看来已经相当过时。

          编写可维护的 JavaScriptの笔记

          第一部分

          diff --git "a/2016/12/24/\347\254\254\345\215\201\344\270\200\345\261\212 D2 \344\274\232\350\256\256\346\200\273\347\273\223/index.html" "b/2016/12/24/\347\254\254\345\215\201\344\270\200\345\261\212 D2 \344\274\232\350\256\256\346\200\273\347\273\223/index.html" index 54d9c6f0..2a8d34f8 100644 --- "a/2016/12/24/\347\254\254\345\215\201\344\270\200\345\261\212 D2 \344\274\232\350\256\256\346\200\273\347\273\223/index.html" +++ "b/2016/12/24/\347\254\254\345\215\201\344\270\200\345\261\212 D2 \344\274\232\350\256\256\346\200\273\347\273\223/index.html" @@ -1,5 +1,5 @@ -第十一届 D2 会议的观后感与总结 - 林宜丙的博客 -

          第十一届 D2 会议的观后感与总结

          生平第一次参加这种技术会议,围观各种前端界网红,感觉知乎和微博里的网红都触手可及,记下这篇观后感与总结。

          +

          第十一届 D2 会议的观后感与总结

          生平第一次参加这种技术会议,围观各种前端界网红,感觉知乎和微博里的网红都触手可及,记下这篇观后感与总结。

          Weex 在双十一会场的大规模应用

          diff --git "a/2016/12/25/\346\267\261\345\205\245\346\265\205\345\207\272 Node.js \343\201\256\347\254\224\350\256\260/index.html" "b/2016/12/25/\346\267\261\345\205\245\346\265\205\345\207\272 Node.js \343\201\256\347\254\224\350\256\260/index.html" index 8ee44202..34b8b1f3 100644 --- "a/2016/12/25/\346\267\261\345\205\245\346\265\205\345\207\272 Node.js \343\201\256\347\254\224\350\256\260/index.html" +++ "b/2016/12/25/\346\267\261\345\205\245\346\265\205\345\207\272 Node.js \343\201\256\347\254\224\350\256\260/index.html" @@ -1,5 +1,5 @@ -深入浅出 Node.js の笔记 - 林宜丙的博客 -

          深入浅出 Node.js の笔记

          前端开发人员上手 Node.js 还是需要课补一些服务端知识的。

          +

          深入浅出 Node.js の笔记

          前端开发人员上手 Node.js 还是需要课补一些服务端知识的。

          章一,章二

            diff --git "a/2017/03/18/\347\274\226\345\206\231 redux \344\270\255\351\227\264\344\273\266/index.html" "b/2017/03/18/\347\274\226\345\206\231 redux \344\270\255\351\227\264\344\273\266/index.html" index 4fe8b0ec..b76c80d3 100644 --- "a/2017/03/18/\347\274\226\345\206\231 redux \344\270\255\351\227\264\344\273\266/index.html" +++ "b/2017/03/18/\347\274\226\345\206\231 redux \344\270\255\351\227\264\344\273\266/index.html" @@ -1,5 +1,5 @@ -redux 中间件入门到编写,到改进,到出门 - 林宜丙的博客 -

            redux 中间件入门到编写,到改进,到出门

            春江花月夜调 bug,孤独寂寞日著 blog。吾母昨夜托梦,吾儿只身在外,读书撩妹两手要抓,前端知识切莫荒废。如无对象可面向,可以学学函数式。多写代码少睡觉,还有周五的周报。redux 要会,middleware 能写,有空记得写博客,写好发给我看看。

            +

            redux 中间件入门到编写,到改进,到出门

            春江花月夜调 bug,孤独寂寞日著 blog。吾母昨夜托梦,吾儿只身在外,读书撩妹两手要抓,前端知识切莫荒废。如无对象可面向,可以学学函数式。多写代码少睡觉,还有周五的周报。redux 要会,middleware 能写,有空记得写博客,写好发给我看看。

            惊醒之余,其敦敦教诲不敢忘,乃正襟危坐,挑灯写下这篇博客,感动~

            diff --git "a/2017/08/15/Node.js \350\260\203\350\257\225\346\226\271\345\274\217\351\233\206\351\224\246/index.html" "b/2017/08/15/Node.js \350\260\203\350\257\225\346\226\271\345\274\217\351\233\206\351\224\246/index.html" index 60b9a1d3..1878b784 100644 --- "a/2017/08/15/Node.js \350\260\203\350\257\225\346\226\271\345\274\217\351\233\206\351\224\246/index.html" +++ "b/2017/08/15/Node.js \350\260\203\350\257\225\346\226\271\345\274\217\351\233\206\351\224\246/index.html" @@ -1,5 +1,5 @@ -Node.js 调试方式集锦 - 林宜丙的博客 -

            Node.js 调试方式集锦

            本文讨论了几个流行的 Node.js 调试方式,包括 Chrome,VSCODE,ATOM,WebStorm

            +

            Node.js 调试方式集锦

            本文讨论了几个流行的 Node.js 调试方式,包括 Chrome,VSCODE,ATOM,WebStorm

            Chrome:

            优势

            diff --git "a/2017/12/15/\350\256\260\344\270\200\346\254\241\351\232\276\345\277\230\347\232\204\345\211\215\345\220\216\347\253\257\345\210\206\347\246\273/index.html" "b/2017/12/15/\350\256\260\344\270\200\346\254\241\351\232\276\345\277\230\347\232\204\345\211\215\345\220\216\347\253\257\345\210\206\347\246\273/index.html" index 47d7db59..62cedeb6 100644 --- "a/2017/12/15/\350\256\260\344\270\200\346\254\241\351\232\276\345\277\230\347\232\204\345\211\215\345\220\216\347\253\257\345\210\206\347\246\273/index.html" +++ "b/2017/12/15/\350\256\260\344\270\200\346\254\241\351\232\276\345\277\230\347\232\204\345\211\215\345\220\216\347\253\257\345\210\206\347\246\273/index.html" @@ -1,5 +1,5 @@ -记一次难忘的前后端分离 - 林宜丙的博客 -

            记一次难忘的前后端分离

            重构公司多年的 JSP 项目,加入 Node.js 层

            +

            记一次难忘的前后端分离

            重构公司多年的 JSP 项目,加入 Node.js 层

            image

            diff --git "a/2018/02/05/\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\344\271\213 Functor/index.html" "b/2018/02/05/\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\344\271\213 Functor/index.html" index effd51dc..5a75881d 100644 --- "a/2018/02/05/\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\344\271\213 Functor/index.html" +++ "b/2018/02/05/\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213\344\271\213 Functor/index.html" @@ -1,5 +1,5 @@ -函数式编程之 Functor - 林宜丙的博客 -

            函数式编程之 Functor

            万万没想到,Promise 也属于函数式编程?

            +

            函数式编程之 Functor

            万万没想到,Promise 也属于函数式编程?

            diff --git "a/2018/02/22/\344\275\277\347\224\250 Jest \346\265\213\350\257\225 Node.js/index.html" "b/2018/02/22/\344\275\277\347\224\250 Jest \346\265\213\350\257\225 Node.js/index.html" index 3917fac4..2ae63136 100644 --- "a/2018/02/22/\344\275\277\347\224\250 Jest \346\265\213\350\257\225 Node.js/index.html" +++ "b/2018/02/22/\344\275\277\347\224\250 Jest \346\265\213\350\257\225 Node.js/index.html" @@ -1,5 +1,5 @@ -使用 Jest 测试 Node.js - 林宜丙的博客 -

            使用 Jest 测试 Node.js

            使用 Jest 测试你的 Node.js 应用

            +

            使用 Jest 测试 Node.js

            使用 Jest 测试你的 Node.js 应用

            diff --git "a/2019/07/21/\344\270\272\345\211\215\347\253\257\345\272\224\347\224\250\345\274\200\345\217\221\344\270\200\344\270\252\346\234\254\345\234\260\346\216\245\345\217\243 mock \346\234\215\345\212\241/index.html" "b/2019/07/21/\344\270\272\345\211\215\347\253\257\345\272\224\347\224\250\345\274\200\345\217\221\344\270\200\344\270\252\346\234\254\345\234\260\346\216\245\345\217\243 mock \346\234\215\345\212\241/index.html" index 17c25a24..891d1b0c 100644 --- "a/2019/07/21/\344\270\272\345\211\215\347\253\257\345\272\224\347\224\250\345\274\200\345\217\221\344\270\200\344\270\252\346\234\254\345\234\260\346\216\245\345\217\243 mock \346\234\215\345\212\241/index.html" +++ "b/2019/07/21/\344\270\272\345\211\215\347\253\257\345\272\224\347\224\250\345\274\200\345\217\221\344\270\200\344\270\252\346\234\254\345\234\260\346\216\245\345\217\243 mock \346\234\215\345\212\241/index.html" @@ -1,5 +1,5 @@ -为前端应用开发一个本地接口 mock 服务 - 林宜丙的博客 -

            为前端应用开发一个本地接口 mock 服务

            无法忍受没有 mock 服务的日子

            +

            为前端应用开发一个本地接口 mock 服务

            无法忍受没有 mock 服务的日子

            diff --git "a/2020/04/20/\346\216\222\346\237\245 Node.js \346\234\215\345\212\241\345\206\205\345\255\230\346\263\204\346\274\217\357\274\214\346\262\241\346\203\263\345\210\260\347\253\237\346\230\257\345\256\203\357\274\237/index.html" "b/2020/04/20/\346\216\222\346\237\245 Node.js \346\234\215\345\212\241\345\206\205\345\255\230\346\263\204\346\274\217\357\274\214\346\262\241\346\203\263\345\210\260\347\253\237\346\230\257\345\256\203\357\274\237/index.html" index bf2c0433..35f9a4b4 100644 --- "a/2020/04/20/\346\216\222\346\237\245 Node.js \346\234\215\345\212\241\345\206\205\345\255\230\346\263\204\346\274\217\357\274\214\346\262\241\346\203\263\345\210\260\347\253\237\346\230\257\345\256\203\357\274\237/index.html" +++ "b/2020/04/20/\346\216\222\346\237\245 Node.js \346\234\215\345\212\241\345\206\205\345\255\230\346\263\204\346\274\217\357\274\214\346\262\241\346\203\263\345\210\260\347\253\237\346\230\257\345\256\203\357\274\237/index.html" @@ -1,5 +1,5 @@ -排查 Node.js 服务内存泄漏,没想到竟是它? - 林宜丙的博客 -

            排查 Node.js 服务内存泄漏,没想到竟是它?

            团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查。服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间窗口,在短短 36 小时内,内存已经增长到 50%,而平时内存稳定在 20%-30%,可知十之八九出现了内存泄漏。

            +

            排查 Node.js 服务内存泄漏,没想到竟是它?

            团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查。服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间窗口,在短短 36 小时内,内存已经增长到 50%,而平时内存稳定在 20%-30%,可知十之八九出现了内存泄漏。

            背景

            团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查。服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间窗口,在短短 36 小时内,内存已经增长到 50%,而平时内存稳定在 20%-30%,可知十之八九出现了内存泄漏。

            diff --git "a/2020/05/30/React \347\212\266\346\200\201\347\232\204\351\200\273\350\276\221\345\244\215\347\224\250/index.html" "b/2020/05/30/React \347\212\266\346\200\201\347\232\204\351\200\273\350\276\221\345\244\215\347\224\250/index.html" index 77d35b24..d3532568 100644 --- "a/2020/05/30/React \347\212\266\346\200\201\347\232\204\351\200\273\350\276\221\345\244\215\347\224\250/index.html" +++ "b/2020/05/30/React \347\212\266\346\200\201\347\232\204\351\200\273\350\276\221\345\244\215\347\224\250/index.html" @@ -1,5 +1,5 @@ -React 状态的逻辑复用 - 林宜丙的博客 -

            React 状态的逻辑复用

            关于 React 状态的逻辑复用史!

            +

            React 状态的逻辑复用

            关于 React 状态的逻辑复用史!

            diff --git "a/2020/05/30/\347\274\226\350\257\221&\346\236\204\345\273\272\347\216\260\344\273\243JS\345\272\224\347\224\250/index.html" "b/2020/05/30/\347\274\226\350\257\221&\346\236\204\345\273\272\347\216\260\344\273\243JS\345\272\224\347\224\250/index.html" index e87c421e..a0bee3c1 100644 --- "a/2020/05/30/\347\274\226\350\257\221&\346\236\204\345\273\272\347\216\260\344\273\243JS\345\272\224\347\224\250/index.html" +++ "b/2020/05/30/\347\274\226\350\257\221&\346\236\204\345\273\272\347\216\260\344\273\243JS\345\272\224\347\224\250/index.html" @@ -1,5 +1,5 @@ -编译&构建现代JS应用 - 林宜丙的博客 -

            编译&构建现代JS应用

            给合作部门的客户端同学科普如何《编译&构建现代JS应用》!

            +

            编译&构建现代JS应用

            给合作部门的客户端同学科普如何《编译&构建现代JS应用》!

            diff --git "a/2020/06/11/Chrome \350\260\234\344\270\200\346\240\267\345\215\241\346\255\273\347\232\204\346\216\222\346\237\245\346\226\271\346\263\225/index.html" "b/2020/06/11/Chrome \350\260\234\344\270\200\346\240\267\345\215\241\346\255\273\347\232\204\346\216\222\346\237\245\346\226\271\346\263\225/index.html" index b00832a5..a6086de8 100644 --- "a/2020/06/11/Chrome \350\260\234\344\270\200\346\240\267\345\215\241\346\255\273\347\232\204\346\216\222\346\237\245\346\226\271\346\263\225/index.html" +++ "b/2020/06/11/Chrome \350\260\234\344\270\200\346\240\267\345\215\241\346\255\273\347\232\204\346\216\222\346\237\245\346\226\271\346\263\225/index.html" @@ -1,5 +1,5 @@ -Chrome 谜一样卡死的排查方法 - 林宜丙的博客 -

            Chrome 谜一样卡死的排查方法

            遇到莫名卡死问题,如何正确地排查

            +

            Chrome 谜一样卡死的排查方法

            遇到莫名卡死问题,如何正确地排查

            最近由于 Chrome 浏览器升级,触发了一个埋点 SDK 的潜在问题,目前埋点 SDK 方面已经跟进解决,详细原因可见文章《Chrome 83 下千帆工作台卡死的问题》。

            diff --git "a/2020/09/18/\346\216\222\346\237\245\345\256\210\345\200\231\345\234\250\351\233\266\347\202\271\344\270\244\345\210\206\347\232\204 bug/index.html" "b/2020/09/18/\346\216\222\346\237\245\345\256\210\345\200\231\345\234\250\351\233\266\347\202\271\344\270\244\345\210\206\347\232\204 bug/index.html" index 8058705f..a23f3f69 100644 --- "a/2020/09/18/\346\216\222\346\237\245\345\256\210\345\200\231\345\234\250\351\233\266\347\202\271\344\270\244\345\210\206\347\232\204 bug/index.html" +++ "b/2020/09/18/\346\216\222\346\237\245\345\256\210\345\200\231\345\234\250\351\233\266\347\202\271\344\270\244\345\210\206\347\232\204 bug/index.html" @@ -1,5 +1,5 @@ -排查守候在零点两分的 bug - 林宜丙的博客 -

            排查守候在零点两分的 bug

            最近接手泛前端团队的服务稳定性治理,遇到一些很有特点的线上问题,这边记录一次『有趣的 bug』排查

            +

            排查守候在零点两分的 bug

            最近接手泛前端团队的服务稳定性治理,遇到一些很有特点的线上问题,这边记录一次『有趣的 bug』排查

            背景

            故事的开始是由老板的一个艾特开始的:

            diff --git "a/2020/09/27/\347\273\231\344\275\240\345\277\203\347\210\261\347\232\204 npm \345\214\205\344\270\212\344\270\252\345\214\227\344\272\254\346\210\267\345\217\243/index.html" "b/2020/09/27/\347\273\231\344\275\240\345\277\203\347\210\261\347\232\204 npm \345\214\205\344\270\212\344\270\252\345\214\227\344\272\254\346\210\267\345\217\243/index.html" index 01a2876f..ce0f1277 100644 --- "a/2020/09/27/\347\273\231\344\275\240\345\277\203\347\210\261\347\232\204 npm \345\214\205\344\270\212\344\270\252\345\214\227\344\272\254\346\210\267\345\217\243/index.html" +++ "b/2020/09/27/\347\273\231\344\275\240\345\277\203\347\210\261\347\232\204 npm \345\214\205\344\270\212\344\270\252\345\214\227\344\272\254\346\210\267\345\217\243/index.html" @@ -1,5 +1,5 @@ -给你心爱的 npm 包上个『北京户口』 - 林宜丙的博客 -

            给你心爱的 npm 包上个『北京户口』

            记录解决如何批量将 npm 包从一个 npm 源迁移到另一个源

            +

            给你心爱的 npm 包上个『北京户口』

            记录解决如何批量将 npm 包从一个 npm 源迁移到另一个源

            背景

            一切从我司有两个 npm 源说起,一个叫杭州源,另一个叫北京源。本来各用各的相安无事,直到有一天我们想依赖另一个源的 npm 包时,就相互拉取不到对方的源了。杭州源这边也有做过兼容,当拉取的源不存在时,就尝试去北京源拉取,看似解决了这个问题。但是这只解决了我们依赖北京源的 npm 包的问题,而我们有大量的包需要推广到其它部门,因此我们决定切换到使用人数更多的北京源,目前团队正处于集体转向使用北京源的阶段,不过经常会遇到如下问题:

            diff --git "a/2020/09/28/\350\256\272\345\246\202\344\275\225\347\247\221\345\255\246\345\234\260\346\262\273\347\220\206\350\200\201\351\241\271\347\233\256\347\232\204 eslint/index.html" "b/2020/09/28/\350\256\272\345\246\202\344\275\225\347\247\221\345\255\246\345\234\260\346\262\273\347\220\206\350\200\201\351\241\271\347\233\256\347\232\204 eslint/index.html" index 10d2abf1..97b2186f 100644 --- "a/2020/09/28/\350\256\272\345\246\202\344\275\225\347\247\221\345\255\246\345\234\260\346\262\273\347\220\206\350\200\201\351\241\271\347\233\256\347\232\204 eslint/index.html" +++ "b/2020/09/28/\350\256\272\345\246\202\344\275\225\347\247\221\345\255\246\345\234\260\346\262\273\347\220\206\350\200\201\351\241\271\347\233\256\347\232\204 eslint/index.html" @@ -1,5 +1,5 @@ -论如何科学地治理老项目的 eslint - 林宜丙的博客 -

            论如何科学地治理老项目的 eslint

            行之有效,可行性高的治理方式

            +

            论如何科学地治理老项目的 eslint

            行之有效,可行性高的治理方式

            背景

            总有那么些老项目,当老板叫你上去开发需求时,你会有一种不祥的预感,生怕改完一发布,线上就崩了。但是你还是慌兮兮的介入开发,想着开发完马上抽身。这些除了一些贴药膏式的业务逻辑外,让你十分缺乏安全感的就是项目没有接入 eslint,一不小心就是一个低级语法造成 crash;更可怕的是接入了大家都不遵守,想象下编辑器满屏红色错误,黄色警告的画面,此时的你,已经对报错不敏感,以致同流合污。有一个犯罪心理学上的理论可以套用在软件工程中,即『破窗效应』:

            diff --git "a/2020/10/02/\344\275\277\347\224\250 Node.js \345\260\206\347\217\215\350\227\217\347\232\204 bash \350\204\232\346\234\254\345\260\201\350\243\205\346\210\220\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267/index.html" "b/2020/10/02/\344\275\277\347\224\250 Node.js \345\260\206\347\217\215\350\227\217\347\232\204 bash \350\204\232\346\234\254\345\260\201\350\243\205\346\210\220\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267/index.html" index 51956ba6..18740f15 100644 --- "a/2020/10/02/\344\275\277\347\224\250 Node.js \345\260\206\347\217\215\350\227\217\347\232\204 bash \350\204\232\346\234\254\345\260\201\350\243\205\346\210\220\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267/index.html" +++ "b/2020/10/02/\344\275\277\347\224\250 Node.js \345\260\206\347\217\215\350\227\217\347\232\204 bash \350\204\232\346\234\254\345\260\201\350\243\205\346\210\220\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267/index.html" @@ -1,5 +1,5 @@ -使用 Node.js 将珍藏的 bash 脚本封装成命令行工具 - 林宜丙的博客 -

            使用 Node.js 将珍藏的 bash 脚本封装成命令行工具

            阐述如何将一个常用的 bash 脚本融入 npm 生态之中,此处以最近遇到的一个 CR 提交脚本为例。

            +

            使用 Node.js 将珍藏的 bash 脚本封装成命令行工具

            阐述如何将一个常用的 bash 脚本融入 npm 生态之中,此处以最近遇到的一个 CR 提交脚本为例。

            背景

            作为程序猿,大家或多或少地都用过 GitHub 上的 merge request 功能。当然,除了这类 Code Review 方式,不少公司都有自己的 Code Review 平台,我司也不例外,我们使用了类似 Gerrit 的工具,此处我们暂且以 Gerrit 指代。由于最近在治理工程时,需要全面切(要)到(求)使用 Gerrit 进行 CR 提交。发现 Gerrit 提交命令不是那么好记,经常需要先 git push,接着被拦截报错之后,再根据提示复制命令行,再次执行方可成功提交 Gerrit 。作为攻城狮,这有点难以忍受了!!!

            diff --git "a/2021/04/05/\345\246\202\344\275\225\346\211\223\351\200\240\344\270\200\344\270\252\346\273\241\350\266\263\345\277\253\351\200\237\345\256\232\345\210\266\350\203\275\345\212\233\347\232\204\347\247\201\346\234\211\345\214\226\351\203\250\347\275\262\347\263\273\347\273\237/index.html" "b/2021/04/05/\345\246\202\344\275\225\346\211\223\351\200\240\344\270\200\344\270\252\346\273\241\350\266\263\345\277\253\351\200\237\345\256\232\345\210\266\350\203\275\345\212\233\347\232\204\347\247\201\346\234\211\345\214\226\351\203\250\347\275\262\347\263\273\347\273\237/index.html" index 41f1c394..da382530 100644 --- "a/2021/04/05/\345\246\202\344\275\225\346\211\223\351\200\240\344\270\200\344\270\252\346\273\241\350\266\263\345\277\253\351\200\237\345\256\232\345\210\266\350\203\275\345\212\233\347\232\204\347\247\201\346\234\211\345\214\226\351\203\250\347\275\262\347\263\273\347\273\237/index.html" +++ "b/2021/04/05/\345\246\202\344\275\225\346\211\223\351\200\240\344\270\200\344\270\252\346\273\241\350\266\263\345\277\253\351\200\237\345\256\232\345\210\266\350\203\275\345\212\233\347\232\204\347\247\201\346\234\211\345\214\226\351\203\250\347\275\262\347\263\273\347\273\237/index.html" @@ -1,5 +1,5 @@ -如何打造一个满足快速定制能力的私有化部署系统? - 林宜丙的博客 -

            如何打造一个满足快速定制能力的私有化部署系统?

            打造私有化部署系统过程中的一些和总结

            +

            如何打造一个满足快速定制能力的私有化部署系统?

            打造私有化部署系统过程中的一些和总结

            diff --git "a/2021/04/06/\345\211\215\347\253\257\345\205\253\350\202\241\347\237\245\350\257\206\347\202\271-\351\200\237\350\256\260\350\204\221\345\233\276/index.html" "b/2021/04/06/\345\211\215\347\253\257\345\205\253\350\202\241\347\237\245\350\257\206\347\202\271-\351\200\237\350\256\260\350\204\221\345\233\276/index.html" index bb29d97e..871e67db 100644 --- "a/2021/04/06/\345\211\215\347\253\257\345\205\253\350\202\241\347\237\245\350\257\206\347\202\271-\351\200\237\350\256\260\350\204\221\345\233\276/index.html" +++ "b/2021/04/06/\345\211\215\347\253\257\345\205\253\350\202\241\347\237\245\350\257\206\347\202\271-\351\200\237\350\256\260\350\204\221\345\233\276/index.html" @@ -1,5 +1,5 @@ -前端八股知识点-速记脑图 - 林宜丙的博客 -

            前端八股知识点-速记脑图

            为面试而整理的前端八股文脑图!

            +

            前端八股知识点-速记脑图

            为面试而整理的前端八股文脑图!

            Repository

            Github repository

            diff --git "a/2021/12/05/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267\347\232\204\347\233\221\346\216\247\345\221\212\350\255\246\345\273\272\350\256\276/index.html" "b/2021/12/05/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267\347\232\204\347\233\221\346\216\247\345\221\212\350\255\246\345\273\272\350\256\276/index.html" index e1f7e283..110b6051 100644 --- "a/2021/12/05/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267\347\232\204\347\233\221\346\216\247\345\221\212\350\255\246\345\273\272\350\256\276/index.html" +++ "b/2021/12/05/\345\221\275\344\273\244\350\241\214\345\267\245\345\205\267\347\232\204\347\233\221\346\216\247\345\221\212\350\255\246\345\273\272\350\256\276/index.html" @@ -1,5 +1,5 @@ -命令行工具的监控告警建设 - 林宜丙的博客 -

            命令行工具的监控告警建设

            本人五年的工作经验,历经三份工作,竟然每份都开发维护过前端命令行工具,大家对前端页面和服务端应用有监控告警这件事习以为常,其实这类工具也需要监控告警,本文将从错误处理到上报排查进行分享。

            +

            命令行工具的监控告警建设

            本人五年的工作经验,历经三份工作,竟然每份都开发维护过前端命令行工具,大家对前端页面和服务端应用有监控告警这件事习以为常,其实这类工具也需要监控告警,本文将从错误处理到上报排查进行分享。


            diff --git "a/2022/12/31/Monorepo \344\270\213 Git \345\267\245\344\275\234\346\265\201\347\232\204\346\234\200\344\275\263\345\256\236\350\267\265/index.html" "b/2022/12/31/Monorepo \344\270\213 Git \345\267\245\344\275\234\346\265\201\347\232\204\346\234\200\344\275\263\345\256\236\350\267\265/index.html" index e7094485..2638a2e7 100644 --- "a/2022/12/31/Monorepo \344\270\213 Git \345\267\245\344\275\234\346\265\201\347\232\204\346\234\200\344\275\263\345\256\236\350\267\265/index.html" +++ "b/2022/12/31/Monorepo \344\270\213 Git \345\267\245\344\275\234\346\265\201\347\232\204\346\234\200\344\275\263\345\256\236\350\267\265/index.html" @@ -1,5 +1,5 @@ -Monorepo 下 Git 工作流的最佳实践 - 林宜丙的博客 -

            Monorepo 下 Git 工作流的最佳实践

            没有哪一种 Git 工作流是银弹,合适的 Git 工作流往往取决于项目的代码规模、协作人数、应用场景等;本次分享先从适合小型 Monorepo 的 Feature branch 工作流开始分享,接着分享适用于中大型 Monorepo 的 Trunk-based 工作流,并给出一些选型标准供同学们参考,希望通过本次分享,大家能找到合适自己 Monorepo 工程的 Git 工作流!

            +

            Monorepo 下 Git 工作流的最佳实践

            没有哪一种 Git 工作流是银弹,合适的 Git 工作流往往取决于项目的代码规模、协作人数、应用场景等;本次分享先从适合小型 Monorepo 的 Feature branch 工作流开始分享,接着分享适用于中大型 Monorepo 的 Trunk-based 工作流,并给出一些选型标准供同学们参考,希望通过本次分享,大家能找到合适自己 Monorepo 工程的 Git 工作流!

            背景

            没有哪一种 Git 工作流是银弹,合适的 Git 工作流往往取决于项目的代码规模、协作人数、应用场景等;本次分享先从适合小型 Monorepo 的 Feature branch 工作流开始分享,接着分享适用于中大型 Monorepo 的 Trunk-based 工作流,并给出一些选型标准供同学们参考,希望通过本次分享,大家能找到合适自己 Monorepo 工程的 Git 工作流!

            diff --git "a/2022/12/31/\345\211\215\347\253\257 Monorepo \345\234\250\345\255\227\350\212\202\350\267\263\345\212\250\347\232\204\345\256\236\350\267\265/index.html" "b/2022/12/31/\345\211\215\347\253\257 Monorepo \345\234\250\345\255\227\350\212\202\350\267\263\345\212\250\347\232\204\345\256\236\350\267\265/index.html" index 4f88d9d4..080ae6ae 100644 --- "a/2022/12/31/\345\211\215\347\253\257 Monorepo \345\234\250\345\255\227\350\212\202\350\267\263\345\212\250\347\232\204\345\256\236\350\267\265/index.html" +++ "b/2022/12/31/\345\211\215\347\253\257 Monorepo \345\234\250\345\255\227\350\212\202\350\267\263\345\212\250\347\232\204\345\256\236\350\267\265/index.html" @@ -1,5 +1,5 @@ -前端 Monorepo 在字节跳动的实践 - 林宜丙的博客 -

            前端 Monorepo 在字节跳动的实践

            受邀参加第十一届 Top100 峰会,更多详情见文章年底了,看看这100位技术创新带头人如何做复盘?

            +

            前端 Monorepo 在字节跳动的实践

            受邀参加第十一届 Top100 峰会,更多详情见文章年底了,看看这100位技术创新带头人如何做复盘?

            分享会背景

            受邀参加第十一届 Top100 峰会,更多详情见文章年底了,看看这100位技术创新带头人如何做复盘?

            diff --git "a/2023/06/17/\345\255\227\350\212\202\350\267\263\345\212\250\347\232\204\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226\345\256\236\350\267\265/index.html" "b/2023/06/17/\345\255\227\350\212\202\350\267\263\345\212\250\347\232\204\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226\345\256\236\350\267\265/index.html" index b7725ae1..af1f264b 100644 --- "a/2023/06/17/\345\255\227\350\212\202\350\267\263\345\212\250\347\232\204\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226\345\256\236\350\267\265/index.html" +++ "b/2023/06/17/\345\255\227\350\212\202\350\267\263\345\212\250\347\232\204\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226\345\256\236\350\267\265/index.html" @@ -1,5 +1,5 @@ -字节跳动的前端工程化实践 - 林宜丙的博客 -

            字节跳动的前端工程化实践

            受邀参加 2023 51CTO 举办的『WOT全球技术创新大会』

            +

            字节跳动的前端工程化实践

            受邀参加 2023 51CTO 举办的『WOT全球技术创新大会』

            分享会背景

              diff --git "a/2023/06/18/\344\270\200\347\247\215\345\256\236\347\224\250\346\226\260\345\236\213 Obsidian \345\256\236\350\267\265\344\271\213\346\236\204\345\273\272\346\210\221\347\232\204\347\254\254\344\272\214\345\244\247\350\204\221 \360\237\247\240/index.html" "b/2023/06/18/\344\270\200\347\247\215\345\256\236\347\224\250\346\226\260\345\236\213 Obsidian \345\256\236\350\267\265\344\271\213\346\236\204\345\273\272\346\210\221\347\232\204\347\254\254\344\272\214\345\244\247\350\204\221 \360\237\247\240/index.html" index 3ff5fd85..bc8eec0a 100644 --- "a/2023/06/18/\344\270\200\347\247\215\345\256\236\347\224\250\346\226\260\345\236\213 Obsidian \345\256\236\350\267\265\344\271\213\346\236\204\345\273\272\346\210\221\347\232\204\347\254\254\344\272\214\345\244\247\350\204\221 \360\237\247\240/index.html" +++ "b/2023/06/18/\344\270\200\347\247\215\345\256\236\347\224\250\346\226\260\345\236\213 Obsidian \345\256\236\350\267\265\344\271\213\346\236\204\345\273\272\346\210\221\347\232\204\347\254\254\344\272\214\345\244\247\350\204\221 \360\237\247\240/index.html" @@ -1,5 +1,5 @@ -一种实用新型 Obsidian 实践之构建我的第二大脑 🧠 - 林宜丙的博客 -

              一种实用新型 Obsidian 实践之构建我的第二大脑 🧠

              本文将以 Obsidian 为例,分享我使用 Obsidian 构建第二大脑的实践!

              +

              一种实用新型 Obsidian 实践之构建我的第二大脑 🧠

              本文将以 Obsidian 为例,分享我使用 Obsidian 构建第二大脑的实践!

              本文内容已经过时,更多内容请参考官网 LifeOS

              diff --git "a/2023/07/08/Building my second brain \360\237\247\240 with Obsidian/index.html" "b/2023/07/08/Building my second brain \360\237\247\240 with Obsidian/index.html" index 31de0bbe..37c29628 100644 --- "a/2023/07/08/Building my second brain \360\237\247\240 with Obsidian/index.html" +++ "b/2023/07/08/Building my second brain \360\237\247\240 with Obsidian/index.html" @@ -1,5 +1,5 @@ -Building my second brain 🧠 with Obsidian - 林宜丙的博客 -

              Building my second brain 🧠 with Obsidian

              This article will take Obsidian as an example to share my practice of using Obsidian to build a second brain!

              +

              Building my second brain 🧠 with Obsidian

              This article will take Obsidian as an example to share my practice of using Obsidian to build a second brain!

              The content of this article is out of date. Please refer to the official website LifeOS for more information.

              diff --git "a/2023/07/16/\346\210\221\347\273\231\346\210\221\347\232\204 Obsidian \345\256\236\350\267\265\345\206\231\344\272\206\344\270\200\344\270\252\346\217\222\344\273\266/index.html" "b/2023/07/16/\346\210\221\347\273\231\346\210\221\347\232\204 Obsidian \345\256\236\350\267\265\345\206\231\344\272\206\344\270\200\344\270\252\346\217\222\344\273\266/index.html" index a61ac8ca..93eeea0c 100644 --- "a/2023/07/16/\346\210\221\347\273\231\346\210\221\347\232\204 Obsidian \345\256\236\350\267\265\345\206\231\344\272\206\344\270\200\344\270\252\346\217\222\344\273\266/index.html" +++ "b/2023/07/16/\346\210\221\347\273\231\346\210\221\347\232\204 Obsidian \345\256\236\350\267\265\345\206\231\344\272\206\344\270\200\344\270\252\346\217\222\344\273\266/index.html" @@ -1,5 +1,5 @@ -我给我的 Obsidian 实践写了一个插件 - 林宜丙的博客 -

              我给我的 Obsidian 实践写了一个插件

              一种实用新型 Obsidian 实践之构建我的第二大脑 🧠 实现 Obsidian 插件!

              +

              我给我的 Obsidian 实践写了一个插件

              一种实用新型 Obsidian 实践之构建我的第二大脑 🧠 实现 Obsidian 插件!

              本文内容已经过时,更多内容请参考官网 LifeOS

              diff --git a/404.html b/404.html index 77dbe19c..77a796b9 100644 --- a/404.html +++ b/404.html @@ -1,5 +1,5 @@ -404 Not Found:该页无法显示 - 林宜丙的博客 -

              About

              😪 人在字节,刚下晚班
              🐒 一个热爱工具和规则的前端攻城狮
              🧠 致力于打造 Obsidian 人生管理系统
              🤝🏻 帮助大家(也包括我)管理多彩的人生

              +

              About

              😪 人在字节,刚下晚班
              🐒 一个热爱工具和规则的前端攻城狮
              🧠 致力于打造 Obsidian 人生管理系统
              🤝🏻 帮助大家(也包括我)管理多彩的人生

              更多

              diff --git a/archives/2015/06/index.html b/archives/2015/06/index.html index 1f00b8a6..31e66565 100644 --- a/archives/2015/06/index.html +++ b/archives/2015/06/index.html @@ -1,5 +1,5 @@ -归档: 2015/6 - 林宜丙的博客 -

              排查 Node.js 服务内存泄漏,没想到竟是它?

              团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查。服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间窗口,在短短 36 小时内,内存已经增长到 50%,而平时内存稳定在 20%-30%,可知十之八九出现了内存泄漏。

              阅读更多

              Node.js 微信公众号开发小试

              申请服务器: 微信公众号的开发需要使用一台用于接收并处理消息的服务器, 此处推荐申请腾讯的免费云主机, 点我去申请吧, 每天九点半开抢, 我选择的服务器镜像是Ubuntu, 关于如何在服务器上配置Node环境, 可参考我另一篇博客使用 Linux 系统开发Web前端. 公众号开发的原理就是通过设置一个接收接口, 一旦开启开发者模式, 微信服务器将转发消息至该接口.

              阅读更多
              -

              redux 中间件入门到编写,到改进,到出门

              春江花月夜调 bug,孤独寂寞日著 blog。吾母昨夜托梦,吾儿只身在外,读书撩妹两手要抓,前端知识切莫荒废。如无对象可面向,可以学学函数式。多写代码少睡觉,还有周五的周报。redux 要会,middleware 能写,有空记得写博客,写好发给我看看。

              -

              惊醒之余,其敦敦教诲不敢忘,乃正襟危坐,挑灯写下这篇博客,感动~

              阅读更多

              函数式编程中的柯里化到底有什么用?

              函数式编程最近越来越活跃,去年实习的时候买了一本 《JavaScript 函数式编程》,囫囵吞枣的看了一遍,似懂非懂的, 今年重新看了一遍,现写下这篇博客,谈谈我对柯里化的理解吧。

              阅读更多

              Node.js 的 Morgan 模块与 Cluster 模块

              这段时间鼓捣Node.js,跟着《Node.js 开发指南》把 Microblog 给实现了一下,由于该书撰写于 2012 年,Node 版本目前最新已更新至 v5.9.0,且 Express 也发生了相当大的变化,导致很多书中代码已经不符合当前的版本了。关于实现部分,可参考这篇文章:《nodejs开发指南》微博实例express4.x版 。BTW,目前 express 启动命令改为 npm start,该命令执行 bin 目录下的 www 文件,相当于直接执行 node ./bin/www。此处简要记录下该书第六章提到的关于日志与多核CPU的优化问题,并介绍一款 debug tool。整个 microblog 的代码已放至 github 上:摸我

              阅读更多
              -

              命令行工具的监控告警建设

              本人五年的工作经验,历经三份工作,竟然每份都开发维护过前端命令行工具,大家对前端页面和服务端应用有监控告警这件事习以为常,其实这类工具也需要监控告警,本文将从错误处理到上报排查进行分享。

              阅读更多

              消失的 1px

              之前本人写过一篇文章,是关于1px边框的:从line-height到0-5px。文中提到用缩放的方法固然可行,但是在使用rem或者百分比单位时,时常会造成1px边框在某些机型下消失;而使用border-image方案则不会出现消失的情况;本文将探索该1px边框消失的原因以及后者为何能正常显示。

              阅读更多

              从 line-height 到 0.5 px

              前几天发现写的一段代码,其中line-height(1.7rem)与height(1.7rem)相等,font-size(1.1rem);在ios设备上文字垂直居中,而在android设备上竟上下缝隙相差1px(其实我看不出来是不是一像素,我猜的)。

              阅读更多

              Schema 与下载条

              由于我司有个网站还没有对应的移动端版本,因此需要在移动端访问该网站时,在底部显示一条下载条,而且点击该下载条时需要满足以下两个需求:

              +

              命令行工具的监控告警建设

              本人五年的工作经验,历经三份工作,竟然每份都开发维护过前端命令行工具,大家对前端页面和服务端应用有监控告警这件事习以为常,其实这类工具也需要监控告警,本文将从错误处理到上报排查进行分享。

              阅读更多

              消失的 1px

              之前本人写过一篇文章,是关于1px边框的:从line-height到0-5px。文中提到用缩放的方法固然可行,但是在使用rem或者百分比单位时,时常会造成1px边框在某些机型下消失;而使用border-image方案则不会出现消失的情况;本文将探索该1px边框消失的原因以及后者为何能正常显示。

              阅读更多

              从 line-height 到 0.5 px

              前几天发现写的一段代码,其中line-height(1.7rem)与height(1.7rem)相等,font-size(1.1rem);在ios设备上文字垂直居中,而在android设备上竟上下缝隙相差1px(其实我看不出来是不是一像素,我猜的)。

              阅读更多

              Schema 与下载条

              由于我司有个网站还没有对应的移动端版本,因此需要在移动端访问该网站时,在底部显示一条下载条,而且点击该下载条时需要满足以下两个需求:

              1. 点击下载时,如果本机已经安装该软件,则尝试打开对应软件;
              2. 点击下载时,如果本机未安装该软件,则跳转到对应系统的下载地址。
              3. diff --git "a/categories/\345\267\245\347\250\213\345\214\226/index.html" "b/categories/\345\267\245\347\250\213\345\214\226/index.html" index 526f187f..1258f1f3 100644 --- "a/categories/\345\267\245\347\250\213\345\214\226/index.html" +++ "b/categories/\345\267\245\347\250\213\345\214\226/index.html" @@ -1,5 +1,5 @@ -分类: 工程化 - 林宜丙的博客 -

                Monorepo 下 Git 工作流的最佳实践

                没有哪一种 Git 工作流是银弹,合适的 Git 工作流往往取决于项目的代码规模、协作人数、应用场景等;本次分享先从适合小型 Monorepo 的 Feature branch 工作流开始分享,接着分享适用于中大型 Monorepo 的 Trunk-based 工作流,并给出一些选型标准供同学们参考,希望通过本次分享,大家能找到合适自己 Monorepo 工程的 Git 工作流!

                阅读更多
                -

                使用 Linux 系统开发Web前端

                为什么使用 Linux? Mac纵有千千万万的好,作为学生党来说,毕竟其较高的价格让的确让许多我”党“人士望而却步,去年刚进公司实习的时候,使用的是Win7,对于Windows下的命令行体验真是无力吐槽,特别是对于Web前端来说,非常多的工具都运行在终端内,比如不计其数的Node.js工具,后来改用Linux就舒畅多了。

                阅读更多
                -

                实习总结

                上接《不要叫我程序猿,我是前端开发工程狮》,话说我去了挖财实习,此处省略一万字,然后我就顺利转正,接着回学校撰写毕业论文了。

                阅读更多

                不要叫我程序猿,我是前端开发工程狮

                上学期期末开始了解到前端开发,当时忙于做实验、写论文、投文章,也就没深入了解,当时觉得挺好玩的,所以屁颠屁颠的去借了一本《HTML与CSS入门经典》,当时那个迷茫啊。一开始是借了《Java编程思想》和《Android 4.X从入门到精通》,想着复习下Java,然后动手写写安卓,然后毕业搞安卓开发,后来也没看下去。那本入门经典是很基础的那种,看起来轻轻松松地,兴趣也慢慢培养起来。

                阅读更多
                -

                一种实用新型 Obsidian 实践之构建我的第二大脑 🧠

                本文将以 Obsidian 为例,分享我使用 Obsidian 构建第二大脑的实践!

                +
                -

                编写可维护的 JavaScriptの笔记

                第一部分主要涉及编程风格,为了让团队的代码看起来如出一人之手;第二部分为编程实践,学到了很多关于 JavaScript 的编程经验;第三部分是关于自动化的,介绍的工具链,在 2016 年底看来已经相当过时。

                阅读更多

                Javascript 语言精粹の笔记

                最近买了几本书,这本《JavaScript 语言精粹》果真精粹,篇幅很少,而附录较多,作者是 JSON 的发明者 Douglas Crockford ,听起来屌屌的,其中的干货也是不少的,看完受益匪浅!

                阅读更多

                Node.js 开发指南の书摘

                章三

                1,单次加载:

                +

                编写可维护的 JavaScriptの笔记

                第一部分主要涉及编程风格,为了让团队的代码看起来如出一人之手;第二部分为编程实践,学到了很多关于 JavaScript 的编程经验;第三部分是关于自动化的,介绍的工具链,在 2016 年底看来已经相当过时。

                阅读更多

                Javascript 语言精粹の笔记

                最近买了几本书,这本《JavaScript 语言精粹》果真精粹,篇幅很少,而附录较多,作者是 JSON 的发明者 Douglas Crockford ,听起来屌屌的,其中的干货也是不少的,看完受益匪浅!

                阅读更多

                Node.js 开发指南の书摘

                章三

                1,单次加载:

                require不会重复加载模块,无论调用多少次require,获得的模块都是同一个;

                @@ -53,7 +53,7 @@

                4,

                通过使用npm init交互式初始化一个符合标准的package.json;
                发布包:npm publish;
                更改json文件中的version字段后,重新发布,达到更新版本的目的;
                取消发布:npm unpublish;

                -
                阅读更多

                Javascript 函数式编程の书摘

                章一

                1,确定抽象,并为其构建函数;
                2,利用已有的函数来构建更为复杂的抽象;
                3,通过将现有的函数传给其他的函数来构建更加复杂的抽象。

                阅读更多
          阅读更多

          Javascript 函数式编程の书摘

          章一

          1,确定抽象,并为其构建函数;
          2,利用已有的函数来构建更为复杂的抽象;
          3,通过将现有的函数传给其他的函数来构建更加复杂的抽象。

          阅读更多

          JavaScript 权威指南の笔记

          1. 当Javascript解释器启动时,它将创建一个新的全局对象,并给它一组定义的初始属性。
          2. 只要引用了字符串直接量的属性,就会将字符串值通过调用new String(). 方式转换成对象,一旦引用结束,则销毁这个临时对象。
          3. “==”将运算符将原始值与其包装对象视为相等,而“===”不然。
          4. diff --git "a/categories/\351\235\242\350\257\225/index.html" "b/categories/\351\235\242\350\257\225/index.html" index 418d2667..62198c68 100644 --- "a/categories/\351\235\242\350\257\225/index.html" +++ "b/categories/\351\235\242\350\257\225/index.html" @@ -1,5 +1,5 @@ -分类: 面试 - 林宜丙的博客 -

            HTML5 截图

            实现一个类似于QQ截图的小东西,点击载入按钮,则载入图片,长按图片,弹出截图框,截图框右下角能够调整大小,并在右边的截图预览区域实时显示

            阅读更多

            16宫格拖拽

            实现一个如图所示的16宫格页面,其中各个数字盒子之间是能相互拖拽,并交换位置的。而横纵各自的标题栏ABC与XYZ实现的功能则是,ABC(XYZ)之间两两互换位置,从而引起两列(行)一起调换位置。

            阅读更多
            -

            Monorepo 下 Git 工作流的最佳实践

            没有哪一种 Git 工作流是银弹,合适的 Git 工作流往往取决于项目的代码规模、协作人数、应用场景等;本次分享先从适合小型 Monorepo 的 Feature branch 工作流开始分享,接着分享适用于中大型 Monorepo 的 Trunk-based 工作流,并给出一些选型标准供同学们参考,希望通过本次分享,大家能找到合适自己 Monorepo 工程的 Git 工作流!

            阅读更多

            命令行工具的监控告警建设

            本人五年的工作经验,历经三份工作,竟然每份都开发维护过前端命令行工具,大家对前端页面和服务端应用有监控告警这件事习以为常,其实这类工具也需要监控告警,本文将从错误处理到上报排查进行分享。

            阅读更多
            -

            排查 Node.js 服务内存泄漏,没想到竟是它?

            团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查。服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间窗口,在短短 36 小时内,内存已经增长到 50%,而平时内存稳定在 20%-30%,可知十之八九出现了内存泄漏。

            阅读更多
            -

            redux 中间件入门到编写,到改进,到出门

            春江花月夜调 bug,孤独寂寞日著 blog。吾母昨夜托梦,吾儿只身在外,读书撩妹两手要抓,前端知识切莫荒废。如无对象可面向,可以学学函数式。多写代码少睡觉,还有周五的周报。redux 要会,middleware 能写,有空记得写博客,写好发给我看看。

            -

            惊醒之余,其敦敦教诲不敢忘,乃正襟危坐,挑灯写下这篇博客,感动~

            阅读更多

            编写可维护的 JavaScriptの笔记

            第一部分主要涉及编程风格,为了让团队的代码看起来如出一人之手;第二部分为编程实践,学到了很多关于 JavaScript 的编程经验;第三部分是关于自动化的,介绍的工具链,在 2016 年底看来已经相当过时。

            阅读更多

            Javascript 语言精粹の笔记

            最近买了几本书,这本《JavaScript 语言精粹》果真精粹,篇幅很少,而附录较多,作者是 JSON 的发明者 Douglas Crockford ,听起来屌屌的,其中的干货也是不少的,看完受益匪浅!

            阅读更多

            函数式编程中的柯里化到底有什么用?

            函数式编程最近越来越活跃,去年实习的时候买了一本 《JavaScript 函数式编程》,囫囵吞枣的看了一遍,似懂非懂的, 今年重新看了一遍,现写下这篇博客,谈谈我对柯里化的理解吧。

            阅读更多
            -

            Node.js 微信公众号开发小试

            申请服务器: 微信公众号的开发需要使用一台用于接收并处理消息的服务器, 此处推荐申请腾讯的免费云主机, 点我去申请吧, 每天九点半开抢, 我选择的服务器镜像是Ubuntu, 关于如何在服务器上配置Node环境, 可参考我另一篇博客使用 Linux 系统开发Web前端. 公众号开发的原理就是通过设置一个接收接口, 一旦开启开发者模式, 微信服务器将转发消息至该接口.

            阅读更多

            消失的 1px

            之前本人写过一篇文章,是关于1px边框的:从line-height到0-5px。文中提到用缩放的方法固然可行,但是在使用rem或者百分比单位时,时常会造成1px边框在某些机型下消失;而使用border-image方案则不会出现消失的情况;本文将探索该1px边框消失的原因以及后者为何能正常显示。

            阅读更多

            使用 Linux 系统开发Web前端

            为什么使用 Linux? Mac纵有千千万万的好,作为学生党来说,毕竟其较高的价格让的确让许多我”党“人士望而却步,去年刚进公司实习的时候,使用的是Win7,对于Windows下的命令行体验真是无力吐槽,特别是对于Web前端来说,非常多的工具都运行在终端内,比如不计其数的Node.js工具,后来改用Linux就舒畅多了。

            阅读更多

            Node.js 的 Morgan 模块与 Cluster 模块

            这段时间鼓捣Node.js,跟着《Node.js 开发指南》把 Microblog 给实现了一下,由于该书撰写于 2012 年,Node 版本目前最新已更新至 v5.9.0,且 Express 也发生了相当大的变化,导致很多书中代码已经不符合当前的版本了。关于实现部分,可参考这篇文章:《nodejs开发指南》微博实例express4.x版 。BTW,目前 express 启动命令改为 npm start,该命令执行 bin 目录下的 www 文件,相当于直接执行 node ./bin/www。此处简要记录下该书第六章提到的关于日志与多核CPU的优化问题,并介绍一款 debug tool。整个 microblog 的代码已放至 github 上:摸我

            阅读更多

            Node.js 开发指南の书摘

            章三

            1,单次加载:

            +

            Node.js 微信公众号开发小试

            申请服务器: 微信公众号的开发需要使用一台用于接收并处理消息的服务器, 此处推荐申请腾讯的免费云主机, 点我去申请吧, 每天九点半开抢, 我选择的服务器镜像是Ubuntu, 关于如何在服务器上配置Node环境, 可参考我另一篇博客使用 Linux 系统开发Web前端. 公众号开发的原理就是通过设置一个接收接口, 一旦开启开发者模式, 微信服务器将转发消息至该接口.

            阅读更多

            消失的 1px

            之前本人写过一篇文章,是关于1px边框的:从line-height到0-5px。文中提到用缩放的方法固然可行,但是在使用rem或者百分比单位时,时常会造成1px边框在某些机型下消失;而使用border-image方案则不会出现消失的情况;本文将探索该1px边框消失的原因以及后者为何能正常显示。

            阅读更多

            使用 Linux 系统开发Web前端

            为什么使用 Linux? Mac纵有千千万万的好,作为学生党来说,毕竟其较高的价格让的确让许多我”党“人士望而却步,去年刚进公司实习的时候,使用的是Win7,对于Windows下的命令行体验真是无力吐槽,特别是对于Web前端来说,非常多的工具都运行在终端内,比如不计其数的Node.js工具,后来改用Linux就舒畅多了。

            阅读更多

            Node.js 的 Morgan 模块与 Cluster 模块

            这段时间鼓捣Node.js,跟着《Node.js 开发指南》把 Microblog 给实现了一下,由于该书撰写于 2012 年,Node 版本目前最新已更新至 v5.9.0,且 Express 也发生了相当大的变化,导致很多书中代码已经不符合当前的版本了。关于实现部分,可参考这篇文章:《nodejs开发指南》微博实例express4.x版 。BTW,目前 express 启动命令改为 npm start,该命令执行 bin 目录下的 www 文件,相当于直接执行 node ./bin/www。此处简要记录下该书第六章提到的关于日志与多核CPU的优化问题,并介绍一款 debug tool。整个 microblog 的代码已放至 github 上:摸我

            阅读更多

            Node.js 开发指南の书摘

            章三

            1,单次加载:

            require不会重复加载模块,无论调用多少次require,获得的模块都是同一个;

            @@ -53,11 +53,11 @@

            4,

            通过使用npm init交互式初始化一个符合标准的package.json;
            发布包:npm publish;
            更改json文件中的version字段后,重新发布,达到更新版本的目的;
            取消发布:npm unpublish;

            -
            阅读更多

            实习总结

            上接《不要叫我程序猿,我是前端开发工程狮》,话说我去了挖财实习,此处省略一万字,然后我就顺利转正,接着回学校撰写毕业论文了。

            阅读更多

            从 line-height 到 0.5 px

            前几天发现写的一段代码,其中line-height(1.7rem)与height(1.7rem)相等,font-size(1.1rem);在ios设备上文字垂直居中,而在android设备上竟上下缝隙相差1px(其实我看不出来是不是一像素,我猜的)。

            阅读更多

            Schema 与下载条

            由于我司有个网站还没有对应的移动端版本,因此需要在移动端访问该网站时,在底部显示一条下载条,而且点击该下载条时需要满足以下两个需求:

            +
          阅读更多

          实习总结

          上接《不要叫我程序猿,我是前端开发工程狮》,话说我去了挖财实习,此处省略一万字,然后我就顺利转正,接着回学校撰写毕业论文了。

          阅读更多

          从 line-height 到 0.5 px

          前几天发现写的一段代码,其中line-height(1.7rem)与height(1.7rem)相等,font-size(1.1rem);在ios设备上文字垂直居中,而在android设备上竟上下缝隙相差1px(其实我看不出来是不是一像素,我猜的)。

          阅读更多

          Schema 与下载条

          由于我司有个网站还没有对应的移动端版本,因此需要在移动端访问该网站时,在底部显示一条下载条,而且点击该下载条时需要满足以下两个需求:

          1. 点击下载时,如果本机已经安装该软件,则尝试打开对应软件;
          2. 点击下载时,如果本机未安装该软件,则跳转到对应系统的下载地址。
          3. -
          阅读更多

          HTML5 截图

          实现一个类似于QQ截图的小东西,点击载入按钮,则载入图片,长按图片,弹出截图框,截图框右下角能够调整大小,并在右边的截图预览区域实时显示

          阅读更多
          -

          Javascript 函数式编程の书摘

          章一

          1,确定抽象,并为其构建函数;
          2,利用已有的函数来构建更为复杂的抽象;
          3,通过将现有的函数传给其他的函数来构建更加复杂的抽象。

          阅读更多

          16宫格拖拽

          实现一个如图所示的16宫格页面,其中各个数字盒子之间是能相互拖拽,并交换位置的。而横纵各自的标题栏ABC与XYZ实现的功能则是,ABC(XYZ)之间两两互换位置,从而引起两列(行)一起调换位置。

          阅读更多

          JavaScript 权威指南の笔记

            +

            Javascript 函数式编程の书摘

            章一

            1,确定抽象,并为其构建函数;
            2,利用已有的函数来构建更为复杂的抽象;
            3,通过将现有的函数传给其他的函数来构建更加复杂的抽象。

            阅读更多

            16宫格拖拽

            实现一个如图所示的16宫格页面,其中各个数字盒子之间是能相互拖拽,并交换位置的。而横纵各自的标题栏ABC与XYZ实现的功能则是,ABC(XYZ)之间两两互换位置,从而引起两列(行)一起调换位置。

            阅读更多

            JavaScript 权威指南の笔记

            1. 当Javascript解释器启动时,它将创建一个新的全局对象,并给它一组定义的初始属性。
            2. 只要引用了字符串直接量的属性,就会将字符串值通过调用new String(). 方式转换成对象,一旦引用结束,则销毁这个临时对象。
            3. “==”将运算符将原始值与其包装对象视为相等,而“===”不然。
            4. @@ -47,7 +47,7 @@

              NaN,而null转换为数字:0,空字符串转为0与false。

          -
        阅读更多

        不要叫我程序猿,我是前端开发工程狮

        上学期期末开始了解到前端开发,当时忙于做实验、写论文、投文章,也就没深入了解,当时觉得挺好玩的,所以屁颠屁颠的去借了一本《HTML与CSS入门经典》,当时那个迷茫啊。一开始是借了《Java编程思想》和《Android 4.X从入门到精通》,想着复习下Java,然后动手写写安卓,然后毕业搞安卓开发,后来也没看下去。那本入门经典是很基础的那种,看起来轻轻松松地,兴趣也慢慢培养起来。

        阅读更多
        -
        -

        消失的 1px

        之前本人写过一篇文章,是关于1px边框的:从line-height到0-5px。文中提到用缩放的方法固然可行,但是在使用rem或者百分比单位时,时常会造成1px边框在某些机型下消失;而使用border-image方案则不会出现消失的情况;本文将探索该1px边框消失的原因以及后者为何能正常显示。

        阅读更多

        从 line-height 到 0.5 px

        前几天发现写的一段代码,其中line-height(1.7rem)与height(1.7rem)相等,font-size(1.1rem);在ios设备上文字垂直居中,而在android设备上竟上下缝隙相差1px(其实我看不出来是不是一像素,我猜的)。

        阅读更多

        HTML5 截图

        实现一个类似于QQ截图的小东西,点击载入按钮,则载入图片,长按图片,弹出截图框,截图框右下角能够调整大小,并在右边的截图预览区域实时显示

        阅读更多
        -

        HTML5 截图

        实现一个类似于QQ截图的小东西,点击载入按钮,则载入图片,长按图片,弹出截图框,截图框右下角能够调整大小,并在右边的截图预览区域实时显示

        阅读更多
        -
        -
        -
        -

        Building my second brain 🧠 with Obsidian

        This article will take Obsidian as an example to share my practice of using Obsidian to build a second brain!

        +
        -

        命令行工具的监控告警建设

        本人五年的工作经验,历经三份工作,竟然每份都开发维护过前端命令行工具,大家对前端页面和服务端应用有监控告警这件事习以为常,其实这类工具也需要监控告警,本文将从错误处理到上报排查进行分享。

        阅读更多

        排查 Node.js 服务内存泄漏,没想到竟是它?

        团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查。服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间窗口,在短短 36 小时内,内存已经增长到 50%,而平时内存稳定在 20%-30%,可知十之八九出现了内存泄漏。

        阅读更多
        -

        redux 中间件入门到编写,到改进,到出门

        春江花月夜调 bug,孤独寂寞日著 blog。吾母昨夜托梦,吾儿只身在外,读书撩妹两手要抓,前端知识切莫荒废。如无对象可面向,可以学学函数式。多写代码少睡觉,还有周五的周报。redux 要会,middleware 能写,有空记得写博客,写好发给我看看。

        -

        惊醒之余,其敦敦教诲不敢忘,乃正襟危坐,挑灯写下这篇博客,感动~

        阅读更多

        编写可维护的 JavaScriptの笔记

        第一部分主要涉及编程风格,为了让团队的代码看起来如出一人之手;第二部分为编程实践,学到了很多关于 JavaScript 的编程经验;第三部分是关于自动化的,介绍的工具链,在 2016 年底看来已经相当过时。

        阅读更多

        Javascript 语言精粹の笔记

        最近买了几本书,这本《JavaScript 语言精粹》果真精粹,篇幅很少,而附录较多,作者是 JSON 的发明者 Douglas Crockford ,听起来屌屌的,其中的干货也是不少的,看完受益匪浅!

        阅读更多

        函数式编程中的柯里化到底有什么用?

        函数式编程最近越来越活跃,去年实习的时候买了一本 《JavaScript 函数式编程》,囫囵吞枣的看了一遍,似懂非懂的, 今年重新看了一遍,现写下这篇博客,谈谈我对柯里化的理解吧。

        阅读更多
        -

        Node.js 微信公众号开发小试

        申请服务器: 微信公众号的开发需要使用一台用于接收并处理消息的服务器, 此处推荐申请腾讯的免费云主机, 点我去申请吧, 每天九点半开抢, 我选择的服务器镜像是Ubuntu, 关于如何在服务器上配置Node环境, 可参考我另一篇博客使用 Linux 系统开发Web前端. 公众号开发的原理就是通过设置一个接收接口, 一旦开启开发者模式, 微信服务器将转发消息至该接口.

        阅读更多

        Node.js 开发指南の书摘

        章三

        1,单次加载:

        +

        Node.js 微信公众号开发小试

        申请服务器: 微信公众号的开发需要使用一台用于接收并处理消息的服务器, 此处推荐申请腾讯的免费云主机, 点我去申请吧, 每天九点半开抢, 我选择的服务器镜像是Ubuntu, 关于如何在服务器上配置Node环境, 可参考我另一篇博客使用 Linux 系统开发Web前端. 公众号开发的原理就是通过设置一个接收接口, 一旦开启开发者模式, 微信服务器将转发消息至该接口.

        阅读更多

        Node.js 开发指南の书摘

        章三

        1,单次加载:

        require不会重复加载模块,无论调用多少次require,获得的模块都是同一个;

        @@ -53,11 +53,11 @@

        4,

        通过使用npm init交互式初始化一个符合标准的package.json;
        发布包:npm publish;
        更改json文件中的version字段后,重新发布,达到更新版本的目的;
        取消发布:npm unpublish;

        -
        阅读更多

        Schema 与下载条

        由于我司有个网站还没有对应的移动端版本,因此需要在移动端访问该网站时,在底部显示一条下载条,而且点击该下载条时需要满足以下两个需求:

        +
        阅读更多

        Schema 与下载条

        由于我司有个网站还没有对应的移动端版本,因此需要在移动端访问该网站时,在底部显示一条下载条,而且点击该下载条时需要满足以下两个需求:

        1. 点击下载时,如果本机已经安装该软件,则尝试打开对应软件;
        2. 点击下载时,如果本机未安装该软件,则跳转到对应系统的下载地址。
        3. -
        阅读更多

        Javascript 函数式编程の书摘

        章一

        1,确定抽象,并为其构建函数;
        2,利用已有的函数来构建更为复杂的抽象;
        3,通过将现有的函数传给其他的函数来构建更加复杂的抽象。

        阅读更多

        16宫格拖拽

        实现一个如图所示的16宫格页面,其中各个数字盒子之间是能相互拖拽,并交换位置的。而横纵各自的标题栏ABC与XYZ实现的功能则是,ABC(XYZ)之间两两互换位置,从而引起两列(行)一起调换位置。

        阅读更多

        Javascript 函数式编程の书摘

        章一

        1,确定抽象,并为其构建函数;
        2,利用已有的函数来构建更为复杂的抽象;
        3,通过将现有的函数传给其他的函数来构建更加复杂的抽象。

        阅读更多

        16宫格拖拽

        实现一个如图所示的16宫格页面,其中各个数字盒子之间是能相互拖拽,并交换位置的。而横纵各自的标题栏ABC与XYZ实现的功能则是,ABC(XYZ)之间两两互换位置,从而引起两列(行)一起调换位置。

        阅读更多

        JavaScript 权威指南の笔记

        1. 当Javascript解释器启动时,它将创建一个新的全局对象,并给它一组定义的初始属性。
        2. 只要引用了字符串直接量的属性,就会将字符串值通过调用new String(). 方式转换成对象,一旦引用结束,则销毁这个临时对象。
        3. “==”将运算符将原始值与其包装对象视为相等,而“===”不然。
        4. diff --git a/tags/Javascript/index.html b/tags/Javascript/index.html index 802dea7e..27010679 100644 --- a/tags/Javascript/index.html +++ b/tags/Javascript/index.html @@ -1,5 +1,5 @@ -标签: Javascript - 林宜丙的博客 -

          Node.js 的 Morgan 模块与 Cluster 模块

          这段时间鼓捣Node.js,跟着《Node.js 开发指南》把 Microblog 给实现了一下,由于该书撰写于 2012 年,Node 版本目前最新已更新至 v5.9.0,且 Express 也发生了相当大的变化,导致很多书中代码已经不符合当前的版本了。关于实现部分,可参考这篇文章:《nodejs开发指南》微博实例express4.x版 。BTW,目前 express 启动命令改为 npm start,该命令执行 bin 目录下的 www 文件,相当于直接执行 node ./bin/www。此处简要记录下该书第六章提到的关于日志与多核CPU的优化问题,并介绍一款 debug tool。整个 microblog 的代码已放至 github 上:摸我

          阅读更多
          -
          -

          一种实用新型 Obsidian 实践之构建我的第二大脑 🧠

          本文将以 Obsidian 为例,分享我使用 Obsidian 构建第二大脑的实践!

          +
          -

          使用 Linux 系统开发Web前端

          为什么使用 Linux? Mac纵有千千万万的好,作为学生党来说,毕竟其较高的价格让的确让许多我”党“人士望而却步,去年刚进公司实习的时候,使用的是Win7,对于Windows下的命令行体验真是无力吐槽,特别是对于Web前端来说,非常多的工具都运行在终端内,比如不计其数的Node.js工具,后来改用Linux就舒畅多了。

          阅读更多
          -
          -

          Monorepo 下 Git 工作流的最佳实践

          没有哪一种 Git 工作流是银弹,合适的 Git 工作流往往取决于项目的代码规模、协作人数、应用场景等;本次分享先从适合小型 Monorepo 的 Feature branch 工作流开始分享,接着分享适用于中大型 Monorepo 的 Trunk-based 工作流,并给出一些选型标准供同学们参考,希望通过本次分享,大家能找到合适自己 Monorepo 工程的 Git 工作流!

          阅读更多
          -

          命令行工具的监控告警建设

          本人五年的工作经验,历经三份工作,竟然每份都开发维护过前端命令行工具,大家对前端页面和服务端应用有监控告警这件事习以为常,其实这类工具也需要监控告警,本文将从错误处理到上报排查进行分享。

          阅读更多

          排查 Node.js 服务内存泄漏,没想到竟是它?

          团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查。服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间窗口,在短短 36 小时内,内存已经增长到 50%,而平时内存稳定在 20%-30%,可知十之八九出现了内存泄漏。

          阅读更多
          -

          Node.js 微信公众号开发小试

          申请服务器: 微信公众号的开发需要使用一台用于接收并处理消息的服务器, 此处推荐申请腾讯的免费云主机, 点我去申请吧, 每天九点半开抢, 我选择的服务器镜像是Ubuntu, 关于如何在服务器上配置Node环境, 可参考我另一篇博客使用 Linux 系统开发Web前端. 公众号开发的原理就是通过设置一个接收接口, 一旦开启开发者模式, 微信服务器将转发消息至该接口.

          阅读更多

          Node.js 的 Morgan 模块与 Cluster 模块

          这段时间鼓捣Node.js,跟着《Node.js 开发指南》把 Microblog 给实现了一下,由于该书撰写于 2012 年,Node 版本目前最新已更新至 v5.9.0,且 Express 也发生了相当大的变化,导致很多书中代码已经不符合当前的版本了。关于实现部分,可参考这篇文章:《nodejs开发指南》微博实例express4.x版 。BTW,目前 express 启动命令改为 npm start,该命令执行 bin 目录下的 www 文件,相当于直接执行 node ./bin/www。此处简要记录下该书第六章提到的关于日志与多核CPU的优化问题,并介绍一款 debug tool。整个 microblog 的代码已放至 github 上:摸我

          阅读更多

          Node.js 开发指南の书摘

          章三

          1,单次加载:

          +

          Node.js 微信公众号开发小试

          申请服务器: 微信公众号的开发需要使用一台用于接收并处理消息的服务器, 此处推荐申请腾讯的免费云主机, 点我去申请吧, 每天九点半开抢, 我选择的服务器镜像是Ubuntu, 关于如何在服务器上配置Node环境, 可参考我另一篇博客使用 Linux 系统开发Web前端. 公众号开发的原理就是通过设置一个接收接口, 一旦开启开发者模式, 微信服务器将转发消息至该接口.

          阅读更多

          Node.js 的 Morgan 模块与 Cluster 模块

          这段时间鼓捣Node.js,跟着《Node.js 开发指南》把 Microblog 给实现了一下,由于该书撰写于 2012 年,Node 版本目前最新已更新至 v5.9.0,且 Express 也发生了相当大的变化,导致很多书中代码已经不符合当前的版本了。关于实现部分,可参考这篇文章:《nodejs开发指南》微博实例express4.x版 。BTW,目前 express 启动命令改为 npm start,该命令执行 bin 目录下的 www 文件,相当于直接执行 node ./bin/www。此处简要记录下该书第六章提到的关于日志与多核CPU的优化问题,并介绍一款 debug tool。整个 microblog 的代码已放至 github 上:摸我

          阅读更多

          Node.js 开发指南の书摘

          章三

          1,单次加载:

          require不会重复加载模块,无论调用多少次require,获得的模块都是同一个;

          diff --git a/tags/PKM/index.html b/tags/PKM/index.html index 07dda885..8414ce5d 100644 --- a/tags/PKM/index.html +++ b/tags/PKM/index.html @@ -1,5 +1,5 @@ -标签: PKM - 林宜丙的博客 -

          Building my second brain 🧠 with Obsidian

          This article will take Obsidian as an example to share my practice of using Obsidian to build a second brain!

          +
          -

          Building my second brain 🧠 with Obsidian

          This article will take Obsidian as an example to share my practice of using Obsidian to build a second brain!

          +
          -
          -

          redux 中间件入门到编写,到改进,到出门

          春江花月夜调 bug,孤独寂寞日著 blog。吾母昨夜托梦,吾儿只身在外,读书撩妹两手要抓,前端知识切莫荒废。如无对象可面向,可以学学函数式。多写代码少睡觉,还有周五的周报。redux 要会,middleware 能写,有空记得写博客,写好发给我看看。

          +

          redux 中间件入门到编写,到改进,到出门

          春江花月夜调 bug,孤独寂寞日著 blog。吾母昨夜托梦,吾儿只身在外,读书撩妹两手要抓,前端知识切莫荒废。如无对象可面向,可以学学函数式。多写代码少睡觉,还有周五的周报。redux 要会,middleware 能写,有空记得写博客,写好发给我看看。

          惊醒之余,其敦敦教诲不敢忘,乃正襟危坐,挑灯写下这篇博客,感动~

          阅读更多
          -

          Building my second brain 🧠 with Obsidian

          This article will take Obsidian as an example to share my practice of using Obsidian to build a second brain!

          +
          -

          Building my second brain 🧠 with Obsidian

          This article will take Obsidian as an example to share my practice of using Obsidian to build a second brain!

          +
          -
          -

          一种实用新型 Obsidian 实践之构建我的第二大脑 🧠

          本文将以 Obsidian 为例,分享我使用 Obsidian 构建第二大脑的实践!

          +
          -

          排查 Node.js 服务内存泄漏,没想到竟是它?

          团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查。服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间窗口,在短短 36 小时内,内存已经增长到 50%,而平时内存稳定在 20%-30%,可知十之八九出现了内存泄漏。

          阅读更多
          -

          函数式编程中的柯里化到底有什么用?

          函数式编程最近越来越活跃,去年实习的时候买了一本 《JavaScript 函数式编程》,囫囵吞枣的看了一遍,似懂非懂的, 今年重新看了一遍,现写下这篇博客,谈谈我对柯里化的理解吧。

          阅读更多

          Javascript 函数式编程の书摘

          章一

          1,确定抽象,并为其构建函数;
          2,利用已有的函数来构建更为复杂的抽象;
          3,通过将现有的函数传给其他的函数来构建更加复杂的抽象。

          阅读更多
          -
          -
          -
          -
          -

          编写可维护的 JavaScriptの笔记

          第一部分主要涉及编程风格,为了让团队的代码看起来如出一人之手;第二部分为编程实践,学到了很多关于 JavaScript 的编程经验;第三部分是关于自动化的,介绍的工具链,在 2016 年底看来已经相当过时。

          阅读更多
          -

          一种实用新型 Obsidian 实践之构建我的第二大脑 🧠

          本文将以 Obsidian 为例,分享我使用 Obsidian 构建第二大脑的实践!

          +
          -
          -

          实习总结

          上接《不要叫我程序猿,我是前端开发工程狮》,话说我去了挖财实习,此处省略一万字,然后我就顺利转正,接着回学校撰写毕业论文了。

          阅读更多
          -

          Monorepo 下 Git 工作流的最佳实践

          没有哪一种 Git 工作流是银弹,合适的 Git 工作流往往取决于项目的代码规模、协作人数、应用场景等;本次分享先从适合小型 Monorepo 的 Feature branch 工作流开始分享,接着分享适用于中大型 Monorepo 的 Trunk-based 工作流,并给出一些选型标准供同学们参考,希望通过本次分享,大家能找到合适自己 Monorepo 工程的 Git 工作流!

          阅读更多
          -

          一种实用新型 Obsidian 实践之构建我的第二大脑 🧠

          本文将以 Obsidian 为例,分享我使用 Obsidian 构建第二大脑的实践!

          +
          -

          redux 中间件入门到编写,到改进,到出门

          春江花月夜调 bug,孤独寂寞日著 blog。吾母昨夜托梦,吾儿只身在外,读书撩妹两手要抓,前端知识切莫荒废。如无对象可面向,可以学学函数式。多写代码少睡觉,还有周五的周报。redux 要会,middleware 能写,有空记得写博客,写好发给我看看。

          +

          redux 中间件入门到编写,到改进,到出门

          春江花月夜调 bug,孤独寂寞日著 blog。吾母昨夜托梦,吾儿只身在外,读书撩妹两手要抓,前端知识切莫荒废。如无对象可面向,可以学学函数式。多写代码少睡觉,还有周五的周报。redux 要会,middleware 能写,有空记得写博客,写好发给我看看。

          惊醒之余,其敦敦教诲不敢忘,乃正襟危坐,挑灯写下这篇博客,感动~

          阅读更多
          -

          命令行工具的监控告警建设

          本人五年的工作经验,历经三份工作,竟然每份都开发维护过前端命令行工具,大家对前端页面和服务端应用有监控告警这件事习以为常,其实这类工具也需要监控告警,本文将从错误处理到上报排查进行分享。

          阅读更多
          -

          一种实用新型 Obsidian 实践之构建我的第二大脑 🧠

          本文将以 Obsidian 为例,分享我使用 Obsidian 构建第二大脑的实践!

          +
          -

          一种实用新型 Obsidian 实践之构建我的第二大脑 🧠

          本文将以 Obsidian 为例,分享我使用 Obsidian 构建第二大脑的实践!

          +
          -
          -

          不要叫我程序猿,我是前端开发工程狮

          上学期期末开始了解到前端开发,当时忙于做实验、写论文、投文章,也就没深入了解,当时觉得挺好玩的,所以屁颠屁颠的去借了一本《HTML与CSS入门经典》,当时那个迷茫啊。一开始是借了《Java编程思想》和《Android 4.X从入门到精通》,想着复习下Java,然后动手写写安卓,然后毕业搞安卓开发,后来也没看下去。那本入门经典是很基础的那种,看起来轻轻松松地,兴趣也慢慢培养起来。

          阅读更多
          -