小程序websocket demo
你初学编程的时候是怎么提高自己的Debug能力的?
你初学编程的时候是怎么提高自己的Debug能力的?
从实际经历和心得体会来回答这个问题,希望对想学习或者正在学习的朋友有帮助。
初级阶段,熟悉需求。
要提高Debug能力,应当熟悉需求,把握好功能实现的方案和思路。经常使用的Debug手段有:单步调试,代码断点和数据断点,串口信息打印。这三大手段要相互交替使用,灵活使用,反复使用。总体来说,以代码和过程为中心点,围绕功能和实现方法进行调试。
中级阶段,熟悉架构。
这个阶段需要对系统和模块有所了解,对任务和线程有所了解,依靠的手段除了初级阶段的三种方式之后,更多的需要对整个系统的架构和功能模块有一定的了解和把握能力,把问题框到所用的架构中去定位和分析,学会让代码在脑海中试跑,适当地大胆地猜测问题出处,通过裁剪或者替换或者条件等多种方式去反复验证定位。
高级阶段,了解问题的本质。
这个阶段需要非常扎实的知识理论,非常丰富的项目经验,从原理到行业方案都有一定的见解。到了这个阶段,所谓的Debug能力,基本上已经是理论定位,实操验证。
如何提高Debug能力?
多想多做,每个程序员都是一步一步成长起来的,只不过有的人由于理论丰富而扎实,起点就高了那么一点点而已,大多数人都是靠着IDE提供的Debug辅助功能成长起来的。从上面的三个阶段来看,除了IDE本身,更多的是需要学习、总结、提升。如果你有多年的程序开发和调试经验,那么你会相信,很多时候Debug都是边猜边试,边测边想,边改边调。
还有一条很重要的方法,向项目组其他同事尤其是老员工请教,多沟通,多交流。三人行,必有我师。学习别人的经验和方法,特别是那些你感兴趣的或者你从来没有使用过的方法,也许真的很有帮助。你也可以在学习和使用的过程中,适当的变通或者改造,创新出更加适合的方法。
如果你的项目和硬件有关,Debug的时候一定要适当地合理地运用硬件工具。例如万用表,示波器,逻辑分析仪,真的非常有用。我是搞嵌入式软件开发的,我在开发和调试的过程中,就常常用到这些硬件仪器来定位和解决问题。
也许你会反驳,如果是老牛或者大咖,肯定是凭空分析,一次修改,一次通过。有没有这种可能呢?有,我自己也有这个能力,但是那些都是小问题或者确定性的问题,或者是经验问题。如果是一个创新性的重大问题,我不认为如此轻松就能解决,至少我没有那个能力,我也没有遇到有此能力的人。纵观所有的技术大牛或者大咖,解决问题的时候都会一定地反复的过程,否则就没有所谓的迭代了,也没有所谓的版本更新了。
如何实时查看币市资金流入流出?
资金流向在国际上是一个成熟的技术指标。其计算方法很简单,举例说明:在9:50这一分钟里,钢铁板块指数较前一分钟是上涨的,则将9:50这一分钟的成交额计作资金流入,反之则计作资金流出,若指数与前一分钟相比没有发生变化,则不计入。每分钟计算一次,每天加总统计一次,流入资金与流出资金的差额就是该板块当天的资金净流入。
这种计算方法的意义在于:指数处于上升状态时产生的成交额是推动指数上涨的力量,这部分成交额被定义为资金流入指数下跌时的成交额是推动指数下跌的力量,这部分成交额被定义为资金流出当天两者的差额即是当天两种力量相抵之后剩下的推动指数上升的净力,这就是该板块当天的资金净流入。换句话说,资金流向测算的是推动指数涨跌的力量强弱,这反映了人们对该板块看空或看多的程度到底有多大。