如何快速写一个后端系统

0.12字数 1701阅读 293

用半个月快速从无到有,上线了一个叫“当季好货”的小程序。这个平台上只卖当季的好东西,货源也都是我们亲自挑选和把关。而且每单都会发红包(还有几率爆出大红包),自己不用可以分享给你的朋友。你分享商品给朋友,他购买了,你会有佣金;你的朋友再分享出去,又有人购买了,你和你朋友都有佣金。如果你申请成为平台的大使,还会有额外渠道奖金。

今天的目标是总结下过去2周的开发过程。J2EE的开发对我而言还是不那么趁手,作为一个前iOS开发,加上已去年底写过一个工单系统的后台。这些年形成了一个习惯,就是经常问自己,能不能再快一点,再高效点,以及如何去做。这次慢在什么地方?如何在下次更快!以下是这两周的思考:

对Java语言必须要熟悉

这个就不用说了,这是必须的。这次开发,语言并没对我造成障碍。

有个趁手的IDE环境

我用的是IDEA。现在VS Code呼声也很高,之后会尝试一下。好的IDE环境,必须有好的调试体验,集成版本管理,编译,静态检查... 之前用Xcode,所以IDE环境还是大同小异的。

能搭建简单的分布式系统

在阿里云上使用SLB作为所有网络请求的入口,然后进一步分发给服务器;知道使用阿里云OSS管理静态资源;也可以直接使用阿里云RDS进行数据库管理。这样可以将静态资源服务、数据服务、业务逻辑都分离开,同时SLB负载均衡可以做到有必要的时候进行服务器的横向扩展。

系统从搭建开始就要服从可分布式原则:数据要隔离出去,用户登录session必须保持到缓存中;定时任务必须要能加分布式锁,防止之后代码部署到多个服务器上,同时都触发了定时任务。

这方面我还需要进一步去了解,阿里云的其他服务:比方日志系统。

有个可以运行的框架

Mave工程+SSM框架+基于Shiro的账号和权限管理框架。Mave可以用来进行依赖包管理,非常方便。SSM框架有了后,写代码就像玩填空题那么简单。所有系统都需要账号和权限管理,所以Shiro可以帮到大忙。

这里要提一点,这套基本框架必须是要纯净的;从别人那儿拿来的,那是别人的。一定要自己动手配置一遍,对这套基本框架的内部要了解的清清楚楚。之后要做什么小修改也就手到擒来。

特别要提一下MyBatis-Generator,这个工具非常方便的自动生成对应Model,DAO和Mapper。在这次开发里大大提升了我的效率,虽然当时花了几个小时去找到这个工具。

其实这套框架里的每样东西都要非常熟悉:Spring,Spring MVC,MyBatis,Shiro。也许现在你能用起来,如果深层次原理不懂,后面一定会在某一天狠狠教训你。比方这次,Shiro里配置用Redis作为缓存,我一直不明白原理。导致忽然要到Redis来缓存商品列表时,就踩了坑。

对接第三方系统

经验告诉我,每次对接第三方系统都不是那么顺利。这次开发有对接了:

-- 小程序消息模板推送。

-- 小程序微信支付。

-- 小程序授权获取用户信息。

-- 获取管理服务号关注状态。

-- 服务号自动回复。

-- 阿里云OSS的对接。

幸好其中有些对接在之前工单系统中就做过。其他部分,团队里有个小伙帮我都做好了调试。后期只要直接嫁接上。

其他标配功能

用户行为追踪:刚一上线产品经理就开始追问我一个事,能不能看到用户点击事情的统计。这就叫用户行为追踪,已经成为了一个标配。后期会去找个开源框架。

接口访问统计以及日志分析:因为是通过SLB访问的,所有可以打通阿里云日志,做到保存所有访问数据。统计和监控系统健康状态。

熟悉业务

虽然平台上目前就3款产品,可它就是个电商系统。电商的哪些核心逻辑一个都少不了:商品管理、规格和库存管理、用户管理、订单管理(发货,退货)、支付管理(支付,退款)、财务系统(商户和用户的财务流水,提现)、统计、安全。

如果一开始就有一套这样的系统,开发起来会更快。比较电商核心的那些功能,万变不离其宗。

其他功能设计

安全性:保证网络传输的安全性;保证用户资金数据安全,可以用加盐的方式。这是这次不足的地方。

关于测试

这是这次不足。必须要熟悉如何多单元测试;并能对系统进行负载测试,我用JMeter简单压了下首页。

各种工具

Postman:可以测试你的接口。

IDEA:好用的开发用IDE环境。

浏览器:火狐或Chrome。

UltraEdit:文字编辑器,我通常用来检索日志。

SecureCRT:连接服务器,部署工程。

Navicat :连接数据库。

rdm:查看Redis。

sunny:内网穿透工具,我就用这个来调通微信支付的。

计划:

1,逐步把项目里共有的代码抽离并开源。

2,搭建一套通用的电商核心功能系统。

最后呢,推荐下“当季好货”小程序。大家扫描进入,购买会有惊喜。


推荐阅读更多精彩内容