论框架思维
程序设计是非常锻炼人的意志的一种活动。
设计是一种非常大而且细致的工作,无论从艺术设计、还是程序设计,都充满了工程思维。而把软件完成的过程加入工程思维就可以更加规范化、系统化。所以对于软件设计工程来说,设计是重中之重。然而设计到底涉及哪些活动?具体有哪些方法?这里就引出了我们今天要讨论的话题:框架思维。
结合笔者自身学习过程的体会,虽然是计算机专业,本科四年,遵循着学校设定好的课程安排,按时修学分,按时毕业,但是终究感觉是一头雾水,知识点零零散散,无法真正串联起来,形成知识体系。虽然大学美其名曰:专业,然而技术体系和框架思维的缺失,并没有让我们在学校阶段就形成一个科学和全面的认识,结果参加工作以后,在行业需求和自身技术缺陷的泥沼中,如盲人摸象般,管中窥豹,只见一斑。于是开始如无头苍蝇似的接触和学习各种各样时髦的技术,各种框架,各种库,各种规范,到最后淹没于一代又一代不断更新和淘汰的技术之中,不能自拔,又无法停止追赶,让人苦不堪言,那种立志用技术改变世界的豪情壮志开始被现实撞击。
这样的经历,我相信计算机同行中,应该都体会过,尤其是新入行的人更是司空见惯。尽管如此,当我们走过了这些艰难的过程,再加入不断的思考,并通过反馈给大脑来调整努力的方向和学习的方法,我终于顿悟了,由点到面的学习积累是一个必经的过程,当一类相同的素材积累到一定程度,一幅美丽的图案轮廓自然就会在大脑中成型,然后从全局考虑问题,并提出优秀解决方案,这就是框架思维。从一开始捉襟见肘、丢三落四的编码,到综合考虑,全面分析,逻辑严密的设计,让我们的设计思维上升到了更高的程度。
然而我们人类是善于总结的,如何可以更快、更好、更高效的去修正和缩短这个过程,使新入行的同学少走弯路,另辟蹊径,同时仍然能达到极高的框架思维程度呢?方法就是从技术和行业需求两方面入手:跟以点带面正好相反,是以面带点,从一开始就要对所学习的行业有个总览,而且是一个非常细的总览,而不是泛泛而谈的概括,一个知识点一个知识点的分析,思考和总结,并实时调整和补充技术体系,从而形成类似一个分析、实践、总结、反馈的完美闭合的环路。然后就是行业需求,一个技术高手未必是一个优秀的解决方案专家,因为只有对所要应用的行业了如指掌,达到细致入微的程度,才会触发流程上的问题,也才会有改进的需求,行业方面的框架思维,正好验证了技术体系的应用,这是系统分析和系统架构的完美结合。
总之,居高临下,拓展框架思维的广度和宽度,必然能够带动一个技术人员的工程化思维,也真切的体现了软件工程的含义,个人认为这才能被称为工程师。