程序员的十大思维误区,你中招了没?

  • 时间:2019-08-22 03:37 作者:金光闪闪耶 来源:金光闪闪耶 阅读:38
  • 扫一扫,手机访问
摘要:作为老码农老程序员,日常工作中打交道最多的也是程序员,在这个过程中,我发现不少程序员在技术、产品等方面的思维有各种各样的小问题。现在我就来回忆一下,把这些我认为不太好的思维习惯记录下来,在提示自己的同时,也供程序员朋友们参考,不必对号入座,有则改之,无则加勉,或者者你甚至认为这些不是思维误区都可以的,

作为老码农老程序员,日常工作中打交道最多的也是程序员,在这个过程中,我发现不少程序员在技术、产品等方面的思维有各种各样的小问题。现在我就来回忆一下,把这些我认为不太好的思维习惯记录下来,在提示自己的同时,也供程序员朋友们参考,不必对号入座,有则改之,无则加勉,或者者你甚至认为这些不是思维误区都可以的,我也不知道起怎样样的标题比较合适,且称“程序员的十大思维误区”吧,祝阅读愉快!

1. 测试人员不按我的实现来测

前台界面有几个下拉列表框,需要选择后才能点“提交”按钮,但前台的实现是,即便不选择下拉框,也能点击“提交”按钮。而假如没选择时就提交,会出错。前台开发人员会说,你不按我的要求来使用,才出错的啊。嗯,嗯,如同有点道理哈。

从测试的角度来看,粗暴点说,就是要把你的东西搞垮,当然不会按照开发人员想象的流程来测试,前台开发人员必需力求保证无论客户怎样使用,都不能出现崩溃的现象,客户使用流程不正当时,进行适当提醒,而不是挂掉。比方不满足输入条件的情况下,“提交”按钮最好变灰,这样也有助于引导客户按照正常流程来使用产品功能。

2. 接口没有数据,当然就出错

APP或者网站出错了,找前台开发人员过来看。看完之后说:“接口返回空数据了,前台没有问题”。真的没问题吗?

前台需要进行防御式编程,永远不要假定后台接口有数据返回或者者数据格式肯定是正当的,因而需要针对这些情况做解决,比方进行少量转换而后展现给客户。而不是:后台接口没有返回数据,我就崩溃给你们看,跟我没关系!

3. 把数据库的错误返回给前台

后台开发人员有时候会将操作数据库的异常信息返回给前台,假如你跟他说需要屏蔽掉这种信息,而后转换成前台可以了解的信息再返回,他会说正常情况下不会这样的,只是由于数据库的数据是测试数据,数据关系不正当。

就像前台开发人员不能假设后台接口肯定返回数据给他一样,后台开发人员不能对数据库的数据做任何假设。在操作数据的时候,需要想象假如这个数据不是你想要的格式时,要怎样解决,而后再返回给前台相应的信息,而不是把异常信息返回给前台。

4. 功能开发完成,万事大吉了

有些开发人员在写完某个功能后,常常就觉得没什么事情了。功能开发之后,测试就不用说了,但此外,开发人员最好能多从运维、经营的角度去思考。比方怎么的信息有利用运维人员快速定位问题,也有助于自己快速找到应用代码中的问题。同样,得想想,怎么的数据信息可以帮助经营人员做决策,怎么的策略具备更好的安全性。

功能开发完成,只是第一步,一个系统要完整运转起来并运转得好,还需要很多其它的辅助工作,因而,开发同学具备运维、经营式研发思维,才有可能成长为一个能统领全局的技术负责人之类的角色。

5. 口头禅:我电脑上没问题啊

听到某个功能出问题时,技术人员往往会说:我电脑上没问题啊。这倒是可以了解的,毕竟开发人员完成某个功能后,一般都是在自己电脑上测试过的,测试没问题了才发布出去。

但是开发人员自己测试,往往不能测出问题,由于他已经按自己的实现思路去使用了,但很有可能测试得不全面。而且,别人电脑和自己电脑环境可能不一样,兼容性是个问题。“我电脑上没问题啊”,这句话给我们码农挣回一点尊严是可以的,而后,应该认真对待别人提出的问题并处理掉。

6. 怀疑操作系统或者者硬件问题

听到产品有问题时,经常怀疑是操作系统或者是硬件问题,而不主动想办法处理。倒不是说操作系统和硬件是完美的不会出问题,而是这些东西都是经过千万次测试后才推出来的产品,我们写的代码可能没有经过足够的测试就发布出去了。

从经验来看的话,99%的情况下,是开发者不了解系统机制,或者者是自己代码有问题。因而,一般遇到问题时,先想想自己代码哪里比较可能出问题,而后再考虑其它方面的问题,当然,有些问题很显著就不是代码问题的,那另当别论。

7. 假设代码都走“Happy Path”

Happy Path,也可以叫欢乐路径。有些开发人员总会假设,程序运行时,配置文件好好地躺那里了,网络连接总是好好的,因而程序都会按理想中的流程运行着。

而实际上,程序在运行时,各种异常情况都有可能发生,可谓如履薄冰。因而解决异常的代码是非常必要的,甚至有时候,解决异常的代码比正常流程的代码量还要多,这都是为了程序的健壮性。

同样的,由于欢乐路径的思维,开发人员在预计开发时间的时候,也往往会以最顺利情况下的时间作为进度计划,而实际上在开发过程中,还会遇到各种各样难以意料的问题,都需要花时间处理,因而程序员估算时间,一般差个2-3倍是比较常见的。

8. 主与次、笼统与具体分不清

技术人员有时候分不清主次,该了解的不去仔细了解,不该背诵的选择背诵。有些东西其实了解了原理,使用时候再查一下文档即可以了,没有必要花费精力去记忆。

还比方,舍不得花时间做设计,就早早动手写代码了,理由是没有时间设计。但到头来,由于没有提前做好设计而需要返工,导致花的时间更多。因而,除非不得已,建议先略微想好再动手干活,没必要太急,这就是所谓的慢工出细活。

9. 少沟通,以为都了解需求了

技术人员有时候跟业务人员、产品经理寒暄几句,就以为都了解了需求,于是回头就蛮干起来。等到做得差不多了,拿给业务人员看时,可能会发现做的东西不是他们想要的,或者者相差甚远。

还有些时候,是由于不深入了解需求和环境,导致了复杂性。举个例子,比方要给自动化部署的服务器集群分配内网IP,刚开始可能想到要生成各个网段的IP而后让服务器通过DHCP来自动获取属于这个网段内的IP,网段还不能重复。但假如了解了具体场景,比方每一次部署,在同一网段内的服务器都不超过200台,那其实就不需要用代码生成网段了,使用固定的网段即可以,由于不同的部署相互之间是隔离开的,不同次的部署,即便IP相同,也不会冲突,这就简化了问题,原本要写的代码现在也不需要写了。有一种比较拗口的说法大致可以形容这种场景,就是:处理问题的最好办法就是不去处理它。

10. 抱残守缺不主动学习新知识

以前有位码农问我,知不知道MVC模式,我只好苦笑。虽然我不敢说自己对少量模式的了解有多好,但这种东西在刚开始编程的那些年,也早就接触了是不是。我预计他平常很少跟人沟通,或者者看技术文章、技术资料比较少,以为自己偶然学过的东西,很多人都不懂,而实际上并非如此。

他还说,使用具备MVC模式的PHP框架后,后台的Model被修改后,浏览器前台立即有响应。我预计他受VC++里面文档视图编程的方式影响比较深,在单一的桌面程序里面,MVC模式的确会这样的。但是到Web编程时,代表数据的Model在后台被修改了,前台浏览器并不能看到View的变化,需要刷新才能从后台获取View的新内容,或者者需要使用Ajax请求,又或者者需要使用WebSocket之类的技术从后台向前台推送。这种时候,后台框架使用MVC模式,是为了模块划分和更好的代码组织方式,并不是后台数据修改了,浏览器上显示的View部分自动就升级了。

技术的升级实在太快了,即便身处于这个行业中,我们也时常会由于要跟进新技术而疲于奔命。比较有效的办法是,尽量去了解少量本质性的原理性的知识,这些知识往往通用性比较强,同时选择学习某些新框架。选择的依据可以是这种框架的社区活跃程度、遇到问题时网上找处理办法的难易程度、开发周期长短、市场上人才储备情况等等。

部分VIP资料

最后说一下的,也就是以上教程的获取方式!

领取方法:

还是以往不变的老规矩!

1.评论文章,没字数限制,一个字都行!而后转发出去!

2.关注小编,成为小编的粉丝!

通过申请后会一一开通权限,小助手精力有限,手慢无哦

视频的价值取决于领取后的行动,大家千万别做收藏党。和志同道合的人一起深入探讨与学习 Web前台技术,也欢迎转给需要的朋友!

  • 全部评论(0)
最新发布的资讯信息
【系统环境|服务器应用】前台开发入门到实战:HTML5语义化元素你真的用的正确吗?(2019-08-22 04:16)
【系统环境|服务器应用】Vue仿微信app页面跳转动画(2019-08-22 04:16)
【系统环境|服务器应用】webstorm使用快捷键快速修正单个文件的style(2019-08-22 04:16)
【系统环境|服务器应用】程序员从学生到阿里经历的5次蜕变:海阔凭鱼跃,天高任鸟飞(2019-08-22 04:16)
【系统环境|服务器应用】var、let、const的区别(2019-08-22 04:16)
【系统环境|服务器应用】mini-ui加载框Indicator 被遮挡问题(2019-08-22 04:15)
【系统环境|服务器应用】【对讲机的那点事】玩对讲机,对于对讲机的亚音你理解吗?(2019-08-22 04:15)
【系统环境|服务器应用】前台中高级面试,内功心法(上)(2019-08-22 04:15)
【系统环境|服务器应用】17、改进轮播图之功能封装(2019-08-22 04:15)
【系统环境|服务器应用】第10题- 你不知道的delete操作符(2019-08-22 04:15)
手机二维码手机访问领取大礼包
返回顶部