任务驱动,有目标性的去研究,学习
来源:互联网 发布:xampp 数据库配置 编辑:程序博客网 时间:2024/05/02 04:44
任务驱动,有目标性的去研究,学习
最近两周都在搞一个工具的调研,其实这个工具系统已经运行了蛮长时间,一直处于维护和新需求添加阶段,因此也经常出现一些bug问题。主要考虑到性能方面的问题,于是我们就试着换一种方式去实现,看是否可行。ESB,多系统平台之间的集成,想用来练练手,自己只是稍微了解了解了点,后来就被指派去研究:假设用shell脚本去执行我们目前系统的大部分功能,再用java去调用shell脚本,调用完成后再进行一些善后处理工作等。
Linux知识,其实自己很去年就接触了,也就是只能进行简单的一些操作。这次主要是为了解决实际的问题而重新拾起Linux平台。照着原先学习的比较,很快就再本机搭建去了一个虚拟的Linux平台,利用SecureCRT软件使XP与Linux进行交互。由于目的性强,只有通过组合命令才能解决这复杂问题,首当其冲的就是学习shell脚本。脚本的编写规范,格式等。由于自己以前也没写过shell脚本,自己就把复杂的任务尽量简单化,步步分解,只有当前面的功能实现了,才进行继续编写,遇到不懂的,再找资料,测试,编写小实现运行。其中有几个地方比较印象深刻:有个同事是进行Linux平台的项目上线,熟悉一些Linux命令,自己遇到几个问题,想不出来,就去向他讨教,几个比较关键的地方在他的指引下一一被我解决啦。
以下是自己写的shell代码,但是没有将里面的部分逻辑进行函数提炼(自己会优化处理和功能的完善)。
#!/bin/ksh
## 数据库导出文件部分省略
................
orgin_file_name='dim_location_simple.csv'
dim_location_dic_name="dim_location_dic.csv"
#area_code=$1
area_code=1-4-
#area_code_index=$2
area_code_index=2
first_line=`head -n 1 $orgin_file_name`
#echo $first_line
#统计导出文件中每一行记录的列数
file_field_num=`awk '{FS=","} END {print NF}' ${orgin_file_name}`
#echo ${file_field_num}
#统计area_code下属地数量
area_code_count=`awk 'BEGIN {FS=","} ($1~/'${area_code}'/) {print NF}' ${dim_location_dic_name}`
#echo ${area_code_count}
index=1
while [ ${index} -le ${area_code_count} ]
do
#当前属地编码
current_area_code=`awk 'BEGIN {FS=","} ($1~/'${area_code}'/) {print $'${index}'}' ${dim_location_dic_name}`
index=$((${index}+1))
#导出的属地清单文件名称
output_file_name="dim_location_${current_area_code}.csv"
output_zip_file_name="dim_location_${current_area_code}.zip"
#echo ${output_file_name}
#写入字段标题
head -n 1 $orgin_file_name | awk 'BEGIN {FS=","} { i=1; for (i =1; i<NF; i++) {if(i != '${area_code_index}') printf $i"," } print $'${file_field_num}' }' > ${output_file_name}
#导出属地化清单文件(去除AREA_CODE列)
awk '{FS=","} ( $'${area_code_index}'~"'${current_area_code}'" ) { i=1; for (i =1; i<NF; i++) {if(i != '${area_code_index}') printf $i"," } print $'${file_field_num}' }' ${orgin_file_name} >> ${output_file_name}
#测试文件是否为只有文件头,若是则删除
file_line_num=`wc -l ${output_file_name} | awk '{print $1}'`
##测试用,测试文件的行数
#file_line_num=`wc -l ${output_file_name}`
#echo ${file_line_num}
###
(test ${file_line_num} -le 1) && rm ${output_file_name}
##压缩属地化清单文件为zip格式,删除相应的CSV文件
if [ -e ${output_file_name} ]; then
zip ${output_zip_file_name} ${output_file_name}
#rm -f ${output_file_name}
fi
Done
其实,我写这篇文章也是为了记录自己的一些思想观念的转变。任务再复杂,再困难,我们可以进行一步步分解,有目的性去查找资料,寻求帮助,结合自己的大胆的想法和不断的尝试,最终的结果可想而知啦。任务驱动学习,带着问题去学习,不盲目,不盲从,静心思考,不断尝试,追求完美。
- 任务驱动,有目标性的去研究,学习
- 开始有目标的学习,努力!
- 有时间可以去研究的几个开源框架
- 图像显著性检测学习之显著目标检测的研究思路
- 学习、研究C#应该去看的网站
- Web学习记录<一>目标与任务
- 思辨:目标驱动的产品设计
- 一种基于任务(事件驱动)的程序运行模型研究
- 如何才能有仪式感的去提高和学习技术?
- 研究目标
- 【unity】朝向固定的目标去位移
- 每天有目标的编程
- 嵌入式目标机上的代码研究
- 显著目标检测的研究思路
- 非合作目标测量的研究现状
- 软件配置管理的目标和任务
- 任务目标配置格式的设计
- 目标驱动
- Winsocket入门教程二:非阻塞式服务器和客户端程序(TCP)
- Java操作word
- 3ds max贝塞尔曲线输出
- Java操作word
- 代码里判断cpu大小头的方法
- 任务驱动,有目标性的去研究,学习
- layout的main.xml出现了个有趣的错误(我的错啊)
- Angel's Lullaby
- JS冒号
- 闲着没事写了个 双色球生成
- RESTful Rails Development
- 网站安全
- js
- 为手工添加MFC PreTranslateMessage 重载