软件架构工程师的应用体系结构及参考框架的区别
发表时间:2023-11-13 13:04:15
文章来源:炫佑科技
浏览次数:200
菏泽炫佑科技
软件架构工程师的应用体系结构及参考框架的区别
距离毕业已经四年多了。 我已经将自己的定位从测试和开发转变为软件工程师。 我目前的目标是成为一名架构工程师,然后我会达到全栈工程师的目标。
1.框架
框架 ( ) 是一组协作的类,它们构成特定类型软件的可重用设计。 框架指定了应用程序的体系结构。 (参考百度百科:)
框架的本质,按照我的理解,就是提供一系列已经封装好的类和方法;
在应用程序中使用框架实际上是使用框架中的基础类库;
一个好的框架本身是经得起推敲和大多数考验的;
使用框架的好处是可以避免重复制造不必要的轮子(详情请参考知乎:“轮子”);
如果想要真正理解框架是如何实现的,还是需要参考框架源码,自己重新发明轮子。
2. 架构
架构是对软件整体结构和组件的抽象描述,用于指导大型软件系统各方面的设计(详细参考百度百科:“架构”)
对于这个词,大家可能听到的更多的是架构工程师这个职位(具体可以参考百度百科:软件架构工程师),他的工作内容就是为我们的软件构建架构;
在整个软件生命周期中,我个人理解架构所包含的内容(也认为是一个架构工程师所需要的能力)是:
①软件定义——需求(分析)文档、设计文档等;
②软件开发——确定软件各组件(如服务器、客户端)所使用的编程语言、框架、技术、依赖软件等、组件之间的API接口定义(非必须)、用户界面(非必须),操作流程和业务逻辑、软件版本控制等。
③软件测试——测试场景、测试用例、bug管理等;
④软件维护——软件部署、软件发布等;
3. 编程语言
人的精力是有限的。 我个人认为掌握很多编程语言并不是了解一种编程语言的本质。 用不同语言编写的算法(程序)是遵循编程语言的语法并被编译(或解释)为可执行平台上可以识别的指令的代码,并运行指令来完成一定的目的。
我相信编程语言没有好与坏的区别,只有适合与更适合的区别; 不同语言之间的差异只是表面上的语法不同,并不是完全相同的函数名称,以及不同的实现方法。 就像中文中的“Hello”在英语中的意思是“你好”,在法语中的意思是“”。
至于**语言的选择,建议从高级编程语言开始。 你不需要了解它是如何编译成汇编语言并被机器识别的中间过程。 工作中,当谈到选择哪种编程语言来解决实际问题时(如果没有专家指导的话),我个人认为:
①首先要考虑的是活跃用户数量(可以在社区或网站中获得更多问题的解决方案,并且有更多的案例、源码等可供参考和学习)
②二是参考成功案例,主要从实现难度(认为主要取决于语言相关文档的完整性和第三方库的数量)、易用性、可扩展性、可维护性等方面。
③基于前两项,我们需要考虑效率、可维护性、可扩展性、可移植性等方面来选择*合适的开发语言。
另外,对于编程语言来说,过程式语言写的代码在结构上可能更容易理解(比如C,一长串逻辑),而面向对象语言则更符合世人的认知习惯(如 Java、C++、C# 等)。
4. 代码结构
作为一名从测试开发到现在的软件开发工程师,工作内容会从完成几行代码开始,完成一个方法,完成一个功能,然后完成一个具有多种功能的软件应用。
在这个过程中我也认识到,清晰合理的代码结构对于后续的开发和维护、代码的可读性、可理解性都会有很大的帮助。
对于独立完成一个软件应用(以面向对象的开发方法为例),我个人认为应该按照以下顺序来思考软件的整体代码结构(属于《软件开发》第2节中的软件开发)架构”上面):
①分析需求中涉及的具体对象,并抽象为代码中的类;
② 分析具体对象之间的关系,抽象为类之间的关系(继承、实现、依赖、关联、一般关系等,具体参考:面向对象编程中类之间的关系),并确定基数类、接口中的成员;
③根据实际情况,考虑设计模式的应用(比如笔者会用到的单例模式、观察者模式等,具体请参考菜鸟教程:设计模式详解)。 使用合理的设计模式可以让其他熟悉该设计模式的开发人员快速了解当前的代码结构;
④良好的编码习惯。 例如:添加注释、成员(字段、属性、方法)的书写格式、代码自检、即使一起工作也提交代码等;
⑤代码复用性好软件架构工程师的应用体系结构及参考框架的区别,避免冗余代码。 良好的继承关系、多处使用的同一个控件的定制化统一实现等都使得代码具有可复用性,但要注意尽量减少使用公共静态方法(这会增加内存占用,特别是对于大型软件系统) 单词);
⑥ 考虑应用场景、用户体验等。软件程序*终交付给用户使用。 用户问题在程序设计之初就必须考虑到,比如:耗时的操作应该放在后台线程而不是主线程中进行UI处理,用户当前的操作场景应该同步还是异步实现软件开发,代码异常处理方便问题定位和避免程序崩溃,多线程编程时的线程同步,以及数据安全和高并发情况的处理(笔者也在学习)等。
相信清晰、合理的代码结构是软件稳定、健壮的前提。 复杂的代码结构不利于问题定位,会导致代码可维护性、可读性差等问题。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等