使用時機在寫 async function 時,最容易搞錯的就是執行順序,然而在寫 async function 時,可以用 await 去解掉層層的巢狀callback 結構,但如果 async 內使用到 sync function,那該怎麼做? 實作方式在 sync function 包一個 Promise...
預估 Story Points 單位 衣服 Size 種類 (XS, S, M, L, XL…) 費氏數列卡片(Planning Poker) 怎麼開始? 數字越大代表越複雜,可以從先挑一個介於中間值的 Story 開始,然後再逐一針對每個 Story 給 Point。 針對預估不一致的 Story 進行細...
最近 Team 開始試 Story Points 來評估專案,所以稍微花了點時間了解一下。 預估我想從事軟體業,最難的一項就是預估,為什麼呢? 因為預估往往是針對從前的經驗,去推算出未來需要的時間,如果鋪一塊柏油需要2個小時,在相同大小的情況下,就可以很準確的預估出下一次所需要的時間,但是從事軟體業的技術日益更...
在一個目前維護的專案中,看到一個相依性很高的 code,似乎是一個很棒的例子說明過度設計這件事。 撰寫者的美意 是讓 controller 內,只有一行就可以發出不同狀態的通知信,但這樣的設計卻帶來更多的災難。一個好的設計是什麼?基本原則不外乎是,一次變動只需影響到一個地方,每個最小單元只做一件事,並可充分表態...
主動閱讀者要提出四個基本問題 整理來說,這本書到底在談些什麼? 作者細部說了什麼? 這本書說得有道理嗎?是全部有道理?還是部分有道理? 這本書跟你有什麼關係?有哪些你可以運用到自己身上? 為什麼對閱讀來說,做筆記是不可或缺的事? 那會讓你保持清醒 閱讀,如果是主動的,就是一種思考。 思考傾向於用語言表達出來...
有了 Mocha 之後,那也少不了要引入 assertion library,這裡就用 Chai 當範例。 原始碼下載
發散式變化(Divergent Change)一個類別做了多於它責任的事,應該把這個 function 搬到其他類別或獨立一個類別。 改變前 toXml 似乎不算 Account 的責任,而且 toXml 的邏輯,可以在其他地方也會用到,所以應該把它獨立出來一個類別或搬到它應該所屬的類別。 改變後 ...
歐付寶 ChoosePayment vs PaymentType
記錄一下最近抓到前人留下來的 bug,這幾個值是完全不一樣的東西,但在名字或值上非常相似。 訂單產生時機發生在發出去的 request PaymentType = 交易類型 aio ChoosePayment = 付款方式 ATM、CVS 或 BARCODE 的取號結果通知時機發生在被動收到的 respo...
sequelizejs HasOne vs belongsTo
兩個語法相當容易混淆,都是設為一對一的關聯,並可以使用 Shipment.getOrder 和 Order.getShipment 取到關聯的物件值,唯一不同在於實際外來鍵會存在 Shipment table 裡面。
什麼是 WebdriverIO WebdriverIO 是一個 open source 專案,用 NodeJS 語言所撰寫的測試工具,它讓你讓你只撰寫少許的 code,就能控制你的瀏覽器。 底層透過呼叫 selenium 去操縱瀏覽器行為 你的測試 code 將看起來簡單、清晰、易於閱讀,並可以整合 BDD ...
Page 8 / 15