前言
准备设计一款社交类app,从产品原型图,到数据库设计,到service api服务选型,到service api开发(前后端必须分离),到web后管开发,到app(android和ios)开发,再到微信小程序开发。
项目技术探讨
开发目的主要是学习,横向和纵向的学习。横向表示的是广度,涉及到产品经理、java开发、android(和java其实是一类语言)、ios、web、测试等方面;纵向是以当前项目为涉及到知识点(源码和设计思想)深入学习。具体如下:
- 原型图设计使用xiaopiu,线上操作,主要对当前工具熟悉即可;当然其他工具随你选;
- 本人是开发,这块只能说可以从用户感官去升华,界面尽量保持清爽大气!!!
- 根据原型图设计数据库,使用PowerDesigner工具;设计完成后生成mysql文件导入到MySql;
- 数据库方面的纵深,目前我想到的只是表和视图搭配。
- 后台服务器我使用springboot + shrio + redis;还使用springboot新建了一个专门上传文件的服务器(说的好高大上,其实就是网上copy一段代码,把服务启动一下就ok,简单一笔),这里的深入学习有的说了,罗列一下:
- spring系列源码的学习(据说spring源码烂的一比,但是还没有去看,所以没有发言权)
- shrio安全框架的源码学习:用户-角色,角色-权限;
- redis源码:我对redis理解相当于一个在服务器上的文本存取器;
- https系列:涉及到的是 前端 + 后端,不仅仅是源码,还有相关协议的梳理;
- nginx反向代理,jwt等等;
- web后管开发:vue(这块架构我慌得一笔,涉及到的源码估计够我看大半生,但是别着急,应用对我来说还算ok!!!)
- angular5 + angular-cli + typeScript + rxjs + bootstrap + adminLTE知识点,以及源码;
- android开发(终于到自己的强项了,前面说的都快哭了,这么多源码尼玛得看多少年):暂且考虑使用的是Dagger(基于2.38.1版本) + jetpack组件:
- Dagger2.38.1源码(目前为止我好想就这个源码看了,其他的都没有…来得及!!!)
- jetpack组件及其源码,该组件之一AAC之前追过一段时间,里面的liveData、room、paging源码一个个去学习;
- okhttp、图片展示、图片压缩等;
- ios开发,采用swift+swiftUI
- 对swift和swiftUI源码的解析;
-
微信小程序,使用vue开发;
-
开发完毕上架!!!赶紧上架,再吹下去我得窒息!!!
目标
现在想想确实紧张,太多的没学习,太多的没时间。这样会不会自己给自己太大的压力了!所以对自己有个短期目标、中期目标、长远目标。
在我们开发过程中有个先有后优的原则,什么意思?短期把最急切的完成,中期是把完成的部分对不理想或者有新思路进行迭代;长远目标当然是融会贯通,洪七公能把降龙二十八掌改成降龙十八掌源于贯通。
那我这里的学习目标:短期把当前项目完成,先上线再说;中期,如果过程中有更好的思想或者知识点可以迭代到当前项目中,并且在局部时间对知识点源码的点点攻克;长远目标 – 支持我项目的源码!!!!
我们开发的项目实际上就是对别人源码提供的api进行二次开发,或者我们仅仅只是代码的搬运工而已,我们用到的技术设计到的源码可以说每个都胜过我的项目百倍,所以我们必须通过对源码的学习去不断提升,这样才算真正的开发!!!
上面说的知识点非常多,而且非常广,其实语言之间存在贯通,没必要那么紧张,我们找准切入点(自己擅长的领域,或者自己必备的知识点)入手,点带线,线带面,多面成维。我非常希望自己成为维大神。
总结
任重道远,成功源于坚持!尽量保证每月2篇文章,并且保证项目源码也跟上来。