日常开发常用

原创
2019/03/15 11:17
阅读数 44

日常开发相关

idea编辑器

  1. Setting -> Editor -> Inspections -> Serializable class without 'serialVersionUID'
  2. Setting -> Editor -> General -> Auto Import -> Java(都选中上)
  3. google-java-format(代码格式化)
  4. alibaba-java-coding-guidelines(代码规则检查)
  5. generateAllSetMethod(生成setter方法)
  6. File-->Settings-->Editor-->Live Templates(配置注释)
/**
   * @description: TODO
   * @param $param$
   * @return $return$
   * @author $USER$
   * @date $date$ $time$ 
*/
  1. 其他

cmd命令

# 合并文件
for /l %i in (0, 1, 12) do type %i.md >> ..\all.txt

# 删除
for /r %i in (*.lastUpdated) do del %i

windows相关

  1. 打开Windows功能对话框:optionalfeatures

maven常用命令

#打包命令
mvn -U clean package
mvn -U clean package -Dmaven.test.skip=true

npm常用命令

# 常用包
npm install -g yarn
npm install -g npm-check

# 常用配置
npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/mirrors/node  
npm config set ELECTRON_MIRROR https://npm.taobao.org/mirrors/electron/

# 在个人目录的.npmrc添加
registry=https://registry.npm.taobao.org/
disturl=https://npm.taobao.org/mirrors/node
ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron


# 检查更新
npm-check -u
# 上下键移动,空格选择,回车更新

# 常用命令
npm cache clean -f

jquery语法

/*清除子元素*/
$(selector).empty() 

javascript语法

/* shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined */
var a = [1,2,3,4,5];   
var b = a.shift(); //a:[2,3,4,5] b:1

/* unshift:将参数添加到原数组开头,并返回数组的长度 */
var a = [1,2,3,4,5];   
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7  

/* pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined */
var a = [1,2,3,4,5];   
var b = a.pop(); //a:[1,2,3,4] b:5  

/* push:将参数添加到原数组末尾,并返回数组的长度 */
var a = [1,2,3,4,5];   
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7  

/* concat:返回一个新数组,是将参数添加到原数组中构成的 */
var a = [1,2,3,4,5];   
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]  

/* splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...  */
var a = [1,2,3,4,5];   
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]   
var b = a.splice(0,1); //同shift   
a.splice(0,0,-2,-1); var b = a.length; //同unshift   
var b = a.splice(a.length-1,1); //同pop   
a.splice(a.length,0,6,7); var b = a.length; //同push 

/* reverse:将数组反序 */
var a = [1,2,3,4,5];   
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]  

/* sort(orderfunction):按指定的参数对数组进行排序 */
var a = [1,2,3,4,5];   
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]  

/* slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组 */
var a = [1,2,3,4,5];   
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]  

/* join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符 */
var a = [1,2,3,4,5];   
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"  

git相关操作

  1. 提交本地代码到分支(注意先同步,后提交)
  1. git pull --rebase mobile mobile
  2. git push -u mobile mobile
  1. 常用命令
# 查看本地分支
git branch
# 查看远程所有分支
git branch -r
# 列出所有本地分支和远程分支
git branch -a


# 创建本地分支
git checkout -b dev 
# 从远程创建本地分支
git checkout -b dev origin/master

# 过程比较复杂,如果没有实际操作过。记下来也没什么卵用。留待以后用到的时候再看。
# https://www.cnblogs.com/WuXiaolong/p/8481305.html

sql学习

  1. 在GROUP BY的同时进行排序的例子
SELECT
	*
FROM
	os_anti_virus
WHERE
	create_time IN (
		SELECT
			max(create_time)
		FROM
			os_anti_virus
		GROUP BY
			equipment_os_id
	)
ORDER BY
	create_time DESC;
  1. 其他

linux常用命令

  1. 查找文件:find / -name file
  2. 部署项目时
#查看PID
netstat -nlp |grep :44944

#启动普通web服务
nohup java -jar OperationManagement.jar >/root/log/OperationManagement.log &
nohup java -jar statistical-task-0.0.3.jar >/root/log/statistical-task-0.0.3.log &
nohup java -jar AssetManagement-1.0.11.jar >/root/log/AssetManagement-1.0.11.log &
  1. 其他

html相关

  1. 超过长度变……
span{
  width:300px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  /*兼容性*/  
  -webkit-text-overflow:ellipsis;
}

安装和环境设置

node.js配置

  1. 配置node-sass,node-sass下载地址
SASS_BINARY_PATH=C:\Users\gongym\win32-x64-64_binding.node

android配置

  1. 下载Android SDK Manager
  2. 配置环境变量
ANDROID_HOME=D:\develope\sdk\android
path=%ANDROID_HOME%\platform-tools
path=%ANDROID_HOME%\tools
  1. IDEA打开Settings -> Appearance & Behavior -> Sysem Settings -> Android SDK 进行设置和安装
  2. 打开CMD测试

android list target

android list avd

android list device

android create avd

android move avd

android delete avd

android list sdk

android update sdk

flutter配置

  1. IDEA安装Flutter和Dart的插件,然后创建Flutter项目
  2. 在IDEA中安装FlutterSDK
  3. 配置国内镜像:
FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cn
PUB_HOSTED_URL: https://pub.flutter-io.cn
  1. 添加Flutter的bin目录到path环境变量中
  2. 运行flutter doctor(会下载所有需要的包)
  3. 运行flutter doctor --android-licenses(根据doctor的警告进行的操作)
  4. 安装模拟器(Mu Mu)
  5. 下载配置gradle:
GRADLE_HOME=D:\develope\gradle
GRADLE_USER_HOME=D:\develope\gradle\package
Path=%GRADLE_HOME%\bin
  1. Flutter配置flutter config --gradle-dir D:\develope\gradle
  2. 编辑器配置Gradle
Service directory path=D:\develope\gradle\package
  1. 配置生效需要重启

flutter开发

  • Flutter使用Dart语言开发,在运行时转换成Java和Objective-C语言。最后编译成apk在模拟器中运行
  • Android和IOS分别需要下载和配置对应的开发环境(模拟器和打包工具等等)
  • Dart语言特点

puppeteer开发

  1. 下载失败可以尝试配置国内源
PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.org
  1. GITHUB

go配置

  1. 下载
  2. 配置GO_PATH
  3. 日常开发在GO_PATH的src目录下建立自己的项目目录

go开发

  1. 下载包
#包下载工具
go get -u github.com/gpmgo/gopm

#使用包下载工具下载之前下载失败的包
gopm get -g golang.org/x/net

go protoc配置

  1. 下载protobuf
  2. 保存好protoc.exe
  3. 下载go的依赖
  4. go get -u github.com/golang/protobuf/protoc-gen-go
  5. cd github.com/golang/protobuf/protoc-gen-go
  6. go build
  7. go install
  8. 保存好protoc-gen-go.exe
  9. 将上述两个exe放在一起
  10. 执行protoc --go_out=. message.proto
  11. 生成mesage.pb.go文件就是我们要的东西了

Hive相关

hive导出

  1. 插入到Hive表中

    insert into table z_credit_white select /*查询语句详情*/
    
    
  2. 导出到MySQL

    sqoop export --connect  jdbc:mysql://bigdata003:3306/white  --username root --password Dingdata_001 --table z_credit_white --columns "chinese_name,global_id,mobile,cust_level"  --hcatalog-database default --hcatalog-table z_credit_white
    
    

hive开发相关

  1. 配置自增ID

    add jar hdfs:///dingdata/hive/hive-contrib.jar;
    create function row_sequence as 'org.apache.hadoop.hive.contrib.udf.UDFRowSequence';
    
    insert into --目标表
    select row_sequence() + id_gen.id_max, --其余字段信息
    from --源表
    cross join (select coalesce(max(/*目标表ID字段*/), 0) id_max from /*目标表*/) id_gen;
    
    
  2. 控制Hive任务的map数

    1. map数决定因素

      1. input的文件总个数
      2. input的文件大小
      3. 集群设置的文件块大小,在hive中通过set dfs.block.size;命令查看
    2. 修改map数

      由于mapreduce中没有办法直接控制map数量,所以只能曲线救国,通过设置每个map中处理的数据量进行设置;reduce是可以直接设置的

      原则:

      1. 使大数据量利用合适的map数;
      2. 使单个map任务处理合适的数据量;

      可以通过以下方式进行修改

      set mapred.max.split.size=256000000; -- 决定每个map处理的最大的文件大小,单位为B set mapred.min.split.size.per.node=; -- 节点中可以处理的最小的文件大小 set mapred.min.split.size.per.rack=; -- 机架中可以处理的最小的文件大小

    3. 增加map数

      场景:逻辑复杂,数据量大,文件大小一般(在文件块大小左右)

      set mapred.reduce.tasks=10; create table a_1 as select * from a distribute by rand(123);

      这样会将a表的记录,随机的分散到包含10个文件的a_1表中,再用a_1代替上面sql中的a表,则会用 10个map任务去完成。效率会比较高

    4. 减少map数

      场景:存在大量小文件。需要提前合并文件减少资源占用

      set mapred.max.split.size=100000000; set mapred.min.split.size.per.node=100000000; set mapred.min.split.size.per.rack=100000000; set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

​ 使文件大小为100M

  1. 控制Hive任务的reduce数

Yarn相关

yarn操作

  1. 删除任务

    yarn application -kill  application_1449040793715_1685611
    
    
  2. 查看任务

需要关注

frappe

  1. github主页
  2. 暂时还不清楚这是个啥,不过看起来很好玩

工作日志

2019-02-21

  1. 编写授权服务时间的定时任务
  2. 修改全网数据大屏的数据显示的问题
  3. 修改定时统计任务的问题
  4. 设备在线状态统计
  5. 设备表脏数据状态修正
  6. 修改AI服务的代码逻辑,将模型训练和预测部分与语音智能服务分离。修改代码,添加功能
  7. 和东财讨论合作的事情,做项目准备

Ubuntu系统

设置分辨率

  1. xrandr(查看当前分辨率)
  2. cvt 1920 1080(查询要添加的分辨率信息)
  3. sudo xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部