正儿八经地写JavaScript之单元测试

发表于 | 分类于 编程语言/JavaScript

前段时间阅读《Android编程权威指南》,第21章专门介绍了Android中的单元测试,当时照猫画虎进行了一点练习,感觉在项目中引入单元测试确实是一件事半功倍的事情。于是开始着手查询JavaScript单元测试,才发现原来已经有这么多工具了。下面是对单元测试与Mocha使用心得的一些整理。

博客SSR实践总结

发表于 | 分类于 博客

由于百度半年都没有收录这个博客的缘故,很早就想尝试Vue的服务端渲染(Server Side Rendering)。

上周末难得双休,决定实现这个功能,然后从vue-cli迁移到nuxt,以及后台从PHP迁移到NodeJS共花了两天时间,然后从Apache迁移到Nginx上又花了一天时间,一番折腾之后,有了下面的血泪史。

安卓入门之本地存储

发表于 | 分类于 客户端/Android

Android提供了在本地存储数据的功能,这在需求(比如保存登陆密码)和性能(缓存数据)方面是十分有用的。下面整理安卓中本地数据存储的知识,跟前面一样,我们将对比web中的数据存储来学习(PS:貌似还没有写过localStorage相关的博客呢~)

webpack折腾记(二)

发表于 | 分类于 前端/前端工程

最近很忙很忙,没法描述的那种忙:一个人搭后台,接webview,写活动页面...要不是之前简单折腾了下webpack,估计现在更是忙的不可开交。在此期间遇见了许多对于开发环境的需求(貌似webpack3也出来了),因此可以继续折腾折腾。

安卓基础之网络请求

发表于 | 分类于 客户端/Android

前面提到的webview只能算作是安卓应用网络技术的一部分。作为客户端,安卓也可以向服务器发送HTTP请求,然后处理服务器返回的数据。年初花了一个多月的时间学习HTTP协议,现在主要整理安卓中网络请求的相关知识,主要还是与Web中的Ajax进行对比学习。

Android四大组件

发表于 | 分类于 客户端/Android

Android 操作系统是一种多用户 Linux 系统,其中的每个应用都是一个不同的用户。就像学习前端开发需要了解浏览器BOM、DOM相关知识一下,学习Android也需要先看看Android系统为Android应用提供了什么能力。

本文将整理Android系统的四大组件。

安卓入门之WebView

发表于 | 分类于 客户端/Android

过去的一年大大小小写了不少移动端项目(基本都是微信公众号),再加上之前跟Android的同学咨询过Hybird开发,因此对于WebView或多或少有一些了解。恰好最近的项目,需要跟移动端的同事协作处理一个分享页面,所以一并整理出来。

安卓入门之样式管理

发表于 | 分类于 客户端/Android

前两天还在抱怨为啥安卓中写样式这么麻烦,今天才发现原来安卓中也是有样式表的,并且还十分规范!!像这样蒙着头一通乱学真是刺激啊。废话少说,赶紧理清安卓中样式表的使用方法,接下来整个布局就感觉没啥问题了。

Java基础入门

发表于 | 分类于 编程语言/Java

距离上一次写System.out.println("Hello World");已经过去了很长一段时间了,然而学习安卓还是得掌握Java的基础知识,毕竟归根到底Android也只是一个框架而已,因此这里复(yu)习Java的基础知识,主要是通过对比PHPJavaScript来进行整理。

安卓入门之视图与布局

发表于 | 分类于 客户端/Android

想去了解一下React NativeWeex,转念一想我特么去学Native干嘛?然后现在准备先学习安卓了,在折腾了相关的环境配置并成功跑完Hello World之后,开始试着用前端的思维来理解和学习安卓。下面是关于安卓中样式布局的整理。

webpack折腾记(一)

发表于 | 分类于 前端/前端工程

gulp用了很长一段时间了,也挺顺手的,只是最近一直在用vue-cli进行开发,被其各种方便的特性给惊呆了。然而归根结底就是gulp和webpack的比较,作为新一代的前端流程开发工具(现在也不新了),还是大概了解一下吧。

JavaScript模块管理机制

发表于 | 分类于 编程语言/JavaScript

在之前的项目开发中一直使用RequireJS进行模块化管理,在NodeJS中使用的是CommonJS规范的模块管理,在Vue-cli中使用ESM模块管理。恰好昨天面试题有一问提到他们之间的区别,之前并没有太深入这些知识,回答的不是很好,这里整理一下。

微信小程序之请求拦截器

发表于 | 分类于 前端/小程序

初次接触到请求拦截器是在Vue-ReSource中,后来使用axiosrestify实现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网页和应用中,服务器可能同时与多个客户端进行对话, ,因此区分用户身份信息是很有必要的。