作为一个软件设计与开发人员,首先只有懂得去与别人分享,才能提高自己
最近在熟悉新公司的核心框架,在熟悉的过程中有了如下感想
熟悉框架感想:
当去看别人写的一个框架代码时,如果没有相关的框架设计开发文档和交接人员讲解时
第一步:
要能根据开发出来的框架产品(可运行看得出的产品),找出框架中每个功能模块对应的实现代码大概位置。
第二步:
找出对应的功能实现模块代码后,要能看懂代码意思,知道实现逻辑,理解开发人员对该模块的实现思路。在看代码的时候,要去揣摩框架开发人员的想法,心里要一直带着为什么他要这么去设计,这么去写代码。我想框架开发人员写的每一行代码,都有他自己的用意与代码本身的含义,所以你想真正掌握该模块的实现方式,你就要能完全掌握框架开发人员实现该模块的具体思路与每行代码的真正意思(即这行代码起到什么作用)。
第三步:
在掌握了每个模块的实现思路与具体实现功能后,我们要具备“反编译”的能力,即根据代码能了解它的业务。
在看别人的代码的时候,要注意的:
首先要仔细看每行代码,每一个定义的变量参数和引用的方法,它们的存在与引用,都应该有框架设计开发人员认为存在的意义。我们要能去掌握了解,不要只停留在实现方法表面,要能深入到每个方法的具体实现。有时,可能框架设计开发人员的代码有所冗余,或者说不是很完善,我们要能看得出来,要能去修改。
一个框架正如一栋房子的框架,每个功能模块,正如每个不同的房间
看别人框架的初步结果:
这个时候是要能进入这栋房子,了解每个房间的细节,身处在房子内
要通篇掌握整个框架的功能模块的工作流程与机制,掌握其功能的具体实现细节与步骤流程,当让你去修改某个功能细节时,要能去修改。
看别人框架的最终结果:
此时你是能做到随便出入该栋房子,身出其外,就能了解其架构
能通过看了这栋房子,了解了房子内的每个框架横梁,主架的走向,掌握了该设计者的思想。如果让你去重新设计一个类似它的框架,你要能有他的思路,取之优点,去之缺点,加以完善。
做软件开发个人觉得想要发展得快而好,技术要加强,这是前提也是最基本的,这个大家都能意识到,但是还有一点其实是比较重要的,就是要学会总结。技术是永远都学不完的,要学会去总结自己掌握的技术,需要有灵活的思想。
同时做开发还要有很强的举一反三的能力,看别人代码时,首先要能看懂,看懂之后,就是要能修改(要有自己的想法,如果我改成那样呢?能不能实现,如果你能修改实现了,那你才能真正掌握了别人的技术)
总之就是,在看别人代码时,要带着疑问去看,看的时候要思考,要想着我是否能把他的代码修改成我自己想要的那样,并着手去修改,变成自己的,这样一个开发人员才能迅速的成长起来。写文档、总结,其实也是一个开发人员对自己所掌握的技术与知识的一个总结和回顾,对于自身的发展和提高是有很多益处的。
最后补充一点,一个软件开发初学者,在学习过程中,肯定会遇到很多问题,当遇到不理解的问题的时候,不要立马急于就去向经验丰富的员工请教,要学会自己去上网查阅找答案,在查找的过程中,你会不经意的学到更多技术知识。我记得我当初刚学软件开发技术的时候,一个经验丰富的老员工就跟我讲过一句话,他讲一个开发人员的技术能力就是其google搜索的能力,其实这个也是有一定道理的。总之,做软件开发,遇到难题时,要学会有独立的思考并解决问题的能力。
分享到:
相关推荐
本技术文档专为JavaScript初学者设计,旨在帮助快速入门并深入理解JS的核心概念。 一、基础语法 JavaScript的基础语法包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象...
总之,"个人初学者网站"是一个针对VS2005的初学者教程平台,涵盖了Web开发的基本概念、技术以及实践应用,旨在帮助初学者快速入门并掌握Web应用程序的开发。通过深入学习和实践,初学者可以逐步成长为熟练的Web...
通过这个"初学者很好的安卓源码"项目,初学者不仅可以掌握基础的安卓编程技术,还能对安卓系统的传感器使用有深入的理解。在实践中不断学习和积累,将有助于你逐步成长为一名优秀的安卓开发者。
在电子工程领域,从一名初学者成长为一位专业工程师的道路充满挑战与机遇。本篇旨在深入解析“从51初学者到电子工程师”这一主题,提炼关键知识点,帮助读者理解电子工程师的核心技能与职业发展路径。 ### 核心知识...
《VC资源合集》是一个专为初学者设计的宝贵学习资料包,涵盖了多个关于Visual C++ 6.0及其相关技术的重要主题。这个合集旨在帮助新手快速掌握C++编程,特别是利用Microsoft Foundation Classes (MFC) 库进行开发。 ...
### 单片机初学者必读知识点详析 #### 一、选择合适的单片机系列 对于初学者来说,选择适合自己的单片机系列是非常重要的一步。...希望每位初学者都能找到适合自己的学习方法,逐步成长为优秀的单片机工程师。
对于Java初学者来说,构建一个全面的知识图谱是非常有必要的,可以帮助他们系统地理解和掌握这一领域的核心概念及技能。下面将根据提供的标题、描述以及文件名,详细阐述Java后端开发中的关键知识点。 首先,Java...
描述中的“讲解的比较浅显易懂”意味着这些资料可能采用了易于理解的方式,避免了过于复杂的技术术语,有助于初学者快速上手。 【标签】:“DONET ASP 学习资料” ASP.NET是.NET框架的一部分,专门用于构建动态...
通过这样的方式,初学者可以快速地了解Java的基本结构和运行机制,为进一步学习Java的各种高级特性和框架奠定坚实的基础。随着学习的深入,读者将接触到类、对象、继承、接口、异常处理、集合框架、IO流、多线程等...
### 给C++初学者的忠告 #### 1. C++是一门复杂的语言 - **解释**:作为一门功能强大的编程语言,...以上就是针对C++初学者提出的50条忠告,希望能帮助大家在学习道路上少走弯路,更快地成长为一名优秀的C++程序员。
根据提供的文件信息,我们可以归纳出一系列与“Java初学者网盘资源”相关的知识点。...通过合理利用这些资源,并结合自身的努力,相信每位初学者都能顺利踏入Java编程的大门,并逐步成长为一名合格的程序员。
它简单易懂,可以帮助初学者快速理解单片机如何控制硬件。LED的点亮与熄灭,实际上就是单片机I/O口电平的高低变化。在51内核的单片机中,我们通常使用C语言进行编程,因为C语言具有高效、结构清晰和代码复用率高等...
本教程旨在为初学者提供一个全面的Oracle 9i学习指南,帮助他们理解数据库的基本概念,掌握数据库管理系统的使用,并逐步成长为熟练的Oracle DBA(数据库管理员)。 首先,我们需要了解Oracle数据库的基础知识。...
本资源“dsp入门及应用”正是为这类人群设计的,旨在帮助初学者快速建立起对数字信号处理的基本认识,并能够将其应用到实际项目中。 1. **数字信号处理基础**:数字信号处理与模拟信号处理不同,它利用离散时间信号...
无论是初学者还是有一定经验的从业者,都能从中获得有价值的信息和建议。随着AI技术的不断发展和完善,未来对于AI人才的需求还将持续增长,因此把握好自己的发展方向,不断学习和提升,将成为在这个领域成功的关键。
只有不断更新知识,才能适应技术的快速发展,成为一名真正的Photoshop高手。 总之,Photoshop的学习之路既充满挑战,也充满机遇。通过遵循上述指导原则,初学者不仅可以迅速掌握基本技能,还能够在日后的学习和实践...