时光似水,又是一年呼呼而过,在软件行业转眼又度过了一年。针对以上的问题又多了一些感悟。现把个人的一些见解尝试说明如下,不足之处,请多指教。
1、答:
1)软件架构设计:它就是一个架构师来决定采用什么样的物理架构,技术架构来针对一个业务项目或者是平台的项目的一个解决策略。比如说针对一个国土项目我会采用B/S技术和C/S技术相
结合的解决方案,然后采用oracle数据库作为存储端,B/S技术方面我会采用.net+arcgisserver技术平台来构建,C/S端会采用AE技术+CAD技术。然后这些系统之间的接口通讯采用WCF技术。
技术问题解决了之后我会考虑怎样搭建系统,也就是划分功能模块。这样一个系统的雏形就搞出来了,剩下的事情便是如何针对具体功能来实现代码了。
2)包含内容:技术选型(数据库,系统方式(B/S还是C/S)),接口通讯,模块划分。
3)保证效果:也就是我设计出来的东西别人能理解,1)书写文档:将其在概要设计说明书中体现出来(具体还没思考过)。
4)架构的设计会直接影响到整个的项目,而往往一个好的项目的架构设计一开始定下来的方案是比较大的,最好不改,那么在设计时应该尽量的耦合性性小一些。
2、答:
1)设计模式更多的是深入到类和接口的一个级别,应该属于详细设计上吧,这个确实不知。
3、答:
1)通过一些通讯方式,比如说WCF,webservice或者是socket接口等。
2)B/S基于internet,C/S属于局域网,两者之间在通讯协议上不一样,而且B/S需要建立网站服务器,C/S需要数据服务器,客户端直接访问数据服务器就成。而B/S则需要向网站服务器提出请
求,由服务器去访问数据服务器中的数据。
3)例如说国土、管网的系统之中的业务肯定有一些想关联的地方,比如说使用相同的地形图,那就需要获得相同的arcgis server服务。这个需要考虑设立公共的地图服务。
4)架构设计我觉得应该尽量的稳定而且扩展性强,但是粒度要粗一些。
4、答:
1)一种架构设计是对应着一个平台或者是系统的,这两者之间当然可以通用,是在划分模块上系统,而语言实现上有所不同。
5、答:
如何成为一个软件架构师,我觉得这要从你是否能够承担起以上的一些任务来说,你要知道如何的选取技术(包括数据库技术等),划分模块,如何的实现接口等。只要技术达到了就说明你
已经准备好了。然后就去寻找一份那样的工作。
6、答:
gis系统的软件架构,其实就是可以把地图这样一种展示技术,融入到一个管理系统当中,相当于一个独立的插件。而GIS数据的准确性以及GIS功能的实用性是设计系统时需要考虑的内容。
7、答:
要去了解业务,熟悉业务,从代码的功能实现上走出来,尽量去了解一些技术的长处和短处,学会选型。尽量多交流。每天的工作就是熟悉业务、分析框架、设计框架以及实现框架(这一点
要落实的计划上来)。
8、WCF我觉得就是webservice的升级,它可以帮助系统间实现有效的交互,当然j2ee中也有这样的东西,至于交互的形式也就是通过提供者发布一个这样的服务,类似于公布了方法(当然这
里面需要做一些设置),而使用者只要获得这个服务,调用方法就可以了。