巴拉巴拉原則代指各類使代碼更優雅的原則
寫代碼的人都但願代碼整潔漂亮,也確定搜索過很多文章,想要學到高內聚低耦合、開閉原則等等等等心法。可是真正動手開始寫時,把本身知道的各類技巧都用上,卻總以爲代碼並不符合這些原則。令人無故產生一種挫敗感:我懂得了這麼多道理,卻寫不出好代碼。前端
由於這是一個量變產生質變的過程。只有當你畫出最後一筆,你畫的人才看起來是我的。有一個單詞不認識和全部單詞都不認識是沒有本質區別的,可是所有單詞都認識的那一刻,就忽然能夠理解整句話了。只有當你鍵盤下的代碼的方方面面都足夠好,你的代碼纔是真正符合巴拉巴拉原則的。前端框架
而網上的大部分文章只會告訴你什麼是巴拉巴拉原則,卻對若是作到閉口不談。閉包
要作到這一點,必須審視本身寫下的每一行代碼:框架
……函數
等等等等debug
無數個這樣的小技巧組成了符合巴拉巴拉原則的代碼。設計
每一次應用這些小技巧,都致使代碼的巴拉巴拉指數增加了一點。當應用了世界上全部的這種小技巧時,就能寫出巴拉巴拉指數滿分的代碼。component
也就是說,這是一個積累的過程,當積累到足夠多的小技巧時,代碼就會趨於完美。element
畢竟,連大廠如Facebook,從mixin到High order component到render props到Hooks,連他們都在掙扎尋找實現巴拉巴拉原則的技巧。廣大業務代碼編寫人員以爲迷茫,更是很天然的事情。源碼
不過,不一樣於上面列舉的例子,也存在一些會顯著影響代碼質量的技巧。
目前前端框架,把數據和UI分開。更改數據,UI就會自動更新。這裏面缺乏了框架做者不會關心,業務代碼編寫人員卻每天面對的一塊:業務邏輯寫在哪裏?
以Vue爲例:
寫在Vue的組件裏會致使業務邏輯和UI強耦合,並致使業務邏輯被迫按照頁面的不一樣被分散在不一樣的UI組件中。
致使目前最多見的代碼寫法,不只不符合巴拉巴拉原則,反而符合反巴拉巴拉原則。
正確的作法應該是UI組件裏只存在UI相關的邏輯。業務邏輯所有寫到Vuex裏面,UI組件只負責發佈action和mutation高速Vuex改更新了。
這樣作,UI組件會天然按照設計師的設計分散在不一樣的組件裏。業務邏輯也會按照產品的設計分散在不一樣的Vuex模塊裏。並且,由於高內聚的業務邏輯代碼,本來因爲低內聚高耦合代碼致使的難以維護不復存在,寫新需求、debug過程會變得十分天然。
具體寫法,能夠去看看Vue-element-admin模版源碼。