发布日期:2022-05-13 18:08 点击次数:192
0x1、杂谈人妻在卧室被老板疯狂进入
(1)为什么要重构上传库?
我司APP在上传图片/视频前,需要进行一系列惩办,终末才上传,如:
图片:判断旅途是否存在→通过Exif信息判断是否需要旋转→判断是否需要压缩→取得MD5→要是开启秒传查询是否有秒列传录,有获胜复返→莫得才上传→上传完成对应现象更新;
视频:判断旅途是否存在→判断是否需要压缩→要压缩的话压缩→取得MD5→取得视频第一帧→判断是否需要压缩→要压缩的话再取得一次视频MD5→雷同是秒传考证→上传完视频传第一帧图片
随后,章子怡蹲在路边喂儿子喝,。一开始她的儿子一直不肯喝水,章子怡只有耐心的蹲到和儿子一样高的高度,面对面的劝着儿子。由于蹲着的缘故,章子怡的短裤显得更短,双腿十分白嫩抢镜。哄了好一会儿,儿子才勉强喝了水,也看得出章子怡作为一个母亲多么的体贴有耐心。
机场造型:帅气阳光更暖男,洪欣儿子可以出道
有的学生写字可能就比较工整人妻在卧室被老板疯狂进入,有的学生写起字来却很是凌乱,其实这和一个人的性格有着很大关系。
有些业务场景的惩办更复杂,Talkischeap,showyouthecode,出现这么的代码很平日(局部):
成绩于rx链式调用,上述代码是照旧简化后的一版了,不错联想没rx前的就更错杂了,对写的人来说包袱,对看的人来说亦然,重构大势所趋...
(2)不重构的话有其他低资本小数的决策没?
答:有,在上头代码的基础上优化,把flatMap抽取为单独的功能函数,按历程调用,虽然,也不算太优雅。最优雅的应该是上Kotlin协程,写几个挂起函数,同步神气写异步代码。虽然,问题也有:一丢丢的学习资本和不可在Java里用。
0x2、需求拆解
原始需求人妻在卧室被老板疯狂进入
写个图片上传库,给你一个土产货图片旅途、一个上传接口,完成图片上传。
小白视角
通俗,库都无谓谢,获胜写个UploadPicUtils器具类,界说一个上传方法就好了
光速敲完代码:
objectUploadPicUtils{funuploadPic(picPath:String,serverUrl:String){valpic=File(picPath)if(pic.exists){//本质集结上传操作(如调用OkHttp获胜传)//附近rx或EventBus奉告上传成果,亚洲欧洲日产国码无码av给出奏效、失败响应}}}//上传图片处调用:UploadPicUtil.uploadPic("土产货图片旅途","上传接口")
看着挺通俗的,但独一不变的是变化,需求频频是除旧布新的~
因为公司不舍得买图片加水印工作人妻在卧室被老板疯狂进入,是以客户端传图片前土产货要加下水印;
BUG:有用户用我方手机拍照,上传后的图片却旋转了,上传前要检查下,歪了的要摆正;
BUG:有用户响应上传图片太慢,一滑查图片太大,工作器顶不住,上传前要做下图片压缩;
某些图片尺寸有限定(X*Y),尺寸不合的不可上传;
秒传功能,md5一样的文献传过就不要传了,获胜复返地址;
复旧同期上传多张图片;
咫尺不啻传图片了,还有传视频、音频、文献、文献夹等场景...
然后代码就形成上头这么的成果,写的人看了默默人妻在卧室被老板疯狂进入,接盘的人看了抽搭。
是以,在拿到原始需求时,不要上来就肝代码,而是对需求进行拆解、分析、假定和思考。
果然只上传图片吗?后头会不会要传其他东西,如音视频?
要做图片灵验性校验吗?如:存不存在,大小是否为0,文献时势为图片类型等;
库需要对上传图片做什么非常的惩办吗?如取水印、翻转、压缩、切割、尺寸校验等;
是否要复旧多张图片同期上传,最多若干张同期传;
是否要复旧秒传;
不同手机系统版块或确立文献取得API兼容;
上传接口地址是不是一直变化的,是否需要鉴权,是否有特定上传树立;
上传任务在后台异步进行,照旧前台同步堵塞,上传半途能否取消;
上传任务中断了(杀掉APP)是否需要保留程度,下次掀开APP重新传;
上传失败是否需要重试,最多重试次数若干;
上传任务是否还有优先级等;
虽然,不要想着一下子就给出完好谋划决策,完整的功能终了人妻在卧室被老板疯狂进入,受限于谋划者的架构教授和有限的排期,先给出一个八成的、基础可用的决策,有一个迭代的基础,再逐步进行优化,最小化可行居品。