自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CODING

所谓程序员 就是对自己代码不满足的人

  • 博客(28)
  • 收藏
  • 关注

原创 更好维护的发布订阅模式的应用

基于 TypeScript 的静态能力,解决传统 JavaScript 发布订阅模式在应用中的一些痛点,以求提升开发人员的编码体验。

2022-10-14 11:25:19 663 1

原创 你知道自己的代码在线上有多少问题吗

假如前端出了问题,有啥东西点不动,导致访问的用户变少了。最后的结果是单量少了,用户丢了,还影响了整个部门同学的饭碗。这个锅,背不起。

2020-07-15 10:34:58 622

原创 TS in JS 实践指北

不知道有多少 TS 爱好者哀叹过这个问题:虽然我很想用 TS,奈何老大只让用 JS。今天我,告诉你,在 JavaScript 中也可以有 TypeScript ,而且你的老大不会找你的麻烦。

2019-12-26 10:41:00 1667

原创 TypeScript安利指南

给犹豫是否学习或者还在观望TypeScript的同学做个使用ts的收益分析,希望能够打动屏幕面前的你。

2019-12-24 11:45:29 316

原创 vscode语法插件开发——如何用syntaxes去描述一门语言

背景最近在研究vscode插件开发。作为恰饭工具里最常用的ide,如果能够做到一些自己想要的功能,那是可以极大的提高生产效(xin)率(qing)的,说不定还可以事(tou)半(tou)功(mo)倍(yu)。萌生这个想法的初衷是因为工作当中使用了一个叫做ClearSilver的c++直出模板,这些模板代码因为没有解析器,在html文件当中显示就是一坨白色,非常影响开发心情,以及摧残视力。就像...

2019-06-20 14:41:09 6580 9

原创 emoji unicode转utf-16

emoji的Unicode类型非常多,难以一条规则通吃,弄了半天,暂时就说结论:findSurrogatePair('3420e3') // 4️⃣function findSurrogatePair (point) { let pointX16 = parseInt(point, 16) if (pointX16 <= 0xffff) { return...

2018-11-28 21:51:22 1201 1

原创 前端“冷门”知识点备忘

在这篇博客中不定期连载比较冷门的js技术备忘,因为用得少有时总是忘了怎么回事,用作日后参考逗号运算符逗号运算符是诸如此类的的运算符:1, 2, 3, 4var a = (1, 2) // a=2var a, bfor (var i = 0, j = 10; i < j; i++){} (1, g_t=44, 3+4, 4)(1, eval)('2') // 2这个运算符的...

2018-10-12 11:12:51 749

原创 生产环境兼容前端新特性改造

生产环境兼容前端新特性改造一个新接手的项目。为了日后开发时的好心情,我对这个项目做了一些改造,以更适应现在的潮流。生产环境兼容前端新特性改造-背景-babel配置文件presetsplugins编译顺序使用方法命令行gulp-rollup开始用在gulp中Tree-shaking-背景项目兼容性:ie9以上项目框架:

2018-01-05 16:30:22 572

原创 浅谈vue+webpack项目调试方法

有人觉得vue项目难调试,是因为用了webpack。所有代码揉在了一起,还加了很多框架代码,根本不知道怎么下手。

2017-07-03 14:04:32 56795 1

原创 html5+js拖拽上传的那些事

最近搞了个拖拽上传的项目,以为挺简单,做了之后发现里面涉及的东西还是非常多的。这里随性的谈谈其中有意思的地方吧。

2016-08-26 10:29:14 13346

原创 解决react native使用fetch函数在ios9报network request failed的问题

大坑,上网绕了一大圈找了n久,最后找到解决方法那个兴高采烈。或许是由于我从事前端没开发过ios,有些配置不明白。这里写下来作为参考,也希望能帮到其他人。

2016-06-30 17:40:52 11154 1

原创 在node.js下浅谈文件上传的方法

这是接着上篇文章的下部分,关于文件上传的方法。相对下载,前端部分复杂了不少,接下来就谈谈上传的问题。

2016-06-28 14:53:14 2222

原创 在node.js下浅谈前端下载文件的方法

由于我的工作重心转向网盘的开发和维护,最近整了一个html版的文件浏览器demo,核心内容为上传和下载,积累了一点经验,这里把其中下载的内容拿出来谈一谈。(本文涉及的前端使用vue.js,后台使用node.js+express)

2016-06-23 17:53:01 28366 5

原创 ie8下用iframe解决表单submit以及二级域名跨域的方法

那会用chrome开发,使用jquery.form插件可以很完美的解决这个问题。后期在ie8兼容性测试的时候,不知为什么这个插件总是会报错,从源代码里面调试,也找不到问题的具体原因何在。随着项目上线时间越来越近,心里也越来越急,于是最后决定抛弃这个插件,自己写一个实现。

2016-06-14 14:35:40 3544 1

原创 Visual Studio Code使用typings拓展自动补全功能

今天正巧在看vscode官方文档的时候,看到了介绍其使用typings拓展自动补全功能的介绍,同时查了一点其他资料,感觉用起来非常方便。由于脑子总是会清空一些不常用的东西,因此记在这里方便以后参考。

2016-06-13 15:51:13 73999 4

原创 代码大全第二版读书笔记 第五部分-代码改善 二十二、开发者测试

开发者测试p499开发者测试在软件质量中的角色P500开发者测试的推荐方法P503测试技巧锦囊p505典型错误测试支持工具改善测试过程保留测试数据开发者测试(p499)软件测试一般分为这么几种单元测试 将一个程序员或者一个开发团队所编写的,一个完整的类、子程序或者小程序,从完整的系统中隔离出来进行测试组件测试 将一个类、包、小程序或者其他程序元素,从一个更加完整的系统中隔离出

2015-11-03 14:09:15 878

原创 代码大全第二版读书笔记 第四部分-语句 十九、一般控制问题

一般控制问题(P431)1.布尔表达式(P431)1)用true和false做布尔判断在布尔表达式中应该用标示符true和false,而不要用0和1等数值。隐式地比较布尔值与true和falseif(!printerError){ initializePrinter();}if(printerError){ notifyUserOfError

2015-02-23 20:38:15 634

原创 代码大全第二版读书笔记 第四部分-语句 十七、不常见的控制结构

不常见的控制结构1.子程序中的多处返回如果能增强可读性,那么就使用return用防卫子句(早返回或早退出)来简化复杂的错误处理减少每个子程序中return的数量2.递归在递归里面,一个子程序自己负责解决某个问题的一小部分,它还把问题分解成很多的小块,然后调用自己来分别解决每一小块。对于某一小范围内的问题,使用递归会带来简单、优雅的解。在稍大一些范围里,使用递归会

2015-02-16 19:41:20 602

原创 代码大全第二版读书笔记 第四部分-语句 十六、控制循环

控制循环(P367)1.选择循环的种类(P367)记数循环连续求值的循环无限循环迭代器循环1)什么时候用while循环如果你预先不知道循环要迭代多少次,那么就使用while循环2)什么时候用带退出的循环带退出的循环也是单入单出的结构化控制结构,也是一种首选的循环控制。3)何时用for循环如果

2015-02-12 22:51:34 725

原创 代码大全第二版读书笔记 第四部分-语句 十四、组织直线型代码 十五、使用条件语句

组织直线型代码(P347)1.必须有明确顺序的语句(P347)如果语句之间存在依赖关系,并且这些关系要求你把语句按照一定的顺序加以排列,那么请设法使得这些依赖关系变得明显。设法组织代码,使依赖变得明显使子程序名能凸显依赖关系利用子程序参数明确显示依赖关系'暗示顺序依赖关系的数据InitializeExpenseData( expenseData);ComputeMa

2015-02-11 20:28:17 729

原创 代码大全第二版读书笔记 第三部分-变量 十二、基本数据类型 十三、不常见的数据类型

基本数据类型(P291)1.数值概论(P292)避免使用“神秘数值”如果需要,可以使用硬编码的0和1预防除零错误使类型转换变得明显避免混合类型的比较注意编译器的警告2.整数(P293)检查整数除法检查整数溢出检查中间结果溢出3.浮点数(P295)使用浮点数字时主要考虑的是,很多十进制小数不能够精确地用数字计算机中的1和0来表示。比如1/3或者1/

2015-02-10 21:48:38 862

原创 代码大全第二版读书笔记 第三部分-变量 十、使用变量的一般事项

使用变量的一般事项(P237)1.数据认知你了解多少数据类型?2.轻松掌握变量定义一些简单的习惯。关闭隐式声明声明全部的变量遵循某种命名规则检查变量名3.变量初始化原则不合理地初始化数据时产生编程错误的常见根源之一。掌握一些能够避免初始化问题的行之有效的方法能帮助你节省很多调试时间。在声明变量的时候初始化在靠近变量第一次使用的位置

2015-02-09 20:35:03 584

原创 代码大全第二版读书笔记 第三部分-变量 十一、变量名的力量

变量名的力量(P259)1.选择好变量名的注意事项一个好的变量名是可读的、易记的和恰如其分的。1)最重要的命名注意事项为变量命名时最重要的考虑事项是,该名字要完全、准确地描述出该变量所代表的事物。获得好名字的一种实用技巧就是用文字表达变量所代表的是什么。通常,对变量的描述就是最佳的变量名。名字应该尽可能的明确。像x、temp、i这些名字都泛泛得可

2015-02-05 22:17:26 721

原创 代码大全第二版读书笔记 第二部分-创建高质量的代码 八、防御式编程

防御式编程(P187)防御式编程并不是说让你在编程时持“防备批评或攻击”的态度——“它就是这么工作!”你永远不能预先确定代码中会出什么错误。其核心想法是要承认程序都会有问题,都需要被修改,聪明的程序员应该根据这一点来编程序。1.保护程序免遭受非法输入数据的破坏对已经形成产品的软件而言,仅仅“垃圾进,垃圾出”还不够。不管进来什么,好的程序都不会生成垃圾。通常有三种方法来处

2015-02-05 00:33:34 804

原创 代码大全第二版读书笔记 第二部分-创建高质量的代码 七、高质量的子程序

高质量的子程序(P161)1.创建子程序的正当理由降低复杂度引入中间、易懂的抽象避免代码重复支持子类化隐藏顺序隐藏指针操作提高可移植性简化复杂的布尔判断改善性能确保所有的子程序都很小2.在子程序层上设计我们的目标是让每一个子程序只把一件事做好,不再做任何其他事情,即高内聚性。功能的内聚性是最强也是最好的一种内聚性,也就是说让一个子程序仅执行一项操作。3.

2015-02-04 00:04:25 671

原创 代码大全第二版读书笔记 第二部分-创建高质量的代码 九、伪代码编程过程

伪代码编程过程(P215)伪代码有助于减少设计和编写文档所需的工作量,同时提高这两项工作的质量。1.创建类和子程序的步骤概述1)创建一个类的步骤创建类的总体设计创建类中的子程序复审并测试整个类以上是一个迭代的过程。2)创建子程序的步骤设计子程序检查设计编写子程序的代码复审并测试代码同样,以上是一个迭代的过程。2.伪代码

2015-02-02 22:13:39 734

原创 代码大全第二版读书笔记 第二部分-创建高质量的代码 六、可以工作的类

可以工作的类(P126)这是关于更高效,更合理抽象的一些建议1.类的基础:抽象数据类型2.良好的类接口3.有关设计和实现的问题4.创建类的原因

2015-01-31 11:32:40 710

原创 代码大全第二版读书笔记 第二部分-创建高质量的代码 五、软件构建中的设计

软件开发需要设计,如同建设楼房一般,只有画好草图,才知道下一步改怎么做

2015-01-28 23:43:55 882

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除