`
wangdei
  • 浏览: 372852 次
社区版块
存档分类
最新评论

主题:两年服务器开发的一句话经验集

阅读更多
    <script type="text/javascript"></script> * 任何情况下不能吞异常,一般使用logger,哪怕只能用e.print... 也是有补救措施的,而吞掉便无从知晓。
    * 配置多资源时,各种公用的内容没有提取,导致修改时非常麻烦,推荐使用include方式
    * 子资源要能使用父资源的指标值,也就是父子要有继承关系
    * 国际化时不应该再另起一个模型,这样会使同一修改改动很多文件
    * 任何会导致特殊字符危险的方案不能用,比如
      - 在解析命令时会解析参数 /o ,后来有一个目录叫"/opt/home" ,导致解析不成功,非常隐蔽而且危险
    * 打日志时要尽量的全,哪怕是trace,调试时很方便。不需要的可以不配置,需要时不必再次修改代码。
    * cc 的文件名长度有限制,非常不便
    * 做配置时,某个对象的属性集中一处配置,哪怕是include,不可分散至引用处重复配置,比如现在原型的资源类型的 disporder
    * log4j 要做动态加载
    * 打日志要规范,利用解析,使用多logger输出
    * 队列要集中管理,分配
    * 线程要集中管理,分配。无论是线程池还是独立线程的创建。
    * 模块化工作的敌人是建一个模块的工程时很麻烦,所以要从架构设计时解决这个问题,因为这个而导致今后结构不清晰,很不值得
    * 大数据量的删除操作很慢,约几个小时的时间。所以需要在批量插入的时候判断是否需要删除部分数据
    * 用URL返回本地文件路径时,注意URLDecode.decode(path,"UTF-8"); 来转换特殊编码
    * 真实环境的压力测试(尤其是异常测试)很重要,未经此测试不要出售,会带来很大的维护压力
    * socket 连接重试一定要有间歇,不然会把服务器搞宕
    * 用到线程时,线程要继承一处,并作统一创建和管理,以便于在内部设置路标。并且在线程内要及时写入路标。设置路标时,参数以map形式添加,读取时再格式化成字符串。
    * 对于多线程程序,线程池分配时,分配策略要可配置以调节性能
    * 2008-6-13 06:34下午 今天开发时,A改过的东西 我们B不知道,他在本地修改因为版本已经冻结,导致严重问题复现。今后采用为某个现场环境建立一个hotfix版,在这个版本上记录更改历史
    * 给现场安装不知该分配多大内存时,要有一个自动修正功能,设置内存在一个范围内递增。捕获oom 异常,让监控线程关闭系统并修改内存配置重启。但是前提是要保证数据的完整性受损是可接受,或者有解决方案的。
    * 当一个小组成员分头支持现场问题时,每个人解决问题后要全体知悉,便于积累经验和对外表达一致
    * Joel曾经说过:不要先去完成界面,因为在很多用户看来,完成了界面,就等于功能也快完成了。而要让功能和界面的开发保持同步最好。
    * 开发软件不能只顾自己开发时方便,还要考虑到运行维护时是否方便
    * 模块依赖api时,此模块要把自己需要的api整理为一套adapter去适配,便于整理出对api方法的依赖,另外在api强行变动时,其他应用也有应急办法
    * 留下足够的程序内部信息的监控入口,生产环境是不让动的,xstream
    * OOM, StackOverflow, JMX高负载后停止服务
    * 系统中用到的环境变量名要集中使用常量管理
    * io 远程调用传输过程中,尽量合并携带参数 ,减小传输量。不要使用zip。
    * 线程要提供一个暂停的方法,以便调试
    * 使用需要持久华的缓存,注意与持久化及时同步问题
    * 作小于判断时,注意-0 是等于0 的,应该用<=来判断。
    * windows 2003系统中当开着服务控制台启动DaemonServer后不关闭mmc控制台,向控制台输内容会导致阻塞。要自定义文件流,使他们保存至文件。
    * 持续进数据的队列 要对处理慢的情况有考虑,否则会oom
    * 同步数据需要在一个事务内完成写入,否则会导致界面的坏体验
    * 使用具体类来代替type类型区分,可以帮助在有性能问题时快速定位,只是有可能增加些代码量,值得。
分享到:
评论

相关推荐

    c++实现socket:一个服务器对应多个客户端相互传递信息

    标题 "c++实现socket:一个服务器对应多个客户端相互传递信息" 指的是利用C++的socket API创建一个服务器程序,该服务器可以同时处理来自多个客户端的连接请求,并允许这些客户端之间交换数据。这种设计模式通常称为...

    C/C++ 开发HTTP服务器

    NetEngine_SimpleHttp是一个专为C/C++开发者设计的HTTP服务器开发包,它的出现简化了HTTP服务器的开发流程。该开发包可能包含了以下特性: 1. **跨平台兼容性**:支持Windows和Linux操作系统,这意味着代码可以在两...

    纯java开发邮件服务器(SMTP和POP3协议)

    Java邮件服务器开发是一个复杂但有趣的任务,涉及到网络通信和邮件协议的理解。在这个项目中,我们将主要探讨SMTP(简单邮件传输协议)和POP3(邮局协议第三版)这两种核心协议,以及如何在Java环境中实现它们以支持...

    《深入实践Boost:Boost程序库开发的94个秘笈》(原书英文版)及书中源代码

    《深入实践Boost:Boost程序库开发的94个秘笈》一书的英文名为“Boost C++ Application Development Cookbook”,该书从应用角度讲解了实际开发中94个问题如何应用boost来解决,每个都讲了方法、原理及引申的内容...

    MFC程序开发之聊天室(客户端+服务器)源码

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库进行程序开发,特别是构建一个简单的聊天室应用,包括客户端和服务器两部分。MFC是微软为Windows应用程序开发提供的一套C++类库,它封装了许多...

    QT5.0实现FTP服务器

    QT5.0是一个功能强大的跨平台应用程序开发框架,由Trolltech公司开发,现在由The Qt Company维护。它广泛用于创建桌面、移动和嵌入式设备的应用程序。FTP(File Transfer Protocol)是一种标准网络协议,用于在...

    unity3d网络五子棋的服务器端

    Unity3D是一个流行的跨平台游戏开发引擎,而在此项目中,它被用于服务器端开发,这在游戏开发领域中并不常见,因为Unity通常用于客户端或游戏逻辑的实现。然而,这展示了Unity3D的强大灵活性,它不仅可以用于构建...

    从毕业生到程序员:使用C#开发商业软件,加书签完整扫描版

    【我增加了书签,现在才是真正的完整版了。不到一分钟就完成书签制作了。】本书的初衷就是帮助企业...本书确实想帮助毕业生顺利地度过两年的程序员职场新手阶段,让更多的职场新星确定正确的方向,少走弯路,早日腾飞。

    MFC写的一个TCP服务器

    【MFC写的一个TCP服务器】 MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于简化Windows应用程序开发。在这个场景中,"MFC写的一个TCP服务器"指的是使用MFC框架构建的网络服务器,它能处理TCP/IP...

    企业服务器故障应急预案

    一、服务器故障分类 服务器故障可以分为硬件故障和软件故障两类。硬件故障包括服务器硬件的故障,如电源故障、硬盘故障、内存故障等。软件故障包括操作系统故障、应用程序故障等。 二、预防机制 服务器故障预防...

    详解Android客户端与服务器交互方式

    最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json。要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台、传输数据格式...

    YH电影服务器软件(网吧电影)

    YH电影系统,系统已经稳定运行两年 系统要求IIS环境,MYSQL环境。windows server 2003,当然,硬盘要够大。 无人值守:定时自动更新电影,自动入库,也可以手动加入自己下载的电影。 无缓冲:观看电影,可以随意...

    svn服务器(64位)

    在“svn服务器(64位)”的上下文中,我们讨论的是一个专为64位操作系统设计的SVN服务器客户端,它允许开发团队协同工作,有效地追踪和管理项目的版本。 版本控制系统的核心功能是记录文件和目录的更改,使得团队...

    MFC websocket server | MFC websocket服务器

    WebSocket是一种在客户端和服务器之间建立持久连接的网络协议,它允许双方进行全双工通信,即数据可以在两个方向上同时传输。MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于构建Windows应用程序...

    Android连接服务器端

    本文基于《Android手机访问服务器的一种数据交互方法》这一研究,深入探讨了Android终端与Web服务器之间数据交互的有效策略和技术实现细节。 #### 核心知识点解析 ##### 1. Android API分析 - **API简介**:...

    简单易懂C++ WebServer接口开发源代码+详细注释

    在IT领域,C++是一种强大的编程语言,常用于构建高性能的应用程序,包括Web服务器。本资源包提供的"简单易懂C++ WebServer接口开发源代码+详细注释"旨在帮助开发者学习如何在C++中实现Web服务器接口。下面将详细阐述...

    C++ 实现WebSocket 服务器

    WebSocket是一种在客户端和服务器之间建立持久连接的协议,它允许双方进行全双工通信,即数据可以在两个方向上同时传输,极大地提高了实时性。在本项目中,我们使用C++来实现一个WebSocket服务器,借助了libuv库来...

    webServer开发案例

    案例涵盖了在MyEclipse和Eclipse下进行Web服务器开发的方法,同时深入讲解了两种流行的Java Web服务框架——CXF和XFire。 【描述】: 1. **Web服务器开发基础**: Web服务器是运行并托管Web应用程序的软件,它...

    Windows端Frp服务器一键搭建

    Frp基于代理模式,主要分为两部分:客户端(frpc)和服务器端(frps)。客户端部署在内网环境,而服务器端则部署在具有公网IP或已做端口映射的服务器上。当客户端连接到服务器端后,内网服务可以通过服务器作为跳板...

    VC编写实现ftp服务器源码

    在本项目中,“VC编写实现ftp服务器源码”意味着我们将探讨如何使用VC++来开发一个FTP服务器。 FTP服务器的实现通常涉及以下几个核心组件: 1. **连接管理**:服务器需要监听特定端口(通常是21)以接受来自客户端...

Global site tag (gtag.js) - Google Analytics