常见的 java错误

生产过程中出现的问题正逐渐得到中层和最高管理层的重视。不管是身为开发人员还是架构师,下列的事项都应该得到你足够的重视以避免陷入未来的尴尬境地。你也可以把它作为排查问题的便签

测试中使用的数据集规模不合适。比如,生产过程中一个典型的场景就是只使用 1 到 3 个账户进行测试,而这个数量本应是 1000 到 2000 个的。在做性能测试时,使用的数据必须是真实并且未经裁剪的。不贴近真实环境的性能测试,可能会带来不可预料的性能、拓展和多线程问题。只有使用更大规模的数据集对应用程序进行测试,才能保证它正常运行并满足非功能属性的 SLAs(服务水平标准)。

没有遵循最低限度的安全要求。正如上文提到,网络服务随处可见,从而使得黑客可以轻易地利用它进行拒绝服务攻击。所以,在使用安全套接层时,必须完成基本的验证并使用 Google skipfish 等工具进行渗透测试。不安全的应用程序不仅会威胁其自身稳定性,还可能会因为数据完整性问题对公司的声誉造成负面影响,例如出现了客户 “A”可以浏览客户“B”数据的情况。

没有进行跨浏览器的兼容性测试。如今的网络应用程序多是丰富的单页应用程序,它们使用 JavaScript 编程语言以及 angular js 这样的框架。为了使你建设的网站能够流畅地运行于不同的设备和浏览器之间,必须实现与之对应的设计。所以为了确保你的应用程序可以适用于所有设备和浏览器,必须对其进行兼容性测试。

天真地认为应用程序中所调用的外部和内部服务是可靠的,并且是始终可用的。不允许出现服务调用超时和重试,将会对应用程序的稳定性和性能造成不利地影响。需要进行适当的服务中断测试。这一点十分重要,因为如今的应用程序多是分布式并且面向服务的,都需要大量的网络服务。无限地请求不可用的服务会损害应用程序。也需要对负载均衡器进行测试,以确保它能正常工作,使每个节点达到平衡。

不在属性文件或 XML 文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在 DEV 环境中,还是 UAT(用户验收测试)环境中,都可以顺畅无阻地运行,但是一旦部署在 PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出 IOException,原因可能是 JDBC 驱动版本不同,也可能是#2 中讨论的问题。如果线程数目可以在属性文件中配置,那么使它成为一个单线程应用程序就变得十分容易了。我们不再需要为了解决问题而反复地部署和测试应用了。这种方法也同样适用于配置 URL、服务器和端口号等。

没有适当的灾害恢复计划以及系统监视和归档策略。在项目截止日期来临之际,常常因为急于部署项目而遗漏了这些事项。没有通过 Nagios 和 Splunk 建立合适的系统监视机制不仅会威胁到应用程序的稳定性,还会妨碍目前的诊断和将来的改进工作。

没有制定适当的回撤计划。导致在系统发生故障时,没有办法将系统恢复到部署前的稳定状态。这个计划需要反复推敲并有相关团队签字保证。计划包括了,退回到软件先前的版本,去除插入到数据库中的所有数据以及属性文件的所有条目。

在项目开始前没有制定能力计划。现如今,在说明对平台的要求时,仅仅说“需要一台 Unix 计算机,一个 Oracle 数据库服务器,一个 JBoss 应用程序服务器”是远远不够的。你的要求必须精确到

  • 操作系统的特定版本,JVM 等。
  • 有多少内存(包括物理内存,JVM 堆内存,JVM 栈内存和 JVM 永久代的空间)。
  • CPU(内核数)。
  • 负载均衡器,需要的节点数、节点类型,比如是 active/active 型还是 active/passive 型,以及聚类要求。
  • 文件系统要求,例如,你的应用程序可能会收集生成的报告并将其保存一年,之后才进行归档。这样的话,你就需要有足够的硬盘空间。有些应用程序要求产生数据提取文件,并将它们暂时储存以供其他系统进程或数据仓库系统用来做多维分析报告。还有些数据文件是基于安全文件传输协议的,它们或来自内部系统,或来自外部系统,并且在归档前需要被保存 12 到 36 个月。

“不在工作时使用最好的工具”。很多情况下,开发者会在生产系统中使用一门想要学习的语言或某种工具。通常这不是最好的选择。比如,为已经实际上是关系型的数据使用 NoSQL 数据库。请记住,无论你采用哪种工具,都需要在未来 3 到 5 年(甚至更长的时期)内维护你的产品。

没有为数据库表设计方便整理的列,比如 created_datetm、update_datetm、created_by、updated_by 和时间戳,也没有提供有条理的删除记录列,如可以取‘Y’或‘N’的‘deleted’列或是可以取‘Active’或‘Inactive’的 ‘record_status’列。

没有提供下列文档

  • 编写单元测试文档并使其拥有良好的代码覆盖率。
  • 集成测试。
  • 一个综合的或者百科全书式的页面列出了所有的软件构件,比如类、脚本、配置文件等,而这些构件要么是被修改了的,要么是新创建的。
  • 高层次的概念图描述了所有的组件,交互和结构。
  • 而基础文档则告诉开发者“如何结合数据源的详细信息来搭建开发环境”。

除了 COS(满足的条件)这种由 MindMap 创建的形式之外,敏捷开发中还有 1 和 2 这两种主要的文档形式。

在 16 个关键技术领域缺少充足的知识储备。这些领域包括识别并修复1)“并发问题”、2)事务问题、3)性能问题。很多次面试中,我靠着这 3 个方面的知识拿到了新的合同。

常见的 java错误收集一下 供大家参考

原文地址:  java,java错误  TECHFOX IT 技术论

时间: 2024-11-17 19:51:10

常见的 java错误的相关文章

Java千百问_04异常处理(007)_常见的java异常有哪些(非运行时)

点击进入_更多_Java千百问 1.常见的java运行时异常有哪些 了解非运行时异常看这里:什么是java中的异常 常见的运行时异常看这里:常见的运行时异常有哪些 我们所说的常见异常是jdk或者其他常用第三方jar中的异常,出现频次很高的异常.常见的非运行时异常(即检查异常,checked exception)包括: 操作数据库异常:SQLException 输入输出异常:IOException 文件未找到异常:FileNotFoundException 反射操作异常:ReflectiveOpe

ssh整合常见的后台错误

ssh整合以及常见的后台错误 摘自网络 jsp和Servlet之间传值出现乱码的解决方案 采用设置字符集的方式 request.setCharacterEncoding("utf-8"); 在web.xml文件里定义编码,同时在CoreFilter类里定义编码为utf-8 <filter> <filter-name>encodingFilter</filter-name> <filter-class>fengke.filter.CoreF

【转载】20道常见初级Java面试题

这篇文章的内容很不错.学到了很多东西.值得仔细琢磨. http://mt.sohu.com/20160831/n466900239.shtml 20道常见初级Java面试题,入职者必备! 广州华信智原2016-08-31 09:30:37阅读(564)评论(0) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场.举报 大家都应该知道Java是目前最火的计算机语言之一,连续几年蝉联最受程序员欢迎的计算机语言榜首,因此每年新入职Java程序员也数不胜数.究

Java错误和异常解析

Java错误和异常解析 错误和异常 在Java中, 根据错误性质将运行错误分为两类: 错误和异常. 在Java程序的执行过程中, 如果出现了异常事件, 就会生成一个异常对象. 生成的异常对象将传递Java运行时系统, 这一异常的产生和提交过程称为抛弃(throw)异常.当Java运行时系统得到一个异常对象时, 它将会沿着方法的调用栈逐层回溯, 寻找处理这一异常的代码. 找到能够处理这类异常的方法后, 运行时系统把当前异常对象交给这个方法进行处理, 这一过程称为捕获(catch)异常. Throw

最常见的HTTP错误

1. HTTP 500错误(内部服务器错误)对对HTTP 500错误的定义已经充分证明了这是一个最常见的HTTP错误. 一般来说,HTTP 500 错误就是web服务器发生内部错误时返回的信息. 例如,web服务器过载时将无法正确处理访问请求.根据Google的搜索数据统计,HTTP 500 错误发生机率是404错误的两倍: 2. HTTP 404错误(文件未找到)大多数人都知道这个错误. 当用户试图访问Web服务器(通常是一个网页)上某个实际不存在的资源时,就会发生404错误. 404错误可能

java 错误:Access restriction: The type Resource is not accessible due to restriction on required library

Eclipse 默认把这些受访问限制的API设成了ERROR.只要把Windows-Preferences-Java-Complicer- Errors/Warnings里面的Deprecated and restricted API中的Forbidden references(access rules)选为Warning就可以编译通过. java 错误:Access restriction: The type Resource is not accessible due to restrict

C语言中常见的内存错误与解决方法

常见的错误 关于内存的一些知识已在内存分配中提及,现记录与分享常见的内存错误与对策. 类型 1:内存未分配成功,却使用了它. 方   法:在使用之前检查指针是否为NULL. 1)当指针p是函数的参数时,在函数入口处用语句assert(p!=NULL)进行断言检查. 2)当使用malloc或new来申请内存时,应该用if(p != NULL)进行防错检查. 类型 2:引用了尚未初始化的指针 原   因:内存的缺省初始值究竟是什么并没有统一的标准,在使用之前都进行初始化. 1)没有初始化的观念. 2

eclipse启动时弹出Failed to load the JNI shared library jvm.dll的Java错误

原因1:给定目录下jvm.dll不存在. 对策:(1)重新安装jre或者jdk并配置好环境变量.(2)copy一个jvm.dll放在该目录下. 原因2:eclipse的版本与jre或者jdk版本不一致 对策:要么两者都安装64位的,要么都安装32位的,不能一个是32位一个是64位. 原因2的概率更大一些,原因1不太可能发生 eclipse启动时弹出Failed to load the JNI shared library jvm.dll的Java错误,布布扣,bubuko.com eclipse

一些初级Java错误,不定期增加

1. Error: Dangling meta character '*' near index 0 对字符串使用split()方法截取 * ? + / | 等字符的时候会报以下异常 Dangling meta character '?' near index 0 ? +.*.|.\等符号在正则表达示中有相应的不同意义. 一般来讲只需要加[].或是\\即可 一些初级Java错误,不定期增加