GA GTM tutorial from scratch

首先到Google Tag Manager
建立一個Account

然後看彈窗的提示來埋code
還特地叫彈窗出來,好貼心
埋好之後創一個GA4

創完之後資料不會馬上有,要等等

切回GTM,把GA4加進來

點New Tag

反正我就全選惹
發現有加進企惹
有按鈕就會想點,點一下Submit
之後按Publish
大功告成

然後點一下之前連過來的GA4,給它加上這個Trigger

看網路教學說把

ChatGPT

在React裡用querySelector的ChatGPT

這幾天嘗試用ChatGPT來寫自己不熟的框架和功能,發現也沒有那麼簡單,程式也不一定能順利run。扎實的學習、技術的穩扎穩打還是很重要,某方面來說有點放心,這也是我喜歡的學習方式。

而且ChatGPT有時候還會回答錯的答案,不能儘信。有時候好用沒錯,但也要有能分辨是非的能力,不能把它的話當聖經。

Continue reading ChatGPT

Master the Coding Interview: Data Structures + Algorithms

Master the Coding Interview: Data Structures + Algorithms | Udemy

udemy上買的,為了熟悉演算法買的課。教得還不錯,英文講得也清楚!

《Big O and Scalability》
JavaScript有提供一個方法來mesure程式跑了多久。

let t0 = performance.now();
let t1 = performance.now();
console.log( t1-t0 + 'milliseconds')

比較兩台電腦哪個跑得比較快是沒意義的,因為電腦的效能不一樣。這時候就要看Big O了。
a runtime is simply how long something takes to run

導入React Testing Library到webpack+react+TypeScript專案裡

  • 首先安裝好Jest
npm install --save-dev jest @types/jest
  • 接下來安裝RTL
npm install --save-dev @testing-library/react
  • 為了用useful matcher,安裝jest-dom
npm install --save-dev @testing-library/jest-dom
  • 因為Babel跑TypeScript爛爛的,作者建議安裝這個(下面這個我還沒裝)
npm install --save-dev ts-jest

如果你的JavaScript檔案有用到Babel,那你還需要安裝這個咚咚

pnpm i babel-jest -D

安裝這個讓 jest 看得懂測試檔裡面的TypeScript

pnpm i @babel/preset-typescript -D

參考jest搭配TypeScript的安裝備置。記得在babelrc檔也要加進去

這樣加下來發現跑測試訊息不一樣了,說render有問題,查了一下是React Testing Library 還需要配置環境

所以就安裝下面這個

pnpm install --save-dev jest-environment-jsdom

接下來訊息又不一樣惹,說我的App沒有用Provider來包
Error: could not find react-redux context value; please ensure the component is wrapped in a ….
改一下就好了,太簡單就不講了。


接下來測試過了,只剩下一些fetch什麼的API的問題

ReferenceError: fetch is not defined

針對這點查這這篇文章之後,就安裝個這個套件然後加到setup檔就解決了

pnpm i whatwg-fetch -D
參考他給的專案連結
在我的jest-setup.ts加上去


然後大功告成 ~~天啊還蠻簡單的啊

然後發現有的方法用起來會有紅波浪。
TS2339: Property ‘toBeInTheDocument’ does not exist on type ‘JestMatchers ‘.
結果安裝一個奇怪名子的套件就解決了…看它名子怪怪的本來都不想安裝的。而且還不用去eslint配什麼東西,超…超幹
Property ‘toBeChecked’ does not exist on type ‘Matchers<void, Element>’ · Issue #442 · testing-library/jest-dom (github.com)

pnpm install --save-dev @types/testing-library__jest-dom
連expect都有了,本來輸入不會自動補完
下面那個 eslint-plugin-jest也有人建議安裝



之後來做假資料。

pnpm install msw -D

Cypress v.s. Selenium

Cypress

  1. 用JavaScript寫,寫法很簡單
  2. 可以mock API
  3. 是一個framework,不用再安裝一堆阿哩拉雜的
  4. 不能測手機(?)
  5. 只能在同一個domain跑,不能再跳到其它domain(真假)
  6. 不能切換Tab(幹我selenium就切好切滿)
  7. 不支援Iframe

這是聽udemy講師說的,還需要查一下新版本是不是真的是這樣