左耳听风 第二十四周

左耳听风 第二十四周

每周完成一个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 算法」进行学习和实现。

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