11
2018
03

微信小程序开发-用户登录流程学习

一、简介:

微信小程序登录这个概念有些广,有调用官方登录接口和调用开发者第三方服务器登录两种。为什么要登录?因为小程序用户从微信打开时,就已经登录,但是登录后,对于开发者来说还是未登录状态,没有一个唯一固定的标识,无法保存用户的信息,用户第二次进入小程序不能保持上次登录时的数据、状态。

关于登录流程,我这边从网上拿的一张图,虽然不是很认同里面的说法,但流程大致如此:

04
2018
03

微信小程序开发-框架学习(1)

官网文档:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/MINA.html


一、简介

04
2018
02

robot Framework(02)常用语法、xpath的定位01

    刚学robot Framework不久,语法的话如果没用过某个关键字比较懵,一般用过一次就会了。感觉最重要的就是xpath定位元素了,其他的我觉得查查语法就行,就是xpath有点难,就算语法全背熟了,有些复杂的页面场景还是很难定位元素。

    最的学习过的几个语法和几种定位

1、打开浏览器,并打开相应的网址

Open Browser http://example.com Chrome

31
2018
01

微信小程序开发-轮播图

一、入门

    昨天下午刚开始学习小程序,各种注册申请流程,繁琐得很,好在花了一定时间完成了,然后就进入了开发。其实认识得很浅,慢慢学习吧,一步一步来。

参考资料贴一下:

官方指导文档

31
2018
01

robot Framework(01)用户关键字的使用

一、通俗理解

用户关键字,就是自己定义的一个操作或一组操作的封装


二、操作步骤

(如图片看不清楚可点击图片显示原图)

23
2018
01

python robot Framework安装

参考:

https://www.ibm.com/developerworks/cn/opensource/os-cn-robot-framework/index.html


1、python 2.7下载安装(添加环境变量,重新打开cmd窗口)

https://www.python.org/downloads/

20
2018
01

库存系统性能优化感想-灵感很重要

    最近两周做了一个库存系统的优化,其实工作量并不是很大,大概就用了几天的时间,但是对系统的影响是特别大的。

    写这篇文章,主要是为了说明灵感的重要性,对于做性能优化这件事,就是一件再普通不过的事,并没有什么可说的。

    故事还得从一年半以前说起(2016年5月库存系统正式上线运行),库存更新功能最初就是使用Entity Framework框架做的,功能有点复杂,那么开发人员就循规蹈矩用一惯的方式去开发,保存数据就是一条数据一条SQL这种方式,比如说,一次性保存或更新一年(算365天)的数据,那么,保存的数据最多是 365*3 (库存表、日志表、房态自动清零表),一条一条提交到数据库,那得提交1095次,这个时候虽然速度慢点,倒还不算太慢,也是因为数据库总数据量还没多大,后面又加了业务,保存时数据最多是 365*5 (库存表、日志表、房态自动清零表、数据防重表、囤单表),这个时候光执行SQL就得是1825次,还包括一些数据查询操作,逻辑判断操作,还有Mysql数据库表数据量非常大的情况下,这种速度真的慢到事务100%超时,数据保存不成功,现在只能把每次操作时间设置短点,一般是一个月到三个月(30天~90天)这个数据才能勉强保存成功,但等待时间也挺长的。查了下现在(归档移走了部分数据之后),库存表数据近3千万(select count(*)  需要47s),日志表查不出来,查了几分钟还在loading,我怕内存爆掉就停掉了,反正是库存表的N倍,之前有统计是大于1亿的数量。

08
2018
01

Python3安装、基础语法学习

软件安装

环境windows,64位系统

下载安装软件:python-3.6.1-amd64.exe,安装时选择添加到环境变量,就可以随地调用python了。


交互执行环境:在开始菜单->Python 3.6->IDLE (Python 3.6 64-bit)

可以在里面写python语句,直接回车执行。

24
2017
11

[java基础]5、java方法的定义和使用、方法重载

testdemo5.java

/*
public static 方法返回值 方法名称([参数类型 变量,……]){
return 返回值;
}
*/
public class testdemo5{
public static void main(String args[]){
printTest();
int r = plus(10,20);
System.out.println(r);
r = plus(10,20,30);
System.out.println(r);
System.out.println(plus(10.1,20));
System.out.println(OneToN(50));
}
//方法定义:无返回值的方法
public static void printTest(){
System.out.println("test function!");
}
//方法定义:有返回值的方法
public static int plus(int a,int b){
return a + b;
}
//方法重载:方法名相同,参数的类型或个数不同,一般重载方法返回值类型相同
//3个参数,与2个参数的同名方法重载
public static int plus(int a,int b,int c){
return a + b + c;
}
public static double plus(double a,double b){
return a + b;
}
//方法的递归调用:自己调用自己,往往都有以下特点:
//方法必须有一个结束递归调用条件
//每次递归调用后都会有不同的变化
//计算1到n的累加总和
public static int OneToN(int n)
{
if(n <= 0) return 0;
else if(n == 1) return 1;
else return n + OneToN(n - 1);
}
//所有的while循环可以用递归代替,但用哪种取决于具体需求,哪种开发起来方便就用哪种
}


23
2017
11

[java基础]4、java程序逻辑控制语句

程序逻辑控制:顺序结构、分支结构、循环结构




testdemo4.java

public class testdemo4{
public static void main(String args[]){
int age=26;
if(age <= 18){
System.out.println("孩子还小,再长长!");
}
else if(age > 18 && age <= 25){
System.out.println("姑娘大了,可以嫁人了!");
}
else{
System.out.println("捉急!赶紧找个人嫁了吧!");
}
//分支结构
int day = 5;
switch(day){
case 1 :
{
System.out.println("一号");
}
break;
case 2 :
{
System.out.println("二号");
}
break;
default ://除上面情况外的其他情况
{
System.out.println("其他");
}
break;
}
//循环结构
int num = 1;
int result = 0;
//while循环(还有do...while,一般很少用)
while(num <= 100){
result += num;
num++;
}
System.out.println(result);
result = 0;
//for循环
for(num = 1;num<=100;num++)
{
result += num;
}
System.out.println(result);
//循环控制语句:continue(跳过当前循环),break(退出整个循环)
lb: for(int x = 0; x < 5; x ++)
for(int y = 0;y < 3;y ++){
if(x > 2) continue lb;//回到执行x循环
System.out.println("x = " + x + ", y = "+y);
}
//循环嵌套
//打印乘法表
for(int x = 1; x <= 9; x ++){
for(int y = 1;y <= x;y ++){
System.out.print(x + "*" + y +"=" + x * y + "\t");
}
System.out.println();
}
int line = 6;
for(int x = 0; x < line; x ++){
for(int y = 0;y < line - x;y ++){
System.out.print(" ");
}
for(int y = 0;y < x;y ++){
System.out.print("* ");
}
System.out.println();
}
}
}