--課程已於 2020 年 11 月更新--
課程說明
✅ 組合( Composition ) vs 繼承( Inheritance )? 你會明白的。 建立自己的 Web 框架? 你會做到的。 使用 React / Redux 的 Typescript? 課程也有包含!
——————–
✅這是線上學習 Typescript 最好的課程。
其它所有線上課程都會教你 Typescript 的基本語法和特性,但只有這門課程會告訴你如何將 Typescript 應用到實際專案中,通過範例指導你如何構建大型成功的專案。
✅ Typescript 是 Javascript 的”超級集合”。 這意味著如果你已經知道了 Javascript,你就可以開始學習這門課程了。 在 Javascript 中增加了幾個重要的特性,包括一個型別系統。 這種型別的系統旨在幫助您在開發過程中捕獲錯誤,而不是在執行程式碼時捕獲錯誤。 這意味著通過在開發早期捕獲 Bug,您的生產率將提高一倍。 但是除了型別系統之外,Typescript 還提供了一些構造大型程式碼庫和編寫真正可重複使用程式碼的工具。
✅ 僅僅通過閱讀文件來精通 Typescript 是一個挑戰。 雖然您可能知道什麼是”型別化陣列”或”介面”,但是文件(和其它課程!) 不會告訴你要在哪裡使用這些功能,或者如何有效地使用它們。 本課程的目的是幫助你理解每個 Typescript 功能存在的理由,以及在哪裡使用它們。
✅ 頂尖的公司急需 Typescript 開發者。 如今一些最大的網頁應用程式正在用 Typescript 開發。 僱主們正在爭先恐後地尋找能熟練掌握這一尖端系統的工程師。 透過課程給你一個其他工程師少擁有的獨特技能,建立紮實的 Typescript 知識將使你更容易被聘僱,
✅ 打算開發自己的應用程式嗎? 使用 Typescript 可以幫助你從一開始就正確地構建你的專案,確保你不會在公司的某個關鍵階段被技術債壓垮。 在本課程中,您將學習如何編寫可重複使用的程式碼,特別強調利用類別和介面來建立可置換的”widgets”。 您將能夠飛快地重新配置您的應用程式,只需要最少的努力以建立廣泛不同的功能,
✅ 向一個曾參與過世界上最大的 Typescript 專案之一的人學習。 在我自己的專業專案中,我開發了一個基於瀏覽器的開放原始碼編輯器 Theia 的外掛。 Theia 專案在規模上絕對是巨大的,包含了成千上萬行的程式碼,都是用 Typescript 寫的。 多虧了 Typescript 的力量,這個專案才能成功。
但是不要僅僅相信我的話——看看這門課的評論吧! 您將看到其他工程師,就像您自己一樣,已經取得了巨大的成功,並對如何構建可擴展的 Web 應用程式有了新的理解。
https://softnshare.com/typescript-the-complete-developers-guide/
網頁原始碼 框架 原始碼 在 Kewang 的資訊進化論 Facebook 的最佳解答
這一系列文總共有三篇,這是第二篇。
上一篇解決了 social network 抓取 head tag 裡面的 title, og data 等問題,但其實還有 search engine 要解決,因為 social network 只看 head,但 search engine 除了 head 以外也會看 body,所以這篇要來解決 body 一模一樣的問題。
傳統的 web 開發方式通常是一條龍開發 (你就是那條龍!),後端取得資料庫的內容,然後組成 HTML 之後丟到瀏覽器上顯示。現代的 web 開發方式通常就是一個前端配一個後端,後端專注於把資料送給前端,前端專注於取得資料後在瀏覽器上面顯示漂漂亮亮的。而傳統方式稱為 server side rendering (SSR),現代方式就稱為 client side rendering (CSR)。兩者開發方式各有優缺,蠻多文章有提過,這裡也就不另外說明了。
比較簡單判斷 CSR/SSR 的方式可以直接在你想知道的網頁,按下 Ctrl+u (Windows, Linux) 打開原始碼,看看實際上顯示的內容跟原始碼是不是差異過大。如果網頁內容很豐富,但原始碼才十幾二十行而已,那可以很粗略的說這是 CSR,如果基本上一致那就可以說是 SSR。
而 search engine 就是靠著原始碼把網頁內容做索引,所以如果谷歌大神到 CSR 的網站爬網頁內容,最後爬到的 body 當然都是同一份內容,這樣子對於 SEO 上是不合格的,所以這裡就要分享一下 Funliday-旅遊規劃 是如何處理這塊的。
第一種方式,可以用 VAR 這三套前端框架各自支援的 SSR 方案來處理,像是 Nuxt.js, Next.js, Angular Universal,這些內容已經有許多前輩分享,這裡就不另外說明了。但要注意一點,就是導入這類的解決方案通常會影響到原本的開發模式,像是 webpack 跟 bootstrapping 的方式就一定會動到,小編是建議對框架真的很熟悉之後,再來用這方式會比較好。
第二種方式,就是這次的重頭戲 prerender 了。prerender 也不是什麼魔法,就是一句話「讓爬蟲看到它應該要看的內容」。如圖所示,當 Nginx 收到 request 之後,發現 user agent 是 googlebot 就轉送到 prerender service,如果是一般 request 就直接丟到後面原本的 web server。
而 prerender service 接到 request 之後,就執行 headless chrome (用程式控制沒介面的 Google Chrome),把原本的網頁用 CSR 處理完之後,再把 HTML 的完整資料傳回給 googlebot,這樣子就達到「讓爬蟲看到它應該要看的內容」的功能了。原本的程式完全不用改,只要在 Nginx 做處理就可以了,也是負擔相對較小的方式。
另外,用了 prerender 之後,原本第一篇為了 title, og data 所做的調整也可以拿掉了。因為 CSR 本來就可以改 title, og data,所以避免重複做一樣的事,app.get("*") 這個 route 裡面關於 metadata 的功能也可以直接刪掉了。
那為什麼還會有第三篇?因為 Funliday 實際在應用 prerender.io 似乎有些問題,所以我們就改成自己寫 prerender 了,原因下回說明。
* Prerender.io:https://prerender.io
#prerender #funliday
網頁原始碼 框架 原始碼 在 楓葉綠茶 Facebook 的最佳貼文
如果你真的在乎你的個資的話,就不該關閉iPhone上Safari的「詐騙網站警告」。
今天網路輿論又毫不意外的爆炸了,這次矛頭指向的是蘋果。
簡單敘述一下,很多網站都有詳細文章,雖然他們都做了很糟糕的建議,導致我不得不在一個遊戲類粉專發這篇文。
有網友指出蘋果在Safari的隱私權政策中表示,預設開啟的「詐騙網站警告」將會把使用者的IP和網址回傳給 「Google 安全瀏覽」和「騰訊安全瀏覽」,用以檢測是否為詐騙網站。
而且根據不具名網路部落客指出,在原始碼中,這兩個安全瀏覽會同時接收到資料。所以就結論而言,你的瀏覽紀錄、個資都已經被中共知曉了。
換瀏覽器也沒用哦,因為iOS上全部的瀏覽器都是基於Safari去做的,而唯一的解法就是關閉「詐騙網站警告」。
那些文章大概都是這樣寫的,我們來看看:
回傳IP,打勾。
回傳網址,打勾。
回傳給騰訊,打勾打勾打勾。
結論:蘋果是中共同路人。
嗯,全球大炎上,可以把蘋果烤來吃了。
我要再重複我的第一句話:
如果你真的在乎你的個資的話,就不該關閉iPhone上Safari的「詐騙網站警告」。
真的,誰關誰白癡。
接下來是工程師語言,看不懂請自己跳到結論。
首先,Safari是基於Webkit引擎開發的網頁瀏覽器,而Webkit是iOS唯一的網頁引擎。
這個引擎本身是開源的,你可以在很多地方找到它,比方說Github。
而一切的問題,就是出在Webkit的安全瀏覽警示中。
根據原始碼SafeBrowsingWarningCocoa.mm Line:40開始的那串。我們可以看到Webkit確實會去取得騰訊和Google的安全中心網址。
但是,這裡的判斷式是用二擇一的方式。
判斷的方式是根據SSBServiceLookupResult中的provider,如果是騰訊,就傳騰訊,如果不是,就傳Google。
至於寫入provider的方式和次數,沒寫,十之八九是封在系統框架中。
是根據手機語言、使用者IP、還是手機發售地來判斷,在蘋果說明之前都不會有人知道。
隱私權政策確實有寫到IP和網址「可能」會傳送給「Google 安全瀏覽」和「騰訊安全瀏覽」。
我個人對這個「可能」的解讀是,蘋果只是將隱私權政策整合成一個版本。
如果以騰訊的加入進程來看,騰訊安全中心更像是一個在中國的補充,畢竟在中國連不到Google的安全庫。
考慮到這點的話,這邊的「可能」指的應該是「根據使用者連網IP的不同,可能會使用不同的安全提供商」。
其中一個證據就是,這個SSBServiceLookupResult在iOS11之前是不存在的,而SafeBrowsingWarningCocoa.mm是在2018年11月15日被新增的。
其前身SafeBrowsingResultCocoa.mm則是在2018年11月6日正式加入對騰訊安全中心的判斷。
這個時期是iOS 12,蘋果特別強調Safari安全性的那段時間。
但,對,即便這是有根據的猜測,這依然是我猜的。
所以為什麼我會說誰關誰白癡?
不知道大家還記不記得以前的假登入頁面和有毒的跳窗廣告?
前者是透過設計和官方很像的登入畫面來竊取使用者的帳密。
後者則是簡單直白的網頁投毒。
而這個「詐騙網站警告」的功能,就是在防範這兩件事情,他可以在你點開網站的同時,確保你不會真的立刻連上並且受騙或中毒。
正是得益於這項功能的普及,讓有心人士無法透過這招來惡意詐財,才使得我們能夠更放心的在網路上亂逛。
他在某種意義上跟防毒軟體是一樣的。
而那些文章叫你關掉的意思其實就等同於:
為了防止一個「不知道是真是假」的個資洩漏事件,直接把自己的個資門戶大開。
讓任何詐騙業者都可以隨便透過一封詐騙簡訊或在FB廣告拉一個超便宜商品騙你進去,再用假登入頁面、假刷卡頁面或直接下毒的方式控制你的帳號或手機本體。
這才叫個資被竊取,好嗎?
所以,懶人包在這裡。
1. 蘋果在這件事情上有沒有跪中國→可能有,可能沒有。
港警地圖那件事我個人傾向有,但此案我認為沒有。
2. 怎麼辦,關掉「詐騙網站警告」嗎?→不准關,關了你才真的會被個資大爆射。
3. 防人之心確實不可無,反對企業向中共低頭妥協是大家普遍的共識。
但如果你連最基礎的個資合理授權都無法信任,那我想你還是別用手機信用卡這些會存放個資的東西了。
再說,中共要知道你的網路行動軌跡,跟本不用那麼麻煩。
畢竟,我們台灣就是一堆人死愛用小米跟華為手機。
不要說網路紀錄,你幾點幾分開了什麼app、打了什麼字,原則上他們都能log到。
最後順帶一提,其實前幾天爆出來的台北市教育局購置悠遊卡販賣機在個資爭議上也是同樣的道理。
我沒講不代表我不關心,只是這個專頁不適合去提這些事而已。
補幾個不知道有沒有機會增加觸及的tag
#Safari #資安 #個資洩漏 #蘋果 #騰訊
#詐騙網站警告
---
最後更新一下
有高手反解了SafariSafeBrowsing.framework,得到的結論是:
「只要你的iPhone地區不是設定為中國,就不會有任何影響。」
來源在這裡:https://hiraku.tw/2019/10/4963/
還有老外比他更早解出來,雖然解出來的內容不知道為什麼不太一樣,但結論是相同的。
來源:https://news.ycombinator.com/item?id=21242628
大概是這樣,既然有結論,那我內文應該不會再改了。
感謝大家提供的補充資料。