公司实习(第一周)

本文记录了作者在实习第一周对智慧市政综合管理平台项目的认知。项目基于SSM框架,结合物联网、GIS和大数据技术,主要包括巡视模块。作者分析了项目代码,了解了SSM、数据库、缓存、加密和工作流框架等技术,并对巡视系统的业务逻辑进行了阐述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实习简介
所在公司:西安翔迅科技有限责任公司
实习期工作:熟悉市政平台,熟悉市政相关业务。
我于2019年12月30日,正式报到入职实习。很感激有这次实习的机会。

实习项目

智慧市政综合管理平台

已经完善升级过几个版本的市政平台。我实习所用为1.0-2.0版本。

项目基础认知

  1. 需求分析:
    核心为市政业务处理
  2. 概要设计:
    (SSM框架:Spring MVC、Spring、mybatis,snaker工作流框架,还要用到物联网,GIS,GPS,大数据)
    在已有的框架下做减法操作,找出要用的框架体系,开始构建基础的数据库表,第一步完善基础模块:含有物资、设备、部门等。
  3. 详细设计:
    进一步完善新功能,划分模块,在基础模块common之上分模块,module 细分功能。
    第一工期是完成巡视模块为主。
    现在使用率最高的模块为 ——巡视系统, 道路挖占 。
    产品概述在这里插入图片描述系统架构体系在这里插入图片描述

实习第一周感受

非常庞大的一个项目,耗时几年完成且不断推陈出新。我第一次接触庞大的项目。首先做的事情是认真分析代码。观察使用的技术有哪些。逐步理解认知一个完整的实用性较强的项目是如何完成的。我接触的是早些年的版本,但分工很细致,涵盖很广,已经较为完善。
各技术简介
框架:SSM 适用越来越轻量级配置,将注解发挥到极致,且ORM实现更加灵活(spring orm对象关系映射),SQL优化更简便。
项目部署用数据库:PLSQL Developer
ps:大学学习过程中用mysql比较多,plsql 更适合大项目使用。
缓存池:EhCache(早期版本)
连接池:c3p0
加密:MD5(含混淆码)
ps:主要是对于密码的加密,输入账号密码,本地保存或传输到服务器都可能被获取到;直接操作密码肯定是不安全的,直接将加密后的数据作为密码;这样就算得到用户密码的MD5值,也无法获取用户的密码,就算是管理员也无法得知用户密码。再加上混淆码。对于密码的安全性进一步提升。
虽然目前会被暴力破解,但过去该项目在内部使用的情况下,外部人为保密性较高,整体保密性较为不错。
工作流程框架:snaker
snaker,是一款非常轻量级的国产工作流框架,这就好比权限控制框架spring security与shiro,前者是spring大厂,除了security外提供其他非常强大的框架,而shiro就相当简单,学习成本也低。因此,也就好比Jboss JBPM与snaker。
早期整体项目因为内部使用,并发量不高,用户使用数相对缓和。多用于人工确认。

项目代码理解

src下四大类:

  • common
  • framework
  • mobile
  • module

开始项目第一个做的就是common,先完善基础表,进一步完善其他模块。
framework里多为工具类,框架,监听器等等。
mobile 目前学习不涉及此类。
module 模块 模块分类充分体现了,高内聚低耦合(实现方式:少使用类的继承,多用接口隐藏实现)此包共21个模块,涵盖页面表示的全部功能模块。

SSM框架:
表现层SpringMVC
 业务层service
 持久层mybatis
     sql

 pojo/domain—
    {      DB
			|
       	mapper
	     	|
	     service
	     	|
	  controller  }

controller.java 处理前台发送的请求
|
|
service.java 定义接口(业务逻辑)
|
|
serviceImpl.java 对接口函数进行实现
|
|
mapper.java Mapper接口,方法名与Mapper.xml(UserMapper.xml)中定义的statement的id相同
|
|
mapper.xml 写sql语句查询数据库

module 下每个模块总体所含有的包名

chart 图表
config
domain实体类(model,dto 范围)
mapper mybatis操作数据库的那一层,就是dao层
service 业务逻辑处理(接口) impl业务逻辑处理(实现类) 提供给controller
web 前端页面存放 常用 model
dao 数据库操作(接口)
job
vo 业务层之间的数据传递 数据库中表相映射的java对象。

ps:分类详细,使模块组合更为轻松,代码注释多,方便以后维护升级系统。良好的框架更助于项目代码完善。

业务逻辑熟悉

简单提及下其中的一个——巡视系统:
首先,确保工作人员工作时间在线巡视,巡视区域规划,GPS定位巡视人员,确保工作人员能够在工作区域完成任务。监听器监听,如工作时间下线,超过多少时间,记录。
其次工作人员发现情况上报,如道路受损,防护栏被破坏,井盖发生损坏,桥梁发生损坏等等。在线上报问题。
后台管理人员,确认问题来源,定位地点,分配人员处理维修。(道路抢占)被分配单位查询是否自己管辖内问题,如是,在期限内完成任务上报。如不是,反馈给后台人员阐明问题。
直至问题问题结束,一套完整的流程就走完了。
这其中的详细设计思路便是如此,仅仅一个巡视系统就可以被使用于安保或维护系统。
熟知详细设计思路有助于代码的理解。虽然老版本没用redis,分布式等技术。
但重在基础,重在实用,重在扎实!透过现象看本质,能理解代码的设计思路并能够修改代码,才是我逐步提升的现状。

接来下会继续学习,了解并学习不仅限于项目,更注重自我能力的提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值