`
liudaoru
  • 浏览: 1578747 次
  • 性别: 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、关键点突破:社区一般都很宽泛,最后找一个突破点做的足够强;

相关推荐

    web开发经验方法总结(拿过来就能用)

    1. **项目经验总结**:在Web开发过程中,每个项目都有其独特的挑战和解决方案。通过总结项目经验,可以提炼出通用的开发模式和最佳实践,例如需求分析、架构设计、代码编写和测试策略。 2. **文档整理**:文件名中...

    C和C++编程心得—前人的经验总结

    ### C和C++编程心得—前人的经验总结 #### 一、开始之前 **FAQ那是什么** FAQ(Frequently Asked Questions)是指常见问题解答。它通常由社区中的专家或者有经验的人整理出来,目的是为了方便解答新手们经常会问...

    2021-2025年中国五金工具行业农村市场开发与拓展战略研究报告.pdf

    ### 2021-2025年中国五金工具行业农村市场开发与拓展战略研究报告 #### 第一章 企业农村市场开发与拓展战略概述 在本章节中,报告概述了企业在农村市场进行开发与拓展的战略重要性和研究的意义,并对整个研究的...

    CSDN VC编程经验总结.rar

    《CSDN VC编程经验总结》是一份深入探讨VC++编程技术的宝贵资源,由CSDN社区的专家和开发者们共同整理而成。这个压缩包包含了一本名为"CSDN VC编程经验总结.chm"的电子书,它系统地总结了在Visual C++ (VC++)环境中...

    vsnet开发模板大合集官方整理下载

    【描述】中提到的“经典的源代码”意味着这些模板包含了经过验证和实践的代码结构和设计模式,它们是微软在长期开发经验基础上的总结,对于学习和应用.NET框架的开发者来说具有很高的参考价值。微软的官方整理确保了...

    WinCE6.0当时学习时整理的工具及相关资料

    在整理的工具及相关资料中,主要包括了WinCE6.0的学习文档、开发工具、示例代码以及相关的技术文章等内容,这些都是学习WinCE6.0必不可少的资源。 ### 工具软件 #### Platform Builder for Windows Embedded CE 6.0...

    Katalon Recorder-脚本录制工具.zip

    总结起来,Katalon Recorder是一款功能强大的自动化测试工具,它结合了Selenium的灵活性和Chrome的广泛使用,为Web应用测试提供了一站式的解决方案。通过录制脚本、编辑脚本以及丰富的社区资源,无论是新手还是经验...

    MOD工具---OSSHPBuilder_3.36.zip

    6. **社区支持**:作为一款MOD工具,OSSHPBuilder 3.36也往往有相应的社区支持,用户可以在社区中分享经验、寻找帮助,甚至获取到更多的MOD制作教程和资源。 然而,需要注意的是,使用MOD工具制作MOD时,必须遵守...

    ArcGIS Engine基础开发教程(bbs整理)

    总结而言,ArcGIS Engine作为GIS开发的重要工具,为开发者提供了强大的组件和API来构建复杂的GIS应用。通过理解并掌握其开发流程和方法论,开发者可以设计出既实用又高效的地理信息系统解决方案。同时,学习ArcGIS ...

    火山软件开发平台1基础篇34页

    4. **社区支持**:虽然目前关于火山软件开发平台的中文教程较少,但其拥有活跃的开发者社区和论坛支持,用户可以在这里获取帮助、分享经验,并参与到平台的发展中来。 #### 三、火山软件开发平台的应用场景 1. **...

    蓝色小清新工作计划总结PPT .pdf打包整理.zip

    标签 "#资源达人分享计划#" 暗示这是某项资源共享活动的一部分,可能是由一个社区或者个人发起,目的是分享有用的工具、模板或资料,帮助他人提高工作效率,特别是对于制定工作计划和进行工作总结的场景。...

    android开发资料大全

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

    Python-Indium一个Emacs的JavaScript开发环境

    安装完成后,根据官方文档或社区提供的配置示例进行个性化设置,以满足个人的开发习惯。 **使用Indium进行JavaScript开发** 在设置好Indium后,打开JavaScript文件即可开始工作。利用Emacs的快捷键或命令模式,...

    嵌入式Linux应用程序开发详解(完整版)

    ### 嵌入式Linux应用程序开发详解知识点梳理 #### 第1章:Linux快速入门 ...这些知识点覆盖了从Linux基础知识到嵌入式系统开发的各个方面,对于无论是初学者还是有经验的开发者来说都是非常有价值的资源。

    HBuilder工具下载下载

    总结,HBuilderX作为一款专业的前端开发工具,以其高效、智能和全面的功能赢得了广大开发者喜爱。无论是初学者还是经验丰富的开发者,都能从中受益,提升开发效率,实现更高质量的前端项目开发。

    小程序开发从入门到精通教程课[视频课程].txt打包整理.zip

    【资源达人分享计划】标签表明这是一个由社区或个人共享的学习资源,可能包含了社区成员的经验总结和实战案例,使得学习内容更加丰富和实用。这类资源通常具有较高的互动性和实时性,学习者可以从中获取最新的开发...

Global site tag (gtag.js) - Google Analytics