08年畢業(yè)跑到上海,在經(jīng)濟危機最熱鬧的一年找到份勉強活下去的java研發(fā)工作,從此開始了漫長的通信行業(yè)軟件開發(fā)。幾年間身邊的同事跳槽到互聯(lián)網(wǎng)行業(yè),也有新鮮血液補充進來,總體來說人員質(zhì)量是在不斷下降的。直到自己也決定轉(zhuǎn)型,中間也受過鄙視遇過挫折走過彎路,這里將自己的感受跟大家分享下,希望能對有相同想法的從業(yè)人員有所幫助。
在開始講干貨之前,先了解下互聯(lián)網(wǎng)。互聯(lián)網(wǎng)的生命線是客戶體驗,短時的砸錢可以迅速擴展用戶量,但是如何保持客戶黏度才是真正的重點。互聯(lián)網(wǎng)的精神就一個字“快”!快包含兩層意義:第一層對于系統(tǒng)來說(性能快、終端響應(yīng)快、擴展快),第二層對于開發(fā)人員(輕量級、上手快、開源)。只有夠快才可以提高客戶體驗,沒人愿意盯著手機屏幕等5秒鐘以上。至于如何為客戶提供更舒服的服務(wù)方向那屬于策劃部門考慮的問題,不屬于咱們程序員能左右的。
下面開始具體技術(shù)點,一切都是圍繞著“快”。
第一, 熟練使用Linux系統(tǒng)。
Why is Linux?開源+安全+便捷。開源意味著成本的降低,今年風(fēng)靡一時的勒索軟件又給Linux打了一次安全廣告,docker的興起又鞏固了Ubuntu、centos等linux內(nèi)核的霸主地位。可以說不會命令行(桌面會占用硬件資源,失去了linux的部分優(yōu)勢)操作Linux系統(tǒng)以后將會寸步難行。
第二, 關(guān)系型數(shù)據(jù)庫選擇MySql而不是Oracle
雖然NoSql的盛行使關(guān)系型數(shù)據(jù)庫市場越來越小,但是80%產(chǎn)品的核心數(shù)據(jù)還是需要關(guān)系型數(shù)據(jù)庫來維護的。這里推薦大家加強MySql的學(xué)習(xí),Oracle可以選擇性放棄,雖然兩者在使用上沒有太大的區(qū)別,但是Oracle實在是太貴了!我們曾經(jīng)7位數(shù)采購過一個Oracle一體機,硬件條件確實牛逼到飛起,但是互聯(lián)網(wǎng)中講究的是開源和擴展,講究的是叼絲抱團PK高富帥。
第三, 掌握NoSql技術(shù)。
需要大家了解NoSql的使用場景,解決的是非結(jié)構(gòu)化數(shù)據(jù)的存儲和查詢問題,這個是關(guān)系型數(shù)據(jù)庫做不到的。推薦學(xué)習(xí)HBase,倒不是因為HBase比起其它NoSql產(chǎn)品多優(yōu)秀,而是在學(xué)習(xí)HBase的過程中可以pick up很多其他有用的知識。例如HBase存儲是依賴Hadoop的HDFS,可以了解下大數(shù)據(jù)是如何存儲的;協(xié)同服務(wù)使用的zookeeper,可以了解下zookeeper的4種文件特性以及自主選拔機制。
重點需要學(xué)習(xí)HBase中數(shù)據(jù)是如何存儲的,為什么rowkey查詢效率如此之快。
第四, 掌握一種緩存技術(shù)
JVM緩存無法解決的兩大難題:1緩存不夠大,2跨JVM無法共享。應(yīng)運而生了各種緩存技術(shù),這里推薦Redis,因為Redis已經(jīng)成為了主流,要用我們就用最流行的。Redis在大的方面有Nosql存儲和共享緩存兩種用法,其中共享緩存又分為系統(tǒng)緩存、登錄用戶緩存、ORMapping二級緩存等流行用法。
第五, 熟練掌握一種MQ
緩存技術(shù)只是解決了IO上的“快”,但是對邏輯運算、業(yè)務(wù)處理等響應(yīng)速度沒有任何提高,何以解憂唯有MQ。MQ用于去瓶頸、非事務(wù)、最終一致性、Event Sourcing、收集器等場景。這里推薦kafka,原因跟redis一樣,流行,功能上基本能涵蓋所有MQ應(yīng)用場景。
第六, 精通一種微服務(wù)框架。
講到這里才有了點Java的影子,傳統(tǒng)軟件開發(fā)講究的是MVC、SSH、SSi這些古董,但是互聯(lián)網(wǎng)里講的是微服務(wù)。微服務(wù)架構(gòu)主流的有2種:Dubbo和Spring Cloud,我們產(chǎn)品經(jīng)歷過Dubbo這條彎路以后最終還是走向了Spring Cloud的懷抱。RestFul的調(diào)用機制速率從協(xié)議上來開雖然不如RPC,但是應(yīng)用場景廣泛、標準化、可讀性強等優(yōu)點完全掩蓋協(xié)議上的性能差距,再加之Spring Cloud不斷地有大牛添磚加瓦(我在初學(xué)Spring Cloud用的是Brixton,學(xué)完后已經(jīng)出來Dalston版本了),Spring Cloud變得越來越強大,再加上java程序員對Spring有一種特殊的情結(jié),所以Spring已經(jīng)成為了主旋律。
第七, 分布式事務(wù)機制
分布式事務(wù)到目前為止還是個世界通用難題,沒有一顆銀彈能完美的解決這個問題,而面試官卻偏偏每次面試都要問。解決的中心思想就倆字“取舍”,根據(jù)自己的業(yè)務(wù)場景決定放棄一些東西。方案有:二階段提交、串行調(diào)用、MQ+消費、業(yè)務(wù)補救等,阿里等大公司也有自己的解決方案,但也都是貼合自己業(yè)務(wù)來設(shè)計的。
第八, 了解ELK原理。
E-elasticsearch,是基于Lucene的搜索引擎,它的出現(xiàn)是為了解決索引問題的,但是后來增加了Logstash和Kibana這倆左膀右臂,又組成了ELK這個日志收集分析套件,這貨正好解決了分布式系統(tǒng)任務(wù)跟蹤和問題定位難的問題,配合Spring cloud的Sleuth又成了性能預(yù)警的神器為服務(wù)治理提供了基礎(chǔ)數(shù)據(jù)。
第九, 云計算
產(chǎn)品的云化只是個概念,之所以了解云計算是為了能讓我們有個完整的知識體系。Iaas、Paas層在國內(nèi)已經(jīng)基本成熟,Saas我在國內(nèi)還沒有看到有成型的產(chǎn)品。有興趣的同學(xué)可以注冊學(xué)習(xí)下美帝的Salesforce,了解下世界上最先進的CRM云產(chǎn)品是何等的牛X。國內(nèi)的電信、金融行業(yè)正在砸錢搭建自己的私有云,BAT等有能力的大公司在辦自己的公有云,私有云+公有云也有很廣闊的市場前景,我接觸過的很多企業(yè)都在做混合云的設(shè)計方案。
第十, 提高英語水平
越是前端的技術(shù)國內(nèi)用的人越少,綠壩里面的資料也就越少,所以為了學(xué)習(xí)或者解決問題經(jīng)常需要參閱國外網(wǎng)站的資料,混跡國外的技術(shù)論壇進行交流,所以英語水平有時間還是要提高下,否則很影響新知識的吸收速度。
互聯(lián)網(wǎng)中用到的所有的技術(shù)基本都是默認可用,滿足“上手快”的要求。大部分組件也都是水平擴展的,為了滿足“性能快”的要求。例如Spring Cloud中啟動參數(shù)基本都有默認值,zookeeper、elasticsearch、logstash、kafka等組件目錄結(jié)構(gòu)都是bin里是啟動程序,conf里是配置程序,解壓即可用,都有默認值,通過配置做水平擴展。
本文寫給跟我一樣正在轉(zhuǎn)型路上的java程序員們,基本涵蓋了各個方面,也給了我個人推薦的具體技術(shù)點,希望大家少走彎路,把精力用到刀刃上。
-
JAVA
+關(guān)注
關(guān)注
20文章
2988瀏覽量
108255 -
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30328
發(fā)布評論請先 登錄
數(shù)字化轉(zhuǎn)型為什么需要工業(yè)互聯(lián)網(wǎng)
官網(wǎng)下載的stm32cubemx無法連接互聯(lián)網(wǎng),WiFi有一條斜杠,怎么解決?
一文解析工業(yè)互聯(lián)網(wǎng)
云互聯(lián)網(wǎng)是什么意思
機械革命發(fā)布CODE AI程序員本
AI編程工具會不會搶程序員飯碗
第五屆長沙·中國1024程序員節(jié)開幕
【轉(zhuǎn)型必看】Java到AI,程序員的逆襲秘籍,轉(zhuǎn)行人工智能不再是夢!

heap連上互聯(lián)網(wǎng)的時候,heap空間慢慢的就變小了,直到最后程序僵死在那,為什么?
esp8266已連接到Wifi但無法連接到互聯(lián)網(wǎng),為什么?
程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

評論