- 博客(41)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 ES6之Proxy-用20行代码写一个API SDK
ES6之Proxy-用20行代码写一个API SDK目的ES6 里新增了很多概念及语法,有很多我们日常开发都会用到,比如数组对象的解构,箭头函数,class 等等,但是类似 Proxy 这样的特性却很少用到(个人观点), 借这个机会, 简单的过一遍 Proxy 相关的概念及适用场景。准备完成这样一个任务,我们需要知道哪些知识点呢?Proxy 的基本概念API 基...
2018-03-22 09:29:05
1057
1
翻译 (译) 你不知道的 git log
原文链接假设您正在与多个开发者共同维护管理复杂的 git 代码库,那您可能会使用GitHub 或 BitBucket 等工具有深入研究提交历史,并且希望从中找出分支以及合并 issue 的相关问题。图形化界面为用户提供了非常友好的接口来管理 PR 以及查看一些简单的历史记录,但是当工作流程 SHTF (译者注: 这里我理解为是混乱、糟糕的意思) 已经不能用 git log 来替代...
2018-04-12 15:30:33
723
原创 细说javascript中的“指针”
故事背景 最近有朋友问我为什么我运行js代码会抛出如下异常const Hoek = require('hoek');^^^^^SyntaxError: Use of const in strict mode.} 代码中有些乱码咱们就不细看,如果我们了解ES5的话,这是ES5所提供的严格模式, 解决方法可以是在文件或代码前加上”use strict”,如果
2018-01-17 09:39:41
18956
1
原创 nodejs通过tb-excel自定义解析Excel
众多的库中,能够很轻松的找到解析xlsx, csv格式文件的第三方库,并且有许多质量不错的库,如 node-xlsx , excel-parser, excel-export等,都能够帮助我们解析或者生成xlsx, csv文件,但是大部分都局限于文件GitHub背景在实际的生产环境中,为了避免大量的io和并发等性能压力,我们通常不会将文件直接上传或者生成到本地,比如我们要解析一个excel文件(
2017-08-11 16:26:41
1940
原创 nodejs导出excel实战
我们都知道nodejs的内存由于v8内存分配机制的原因十分有限64位系统也只能占1.4G左右, 因此当我们要生成或者读取大文件的时候内存的吃紧会给我们造成极大的困扰, 遇到这样的情况Node给了我们一个很好的解决方法 stream简单的了解一下流 流是数据的集合 —— 就像数组或字符串一样。区别在于流中的数据可能不会立刻就全部可用,并且你无需一次性地把这些数据全部放入内存。这使得流在操作大量数据
2017-06-23 09:33:13
13121
2
原创 nodejs提高工程安全、效率相关的中间件
应用加固:helmetHelmet是一系列帮助增强Node.JS之Express/Connect等Javascript Web应用安全的中间件。 一些著名的对Web攻击有XSS跨站脚本, 脚本注入 clickjacking 以及各种非安全的请求等对Node.js的Web应用构成各种威胁,使用Helmet能帮助你的应用避免这些攻击。安装Helmet:npm install helmet --save
2017-03-28 17:19:58
2870
原创 整理NodeJs相关学习资料
以下所提到的电子书籍均可在git ebooks中免费下载,仅供学习交流使用,觉得对您有帮助请给个star~作用域比如let与var的相关区别,都是作用域中很常见的基础知识垃圾回收传送门 :你不知道的JavaScript(上卷).pdfECMAScript 6 入门阮一峰老师的必读书籍:ECMAScript 6 入门JavaScript语言精粹JavaScript面向对象编程指南.pdfJ
2017-03-27 10:49:06
2565
原创 nodejs与nginx的完美搭配
引言node自己本身可以作为服务器进行驱动,但是node本身对文件的处理能力并不是很好,所以当我们的生产环境中应尽量使用nginx来处理静态的资源以及反向代理,同时也解决了node分布式以及负载均衡的相关问题。nginx的安装以及配置这里以cenos环境为基础进行配置1、基础编译环境的配置C/C++等编译工具以及工具库:yum -y install make zlib zlib-devel gcc-
2017-03-26 12:55:21
48422
5
原创 nodejs相关题目
前序大四下,创业失败开始找工作,开始了紧张繁忙的复习、笔试、面试,其中也遇到了许多挺有意思的题目,总结我遇到的挺有意思的一些Node或者JavaScript的笔试题目。1、node如何利用多核,请尽可能的给出几种解决方案。 答:①Multiprocessor Deployment: Using a Proxy,即每个核跑一个Node进程(fork),但是这种方式只是充分的利用CPU的资源,并没有
2017-03-24 11:35:56
2730
原创 mongodb诊断工具explain()最新API详解
起因 说道explain()我就不得不吐槽一下被坑的经过(假设你已知晓索引相关概念)在数据量和吞吐量越发庞大的今天,优化查询速度是提高系统性能的一个关键点,而获取这类相关信息的重要诊断工具之一就是explain(),引用用《MongoDb权威指南》书中的解释: 通过查看一个查询(find)的explain()输出信息,可以知道查询使用了哪个索引,以及是如何使用的。 最常见的输出有两种
2016-12-26 14:22:55
11661
原创 使用pm2躺着实现负载均衡
前言源码:https://github.com/Unitech/pm2 这里的pm2并不是大气污染物啊事实上,pm2 是一个带有负载均衡功能的Node应用的进程管理器,Node实现进程管理的库有很多,forever也是其中一个很强大但是也相对较老的进程管理器。为什么要使用pm2对于这个问题,先说说我的看法,最基本的原因是因为node本身是一个单线程应用,它的特点就是所有方法都是串行一次执行,并
2016-12-23 00:27:49
25631
原创 Linux下躺着搭建nodejs开发环境的正确姿势
凡是接触过node的伙伴都知道,node无论是生态还是第三方库现在都已经非常完善了,在国内最缺乏的就是相关的教程,我就在此为各位新入坑的麻瓜们讲一讲如何在生产服务器上部署node的开发环境,至于包含的npm相关的知识大家自行baidu或者google吧-。- 下面是官网下载的链接,这个不用多说,有两个版本,LTS和Current,会点英语的伙伴都知道,前者为稳定版本,通常在生产环境部署,后者为最
2016-12-18 23:26:31
6969
2
原创 Android位移动画之——TranslateAnimation实现大师哥运送快递动画
一、背景Android中的动画效果是一个非常强大的功能,在使用过程中极大地提高的用户的视觉以及操作体验,Animations是一个实现Android UI 界面动画效果的API,Animation提供了一系列最基本的动画效果,可以包含旋转,缩放,淡入淡出等等,而Android中大多数控件都可以应用到这些动画。二、分类Android的动画大致分为补间动画(Tween Animation)
2016-07-29 12:08:43
15977
2
转载 Android开机过程
转载自:https://github.com/GeniusVJR/LearningNotes/blob/master/Part1/Android/Android开机过程.md 感谢!!BootLoder引导,然后加载Linux内核.0号进程init启动.加载init.rc配置文件,配置文件有个命令启动了zygote进程zygote开始fork出SystemSer
2016-06-25 20:57:18
921
原创 Android开发技巧——五分钟实现二维码识别
二维码扫描解析现在已经成为一个综合型APP所不可或缺的一个功能了,有很多入门的开发者或许会苦恼二维码识别肯定是得会图像分析技术呀,难道还得学opencv吗?NO,Google早已想到这一点,因此也开源了二维码扫描、生成的代码——zxing,ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种
2016-06-07 23:02:42
29671
15
原创 Android练手——分贝计
博主是通信工程学院的学生,不过很不幸对通信一点都不感冒-。-!,从大一开始就走上了编程这条不归路,前几天实验考试被老师质疑是不是通信工程学院的学生咋BPSK都不知道,甚伤我心,为了证明我还是知道一点专业知识的,正好这两天预习光纤通信涉及dB(分贝),不是数据库啊!,所以就写一个Android上的分贝计,当然,在进行开发之前dB的背景知识以及相关公式必须得了解~,我也查了很多资料,下面是小米博客所介
2016-06-06 21:12:06
5581
1
原创 Android自定义view之ProgressBar的实现
在学习自定义view之前我们必须先来了解一下attrs.xml这个文件,这个文件实际上定义了所有的控件的属性,就是我们在布局文件中设置的各类属性,因此在自定义控件属性的时候,创建一个attrs.xml文件来定义控件属性是十分重要的,下面我们开始进行项目的第一部分一、attrs.xml文件的编写首先在values文件下新建attrs.xml文件
2016-05-25 19:57:57
1367
原创 Mac/Linux下安装及连接mysql的坑
在mac下安装MySQL非常简单,http://dev.mysql.com/downloads/mysql/,在官网下载dmg包之后进行傻瓜式安装,一直点击下一步直到完成,但是安装完成之后mysql会自动生成一个随机密码,并不是别的教程所说密码为空,如图因此我们必须将此密码记住下来,否则接下来会出现以下的情况:这其实就是密码错误的意思,当然,如果我们忘记mysql的
2016-05-24 14:21:28
2745
原创 java基本排序算法总结 (二)——快速排序法
在网上论坛上看了很多例子,快速排序算法是各公司面试笔试常考的一种算法,并且在平时的实际应用中表现形式和实现过程也是非常优秀,笔者认为快速排序法的思想就是基于冒泡排序法,冒泡排序法是将相邻元素进行比较来进行元素的交换排序,而快速排序法则通过确定一个基准元素,将比它大或者小的的元素分别归为一组从而进行递归排序,这里具体的实现结果有点像二分法的概念。在这里借用一张网上的图片来进一步解释
2016-05-09 13:19:18
1723
原创 java基本排序算法总结(一)——冒泡排序法
package test;/* * * @author:Richardwei * @description:冒泡排序法 */public class Test { public static void main(String[] args) { int a[] = { 33, 21, 54, 55, 666, 345, 543, 2, 678 };
2016-05-09 11:50:40
755
原创 简述list,map,set, queue的区别
List是集合类的接口,子类有ArraryList 和LinkList,通常在Android开发中我们常用的是arrayList,来将数据进行插入和移除。其次map也是一个集合映射,不过是键值对的映射,也就是key , value形式,比如当我们需要查询其中的某个对象时,只需要查询其key便能直接获取到他的value(值),就像一个小型的数据库,也有类似于hashmap , Linkedh
2016-03-18 23:31:33
3518
原创 http与https的区别
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。什么是SSL:通过百度,查到SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Tran
2016-03-18 13:30:43
785
转载 android设计模式
一般来说,常用的设计模式有以下八种:单例、工厂、观察者、代理、命令、适配器、合成、访问者单例模式:目的是为了让系统中只有一个调用对象,缺点是单例使其他程序过分依赖它,而且不同单例运行在不同进程中,使得维护困难;工厂模式:生产固定的一些东西,如抽象类,缺点是产品修改麻烦;如喜欢动作片和爱情片的人分别向服务器发出同一个请求,就可以得到他们想看的影片集,相当于不同对象进行同一请求,需求均
2016-03-15 20:03:45
719
原创 Android进程和线程的区别
恩恩,今天参加阿里的面试,被问到Android中进程和线程的区别,着实把我伤脑了,表示平时开发的时候只知道线程,并没有去仔细关注过进程,所以下来特地去查了以下资料,先说说线程:(1)在Android APP中,只允许有一个主线程,进行UI的渲染等等,但是不能进行耗时操作(网络交互等等),否则会造成ANR,就是线程阻塞卡死,未响应。(2)除了主线程之外,耗时操作都应该规范到子线程中,线程之间
2016-03-15 20:02:01
9403
原创 RecycleView的学习和总结
自从接触Android studio以后,对全新的Android UI设计理念以及V7包都有了全新的认识和学习掌握的渴望,因此特地去看了一下全新控件RecycleView的使用,总结如下。他的用法与listview的用法差不多,主要由:adapter、排列布局、执行动画三个部分构成,其中adapter不需要再继承自baseadapter , 转而继承RecyclerView.Adapter这个属性,
2015-12-18 23:31:37
1667
1
转载 Android的混淆打包原理
proguard 原理Java代码编译成二进制class 文件,这个class 文件也可以反编译成源代码 ,除了注释外,原来的code 基本都可以看到。为了防止重要code 被泄露,我们往往需要混淆(Obfuscation code , 也就是把方法,字段,包和类这些java 元素的名称改成无意义的名称,这样代码结构没有变化,还可以运行,但是想弄懂代码的架构却很难。 proguard 就是
2015-09-08 20:43:55
1573
原创 Android开发利器(Logcat 、DDMS、ADB)的使用
先谈一谈LOGCAT的简单的使用方法吧,主要是用来在开发过程中捕获一些Log的信息,嗯,比如说面板(我就不截图了)上所显示的error、warning 、info和debug等等,这几个信息将会在调试或者开发中不断地刷新以及变化展示出来,其中的info信息应该是最有用的,只要在自己工程里的每一个方法中添加一段LOG代码,那么程序在调试过程中进行或者使用到这个方法的时候会告诉你,他是否执行了,是否成
2015-09-06 21:12:49
2495
原创 TCP/IP的三次握手
嗯,这个知识点我好奇了很久,以前也学过,但是都没有好好地去理解去学习,作为互联网基础知识的一部分,以及hr经常问到的一个问题,怎么也得了解透,那么首先分开来理解,TCP是什么。 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成
2015-09-05 16:53:10
669
原创 Android开发之自定义控件与属性动画Animation的结合使用
一样的,V4包,eclipse上开发,笔者是根据一位叫做yayun0516的博主进行学习以及实现,除此之外再发表自己的一些见解以及增加合适的备注。 这个想法最近另笔者特别好奇以及羡慕,自定义控件的熟悉使用应该对一名Android开发者有较高的资历和能力要求,再加上与属性动画的使用,更是大大的提高了用户的体验度,嗯,废话不多说,贴代码和效果图~MineActivity.java类,也就是
2015-09-03 17:11:16
2895
原创 看杭电APP之头像选择弹出对话框(Dialog)
View view = getLayoutInflater().inflate( R.layout.photo_choose_dialog, null); final Dialog dialog = new Dialog(MainActivity1.this, R.style.transparentFrameWindowStyle); //为view中控件添
2015-09-01 17:30:57
1269
原创 关于编译顺序的总结
到目前总结一下一个程序的编译顺序吧,通常,在编译运行的过程中,会先调用基类构造器,不断地反复递归下去,首先是构造这种层次结构的根,然后是下一层导出类,直到最底层的导出类,下面举一个例子来说明:class One{ One(){ System.out.println("One"); }}class Else{ Else(){ System.out.println("Else")
2014-12-09 23:14:06
2578
转载 Java中为什么要使用内部
关于内部类的使用,你可能会疑问,为什么我们要使用内部类?内部类:顾名思义就是把一个类放在一个外围类的内部,比如:class OutterClass { class InnerClass { }}内部类能访问外围类的所有成员,包括私有成员。当生成一个内部类对象时,此对象与制造它的外围类对象之间就有了一种联系,所以它能访问其外围类对象的所有成员,而不需要任何
2014-12-09 13:52:59
789
原创 以下是《Learn Python The Hard Way, 2nd Edition》这本书的尾声部分。
(转自知乎)以下是《Learn Python The Hard Way, 2nd Edition》这本书的尾声部分。 看完了这本书,你决定继续做编程。也许它能成为你的一个职业,也许它能成为你的一项爱好。但你需要一些指导,确保自己不会走错了道路,或帮助你从这个新业余爱好中得到最大的乐趣。 我做了很久的编程。久的你都想象不出来,久的都让我苦恼。就在我写这本书的时
2014-12-07 01:13:01
854
原创 静态数据static的初始化的要点及个人心得体会
这是Java中一个非常重要的概念,只要理清其中的优先级顺序就能很好的掌握,具体内容可由以下的这段代码加以理解:class Bowl{ Bowl(int market){ System.out.println("Bowl("+market+")"); } void f1(int market){ System.out.println("f1("+market+")"); }}
2014-12-06 00:41:03
1152
原创 Java中垃圾回收机制finalize()
“ 在使用程序库的时候,把一个对象用完后就弃之不顾的做法并不是安全的” ——Java编程思想 先来看看你finalize()这个方法的工作原理:在JVM(Java虚拟机)中,在准备销毁对象所占用的内存之前,会先调用finalize()这个方法,来进行内存的销毁以及回收。但是finalize()并不是C++中的析构函数,并不需要每次都将对象完全销毁,只要在JVM内存没有满的那一
2014-12-04 00:18:25
1409
原创 Java中super的限定作用和引用变量的强制类型转换
例子,可以限定调用父类被覆盖的实例class BaseClass{ public int a = 5;}public class SubClass extends BaseClass{ public int a = 7; public void accessOwner() { System.out.println(a); } public
2014-12-03 23:48:33
1596
原创 分享java程序设计中一个小程序:获取当前系统日期和时间在小程序中显示出来
import java.applet.Applet;import java.awt.TextArea;import java.util.Calendar;public class CurrentDateApplet extends Applet { /** * 获得当前系统日期和时间; author:Mr.J; */ private static final long ser
2014-11-08 14:06:49
2983
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人