企业项目开发的艰难过程

  • Post author:
  • Post category:其他


一个人的高考成绩,由过往三年的学习决定。我2020年从学校辞职。辞职前的三年时间,教学工作加上大量的编程,耗尽了时间、体力。除了教学工作、实验课、指导毕业设计,另外开发项目、升级改进项目。做过java版局域网联机对战游戏、仿王者荣耀游戏道具合成、复杂的休闲游戏,做安卓游戏、网页游戏,简易的在线考试系统。最后一次谈的项目,是java学校想做体育课补测管理系统,没来得及做。

当老师期间,各个项目的源码下载地址:



钢七连软件实战技术的博客_CSDN博客-钢七连软件技术慕课,java和设计模式,javaee和数据库领域博主钢七连软件实战技术擅长钢七连软件技术慕课,java和设计模式,javaee和数据库,等方面的知识正在上传…重新上传取消https://blog.csdn.net/weixin_42644456?type=download


icon-default.png?t=N5K3
https://blog.csdn.net/weixin_42644456?type=download


做这么多项目、不同技术种类的项目,提高了项目设计、开发能力。做项目耗费的时间精力,比教学工作更多,只能离开学校到企业。

当前项目是一个混合多种技术的架构:


mysql+javaee SSH/SSM+ JSP/Flutter 移动端/IOS 原生/移动端webview。


其他模块:定时任务、短信通知、环信消息、多种格式的云文件上传预览、


网络直播、


拉起手机浏览器、拉起腾讯会议,其他正在开发中的新功能


,在自制的消息模块、文件上传模块上拓展数据分析、数据挖掘;数据大屏



只看这个架构,就知道规模、难度、复杂性。艰难的开发过程。各种状况和返工、人员的招聘和离开,都是难题。更有其他技术之外的问题。这不是学生能理解的“软件项目实战”。

人们问我离开学校后悔不后悔。我的个人状况,肯定要去企业。这个项目是真难。

企业中的实战,第一天通知见客户,第二天双方谈需求,做与不做,难易程度、规模大小、技术选型、资金人力,怎么做?前期成果怎么办?舍弃重做,优化扩展?哪个任务优先做?挑了一个简单模块先做,做到一半,遇到了难题、新问题,怎么做?

书本以内的知识,少量代码的例题,是初学者要经历的入门过程。即使到了毕业设计,50个学生做50个不同题目的毕业设计,只是把一个简单技术重复50遍。有老师带领学生做大型项目,虽然好,只是提高了一点设计、开发能力,依然是初学者。一个人毕业后,如果要从事五年、十年软件开发,真正的实战能力,来自企业工作中的积累、各种新问题的磨炼。招聘程序员时,我问:你给项目加一个有竞争力的新功能,怎么设计,技术方案怎么实现?挑战复杂项目,在企业里做商业项目,真是重重考验。




一、项目简介



已经完成的具体项目功能,不能公开。通用的架构、功能点、技术要点,可以写一下。技术是通用的,公司项目不是这个,我按“拼单预约打车”来讲。一个人如果能开发一套完善的“拼单预约打车”系统,就一定能开发我们公司的软件,也能开发其他类似软件。

1


.软件架构:mysql数据库+javaEE后台+PC网页/手机网页/安卓app/苹果app。

2.用户角色:多位乘客、多个客服、多个司机、后台管理员。

3.业务情景:多位乘客先后打车,共同拼一单,等待多个司机接单,客服可以指定某个司机去接单。当客服让司机去接单时,司机可以选择同意、或者拒绝。一个司机可以推荐另一个司机去接单。乘客、客服、司机之间,可以互相聊天。

4.功能点(实际项目的简化版):

(1)乘客:注册登录,预约打车,添加多名乘客,添加司机,预约列表,预约管理,打车评价,关注收藏。

(2)司机:司机详情,我的订单,同意/拒绝预约,添加司机,日程表管理。

(3)客服:添加乘客、添加司机,向司机发出邀请、等待同意。

(4)管理员:各种数据的管理,用户权限管理,全局属性设置、开关配置。

5.模块组件:网络直播、短信通知、消息聊天、文件上传下载、图片预览、视频播放。




二、项目从0到1,技术架构和艰难的实施




过程



各种企业项目,都是标准的用户管理、角色权限、业务流程、业务数据管理、行为日志、消息通知、文件处理,加根据具体业务订制的特殊功能,加第三方模块。

目前的架构师是一个混合架构:


mysql+javaee SSH/SSM+ JSP/flutter 移动端/IOS 原生/移动端webview。

根据公司具体业务、量身订制的软件,先做一个简易版本,再逐渐完善,平时要多次评审测试、修改、返工。

最开始,我用JavaEE SSH+html/js、jq、JSP、ajax,做一个简易版本。然后评审、修改。

之后,其他程序员用JavaEE SSM做预约单列表、关注收藏、日程表管理、司机详情,用户权限管理。

上述功能,是手机版网页效果,使用微信扫码进入;管理员使用PC浏览器进入。

然后,用Flutter WebView加载H5,做安卓APP和苹果APP。使用Flutter Webview和JavaScript的混合交互,使用Flutter的手机文件上传、Flutter版环信消息。

然后,用IOS原生+IOS WebView加载H5,做了新版苹果APP。

数据库设计,用了一种不好的方案。

如果可以重来,我一定用mysql+JavaEE SSM+安卓原生/ios原生,并且重新设计数据库。

低代码平台、代码自动生成工具、前端模板,也许可以加快项目开发。

做一个后台灵活配置、可通用使用的应用系统,Discuz论坛模板就是一个优秀案例。




三、其他项目



JavaEE SSH版患者管理、疾病管理系统,SSM+Shiro+Activiti报销管理系统,都是经验教训。

新的功能是Python数据分析、数据挖掘,人工智能做曲线拟合、然后实现某疾病的智能诊断。



版权声明:本文为weixin_42644456原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。