正儿八经地写JavaScript之单元测试
发表于 | 分类于 编程语言/JavaScript
前段时间阅读《Android编程权威指南》,第21章专门介绍了Android中的单元测试,当时照猫画虎进行了一点练习,感觉在项目中引入单元测试确实是一件事半功倍的事情。于是开始着手查询JavaScript单元测试,才发现原来已经有这么多工具了。下面是对单元测试与Mocha
使用心得的一些整理。
博客SSR实践总结
发表于 | 分类于 博客
由于百度半年都没有收录这个博客的缘故,很早就想尝试Vue的服务端渲染(Server Side Rendering)。
上周末难得双休,决定实现这个功能,然后从vue-cli迁移到nuxt,以及后台从PHP迁移到NodeJS共花了两天时间,然后从Apache迁移到Nginx上又花了一天时间,一番折腾之后,有了下面的血泪史。
安卓入门之本地存储
Android提供了在本地存储数据的功能,这在需求(比如保存登陆密码)和性能(缓存数据)方面是十分有用的。下面整理安卓中本地数据存储的知识,跟前面一样,我们将对比web中的数据存储来学习(PS:貌似还没有写过localStorage相关的博客呢~)
webpack折腾记(二)
最近很忙很忙,没法描述的那种忙:一个人搭后台,接webview,写活动页面...要不是之前简单折腾了下webpack,估计现在更是忙的不可开交。在此期间遇见了许多对于开发环境的需求(貌似webpack3也出来了),因此可以继续折腾折腾。
安卓基础之网络请求
前面提到的webview只能算作是安卓应用网络技术的一部分。作为客户端,安卓也可以向服务器发送HTTP请求,然后处理服务器返回的数据。年初花了一个多月的时间学习HTTP协议,现在主要整理安卓中网络请求的相关知识,主要还是与Web中的Ajax进行对比学习。
Android四大组件
Android 操作系统是一种多用户 Linux 系统,其中的每个应用都是一个不同的用户。就像学习前端开发需要了解浏览器BOM、DOM相关知识一下,学习Android也需要先看看Android系统为Android应用提供了什么能力。
本文将整理Android系统的四大组件。
安卓入门之WebView
过去的一年大大小小写了不少移动端项目(基本都是微信公众号),再加上之前跟Android的同学咨询过Hybird
开发,因此对于WebView
或多或少有一些了解。恰好最近的项目,需要跟移动端的同事协作处理一个分享页面,所以一并整理出来。
安卓入门之样式管理
前两天还在抱怨为啥安卓中写样式这么麻烦,今天才发现原来安卓中也是有样式表的,并且还十分规范!!像这样蒙着头一通乱学真是刺激啊。废话少说,赶紧理清安卓中样式表的使用方法,接下来整个布局就感觉没啥问题了。
Java基础入门
距离上一次写System.out.println("Hello World");
已经过去了很长一段时间了,然而学习安卓还是得掌握Java的基础知识,毕竟归根到底Android也只是一个框架而已,因此这里复(yu)习Java的基础知识,主要是通过对比PHP
及JavaScript
来进行整理。
安卓入门之视图与布局
想去了解一下React Native
和Weex
,转念一想我特么去学Native
干嘛?然后现在准备先学习安卓了,在折腾了相关的环境配置并成功跑完Hello World
之后,开始试着用前端的思维来理解和学习安卓。下面是关于安卓中样式布局的整理。
webpack折腾记(一)
gulp用了很长一段时间了,也挺顺手的,只是最近一直在用vue-cli
进行开发,被其各种方便的特性给惊呆了。然而归根结底就是gulp和webpack的比较,作为新一代的前端流程开发工具(现在也不新了),还是大概了解一下吧。
JavaScript模块管理机制
发表于 | 分类于 编程语言/JavaScript
在之前的项目开发中一直使用RequireJS
进行模块化管理,在NodeJS
中使用的是CommonJS
规范的模块管理,在Vue-cli
中使用ESM
模块管理。恰好昨天面试题有一问提到他们之间的区别,之前并没有太深入这些知识,回答的不是很好,这里整理一下。
微信小程序之请求拦截器
初次接触到请求拦截器是在Vue-ReSource
中,后来使用axios
和restify
实现jwt
单页面应用用户验证的时候也用到了路由拦截器的功能。
在微信小程序中,官方只提供了最基本的wx.request
,现在打算对这个接口进行封装,在小程序中实现简单的路由拦截器。
微信小程序之自定义组件
小程序1.6.3之后已经支持自定义组件,本文已经过时,不建议继续阅读
微信小程序出了挺长一段时间了,但我对这个一直被人吹捧的框架没有半点感冒。出于工作需要写了一个商城demo,由于小程序暂时不支持自定义组件,相关的插件也很少,因此代码写的很烂(这完全是由于我的水平不够导致的)。
最近回过头整理了一下相关的开发文档,决定尝试实现小程序的自定义组件,也算是对最近学习Vue
的一点扩展(脑残粉/斜眼)。
实现一个简单的Promise
发表于 | 分类于 技术原理
回调函数在JavaScript中随处可见,在NodeJS中更是家常便饭,随着而来的就是__回调地狱__。尽管早有耳闻,也知道Promise
是解决回调地狱的一种方法,却只是简单地了解几个API。最近在看axios
的源码,发现拦截器interceptors
那里的实现也是基于Promise
的,加上阅读《你不知道的JavaScript(中卷)》的时候,书中花了一半的篇幅讲解Promise
,然而却一脸懵比。现在 是时候弄清楚Promise
的真面目了。
JavaScript中的对象描述符与响应式数据
发表于 | 分类于 编程语言/JavaScript
自从接触Vue
以来,就对它的响应式数据原理十分好奇。文档中提到是使用Object.defineProperty
实现的,因此决定深入了解JavaScript中对象的一些特性。
history与单页面应用路由
在之前的BOM基础知识中提到了History对象,提供浏览器历史纪录相关的接口,可以通过window.history
对象来模拟工具栏的前进,后退和刷新。HTML5为history对象增加了几个新的方法,可以更灵活的操作历史记录。
二进制计算
发表于 | 分类于 数据结构和算法
虽然很早就接触了二进制,却一直没有正视这个问题,阅读《计算机科学导论》的时候,基本上是跳过了这一部分,总是以“这么基础的东西,反正工作中基本用不上”的理由给搪塞过去。
最近正在阅读《编码》和《程序员的数学思维修炼》,心想终究还是得面对的,于是记录了一点笔记,希望不再回避letcode上关于二进制计算的题目。
浏览器中的跨域
在工作中遇见的跨域问题也有好几次了,但却一直对浏览器的跨域没有很完整的认知。最近正重新学习JS基础知识,这些之前学习过程中遗留下来的问题现在一个一个解决掉吧。
HTTP协议之用户识别(四)
发表于 | 分类于 网络
HTTP协议是无状态的,这意味着每次的请求/响应都是独立进行的,也就是说服务器无法区分两次请求是否来自同一个用户(客户端)。但是在Web网页和应用中,服务器可能同时与多个客户端进行对话, ,因此区分用户身份信息是很有必要的。