javaWeb服务器端开发事项

本文是一个搜狐视频的大神wz给的文档,供参考

转载请注明出处 http://blog.csdn.net/tjpu_lin/article/details/38167753

==========================================

技术选型:

1、通信框架:
dubbo文档地址:https://github.com/alibaba/dubbo
2、管理:
   项目管理使用maven、代码管理使用git或者svn
3、前端服务使用nginx
4、应用服务器使用tomcat或者resin或者jetty
5、缓存使用memcached或者redis(前者数据单一,后者数据结构丰富,支持主从)
6、数据库使用mysql或者mongodb
7、服务端框架使用json + spring mvc + spring + mybatis
   web负责做日志统计、鉴权、安全处理
   service负责业务逻辑处理(注意好和钱相关的数据)
   客户端,网页上面使用jquery,手机使用android或者swift
8、数据方面,前期可以通过web端的日志来做数据统计,使用shell分析将结果入库,后期可以考虑hadoop


细节注意:
1、打开各种连接时候,一定要有try{}catch{}finally{},finally里面包含关闭链接操作,防止内存泄露
        2、非测试代码禁止出现System.out.println、e.printStackTrace,禁止出现System.gc
        3、经常修改的节点开关要放到数据库当中,一般配置放到配置文件中,固定全局常量加上final,局部变量非语法要求情况下不需要加final
        4、如果集合做为全局进程缓存,那么需要控制其长度和加上失效时间,适当引入进程缓存,比如ehcache
        5、实现底层服务接口时候,不要已知上层服务的存在,实现接口时候必须加上对参数的验证
        6、代码中的setter、getter方法写在最下面,private方法写在前者的上面,public的下面
        7、代码尽量精炼,如果业务复杂,代码实现上要写上实现步骤的注释,能提炼出的公共方法尽量抽取出来
        8、尽量减少服务直接通信次数,包括http、rmi、cache操作等
        9、测试服把jvm 参数-xms -xmx开小些
       10、远程传输的对象必须经过序列化




其它方面注意:
技术方面:
  1、做好各个服务器的主从分配,重启或者服务器宕机时候也可以保证服务7 * 24 小时服务
  2、服务必须可以横向扩展,如果访问量增加可以随时增加服务
  3、删除文件时候一定要注意
      4、建一个公共的wiki,养成写文档,分享知识的习惯
      5、如果时间允许,要养成互相review代码的习惯
   非技术方面:
      1、产品或者其它人提出需求,一定要先理解清楚并和对方沟通是否有意义去做,保证每个需求都有意义,如果需求实现会影响到性能问题,和产品协调
      2、主动去想一些必要的需求和问题,告诉自己,我负责这个东西,我要对它负责任,不断优化,完善系统和程序
      3、团队开发一个产品的时候,不要想我只负责某一块把这个东西负责好就行,凡事要从团队角度考虑,要把自己功能完成基础上帮助团队其他人解决困扰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值