【校招VIP】“推推”Java项目课程:产品原型:产品需求要点分析

VIP的服务,不一样的校招,大家好,我是校招VIP的大拿老师。今天呢我们继续来看商业实战项目推推小说详情模块的第一节课:产品原型。Java同学一定要理解产品在正式的商业项目里面有哪些功能点要去实现,也就是我们说的产品功能的理解,这个有些同学可能不太理解,因为没有参加过实习,也没有参加过实战项目,平时自己做项目就是个全栈,产品是自己,UI是自己,前端是自己,Java也是自己。但是这样做往往会有两个问题,第一个问题,你不知道应该做到什么样的地步,哪些功能必须完成,并且这样做难度也比较高。如果说在公司做实习,要做什么事情,你的导师一定会告诉你这个方案为什么不行,这个要要怎么做,只有这样做才能够完成这个项目后面设计框架的扩展等等等等。

所以这个在我们正式的商业项目里面是非常重要的,不像一些网课或者简单的培训班的课程它就是直接灌输你去做什么事,为什么做或者怎么设计你是不知道的,因为他是直接告诉你这么做就好了。你会发现这跟我们校招或者实习的面试就非常的冲突,因为面试对项目的提问是你为什么这么做,这么做下面是怎么做的,怎么实现的。它不是表面的东西,所以 你准备的东西越简单,想的越少你的面试通过率就越低。 但反过来讲,如果在一个公司里面真正让你做个事情,你必须要先想清楚,这个产品功能有哪些点是必须要完成的,也就是后面会进行的开发文档设计,有哪些功能点难度比较大,我就要把它先设计好,真的在做开发的时候,大家都不会花很大的时间去做无用功或者是翻工。

那么今天呢,我们看一下这个产品功能图,从其中总结出一些开发重点,用于下节课开发文档的设计。本期的产品原型图是提供下载的,大家后面可以进入到我们的项目群进行下载。

小说详情模块作为第一个功能模块它的页面比较少,就一个页面,但是一定要注意这个页面的功能重点会很多。 有些同学会有一个误区:认为我在简历上写一个项目,我想体现出这个项目多么的庞大,代码量多么的大,会写一些github网址,但是注意在校招甚至在社招的技术岗开发岗面试里,不会有面试官去看你的代码,因为通过提问,通过对你简历上要点的提问,可以很清楚地知道你的开发能力怎么样。所以说一定要走出这个误区,你的提问点一定是项目模块的难点,我有哪些点是面试官觉得可以提问的,你哪些地方的设计或者开发是比较强的,就去提问这个点。所以一定要注意要点,尤其是在面试环节,在面试环节一定是要点大于规模,一定要提问题,有很多人写了很多的模块,但是面试官一看,又是个后台管理,又是个什么什么,他没有提问题,没有提问题你写再多也是没有用的。

这个看似简单的页面,对我们Java同学来说功能还是比较复杂的,首先有些基本信息模块比如它的封皮,那封皮怎么存储,我们开发要想清楚;标题超出一行要省略,但是这个跟我们Java没什么关系,因为这是前端展示规则,我们要考虑的是数据库设计的时候这个字段多长;作者名称是产品要给出来的;小说类型对方没有给出来,产品文档里面会给出,我们就做六种主要类型,因为现在我们处在创业阶段,没有必要做二三十个分类。那样的话数据就比较的分散,看起来不好看,所以早期会做少数的几个要点。但是这个时候问题就来了,如果是只有六个分类,我们怎么去在代码中实行,它是放在数据库里面,还是放成枚举还是怎么样,所以这里看似简单的一个功能,但是为了更好地扩展或者使用它,它的设计点就会很清楚。 所以在校招阶段大家一定不要去说这个功能看起来很复杂,又用什么框架用什么云服务,那个其实都不是考点,因为你做了这个东西,你也掌握不到位,面试官提问的深你也答不上来,提问的浅表现不出你的能力,一点用没有,所以很多人就是光自己看着好看,但是一点竞争优势也没有因为你的面试官是工作多年的Java工程师,当然知道这个地方对学生来说不能理解,但是在工作中这个东西很经常用,那它就是你的亮点,假如你一个学生知道工作中常用的一些东西,而且这种技巧是其他学生不会的,那就很棒了。

OK,下面是一个订阅功能,它是订阅和反订阅,那么这个数据库设计是一块,然后多少人已订阅;简介部分默认显示三行,这个在我们数据库里面就不要存储完整版的了,而且他要求是非富文本,那所以这个时候我们后端在进行录入或者存储的时候就可以直接去富文本,直接录的时候就把它富文本给下掉,为什么不能有富文本呢?因为它总共就展示三行,然后你这里面还有回车换行,这个样式就会很丑,所以这个地方是个功能点。大家知道什么叫富文本吗?就是回车、大小写、颜色、不同的字号,这个叫富文本。那么这个过程可以在后端做,可以在前端做,但是因为这个是通用功能,我们干脆在后端去存储的时候,就把数据库里面就存一个非富文本,但是长度就要去算。这个时候我们产品没有给出来,开发可能大概知道一行可以放30个字的话,我冗余一下,我最多可以放100个字就够了,多余就截断就好了,因为它最多就到三行。 有同学说为什么前端页面产品功能不做个展开收起呢,那这个大家如果感兴趣的话,可以去看一下产品的课程。

大家一定要注意开发同学一定要懂产品逻辑,产品就是我们整个开发的技巧,不懂产品的开发不是好的CTO。因为数据库设计,包括扩展性,一个好的开发,资深开发,他对产品的未来发展一定是要比较清楚的。然后呢,核心在最后更新时间,这个是一个时间点,这个怎么显示我们Java同学不关心,这是前端同学的逻辑,然后最后更新章节就是最后展示的更新时间;阅读呢我们自己不做,阅读是蹦到第三方去,因为版权的原因,所以说工作很简单。

但是这个地方会有一个性能上比较大的问题啊,产品同学也会给出来,但我们开发同学更要理解这个事儿:就是这个页面呢,每天可能小说的更新时间比较确定,比如说每天的十点或者是下午五点或者六点或者晚上,那么在这个时候呢,有些人因为他关注了这本小说,你在没有给他发通知的时候,他就可能已经过来点开这个页面了,而且绝大多数人会在你发送了一个更新通知后过来访问,那这个时候这个页面的压力就会很大,如果你这个整个页面都在不断地更新,但是缓存又失效了,为什么缓存失效了,因为你的缓存存的是老数据,你不知道章节有没有更新新的内容,那这个时候就会出来问题是吧?我就要去进行一些核心功能点的设计,这个时候怎么提供接口能让它的访问量在一天只有两分钟或者五分钟访问量这么大的情况下,在那个时候我怎么去解决性能的瓶颈和压力,这个功能点我们是要清楚的,在后面的开发文档设计的时候,我们就要重点去解决这个问题。

所以说看似一个比较简单的功能点,但是它至少会有两三个难点,一个是去富文本怎么去富,第二个是我的这个少数的固定分类怎么设计,第三个点,在性能压力之下怎么避免整个数据不断重复拉取,而且是数据库读取嘛,因为你现在是在更新嘛,但是它就在更新前后,你也不知道更不更新,所以这个时候去读,直接读缓存肯定是没有用的,因为你要读最新信息,但这个时候访问人数有很多,同时有100个人或者1000个人,甚至1万个人访问的时候压力就会非常的大。

OK,那么这就是这期的产品功能,大家对产品功能有个了解,我们下一节课会开始进行开发文档,也就是开发要点以及解决方案的实现,大家对这个产品原型图如果有需要的话,或者对这个产品逻辑或者开发了解的话可以进入到我们的校招VIP项目大群,大家可以进去讨论一些开发的问题。

如果是大家想走实习模式的话,也可以关注校招VIP的小程序去报名线上实习,线上实习和课程的模式对比在课程的前面已经讲过,大家可以按照自己的需求去选择,今天的课程就讲到这个地方啊,我们下节课再见。

posted @ 2022-12-30 17:46  校招VIP  阅读(50)  评论(0编辑  收藏  举报