iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 22
0
自我挑戰組

用 laravel 尻出自己形狀的 line bot,還要撐三十天!系列 第 22

【第二十二天】來試著整理一下目前的程式碼

【第二十二天】來試著整理一下目前的程式碼

前兩天東找西找的,最後決定透過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?)。

對有多重人格的開發者來說這也是和另一個我彼此建立默契的方式啦!
https://ithelp.ithome.com.tw/upload/images/20171227/20107380phaCf8fJEH.jpg

反正效能這種東西齁~等到Timeout再說吧!


上一篇
【第二十一天】衝刺吧!Docker!還是TravisCI?
下一篇
【第二十三天】花生神模式!?
系列文
用 laravel 尻出自己形狀的 line bot,還要撐三十天!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言