对应用开发过程的思考

一般都属于应用开发

互联网的后台是极其“复杂”的,以至于“复杂”到难以想象和不能用“复杂”来形容。每一个细节都可能会有不同的实现方式,所以不能局限于某种技术,每一个细节都可能被优化,所以任何时候都还有提升和优化的空间。

整个互联网技术有其运行的基础。所谓基础,就是基础设施,多年积累的计算机科学基础理论,硬件基础,计算机本身的体系结构,操作系统原理等。所有的讨论和工作,都在这些基础科学的框架之内。

所以,对互联网技术一般的定位,还是在于应用,即应用开发。

先理清楚,要做什么?不能忘初衷和大方向

对任务的总体把握,大的概念,后面的所有动作都是围绕和服务于前面大的需要。不要让后面的调整,使得前面的总目标产生大的偏差。这于在《用户体验要素》一书中提到的第一层:“战略层”相对应。这里就可以简单理解为,我的应用的核心目的是什么,或者它要为用户解决什么痛点。经常另人迷失的情况是,在过程中,往往会在痛点周围引发一些思考,注意思维不要发散太远,把精力集中在解决痛点上。

分解任务,减低难度

化解困难问题的有效方法是,把复杂任务拆分,分解成几个小步骤。一步一步解决,把每一步的输入输出,以及它们的衔接关系确定下来。

怎么做比较合适?确定最优解(算法)

思考一下写下来的步骤是否是合乎逻辑的,合乎情理的,正常的过程,是否有更好的方法?是否还有已知条件没有利用?论证是否是确切一致的,是否能站得住脚。这步可以理解为算法的范畴,数学,算法。

这一步应该是最难的,解决了这部分,后面的实现应该只是时间问题。

最优解,不是最终方案

确定好最优解以后,具体做的时候要结合现在的环境和条件,要有兼顾和妥协。比如项目进度,项目预算等等。

不要局限在具体的技术上

技术只是工具和手段,考虑最终要达到的目的和效果,使用哪些技术来实现。这是落地的关键一步,技术选型直接决定了后面的发展路径。 这块还是要有对技术本身的深入理解,使用实践经验,还有使用偏好,理念等。

这一步是最能体现专业技术积累的时候,如何能够精准匹配需求,能够使用合适的技术来实现,这可能是最要技术经验的。

总结

前面是理论逻辑分解,后面是理论落地,也就是与技术对接。在这个过程中,由于现实环境等因素,要调整理论,技术跟着也要调整。如此反复循环,直到全部落地。