软件开发
编程鸭
这个作者很懒,什么都没留下…
展开
-
注意这几点,轻轻松松配置 Nginx + Tomcat 的集群和负载均衡
Tomcat 集群是当单台服务器达到性能瓶颈,通过横向扩展的方式提高整体系统性能的有效手段。Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,可以通过简单的配置实现 Tomcat 集群的负载均衡。本文使用的 Tomcat 是 8.5.35 版本,Nginx 是 1.14.2 版本。接下来看下配置的过程以及可能会遇到的问题,首发于微信公众号「顿悟源码」。1. 概述对于 W...原创 2019-06-03 10:34:45 · 156 阅读 · 0 评论 -
【JAVA】浅谈java枚举类
一、什么情况下使用枚举类? 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便?二、为什么不用静态常量来替代枚举类呢? public static final int SEASON_SPRING = 1; public static final int SEASON_SUMMER = 2; public static final int S...原创 2019-05-18 13:55:13 · 200 阅读 · 0 评论 -
手把手教你使用FineUI+动软代码生成器开发一个b/s结构的取送货管理信息系统(附源码)之开篇
一 本系列随笔概览及产生的背景近阶段接到一些b/s类型的软件项目,但是团队成员之前大部分没有这方面的开发经验,于是自己选择了一套目前网上比较容易上手的开发框架(FineUI),计划录制一套视频讲座,来讲解如何利用FineUI快速开发一个小型的b/s结构的管理系统,已达到帮助团队成员快速掌握b/s结构信息系统的开发方法。源码位置:https://github.com/kamiba/FineU...原创 2019-05-23 14:16:37 · 844 阅读 · 0 评论 -
关于Web开发里并发、同步、异步以及事件驱动编程的相关技术
一、开篇语 我的上篇文章《关于如何提供Web服务端并发效率的异步编程技术》又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有童鞋说我这篇文章理论化很严重,没有实际代码和具体项目做支撑,这个评论让我有种理论和实践脱节的味道,所以我想在这里谈谈我为什么要写这篇文章的原因,这篇文章是把我前不久学习多线程编程的一个总结。 当我从我...原创 2019-05-23 14:12:12 · 178 阅读 · 0 评论 -
基于 Angularjs&Node.js 云编辑器架构设计及开发实践
基于 Angularjs&Node.js 云编辑器架构设计及开发实践 一、产品背景 二、总体架构 1. 前端架构 a.前端层次 b.核心基础模块设计 c.业务模块设计 2. Node.js端设计 三、单元测试 四、持续集成及自动部署 五、打包 六、总结 一、产品背景产品是一个内部项目,主要是基于语义网本体的云端编辑...原创 2019-05-23 14:07:57 · 206 阅读 · 0 评论 -
前端事件系统(四)
事件派发首先来看看jQuery.event的dispatch方法dispatch: function( event ) { // 对event对象进行修正 event = jQuery.event.fix( event ); var i, j, ret, matched, handleObj, handlerQueue = [], ...原创 2019-05-23 14:03:52 · 152 阅读 · 0 评论 -
前端事件系统(三)
上一章对于jQuery的事件系统,对于jQuery的一些事件绑定接口做了分析。同时,引入了事件委托的概念。那么,从本章起,将开始深入到jQuery的事件系统内部,对于其源码进行解析。这一篇是可以独自拿出来看,与前面两章虽然有些关系,但是如果只是对于jQuery源码有兴趣的,并且对前端事件有些理解的,从这章开始看也是可以的。前端事件系统(一)前端事件系统(二)on方法上一章提及到...原创 2019-05-23 13:47:36 · 149 阅读 · 0 评论 -
前端事件系统(二)
本章将把重点放在于对于事件的委托机制,以及jquery的事件绑定方法做一些解析。本章并没有什么比较难懂的地方,也还没有深入到jQuery的事件系统内部。事件委托上一章讲了前端事件系统以及简单地对各个浏览器进行兼容的方法。对于要求不高的页面来说,之前的简单事件注册,就可以很好的胜任各种各样的工作了。但是,试想一种情况。倘若一个页面有着极大量的事件绑定的需求,那么我们之前的事件系统,就不得不一...原创 2019-05-23 11:58:16 · 121 阅读 · 0 评论 -
HTML前端入门归纳——控件
本人一直在从事.net的开发,界面都是采用的WPF,近期花了一个多月进行HTML前端的学习,在这里呢进行学习总结和归纳。 本系列将主要分为4个模块: 控件 样式 布局 JavaScript 根据多年WPF的开发经验,界面就是控件及样式与布局的组合,再加上代码来控制交互逻辑,本期先对HTML常用的控件进行归纳。 div : 区块...原创 2019-05-18 11:16:26 · 2822 阅读 · 0 评论 -
Java 集合系列之 Vector详细介绍(源码解析)和使用示例
第1部分 Vector介绍Vector简介Vector 是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍历等功能。Vector 实现了RandmoAccess接口,即提供了随机...原创 2019-05-23 09:30:12 · 216 阅读 · 0 评论 -
Java代码的编译与反编译那些事儿
编程语言在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language)。编程语言(Programming Language)分为低级语言(Low-level Language)和高级语言(High-level Language)。机器语言(Machine Language)和汇编语言(Assembly Language)属于低级语言,直接用计算机指令编写程序...原创 2019-05-27 14:22:03 · 163 阅读 · 0 评论 -
深入分析Java的编译原理
在《Java代码的编译与反编译》中,有过关于Java语言的编译和反编译的介绍。我们可以通过javac命令将Java程序的源代码编译成Java字节码,即我们常说的class文件。这是我们通常意义上理解的编译。但是,字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令。这个过程是Java虚拟机做的,这个过程也叫编译。是更深层次的编译。在编译原理中,把源代码翻译成机器指令,一般...原创 2019-05-27 14:19:12 · 841 阅读 · 0 评论 -
Hollis原创|不了解这12个语法糖,别说你会Java
语法糖语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。有意思的是,在编程领域,除了语法糖,还有语法盐和语法糖精的说法,篇幅有限这里不做扩展了。我们所熟知的编程语言中几乎都有语法...原创 2019-05-27 14:05:35 · 219 阅读 · 1 评论 -
你以为工厂模式很简单,可能是因为你懂的只是冰山的一角
很多人认为工厂模式很简单,只是有一个建造工厂,帮我们进行对象构造而已。那么请尝试回答下以下问题:1、工厂模式分为几类?2、GOF 23种设计模式中,工厂方法模式和抽象工厂模式有什么区别?3、不在GOF 23种设计模式中的简单工厂模式是什么?4、简单工厂模式、工厂方法模式和抽象工厂模式各自解决什么问题?有什么不同?如果以上四个问题,你都可以很好的回答的话,那么这篇文章就没有继续读下...原创 2019-05-27 14:01:20 · 650 阅读 · 0 评论 -
源码来袭!!!基于jquery的ajax分页插件(demo+源码)
前几天打开自己的博客园主页,发现自己的园龄竟然有4年之久了,没记错的话刚接触编程就知道了博客园,也就是说我入坑4年了?时光啊~。刚学习编程的时候最喜欢的就是来园子里听大神们吹牛逼,看着他们装逼就觉得很过瘾,也学到了很多知识和技能。说来也惭愧,自己却没能为园友们分享自己的所学所得(毕竟水平烂!)。 过去的一年也是辗转了几个城市换了几份工作(注定本命年不太平?)。八月份来到现在所在的公司(O...原创 2019-05-27 13:58:42 · 425 阅读 · 0 评论 -
你必须了解的java内存管理机制(二)-内存分配
前言 在上一篇文章中,我们花了较大的篇幅去介绍了JVM的运行时数据区,并且重点介绍了栈区的结构及作用,相关内容请猛戳!在本文中,我们将主要介绍对象的创建过程及在堆中的分配方式。 相关链接(注:文章讲解JVM以Hotspot虚拟机为例,jdk版本为1.8,个人技术博客www.17coding.info) 1、你必须了解的java内存管理机制-运行时数据区 2、你必须了解的ja...原创 2019-05-27 11:29:24 · 199 阅读 · 0 评论 -
爱奇艺面试Python,竟然挂在第5轮……
今天给大家分享我曾经在爱奇艺的面试,过程还是比较有意思的,可以给大家一些参考聊骚阶段嗲妹妹:你好,我是爱奇艺的HR,我们正在招聘运维开发岗位,请问您最近有在看工作机会吗?我:(这声音也太酥了吧我去……)嗯,你好,信号不太好,能在说下吗?(让我再酥一次吧)嗲妹妹:(重复)我:(我去,真的好酥啊)啊听到了,嗯,最近有在看 (不看机会,就没机会聊下去了啊)嗲妹妹...原创 2019-05-23 14:22:35 · 171 阅读 · 0 评论 -
Spring Cloud系列文,Feign整合Ribbon和Hysrix
在本博客之前的Spring Cloud系列里,我们讲述了Feign的基本用法,这里我们将讲述下Feign整合Ribbon实现负载均衡以及整合Hystrix实现断路保护效果的方式。 1准备Eureka服务器以及多个服务提供者 这里,我们将重用之前博文里讲过的案例,提供的两个(即主从)Eureka服务项目以及三个服务提供者的项目。随后在此基础上,在服务调用者的项目中,通过F...原创 2019-05-28 11:31:31 · 1608 阅读 · 0 评论 -
Android自定义View之(一)View绘制流程详解——向源码要答案
前言 View作为整个app的颜值担当,在Android体系中占有重要的地位。深入理解Android View的绘制流程,对正确使用View来构建赏心悦目的外观,以及用自定义View来设计理想中的酷炫效果等方面,有着极其重要的帮助作用,所以将View的绘制流程作为自定义View系列文章的第一篇。当然,View的绘制流程原理,在现实的工作中是成为高级工程师路上必须克服的障碍;在面试中...原创 2019-05-28 11:51:08 · 943 阅读 · 0 评论 -
谷歌为什么要花26亿美元收购数据分析公司Looker ?
当地时间6月6日,谷歌在官网上发文宣布,谷歌已经签署收购Looker公司的最终协议。预计收购将在今年下旬完成,收购完成后Looker将并入谷歌云部门。这笔收购的价格为26亿美元,这也是谷歌母公司Alphabet继2014年用32亿美元收购智能家居公司Nest以来金额最大的收购案例,也是谷歌历史上继摩托罗拉(125亿美元)、Nest(32亿美元)以来的第三大收购案。为了云业务,谷歌一掷千金。...原创 2019-06-08 10:34:25 · 844 阅读 · 0 评论 -
.NET Core 迁移躺坑记
最近将自己负责的一个核心接口系统从.Net Framework迁移到了.Net Core。整体过程,从业务层面说一般般吧(整体还好但还是搞的业务有感,没出严重故障)但是技术层面上感觉其实并没有达到要求,不过预期也是应该不会那么顺利,接下来可能还需要几个小Fix来处理各种奇奇怪怪的问题。回顾下迁移时候遇到的若干个坑,希望对后续有此类操作的人所有帮助。1.NetCore下的路由行为和...原创 2019-06-02 13:41:16 · 807 阅读 · 0 评论 -
python接口自动化(四十一)- 发xml格式参数的post请求(超详解)
简介 最近在工作中,遇到一种奇葩的接口,它的参数数据是通过xml,进行传递的,不要大惊小怪的,林子大了什么鸟都有,每个人的思路想法不一样,开发的接口也是各式各样的,如果想要统一的话,必须是提前团队已经做好沟通定好规则,这样就像在产品线上生成一样规格大小一致。就不会出现前边的问题了,如果出现了怎么办?而且项目进度比较急,没有时间修改,一期上线就只能凑合着用这组接口了,那么作为QA的你,会不...原创 2019-05-29 14:05:35 · 1463 阅读 · 0 评论 -
面试官: React 强调的『不可变数据结构』怎么实现?
前言我们在学习 React 的过程中经常会碰到一个概念,那就是数据的不可变性(immutable),不可变数据是函数式编程里的重要概念,因为可变数据在提供方便的时候会带了很多棘手的副作用,那么我们应该如何处理这些棘手的问题,如何实现不可变数据呢?文章目录可变数据的副作用 不可变数据的解决方案 实现更简单的immutable1.可变数据的副作用 我们应该都知道的基本知识,在Ja...原创 2019-06-05 15:14:08 · 2448 阅读 · 1 评论 -
SpringBoot第九篇:整合Spring Data JPA
前言 前面几章,我们介绍了 JDBCTemplate、MyBatis 等 ORM 框架。下面我们来介绍极简模式的 Spring Data JPA。Spring Data JPA简介 我们先来了解几个基本概念,捋一下各个概念之间的关系。1、JPA JPA是Java Persistence API的简称,中文名Java持久层API,SUN公司出品。是 JDK 5.0 ...原创 2019-05-31 11:41:11 · 445 阅读 · 0 评论 -
Java并发编程:什么是CAS?这回总算知道了
无锁的思想众所周知,Java中对并发控制的最常见方法就是锁,锁能保证同一时刻只能有一个线程访问临界区的资源,从而实现线程安全。然而,锁虽然有效,但采用的是一种悲观的策略。它假设每一次对临界区资源的访问都会发生冲突,当有一个线程访问资源,其他线程就必须等待,所以锁是会阻塞线程执行的。当然,凡事都有两面,有悲观就会有乐观。而无锁就是一种乐观的策略,它假设线程对资源的访问是没有冲突的,同时所有的...原创 2019-05-24 11:40:12 · 150 阅读 · 0 评论 -
用idea搭建SSM项目,原来这么简单
前言前阵子突发奇想,想学习下SpringMVC的源码,于是打算用idea搭建一个简易的maven版SSM案例,也就是SpringMVC+Spring+MyBatis+Maven,因为之前创建过一些Spring的小demo,相关的软件环境已经搭建完成,本以为搭建一个入门级的SSM项目应该不难,谁曾想这个过程中遇到了不少千奇百怪的问题,从开始创建到成功运行花了我整整一个下午的时间(我的午觉啊...原创 2019-05-24 11:38:43 · 439 阅读 · 0 评论 -
idea创建maven项目速度慢?别急,这有三种方案
困扰Intellij idea是一款非常强大的编辑器,可以很方便地帮我们创建maven项目,有用过的同学应该都深有体会,但我们经常会遇到一个困扰,那就是用idea创建maven项目时,速度很慢,往往需要好几分钟的时间,有时甚至会卡住,主要原因是创建maven项目时默认是下载求网络上的一个文件archetype-catalog.xml,该文件的大小有5-6M,下载的速度很慢,导致创建过程也变得很...原创 2019-05-24 11:34:46 · 937 阅读 · 0 评论 -
设计模式:单例模式 (关于饿汉式和懒汉式)
定义单例模式是比较常见的一种设计模式,目的是保证一个类只能有一个实例,而且自行实例化并向整个系统提供这个实例,避免频繁创建对象,节约内存。单例模式的应用场景很多,比如我们电脑的操作系统的回收站就是一个很好的单例模式应用,电脑上的文件、视频、音乐等被删除后都会进入到回收站中;还有计算机中的打印机也是采用单例模式设计的,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;Web页...原创 2019-05-24 11:27:54 · 131 阅读 · 0 评论 -
HTTP请求的缓存(Cache)机制
先来一张图:####下面简单的来描述一下HTTP Cache机制:当资源资源第一次被访问的时候,http status返回200,在头部携带当前资源的描述信息,eg:最后修改的时间:```Last-Modified```资源状态唯一标识:```Etag```资源在客户端缓存的过期时间:```Expires```同时浏览器会将资源缓存到cache目录,并保存文件描述信...原创 2019-05-24 11:23:36 · 971 阅读 · 1 评论 -
什么是JSON Schema?及其应用方式......
如果你曾经使用过XML Schema,RelaxNG或ASN.1,那么你很可能已经知道什么是JSON Schema,并且可以跳过本文的阅读。如果你是头一次听说,或者听过过这个词汇但不了解,那么你来对地方了。要了解JSON Schema是什么,我们应该首先了解JSON是什么。JSON代表“JavaScript Object Notation”,一种简单的互联网数据交换格式。由于JavaScr...原创 2019-05-24 11:21:31 · 1896 阅读 · 0 评论 -
『前端技术』相比后端是否只能打辅助?
问题来源于知乎提问,截图如下:前后端如何定义前端生存现状前端的下半场前端的机遇1. 前后端如何定义?论坛上人们经常会为前后端的问题展开撕 x 大战,很多时候问题的根源是没有定义好前后端的概念.因为这两个词本身就很笼统,就我个人而言我是这样理解的狭义前端: 就是纯粹的 Web 前端,基于浏览器技术是前端应用狭义后端: 就是纯粹的 Web 后端,基于服务器为前端提供接口的后端应...原创 2019-06-05 14:27:29 · 524 阅读 · 0 评论 -
外链即将失效?论如何用脚本一次性下载/替换失效的外链图片
前言大约一个月前,微博的图片外链失效了,以及掘金因为盗链问题也于2019/06/06决定开启防盗链,造成的影响是:个人博客网站的引用了这些图片外链都不能显示。目前微博和掘金的屏蔽,在CSDN和segmentfault都是可以正常显示的,只影响个人博客。比如前段时间我的博客:obkoro1.com上引用的微博图片都不能显示了。因为我写博客比较频繁,被屏蔽的图片不在少数,肯定不能一个个...原创 2019-06-05 13:54:15 · 597 阅读 · 0 评论 -
注意这几点,轻轻松松配置 Nginx + Tomcat 的集群和负载均衡
Tomcat 集群是当单台服务器达到性能瓶颈,通过横向扩展的方式提高整体系统性能的有效手段。Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,可以通过简单的配置实现 Tomcat 集群的负载均衡。本文使用的 Tomcat 是 8.5.35 版本,Nginx 是 1.14.2 版本。接下来看下配置的过程以及可能会遇到的问题,首发于微信公众号「顿悟源码」。1. 概述对于 W...原创 2019-05-28 13:22:15 · 120 阅读 · 0 评论 -
C#异步的世界【下】
阅读目录新异步的使用 新异步的优势 对于WinForm、WPF等单线程UI程序 对于Web后台服务程序 Result的死锁陷阱 使用AsyncHelper在同步代码里面调用异步 ConfigureAwait 异常处理 异步的实现接上篇:《C#异步的世界【上】》上篇主要分析了async\await之前的一些异步模式,今天说异步的主要是指C#5的async\await异...原创 2019-05-17 14:22:24 · 156 阅读 · 0 评论 -
JavaScript继承详解(六)
在本章中,我们将分析Prototypejs中关于JavaScript继承的实现。Prototypejs是最早的JavaScript类库,可以说是JavaScript类库的鼻祖。 我在几年前接触的第一个JavaScript类库就是这位,因此Prototypejs有着广泛的群众基础。不过当年Prototypejs中的关于继承的实现相当的简单,源代码就寥寥几行,我们来看下。早期Prototy...原创 2019-05-20 14:01:50 · 105 阅读 · 0 评论 -
JavaScript继承详解(五)
在本章中,我们将分析John Resig关于JavaScript继承的一个实现 -Simple JavaScript Inheritance。John Resig作为jQuery的创始人而声名在外。是《Pro JavaScript Techniques》的作者,而且Resig将会在今年秋天推出一本书《JavaScript Secrets》,非常期待。调用方式调用方式非常优雅:注意...原创 2019-05-20 14:00:12 · 136 阅读 · 0 评论 -
avaScript继承详解(四)
在本章中,我们将分析Douglas Crockford关于JavaScript继承的一个实现 -Classical Inheritance in JavaScript。Crockford是JavaScript开发社区最知名的权威,是JSON、JSLint、JSMin和ADSafe之父,是《JavaScript: The Good Parts》的作者。现在是Yahoo的资深JavaScri...原创 2019-05-20 13:57:36 · 179 阅读 · 0 评论 -
JavaScript继承详解(三)
在第一章中,我们使用构造函数和原型的方式在JavaScript的世界中实现了类和继承, 但是存在很多问题。这一章我们将会逐一分析这些问题,并给出解决方案。注:本章中的jClass的实现参考了Simple JavaScript Inheritance的做法。首先让我们来回顾一下第一章中介绍的例子: function Person(name) {this.name = name;...原创 2019-05-20 13:56:28 · 135 阅读 · 0 评论 -
JavaScript继承详解(二)
这一章我们将会重点介绍JavaScript中几个重要的属性(this、constructor、prototype), 这些属性对于我们理解如何实现JavaScript中的类和继承起着至关重要的作用。thisthis表示当前对象,如果在全局作用范围内使用this,则指代当前页面对象window; 如果在函数中使用this,则this指代什么是根据运行时此函数在什么对象上被调用。 我们还可以使...原创 2019-05-20 13:53:54 · 117 阅读 · 0 评论 -
JavaScript继承详解
面向对象与基于对象几乎每个开发人员都有面向对象语言(比如C++、C#、Java)的开发经验。 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例。 类定义了一类事物公共的行为和方法;而实例则是类的一个具体实现。 我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象...原创 2019-05-20 13:49:46 · 126 阅读 · 0 评论