互联网中,软件工程师岗位会分前端工程师,后端工程师。这是由于互联网软件规模庞大,从业人员众多。前后端分别根据各自需求发展不一样的技术栈。那么上位机软件呢?它规模小,通常一个人就能开发一个项目。它还有必要分前后端吗?
有必要。本文从三个方面论述。分别是可测试,可维护,可移植。
可测试
软件黑盒测试更普遍,但很难覆盖所有应用场景。于是有了接口测试、模块化测试以及单元测试。都是通过降低测试对象的复杂度,来实现更全面的测试。那么将上位机软件分为前后端、甚至服务模块、下位机对接模块等。并做好接口划分,也就提升了软件的可测试性。从而提升质量。
可维护
低耦合的代码更容易修改。模块内部的函数变动不会影响到模块外。相反,前后端混合,页面一个控件的改动,都要去修改底层通讯模块。这样只会提升维护难度、降低软件可测试性,也就降低软件质量。
可移植
分为前后端,那么可以单独复用后端或前端代码。例如:新项目里,下位机不变,通讯协议不变。只是页面元素、布局改变。那么不修改后端代码。新前端按固定接口写好,就能直接配合使用了。
以上,就是从三个方面论述了上位机软件分层设计的必要。