🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

全職寫程式10年了

越來越覺得 程式設計就是三件事

type、abstraction、認知負擔管理

展開來講有點說不完 有空再談

稍微學過 functional programming 之後

會對 type 變敏感 有藝術、工藝上的要求

舉個例 我最近踩到一個 php/laravel bug

        $data = collect([
            [
                'name' => 'Location A',
            ],
            [
                'name' => 'Location B',
            ],
            [
                'name' => 'Location C',
            ],
        ]);

        $data = $data->filter(function ($item) {
            return $item['name'] !== 'Location B';
        });

        return response()->json([
            'success' => true,
            'data' => $data
        ]);

瀏覽器會拿到

{"success":true,"data":{"0":{"name":"Location A"},"2":{"name":"Location C"}}}

如果這樣

        $data = collect([
            [
                'name' => 'Location A',
            ],
            [
                'name' => 'Location B',
            ],
            [
                'name' => 'Location C',
            ],
        ]);

        $data = $data->filter(function ($item) {
            return $item['name'] !== 'Location B';
        })->values();

        return response()->json([
            'success' => true,
            'data' => $data
        ]);

瀏覽器會拿到

{"success":true,"data":[{"name":"Location A"},{"name":"Location C"}]}

前者很出乎意料 前端一定會爛掉 後者才是想像中的資料格式

這問題很雞掰 php 用久 難免會踩到

追根究底 在於 php 關聯式陣列 與 普通陣列 都是陣列

json_encode 會轉成物件還是陣列 要看索引是否連續 所以 type 不保證

workaround 就是用 laravel collection 加上 values()

幹勒 真的是有夠垃圾的


每週二 YT 直播 Q&A(可 Discord Call-in)
YT:https://www.youtube.com/@codelove_tw
DC:https://discord.gg/fvCF2whZ9D

⭐️ Shopify 技術教練(給工程師)
https://job.turn.tw/developer-coaching

⭐️ Shopify 接案服務(給品牌)
https://job.turn.tw/shopify-services

⭐️ 台灣 Shopify 開發者 LINE 群(非官方)
https://line.me/ti/g2/YUasX5K3CJ4QdIx76zppjHlh3-q8w-xkSyK1LA

共有 0 則留言


每週二 YT 直播 Q&A(可 Discord Call-in)
YT:https://www.youtube.com/@codelove_tw
DC:https://discord.gg/fvCF2whZ9D

⭐️ Shopify 技術教練(給工程師)
https://job.turn.tw/developer-coaching

⭐️ Shopify 接案服務(給品牌)
https://job.turn.tw/shopify-services

⭐️ 台灣 Shopify 開發者 LINE 群(非官方)
https://line.me/ti/g2/YUasX5K3CJ4QdIx76zppjHlh3-q8w-xkSyK1LA
🏆 本月排行榜
🥇
站長阿川
📝11   💬5   ❤️2
248
🥈
我愛JS
📝2   💬2   ❤️4
76
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付