至暗时刻的一丝曙光:关于对接银行项目的一些感悟

2023-11-03 06:50

本文主要是介绍至暗时刻的一丝曙光:关于对接银行项目的一些感悟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 更新
  • 前言
  • 前期准备
    • 文档方面
    • 环境方面
      • 准备各式各样的离线资源包
      • 线上环境
      • 开发环境
  • 中期实施
    • 部署
    • 驻场开发
    • 系统对接
  • 后期
    • 孤独的开发工程师

更新

2020-08-24更新“后期”小节

前言

首先,这不算是一个技术类的分享,它是我职业生涯以来面临的少数除技术外较为棘手的业务场景,事实上整个项目的实施过程确实充满了曲折,一度让我有些抓狂甚至偶尔产生想要放弃的想法(值得庆幸的是也学到不少东西),故而记录一些开发过程的感悟。

前段时间,公司接到了一个银行的对接项目,一番沟通过后,由我来负责跟进这个项目。

以上是大的背景~

前期准备

嘛~在做之前首先需要了解一些银行的开发背景和需求,大致如下:

  1. 银行内部使用封闭式的开发模式
  2. 需要私有化部署
  3. 需要驻场
  4. 需要对接行内的各种系统
  5. 行内6点左右就下班了

做足了功课,那么继续往下推进~~

文档方面

跟行内的架构师讨论项目的部署方案,直观的感受就是,银行可真有钱…一套B类系统(就是非主要系统)。对方要求在两个城市分别构建数据中心,每个数据中心又分为云上云下两套服务集群。项目采用k8s进行部署,撇开配置不谈,一套服务需要的容器大概是15个,每个服务都要配置高可用。最低估算,按照要求光容器就要120个(原谅我没见过世面…)

以上属于口胡…

银行项目对文档要求十分严格,技术方案的文档是由我们这边提供,前前后后改了大半个月,大概改10来版(对,你没看错,这还只是我负责的一份文档),包括但不限于需求概述、现有系统架构和环境、总体架构(物理架构/应用架构/数据架构)、开发技术、网络硬件负载均衡设计、存储与备份设计、高可用设计、运维监控、安全架构

仿佛回到了2年前疯狂改论文的那段时光~~

编写文档的过程中,真心要吐血,但是也确实学到很多东西,由于很多东西不了解,编写过程中,要及时向这这方面的同事和行内老师及时请教。写完一版要先公司内部过一遍,在交出去。万一某项细节方面公司内部出现分歧就尴尬了。另外类似这种文档,一般要通过正式邮件发送,包括其他一些比较正式的文件都需要走邮件,这样比较符合规范,能够避免一些不必要的麻烦。

环境方面

刚才已经提到过,银行属于封闭式的开发模式,简单来说就是没有外网。最开始了解到这个消息,我心里就是咯噔一下,大呼不妙~
这里还有个前提,如果对方要求你连自己的电脑都不能带的话,那还是赶紧跑路……对于面向Google开发的程序员来说简直是毁灭性的打击。

准备各式各样的离线资源包

在去银行进行部署、开发之前,先把对方行内的系统大致了解清楚后,就可以开始着手准备各式各样的离线资源包了。这里要区分线上环境开发环境,就拿我这个对接的项目来说,主要是准备python相关的资源和一些前端资源。

线上环境

由于是k8s部署,我们只要准备好镜像包就OK了,包括前端镜像和后端镜像(吐槽一下银行导入资源必须得找专人,几百k/s的资源导入速度也很感人…)

开发环境

就是对方分配给你的开发机,需要搭建本地开发环境,这个要的东西就多了。如果能够自己带电脑的话,当然可以在自己电脑上进行开发。

但是这个开发机不能不管,甚至后面没有他会让你痛不欲生(别问我为什么知道的),因为之后与银行内部系统的对接调试,必须要通过这台机子来完成。

银行给到的机器的开发环境搭建是高优先级!!!

我们要准备的大概有python本体,一个合适的IDE用的顺手的开发工具(大多数情况下只能使用免费的,收费的不让装),其他数据库中间件(比如redis)的安装包。因为我很多年不用windows,而银行提供的机子又好死不死的是win8系统,开发环境搭的我人裂开来…

中期实施

部署

这个没什么好说的,需要吐槽下行内提供的容器管理平台超级不好用,以至于后面一直跟银行的老师申请kubectl的终端权限…

驻场开发

由于不能连接外网,开发过程中自然免不了驻场,这个光荣而又艰巨的任务当然是落到了我的头上。
此时你能够与外界沟通的唯一渠道就是手机,不要吝啬流量,开个热点给自己的电脑比什么都好…
开发过程最好是在自己的电脑上,这样效率是最快的,可以选择驻场期间进行对接调试,回公司进行快速开发(前期部分开发是在银行内部进行的,网络环境极差(只有手机流量),而且客场压力山大,与同事的沟通成本大幅增加,开发效率显而易见了,所以之后才考虑换成上面说的开发模式)。

系统对接

由于银行系统只能通过行内网络进行访问,系统对接必须要在开发机上进行,此时就体现出搭建开发机环境的重要性。

对接过程中,有两个比较重要的流程,一个是阅读文档,一个是沟通。银行的文档是我目前看到过的最为全面也最为复杂的。从开发的角度看,一篇文档有效信息大概也就20%左右。此时要多多注意快速提炼出需要的部分,其他的扫一眼赶紧过掉,不然读文档就要花掉非常大一部分时间。

银行的项目,大多数时候,你想要一个接口文档,对方却丢给你一份系统的文档,你想调他们的服务还得先熟悉他们的系统,这么蛋疼的事情最好不要自己一个人默默的做,尽量交给银行对接的人来负责(如果有的话,不,没有也得整一个出来)

沟通方面,尽量不要害羞(再次吐槽下银行的聊天软件,各种不好用),明确下沟通方式的优先级

当面聊 > 电话聊 > 微信聊 > 行内软件聊

打字聊天信不信对方可能几个小时都不会回复你一下(这个倒也不是只有银行这样)
另外沟通尽量在6点前进行,晚了银行的老师就该下班了…(匿名羡慕…)

跟自己公司的同事就不要客气了,有问题赶紧甩个电话过去就好。

后期

还处在中期阶段,持续更新中,希望项目能够顺顺利利的进行~^ _ ^~

孤独的开发工程师

20200804更新

太忙导致写文章的热情大大降低,很多想做的事情无限搁置ing…
努力寻找一个华丽的蜕变

开发进行到中后期阶段,本人也已经驻场快2个月了,长期独自驻场的感觉并不好,除开开会以外,其他时候一直是与世隔离的状态(银行这边只有我一个人,其他小伙伴场外援助,呕血…)

行内对接以、环境、资源申请等其他琐事多且漫长,加上行内的老师下班很早(6点之后基本找不到),故而个人的开发状态一直是白天忙银行的对接,晚上7点以后看文档,编写代码。

这是在前中期大部分开发任务都分配给其他同事,分摊了压力的情况下,目前来看,整个开发到测试的流程是撕裂的(行内行外两个世界,网络,系统,文档互相隔离),我这边需要小心翼翼的去维护和协调,这是拖慢工作效率的罪魁祸首

另一个原因是资源不够(指开发),根据行内老师的开发经验,系统对接前期需要投入大量的资源,之后在慢慢撤出,这一点很重要

最要命的是交付时间上卡的非常死,基本是每天车轮碾屁股的感觉。

总的来说,目前公司系统对接银行很吃力,咬牙坚持中~

在这里插入图片描述

这篇关于至暗时刻的一丝曙光:关于对接银行项目的一些感悟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/336365

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca