今天這篇文章不黑也不吹,就和大家嘮嘮一些我的所見及所聞,如有不妥之處請各位看官見諒。
從我之前的一些博客文章看,大家也能知道之前是一個(gè)微軟技術(shù)棧的程序員,也就是主要C#,.net MVC的東東,后來換了工作,算是國內(nèi)的一二線的一些互聯(lián)網(wǎng)公司,所以在技術(shù)方向和儲(chǔ)備上都有一些調(diào)整,開發(fā)語言也慢慢跳出微軟技術(shù)棧,工作中使用了其他的開源開發(fā)語言,新項(xiàng)目基本是開源語言,框架也使用了不少,所以就.net 和 類java一樣的開源語言框架都有一定的了解,今天有時(shí)間就談?wù)劄槭裁春枚喙镜拈_發(fā)語言慢慢從C#變成了JAVA了。
這個(gè)因素其實(shí)會(huì)占很大的比重,小的公司初始的技術(shù)框架選擇都是由架構(gòu)師確定的,后來就很少改變了,公司大了之后,引入CTO,CTO肯定不會(huì)就具體的框架和模塊發(fā)號施令,更多的是在一個(gè)全局的角度去看公司現(xiàn)有的一些核心系統(tǒng),比如商城系統(tǒng)的訂單及數(shù)據(jù)中心的日志數(shù)據(jù)系統(tǒng)這些宏達(dá)的模塊。
在公司架構(gòu)來看,每一個(gè)項(xiàng)目都是部門級別的,最后不太可能每個(gè)公司每個(gè)部門有不同的開發(fā)語言,自設(shè)鴻溝,核心系統(tǒng)之間語言和通信肯定是相同相似的。
當(dāng)然我們的職能部門,如OA系統(tǒng),運(yùn)營系統(tǒng),更多的是給公司內(nèi)部人員或者職能人員使用,可以使用另一種語言,因?yàn)檫@兩套系統(tǒng)基本在核心系統(tǒng)之外,不太需要和其他系統(tǒng)聯(lián)系起來,最簡單的我們想不到公司數(shù)據(jù)平臺(tái)接入OA系統(tǒng)有什么戰(zhàn)略意義。
于是問題來了為什么架構(gòu)師和CTO會(huì)選JAVA作為第一語言呢?
總結(jié)而來就是 CTO架構(gòu)師過去的技術(shù)經(jīng)驗(yàn)基本決定了公司技術(shù)的選型,在架構(gòu)師CTO這個(gè)圈子,大家都在用JAVA順勢而為。
首先一個(gè)發(fā)展的比較好的公司或者成長經(jīng)歷了擴(kuò)張的公司,都會(huì)衍生出好幾個(gè)核心系統(tǒng),而不是簡單的一套三層架構(gòu)搞定的。
多個(gè)系統(tǒng)在之后會(huì)經(jīng)歷SOA等服務(wù)化的分割,然后需要通信,需要事務(wù)管理,需要日志監(jiān)控,需要異步處理,然后在網(wǎng)上一搜,發(fā)現(xiàn)基本每個(gè)方向的優(yōu)秀解決方案都是有java的影子,或多或少會(huì)影響我們的選型,單就RPC框架來說開源生態(tài)就有好幾種,并且背后的推手都是雅虎,google,facebook這樣的一等一的互聯(lián)網(wǎng)公司,但是.net背后基本也就是互聯(lián)網(wǎng)能力不夠的微軟和算不上2線的stackoverflow了吧。
生態(tài)大家也都知道就是mysql+linux+tomcat 對抗 sqlserver+windows+iis,微軟收費(fèi)大家知道,跨平臺(tái)這件事java完勝,最后發(fā)現(xiàn)搭建一套虛擬機(jī)集群linux是多么的順手,一套win的虛擬機(jī)集群即傷財(cái)又傷神。
總結(jié):框架開源語言豐富,并且好多框架背后都有facebook,google這樣的巨頭做推手,.net的后盾就少很多。linux在虛擬化這件事基本完勝win,高昂的授權(quán)費(fèi)如果有上千臺(tái)服務(wù)器的話,這將是一大比費(fèi)用。
就是說不同圈子社區(qū)對于新技術(shù)的敏感性,由于開源社區(qū)受眾眾多,一個(gè)新概念的出現(xiàn),開源社區(qū)就會(huì)如雨后春筍般出現(xiàn)文章及概念或者框架DEMO了,微軟社區(qū)除了官方的推進(jìn),其余都屬于打醬油,而且微軟主要精力基本在他的AZure上了。
以炒了一年多的微服務(wù),兩年多的大數(shù)據(jù)為例,我們已經(jīng)將大數(shù)據(jù)用在了生產(chǎn)環(huán)境中,docker也在測試中,這些激進(jìn)的想法和實(shí)踐在.net方向上肯定很難這么快推進(jìn)吧。
微服務(wù)有spring boot等概念,先不說效果怎么樣,起碼社區(qū)在推進(jìn),但是基本沒有聽過微軟針對于微服務(wù)有什么新框架出來。
總結(jié)來說,不黑不吹,過去兩年公司和項(xiàng)目的需要,自己學(xué)習(xí)了java web,spring這一套,研究了hadoop,hive的大數(shù)據(jù)框架,正在學(xué)docker,正式環(huán)境嘗試前后端分離快速開發(fā)h5界面,這些嘗試在之前的經(jīng)歷中都是沒有的,可能是隨著工作經(jīng)驗(yàn)增長,能力有所提高就比較自信敢在生產(chǎn)環(huán)境嘗試,之前也是受限于.net的系統(tǒng)本身業(yè)務(wù)方向原因,更多的經(jīng)歷耗費(fèi)在了業(yè)務(wù)上,而不是處理技術(shù)問題吧。
相信微軟在解決跨平臺(tái)這件事,社區(qū)積累出現(xiàn)優(yōu)秀框架,整個(gè)微軟技術(shù)將會(huì)更加優(yōu)秀。
聯(lián)系客服