2018年前端工作小結,個人改變之旅,前端學習者的雜談

jiangqizheng發表於2019-03-02

2019·杭州

前端,兩年缺六個月。

換了一次工作,多了三兩個朋友。

也更懶了,但過去整整一年,或多或少要給出一個交代。

不再學習新的框架/工具

都9102年了,小孩子才做選擇,成年人都是all in。

或許是之前走的太倉促,光記得拍照發朋友圈炫耀了,來不及欣賞旖旎風光。

是時候故地重遊了。

開始持有一些原則。

原則,風格,以程式碼的形式體現。做什麼,不做什麼,如何做,怎麼做更好。自始而終,貫穿全域性,並通過持續的反饋來校準。

每一行程式碼都存在理由。

開始糾結命名

截圖

開始被業務開發所困惑

寫好業務程式碼比想象的更難

截圖

開始思考怎麼寫好業務程式碼的可能性

可讀性 > 效能

截圖

開始考慮對錯之外的事情,什麼是更好的,寫對=>寫好=>更好。

截圖
截圖

開始考慮程式碼質量的控制

截圖

開始相信方法論,並用方法論來量化學習進度。

截圖
截圖

以及

  • 開始認識到基礎的重要性,進而從零開始去學習計算機基礎知識。
  • 開始重新學英語

閱讀

分享一下最近半年翻看次數最多的幾篇文章

好像都是圖,字數有些少,我就摘錄點文字假裝很多字:)。


一、什麼是複雜性
Ousterhout 教授認為,軟體設計的最大目標,就是降低複雜性(complexity)。所謂複雜性,就是任何使得軟體難於理解和修改的因素。

複雜性的來源主要有兩個:程式碼的含義模糊和互相依賴。

  • 模糊指的是,程式碼裡面的重要資訊,看不出來。
  • 依賴指的是,某個模組的程式碼,不結合其他模組,就會無法理解。

複雜性的危害在於,它會遞增。你做錯了一個決定,導致後面的程式碼都基於前面的錯誤實現,整個軟體變得越來越複雜。”我們先把產品做出來,後面再改進”,這根本做不到。

二、複雜性的隔離

降低複雜性的基本方法,就是把複雜性隔離。”如果能把複雜性隔離在一個模組,不與其他模組互動,就達到了消除複雜性的目的。”

改變軟體設計的時候,修改的程式碼越少,軟體的複雜性越低。
複雜性儘量封裝在模組裡面,不要暴露出來。如果多個模組耦合,那就把這些模組合併成一個。

–如何降低軟體的複雜性?


邏輯就是問題的定義,比如,對於排序問題來講,邏輯就是“什麼叫做有序,什麼叫大於,什麼叫小於,什麼叫相等”?控制就是如何合理地安排時間和空間資源去實現邏輯。邏輯是程式的靈魂,它定義了程式的本質;控制是為邏輯服務的,是非本質的,可以變化的,如同排序有幾十種不同的方法,時間空間效率各不相同,可以根據需要採用不同的實現。

程式的複雜性包含了本質複雜性和非本質複雜性兩個方面。套用這裡的術語, 程式的本質複雜性就是邏輯,非本質複雜性就是控制。邏輯決定了程式碼複雜性的下限,也就是說不管怎麼做程式碼優化,Office程式永遠比Notepad程式複雜,這是因為前者的邏輯就更為複雜。如果要程式碼簡潔優雅,任何語言和技術所能做的只是儘量接近這個本質複雜性,而不可能超越這個理論下限。

–程式的本質複雜性和元語言抽象


寫在最後

回顧2017,時間能改變很多
2017年前端工作小結,個人踩坑之旅,前端學習者的雜談

對於2019,並沒有多少期望,只希望遇到更好的自己。

相關文章