由來
接手PGC視頻,類似于接手一個新項目萌丈,對很多東西不了解赞哗,這時候開始追憶,導師讓我看之前視頻的東西時浓瞪,沒有靜下心來好好看懈玻,說多了都是一把辛酸淚。接手一個項目前乾颁,學會了解這個項目涂乌,具體方法請百度
坑坑坑,爬爬爬
后來就是各種入坑英岭,各種爬坑湾盒。最后發(fā)現(xiàn)我們的QA說到的坑,幾乎都被我撞上了诅妹,默默地膜拜QA的美女帥哥們罚勾,崇拜的眼神~~。
列舉一下入的坑:
編碼
編碼這個坑以前沒遇到過啊吭狡,當時QA跟我說過這個點尖殃,就想糊弄過去也沒放在心上,結(jié)果划煮。送丰。。出來混總歸是要還的(捂臉哭)弛秋,應(yīng)該聽QAmm的話器躏。就不描述我的慘相了,說說坑和爬坑蟹略。
- no1: mysql數(shù)據(jù)庫中對應(yīng)的那個表登失,用的是utf8編碼,而不是utf-8編碼挖炬,傳進去的漢字應(yīng)該是utf8編碼的
- no2:video模塊中的編碼之前貌似是gbk揽浙,需要在service/Video中對新加的方法設(shè)置一下編碼格式。有人提醒我這么做了,我直接進行設(shè)置捏萍,并沒有什么效果太抓,反而刪掉后編碼格式對了空闲。具體為什么會醬紫令杈,需要后續(xù)研究,看來video編碼這塊有個大坑碴倾!
封面id
不多說了逗噩,直接上代碼:
if($arrInput['channel_id'] > 0){
$arrVideoInfo['ext_attr']['channel_id'] = $arrInput['channel_id'];
$arrVideoInfo['ext_attr']['video_format'] = $arrInput['video_format'];
$arrVideoInfo['ext_attr']['thumbnail_picid'] = $arrInput['thumbnail_picid'];
}
從代碼可以看出,thumbnail_picid/video_format兩個字段與channel_id耦合在一起了跌榔,寫代碼時沒多想异雁,順手就把他們放一起了,自己給自己挖坑僧须。
返回值
照例纲刀,來一盤香噴噴的代碼片段:
$arrOut = Tieba_Service::call('video', 'savePGCData', $input, null, null, 'post', 'php', 'gbk');
if(null == $arrOut || !isset($arrOut['errno']) || Tieba_Errcode::ERR_SUCCESS != $arrOut['errno']){
Bingo_Log::fatal('mis/service/xiaoying call video savePGCData fail. input:['.serialize($input).'] out:['.serialize($arrOut).']');
}
調(diào)用的方法里有一段是醬紫的:
$arrOut = self::addPgcDelivery($input);
if(null == $arrOut || !isset($arrOut['errno']) || Tieba_Errcode::ERR_SUCCESS != $arrOut['errno']){
Bingo_Log::warning('video call video addPgcDelivery fail. input:['.serialize($input).'] out:['.serialize($arrOut).']');
return self::_errRet(isset($arrOut['errno'])?$arrOut['errno']:Tieba_Errcode::ERR_CALL_SERVICE_FAIL);
}
從上面的代碼可以看出,當$arrOut有問題時担平,才會有返回值示绊,沒有問題時不進行處理,這怎么行暂论,這邏輯有漏洞啊面褐,然而我就是這么善于自己給自己挖坑。于是改成:
$arrOut = self::addPgcDelivery($input);
if(null == $arrOut || !isset($arrOut['errno']) || Tieba_Errcode::ERR_SUCCESS != $arrOut['errno']){
Bingo_Log::warning('video call video addPgcDelivery fail. input:['.serialize($input).'] out:['.serialize($arrOut).']');
return self::_errRet(isset($arrOut['errno'])?$arrOut['errno']:Tieba_Errcode::ERR_CALL_SERVICE_FAIL);
}
return self::_errRet($arrOut['errno']);
填坑完畢
其他
不好意思取胎,沒想起來那么多展哭,想起來再補上:)
反思
導致上述狀況的原因:
不得不說之前一直精神懈怠,這次的項目很認真地去做了闻蛀,然而還是不如人意匪傍。一方面是項目坑多,不好測觉痛;另一方面也是自己能力的問題役衡。針對這兩個沒說的:項目坑多、不好測秧饮,就積累這方面的經(jīng)驗:在接手一個項目時映挂,學會如何去了解這個項目,并一步步落實盗尸,在測的時候不要亂用數(shù)據(jù)柑船,胡亂測一通,應(yīng)該有方法地去選擇數(shù)據(jù)泼各,比如這次有很多權(quán)限和粒度控制的問題鞍时。下次接手一個項目時,先百度一下,如何接手一個未知的項目逆巍,然后再去做及塘。