2012年实习总结

来源:互联网 发布:网络fm在线收听 编辑:程序博客网 时间:2024/06/05 12:22

        UC待过半年,半年期间每遇新的知识都会有所记录.刚开始每天都有记录,稍后的时间略有懈怠,现把实习期间所学的零碎的知识分享出来.实习的工作是做后台类的开发,当然全文内容也也都是与之相关的内容.

 

2012-7-9

关于浏览器下cookie数据的RFC标准:

常用浏览器下最多能存放300cookie,每个域名下最多存放50cookie,每个cookie的大小不超过4KB

 

2012-7-10

1ssh的跳转登陆:ssh -pport user@host 回车输入密码

securecrt的文件上传与下载:rz,sz

远程文件拷贝:scp -P portuser@host:path/file path

2CVS使用:

cvs环境变量配置:将CVSROOT加入到.bashrc

cvs命令使用:checkout+update+commit

3du命令:

查看文件占用空间:du -h--max-depth *

4domainhost的区别:

domain是指权威域名向前取一个点分割,host是指整个ip地址。例如:www.news.baidu.com hostwww.news.baidu.com,但是domainbaidu.com

 

2012-7-11

1、系统命令

查看文件大小du命令:du -sh *

查找命令:find /path -name

                 find /path -size +1000000C

ls命令:ls -lR>>filename

正则表达式:?: ?:(name1|name2)

2、域名的格式有三种形式,很难用re来限定:

#1、公司.匹配顶级域名

#2、公司.匹配国内域名

#3、公司.匹配国际域名.国内域名。

 

2012-7-12

1、 关于cookie

path域没有权威的文档证明不能为空,value域也可以为空,有些网站可能只需要key域就能进行登录工作。

 

2012-7-13

tar命令:-c create

        -z gzip

        -f file

        -v verbose

        -j bzip2

细节:更新打包时最好以工程名+版本名命名,这样有助于运维的进行部署。运维解压缩覆盖掉原先的文件就行了

 

2012-7-16

1Python线程通信

otherThread.join()此处等待otherThread的线程结束

Event,lock的使用  

面向对象中线程类中: __call__函数需要调用apply(self.func,self.args)

调用时t =threading.Thread(target =ThreadFunc(loop, (i, loops[i]), loop.__name__))

2Threading

#构造方法

       #Thread()

       #@args target要执行的方法名

       #@args name线程名

       #@args args 要传入的方法参数

  

       #isAlive()

       #get/setName()

       #is/setDaemon()

       #start()

       #join() 阻塞当前上下文环境的线程,直至调用此方法的线程终止或者到达指定的timeout

 

2012-7-17~2012-7-18

学习deferreactor,重要函数:threads.deferToThreadthreads.deferToThreadPoolreactor.run()

 

2012-7-20

学习select和以epoll的知识,前者轮询触发,后者中断触发(思考:怎样用selectepoll编写非阻塞的程序)

 

2012-7-23

学习defer\reactor\threadPool\threads线程池的流转过程

 

2012-7-24

注意工作中的细节提升工作的效率:例如将最常用的文件和软件图标放在触手可及的地方

 

2012-7-25

学习LoadRunner的使用、创建脚本,参数化脚本,播放脚本,负载测试运行脚本,查看运行结果

 

2012-7-26

1、重复的工作尽量使用脚本完成,例如:测试cookieserver优化时,每次测试结束进行下次测试时需要进行清理和恢复工作就可以将这些过程做成脚本

2awk命令

Awk命令主要分为三个字段:Begin、正文、End分割符:-F

Ex: 

awk -F \)'{print $4}' cookieserver.log.2012-07-20 | cut -d , -f 3 | sort -g>cookieserver.log.2012-07-20.queue

awk'BEGIN{sum=0}{sum=sum+$1}END{print sum}' cookieserver.log.2012-07-20.queue

3Cut命令:

按域获取:分隔符:-d  域获取:-f  Ex: cut -d , -f 3

按字符获取:-c                     Ex:cut -c num1-num2

 

2012-7-26

Linux经常使用的文件夹,不方便移动的请建立软链接并且放在用户目录下

 

2012-7-27

学习vim的光标的移动:上下左右、行首行尾、词前词后、屏幕上中下、fr、标记、简单搜索

 

2012-7-30

日志不但是用于错误记录,可以跟踪软件的状态以解决问题和性能调优

抓取信息的命令:grep -r ssl *.py   grep-c  ssl *.py

新旧文件对比:vimdiff loader.py ~/WorkSpace/lynemo/cookieserver/loader.py

强制关闭进程: kill -9 5200

 

2012-7-31

1、不要只做上面的告诉的,例如:告诉你收集数据并发给老大,你应该对收集好的数据做简单的分析,再把结果连同数据发送给他们,而不是简单的将数据罗列出来让他们自己理解分析。

——记在cookie server数据发送后

2、函数请成套使用:悲剧的openos.open

3、请在任何变更前留下备份

——记在readerselect非阻塞读取cookie上线测试

4linux命令

抓取信息命令:grep -c个数 -i 忽略大小写 -l只显示文件名

显示文件或文件夹的属性:stat命令

将文件解压到指定目录:tar xvfz/tmp/my_home_directory.tar.gz -C /home/ramesh

df命令(磁盘空余)显示已挂载的文件系统上总的磁盘空间和剩余磁盘空间

 

2012-8-1

1、 做任何事之前请先把环境什么的问清楚再动手

——memcachedcore看半天没效果,应该早问怎么看那个文件的

2、做事要谨慎,第一次跟别人打交道就把别人的名字打错是很不礼貌的——凡事做完要确认,o+check才是真正完成。

 

 

2012-08-09~2012-08-10

Memcached重启的bug修复总结:

1、如果可以尽量从最根本入手,例如:core文件,或者core.txt数据。

2、多使用对比,通过对比发掘问题产生的根源

3、不要局限是服务,要以业务流程的眼光。从整个业务流程来分析bug产生的根源

4、进行流程梳理时,多使用笔记,通过笔记记录服务之间的跳转函数和关键的跳转数据

关键词:源头、对比、业务、笔记

公司里错误是会有残留影响的,上次上线流程中出现的错误,影响到了这次上线

 

2012-08-13

1cvs命令

查看更改:cvs log -hbase_req.py

更新到最新:cvs up -Ad

更新到指定版本:cvs up -rPS1-RC6-1

查看状态:cvs statusscs/cs_client.py

版本之间对比:cvs diff -r1.3-r1.5 file_name

2、查看python版本 python -V

 

2012-08-14

对于日志数据有影响的有:应用版本、机器、时间。所以在用日志对比来发现性能问题时,要首先判定什么因素对是关键因素和非关键因素。并且将尽量将关键的影响因素排除在外。                         

——cookie server中的影响依次是版本、机器、时间

2012-08-15

1cat /proc/cpuinfo查看机器cpu信息

2、对于日志的结果通过对比可以找出主要的问题项,然后反向跟踪代码查找原因。而不是对已有的结果做太多探究。让数据说话,不让结果说话,因为总结出来的结果并不可靠,看不出原因不说,还有可能有所误导

3、告诉参与到你工作中的人工作的成果,让每个人都能体会到工作结果的喜悦

                         ——cookieserver性能优化后分享结果给运维配合部署的同学

4、守护进程的实现

Python创建deamon进程:whiletrue{pid=os.fork(), if(pid>0)  os.waitpidpid}

 

2012-08-20

1Vi编辑器tab使用:tabnewtabntabptabc  新建,下一个,上一个,关闭

2、每次更改.bash_profile都需要运行命令,使更改生效。

. ~/.bash_profile  source ~/.bash_profile

 

2012-08-23

1Top命令:c键显示运行命令

2Xargs命令的使用:grepcebim data/foxy_logs_bak/foxyserver.log.8092.2012-08-1* -l |xargs grep cebim|grep 503

 

2012-08-24

当遇到问题时,要学会寻求相关人的帮助。沟通,沟通很重要啊,bitch

(但也要学会思考,知道什么样的问题需要问,什么样的问题需要琢磨)

 

2012-08-27

1、压缩命令

[root@linux ~]# bzip2 [-cdz]檔名

[root@linux ~]# bzcat檔名.bz2

参数:

-c:将压缩的过程产生的数据输出到屏幕上!

-d:解压缩的参数

-z:压缩的参数

 

2012-09-04

1、 在公共的机器上,不擅自更改别人的数据、不擅自使用别人的未被确认的数据。

2、 做事要严谨不要匆忙,匆忙易错。即使再匆忙,但是流程不能丢。

3、新版本部署时要注意的问题:

1>确认新的版本与原版本之间的关系。

2>注意开发环境与生产环境之间的配置关系

3>注意新版本需要更改的配置项

4>注意测试与实际部署时配置项的不同

5>查看启动情况

6>查看日志情况

4、习惯:平时使用命令时尽量少切换目录

 

2012-09-10

1、自己要学习沟通交流的方式:邮件,GKE,谈话。

2、学习提出自己的诉求,例如:自己想知道的资料,自己想得到的提升,自己的兴趣,自己想做的工作

3、让别人知道自己的优势,也要让别人认识自己的劣势与不足,这样在工作之后的结果上别人才不会有太高的期望而自己达不到

4、踏实把不喜欢的工作做好的人,别人才会对你有信心把你喜欢的东西做的更好

5、让不好意思见鬼去吧。

 

2012-10-10

1、性能优化或bug修复时要注意的事项

1>要通篇考虑注意增加的数据会不会覆盖、改变已有的数据

2>要注意前后的变更,注意不要交叉影响。

3>注意沟通,做对的事,然后把事做对。

 

2012-10-12

出错了要找问题出现的原因,或者规避问题,而不是重复做无用功。                

 

2012-10-14

1、有绑定端口的程序突然启动不成功,有可能前面运行的进程成为僵尸,将此端口占用,端口绑定不成功所以出错。

2GDB调试中断点的管理:

Break

Info break

Disable

Enable

 

2012-10-15

1、修复问题不仅是修复问题,还要注意以前有没有相关的处理逻辑,如果有相关的处理逻辑为什么没有生效。是否其他服务也会有相似的逻辑,所以以后可能会出现相似的问题。

2、为每个工程目录添加一个README文件将每次做的更改写进该文件,这样就不用重复的去checkout新的代码

3、移植之前一定要本机运行,好习惯是养成的,坏习惯也是养成的,切记切记!!!!!

4CVS知识:

分支可以成长 tag -b

Tag只是一个标记,用来标识某一个成熟的版本

提交到分支,checkout或者update -r到指定分支就ok

提交到主干,update-Adcommit就会提交到主干

为了防止覆盖,请vimdiff拷贝进去新的修改而不是整个文件进行覆盖。

 

2012-10-15

完成的代码请及时提交

 

2012-10-23

1、需求评审:

1、服务器开发都要考虑影响范围和前后兼容

2、要事先查看场景的变化。技术实现、变更影响。

3、确定语言

2、技术实现:分析逻辑,是否有相应的参数将平台、版本区分开发,实现兼容。

3、变更影响:新的场景和旧的场景传达出来的信息的增减对用户有什么影响。

 

2012-10-24

你的上级,你的入职引导人,他们掌握着你的薪酬

建议你每隔一段时间(比如一周)就对自己近段时间内的工作做总结和计划,然后发给他们。这不是必须的,只是我建议你而已,形式可以多样,比如邮件、EIM、口头等等

——来自陈大牛

2012-10-25

1、 工作第一年是进步最快的,不要总想着工作,也要想着自己的进步

——来自指导老师

2、不问你怎么知道别人会还是不会

3、先做最难的,这样有利于团队合作,多多沟通进度,这样项目就不会延期

 

2012-10-26

1Vim %可以用来跳转

2、编码前一定要注意文件的缩进方式。一般情况下,为了保持一致,原代码用制表符还是空格缩进,后面更改的代码就沿用它。原代码用几个空格缩进,后面的代码也沿用它,以便代码规范。除非是这个文件是新增文件,就可以全新按照编码规范来。

——来自陈大牛

 

2012-10-28

1CVS使用

属于单个项目的任务就提交到分支,然后测试通过后提交到主干。

零散的任务提交到主干。

 

2012-11-06

要善于分享输出,将自己的收获记下来,分享给其他人。

 

2012-11-12

每次书写代码都要以最严谨来要求自己,书写完成就要自测,自测就要入库。严谨可以节省不必要的重复劳动。否则又要重新变更代码自测。

 

 

总结:感谢UC给了我长达半年的实习机会,感谢我的入职引导人和身边的同事,不仅教我技术、沟通、工作,更教我为人处事。

原创粉丝点击