https://avatars.githubusercontent.com/u/6058558

程式狂想筆記

有關程式 N+1 問題

最近在做複雜的 API
由於 PM 覺得某一個 JSON 屬性調整
結果需要改好幾隻程式 API
不過有查到可以使用GraphQL | 一种为你的 API 而生的查询语言
但這篇不是重點在 GraphQL
而是我探索某一篇 阻碍你使用 GraphQL 的十个问题 | 咀嚼之味

它就像是一顆無限向下延伸的樹。所以在我看來,GraphQL 更應該叫 TreeQL,當然在圖論裡,Tree 就是 Graph 也沒毛病啦。需要注意的是,這也會引出 「N + 1 problem」 的話題——naive 的 GraphQL 服務端實現會讓這段 query 變得異常慢!

看了一下內容,N+1 問題就有像一個查詢每一行執行 SQL
如下

1
2
3
4
5
SELECT * FROM `song` LIMIT 0, 20;
SELECT * FROM `singer` WHERE `id` = 1;
SELECT * FROM `singer` WHERE `id` = 2;
SELECT * FROM `singer` WHERE `id` = 3;
...

奇怪,這個怎麼讓我想到 ORM 也是這樣
所以我查了一下 ORM 真的也有這個問題
由於最近也想開使用 ORM ,所以進入前想了解之後使用上會遇到什麼問題
這邊只會先整理

Android在Chrome做Debug封包方法

之前只會用 Fiddler 做 Android Debug 工具
但當沒有同網段網域的時候,就不會很方便處理問題
前陣子有人推薦用 Android Studio 工具
裡面的 Network 可以看Inspect network traffic with Network Profiler | Android Developers
但感覺…殺雞焉用牛刀
最近聽到 Chrome 插 USB 也能用 Debug!!!

設定crontab排程時區小記

最近因為要設定 crontab 時區
但主機時區不是台灣時間
但程式是台灣時間
但這時候控制排程可能就會有時間差的問題

Git刪除Rmote Branch方法

之前就有類似寫過刪除 remote 分支方法
但今天想開出來紀錄
有時候刪除 remote 分支
但是我發現我本機上面可以看到刪除的分支(git branch -a)
要怎麼解決呢?