热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

从10号线(牡丹园)地铁指示台的bug看到程序员背后的工作

今天,晚上9点下班回住的地方,和同事一起走到10号线地铁(牡丹园站)里面,看见地铁地面上有个机子,这时候地铁还没有来,于是乎我俩就走到了地铁的指示机前,是触屏的,但是不支持多点触控,点

        今天,晚上9点下班回住的地方,和同事一起走到10号线地铁(牡丹园站)里面,看见地铁地面上有个机子,这时候地铁还没有来,于是乎我俩就走到了地铁的指示机前,是触屏的,但是不支持多点触控,点了一点,感觉还可以!有一些方便大家的提示,比如:地铁出口附近的公交车有哪些?但是没有详细的哪一个公交车具体经过的站牌是哪些?有地铁的最早发车时间和最晚发车时间表,就在看这个的时候,发现了一个bug,13号线开往西直门的全程末班车的时间有一个居然是13:10分,感觉不太对劲,地铁怎么可能在13:10分停运呢、于是乎我就上网查地铁运营时间表!

 

                                            地铁乘客信息查询系统

                              

                           

                                                   红色标出的是错误的时间表

 

 

    公司网址http://www.sgs.com.cn/news_show.asp?id=1414&channel=5&classid=5

 

                       网上查询正确的结果如下:

                 

                 希望贵公司发现此bug,赶紧处理!

       看到回龙观这一行,发现时间是23:10。

       哎! ---->bug啊!这么严重的bug,数据库中插入的值肯定输入错误了,这个测试怎么测试的呢!开发人员的测试呢?QA的审批?等等!

       一系列的问题都暴露出来了!软件的开发周期是多久,开发人员的测试,测试人员的系统测试,这些测试案例怎么写的??种种因素导致了以上的错误,其实生活中我们难免出错!但怎么才能避免产品出现这么显而易见的错误呢?

        现在的软件行业都是抱着“短,平,快”的效率发展,很少人原因多花钱在测试身上,都是找一些刚毕业的做测试,开发也是一个人顶3个人用!软件行业的“高”起点收入下背后往往是一些苦逼的程序员在不停的加班,做事没有章法,别管用什么方法,老大只看结果。往往小公司都是这么干的。---->还所谓的敏捷开发。再来看看一些大的公司,华为,提交一个bug,要找3-4个人review,而且被review的人必须每行代码都必须讲清楚。否则就不允许提交---->入库。修改100行代码要写风险方案评估等等。这些看似浪费时间,降低我们的开发效率。但其实这种方法才是真正意义上的减少重复错误的出现。一些小的开发公司,往往忽略这些,每天的bug都忙着解不过来,哪有什么时间写风险评估?比如一些公司会开展分模块开发,往往都是每一个人单挑一个模块的大梁,在review的时候,往往别人都看不懂(甚至不熟悉他的模块的情况下),就匆匆签字提交,只是会负责任地问一声“验了吗?”往往在这种高压的工作环境下,人出错的概率会大一些。然后我们会重复解决一些已经解决的bug,一些bug是因为我们以为解决了,但是会引起另一个(甚至好几个bug)。我就遇到这种事!中国程序员的命运有部分就是是这么悲惨的!

        提点意见:注意总结,提交代码尽量把这个问题搞清楚,下次在出什么问题,能很快定位到什么地方!和同事多交流,这样知识是流动的,会像一条条河流流向一个方向形成大海一样。准备一个本子,写下自己每天解决的bug,然后每隔一个月对比一下,看哪些是重复的问题?养成一个良好的习惯----多写注释!尤其在关键的地方。


推荐阅读
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 推荐一个ASP的内容管理框架(ASP Nuke)的优势和适用场景
    本文推荐了一个ASP的内容管理框架ASP Nuke,并介绍了其主要功能和特点。ASP Nuke支持文章新闻管理、投票、论坛等主要内容,并可以自定义模块。最新版本为0.8,虽然目前仍处于Alpha状态,但作者表示会继续更新完善。文章还分析了使用ASP的原因,包括ASP相对较小、易于部署和较简单等优势,适用于建立门户、网站的组织和小公司等场景。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
author-avatar
雨滴儿茶业_455
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有