归档

ABAP基础之SQL语句

SELECT语句读取单一记录

1
SELECT SINGLE * FROM TABLE INTO WA WHERE ID=?.
IF SY-SUBRC = 0.
    ...do something

SELECT SINGLE MATNR ERSDA INTO (GV_MATNR, GV_ERSDA) FROM MARA WHERE ERSDA = '20150701'.

ABAP基础之结构与内表

定义结构

1
DATA: GS_1 TYPE ZTPX001.

TABLES: ZTPX001.

DATA: BEGIN OF GS_2,
    ZNUMBER LIKE ZTPX001-ZNUMBER,
    ZNAME LIKE ZTPX001-ZNAME,
    END OF  GS_2.

DATA: BEGIN OF GS_3.
DATA:   ZX TYPE C.
        INCLUDE STRUCTURE ZVPX001.
DATA: END OF GS_3.

深入浅出Node.js - 异步编程(4.1-)

1.函数式编程

  • 高阶函数:将函数作为参数或返回值的函数
  • 偏函数:参数和变量已经预置的函数的函数,如:
1
2
3
4
5
6
7
8
9
var isType = function(type) {
return function(obj) {
var toString = Object.prototype.toString;
return toString.call(obj) == '[object' + type + ']';
}
}
//创建isString()、isFunction()
var isString = isType('String');
var isFunction = isType('Function');

深入浅出Node.js - 异步I/O(3.2-3.4)

1.异步I/O与非阻塞I/O

  • 异步与非阻塞都能达到并行I/O的目的
  • 从计算机内核I/O而言,异步/同步于阻塞/非阻塞不是一码事
  • 系统内核I/O只有两种方式:阻塞于非阻塞(阻塞I/O造成CPU等待浪费,非阻塞I/O让CPU处理状态判断,所以是对CPU的浪费)
    • 在调用阻塞I/O时,应用程序需要等待I/O完成才返回结果,造成CPU等待I/O,不能充分利用CPU,所有内核提供非阻塞I/O
    • 在调用非阻塞I/O时会立即返回,CPU的时间片可以用来处理其他事务,但是由于返回的不是业务层期望的数据,而只是当前调用的状态,那么应用程序需要通过轮询获取数据

Linux常用命令

1.uname -a,可显示电脑以及操作系统的相关信息。

2.cat /proc/version,说明正在运行的内核版本。

3.cat /etc/issue, 显示的是发行版本信息

4.lsb_release -a, (适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb)

5.uname -r,输出版本号

6.ls -l |grep "^-"|wc -l,统计某文件夹下文件的个数

7.ls -l |grep "^d"|wc -l,统计某文件夹下目录的个数

8.ls -lR|grep "^-"|wc -l,统计文件夹下文件的个数,包括子文件夹里的

  1. sudo chown -R vagrant:vagrant ~/repo/,改变拥有者和群组

  2. cat scm_visit.log | grep -e "E00" > /tmp/log.log, 分析日志并导出

  3. vim替换文本::%s/AA/BB/gc,即将AA替换为BB

Git代码托管平台汇总

1.GitHub:不介绍了

2.GitLab:支持无限的公有项目和私有项目

3.Bitbucket:免费支持5个开发成员的团队创建无限私有代码托管库

4.(国内)开源中国代码托管:一个账号最多可以创建1000个项目,包含公有和私有,同时具备团队协作开发平台,支持任务的创建、讨论、便签等

5.(国内)coding.net:速度快,功能与开源中国相似,同样一个账号最多可以创建1000个项目,也支持任务的创建等,同时还有WebIDE

深入浅出Node.js - 核心模块(2.3)

1.核心模块分为C/C++编写的和JavaScript编写的两部分,C/C++文件存放在src目录下,js文件存放在lib目录下,C\C++编写的部分称为内建模块,JavaScript编写的称为核心模块

2.核心模块的编译过程

  • 编译C\C++前,编译程序需要将所有的JavaScript模块文件编译为C/C++代码
    • 转存为C/C++代码:先采用V8附带的js2c.py工具编译js模块文件为C/C++代码,并以字符串的形式存储到node命名空间,不可直接执行
    • 编译JavaScript核心模块到缓存
  • 编译译C\C++

3.核心模块的引入流程,已os模块为例:
require('os')-->NativeModule.require("os")-->process.binding("os")-->get_builtin_module("node_os")-->NODE_MODULE(node_os, reg_gunc)