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

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

阅读更多
    <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类型区分,可以帮助在有性能问题时快速定位,只是有可能增加些代码量,值得。
分享到:
评论

相关推荐

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

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

    SVN版本库的迁移(从一台服务器迁移到另一台服务器)

    迁移过程确保了代码版本控制系统的连续性,不影响团队的开发工作。以下是两种常见的SVN版本库迁移方法: ### 第一种方法:相同操作环境下的迁移 **前提条件**: 1. 旧版本库和新版本库的操作系统相同。 2. SVN的...

    QT5.0实现FTP服务器

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

    Aspx迷你服务器asp.net

    ASPX迷你服务器是一款轻量级的开发工具,主要用于在本地环境中快速运行和测试ASP.NET应用程序。这个工具的主要特点是小巧便携,无需安装完整的IIS(Internet Information Services)或其他大型服务器环境,即可执行...

    MFC实现FTP上传下载文件的客户端和服务器

    MFC是微软提供的一种C++类库,它封装了Windows API,为开发Windows应用程序提供了便利。 FTP客户端部分通常涉及到以下关键知识点: 1. **FTP连接**:首先,客户端需要建立到FTP服务器的连接。这涉及解析服务器地址...

    北大青鸟ACCP 6.0 软件开发初级程序员:使用C#语言开发数据库应用系统.pdf

    高强训练编程能力是ACCP 6.0课程的另一大亮点,旨在通过大量的代码编写实践,让学员在一年半的时间内完成52000行代码编写,这相当于一名程序员两年的代码编写量。 项目驱动案例贯穿也是ACCP 6.0课程的特色之一,...

    FTP服务器MFC源码

    FTP(File Transfer Protocol)服务器是一种网络服务,用于在互联网上进行文件传输。MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于构建Windows应用程序。本项目是一个使用MFC实现的FTP服务器源码...

    MFC websocket server | MFC websocket服务器

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

    VB FTP服务器程序源码

    VB,全称Visual Basic,是Microsoft开发的一种面向对象的编程语言,它以其简单易学、功能丰富的特性受到许多程序员的喜爱。本资源提供了用VB编写的FTP服务器程序的源代码,这对于想要学习如何构建FTP服务器或者需要...

    基于C#的TCP/IP协议客户端和服务器的代码实现

    在IT行业中,网络通信是至关重要的一个领域,而TCP/IP协议作为互联网通信的基础,被广泛应用于各种应用程序的开发。本文将深入探讨如何使用C#语言实现TCP/IP协议的客户端和服务器,通过理解并实践相关代码,可以提升...

    aspx服务器

    在这种情况下,有一些轻量级的替代方案,比如使用内置的ASP.NET开发服务器(ASP.NET Web Development Server,也被称为 Cassini 服务器)。这些服务器可以在本地计算机上运行,无需安装IIS,即可快速地进行ASP.NET...

    C# WebService 客户端 服务器 Json

    在IT领域,C#是一种广泛使用的编程语言,尤其在构建Windows应用程序、Web应用程序以及游戏开发等方面。本主题聚焦于C#中的WebService客户端和服务器的交互,以及如何利用Json进行数据交换。Json(JavaScript Object ...

    LINUX上用C语言实现FTP客户端与服务器

    在Linux操作系统中,使用C语言实现FTP客户端与服务器是一项具有挑战性的任务,涉及到网络编程、进程通信以及协议解析等多个方面的知识。FTP(File Transfer Protocol)是一种标准的网络协议,用于在计算机之间交换...

    opcua服务器模拟器+opcua客户端工具.rar

    此压缩包文件“opcua服务器模拟器+opcua客户端工具.rar”包含了用于测试和开发 OPC UA 应用程序的两个关键组件:一个 OPC UA 服务器模拟器和一个 OPC UA 客户端工具。 **OPC UA 服务器模拟器** 服务器模拟器是用于...

    FLASH局域网免服务器P2P聊天室源码(as3+flash开发)

    【标题】"FLASH局域网免服务器P2P聊天室源码(as3+flash开发)" 涉及的核心技术主要包括ActionScript 3 (AS3)、P2P(点对点)通信以及局域网应用的开发。AS3是Adobe Flash Player支持的编程语言,用于创建交互式的...

    精通Windows Sockets网络开发:基于Visual C++实现-带源码

    精通Windows Sockets网络开发——基于Visual C++实现 目 录 第1篇网络开发基础篇 第1章准备开发环境 1.1windows sockets开发概述 1.1.1网络程序开发应用 1.1.2网络程序结构——c/s、b/s 1.1.3网络程序通信基础——...

    c++ websocket服务器和html客户端

    - **PushFramework**: 这可能是一个框架或者库,用于帮助服务器进行数据推送,使得服务器能够主动向客户端发送数据,而不仅仅是响应客户端的请求。 - **WebClient**: 这可能是HTML客户端的源代码,可能包含HTML...

    进程的管道通信编制一段程序,实现进程的管道通信,使用系统调用pipe()建立一个管道文件;两个子进程P1和P2

    分别向管道各写一句话: Child1 is sending a message! Child2 is sending a message! 而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。要求父进程先接收子进程P1发来的 消息,然后再接收子进程P2发...

Global site tag (gtag.js) - Google Analytics