摘要:怎么樣才能把項目做的好一點或者更好首先,在老板看來,他肯定希望今天提的需求可以立馬就上線。關(guān)于注釋注釋是有必要的,這個對個人和他人都是有好處的。
之前做開發(fā)的時候?qū)椖客耆珱]有一個整體的思考,需求來了就知道做,只關(guān)心自己做的那部分的功能,做完拉到。但最近所做的項目中,遇到了不少問題,自己都忍不住吐槽起來了。如:項目經(jīng)常性延期、代碼冗余、添加一個很小的新功能都需要改動很多地方,還對之前的代碼邏輯產(chǎn)生不小的影響。這使得我不得不對現(xiàn)有的項目進行思考。
怎么樣才能把項目做的好一點或者更好?
首先,在老板看來,他肯定希望今天提的需求可以立馬就上線。
然后,老板希望我們做出來的產(chǎn)品有很好的用戶體驗,有良好的性能。
最后,希望系統(tǒng)能夠穩(wěn)定運行,出問題時能夠盡快修復(fù)。
當(dāng)然,這只是我腦補出來的(我個人的想法,至于老板是不是這么想我就不清楚了)。
從技術(shù)上來說就是:
可以快速搭建
擁有比較好的性能
邏輯清晰,易于維護、拓展
快速解決線上問題
如何進行快速搭建?一、組件封裝:公共樣式、邏輯提取。
有時候,我們需要做一個統(tǒng)一的自定義彈窗樣式,或者自定義的下拉框等。我們封裝成公共組件之后,其他地方需要用到時,只需引入組件和傳入數(shù)據(jù)即可使用,不需要再重復(fù)的去寫樣式或者邏輯。有些甚至不需要設(shè)計再重新出圖,利用組件就可以完成我們的頁面開發(fā)了。
封裝前:
多個頁面中,同樣的頁面樣式和js邏輯無法復(fù)用,需要在每個頁面中進行代碼的復(fù)制粘貼,很可能會漏掉部分代碼。發(fā)生樣式或者js邏輯改動時需要每個頁面都改一遍,很容易漏掉。
封裝后:
可進行代碼復(fù)用,多個頁面中,同樣的頁面樣式和js邏輯直接引用封裝好的組件即可。發(fā)生樣式或者js邏輯改動時,只需要改一個地方即可。
二、 項目的基礎(chǔ)搭建
新開一個項目的時候我們都需要先去做一些基礎(chǔ)搭建,比如說:項目目錄結(jié)構(gòu)、登錄模塊封裝、http請求處理和其他輔助小工具等等。這些東西我們可以做成一個npm包,發(fā)到公司內(nèi)部的私有倉庫里,使用的時候直接一個npm install 就可以快速的完成項目的基礎(chǔ)搭建了。
深入理解產(chǎn)品需求,將功能邏輯劃分,對應(yīng)成相應(yīng)的代碼邏輯:
哪一部分樣式可以封裝
哪一部分功能可以封裝
頁面里各個邏輯的關(guān)系:點擊一個按鈕,頁面中的其他展示要如何變動
各個頁面之間的邏輯關(guān)系:在當(dāng)前頁面操作,其他頁面需不需要做出相應(yīng)的變動
如果開發(fā)時不看需求文檔,到了最后除了撕逼之外還得返工。
與其他功能模塊對接時盡量多考慮,做成可拓展的通用模塊。與某個模塊對接時,如何與當(dāng)前模塊完成對接是我們首要考慮的事情。考慮完這方面的事情之后,我們還要考慮一下再有另外一個模塊或者多個模塊接入時我們要如何才能在代碼改動量最小的情況下進行快速接入。
關(guān)于注釋:
注釋是有必要的,這個對個人和他人都是有好處的。自己一個月之前寫的代碼,沒有注釋再回去看時可能也不太懂,何況是別人呢。
如果可以的話,每個js文件的開頭簡單描述下當(dāng)面頁面的功能邏輯,讓維護的時候能快速的了解到當(dāng)前頁面上的東西。
關(guān)于文檔:
大家都去遵循一定的規(guī)范才能更好的去共同創(chuàng)造/維護一個東西,這些規(guī)范形成之后一定要遵循下去。當(dāng)一個新的小伙伴加入到我們的時候,我們不可能把每一個規(guī)范都口頭的跟他講一般,我們自己也記不住那么多規(guī)范。所以,將這些規(guī)范整理成文檔很有必要,記不清楚或者不了解的時候可以重新去翻一翻。還有我們封裝好的組件,其他人使用的時候也不可能花時間去看看你的源碼,或者總是來問你要怎么用。這樣會很浪費大家的時間,阻礙整個項目的進度。所以,組件的用法、入?yún)?出參、注意事項等等我們都需要再文檔里面描述清楚。
根據(jù)當(dāng)前做的項目,使用的技術(shù)棧,找出引起性能問題的點,逐個進行優(yōu)化。就拿我當(dāng)前做的這個原生小程序來說,性能問題主要在以下幾點:
頻繁的調(diào)用setData。
在后臺進行多個數(shù)據(jù)請求并進行多個頁面setData操作。
首次加載小程序時包下載比較慢。
解決方案
問題1: 避免頻繁的setData, 將可以合并的setData合并,不在頁面渲染的變量不在data里聲明,在page下的其他字段里聲明即可
問題2: 當(dāng)面頁面的改動需要刷新其他頁面時,不需要立即對其他頁面進行數(shù)據(jù)刷新的動作,給需要刷新的頁面加個標識,等到該頁面顯示時通過onShow聲明周期來判斷并刷新 數(shù)據(jù)。
問題3: 使用小程序的分包加載,加載首頁時只需先下載分包即可,提高首頁加載速度。
遇到線上的bug應(yīng)該快速的響應(yīng)和積極的定位問題出現(xiàn)的原因,從根本上去解決問題,而不是說這不是我的問題,我不用管。
盡早發(fā)現(xiàn)問題,在造成更大的影響之前解決問題:
自行搭建一個錯誤收集系統(tǒng),收集js腳本錯誤和接口請求錯誤的相關(guān)信息,為定位問題提供幫助,還可以根據(jù)錯誤的峰值來檢查當(dāng)前系統(tǒng)是否異常。怕麻煩,圖省事的還可以花錢使用fundebug。
日前能想到和記得的就只有那么多吧, 先記著,以免遺忘。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/52859.html
摘要:怎么樣才能把項目做的好一點或者更好首先,在老板看來,他肯定希望今天提的需求可以立馬就上線。關(guān)于注釋注釋是有必要的,這個對個人和他人都是有好處的。 之前做開發(fā)的時候?qū)椖客耆珱]有一個整體的思考,需求來了就知道做,只關(guān)心自己做的那部分的功能,做完拉到。但最近所做的項目中,遇到了不少問題,自己都忍不住吐槽起來了。如:項目經(jīng)常性延期、代碼冗余、添加一個很小的新功能都需要改動很多地方,還對之前的...
摘要:年云棲大會在杭州舉行,據(jù)主辦方介紹本次云棲大會吸引了五萬多人參會,但是在密集的會議中又有哪些亮點值得關(guān)注領(lǐng)導(dǎo)致辭很無聊每次重要的大會,都離不開一些政府要員們的參與,但是在高新技術(shù)的互聯(lián)網(wǎng),云計算,大數(shù)據(jù)領(lǐng)域真心不敢恭維,除了讓整個會議前半場 2016年云棲大會在杭州舉行,據(jù)主辦方介紹本次云棲大會吸引了五萬多人參會,但是在密集的會議中又有哪些亮點值得關(guān)注?領(lǐng)導(dǎo)致辭很無聊每次重要的大會,都離不開...
摘要:上次翻過一篇我是如何在自學(xué)編程個月后找到工作的,是一個編程自學(xué)者的經(jīng)驗之談。如果你想通過學(xué)習(xí)編程來改善你的生活,你不該總想著這些快速成功的案例。 有人問我, Reddit 是什么網(wǎng)站,我想了下說: 美國貼吧 。 但話說回來,關(guān)注了一陣子我發(fā)現(xiàn),Reddit 上的討論真要比貼吧不知道高到哪里去了,甚至比不少知乎回答要有價值。而且感覺下面的討論氛圍也更好些。 我在上面關(guān)注了 learnpr...
閱讀 2294·2021-09-22 15:27
閱讀 3166·2021-09-03 10:32
閱讀 3491·2021-09-01 11:38
閱讀 2493·2019-08-30 15:56
閱讀 2206·2019-08-30 13:01
閱讀 1531·2019-08-29 12:13
閱讀 1409·2019-08-26 13:33
閱讀 884·2019-08-26 13:30