前端自動化測試會遇上的坑
前端 UI 一直是多變且複雜的題材,經歷各種工具迭代與起伏,有很長一段時間其實並沒有什麼特別統一良好的方式進行測試。在經歷過太多次的跌宕變化過後,紀錄我認為現階段怎麼打造可被驗證的前端與未來趨勢與過程中實際遇到的各種困難。
前端 UI 一直是多變且複雜的題材,經歷各種工具迭代與起伏,有很長一段時間其實並沒有什麼特別統一良好的方式進行測試。在經歷過太多次的跌宕變化過後,紀錄我認為現階段怎麼打造可被驗證的前端與未來趨勢與過程中實際遇到的各種困難。
Understand the Iterator Protocol and Generator, and arrays benefit from the new iterator helper for lazy evaluation.
之前提到 JavaScript 的 Iterator Protocol:什么让 JavaScript 数据结构能够被迭代? 了解 Iterator Protocol 与 Generator,数组自然受惠于最近推出的 iterator helper 进行惰性求值。
先前提到 JavaScript 的 Iterator Protocol:什麼讓 JavaScript 資料結構能夠被迭代? 了解 Iterator Protocol 與 Generator,而陣列正是基於 iterator 實做,自然受惠於近期推出的 iterator helper 來進行惰性求值。
Have you wondered why arrays can be iterated (for...of) but objects cannot? Iterables rely on the Iterator Protocol to implement iterable data structures.
你有想过为什么阵列可以被迭代处理(for...of)但物件不行吗? Iterables 背后仰赖 Iterator Protocol 来实践可被迭代的资料结构。基于 Iterator Protocol 的概念更是伸展到 Generator Function 相关的知识点,可以创造更多特殊的资料结构。
你有想過為什麼陣列可以被迭代處理(for...of)但物件不行嗎?Iterables 背後仰賴 Iterator Protocol 來實踐可被迭代的資料結構。基於 Iterator Protocol 的概念更是伸展到 Generator Function 相關的知識點,可以創造更多特殊的資料結構。
Functor 的好處是:它讓我們能用同樣的方式操作不同的「容器型別」,想像成一個「裝值的盒子」,它允許我們對盒子裡的值進行運算,但同時又保留了盒子的結構。Functor 「提供了方式在容器裡操作值」,遵循同一性(Identity)與合成性(Composition)。
從先前 Functor 的概念出發,Functor 的 `map` 只能作用在數值上,而不能是「存在於容器中的數值」上,所以才需要 Applicative Functor,一種比 Functor 更多功能的結構,除了滿足 Functor 的功能外還能「讓盒子裡的函數作用(apply)到另一盒子的值」。
A coding style that emphasizes composing functions rather than handling specific data, defining functions without explicit parameters.
一种代码风格,着重于函式的组合关系而非具体资料,定义函式时不显式提其参数(points),而是透过函式组合与高阶函式来表达资料流动。可以减少不必要的命名保持代码简洁与达成更好的通用组合性,但是额外的抽象须被理解与熟悉。透过两个实际案例熟悉 Pointfree 开发风格。
一種代碼風格,著重於函式的組合關係而非具體資料,定義函式時不顯式提其參數(points),而是透過函式組合與高階函式來表達資料流動。可以減少不必要的命名保持代碼簡潔與達成更好的通用組合性,但是額外的抽象須被理解與熟悉。透過兩個實際案例熟悉 Pointfree 開發風格。
I'm not a mathematician and I'm not very interested in category theory, but it profoundly relates to advanced concepts of Functional Programming.
我不是数学家也对于范畴论没有太大兴趣,但它深刻的与 Functional Programming 进阶理念挂勾,透过实战了解开发层面这些理论可以如何撰写更好维护的程式。 Functor 是一种具有 map 方法的结构,允许对其中的值进行转换同时保持结构不变、让函数可以基于容器进行组合,意味着可以被用于封装副作用或情境。
我不是數學家也對於範疇論沒有太大興趣,但它深刻的與 Functional Programming 進階理念掛勾,透過實戰了解開發層面這些理論可以如何撰寫更好維護的程式。Functor 是一種具有 map 方法的結構,允許對其中的值進行轉換同時保持結構不變、讓函數可以基於容器進行組合,意味著可以被用於封裝副作用或情境。