Category APP
AppCan 的页面是由两个HTML组成,如果要完全关闭的话需要在主HTML eg.index.html中关闭,关闭方法:
appcan.window.close(-1);
AppCan是Hybrid App开发框架即混合开发框架,由官方提供底层功能使用API
Category 后端
假设你正在研发一个游戏,这个游戏有登录的功能,在登录的时候用户输入用户名,然后我们后台需要对用户名是否存在进行判断。
假设有以下三个方法
```go
type MyStruct struct {
Val int
}
首先,我会介绍下使用namedtuple所需要了解的基本概念,然后讲解如何使用namedtuple,最后使用namedtuple来创建一摞纸牌。理解这些之后,就可以权衡利弊,并在生产中使用
在Python2中的列表推导式中for关键字的赋值操作会对声明的变量产生影响 例如下边的Python2控制台交互 1 2 3 4 >>> x = 'init' >>> y = [x for x in 'ABC'] >>> x C 列表推导中的变量x将声明的x覆盖了。这个问题在python3中已经被修复了,表达式内部的变量和赋值,只在局部起作用,表达式上下文内的同名变量还是可以正常引用。 这是Python3的代码 1 2 3 4 5 6 >>>...
预备知识(docker, docker-compose)
参考 https://legacy.gitbook.com/book/yeasy/docker_practice/details
准备知识
除了1和自身外,没法被其他自然数整除的大于1的整数
质数
除了1和自身外,没法被其他自然数整除的大于1的整数
如:2,3,5,7,11,13
互质数
公因数只有1的两个非零自然数,叫做互质数。
如 5,12
欧拉函数
小于n的正整数中与n互质的数的数目。
如:1到7中,与8互质的整数为1,3,5,7,所以φ(8)=4
可拓展服务基础
https://www.lecloud.net/tagged/scalability/chrono
横向扩展
每个服务器搭建相同的代码库,不存储用户数据
用户session存储在独立的数据库或缓存中
etcd
etcd是一个高可用的分布式键值(key-value)数据库。内部采用raft协议作为一致性算法,基于Go语言实现。etcd数据库与redis类似,其独特性在于:
分布式部署,扩展性强,且数据和事务保持一致
提供watch接口,可监听多个键的变化
对于单个键而言,每次更新其值都会保留上一个版本,可以对键进行版本回溯
ttl使用租约实现
应用场景
https://tonydeng.github.io/2015/10/19/etcd-application-scenarios/
集群监控与LEADER竞选
分布式队列
分布式锁
分布式通知与协调
消息发布与订阅
服务发现
作为一名有理想的程序员,我们或多或少都会写一些 shell 脚本,它们可能很短,只有简单的几个命令,也可能非常长,包含了系统检查、编译和运行等多个庞大复杂的任务
在计算机科学中,网络套接字(英语:Network socket),又译网络套接字、网络接口、网络插槽,是电脑网络中进程间数据流的端点。使用以网际协议(Internet Protocol)为通信基础的网络套接字,称为网际套接字(Internet socket)。因为网际协议的流行,现代绝大多数的网络套接字,都是属于网际套接字。
使用JPA进行CRUD以及IDEA 中 Devtools热部署配置
什么是软件框架
软件框架(Software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
上篇文章使用Maven构建项目并成功运行hello,让我初步感受Spring Boot的强大。本次我将使用更优雅的方式创建Spring Boot项目并学习它对数据库的相关操作
Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible.
跨平台的含义
Java的跨平台是“一次编译,到处运行”。Java在编译的时候没有编译成指定CPU类型的汇编代码,也没有和具体操作系统的系统调用相关联,所以编译出来的结果是和CPU,操作系统都不相关的。Java编译出来的是一种字节码,这种字节码必须在Java的虚拟机上才能运行,Java虚拟机会屏蔽不同操作系统,CPU之间的差异。
Maven的核心配置文件pom.xml的解析与其依赖传递特性,并简单介绍Maven在Web开发中的配置操作过程
在实际开发中,我们不是使用命令行或者记事本,而是使用诸如IDEA或者Eclipse的IDE进行开发,本文将介绍Maven与IDE集成和使用以及Maven的生命周期
学习注解最重要的就是弄清楚,为什么学习注解?学习注解的好处?学完能做什么?
1、能够读懂别人写的代码,特别是框架相关的代码;
2、能让编程更加简洁,代码更加清晰;
试想一下,当我们要开展一个新项目的时候。我们第一步就是搭建环境。要从各大官网找jar包、下载jar包、然后分辨重复的、是否有用的、最后放到项目中,项目还没开始就要放几十个jar包,还可能在开发时因为少放了一个而出各种bug,这样做维护时间和成本都很高。Maven可以很好的帮助我们管理jar包,这也就是我们要学习并使用Maven的原因
什么是Maven
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
HTTP无处不在,理解HTTP协议可以帮助我们更好的理解网络
Category 数据库
继续上文的初级篇,聊一聊存储过程的常用特性,谈谈存储过程在工作中的具体使用,希望能对读者有所帮助。 参数传入模式 PL/SQL存储过程有三种传参模式in 、out、in out。默认情况下(即不写)为in模式 先来看看下面的存储过程: 1 2 3 4 5 6 7 8 9 10 --in 、out、 in out模式测试 create or replace procedure proc_param_demo(p1 in number,p2 out number,p3 in...
本文旨在把自己学到的有关存储过程的知识和大家分享,并希望能够帮助正在被存储过程折磨的同学。
什么是存储过程
官方定义:
A procedure is a subprogram that performs a specific action
Category 算法
二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)
树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。
搜索
搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找
归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。
希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。
快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
双端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构。
单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。
一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。 操作 is_empty() 链表是否为空 length() 链表长度 travel() 遍历链表 add(item) 链表头部添加 append(item) 链表尾部添加 insert(pos, item) 指定位置添加 remove(item) 删除节点 search(item) 查找节点是否存在 实现 1 2 3 4 5 6 7 8 9 10...
顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。
在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删除元素)。