自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hongchh的博客

生命是一场练习!

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

原创 vue-cli的webpack模板项目配置文件分析

由于最近在vue-cli生成的webpack模板项目的基础上写一个小东西,开发过程中需要改动到build和config里面一些相关的配置,所以刚好趁此机会将所有配置文件看一遍,理一理思路,也便于以后修改配置的时候不会“太折腾”。一、文件结构本文主要分析开发(dev)和构建(build)两个过程涉及到的文件,故下面文件结构仅列出相应的内容。├─build│ ├─build.js│ ├─ch

2017-02-14 23:07:25 71351 35

原创 微信小程序入坑: 写一个简化版知乎日报

最近开始入坑微信小程序,发现想要练手也不容易,找免费的基于HTTPS的API就要花点时间。在看了网上一些介绍后,决定采用知乎日报的API,写一个简单版的知乎日报作为入坑练习。本文尝试使用微信小程序写一个小demo,实现知乎日报的3个主要页面以及部分功能。3个页面分别为“首页”、“详情页”和“评论页”。index: 首页,展示热闻轮播和热闻列表。点击某条热闻时跳转到详情页面。detail...

2018-07-08 17:07:59 5614 6

原创 NodeJS C++ Addons之C++类实例包装与异步操作

本文是对NodeJS C++ Addons原生写法的进一步探索,介绍了利用原生的Node和V8提供的API实现类包装和异步调用的具体做法。在阅读本文之前,如果对NodeJS C++ Addons的基础不熟悉的话,建议先阅读上一篇博客【NodeJS C++ Addons基础】进行了解之后再回来阅读本文。本文所使用的代码示例可以从该仓库中找到–【cpp-addons】备注: 本文旨在探究Nod...

2018-04-19 17:16:09 3077 2

原创 NodeJS C++ Addons基础

NodeJS C++插件是一种动态链接库,采用C/C++语言编写,可以通过require()将插件加载进NodeJS中进行使用。利用V8提供的API,可以实现JavaScript和C++的互相调用,打通JavaScript和C++之间的接口。在做一些高性能或者底层模块的时候,需要用到一些C++库,NodeJS C++插件可以帮助我们封装这些C++库的接口,使得JavaScript具备调用C++库的...

2018-04-16 15:39:53 9767 5

原创 试玩NodeJS多进程

NodeJS的JavaScript运行在单个进程的单个线程上,一个JavaScript执行进程只能利用一个CPU核心,而如今大多数CPU均为多核CPU,为了充分利用CPU资源,Node提供了child_process和cluster模块来实现多进程以及进程管理。本文将根据Master-Worker模式,搭建一个简单的服务器集群来充分利用多核CPU资源,探索进程间通信、负载均衡、进程重启等知识。...

2018-04-11 16:30:11 16097 1

原创 MonkeyEye电影售票系统--性能优化总结

案例来源:SYSU SE305 课程大作业。互联网售票软件是比较常见的软件系统。通常由多个零售系统和多个供给系统系统。 机票、酒店房间、电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型。 以电影票为例,格瓦拉、蜘蛛网、腾讯等等都做类似的电影票分销、推广业务,但票是由各大院线排期提供的。 分销-院线-影院形成了一个完整的生态体系。 本课程以大家熟悉的订票为例,学习分析、设计、开发的方法

2017-06-09 15:43:21 1910

原创 MonkeyEye电影售票系统--前端技术要点总结

案例来源:SYSU SE305 课程大作业。互联网售票软件是比较常见的软件系统。通常由多个零售系统和多个供给系统系统。 机票、酒店房间、电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型。 以电影票为例,格瓦拉、蜘蛛网、腾讯等等都做类似的电影票分销、推广业务,但票是由各大院线排期提供的。 分销-院线-影院形成了一个完整的生态体系。 本课程以大家熟悉的订票为例,学习分析、设计、开发的方法

2017-06-09 13:30:40 4407 1

原创 MonkeyEye电影售票系统--前端项目结构和协作规范

案例来源:SYSU SE305 课程大作业。互联网售票软件是比较常见的软件系统。通常由多个零售系统和多个供给系统系统。 机票、酒店房间、电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型。 以电影票为例,格瓦拉、蜘蛛网、腾讯等等都做类似的电影票分销、推广业务,但票是由各大院线排期提供的。 分销-院线-影院形成了一个完整的生态体系。 本课程以大家熟悉的订票为例,学习分析、设计、开发的方法

2017-06-09 10:45:33 4024

原创 MonkeyEye电影售票系统--活动图

案例来源:SYSU SE305 课程大作业。互联网售票软件是比较常见的软件系统。通常由多个零售系统和多个供给系统系统。 机票、酒店房间、电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型。 以电影票为例,格瓦拉、蜘蛛网、腾讯等等都做类似的电影票分销、推广业务,但票是由各大院线排期提供的。 分销-院线-影院形成了一个完整的生态体系。 本课程以大家熟悉的订票为例,学习分析、设计、开发的方法

2017-06-07 17:56:22 5381

原创 MonkeyEye电影售票系统--类图和包图

案例来源:SYSU SE305 课程大作业。互联网售票软件是比较常见的软件系统。通常由多个零售系统和多个供给系统系统。 机票、酒店房间、电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型。 以电影票为例,格瓦拉、蜘蛛网、腾讯等等都做类似的电影票分销、推广业务,但票是由各大院线排期提供的。 分销-院线-影院形成了一个完整的生态体系。 本课程以大家熟悉的订票为例,学习分析、设计、开发的方法

2017-06-06 21:04:48 13249 1

原创 MonkeyEye电影售票系统--系统顺序图

案例来源:SYSU SE305 课程大作业。互联网售票软件是比较常见的软件系统。通常由多个零售系统和多个供给系统系统。 机票、酒店房间、电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型。 以电影票为例,格瓦拉、蜘蛛网、腾讯等等都做类似的电影票分销、推广业务,但票是由各大院线排期提供的。 分销-院线-影院形成了一个完整的生态体系。 本课程以大家熟悉的订票为例,学习分析、设计、开发的方法

2017-06-06 19:38:14 19916

原创 MonkeyEye电影售票系统--领域模型和数据模型

案例来源:SYSU SE305 课程大作业。互联网售票软件是比较常见的软件系统。通常由多个零售系统和多个供给系统系统。 机票、酒店房间、电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型。 以电影票为例,格瓦拉、蜘蛛网、腾讯等等都做类似的电影票分销、推广业务,但票是由各大院线排期提供的。 分销-院线-影院形成了一个完整的生态体系。 本课程以大家熟悉的订票为例,学习分析、设计、开发的方法

2017-06-04 15:33:32 7601

原创 MonkeyEye电影售票系统--用例建模

案例来源:SYSU SE305 课程大作业。互联网售票软件是比较常见的软件系统。通常由多个零售系统和多个供给系统系统。 机票、酒店房间、电影票似乎是风马牛大相关的系统,但它们之间存在极其相似的业务模型。 以电影票为例,格瓦拉、蜘蛛网、腾讯等等都做类似的电影票分销、推广业务,但票是由各大院线排期提供的。 分销-院线-影院形成了一个完整的生态体系。 本课程以大家熟悉的订票为例,学习分析、设计、开发的方法

2017-06-04 13:39:18 10569

原创 axios cookie问题和表单上传问题探究

自从入了 Vue 之后,一直在用 axios 这个库来做一些异步请求。最近在跨域、cookie 以及表单上传这几个方面遇到了点小问题,做个简单探究和总结。本文将涉及使用 axios 在跨域情况下成功得到响应报文中的内容以及让 cookie 成功设置的解决办法;使用 axios 上传表单数据时候遇到的小问题。一、同域 cookie 问题首先来看一个同域情况下的cookie例子清楚整个流程以便后面对跨

2017-05-24 14:02:18 10727 2

原创 Ajax异步文件上传与NodeJS express服务端处理

为了避免在实现简单的异步文件上传功能时候引入一个第三方库文件的尴尬情形(库文件可能造成多余的开销,拉低应用加载速度,尤其是在引入库文件之后仅使用其中一两个功能的情况下,性价比极低),最近了解了一下文件异步上传的实现原理,顺带看了看进度条、图片预览等功能的实现,做一点简单的整理。本文所用的代码示例可以从github仓库 file-upload-demo 中找到。文件上传HTML结构如下,...

2017-03-30 22:11:35 6795 8

原创 Ajax和Comet相关技术总结

Ajax是一种技术,一种能够向服务器请求额外的数据而无需卸载页面的技术,能够使网页具备更优的用户体验。Ajax技术的核心是XMLHttpRequest对象(XHR)。本文从XHR开始谈起,理解Ajax技术的特点,再对跨域以及Comet等技术进行简要理解和总结。XMLHttpRequest基本用法XHR对象有两个常用的方法open和send。open方法用户启动一个HTTP请求,不过它不会真的发送HT

2017-02-18 21:02:33 965

原创 记一个Vue项目的开发历程

项目地址 https://github.com/hongchh/timeline-x一、成品展示二、项目需求添加每一天的时间记录,修改某天的时间记录(因为可能记错或者忘了记某项活动)每天的记录可以有多项活动,每项活动有对应的时间每项活动划分到特定的类型2016-01-20,星期五1. 学习Vue, 5h,[学习]2. 跑步,0.5h,[运动]3. 看霹雳布袋戏,2h,[休闲]2、数据分

2017-01-26 15:54:19 29262 26

原创 【动态规划】从子集和问题到背包问题

一、问题定义有一个包含n个元素{e1, e2, …, en}的集合S,每个元素ei都有一个对应的权值wi。现在有一个界限W,我们希望从S中选择出部分元素,使得这些元素的权值之和在不超过W的情况下达到最大,这个便是子集合问题(事实上还有其他类型的子集和问题,本文暂不讨论)。举个更具体一点的例子,某农民今年收成小番茄总重量为W万斤,有n个采购商想要向这位农民收购小番茄,他们想要采购的数目都有所不同,采购

2016-12-22 10:32:37 6709

原创 服务器性能优化初探

前言本文将总结服务器性能优化的两种基本方法,反向代理和数据缓存,分别会使用到nginx和redis,关于反向代理和数据缓存的基础知识暂时不做介绍,本文将以图文并茂的形式详细地记录安装配置nginx和redis,以及使用它们来简单实现反向代理和数据缓存的过程。1、Nginx 安装与 Proxy 的配置nginx的安装过程如下,由于部分命令运行后的输出比较长(例如 make),截图比较麻烦,下面我记录了

2016-11-15 21:30:09 1195

原创 NodeJS基础API搭建服务器详细过程记录

前言在习惯了使用express框架,jade模板引擎等现成工具来写代码之后,很多人对于基本的NodeJS API会慢慢生疏。本文将以一个超小型web项目,来详细介绍如何使用NodeJS基础的http, fs, path, url等模块提供的API来搭建一个简单的web服务器。当做对NodeJS的一次复习,也为初学NodeJS的开发者提供一个参考。本文所搭建的项目将不会使用express等后端框...

2016-11-14 20:45:17 15285 1

原创 作业小结:将gtvg项目修改为支持mvc和数据访问的过程

首先,复制之前作业的my_mvc代码,这里面已经将gtvg改成mvc的模式了。复制之后修改文件夹名字为gtvg-mvc-jdbc。修改pom.xml里面的相关内容,首先是修改groupId确保使用eclipse能够正常导入项目。其次是加入本次作业需要用到的maven依赖,主要有以下截图的几个依赖。准备数据访问属性文件,persistence-mysql.properties,这里老师给出的代码里面已

2016-11-07 17:34:50 1781

原创 【动态规划】带权值区间调度问题

一、问题定义存在单一资源R,有n个需求{1, 2, …, n},每个需求指定一个开始时间bi与一个结束时间ei,在时间区间[bi, ei]内该需求想要占用资源R,资源R一旦被占用则无法被其他需求利用。每个需求i带有一个权值vi,代表该需求被满足之后能够带来的价值或者贡献。如果两个需求的时间区间不重叠,那么它们是相容的。带权值的区间调度问题即,对上面所描述的情境,求出一组相容子集S使得S中的区间权值之

2016-10-24 19:21:45 11986 4

原创 使用动态代理实现一个简单web客户端

前言本文示例是在Apache-CXF的ja-rx-basic项目上进行改造。服务端的代码直接使用这个项目的代码,无需重新编写。基本同之前写jersey-client的步骤流程差不多(http://blog.csdn.net/hongchh/article/details/52764509)。首先需要在demo.client包中新建一个类,ProxyClient.java。得到如下所示的文件结构:

2016-10-09 11:21:32 1559

原创 简单客户端程序--jersey_client

前言由于本次实验只需要完成客户端的编程。于是我没有继续写什么服务器的代码。直接使用了Apache CXF的jax_rs_basic那个样例项目来改造。基本首先,在该项目的demo.client包下面创建JerseyClient.java。最后的文件结构如下图所示: 创建完JerseyClient之后,便可以开始客户端编程了。参照官网的API介绍(https://jersey.java.net/do

2016-10-09 10:54:23 5497

原创 CXF与Spring的集成图文介绍

使用Eclipse创建webapp项目。创建Maven Project,选择maven archetype webapp。创建项目之后还需要自行在src/main下面创建java文件夹。 步骤:项目名 -> Context Menu(鼠标右键) -> properties -> Java Build Path -> JRE System Lib -> Edit按钮 -> Workspace

2016-10-09 10:24:26 552

原创 计算机网络应用层协议分析总结

1、应用层协议原理1.1、网络应用程序体系结构C/S结构,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户机的主机请求。客户机主机既可能有时打开,也可能总是打开。C/S结构之下,客户机之间不直接通信。服务器有固定的IP地址。在C/S体系结构中,常用主机集群创建强大的虚拟服务器。基于C/S结构的应用服务通常是基础设施密集的(infrastrucuture intensive)。P2P结构,

2016-09-21 17:35:11 11362

原创 稳定匹配问题与GS算法(单身狗脱单秘籍)

稳定匹配问题稳定匹配问题(stable matching)是一个常见的问题,GS算法是解决稳定匹配问题的一个优秀的算法。下面,我将以男女配对的例子来介绍稳定匹配问题并阐述GS算法的具体步骤。GS算法,全称Gale-Shapley算法。学习完稳定匹配问题和整个算法流程之后,我觉得它还可以起另外一个别名,Get-rid-of-Single算法,单身狗脱单算法。问题描述有n只男性单身狗的集合M = {m1

2016-09-19 16:46:03 14372 6

原创 socket通信基础知识点记录

网络通信是一种进程间通信(IPC, Inter-Process Communication),要求位于不同网络节点不同进程的通信双方必须遵循统一的通信协议方可实现。基于套接字(Socket)通信是应用在不同节点上的进程间通信的典型办法。1、基本原理1.1、 Socket API基本概念Socket API是TCP/IP网络的API,用于提供IPC通信。下面是socket API的概念模型。 Soc

2016-09-11 15:34:31 3870

原创 计算机网络概述

1、基本概念主机(host),或者称为端系统(end system),通过通信链路(communication link)和分组交换机(packet switch)连接到一起。链路的传输速率是以bps度量,当一台端系统有数据要向另一台端系统发送时,发送端系统将数据分段,并为每段加上首部字节。由此形成的信息包称为分组(packet)。从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机

2016-09-11 09:05:59 1718

原创 JavaScript 事件流、事件处理程序及事件对象总结

JS与HTML之间的交互通过事件实现。事件就是文档或浏览器窗口中发生的一些特定的交互瞬间。可以使用监听器(或处理程序)来预定事件,以便事件发生时执行相应的代码。这种在传统软件工程中被称为观察员模式,支持页面的行为与页面的外观之间的松散耦合。本文将介绍JS事件相关的基础知识。一、事件流事件流描述的是从页面中接受事件的顺序。事件冒泡事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向

2016-08-26 17:31:12 2432

原创 JavaScript DOM扩展

一、选择符API扩展querySelector()该方法接受一个CSS选择符,返回与该模式匹配的第一个元素。没有匹配的元素则返回null。在Document类型调用该方法会在文档元素的范围内查找匹配元素,在Element类型调用该方法会在该元素的后代范围内查找匹配元素。传入非法的选择符时会抛出错误。var div = document.querySelector("div");var myDiv

2016-08-24 20:11:49 960

原创 JavaScript DOM基础知识总结(二)

一、动态脚本动态脚本是指页面加载时不存在,但将来某一时刻通过修改DOM动态添加的脚本。创建动态脚本有以下两种方法:插入外部文件和直接插入JS代码。如下面代码示例,两种方法都需要等到”document.body.appendChild(script);”这句代码执行完之后才会将脚本引入。第二种方法中使用异常处理的目的是要兼容IE浏览器。function loadScript(url) { var

2016-08-24 12:46:38 585

原创 JavaScript DOM基础知识总结

DOM(文档对象模型)是针对HTML和XML文档的一个API。DOM描绘了一个层次化的节点树,允许开发人员添加、删除和修改页面的某一部分。一、Node类型DOM1级定义了一个Node接口,该接口将由DOM中的所有节点类型实现。这个Node接口在JavaScript中是作为Node类型实现的。JS中的所有节点类型都继承自Node类型,共享着相同的基本属性和方法。每个节点都有一个nodeType属性表明

2016-08-23 15:01:14 662

原创 【分治策略】逆序对问题总结

一、逆序对1. 问题背景假如有一组电影集合,包括n部电影。某个人对这n部电影的喜欢程度各有高低,根据其喜欢程度对这n部电影进行排名,按照从1到n的方式进行标记,这就形成了一个关于电影的排名表。假设你和一个陌生人各有自己对于这n部电影的排名表。现在想要比较你跟这个陌生人的“品味”差别,看看你们俩是否有“类似”的爱好。一个很自然的办法就是对比两个人各自的排名表,看看两个排名表的排名状况是否相似。如果两张

2016-08-18 16:41:28 11566 1

原创 JavaScript window、location对象基础知识整理

window对象window是BOM的核心对象,表示浏览器的一个实例。在浏览器中,window对象有双重角色,它是通过JS访问浏览器窗口的一个接口,也是Global对象。任何在全局作用域中声明的变量和函数都会变成window对象的属性和方法。虽然全局变量也是window对象的属性,但是与直接在window上定义的属性也是有点不同。全局变量不能通过delete操作符删除,而直接在window上定义的属

2016-08-18 10:43:47 3016

原创 【分治策略】归并排序算法总结

归并排序思想归并排序的思想很简单,拿到一个无序的序列,先从序列的中间位置将其切分成两个子序列,然后对两个子序列递归地进行归并排序,最后,将排好序的子序列合并成一个完整的有序序列。归并排序算法的伪代码如下:序列seq = [s1, s1, s3, ..., sn]归并排序: 将seq切分成两个部分seq1, seq2; 对seq1进行归并排序; 对seq2进行归并排序; 把seq1和

2016-08-17 12:41:47 2904

原创 JavaScript模仿块级作用域与私有变量

一、块级作用域JS没有块级作用域的概念,定义在块语句中的变量,实际上是在包含函数中而非语句中创建的,如下面例子,变量i和j创建之后即便离开了块语句,只要还在包含函数func中,就可以访问到这两个变量。必须等到函数func执行完毕销毁作用域之后,变量i和j才会被销毁。function func(count) { for (var i = 0; i < count; ++i) { conso

2016-08-17 09:53:15 831

原创 JavaScript闭包的原理与缺陷

闭包的原理闭包是指有权访问另一个函数作用域中的变量的函数。根据下面的代码示例来理解什么是闭包,在add函数内部的匿名函数中,访问到外部函数的变量outerArg,在执行add(10)之后外部函数返回了,并且将内部的匿名函数赋值给了变量addTen,此时通过addTen调用函数,依然可以访问到outerArg,也就是10。这个闭包中的变量,只能通过调用addTen函数访问,无法通过其他渠道访问到,下面

2016-08-16 16:37:51 2893

原创 【贪心算法】Huffman编码

问题描述有一组字符集{c1, c2, …, cn},在使用这组字符集的过程中,通过统计发现每个字符都有其相应的出现频率,假设对应的频率为{f1, f2, …, fn}。现在需要对这些字符进行二进制编码,我们希望的编码结果如下:每个字符都有其独一无二的编码;编码长度是变长的,频率大的字符使用更少的二进制位进行编码,频率小的字符则使用比较多的二进制位进行编码,使得最终的平均编码长度达到最短;每个字符的编

2016-08-16 11:04:40 6561 1

原创 【贪心算法】Kruskal算法的实现与应用

问题背景假设我们有n个位置的集合V={v1, v2, …, vn},我们想在它们顶部建立一个通信网络,网络应该是连通的,即任何两个位置vi和vj之间至少存在一条路径可以相互到达。对于确定的两个位置(vi,vj),假设在这两个位置之间建立网络连接的费用为c(i,j),c(i,j) > 0。将上述问题抽象成一个无向图G=(V,E),用图来表示可能被建立的链接的集合,图的每个结点代表每个位置,图的每条边e

2016-08-14 13:56:24 10095 1

空空如也

空空如也

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

TA关注的人

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