BAT的大牛都经常犯的逻辑错误,看看你有没有

编程的时候经常会遇到一类错误,就是明明代码没有问题。编译也可以通过,但是运行的时候就会抛异常,这就是所谓的逻辑错误了。编译时的错误很好发现,因为编辑器会友好的提示,程序员可以针对性的去处理。而逻辑错误编辑器是识别不出来的,而且往往编码人员自己写出来的逻辑错误,自己是很难发现的。毕竟编码人员这么写出来了,心里就认为我的代码怎么会有错,肯定是操作不当造成的。很多线上的bug其实就是逻辑错误。这在开发过程中其实是不能绝对的避免的,但是却可以通过反复测试测试出问题的所在。

而编码逻辑错误,不光是新入行的菜鸟会犯这样的问题。就连很多工作很久的老鸟依旧避免不了犯错误的时候,甚至于BAT的程序员也会犯这样的错误。因为逻辑问题实在是无处不在,所以才需要我们主动去规避、注意这个问题。

下面说一个很多编码人员经常犯过的问题,以前也有一些网站出现过这样的漏洞被别人攻击造成巨大的损失。这个问题就是一个典型的用户登录信息问题,一些人在开发的时候只是根据cookie或者session中是否有用户已登陆的状态来判断用户是否登录,这其实就是个很大的逻辑问题。作为懂程序的人,要访问一些必须登录才能访问的接口,只需要在浏览器端构造一个假的session或者cookie信息就可以冒充已登录用户了。现在很多新手开发的网站都还有这个问题,看看你有没有这个问题吧。

既然逻辑问题这么重要,那么有没有办法能够避免它的出现呢?其实逻辑问题是无法彻底避免的,但是我们可以通过一些设计原则减低逻辑问题的频率。这就需要我们开发的时候从多个方面结合实际去考虑问题了,特别是开发的时候不要想当然。而开发之后的测试环节更是要慎重,绝不能敷衍了事

原文发布于微信公众号 - java工会(javagonghui)

原文发表时间:2018-10-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏wblearn

Web网站通知系统设计

写在前面: 通知系统是网站信息传播机制的重要的一部分,足够写一大章来说明。本文只梳理设计原则,后续相关内容会持续更新。 这里的通知包括但不限于公告、提醒或消息(...

1.1K2
来自专栏Java职业技术分享

不懂高性能的负载均衡设计?没关系,架构师带你飞

在软件系统的架构设计中,对集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。负载均衡本质上是用于将用户流量进行均衡减压的,因此在互联网的大流量项目中,...

982
来自专栏coolblog.xyz技术专栏

I/O模型简述

最近在学习 Java NIO 方面的知识,为了加深理解。特地去看了 Unix/Linux I/O 方面的知识,并写了一些代码进行验证。在本文接下来的一章中,我将...

3757
来自专栏大魏分享(微信公众号:david-share)

深度分析:Istio替代Spring Cloud的合理性

一、现有微服务架构 微服务本质上是分布式架构、分布式应用、分布式计算。 分布式计算可以带来的好处有:性能、可靠性、弹性、可扩展性、可用性、稳健性。 而从应用开发...

1.8K8
来自专栏Java技术分享

RBAC新解:基于资源的权限管理(Resource-Based Access Control)

本文讨论以角色概念进行的权限管理策略及主要以基于角色的机制进行权限管理是远远不够的。同时我将讨论一种我认为更好的权限管理方式。 什么是角色 当说到程序的权限管理...

7207
来自专栏杨建荣的学习笔记

shell的参数和脚本流程改进

今天痛下决心,把事务的工作一定要使用平台来做,时间短,任务紧,之前的运维开发是铺了一个面,每个面都做一些相关的事情,所以工作整体看都有进展,但是最后没有...

1483
来自专栏大数据钻研

谷歌的代码管理

谷歌和 Facebook 都只有一个代码仓库,全公司的代码都放在这个库里。 我一直很困惑,为什么要这样做,不同语言的项目放在一个库有什么好处? 最新一期的《AC...

3717
来自专栏架构师之路

换IP的是你,凭啥重启的却是我?

一、缘起 很多公司,技术经常遇到这样的场景: 1)硬件升级,要换一台高配机器 2)网络重新规划,若干服务器要调整机架 3)服务器当机,要重新部署恢复服务 … ?...

3957
来自专栏搜云库

分布式和集群区别?什么是云计算平台?分布式的应用场景?

分布式是指将一个业务拆分不同的子业务,分布在不同的机器上执行,集群是指多台服务器集中在一起,实现同一业务,可以视为一台计算机,一个云计算平台,就是通过一套软件系...

2775
来自专栏ThoughtWorks

组件测试:改建遗留系统的起点 | 洞见

在遗留系统中工作,无论是开发新功能,还是对旧功能进行修改,抑或是通过重构以期重拾其往日的雄风,都会面临大量的挑战。这些挑战主要来自于流失的业务知识、失传的技术和...

1383

扫码关注云+社区

领取腾讯云代金券