2019·杭州html
前端,兩年缺六個月。前端
換了一次工做,多了三兩個朋友。shell
也更懶了,但過去整整一年,或多或少要給出一個交代。編程
都9102年了,小孩子才作選擇,成年人都是all in。框架
或許是以前走的太倉促,光記得拍照發朋友圈炫耀了,來不及欣賞旖旎風光。工具
是時候故地重遊了。post
原則,風格,以代碼的形式體現。作什麼,不作什麼,如何作,怎麼作更好。自始而終,貫穿全局,並經過持續的反饋來校準。性能
每一行代碼都存在理由。學習
寫好業務代碼比想象的更難 優化
可讀性 > 性能
分享一下最近半年翻看次數最多的幾篇文章
好像都是圖,字數有些少,我就摘錄點文字僞裝不少字:)。
1、什麼是複雜性 Ousterhout 教授認爲,軟件設計的最大目標,就是下降複雜性(complexity)。所謂複雜性,就是任何使得軟件難於理解和修改的因素。
複雜性的來源主要有兩個:代碼的含義模糊和互相依賴。
複雜性的危害在於,它會遞增。你作錯了一個決定,致使後面的代碼都基於前面的錯誤實現,整個軟件變得愈來愈複雜。"咱們先把產品作出來,後面再改進",這根本作不到。
2、複雜性的隔離
下降複雜性的基本方法,就是把複雜性隔離。"若是能把複雜性隔離在一個模塊,不與其餘模塊互動,就達到了消除複雜性的目的。"
改變軟件設計的時候,修改的代碼越少,軟件的複雜性越低。 複雜性儘可能封裝在模塊裏面,不要暴露出來。若是多個模塊耦合,那就把這些模塊合併成一個。
--如何下降軟件的複雜性?
邏輯就是問題的定義,好比,對於排序問題來說,邏輯就是「什麼叫作有序,什麼叫大於,什麼叫小於,什麼叫相等」?控制就是如何合理地安排時間和空間資源去實現邏輯。邏輯是程序的靈魂,它定義了程序的本質;控制是爲邏輯服務的,是非本質的,能夠變化的,如同排序有幾十種不一樣的方法,時間空間效率各不相同,能夠根據須要採用不一樣的實現。
程序的複雜性包含了本質複雜性和非本質複雜性兩個方面。套用這裏的術語, 程序的本質複雜性就是邏輯,非本質複雜性就是控制。邏輯決定了代碼複雜性的下限,也就是說無論怎麼作代碼優化,Office程序永遠比Notepad程序複雜,這是由於前者的邏輯就更爲複雜。若是要代碼簡潔優雅,任何語言和技術所能作的只是儘可能接近這個本質複雜性,而不可能超越這個理論下限。
--程序的本質複雜性和元語言抽象
回顧2017,時間能改變不少 2017年前端工做小結,我的踩坑之旅,前端學習者的雜談
對於2019,並無多少指望,只但願遇到更好的本身。