第一种境界:了解各类框架、并熟悉甚至精通某种框架的使用,但并未看过框架代码、或者并不理解框架核心细节的实现,甚至不清楚框架的设计原理、基本思想、适用场景。这类人的编程思路始终限制在”特定框架“的范围内,尽管能使用框架写出满足需求的代码。
这种人停留在”会用“框架的阶段,他们很在乎各种框架的比较,且一定要对框架分出三六九等。这些人写代码的思路始终没有离开”功能实现“。
第二种境界:精通各类框架,熟读各类框架源码,非常了解各类框架的核心功能的细节实现,熟识各类框架的优缺点和适用场景,权衡利弊后理性选择相对适用业务逻辑的框架,并能根据业务的需要有针对性的修改框架核心代码使之更加满足可维护性和性能上的需求,但依然要基于某种框架进行业务开发,框架的范围依然停留在组织代码、第一层的抽象和组件的模块化的范围内。
这种人停留在”精通“框架的阶段。他们的特点是有能力去对框架做有针对性的二次封装,甚至有些人有能力重写框架核心代码,但依然要基于某种框架做扩展和hack。这些人写代码的思路始终在”代码管理和框架级别的抽象“。
第三种境界:异常精通各类框架,同时精通业务逻辑,娴熟的对业务逻辑进行抽象,具备传统软件工程师的基本素质,有能力设计业务框架,并根据业务逻辑的需要重写合适的底层框架。这类人的编程思路已经完全脱离“框架”的限制,达到一种真正自由超然的境界。
这种人已经达到技术方和需求方一致认可的“专家”级别,技术功底扎实、同时精通业务。他们写代码的思路已经完全脱离“框架”,并始终围绕业务逻辑,主要工作即为业务逻辑层面的抽象和接口设计。