背景
起這個(gè)標(biāo)簽(前端架構(gòu)),主要是因?yàn)樽约鹤罱恢痹趶母邔蛹?jí)上去思考一些前端的問題,想專門建個(gè)tag,分類一下。
首先我認(rèn)為作為程序員,在公司的工作就是不停的挖坑(尋找一個(gè)目標(biāo)或接一個(gè)需求)-->朝目標(biāo)前進(jìn)-->遇到問題-->解決問題-->直至完成目標(biāo)的一個(gè)過程。也就是說,程序員和其他職業(yè)一樣,都是解決問題的存在。
對(duì)于要解決的問題的定義,我認(rèn)為,業(yè)務(wù)在不同的情況下,所面臨的問題肯定是不同的。例如項(xiàng)目在創(chuàng)立之初,所面臨的問題是如何快速建立原型,放到市場(chǎng)上去驗(yàn)證;而當(dāng)業(yè)務(wù)在成長過程中,需要數(shù)據(jù)來指導(dǎo)我們的發(fā)展,所面臨的問題是如何收集用戶的反饋,如何更好的捕捉到用戶使用場(chǎng)景的信息(例如頁面crash,按鈕不合理,加載緩慢),這里就需要埋點(diǎn),錯(cuò)誤監(jiān)控,性能監(jiān)控等方案加以扶持;那發(fā)展到后期面臨的用戶終端越來越多,如何最高效的發(fā)揮人力,也是我們需要思考的問題。而這些問題并不是說網(wǎng)上搜一搜就有最佳解決方案的,為什么這么說是因?yàn)椋?/p>
- 上下文無法完全匹配,諸如人力,時(shí)間,未來發(fā)展等等;
- 解決方案是有一定時(shí)效性的,時(shí)代在進(jìn)步,場(chǎng)景在發(fā)展,解決方案也在不停的發(fā)展;
- 每個(gè)解決方案都有其對(duì)應(yīng)的坑,只有走過的人才知道,而坑的大小就決定了所需消耗人力的成本,因此有的解決方案看上去最優(yōu),但可能光踩坑就要踩很久,因此性價(jià)比也并不是最高。
上面這些問題看似繁多,其實(shí)都是表面,總結(jié)下來所面臨的問題應(yīng)該是以下幾點(diǎn):
- 高可用性,盡可能減少代碼報(bào)錯(cuò)幾率,提升用戶體驗(yàn);
- 抽象,抽象分很多種,大了像
ReactNative直接對(duì)不同宿主環(huán)境的代碼進(jìn)行抽象,小了可以組件化抽象,業(yè)務(wù)抽象等等,主要是為了提升開發(fā)效率; - 性能,很好理解,提升用戶體驗(yàn);
- 可維護(hù)性,這一點(diǎn)單獨(dú)拿出來講是因?yàn)槲覀兊拇a隨著時(shí)間的流逝,代碼量的增長,人員的更替,代碼的可維護(hù)性會(huì)變得越來越關(guān)鍵,一旦可維護(hù)性變差,那版本的迭代,功能的增長,開發(fā)的效率等等都會(huì)受到制約。
等等(目前只想到這些)
目的
因此建立這個(gè)tag的目的就是把自己所發(fā)現(xiàn)的問題,以及對(duì)應(yīng)的解決方案記錄一下,方便自己日后在面對(duì)問題的時(shí)候查看,相當(dāng)于一個(gè)經(jīng)驗(yàn)的累計(jì)。
當(dāng)然有時(shí)候也會(huì)對(duì)一些沒有在生產(chǎn)環(huán)境使用過的解決方案進(jìn)行一些簡(jiǎn)單探索和介紹,主要是為了能收集更多的錘子。
完