见面
昨天是大年二十九,晚上从北京回来的M同学,找我约饭。
从北京给我带了礼物,还请我吃饭,感谢。
我们约定晚上5点在我家附近的饭店,M同学提前半个小时到了,给我发微信,我没看到,正在睡觉(订了闹钟,4点40才起来),抱歉。
M同学的情况
这个M同学就是我上篇文章里提到的李同学的那个聪明又勤奋的同桌。
当时班级结业的时候,我感觉他可以在北京找到10k的工作,但当时可能他是刚刚毕业,对自己不够自信,最终签的公司没有给到这个价钱。
M同学签的是一家北京上市公司,中国软件百强企业,公司3~4千人。平时工作很忙,经常加班到晚上10点。进入公司之后,被分到了一个公司利润最高的产品部门。这个产品,他公司是从2008年开发的,做了有10年之久,客户遍布全国各地。
他的项目
这个产品因为开发得比较早,使用的都是JAVAEE中比较陈旧的技术,Struts2+iBatis,开发环境是eclipse,和当时我教他的框架和开发环境都不同。我当时上课讲的是SpringMvc+Mybatis,开发环境是IDEA,所以刚进公司的时候,他觉得比较吃力。再加上公司的产品已经开发了10年之久,业务比较复杂,数据库表有上百张,平均字段数目超过10个,代码超过10w行,前端一个页面的js代码有几千行,后端一个service类里面的一个方法超过3千行代码(我们课上讲的Service层,因为没有复杂的业务就是一个摆设)。所以导致M同学刚接触这个项目的时候,感觉压力山大。
他工作中掉进的又爬出的那些坑
刚去的时候,M同学接到第一个任务是做一个表单,表单上填写内容,发到后台,存入数据库。这样一个简单的任务,M同学搞了2天还没搞定,主要是对Struts2框架不熟。还有一个多个报表导出到excel的功能,需要用到的技术是POI和java反射。这2个知识当时我课上没有讲,M同学顶着巨大的压力,靠自己查资料,3天搞定。说到这里,M同学谈到了对我的思念。因为平时上课的时候,遇到什么问题,我指点一二就解决了。M同学说工作之后,没有人可以问,老员工都不爱帮他。这个需要M同学想开点,工作了之后,每个人都有自己的任务,不可能耐心的帮你解决问题,要不断提升自己独立完成任务的能力。M同学工作中还遇到一个问题,记录用户操作日志,很简单的插入语句,但是就是无法在数据库中成功添加记录,憋了2天,求助老员工,发现是数据是模拟的情况下,发生异常。而这个操作是放在一个事务当中,没有提交成功,发生了回滚。另外一个困惑了M同学的一个技术问题是,在一个前后端分离的SSM小任务中,访问html格式的项目主页总是报404错误,后来也是在高手的帮助下,发现是没有添加静态资源的拦截放行配置说明。其实M同学上面遇到的几个问题,我在课堂上都有讲到过,只不过当时自己没有亲身体验,印象不够深刻。
他的生活
M同学住的地方离公司不远,做地铁半个小时。一个200平的房子,被分成了10个房间,租金1.5k/月。合租的室友,平时基本没有什么往来。早上8点多出门,晚上10点多到家。很少吃早饭,因为觉不够睡。室友和同事很少北京的土著,都来自全国各地。年龄的差距和地域的文化差异使得大家平时很少交流。M同学有一段时间因为工作的压力,开始失眠,需要吃安眠药才可以入睡。近一段时间,开始掉头发,可能是工作内容比较烧脑吧。独自一个人在北京打拼还是很不容易的,主要是孤寂。还好,我们是搞技术的,对技术的专研可以让我们暂时忘却其他的事情。
他目前的状态
M同学说自己现在有点迷茫,工作的劲头也不像刚来的时候了,主要是对整个项目的把握还不够,还没理解自己做的是什么东西,代码缺少文档,同事间又缺乏分享(我感觉在北京这样发达的地方,很多人还是那么的冷漠,还有保守的心态在,不够open,怕别人比自己优秀,在公司超过自己,抢了自己的优秀员工称号,其实还是目光短浅,有空我再对这个话题展开说一篇)。
他的收获
M同学入职半年多以来,因为公司今年的效益不好(主要是新增了一个部门在人工智能领域投入了研发成本),所在的部门已经裁员9名开发人员,有一些是工作了几年的老员工。所幸M同学没有在被裁之列,这和M同学的能力和努力是分不开的。M同学说一直记得我说过的一句话,“在公司不要偷懒,工作完成了,马上汇报,申请新任务”。这样虽说很累,但是有机会做更有技术含量的工作,能得到更多的锻炼,获得更多的提升。据说M同学在公司的年会上得到了领导的认可。
给M同学的建议
归根结底,M同学迟迟不能消化当前的项目,主要是知识的广度还不够。瓶颈不在于技术,而在于业务。M同学做的项目是4A (认证Authentication、账号Account、授权Authorization、审计Audit)统一安全管理平台解决方案
1)集中帐号(account)管理
为用户提供统一集中的帐号
管理,支持管理的资源包括主流的操作系统
、网络设备
和应用系统
;不仅能够实现被管理资源帐号的创建、删除及同步
等帐号管理生命周期所包含的基本功能,而且也可以通过平台进行帐号密码策略,密码强度、生存周期
的设定。
2)集中认证(authentication)管理
可以根据用户应用的实际需要,为用户提供不同强度的认证方式,既可以保持原有的静态口令
方式,又可以提供具有双因子认证
方式的高强度认证(一次性口令、数字证书、动态口令
),而且还能够集成现有其它如生物特征等新型的认证
方式。不仅可以实现用户认证的统一管理,并且能够为用户提供统一的认证门户
,实现企业信息资源访问的单点登录
。
3)集中权限(authorization)管理
可以对用户的资源访问权限进行集中控制。它既可以实现对B/S、C/S应用系统资源
的访问权限控制,也可以实现对数据库、主机及网络设备
的操作的权限控制,资源控制类型既包括B/S的URL
、C/S的功能模块
,也包括数据库的数据、记录
及主机、网络设备的操作命令
、IP地址及端口
。
4)集中审计(audit)管理
将用户所有的操作日志集中记录管理和分析
,不仅可以对用户行为进行监控,并且可以通过集中的审计数据进行数据挖掘,以便于事后的安全事故责任的认定。
image.png
M同学,上面我标注红色的术语,看看项目的代码里是如何对应实现的,或许可以加快对代码理解
另外看看以下2方面的内容,或许对于理解4A平台有帮助
百度 RABC
百度 oauth2.0
https://blog.csdn.net/jing12062011/article/details/78147306
对我教学的思考
以后要加强和毕业学员的沟通,收集,提炼他们在实际工作中的遇到的案例,在讲解一些知识点的时候,以这些真实的案例举例,使得他们在工作之后可以少走一些弯路。
对M同学的新春祝愿
身体是第一位的,要保护好;心情是很重要的,要调节好。项目吃不透,别太着急,慢慢来。
网友评论