“老黃”談數據實時展示系統項目感悟

到現在公司完整做完的第二個項目,前後花了大概20多天已經基本完成。通過開發該項目讓我對前端利器JS有了別樣的認識,當然整個過程中依然是遇坑無數,但通過該次實踐讓我再次認清了編程的一條真理:“代碼是調試出來的,而動手是解決一切問題的關鍵”。

瀏覽器很強大

在開發該項目之前我一直有一個認識上的誤區,那就是儘量不要用js寫過多的業務邏輯,這可能和我之前的學習對象有關(主要學的是後端模板),我認爲業務邏輯應該儘量是在所謂的服務端來完成的比如Java端,頁面這種東西是跑在瀏覽器上的,瀏覽器這東西總感覺“不堪一擊”,很“孱弱”,用js寫大量的代碼,那樣瀏覽器會不會就無響應直接崩掉了呢?事實證明不是這樣的,瀏覽器遠比我們想象的要強大的多,在本次項目的開發過程中,我用js寫了大量的業務代碼,各種組件封裝,循環嵌套,邏輯判斷,最後程序運行的時候可以發現沒有絲毫壓力。所以如果和我一樣有這種顧慮的人以後必須要更正下觀念,那就是把JS完全當成是你之前的Java放心大膽的去寫吧,只要你不寫出各種Bug一切都絕不會有問題。

算法很重要

算法真的很重要,無論你是寫頁面邏輯,業務邏輯,還是數據分析,算法都至關重要。爲什麼說算法重要呢?因爲代碼是活的,好多時候你需要通過算法的思維進行創新,其實在聊編程的時候我一直在說一點創新,一個人可能對業界的常用框架用的行雲流水,寫了無數項目,但假如這些項目千篇一律都是簡單的對已有代碼的套用,每天干的都是模板化的編碼,以實現效果爲最終目的,我們只是會用框架,會寫頁面,這種項目即便你寫+無窮個,也遠不如從原生寫起,所有的算法邏輯自己實現,自己封裝,完成一個創新型的項目要有用的多。框架這種東西有利也有弊,雖然現在提倡的是敏捷開發,簡化編碼,覆蓋底層實現,但這種簡化本身就會讓編碼失去他應有的趣味性和藝術性,降低難度的同時也在剝奪程序員的創新精神和全局意識。試想同樣是寫一個網站,你用了別人封裝好的容器,確實減少了自己的工作量,而另外一個人則是從頭到尾所有的技術實現細節都是自己完成的,項目上線的時候雖然都很開心,但很明顯成就感是不一樣的,我要說的就是不要把可以用算法寫代碼的機會讓給別人,那樣雖然省事省力,但實際上是編程界的“核霸權”。

邏輯分析很關鍵

我之前在自己的一篇博客中提到過編程裏邊Bug的解決有如偵探破案的推理,在寫代碼的過程中尤其是在遇到問題的時候我們必須要有處理問題的優化思路,這也就是我先前在學習方法論中講到的思考性學習(當你學東西到了思考性學習的狀態,那麼你就開始真正入門了),思考性學習本質強調的就是學習要擁有自主可控性,要有話語權和絕對自信的心態(戰略上藐視敵人,戰術上重視敵人),要自由化,個性化,隨意化,我在博客簽名中寫的是“自己的代碼,自己的世界,自己的邏輯”,強調的就是這種唯我獨尊不懼權威的觀念,只有丟掉了一切條條框框才能坐下來進行真正的思考。在我的學習方法論中還有另外一種很重要的學習方式那就是“手動建模”理論,這種理論有思考但主要通過動手在紙上驗算或者作圖爲核心驅動來完成對理論的分析,知識的學習,這種學習方式可以將抽象的問題具體化,直觀化,很關鍵很重要,但缺點是本本主義嚴重,過度的程式化,適合於大型的複雜的理論知識的分析學習,靈活性,創新性遠遠不夠,真正的思維創新往往源自於直覺,而不是大量的數學驗算(觀楊振寧有關麥克斯韋方程場理論與數學的密切聯繫)。在我看來編程中的邏輯分析要兩種方法都用,針對簡單的要用“思考式”爲主,但手動建模這種學習能力也必須作爲硬核實力要具備。如此以來爲實際分析保駕護航,才能讓自己成爲編碼界的“神探狄仁傑”。

接口聚合與前端總結

其實這次項目整體來說難度並不大,有幾處都是經過我思考後採取的方案這裏做一下簡單的彙總:1. 生命週期對應方法的選用,經過思考我最終選擇在OnOPen()方法啓用定時器調用業務邏輯。2. 針對頁面多類數據的展示採用接口聚合數據重新建模的思想,將頁面所需數據一次推送到客戶端。3. 數據分類,找到項目頁面的同類項,然後從同類項中找出類別決定因子,將數據進行合理的分類建模。4. 前端表格採取原生動態字符串拼接的思想直接填充數據。5. 雙重循環,組件數組化借鑑了Android開發中的思想。6.Echart樣式的配置使用。7. 頁面元素的動態添加和移除以及百分比佈局。8.Bootstrap中table插件的使用。

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