左耳聽風 第二十四周

左耳聽風 第二十四周

每週完成一個ARTS: 每週至少做一個 leetcode 的算法題、閱讀並點評至少一篇英文技術文章、學習至少一個技術技巧、分享一篇有觀點和思考的技術文章。(也就是 Algorithm、Review、Tip、Share 簡稱ARTS)

Algorithm

對「字符串匹配」以及「DFS 深度優先」、「BFS 廣度優先」的知識做一些題鞏固一下
LeetCode 102. 二叉樹的層次遍歷
LeetCode 804. 唯一摩爾斯密碼詞
LeetCode 559. N叉樹的最大深度

review

What Is Clean Code?

「什麼纔是整潔的代碼?」

這篇文章實際是對《代碼整潔之道》(原名:Clean Code)的觀後感。作者分享了自己所認爲「整潔的代碼」應具備的幾個原則:

1、Clean code is simple.過於聰明的技巧最終會變成作者自己的技巧,長期來看,這削弱了產品的價值。

2、Clean code is readable.整潔的代碼應該是可以閱讀的。在代碼要去有意義的變量名,遵循代碼規範。

3、Clean code is considerate.整潔的代碼應當是考慮周到的,需要考慮將來的擴充和維護。

4、Cleand coed is tested.整潔的代碼應當是被測試過的。誰也無法保未經過測試的代碼不會在下一秒出錯。

5、Clean code is praticed.整潔的代碼應當被練習過。整潔的代碼應當是一種習慣而不僅僅是應付工作。

6、Clean code is relentlessly refactored.整潔的代碼應當不斷被重構。

7、Clean code is SOLD.整潔的代碼應當遵循 SOLID (面向對象設計 5 原則:單一責任、開閉原則、裏式替換原則、接口分離原則、依賴倒置原則)原則。

《代碼整潔之道》也是長期霸佔軟件工程書籍榜首的書,每一個程序員都應當仔細的閱讀這本書,因爲它所傳達的不止是爲什麼要設計整潔的代碼,更多的是編程以及實際生活中所需要的工程思想。

Tip

最近在閱讀《ASP.NET MVC5 高級編程》這本書,裏面提到了對於 XSS(跨站腳本攻擊)的一些技巧。

首先介紹一下 XSS 跨站腳本工具主要的兩種方法

1、被動注入。直接在頁面上輸入代碼,通過系統數據庫呈現在網頁。

2、主動注入。把自己僞造的表單代碼嵌入網頁,讓用戶將隱祕的信息提交到自己的服務器。常用於留言評論。

其實都是因爲沒有對用戶輸入的信息進行編碼和過濾,要注意,所有用戶的輸入都是未知且不可信的,黑客也是「用戶」的一種,只不過可能不是我們喜歡的。

對於用戶的輸入,我們可以通過 「HTML 編碼」、「Javascript 編碼」以及第三方安全工具等,對於用戶的輸入進行編碼驗證,避免惡意的 XXS 攻擊。
ASP.NET 4 有現成的工具:Html.Encode、Html.AttruteEncode、Ajax.JavaScriptStringEncode 以及 AntiXSS 庫幫助我們預防 XSS 攻擊。

share

字符串匹配基礎入門

對字符串匹配中最爲常用的「BF 算法」、「RK 算法」進行學習和實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章