前兩天東找西找的,最後決定透過travisCI上的設定來把我們測試跑在CI上會炸掉的問題解決!
那我們今天來把之前開發上寫的隨性的東西給整理起來吧!
首先就從Transformer開始著手!
還記得當時因為使用的套件Helper和Laravel5.5的Helper函式相衝的問題嗎?
所以我們的transformer在偷懶的情況下直接做成了這樣!
<?php
namespace App\Transformers\Slack;
class PushAnimationTransformer
{
public static function transform($data)
{
return [
'author_name' => $data['authorName'],
'author_link' => $data['authorLink'],
'author_icon' => $data['authorIcon'],
'title' => $data['label'],
'title_link' => $data['directUri'],
'text' => $data['text'],
'image_url' => $data['imagePath'],
];
}
}
雖然乍看下好像很方便使用,直接PushAnimationTransformer::transform($data)
就可以用了,好像很magic!
但當我們的Transformer越來越多時,就會覺得這一切很Shit了!
所以我們參考了原本套件的transform,來試著組個介面,試著整理一下吧!
話不多說!PR!
這時一定會想問,我們這樣的效能會比較快嗎?
很明顯的,不會比較快!就像在原本的糖果上面包上了包裝紙,那麼就要多一個動作去撕開包裝!
但這讓我們方便管理,和使用!看起來也比較不會這麼雜亂。
也在Helper裡定義好了回傳一定要是array,所以在之後在開發上大家就照著這規則使用和建立Transformer!
public static function slackTransform($instance, array $date): array
定義好遊戲規則,那麼在兩人以上的合作專案就可以加快開發速度了!
也不會發生Transformer吐回來東西不一的問題(Collection?Array?)。
對有多重人格的開發者來說這也是和另一個我
彼此建立默契的方式啦!
反正效能這種東西齁~等到Timeout再說吧!