上次寫(xiě)了一篇博文大家很喜歡狮暑,但是主題范圍偏大魏割,且偏理論庭呜,這篇博文說(shuō)說(shuō)純技術(shù)方面的一些想法滑进,對(duì)于一個(gè)互聯(lián)網(wǎng)創(chuàng)業(yè)公司來(lái)說(shuō),有這幾個(gè)特點(diǎn):(1)什么都要求快募谎,這個(gè)快也許并非來(lái)自用戶扶关,而來(lái)自于自己,比如恨不得開(kāi)發(fā)一天就開(kāi)發(fā)一個(gè)新功能(2)變化快数冬,比如一個(gè)想法落實(shí)到開(kāi)發(fā)节槐,可能會(huì)有很多變化(3)資源稀缺性,資源就是時(shí)間拐纱、金錢和人力成本铜异,對(duì)于創(chuàng)業(yè)公司來(lái)說(shuō),有效的花費(fèi)資源本身就很重要秸架,看看多少創(chuàng)業(yè)公司都是胡亂花錢而撐不下去的揍庄,而對(duì)應(yīng)的技術(shù)上就是能省則省。
針對(duì)這三個(gè)主要特點(diǎn)东抹,創(chuàng)業(yè)公司在技術(shù)使用的策略上有什么準(zhǔn)則呢蚂子?個(gè)人認(rèn)為就是“簡(jiǎn)單化“,當(dāng)然這個(gè)簡(jiǎn)單是建立在理性分析的基礎(chǔ)上的府阀。技術(shù)人員有個(gè)通病缆镣,認(rèn)為技術(shù)實(shí)現(xiàn)越復(fù)雜,越膨大试浙,越全面就越能體現(xiàn)技術(shù)水平董瞻,這是非常錯(cuò)誤的一個(gè)觀點(diǎn),衡量技術(shù)水平的唯一標(biāo)準(zhǔn)其實(shí)就是“是否有效支撐業(yè)務(wù)發(fā)展”田巴,要看結(jié)果論钠糊,比如說(shuō)開(kāi)發(fā)速度快,后期問(wèn)題少壹哺,假如能做到這些抄伍,那么這個(gè)技術(shù)團(tuán)隊(duì)就是牛逼的。
而提倡簡(jiǎn)單化的理論管宵,就會(huì)讓你從另外個(gè)角度去審視技術(shù)本身截珍,下面的一些技術(shù)使用建議也許看上去并不高大上攀甚,好像每個(gè)人都能明白,但假如能有效的實(shí)行岗喉,在創(chuàng)業(yè)初期能夠解決大部分的技術(shù)問(wèn)題秋度。
使用云服務(wù)器
對(duì)于創(chuàng)業(yè)團(tuán)隊(duì)來(lái)說(shuō),并不知道你未來(lái)用戶有多少钱床,需要使用多少服務(wù)器資源(Web 服務(wù)器荚斯,DB 服務(wù)器 等等)并不好衡量,而云服務(wù)器的可擴(kuò)容性則能很好的滿足這個(gè)需求查牌,換句話說(shuō)創(chuàng)業(yè)初期使用云服務(wù)器能有效節(jié)省成本事期。
當(dāng)然云服務(wù)器的特點(diǎn)還不至這么多,它代表了一種開(kāi)發(fā)模式纸颜,這就是分層架構(gòu)兽泣,比如云服務(wù)器的類型有很多(云服務(wù)器、云緩存服務(wù)器懂衩、云數(shù)據(jù)庫(kù)服務(wù)器撞叨、云存儲(chǔ)服務(wù)器)金踪,正因?yàn)橛辛诉@樣的分層模式浊洞,讓你有了更好的選擇,假如自建服務(wù)器胡岔,很多技術(shù)團(tuán)隊(duì)可能會(huì)把 Web 服務(wù)器和 DB 服務(wù)器放一塊法希,從而帶來(lái)很多問(wèn)題。
另外云服務(wù)器也有沙箱功能靶瘸,在安全性上也有很好的保證苫亦。雖然可能很多人覺(jué)得現(xiàn)在云廠商做的不好或不安全,不過(guò)說(shuō)句實(shí)話你自己搞可能更差怨咪。
當(dāng)然使用云服務(wù)器也并不能說(shuō)明一定就省錢屋剑,這取決于你是是否真正了解系統(tǒng)以及其背后需要的資源。
重視你的數(shù)據(jù)存儲(chǔ)
先入為主诗眨,推薦 Mysql 存儲(chǔ)數(shù)據(jù)唉匾。
在設(shè)計(jì)上要盡量規(guī)范化,索引利用合理一點(diǎn)匠楚,因?yàn)閿?shù)據(jù)有個(gè)特點(diǎn)巍膘,假如前期設(shè)計(jì)不好,后期想重新調(diào)整結(jié)構(gòu)是非常痛苦的一件事情芋簿,原來(lái)公司某個(gè)產(chǎn)品峡懈,最重要的博文數(shù)據(jù)庫(kù)表(blog 表)有個(gè)字段存儲(chǔ)的是文章的具體內(nèi)容(content 字段),從而導(dǎo)致這個(gè)表非常龐大与斤,查詢性能和內(nèi)容非常不好控制肪康,就我了解到的情況是目前 content 字段還是沒(méi)有從 blog 表中拆分荚恶,這不僅僅是技術(shù)的問(wèn)題,對(duì)于一個(gè)在線的服務(wù)磷支,數(shù)據(jù)量很大的服務(wù)裆甩,做表結(jié)構(gòu)的調(diào)整是非常困難的,所以前期盡量設(shè)計(jì)好齐唆。
Mysql 主要的作用還是存儲(chǔ)嗤栓,雖然可以通過(guò) Sql 完成很多復(fù)雜的查詢,但是建議盡量少使用箍邮,否則性能會(huì)急劇下降茉帅,我?guī)啄昵傲私獾揭粋€(gè)爆款的產(chǎn)品,用戶量上來(lái)后锭弊,第一個(gè)壓垮她的就是數(shù)據(jù)庫(kù)堪澎,最大的原因就在于查詢非常不合理,做了非常多的聯(lián)合查詢味滞。
假如不合理使用 Mysql樱蛤,很多人會(huì)質(zhì)疑性能不行,其實(shí)這都是錯(cuò)覺(jué)剑鞍,我一直相信的一個(gè)原則就是昨凡,既然這么多人用,說(shuō)明必然有他的優(yōu)勢(shì)蚁署,我們要做的就是學(xué)會(huì)使用而不是抱怨便脊。
對(duì)于 Mysql 這樣的數(shù)據(jù)庫(kù),很重要的觀點(diǎn)就是備份和安全性光戈,剛工作的時(shí)候領(lǐng)導(dǎo)說(shuō)過(guò)這樣一句話哪痰,“代碼可以重構(gòu),但是數(shù)據(jù)不能丟久妆,所以在寫(xiě)操作數(shù)據(jù)程序的時(shí)候一定要慎重”晌杰,而 Mysql 是非常成熟的軟件,備份和安全性上有很多選擇筷弦。
另外一個(gè)觀點(diǎn)就是假如你并不知道數(shù)據(jù)量和訪問(wèn)量是多少肋演,開(kāi)始不要選擇分庫(kù)發(fā)表策略,也不要搞很多路由策略奸笤,盡量簡(jiǎn)單點(diǎn)惋啃。單表數(shù)據(jù)量在一百萬(wàn)級(jí)別,只要設(shè)計(jì)和使用上保持穩(wěn)健性监右,性能不是問(wèn)題边灭。
Mysql 的主輔同步本來(lái)是做備份用的,但是現(xiàn)在很多人多當(dāng)分布式查詢使用健盒,其實(shí)也能分擔(dān)很多查詢壓力绒瘦。
現(xiàn)在很多 Nosql 服務(wù)特別多称簿,比如 Redis ,對(duì)于創(chuàng)業(yè)公司來(lái)說(shuō)建議不要使用:
第一就是這些服務(wù)并不完全成熟惰帽,在使用上很需要有很多經(jīng)驗(yàn)憨降,尤其在備份和安全性上,在運(yùn)維上并不簡(jiǎn)單该酗,需要有極大的成本授药。
第二雖然它有很多有點(diǎn)是數(shù)據(jù)庫(kù)比不了的,但是還是那句話呜魄,它能做的 Mysql 也能做悔叽,對(duì)于創(chuàng)業(yè)團(tuán)隊(duì)來(lái)說(shuō),上手簡(jiǎn)單和維護(hù)簡(jiǎn)單爵嗅,成本是優(yōu)先要考慮的娇澎。當(dāng)然假如應(yīng)用場(chǎng)景非常適合用 Nosql 這樣的服務(wù),還是要大膽的使用睹晒。
一定要有一個(gè)開(kāi)發(fā)框架
開(kāi)發(fā)框架在我看來(lái)有兩個(gè)最主要的作用趟庄,分別是規(guī)則和最佳實(shí)踐。
所謂規(guī)則就是框架定義了一些制度伪很,框架理論上不應(yīng)該讓你隨意寫(xiě)代碼戚啥,尤其在 PHP 語(yǔ)言中,由于太靈活了是掰,假如沒(méi)有一套框架去制約開(kāi)發(fā)者虑鼎,那么寫(xiě)出來(lái)的系統(tǒng)會(huì)很脆弱辱匿。
最佳實(shí)踐就是框架集成了很多優(yōu)秀的思想和功能键痛,要做的就是去合適的用,框架能夠解決分層的問(wèn)題匾七,能夠解決安全性的問(wèn)題絮短。
所以在創(chuàng)業(yè)團(tuán)隊(duì)一定要有一套開(kāi)發(fā)框架,但是在選擇上必須謹(jǐn)慎昨忆,不要選擇太難以理解的框架丁频,比如說(shuō) PHP 框架 Laravel ,對(duì)于使用者來(lái)說(shuō)需要具備很強(qiáng)的設(shè)計(jì)模式和 OOP 理解能力邑贴,沒(méi)有經(jīng)驗(yàn)就選擇簡(jiǎn)單易學(xué)的框架席里;第二個(gè)選擇框架不要選擇封裝太多的框架,舉 Jquery 的例子拢驾,很多人可能會(huì) Jquery 但不會(huì) JavaScript奖磁,所以選框架應(yīng)該選用接近開(kāi)發(fā)語(yǔ)言本質(zhì)的框架。
另外框架沒(méi)有絕對(duì)的好壞繁疤,一個(gè)創(chuàng)業(yè)團(tuán)隊(duì)能夠快速上手的框架就是好框架咖为,使用框架 20% 的功能即可秕狰,開(kāi)發(fā)人員喜歡過(guò)度的使用軟件,說(shuō)到開(kāi)發(fā)框架躁染,不要強(qiáng)迫開(kāi)發(fā)人員使用統(tǒng)一的 IDE鸣哀,只要最終代碼輸出標(biāo)準(zhǔn)一樣即可(比如 PHP 語(yǔ)言重要符合 PSR-2 即可)。
假如使用 Cache吞彤,必須有一個(gè)優(yōu)良的 Cache 管理器
在互聯(lián)網(wǎng)產(chǎn)品中我衬,可以說(shuō) Cache 為王,很多人不管三七二十一必須要使用 Cache饰恕,可個(gè)人覺(jué)得系統(tǒng)假如沒(méi)有瓶頸(這個(gè)詞需要好好理解)低飒,不一定需要使用 Cache,首先有容量資源成本懂盐,另外也會(huì)增加系統(tǒng)的復(fù)雜度褥赊,從而導(dǎo)致開(kāi)發(fā)和維護(hù)成本提高。
假如實(shí)在需要使用 Cache莉恼,一定要充分理解應(yīng)用場(chǎng)景拌喉,是 pull 式的 Cache,還是 push 式的 Cache 俐银,如何衡量 Cache 的效果尿背。
假如必須要使用 Cache ,一定要有一個(gè) Cache 管理器捶惜,什么意思呢田藐?對(duì)于技術(shù)人員來(lái)說(shuō),代碼在寫(xiě)的時(shí)候吱七,意識(shí)不到 Cache 的存在汽久,全部?jī)?yōu)雅的封裝了。而封裝能帶來(lái)開(kāi)發(fā)和維護(hù)成本的減低踊餐。
最重要的一點(diǎn)就是不要過(guò)度追求命中率這一指標(biāo)景醇,從而把代碼搞的非常復(fù)雜,比如使用 Memcached吝岭,可以基于 Sql 查詢語(yǔ)句做 Cache 三痰,多采用 pull 的方式,過(guò)期時(shí)間可以設(shè)置短一點(diǎn)(意思就是不要主動(dòng)的去更新 Cache)窜管。另外一種使用方式就是將數(shù)據(jù)庫(kù)的聯(lián)合查詢的結(jié)果主動(dòng)放入到 Cache 中散劫。
盡量異步化
異步化是一種開(kāi)發(fā)策略,對(duì)于創(chuàng)業(yè)團(tuán)隊(duì)的產(chǎn)品來(lái)說(shuō)幕帆,資源有限的情況下获搏,沒(méi)有必要每個(gè)功能追求及時(shí)響應(yīng),比如說(shuō)現(xiàn)在很多 SNS 產(chǎn)品蜓肆,沒(méi)有必要評(píng)論數(shù)颜凯、點(diǎn)贊數(shù)及時(shí)更新谋币,排行榜也不用及時(shí)更新,假如什么功能和需求需要做到極致症概,對(duì)于開(kāi)發(fā)和時(shí)間是極大的挑戰(zhàn)蕾额。
所以對(duì)于創(chuàng)業(yè)團(tuán)隊(duì)來(lái)說(shuō),請(qǐng)有效使用異步化彼城,舉簡(jiǎn)單的幾個(gè)例子:
(1)比如說(shuō)用戶點(diǎn)贊诅蝶,沒(méi)有必要程序即使響應(yīng)這個(gè)用戶有沒(méi)有點(diǎn)贊,直接將這個(gè)請(qǐng)求放入隊(duì)列募壕,這樣這個(gè)接口的響應(yīng)和吞吐能力就提升了调炬。
(2)每天博文訪問(wèn)的排行榜,沒(méi)必要查詢數(shù)據(jù)庫(kù)舱馅,每天或者每個(gè)間隔時(shí)間從數(shù)據(jù)庫(kù)中查詢出結(jié)果放入緩存即可缰泡,減少了多少數(shù)據(jù)庫(kù)的查詢。
日志系統(tǒng)
在互聯(lián)網(wǎng)應(yīng)用中代嗤,日志無(wú)處不在棘钞,操作系統(tǒng)運(yùn)行的日志,服務(wù)器的日志干毅,軟件的運(yùn)行日志宜猜,數(shù)據(jù)庫(kù)操作的日志,應(yīng)用程序日志硝逢,產(chǎn)品業(yè)務(wù)日志姨拥。這些日志是了解服務(wù)運(yùn)行狀況的最好的來(lái)源,在創(chuàng)業(yè)團(tuán)隊(duì)渠鸽,最忌諱系統(tǒng)出了問(wèn)題不知道如何分析問(wèn)題叫乌,產(chǎn)品人員需要一些數(shù)據(jù)卻拿不出,系統(tǒng)的歷史運(yùn)行狀況也完全一抹黑拱绑。
所以對(duì)于創(chuàng)業(yè)團(tuán)隊(duì)來(lái)說(shuō)综芥,一定要重視日志,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)猎拨,在開(kāi)發(fā)框架中一般都有日志模塊,良好的定義好日志格式和含義屠阻。假如服務(wù)器眾多红省,可以使用一些分布式日志系統(tǒng)來(lái)搜集和壓縮日志,其實(shí) Linux 發(fā)行版自帶的 Syslog 其實(shí)非常好的一款軟件国觉。這樣從側(cè)面說(shuō)明我們不用尋找多少高大上的軟件吧恃,用好操作系統(tǒng)自帶的工具就很不錯(cuò)了。
監(jiān)控
有了日志麻诀,下個(gè)話題就是監(jiān)控痕寓,因?yàn)楸O(jiān)控都是基于日志的分析傲醉,確定合適的閥值,選擇是否報(bào)警呻率,所以對(duì)于技術(shù)團(tuán)隊(duì)來(lái)說(shuō)硬毕,有了日志就要充分的分析。而一套完善的監(jiān)控系統(tǒng)很重要礼仗,能夠?qū)ο到y(tǒng)的運(yùn)行狀況有更好的了解吐咳,主動(dòng)的去發(fā)現(xiàn)問(wèn)題,而不是等待用戶去投訴元践。
監(jiān)控的維度可以有很多韭脊,比如系統(tǒng)運(yùn)行的慢日志、資源調(diào)用的錯(cuò)誤率单旁、數(shù)據(jù)庫(kù)更新頻率突然飆升沪羔,某個(gè)接口訪問(wèn)數(shù)異常,寫(xiě)代碼其實(shí)很容易象浑,難的是如何知道系統(tǒng)出現(xiàn)異常背后的原因任内。
監(jiān)控軟件其實(shí)有很多,在使用的時(shí)候一定要精確定義閾值和閾值背后的含義融柬,比如說(shuō)我們公司也有監(jiān)控系統(tǒng)死嗦,可問(wèn)題出了后還是沒(méi)有通過(guò)監(jiān)控系統(tǒng)發(fā)現(xiàn),最后發(fā)現(xiàn)報(bào)警短信太多了粒氧,忽略了越除,運(yùn)維呵開(kāi)發(fā)人員對(duì)于報(bào)警短信也麻木了,所以說(shuō)使用監(jiān)控系統(tǒng)很簡(jiǎn)單外盯,正確使用則有難度摘盆。
Wiki 系統(tǒng)
Wiki 個(gè)人理解其實(shí)就是提倡寫(xiě)文檔,文檔的作用其實(shí)很多饱苟,如何寫(xiě)不重要孩擂,重要的是這個(gè)文檔的作用是干嘛的?能讓人明白嗎箱熬?
假如一個(gè)新員工來(lái)了类垦,看了文檔后,就知道系統(tǒng)包括了什么模塊城须,自己如何快速開(kāi)發(fā)蚤认,如何上線,這就是一個(gè)好文檔糕伐;
假如要優(yōu)化一個(gè)原有的服務(wù)砰琢,開(kāi)發(fā)人員不是通過(guò)代碼去找邏輯,而是通過(guò)文檔去了解大概的邏輯和包含的模塊,當(dāng)然文檔也不需要太詳細(xì)陪汽。
文檔是開(kāi)發(fā)人員和運(yùn)維人員之間的協(xié)作工具训唱,比如服務(wù)器的 IP 是多少,系統(tǒng)中資源的路徑和 IP 是多少(比如數(shù)據(jù)庫(kù)的域名挚冤、外部 API 的地址)况增,說(shuō)個(gè)簡(jiǎn)單的笑話,原來(lái)公司運(yùn)維人員維護(hù)了一百多個(gè) Memcached 端口你辣,最后發(fā)現(xiàn)找不到使用方是誰(shuí)了巡通,最后不得不發(fā)郵件讓大家認(rèn)領(lǐng),可大部分最后也沒(méi)人認(rèn)領(lǐng)舍哄,有了文檔這些問(wèn)題就能解決了宴凉。
文檔是開(kāi)發(fā)人員之間的協(xié)作工具,在創(chuàng)業(yè)團(tuán)隊(duì)表悬,變化太快了弥锄,大部分都是通過(guò)人與人之間的溝通,可溝通假如總是變化蟆沫,最后發(fā)現(xiàn)雙方理解的有偏差籽暇,浪費(fèi)了很多開(kāi)發(fā)時(shí)間,而約定的文檔能在一定程度上解決這問(wèn)題饭庞。
上面舉得例子就簡(jiǎn)單解釋了文檔的重要性戒悠,其實(shí)文檔代表了一種開(kāi)發(fā)思維,可以這么說(shuō)沒(méi)有文檔舟山,代表開(kāi)發(fā)混亂绸狐,有了文檔從側(cè)面也能大概看出代碼實(shí)現(xiàn)的是否合理,這才是文檔最重要的用戶累盗。
寫(xiě)文檔避免的幾個(gè)誤區(qū)寒矿,第一就是不要太遵循寫(xiě)作規(guī)則,能夠說(shuō)清楚就行若债,有些開(kāi)發(fā)人員不想寫(xiě)文檔的原因之一就是寫(xiě)文檔比寫(xiě)代碼還要求嚴(yán)格符相;
第二就是文檔一定要保持更新,比如說(shuō)一個(gè)功能上線初期是有文檔的蠢琳,后來(lái)代碼一直在迭代啊终,最后開(kāi)發(fā)人員發(fā)現(xiàn)文檔和代碼的邏輯完全不一樣,大家也就失去了看文檔的動(dòng)力挪凑,所以文檔最重要的就是要持續(xù)更新孕索;
第三文檔不要強(qiáng)制開(kāi)發(fā)人員去寫(xiě),也不用及時(shí)讓大家去更新躏碳,讓大家的約束少一點(diǎn)可能效果更好。
代碼構(gòu)建,部署菇绵,發(fā)布系統(tǒng)
對(duì)于創(chuàng)業(yè)團(tuán)隊(duì)來(lái)說(shuō)肄渗,假如一個(gè)新員工來(lái)了,需要快速能夠讓其進(jìn)行開(kāi)發(fā)咬最,所以需要有一套集成化的環(huán)境翎嫡,主要包括:代碼協(xié)作工具,代碼構(gòu)建永乌,代碼部署(開(kāi)發(fā)環(huán)境惑申、仿真環(huán)境、線上環(huán)境)翅雏。
為什么需要這套環(huán)境呢圈驼,目的就是為了縮短產(chǎn)品上線時(shí)間,讓技術(shù)人員專注于業(yè)務(wù)開(kāi)發(fā)望几,而不是被其他的一些因素困擾绩脆;第二個(gè)目的就是為了產(chǎn)品的質(zhì)量;下面分別說(shuō)下:
在很多開(kāi)發(fā)團(tuán)隊(duì)橄抹,有的時(shí)候出現(xiàn)問(wèn)題靴迫,都是開(kāi)發(fā)人員直接線上修改代碼,從而導(dǎo)致潛在的問(wèn)題楼誓;還有任何開(kāi)發(fā)人員都有線上的服務(wù)器的權(quán)限玉锌,導(dǎo)致安全性得不到保障;在產(chǎn)品上線后疟羹,測(cè)試人員說(shuō)怎么測(cè)試的時(shí)候沒(méi)有問(wèn)題主守,一上線就有問(wèn)題,開(kāi)發(fā)人員說(shuō)測(cè)試人員測(cè)試的環(huán)境不是線上環(huán)境阁猜;新來(lái)一個(gè)員工丸逸,一個(gè)星期都沒(méi)法搭建自己的開(kāi)發(fā)環(huán)境;反正很多此類問(wèn)題剃袍,從而也導(dǎo)致了時(shí)間的浪費(fèi)和質(zhì)量的下降黄刚,而更大的危害就是失去別人的信任。
所以有這樣一套環(huán)境很重要民效,不用特別的高大上憔维,下面就簡(jiǎn)單說(shuō)一說(shuō):
(1)首先要有一個(gè)代碼版本控制系統(tǒng),這個(gè)現(xiàn)在大部分都會(huì)使用畏邢,也不用特別介意用 SVN 還是 Git业扒。
(2)讓運(yùn)維人員寫(xiě)一個(gè)腳本,能夠配置開(kāi)發(fā)環(huán)境舒萎、仿真環(huán)境程储、線上環(huán)境(環(huán)境一定要隔離),說(shuō)真的,簡(jiǎn)單的 Shell 腳本就能完成章鲤。這里的環(huán)境不僅僅是服務(wù)器摊灭,包括數(shù)據(jù)庫(kù)資源等等,這時(shí)候大家也意識(shí)到 Wiki 的重要性了败徊,假如沒(méi)有文檔帚呼,不可能能搭建這樣的系統(tǒng)。
(3)代碼構(gòu)建系統(tǒng)皱蹦,其實(shí)在 PHP 這樣的高級(jí)語(yǔ)言中煤杀,本質(zhì)上不存在代碼構(gòu)建這一說(shuō),假如有特殊需要沪哺,也是可以通過(guò) Shell 腳本來(lái)實(shí)現(xiàn)沈自。
(4)代碼部署系統(tǒng),在開(kāi)發(fā)環(huán)境中凤粗,完全可以借助 IDE 和 FTP 將實(shí)時(shí)變動(dòng)的代碼同步到開(kāi)發(fā)環(huán)境中酥泛;假如代碼需要部署到線上,可以借助于 SVN 和 Rsync 這樣的工具將有差異的代碼快速發(fā)布到線上嫌拣,有問(wèn)題也支持快速的回滾柔袁。
假如可能的化由開(kāi)發(fā)人員做運(yùn)維
運(yùn)維這個(gè)崗位其實(shí)需要了解網(wǎng)絡(luò),Linux 异逐,Shell等相關(guān)知識(shí)捶索,而開(kāi)發(fā)人員本身也應(yīng)該掌握這些知識(shí),假如開(kāi)發(fā)人員不了解這些灰瞻,而只是會(huì)編碼腥例,那代表他并不真正會(huì)編碼,了解這些知識(shí)開(kāi)發(fā)人員可以更好的理解一個(gè)系統(tǒng)酝润,當(dāng)系統(tǒng)出現(xiàn)問(wèn)題的時(shí)候能夠從多方面去排查燎竖,更好的維護(hù)。
在我工作的這么多年中要销,開(kāi)發(fā)崗位和運(yùn)維崗位總是不能很好的協(xié)作构回,出現(xiàn)問(wèn)題的時(shí)候開(kāi)發(fā)人員說(shuō)這是網(wǎng)絡(luò)問(wèn)題,是運(yùn)維的服務(wù)器不夠疏咐,或者說(shuō)數(shù)據(jù)庫(kù)響應(yīng)慢纤掸;而運(yùn)維人員則更痛苦,你開(kāi)發(fā)人員寫(xiě)的什么程序啊浑塞,數(shù)據(jù)庫(kù)全是聯(lián)合查詢借跪,導(dǎo)致數(shù)據(jù)庫(kù)性能嚴(yán)重下降∽煤荆或者說(shuō)上線一個(gè)項(xiàng)目我們啥也不知道掏愁,你讓我們?cè)趩徇\(yùn)維歇由;出現(xiàn)這些問(wèn)題的原因在于雙方對(duì)于對(duì)方掌握的技術(shù)領(lǐng)域不了解,互相不理解或者不明白對(duì)方的職責(zé)托猩,而這些會(huì)導(dǎo)致整個(gè)產(chǎn)品和系統(tǒng)的穩(wěn)定性出現(xiàn)很大的問(wèn)題印蓖。
所以對(duì)于創(chuàng)業(yè)團(tuán)隊(duì)來(lái)說(shuō)辽慕,假如技術(shù)能力足夠京腥,運(yùn)維工作盡量由開(kāi)發(fā)人員來(lái)做,當(dāng)然這里的運(yùn)維可能更多的是產(chǎn)品運(yùn)維的角色(在大企業(yè)溅蛉,運(yùn)維崗位的分工也越來(lái)越明確)公浪,具體的工作比如說(shuō)安裝軟件開(kāi)發(fā)包,進(jìn)行 Nginx船侧、PHP 配置欠气,切割日志,這些工作本身也不復(fù)雜镜撩,開(kāi)發(fā)人員假如能夠掌握好预柒,對(duì)于系統(tǒng)的維護(hù)是由極大的好處的,另外潛意識(shí)告訴開(kāi)發(fā)人員袁梗,出現(xiàn)問(wèn)題沒(méi)有人能依賴宜鸯,代碼和環(huán)境需要你自己去攻克。
以上說(shuō)的觀點(diǎn)大家可能發(fā)現(xiàn)了一個(gè)規(guī)律遮怜,這些都不涉及到人的因素(比如開(kāi)發(fā)人員素質(zhì)淋袖,協(xié)作能力),大家只要遵守就能很好的完成锯梁,而完成這些即碗,就能解決軟件開(kāi)發(fā)中的大部分問(wèn)題,讓你系統(tǒng)更穩(wěn)健陌凳,讓你的開(kāi)發(fā)更快速剥懒,讓你的成本更低。對(duì)于創(chuàng)業(yè)團(tuán)隊(duì)開(kāi)發(fā)人員來(lái)說(shuō)合敦,不要高度追求技術(shù)的高大上初橘,有效解決問(wèn)題很重要。