`
liudaoru
  • 浏览: 1559778 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

社区开发经验总结【2010-06】【工具整理】

阅读更多

埋头做东西已经快两年了,是时间整理一下期间用到技术了。

 

先列个需要整理的概要:

 

  1. 系统状态监控
  2. 开发流程,以及产品、开发、测试、运营协作
  3. 上线流程
  4. 紧急需求处理
  5. 故障以及处理
  6. 旧系统改造
  7. 团队管理
  8. 招聘
  9. 新知识学习
  10. freeMaker发布管理
  11. 压力测试与性能调优
  12. 文档管理
社区要素整理:
1、帮助:虽然看的人很少,但是这个也是不可少的;
2、操作提示:比帮助更重要,但是不能太多,不然会干扰用户;
3、用户反馈接口:让用户可以直接进行反馈;
4、排行与推荐:将优质的信息和意见领袖凸显出来,从而活跃社区;
5、事件营销:每个成功的产品都借助一次或几次重大事件来让自己走入大众的视野。即使对于一般的产品事件营销也是不错的获取用户、推广自己的机会,只是之前自己要做好准备,确保有新的服务或者将原来的服务提升一个数量级;
6、个人中心与用户设置:供用户查看自己信息,以及进行设置;
7、管理后台:供管理员进行各种管理;
8、统计:系统的体温表,粗粒度了解系统的状态;
9、监控:系统的神经,了解社区的必要手段;
10、KPI:关键指标,一定要不断审视自己选择的指标是否是Key。建议限制在一两个范围
11、静态发布:可以用cms,也可以自己简单实现;
12、反垃圾:在中国做互联网必备的,基于关键词、基于特征、基于频度,可以结合者来做;
13、关键点突破:社区一般都很宽泛,最后找一个突破点做的足够强;

【最后:欢迎看到这篇文章的同学也发表一下自己的观点~】



分享到:
评论
16 楼 liudaoru 2011-04-25  
netstat -tan | awk '/^tcp/ {++state[$NF]} END {for(key in state) print
key,"\t",state[key]}'
15 楼 liudaoru 2011-04-22  
http://hi.baidu.com/optical/blog/item/4bc9e8cd3b38bc580fb34589.html


fuser命令在linux系统中用来根据文件或文件结构识别进程。
使用权限:
  超级用户
语法格式:
  fuser [ -c | -d | -f ] [ -k | -K { SignalNumber | SignalName }] [ -u ] [ -x ] [ -V ]File ...
使用说明:
  此 fuser 命令列出了本地进程的进程号,那些本地进程使用 File 参数指定的本地或远程文件。
对于阻塞特别设备,此命令列出了使用该设备上任何文件的进程。
每个进程号后面都跟随一个字母,该字母指示进程如何使用文件。
c 将此文件作为当前目录使用。
e 将此文件作为程序的可执行对象使用。
r 将此文件作为根目录使用。
s 将此文件作为共享库(或其他可装载对象)使用。
进程号被写入标准输出(在进程号之间有空格的行中)。
一个换行符被写入标准错误(在每个文件操作数的最后一个输出之后)。其他所有输出被写入标准错误。
此 fuser 命令不会检测有 mmap 区域的进程,其中相关的文件描述符已从此被关闭。
14 楼 liudaoru 2010-06-11  
经常性的做各种备份,包括保存主要的页面,各种统计信息等,这样方便以后进行整理分析。
13 楼 liudaoru 2010-06-11  
用wiki做知识整理很重要,这样很方便知识传承。
12 楼 liudaoru 2010-06-11  
Editplus中按照tab切割:

([^ ]*)\t([^ ]*)\t([^ ]*)\t([^ ]*)

整行数据:
(.*)\n$

替换:
update u set s='\1' where n='\2';
11 楼 liudaoru 2010-06-10  
工具整理

ssh连接工具:SecureCRT

mysql连接工具:Navicat Lite for MySQL, MyManager.exe

编辑上传工具:WinSCP

IE调试工具:HttpWatch,InstantSource,IETester

FF调试工具:Modify Headers,Firebug

页面原型构建:Axure RP

统计计算:Excel(很强大,嘿嘿。。。)

页面截图:SnapIt

文本编辑器:EditPlus(正则用的很爽。。。)

日常管理:google calender、Office Onenote

流程图、架构图:Visio
10 楼 liudaoru 2010-06-10  
文档管理

文档对系统来讲非常重要,而这里的文档包括了代码注释。

一般需求文档和设计文档都是必备的,但是只有这两个很不够。因为这些文档是开发之前的,开发之后的文档更重要,对于小的功能则可以合并到一个文档中,如果复杂的功能则通过svn地址进行链接。

完毕的文档应该包括一个总述文档、需求文档、设计文档、功能说明和运维文档,以及代码注释。

总述文档应该全面说明功能的背景,开发时间,开发人员,测试时间,测试人员,上线过程,部署机器,统计和监控等信息,同时还有概述性的说明需求,以及设计和试用。说白了,总述文档是概要了解一个功能的第一个文档,相当重要。当人员流动,就可以借助这个文档了解当时的方方面面。

一个项目的上线不应该以上线为终结,而应该是以总述文档整理完毕为终结标志。

需求文档和设计文档需要在上线完后进行修正,因为开发过程中很难完全不变的按照产品设计和代码设计进行,总有各种调整。所以最终要进行一次信息同步。

运维文档是说明都有哪些功能,需要什么用户角色,有什么注意事项,统计在哪,怎么监控之类的。同时还有部署在那台机器,出了问题怎么处理等。
9 楼 liudaoru 2010-06-10  
团队

比较失败,不过还是总结一下。

主要还是明确任务,充分沟通,定期检查,然后多向自己的老大请教。

另外大家对工作的态度不尽相同,不应求全责备,人尽启用就好。实在不行就尽早向领导申请调换。

对更入手的同学要多多关注和关心,多检查。这样任务做好了,慢慢就有信心了,不能一上来就很复杂的任务。
8 楼 liudaoru 2010-06-10  
招聘

很有难度的活,不过做多了应该就有规律了。在此经验不多,因为没有真正招到过人,虽然面了很多。

面试的流程一般是:
1、笔试,算法、语言之类
2、自我介绍,大致介绍自己的经历,特长啥的
3、根据简历询问一下做个的东西,同时说说自己对这个东西的看法,以及中间出现过什么问题,怎么解决的之类
4、怎么获取新知识,看看学习能力
5、询问做的不太好的笔试题目,并进行提示,看看面对疑难问题时的态度;
6、找几个业务相关的题目询问一下,看看知识面和专业相关能力;
7、询问对公司有什么想了解的,套路
7 楼 liudaoru 2010-06-10  
新知识学习

负载不能持续太多,否则很难学习新知识。每隔一段时间(一两个月)都应该梳理一下,即使很忙。有段时间吃了很大的亏,就是因为太忙了,然后觉得应该所有的时间都来做事情,结果事情越忙越乱。而如果这时停下来,然后整理一下,再把不合理的任务拒绝掉,把不重要的任务推延掉,这样就容易理顺了。

功能不在多,而在精,非常速做好东西不应该是常态。而且这种东西的质量也很难保证的。
6 楼 liudaoru 2010-06-10  
旧系统改造

很头疼的一件事,特别是文档和注释都很少,则更致命。

现在一般处理的方式是边看代码变增加注释,然后慢慢整理文档。同时可以借助一些功能修改来了解实现方式,再找个时间完整的看一遍代码。
5 楼 liudaoru 2010-06-10  
故障以及处理

出现故障后最关键的是尽快恢复服务,然后尽可能保留现场,并做后续追查。

每个一两个月应该把所有的故障拿出来分析,看看哪些可以改进的。
4 楼 liudaoru 2010-06-10  
紧急需求处理

所有紧急的事情都应该进行整理组织,并根据紧要程度确定排期,同时将排期周知相关人员。

同时紧急事情一定要口头或其他方式周知领导,或者直接需要领导批准。
3 楼 liudaoru 2010-06-10  
开发流程,以及产品、开发、测试、运营协作


代码开发步骤
1、从trunk上创建一个新branch, 名称规范为[appName]_[yyyyMMdd]_[user]_[funcName], e.g. app_20100519_bwl_world
2、开发在branch上进行,开发的branch也有自己的发布目录wendaServer-release;
3、测试完毕后将branch上的代码merge到trunk上,并重新编译;
4、Trunk上代码确认完毕后将对应的发布目录进行打tag操作,tag规范为[productName].[appName].[yyyyMMdd],  e.g. w.app.20100603


开发流程:
1、产品提出需求草案;
2、产品、技术需求文档进行讨论,确认开发的范围;
3、产品给出最终的需求文档;
4、技术进行概要设计,然后根据需求的重要程度确定不同的审核级别;
5、审核完毕技术进行开发,并确定提测时间点;
6、技术提测,测试书写测试用例,并开始测试;
7、如果性能相关,则需要技术和测试一起进行压力测试;
8、测试完毕无问题,待产品最终确认效果后上线;
9、上线完毕后,确认上线效果;


疑惑的问题:
是否严格按照开发周期进行?
如果过于严格则导致功能分散,并出现赶进度的情况。如果不严格要求,则无法衡量技术的工作量。
2 楼 liudaoru 2010-06-10  
系统状态监控

1、top:cpu、内存、load等;
2、iostat -xk 3:磁盘,对数据库来说特别重要,如果比较高可以参照mysqladmin extended-status查看各个状态,找到对应的cache进行调整;
3、df -h:查看磁盘是否满,好几次压力测试都在这个上面浪费了好多时间;
4、ps axu:线程数,如果线程数过多则一定有问题;


# 删除60天前的数据文件
find ${base_dir} -ctime +60 -exec rm -f {} \;

mkdir -p ${cur_dir}
cd ${cur_dir}

# 保存top信息
cur_file=stastics_`date +"%F-%H-%M-%S"`.txt

# 机器ip信息
ifconfig >> ${cur_file}

# cpu、内存统计
echo '' >> ${cur_file}
echo 'cpu、内存、load等top统计:top -n 1 -b -c' >> ${cur_file}
echo '--------------------------------------------------------------------------' >> ${cur_file}
top -n 1 -b -c >> ${cur_file}

# 磁盘空间统计
echo '' >> ${cur_file}
echo '磁盘空间统计:df -h' >> ${cur_file}
echo '--------------------------------------------------------------------------' >> ${cur_file}
df -h >> ${cur_file}

# io统计
echo '' >> ${cur_file}
echo '磁盘io统计:iostat -xk' >> ${cur_file}
echo '--------------------------------------------------------------------------' >> ${cur_file}
iostat -xk >> ${cur_file}

# 进程统计
echo '' >> ${cur_file}
echo '进程统计:ps aux' >> ${cur_file}
echo '--------------------------------------------------------------------------' >> ${cur_file}
ps aux >> ${cur_file}
1 楼 liudaoru 2010-06-10  
一个社区的必备要素:

1、帮助:虽然看的人很少,但是这个也是不可少的;
2、操作提示:比帮助更重要,但是不能太多,不然会干扰用户;
3、用户反馈接口:让用户可以直接进行反馈;
4、排行与推荐:将优质的信息和意见领袖凸显出来,从而活跃社区;
5、事件营销:每个成功的产品都借助一次或几次重大事件来让自己走入大众的视野。即使对于一般的产品事件营销也是不错的获取用户、推广自己的机会,只是之前自己要做好准备,确保有新的服务或者将原来的服务提升一个数量级;
6、个人中心与用户设置:供用户查看自己信息,以及进行设置;
7、管理后台:供管理员进行各种管理;
8、统计:系统的体温表,粗粒度了解系统的状态;
9、监控:系统的神经,了解社区的必要手段;
10、KPI:关键指标,一定要不断审视自己选择的指标是否是Key。建议限制在一两个范围
11、静态发布:可以用cms,也可以自己简单实现;
12、反垃圾:在中国做互联网必备的,基于关键词、基于特征、基于频度,可以结合者来做;
13、关键点突破:社区一般都很宽泛,最后找一个突破点做的足够强;

相关推荐

    android开发资料大全

    实用Android开发工具和资源精选 APK权限大全 - Android必懂知识 最无私的Android资料(书籍+代码)分享[总结] Android中文帮助教程(非常合适新手入门) android程序编写及调试新手入门 大家一起学Android(Windows...

    Java 开发手册-华山版(阿里).pdf

    《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模 一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地 整理成册。现代软件行业的高速...

    《Java开发手册》v1.5.0 华山版.pdf

    《Java开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册。现代软件行业的高速发展对...

    基于javaweb的小型超市信息管理(进销存)系统。开发工具为MyEclipse.zip

    文档与笔记:整理了开发过程中的关键决策、技术难题以及学习心得,有助于深入理解项目背后的思考过程。 二、适用人群 这个项目资源包适用于即将毕业或已经毕业,希望通过实际项目经验增强自己JavaWeb开发能力的同学...

    angular-fis-showcase:angular + fis 展示

    本文假设读者是有前端开发经验的工程师,并对angular有一定的实践经验,且阅读过。目录:需求调研&&整理 - 我们需要怎么样的一款工具?开发规范和部署规范模块化框架辅助命令总结Day1: 2014年11月11日 - 手仍在首先...

    深入理解Android:卷I--详细书签版

     邓凡平,资深Android开发工程师,热衷于Android源代码的研究,对Android的架构设计和实现原理有非常深刻的认识和理解,应用开发经验也十分丰富。目前就职于国内一家领先的 Android企业,负责Framework的开发和...

    基于Java的疫情信息登记数据库系统的设计与实现【附源码】

    通过对国内疫情信息系统设计和开发了解以及查阅研究相关的文献和期刊,对系统研究所涉及到的相关内容和技术进行深入了解,在汲取前人的经验和优势的基础上,总结已有系统的功能特点以及技术手法并设计出符合实际需要...

    招银网络java科技笔试题-code-resources::laptop:免费编程资源!

    后台技术栈/架构师之路/全栈开发社区,春招/秋招/校招/面试 阿里、腾讯、百度、头条、美团等技术面试题目及答案 软件工程技术面试个人指南 编程之法:面试和算法心得 技术面试最后反问面试官的话 笔试面试知识整理 ...

    Reversing:逆向工程揭密

    5.4.8 思路整理 194 5.5 结论 196 第6章 破译文件格式 199 6.1 Cryptex 200 6.2 使用Cryptex 201 6.3 逆向Cryptex 202 6.4 口令校验过程 207 6.4.1 捕获“Bad Password”消息 207 6.4.2 口令变换算法 210 6.4.3 对...

Global site tag (gtag.js) - Google Analytics