最近在做一些开发测试代码的工作,就是为了测试中间业务程序,前头调用程序,后头写挡板程序,说白了就是链路调用,因为复杂度在中间的业务程序,所以前后两端的程序应相对简单。
这里就有一个问题:技术选型,或者说成是语言选择,这就上升成为了一个打嘴仗的话题,“世界上最好的编程语言是什么?”。其实大家都知道,没有最好,只是谁更适合而以,但把这个话题放在台面上讲时,就要维护自己的认知,或者说维护自己的学(面)识(子)了(相对熟悉,了解的语言)。
然归正传,这里通过配图也能看出,前端的调用程序,选用的是python,这里给出理由是简单,快捷,灵活,易变。因为作为调用端,其实有很多工具,比如大名鼎鼎的postman,也能在一定程序上达到效果,还有开源的测试工具JMeter,调用api也是没有问题的,这就说明调用方其实是简单的,成品工具就能搞定,还能搞的很好,如果要选一个语言作为调用程序,简单的编程语言就足够了,所以python就出现在了这里。
中间业务程序,是用c#基于.net core写的,像c#,java在业务领域,相对成熟悉一些,不但有OOP,设计模式的支持,各种组件,三方库的辅助,还有IDE的生产力协力,让他们更能出成果,这个没得说。
后端选用go,是因为go的并发能力更好,因为是挡板应用,要经得起狂风暴雨,甚至枪林弹雨,不能一波测试工具的压力来了就倒下了,或要扩展很多副本,占很多资源才能搞得住。简面言之,就是不为业务程序拖后腿,让做什么做什么。
当然,这样的选型也是和我们的中间业务应用的特点有一定关系,我们的业务程序几乎所有的重要api都经过一定的业务处理,到后端三方处理,所以就出现了:python mock客户端->c#构筑业务->go来模拟三方服务端的组合。