IT運(yùn)維知識(shí):關(guān)于開(kāi)發(fā),如何避免重復(fù)造輪子
2020-03-22 15:00 作者:admin 瀏覽量:
中小企業(yè)為什么要選擇IT外包呢?
中小企業(yè)選擇IT外包服務(wù)的原因,首先大家想到的可能是節(jié)省成本,但從專業(yè)的角度上來(lái)說(shuō),節(jié)省成本卻不是最重要的,這時(shí)代任何一家企業(yè)都會(huì)成為IT公司,任何一家企業(yè)都會(huì)成互聯(lián)網(wǎng)公司,任何一家企業(yè)最終也都會(huì)成為數(shù)據(jù)公司,所以中小企業(yè)在發(fā)展中,IT的規(guī)劃和運(yùn)用是最重要的,這直接決定著這家企業(yè)能活多久,能活多好.
但往往中小企業(yè)負(fù)責(zé)人為了方便,會(huì)直接花錢找個(gè)網(wǎng)絡(luò)管理員,讓這個(gè)人即處理企業(yè)內(nèi)部電腦和網(wǎng)絡(luò)的問(wèn)題,又兼著其它方面的工作,從表面上看好像還挺劃算,而且人是自己公司的人,好像也挺放心.
但實(shí)際恰恰相反,我給大家講個(gè)故事,可能你就明白了.
有一家手機(jī)企業(yè),他們的核心優(yōu)勢(shì)是研發(fā)和生產(chǎn),營(yíng)銷和廣告并不是他們具備的能力,為了更好的銷售他們生產(chǎn)的手機(jī),他們就請(qǐng)來(lái)了一個(gè)專門搞營(yíng)銷和廣告的經(jīng)理,因?yàn)楣咎幵诎l(fā)展時(shí)期,為了節(jié)省成本,所以這個(gè)經(jīng)理就自己一個(gè)兵,在沒(méi)有團(tuán)隊(duì)的情況下,又要想策劃,又要搞制作,還要設(shè)計(jì)圖片,最終策劃出來(lái)的方案是二流的,制作和設(shè)計(jì)還是三流的,導(dǎo)致手機(jī)銷售量非常差,沒(méi)有正常現(xiàn)金流,后來(lái)這家企業(yè)就倒閉關(guān)門了.
還有一家手機(jī)企業(yè),他們的核心優(yōu)勢(shì)也是研發(fā)和生產(chǎn),但他們的負(fù)責(zé)人非常智慧,把營(yíng)銷和廣告部分外包給了一家行業(yè)頂尖的企業(yè),這家企業(yè)幫助他們策劃出了一個(gè)絕佳的方案,還幫助落實(shí)和執(zhí)行了整個(gè)方案,最終大獲全勝,當(dāng)年手機(jī)銷量邁進(jìn)了全國(guó)前三,后來(lái)核算整體在營(yíng)銷和廣告的投入和產(chǎn)出卻是極低的.
上面兩個(gè)案例,讓我們看到了企業(yè)致勝的關(guān)鍵不是你有什么,而是你如何利用你的沒(méi)有.
總的來(lái)說(shuō)中小企業(yè)選擇IT外包公司有三大優(yōu)勢(shì):
l
首先節(jié)省成本是第一點(diǎn)優(yōu)勢(shì)
我們透過(guò)下圖可以看出企業(yè)自招網(wǎng)管和用IT外包公司成本可以節(jié)省90%以上,而且還是專業(yè)的團(tuán)隊(duì)提供服務(wù).
l
其次專業(yè)化的服務(wù)讓企業(yè)有更多的時(shí)間搶占先機(jī)是第二大優(yōu)勢(shì)
專業(yè)的團(tuán)隊(duì),可以根據(jù)你不同的需要匹配不同的工程師,這大大節(jié)省了企業(yè)的時(shí)間,互聯(lián)網(wǎng)時(shí)代,分秒必爭(zhēng),當(dāng)年滴滴和快滴的100億戰(zhàn)爭(zhēng),不就是為了贏得時(shí)間,讓自己更快的戰(zhàn)領(lǐng)這個(gè)市場(chǎng),失去先機(jī)就失去了一切,所以IT外包公司給你帶來(lái)的不僅僅是專業(yè),還有先機(jī).
l
最后獲得專業(yè)的解決方案成為行業(yè)的領(lǐng)導(dǎo)地位是第三大優(yōu)勢(shì)
這個(gè)時(shí)代已經(jīng)不是人海戰(zhàn)術(shù),而是運(yùn)用互聯(lián)網(wǎng)技術(shù),以一當(dāng)十,以十當(dāng)百的快速發(fā)展,那怎樣可以迅速?gòu)男袠I(yè)中脫穎而出,就需要互聯(lián)網(wǎng)的解決方案,一家專業(yè)的互聯(lián)網(wǎng)IT外包公司可以讓你快速轉(zhuǎn)型升級(jí),最重要的不僅僅只有方案,還有切實(shí)可行的落地執(zhí)行,讓你更專注自己核心業(yè)務(wù),達(dá)到強(qiáng)強(qiáng)聯(lián)合的效果.
你的
企業(yè)IT外包了嗎?
IT運(yùn)維知識(shí):關(guān)于開(kāi)發(fā),如何避免重復(fù)造輪子
“不要重復(fù)造輪子 Stop Trying to Reinvent the Wheel”, 可能是每個(gè)程序員入行被告知的第一條準(zhǔn)則。我自己也會(huì)對(duì)新人反復(fù)灌輸這個(gè)概念,寫程序其實(shí)是一個(gè)最能“偷懶”的工作:你現(xiàn)在費(fèi)力實(shí)現(xiàn)的每一個(gè)功能,可能早已經(jīng)有極好的解決方法貢獻(xiàn)在開(kāi)源社區(qū),如果可以直接用現(xiàn)成的,那節(jié)省下來(lái)的時(shí)間是不是可以用來(lái)偷懶呢?如果撇開(kāi)道德以及商業(yè)安全,只要能貢獻(xiàn)優(yōu)質(zhì)的代碼和健壯的功能,對(duì)于一個(gè)項(xiàng)目來(lái)說(shuō),這樣做其實(shí)沒(méi)任何問(wèn)題。找輪子存在的問(wèn)題。雖然不要重復(fù)造輪子的準(zhǔn)則被反復(fù)提到,但是以我個(gè)人的經(jīng)驗(yàn),這個(gè)準(zhǔn)則實(shí)踐起來(lái)其實(shí)很有難度,因?yàn)椋?br />
1. “不要重復(fù)造輪子”意味著首先需要找到一個(gè)可以用的輪子,而且我們一般希望是能最好的輪子才可以一勞永逸。這就對(duì)個(gè)人的信息檢索能力有非常高的要求。
2. 找到了一個(gè)輪子,但這個(gè)輪子好不好用,需要時(shí)間來(lái)論證。能一眼判斷一個(gè)項(xiàng)目的質(zhì)量以及易用性,這其實(shí)需要大量項(xiàng)目經(jīng)驗(yàn)的積累。
3. 好輪子不是你想用,想用就能用的。要想將一個(gè)開(kāi)源項(xiàng)目整合到自己的項(xiàng)目中,需要對(duì)這個(gè)項(xiàng)目有比較深的了解。開(kāi)源項(xiàng)目的文檔質(zhì)量參差不齊,當(dāng)使用輪子時(shí),只看文檔往往是不夠的,還需要閱讀源代碼甚至深度修改定制。更不要說(shuō)大部分開(kāi)源項(xiàng)目根本沒(méi)有中文文檔。
所以現(xiàn)實(shí)情況往往是:新人不懂得檢索方法,找不到輪子;好不容易找到一個(gè)輪子,學(xué)了半天不會(huì)用;好不容易能運(yùn)行,很多地方與需求不一致,但是又不會(huì)改;一來(lái)二去,最后還是變成自己寫輪子,同時(shí)還得出一個(gè)結(jié)論:別人的輪子都不好用,還是要堅(jiān)持自己造輪子。這種情況的最佳體現(xiàn),就是曾經(jīng)有一段時(shí)間遍地開(kāi)花的PHP框架。每一個(gè)寫框架的人都認(rèn)為自己寫的框架才是最好的輪子,甚至是很多PHP新人,對(duì)幾個(gè)成熟框架淺嘗輒止后,也紛紛投身寫框架的行列。成品大部分看過(guò)去卻是大同小異,只是語(yǔ)法層面更符合作者本人的習(xí)慣,而缺乏大量的測(cè)試以及文檔社區(qū),最終的結(jié)果就是一個(gè)半成品然后無(wú)疾而終。這個(gè)例子可能有馬后炮之嫌,畢竟PHP的造框架運(yùn)動(dòng)是由當(dāng)時(shí)的背景和多方面的因素造成的,目前因?yàn)橛辛薖HP-FIG制訂的規(guī)范,PHP的框架的資源已經(jīng)慢慢集中在Zend Framework、Symfony、CakePHP、Yii、CodeIgniter這樣少數(shù)幾個(gè)成熟框架之下了。更多的符合PSR規(guī)范的模塊類庫(kù)在取代新框架不斷涌現(xiàn),這對(duì)整個(gè)PHP社區(qū)都是好事情。
話題稍微扯的有點(diǎn)遠(yuǎn),不過(guò)核心的意思還是為了說(shuō)明,找輪子本身其實(shí)是一件不容易的事情。而我對(duì)上面問(wèn)題的解決方法是:找輪子的任務(wù)不要交給新人,而是要由經(jīng)驗(yàn)豐富,信息檢索能力強(qiáng)的編程人員負(fù)責(zé),最好是項(xiàng)目的構(gòu)架人員。團(tuán)隊(duì)成員找到的輪子最好也由構(gòu)架人員拍板,用還是不用。對(duì)于團(tuán)隊(duì)新人,最重要的任務(wù)還是編程基本功、文檔閱讀能力以及如何用好已經(jīng)拍板的輪子。
怎樣才算是好輪子
個(gè)人認(rèn)為好輪子應(yīng)該具備以下的特征:
1. 開(kāi)源,并且License寬松。
2. 有文檔,代碼規(guī)范,接口友好,最好有實(shí)際用例。
3. 社區(qū)相對(duì)活躍。
4. 松耦合,定制容易。
至于同時(shí)找到好幾個(gè)輪子需要選擇的情況,可能要根據(jù)項(xiàng)目的實(shí)際情況進(jìn)行取舍:有些輪子側(cè)重于大而全,希望解決大部分問(wèn)題,但是細(xì)節(jié)上處理不夠細(xì)致;有些輪子小而精,專注解決一個(gè)問(wèn)題,但是不具備好的通用性。但只要合適好用,都是一個(gè)好輪子。
如何找到好輪子
如何找到好輪子其實(shí)在上面問(wèn)題中已經(jīng)很清楚了,你應(yīng)當(dāng)具備:
1. 信息檢索能力
2. 外文資料閱讀能力
3. 代碼閱讀能力以及平時(shí)的積累
對(duì)于第一條,個(gè)人的信息檢索能力是無(wú)法一蹴而就的,不過(guò)如果是還在等待我對(duì)此再說(shuō)出一二三而不是去自己檢索尋找方法的朋友,基本上已經(jīng)沒(méi)救了。
這里唯一需要說(shuō)的是,如果想用百度那貨去找技術(shù)資料的還是省省吧。
外文資料閱讀能力也非一日之功,不過(guò)個(gè)人倒是有個(gè)小竅門,如果想要獲得一些項(xiàng)目的HelloWorld入門教程或者服務(wù)器的配置,可以將檢索語(yǔ)言限定為日語(yǔ),因?yàn)槿瘴挠脩舻慕坛掏辛巳毡炯?xì)致入微的精神,包括項(xiàng)目背景、需要的環(huán)境安裝等等一些對(duì)初學(xué)者才有用的知識(shí),在日文的技術(shù)資料中往往也會(huì)寫的很清楚。
至于平時(shí)的積累,可能程序員都知道Github、SourceForge、Google Code這些優(yōu)秀的項(xiàng)目托管網(wǎng)站。但是積累的意思并不是說(shuō)有時(shí)間上去看兩眼或者隨便收藏一下這么簡(jiǎn)單。比如我自己側(cè)重PHP方面的項(xiàng)目,我的一個(gè)做法是找到Github下所有Follower大于300的PHP項(xiàng)目(其實(shí)一共不到200個(gè)其中很多還是php框架),然后一個(gè)一個(gè)像掃貨一樣,對(duì)其進(jìn)行了解以及記錄。我的另一個(gè)做法是查看知名PHP框架,看看他們用了哪些輪子,比如在Symfony Reference中,你就能淘到Assetic、monolog 這樣的好貨。最后一個(gè)辦法是在Github上Follow一些活躍的作者,比如我的Following中就會(huì)顯示我的Stars和Forks,里面自然也是我認(rèn)為值得收藏關(guān)注的項(xiàng)目。