1. 如何看待程序员把Bug都改完就被开除了
作为一名码农、程序员,加班算是家常便饭了。周一至周五晚上加、周末加、办公室加、回家加、有偿加、无偿加……确实让人看见就怕。
但是你加班的原因是什么呢?让我们一起来看看下面两个例子。
01 程序员踩点下班,领导:不想干的请办理离职,我这里不养闲人与废物
在职场上加班不是目的,加班是为了完成工作,当员工能在正常上班时间内完成工作,无需加班,这时候作为领导也就没有必要让其留下来加班。
然而也有一些公司领导不看产出只看员工加不加班,就有一领导经过几天的观察,发现新来的几名程序员每天晚上不到八点就早早的下班走了。
对此这名领导很生气,想管管这群新来的程序员,于是在群里通知称:
都是干嘛使的?八点不到都 TM 走了!不干的直接说,现在就表态度,我这里从来不养闲人,也不养废物!不干的不想干的都去人事那里办理离职。
其实员工有这种心态实在人之常情。但退一步想,为何老板却能做到 5+2、白+黑呢?难道老板们都是铁打的?都是超人?非也,只因他们是经营者,他们为企业负责,为自己负责。
员工往往拿的是固定工资,所以这就导致了老板与员工焦点矛盾的局面:老板只关心利润,员工只关心工资。
2. 程序员代码bug导致银行损失怎么办
程序员承担。程序员的代码bug是个人原因,在导致银行损失后应该由程序员承担。程序员是从事程序开发、维护的专业人员,程序员分为程序设计人员和程序编码人员两种人员。
3. 程序员遇到解决不了的bug怎么办
但大部分程序员都有一个问题就是不太愿意测试自己的代码。他们草草的调式完成以后就认为工作结束,测试那是测试人员的工作。
1. 影响了程序员自己的声誉
2. 影响了产品的质量
3. 影响了客户的信任度
4. 这个时候再 DEBUG 难度增大了许多。
大的不说,就说多自己声誉的影响吧。如果你的程序总会有这样那样的 BUG ,你得到收益会减少,即使你写了很多代码。
程序员必须克服一些自身的致命缺点才能够从根本上解决这个问题。那么这个问题是什么?前面我们已经提到,程序员对自己的代码都非常宽容,认为那是正确的没有问题。实际上这种想法比较正常,程序是通过程序员思考和设计之后才写出来,程序员不会将自己认为不正确的东西写到代码里,而到这个时候都一直假设程序是正确的;但人非圣贤,怎么可能不犯错误来。实际上程序员在对待其他程序员时候的态度就很好,带着一种挑剔和学习的态度;但一旦对待自己的代码就很难这么做;这就是最致命的。程序员也必须对自己的代码带着挑剔和学习的态度;这个基础是假设自己的代码是错误的,然后需要做的是怎么样证明自己的代码是正确的。程序员自身可以在程序生成的每个阶段做这些工作:仔细的设计(这个时候画点时间是值得的,必须保证我们对自己的程序有清晰的轮廓后才能开始动手写)、编写代码时、单元测试(单元测试的重要性就不在赘婿了)、功能测试。
仔细的设计:这个的仔细是说在程序员编写代码之前,其必须对代码的整个结构以及逻辑结构有明确的清晰的了解,只有这个时候才可以去写代码。这里没有谈到文档,但我说到了一定要清晰的思路,但清晰的思路不是每个人都可以在脑袋中直接形成的,很多人都是普通人,没有办法在脑袋瓜中把所有问题都想清楚,那么就记下来,特别对于复杂的逻辑。
编写代码:对于没有把握的代码,例如:新设计的算法,最好保证其正确性。可以单独将这部分测试,这可以让代码模块化的同时又保证了代码的正确性。一句话:少量的代码保证质量还是比较简单的。
单元测试:单元测试的重要性不在赘叙了,现在也有许多工具可以帮助程序员并减少工作量。
功能测试:程序员保证自己代码质量的最后一关;为了做这样的工作我们可能必须写一些代码来测试,甚至是测试工作。使用大量的 CASE 来测试,以及错误的 CASE 。这里和测试人员的测试不同之处在于:仍然让程序员的注意力放在其自己的代码范围内,减小了排错的难度。
如果你通过了以上的步骤都找不出你程序中有任何问题的话,那么我想你的程序应该足够健壮了。其实还有一点必须说明的就是:代码 REVIEW 。
前面说道了程序员对待别人代码的态度是挑剔和学习的态度,所以让其他程序员来 REVIEW 你的代码也是检查程序有没有逻辑错误的很好的办法。团队中应该交叉 REVIEW 代码,这是实践的经验。
作为一个好的程序员必须有以上的习惯,以及对待自己代码象孩子一样,我们要爱惜我们的代码,同时也要让代码走正确的路。
4. 作为一个程序员,我发现同事写的代码有Bug,怎么办
作为一个程序员,你发现同事写的代码有Bug,你会告诉他吗?讲真的,这个事情对我来讲,很难,因为我在这个事情上吃过苦头!
看待这个问题首先得看对方脾气咋样,如果对方脾气不好,或者很难搞,还是想想其他办法。直接跟他讲可能会遭到对方的白眼!
别看我们程序员一个个傻傻呆呆的,其实自尊心特别强!除非你是他的领导,否则即使你发现了他代码里的Bug,他也不会服你!虽然还是会改,但内心一定在想:“就你能?自己管好你自己就成,看我代码干啥?”
其实我也是这样的心理,好像程序员除非自己愿意,否则都不怎么喜欢别人去研究自己的代码,好像对方故意找自己茬的意思。
但是不管咋样,不管是有意无意,我们既然发现了同事写的代码有问题,就不能坐视不管!
我最近在调一个小伙伴的接口时,因为涉及到数据回滚,所以就想知道他的代码有没有做回滚操作。如果没有,可能我这边数据已经回滚了,他那边没回滚就会导致数据前后不一致。所以我也不是有意要审查他的代码。
然后我就发现他不光没有做回滚操作,也没有做批处理。几个涉及到修改数据的代码就这样一行一行走下来,看着直让人挠后脑勺。
于是我就把这个事情告诉了他,让他要么做事物(如果操作有问题,可以自动回滚),要么做主动回滚。否则我在调他接口时,如果我这边撤销了数据修改,他那边却提交了修改,就会导致数据丢失或前后不一致。
当我告诉他这个情况和解决方案以后,我能很明显地感受到他有点不愉快。但事实摆在眼前,也只能修改。可修改归修改,他还是有点脾气的。于是他写了一个事物,将大部分涉及到增删改的语句全部包在了里面,唯一把一个删日志的语句留在了外面。
我看到这个情况,就委婉地跟他说:“”好像这个删日志的语句也要包在事物里面哦!”
但是他却说,这个无关紧要,他特意放在外面的。
我跟他说,既然这里有数据存在,就不是无关紧要的。不管咋样,也不能无缘无故就把数据给删了。但是他很倔强,执意不改,还说如果我觉得这个数据有用,那就让我自己“顺手”把这里的代码改一下。
此时我能明显地感受到他已经有点烦我了!无奈之下,我把这段代码给移动到了事物里面。
而我为什么说我因为发现同事代码有Bug告诉同事而吃过亏呢?
原因在于我之前待过的一家公司,有一个工作了几年的程序员同事,而我当时是个萌新。因为我专门培训过,所以代码能力还行。可这个同事虽然工作了几年,但写出来的程序代码却Bug一堆,常规测试手段还测不出来。
我是在偶然之间发现他写的一个程序是有Bug,但是又不确定,所以就想看看他代码是咋写的。不看不知道,一看吓一跳,他写的好大一部分代码都有问题!
我当时初生牛犊不怕虎,发现一个跟他说一个,结果最后把他给惹毛了,当场就要跟我动手,说我专门针对他。我哪有针对他的心呀!我当时想的是把这些Bug找出来,让他改掉,否则对公司也不好。
但是他想的估计是被我这个萌新发现了一堆Bug很丢人。我总是针对他的代码找Bug,他就是脾气再好也绷不住啊!
后来我们的部门经理为了不让他难堪,也为了给他个台阶下,找了我写的程序里的一个缺点,猛批了下,然后跟大家说:“我刚才看了看,大家写的代码有好多问题。这样,大家都各自检查一下自己的代码,看看有没有问题,有问题尽快改过来,然后我们统一测试!”
直到现在,我也没学会当发现同事代码有Bug以后,在不让同事产生不愉快的心理的情况下,委婉地告诉同事他代码写的有问题的方法。
5. 程序有bug,怎么跟程序员沟通
正确打开与程序员的聊天方式;
错误示范:同学,我觉得有个bug
正确姿势:同学,是不是我的操作有问题呢
6. 为什么总有无数的Bug困扰着程序员 – 码农网
下面就是为什么我们的软件之所以依然充满漏洞的5大原因:
1.人的天性
大多数——当然不是全部——软件bug源于我们自己犯的错误。虽然有些是因为软件编码工具和编译器发生了意外,但是大部分的错误得归咎于我们自己。
无论我们受到的SDL培训和安全工具有多么强大,只要我们还是人,我们就会犯错。如果你想问为什么电脑软件会有这么多的漏洞,归根到底是因为,人的天性就是容易犯错。
也就是说,我们在减少人为错误方面做得还不够。有很多程序员因为没有受到足够的SDL培训(有的甚至干脆就没有培训),所以根本就没有安全编程的理念。有时候我特别奇怪:有那么多的程序员以写安全软件为生,却居然不懂如何安全地编程。别不信,我敢打赌,你正在运行的银行安全软件中的bug不会比它能提供的保护措施少,搞不好甚至更多。
但是即使是那些经过严格训练的程序员还是不可避免出现bug。举个例子,前不久有个自鸣得意的家伙发明的使用HTML标记字段确定颜色的缓冲区在浏览器中溢出了。不像以前还要输入FFFFFh之类的东西,黑客甚至可以直接执行颜色域的代码,从而导致浏览器过度消耗资源、缓冲区溢出。看到没有,这就是漏洞!而且很少会有人能预料到这种情况。
2.不断增加的软件复杂性
就其本质而言,软件越复杂,就意味着代码行数越多。只要你在编程,那么即使你有多擅长写代码,也一定会有错误和bug出现。有人曾说,如果你能做到每50行代码中只出现一个错误,那你就已经做得相当好了。大多数程序员差不多每隔5至15行就会犯错。想象一下,这么说吧,一般性的Linux内核拥有超过1500万行的代码,有多少bug你自己算吧!
即使没有编码错误,互联网时代应用程序的整体互动性也是漏洞被攻击的途径。大多数程序员不得不和其他API协作,保存和检索文件,在多种设备上正常工作。所有这些过程都会增加被成功击破的概率。
而要防守的话,则需要写更多的代码,因为得抵御各种不同的攻击渠道。这么说吧,如果有一个只有30条汇编语言指令的恶意程序,那么针对相应的防守,你可能至少得写50000条汇编语言指令!
3.Fuzzers也是人写出来的
新近冒出来的Fuzzers软件主要用于扫描软件漏洞。Fuzzers——以及其他用于寻找编码错误和漏洞的任何程序——都是人写出来的,还是这句话,是人就会犯错误。例如Fuzzers是不会发现颜色属性的缓冲区溢出这种情况的,这是因为我们在写Fuzzers的时候没有考虑这一方面。不过当我们意识到这一点并对Fuzzers进行更新之后,就能做到去查找各种类似的缓冲区溢出条件的字段。简而言之,我们要Fuzzers做什么,它才会去做什么。
4.缺乏对供应商的问责
许多安全专家抱怨,只要我们不能找到证据起诉供应商的软件缺陷,我们就永远不会变得更安全。我赞同这一点,增加对供应商的问责有助于降低安全风险,但是同时却有可能会减缓进度。不过如果软件公司比现在更能担当起责任来,那么我想我们能在手机上、电脑上能自由自在冲浪的感觉会更爽。
但是成功源于功能和速度,而非安全。社会现状决定了我们必须牺牲一部分安全和保障去换取新鲜感。这不一定是坏事——因为能让我们成功得更快。但是这样一来我们就不得不承担这样做的后果。不过到目前为止,我们还是心甘情愿为了添加更酷的新鲜玩意儿而面对更多的风险。
5.缺乏对黑客的问责
现实是上面没有一条能很快解决。但是软件出现漏洞就其本身而言,真不是什么大问题。说它脆弱是因为这些软件在面对恶意攻击的时候毫无抵挡之力。除非我们能制止黑客的猖獗行径,否则恶意软件将会一直困扰着我们。
但是我依然深信,将来有一天我们的互联网会有更好的普遍标准出台,我们能在现实中及时地将那些损害大家利益的家伙绳之以法。不过在此之前,我们还是得不断地写补丁,在黑客的狂轰滥炸下苟延残喘。
7. 互联网前辈总是说“bug是改不完的”,新入职的程序员该怎样应对bug
互联网前辈总是说“bug是改不完的”,新入职的程序员应对bug:
8. 程序Bug导致了天大的损失,要枪毙程序员吗
程序出错那是正常的,没有哪个程序员写的代码能够百分百保证没有Bug,一般来说,小的Bug是可以接受的,但是如果造成了重大损失,那程序员的责任还是很大的,估计要想在公司呆下去,是不太可能了。