要敢于怀疑

简介:
给大家讲一段比较久远但延伸到现在的悲惨往事:

1. 开源核心
    一年以前,因为一个项目引进了一个比较出名的开源软件,然后我们基于自己的业务对此开源软件进行审核,看是否符合我们的需求。在了解其开源架构后和简单的使用后,改造方案也确定下来:依然采用此开源软件的核心(也是业界很出名的),只是要对界面和业务进行改造。

    在风风火火的一个季度里,我们基于自己的需求终于完成了产品改造。但是投入测试后却发现了致命的问题,(这个产品核心实现是依赖于硬件的)对于不同的硬件平台稳定性很差,甚至正确率都偏低。起初我们认为应该是我们引入的代码和逻辑影响了原有程序的稳定性,但是在进行仔细的代码审查和验证后排除了自身的问题,于是对原有核心进行相同条件的测试,症结找到了,是开源核心本身的问题。

    这种情况下,我们的项目组遭受了严重的失败和问责,我们也总结了自身犯下的最大错误”引入开源不利,考察开源不全面“。我们几个比较推崇大胆引入开源软件的人也遭受到了反开源派的”攻击“。

2.windows自身组件---商业软件核心

    此后我由于别的项目离开了此项目组,项目依然由他人进行着二次开发,去年中后期,产品成功发布,但是此后常常听见客服和市场反馈来的坏消息”不稳定“。终于在年底前一个月,公司决定对此产品下大力气整改,于是我又接手了,这时的程序核心已经换成了windows提供的组件,只是按要求调用windows的api就行,我接受的任务是审查代码和组件调用的正确性,我在阅读了大量的文档和审查代码后,实在没发现大的问题,于是只是完善了此组件的一些额外调用,增加了部分错误处理和日志输出后就很自信的转向了一个商业软件核心的api调用实现,在代码完成后。在实验室进行大规模测试后发现此核心对部分版本支持性很好,但是对部分版本支持性不好。而且又由于使用此核心需要安装此商业软件,在这种并不好的情况下公司为了规避授权问题最后放弃了此商业核心的使用。

3.再次转向windows自身组件

    对于很多人来说,宁可怀疑身边的人也不会怀疑windows吧。于是公司又决定投入人力进行windows组件使用的仔细研究和对之前代码进行仔细审查。这次投入的是公司的另一个攻坚高手,我作为辅助人员进行支持。这位同事在接手项目后第一件事就是对代码进行重构(联系我前面的文章:怎样平衡c++项目的设计),然后又扩展了几处windows api的调用。然后也很自信的让产品投入测试,但是测试情况仍然不理想,于是一直修改代码,扩展调用,直到今天,我用windows自身实现的组件调用进行测试,才发现了问题”是windows自身组件支持不好“。

4.下一步,我们想走自己的路,但是还有时间吗?

看看我们走过的路
(1)在缺少大量测试和验证的情况下引入开源核心(稳定性和兼容性差),因为我们相信开源核心,你呢?
(2)在缺少大量测试和验证的情况下引入windows组件(稳定性和兼容性差),因为我们相信windows组件,你呢?
(3)在缺少大量测试和验证的情况下引入商业核心(有版本依赖),因为我们相信商业核心提供的api是天上的馅饼,你呢?
本文转自永远的朋友博客51CTO博客,原文链接http://blog.51cto.com/yaocoder/808162如需转载请自行联系原作者

yaocoder
相关文章
|
7月前
|
运维 JavaScript 程序员
7 行代码搞崩溃 B 站,原因令人唏嘘!
7 行代码搞崩溃 B 站,原因令人唏嘘!
64 2
|
7月前
|
机器学习/深度学习 存储 算法
算法人生(4):从“选项学习”看“战胜拖延”(担心失败版)
选项学习是强化学习的一种策略,通过定义、学习和切换选项来解决复杂任务,将大任务分解为可重复使用的子任务,以提高学习效率和适应性。面对因担心失败而拖延的问题,我们可以借鉴选项学习的思想:将大任务拆分为小目标,正视失败作为成长的一部分,回顾成功经验并寻求支持。通过这种方式,逐步增强自信,降低拖延现象。
|
数据采集 Web App开发 程序员
成长的路上,谁不曾反复自我怀疑
大多数人在入门之后,都会遇到一个比较大的“瓶颈期”:这个阶段,你已经了解了编程语言的基本语法,可以看懂入门书上的所有例子,但是合上教程却又无法写出一个完整的代码,对于接下来的学习又缺少方向。以至于对编程这件事情感到迷茫,甚至自我怀疑。
|
Apache 云计算 开发者
删库跑路大神「后悔」了?我只不过犯了大家都会犯的编程错误!(1)
删库跑路大神「后悔」了?我只不过犯了大家都会犯的编程错误!
163 0
删库跑路大神「后悔」了?我只不过犯了大家都会犯的编程错误!(1)
|
安全 小程序 程序员
删库跑路大神「后悔」了?我只不过犯了大家都会犯的编程错误!(2)
删库跑路大神「后悔」了?我只不过犯了大家都会犯的编程错误!
110 0
删库跑路大神「后悔」了?我只不过犯了大家都会犯的编程错误!(2)
|
小程序 Android开发 容器
为何小程序上线了,他们的内心却留下遗憾?
你的小程序还是那么卡卡卡卡么?
7729 0
为何小程序上线了,他们的内心却留下遗憾?
|
API
两个NSInvocation崩溃引起的反思
前言 最近在使用NSInvocation进行多参数方法调用,结果就崩溃了!signature为nil 和 一直提示找不到方法!!! method signature argument cannot be nil 崩溃信息: *** Terminatin...
1407 0
|
存储 SQL Java
一切都来得及,千万别放弃
距离2018届毕业,还有不到半年。 我是普通本科,投递Java后台开发。截至今天,本人已获得CVTE、金蝶、锐捷网络、百度上海研发中心实习生、深信服、美团、北京好未来的offer(按时间获得的先后顺序)。
1820 0