发表于: 2017-11-23 23:35:16
1 642
今天完成的任务:
一、看一下需求的第二部分。
文学部
文章表
id user_id 文章标题 封面 分类 作者 摘要 收藏数 点赞数 发表时间
验收标准
1.在一级背景图上面可以看到文学部,对背景大小可手动缩放,滑动并且可以查看全图。点击文学部进入文学文章界面。文章分为banner文章和列表的文章。列表中可以看到文章标题、封面、分类、作者、摘要、收藏数、点赞数、发表时间。banner图每3s滑动一次。
方案:这个界面没啥好说的,就是现实到前端就好了,需要内容就根据原型图,展示出来。
2.列表页的发表时间:1天之内都用小时来展示 - eg:6小时前;1天之外用日期来展示 - eg:2017-01-02,列表标题展示限制10字之后...。摘要展示限制25字之后…。列表以10条数据为一组进行“点击加载更多”。每加载一次刷新再次加载10条数据。没有数据时底部提示“已加载全部文章”,再点击“已加载全部文章”提示说明“哎呀,没有了,别点啦”。有文章点击则跳转象相应的文章详情下进行阅读。
方案:每一个视频都是有上传时间的,我们每一次进行页面访问的时候,都获取一下当前的时间,然后去和上传的时间对比一下,做减法,如果=0,就是1小时之内,=1就是一小时之前,=2就是两小时之前,但是这样也太麻烦了吧。。。分页可以和前段沟通一下。
3.点击列表页数据跳转相应的详情页。详情页展示文章的标题、发表时间、分类、作者、摘要、收藏数、点赞数。可在文章详情页对文章进行点赞和收藏。点击“收藏”成功提示“收藏成功”;取消提示“取消收藏”,收藏成功之后列表页的心也会变成收藏的状态。
方案 :显示各种信息就传数据到前端。对文章进行点赞和收藏的话就需要在用户表里面添加一个字段就是收藏视频和收藏文章,然后点赞的话就将点赞文章和视频的id添加到字段里面。(这一块也是有点疑问的,感觉太笨重)取消收藏怎么做呢??
4.后台点击侧边栏内容管理下的文章列表,即可看到文章信息的管理,列表会展示文章的序号、标题、封面、分类、作者、摘要、收藏数、点赞数、状态。分类分为banner文章(轮播图文章)和card文章(列表文章)。列表可对文章进行查看、编辑、下架、搜索的操作。用户数据1页展示10条数据,超出换页展示。列表数据按照上架的时间倒叙排列。
方案:后台也是显示数据,然后编辑查看是正常的,下架上架通过状态的字段来改变。上架时间倒序排列可以用ORDER by
5.可对标题(限制25字之内)、作者(限制14字之内)、分类(全部、banner文章、card文章)、状态(全部、上架、下架)、点赞数、收藏数条件进行搜索。点赞数、收藏数搜索只限填写数字,后者不许小于前者。列表1页展示10条数据,超出换页展示
方案:这里通过不同的字段来查找暂时还没想到应该怎么去做这个。。
6.点击“下架”按钮则弹窗提示“是否下架该文章?”是:提示下架成功;否:弹窗消失,展示当前列表。点击“上架”按钮则弹窗提示“是否上架该文章?”是:提示上架成功;否:弹窗消失,展示当前列表。
方案:下架就是改变状态
7.点击“新增”按钮根据文章的标题(限制25字之内)、封面(上传文件在5M以内) 、分类(banner文章、card文章)、作者(限制14字之内)、摘要(限制28字之内)、正文进行添加。底部两个按钮分别为“取消”、“保存”;点击“取消”按钮弹窗提示“确定取消编辑文章内容?”确定:弹窗消失回到列表页,取消:弹窗消失,仍留在当前页面。点击“保存”按钮弹窗提示“文章内容保存成功”。
方案:新增的话就是添加数据库一条记录,但是文章内容这一块还是有点疑问的。是应该直接写在数据库字段里面呢还是用云来上传呢?
二、看基础。
三、听老大讲课
主要是听到了怎么让自己的代码变得好读,复用性更强,扩展性更好。
首先怎么判断代码是好是坏
1.当前的需求用多久写好。
2.若果有改动又要多久?
3.函数的代码是不是超过了50行?
4.Controller里面最好不要有私有方法。
然后是怎么样才能使代码达到整洁的效果
数据和代码分离。
1.我们写的函数里面最好不要有闲置的变量声明,代码里是没有具体的数据的,而是通过一个变量来操作过程,然后在配置文件中赋值。
函数都是对数据加工。包括输入,处理数据,输出。中间的过程是处理数据。
2.好的代码不需要注释。如果需要写注释去解释代码,说明代码很low。
可以使用函数名,来可以分辨出函数作用,见名知意
3 Service 层中的互相调用最好不要有三层,先简单,再聚合,先将服务分为不同的几个由web调用,如果需要有聚合的需求,就再去合并,并且最好使用金字塔形状,由上到下。。
最好在Controller中写出像伪代码一样的内容,看到就知道什么。
前端相当于一个大的view层,负责显示数据,前端来自己组合数据的显示方法。
后端相当于一个大的model层,只需要负责传递数据。后端会将所有数据都传给前端
但是这样会导致运行的太慢,影响性能。所以如果返回数据没有太多,性能影响没有那么多,就可以使用这种方法,可以将需要的数据打包起来上传给前端。这算是优化。
4. 抽象的方法
private:在类里面使用方法。再类里面可以复用。-------最好不要用,意义不大。
util:复用性。没有任何业务逻辑。
Service 和util 相似,但是是包含业务逻辑的。
程序员需要去思考把公共的部分抽象出来几个工具类去实现。
5.重构。效率体现在不断重构,重构的时候会发现自己写的一些重复的部分,然后可以去继续抽取。持续性的重构。另外重构不是重写,不能影响代码的功能。
最后是做一个项目的流程
需求讲解。在这个时候程序员就应该自己过一下整个的项目应该怎么去实现,不需要细化到写代码,但是需要足够的广,考虑各种方面的问题。每个story都要知道需要怎么做。
方案设计。不超过三天
方案设计的时候一定要清楚自己每一个到底怎么实现,数据库的表应该怎么去建。
不清楚自己做的时间是因为没有做过这些事情,在做项目的时候需要自己做过会的东西,做项目不是学习。所以办法就是应该在方案设计之前就去了解到需要的技术,然后自己做一次才知道需要多少时间。
重构代码:之前写代码的时候考虑不够周全的地方,可以去继续完善。
测试:对整个代码进行性能的测试,保证代码运行是没有问题的。
最后:
在代码质量和交付时间之间,一定是代码优先,不能将烂代码随便的交付。
风险因素的产生:
所有会导致不稳定的时间。比如,不了解某个技术,不能控制自己的时间。
明天计划:
准备小课堂。做复盘评审ppt
遇到问题:
方案里面一些问题,要和pm问一下。还有一些技术方面的没想到怎么实现
收获:
方案过了一遍,听老大讲代码整洁收获挺多的
评论