用半个月快速从无到有,上线了一个叫“当季好货”的小程序。这个平台上只卖当季的好东西,货源也都是我们亲自挑选和把关。而且每单都会发红包(还有几率爆出大红包),自己不用可以分享给你的朋友。你分享商品给朋友,他购买了,你会有佣金;你的朋友再分享出去,又有人购买了,你和你朋友都有佣金。如果你申请成为平台的大使,还会有额外渠道奖金。
今天的目标是总结下过去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,搭建一套通用的电商核心功能系统。
最后呢,推荐下“当季好货”小程序。大家扫描进入,购买会有惊喜。









网友评论