一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一名.net程序員的Java學(xué)習(xí)之路

工程師人生 ? 來(lái)源:工程師吳畏 ? 2019-06-10 17:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大學(xué)畢業(yè)后筆者進(jìn)入一家外企,做企業(yè)CRM系統(tǒng)開(kāi)發(fā),那時(shí)候開(kāi)發(fā)效率最高的高級(jí)程序語(yǔ)言,毫無(wú)疑問(wèn)是C#。恰逢公司也在擴(kuò)張,招聘了不少.net程序員,筆者作為應(yīng)屆生,也樂(lè)呵呵的加入到.net程序員行列中。

C#.net非常容易上手,之前在大學(xué)里,做過(guò)winform和webform開(kāi)發(fā),也曾經(jīng)在老師那里承接過(guò)小項(xiàng)目,賺點(diǎn)外快。于是在工作崗位上駕輕就熟,很容易就上手了企業(yè)開(kāi)發(fā)框架,僅一年多,筆者就成為公司的開(kāi)(jia)發(fā)(ban)骨(feng)干(xian)。

C#.net的網(wǎng)評(píng)比Java要差,筆者曾經(jīng)在知乎上看到一個(gè)國(guó)外華裔程序員的文章,內(nèi)容主要是國(guó)外的悠閑不加班的生活,文末一句:“忘了說(shuō) 我是做.net的”引發(fā)了討論的高潮。知乎程序員中,寫(xiě)Java、python、go、JavaScript幾乎成了政治正確,作為.net程序員的筆者很少在相關(guān)討論中活躍,但對(duì)java的印象已經(jīng)有了改變。那時(shí)筆者所在的外企仍在大規(guī)模使用C#.net,筆者也就拒絕去接受網(wǎng)上的喧鬧的聲音,專心寫(xiě)好代碼,學(xué)習(xí)設(shè)計(jì)模式和前端技術(shù)等等。

恰逢互聯(lián)網(wǎng)行業(yè)發(fā)展勢(shì)頭正勁,筆者自然順勢(shì)而為,加入了一家規(guī)模稍大的互聯(lián)網(wǎng)公司,當(dāng)然還是寫(xiě)C#。由于之前在外企任勞任怨,什么活都愿意攬過(guò)來(lái)干,積累到不少很有用的研發(fā)知識(shí)和經(jīng)驗(yàn),于是在跳槽過(guò)程中順風(fēng)順?biāo)救思覇?wèn)什么,我都能答出來(lái),于是相對(duì)輕松地加入了新公司,開(kāi)啟了互聯(lián)網(wǎng)研發(fā)之路。正是親眼鑒證了互聯(lián)網(wǎng)研發(fā)模式,才讓筆者確定了轉(zhuǎn)型Java的決定。

新公司的框架很老舊,那時(shí)還在用.net framework2.0,業(yè)務(wù)代碼非常復(fù)雜龐大,某個(gè)十年業(yè)務(wù)的項(xiàng)目里的一個(gè)方法,居然有一千多行,單是閱讀代碼,就讓筆者心累,更心累的是,這一千行代碼的方法名,居然被叫作“外觀模式”(facade)……很難想象公司最核心的業(yè)務(wù),跑在這么臃腫煩復(fù)的代碼里。性能和效率都被看重的互聯(lián)網(wǎng)研發(fā)模式,終于開(kāi)始和C#.net產(chǎn)生了矛盾:.net framework和iis不開(kāi)源。系統(tǒng)在運(yùn)行過(guò)程中遇到了如下幾個(gè)問(wèn)題:

1、接口服務(wù)項(xiàng)目的訪問(wèn)效率遇到瓶頸,基本只能上負(fù)載均衡加機(jī)器。

2、某些大項(xiàng)目要數(shù)十臺(tái)機(jī)器去承載日常訪問(wèn),運(yùn)維難度加大(后續(xù)上了持續(xù)集成和平滑發(fā)布,運(yùn)維方便了很多)。

3、較少數(shù)情況,系統(tǒng)會(huì)出現(xiàn)一些疑難雜癥,當(dāng)產(chǎn)生問(wèn)題的代碼在閉源工具包里,調(diào)試人員幾乎束手無(wú)策。(反編譯的代碼真難看囧……)

4、不斷增加機(jī)器,成本增加,這可不只是機(jī)器成本,人家不開(kāi)源,收費(fèi)也不便宜……

5、可定制化較差。某些極端場(chǎng)景下,我們希望程序能夠更大程度的消耗服務(wù)器硬件資源,而服務(wù)器程序都是別人的,人家為了安全都設(shè)定好“最佳閾值”了,很難更進(jìn)一步壓榨服務(wù)器資源。

6、缺乏開(kāi)源社區(qū)支撐、大數(shù)據(jù)相關(guān)研發(fā)乏力……

7、國(guó)內(nèi)部分互聯(lián)網(wǎng)公司提供的開(kāi)放平臺(tái)工具,居然不提供C#的SDK……(根據(jù)http請(qǐng)求自己寫(xiě)SDK)

諸如此類,不勝枚舉。

轉(zhuǎn)Java吧。

技術(shù)轉(zhuǎn)型的陣痛在所難免。公司內(nèi)的接口研發(fā)和后臺(tái)管理系統(tǒng)研發(fā)是分開(kāi)由不同人員負(fù)責(zé),能夠同時(shí)開(kāi)發(fā)接口和后臺(tái)系統(tǒng)的人并不多。筆者技術(shù)體系相對(duì)完善,在團(tuán)隊(duì)中獲得不少尊重。也曾親自帶團(tuán)隊(duì)做研發(fā),寫(xiě)完接口又帶兄弟研究ckeditor源碼并做定制化修改,忙的不亦樂(lè)乎。然而轉(zhuǎn)Java成了筆者當(dāng)時(shí)的心?。罕韭毠ぷ髯龅煤芎茫瑘F(tuán)隊(duì)不會(huì)允許貿(mào)然改用Java技術(shù)棧這種冒險(xiǎn)行為。筆者已經(jīng)私下學(xué)習(xí)了許久,卻不能直接上項(xiàng)目實(shí)際操練,非??上?。

精誠(chéng)所至金石為開(kāi),筆者終于等來(lái)了一個(gè)機(jī)會(huì):成為公司新項(xiàng)目的主程序員,負(fù)責(zé)整個(gè)項(xiàng)目的后端架構(gòu)、設(shè)計(jì)和研發(fā)。新項(xiàng)目人員不多,但都是各類技術(shù)中的優(yōu)秀人才,包含iosAndroid和H5研發(fā)人員,筆者為他們提供接口,并開(kāi)發(fā)后臺(tái)管理系統(tǒng)提供給產(chǎn)品和運(yùn)營(yíng)同事。

獨(dú)立負(fù)責(zé)設(shè)計(jì)和研發(fā),工作量雖大,自由度卻大了不少,于是筆者決定用Java來(lái)完成整個(gè)開(kāi)發(fā)任務(wù)。項(xiàng)目leader對(duì)筆者的技術(shù)功底很是信任,不過(guò)仍希望團(tuán)隊(duì)用C#.net追求穩(wěn)健,但看在筆者執(zhí)著堅(jiān)持,也就同意了。為了降低技術(shù)轉(zhuǎn)型對(duì)新項(xiàng)目帶來(lái)的風(fēng)險(xiǎn)和進(jìn)度影響,筆者還是做了一定妥協(xié):用Java研發(fā)接口服務(wù),后臺(tái)管理系統(tǒng)仍用C#.net。

接口研發(fā)期間筆者著實(shí)吃了不少苦頭,項(xiàng)目框架搭建問(wèn)題層出不窮,spring的運(yùn)用不純熟,導(dǎo)致經(jīng)常在框架層面報(bào)錯(cuò)。新項(xiàng)目的座位與公司Java開(kāi)發(fā)團(tuán)隊(duì)座位不在同一樓層,筆者幾乎每天都要爬幾次樓梯去Java研發(fā)團(tuán)隊(duì)取經(jīng)。好幾次遇到問(wèn)題解決不了,都想放棄然后用回C#.net。項(xiàng)目leader多次看到此情景曾多次施壓,筆者跟項(xiàng)目經(jīng)理坦(zhuang)言(bi):“如果Java搞不定,我會(huì)在兩天內(nèi)用C#.net把活干完,不拖項(xiàng)目進(jìn)度?!笨恐@份堅(jiān)持和韌勁,還有多次對(duì)Java研發(fā)團(tuán)隊(duì)的叨擾,項(xiàng)目框架終于搭建完成,筆者也借著多次的取經(jīng),弄清楚框架的原理,完成了對(duì)spring的實(shí)踐。擁有依賴倒置、控制反轉(zhuǎn)的編程思想和設(shè)計(jì)模式的運(yùn)用經(jīng)驗(yàn),理解Java框架的設(shè)計(jì)思路是很簡(jiǎn)單的,在框架搭建結(jié)束后,業(yè)務(wù)代碼的輸出幾乎是行云流水,在項(xiàng)目完成之際,筆者都忘記自己曾是個(gè).net程序員。項(xiàng)目最終順利上線,并且僅用兩臺(tái)機(jī)器就抗住了較高的并發(fā),筆者對(duì)Java有了更多的信任和喜愛(ài)。

有.net的編程基礎(chǔ),學(xué)習(xí)Java會(huì)相對(duì)容易,但必須逃離幾個(gè)陷進(jìn):

1、對(duì)基礎(chǔ)知識(shí)務(wù)必要重視:C#是一門非常出色的語(yǔ)言,它提供的語(yǔ)法糖讓復(fù)雜的業(yè)務(wù)表達(dá)起來(lái)也十分優(yōu)雅,搭配伶俐的lambda表達(dá)式和linq,數(shù)據(jù)結(jié)構(gòu)的基本原理在大部分場(chǎng)景下都被弱化,而數(shù)據(jù)結(jié)構(gòu)和算法正是編程的精髓。

2、對(duì)原理的渴望和求知欲:用C#編程,無(wú)法查看大部分程序集內(nèi)的方法,只能自己上論壇找或反編譯,求知欲可能會(huì)逐漸弱化。而寫(xiě)Java后,經(jīng)常會(huì)自己ctrl+鼠標(biāo)進(jìn)入方法查看源碼。這一點(diǎn)Java真是非常性感。

3、懶人思維不可取:C#.net對(duì)于鏈表數(shù)組等數(shù)據(jù)結(jié)構(gòu)的排序和查詢都做了高度封裝,幾個(gè)表達(dá)式就能得到想要的結(jié)果,而Java的表達(dá)式則沒(méi)這么伶俐。在Java世界里,自己弄明白原理,自己寫(xiě)是更高效、更對(duì)得起自己的方案。

使用Java完成商用項(xiàng)目的開(kāi)發(fā),只是技術(shù)轉(zhuǎn)型的開(kāi)始,只能算踏進(jìn)門,算不得轉(zhuǎn)型成功。筆者仍花了很多時(shí)間學(xué)習(xí)Java的數(shù)據(jù)結(jié)構(gòu);學(xué)習(xí)Apache的公共工具包,偶爾點(diǎn)進(jìn)去看看實(shí)現(xiàn)源碼;繼續(xù)學(xué)習(xí)設(shè)計(jì)模式及其應(yīng)用。在一些評(píng)估用C#研發(fā)更容易的項(xiàng)目,筆者仍然堅(jiān)持用Java去完成。為了能有更多Java項(xiàng)目練手,筆者申請(qǐng)進(jìn)入了搜索引擎研發(fā)部門,通過(guò)了Java團(tuán)隊(duì)架構(gòu)師的技術(shù)面試,加入了渴望已久的團(tuán)隊(duì),最終能專職寫(xiě)Java做搜索引擎服務(wù)。當(dāng)然,離開(kāi)了當(dāng)初的部門,也就拋棄了在老團(tuán)隊(duì)中的地位和榮譽(yù),但筆者覺(jué)得很值。

在多年開(kāi)發(fā)經(jīng)歷中,筆者確實(shí)感悟 語(yǔ)言是互通的,萬(wàn)變不離其宗。學(xué)習(xí)新語(yǔ)言只要下決心并付出努力,基本都能辦到。然而后續(xù)的挑戰(zhàn)則是更大規(guī)模的項(xiàng)目的設(shè)計(jì)思路,設(shè)計(jì)模式的運(yùn)用,架構(gòu)設(shè)計(jì)策略,代碼堆疊方案,甚至是不同功能模塊的技術(shù)選型。這些都需要仰仗厚重的經(jīng)驗(yàn)、扎實(shí)的功底和日積月累的技術(shù)實(shí)力。

未來(lái)大數(shù)據(jù)和機(jī)器學(xué)習(xí)的熱潮已經(jīng)如火如荼的展開(kāi),手握J(rèn)ava這一門利器,運(yùn)用storm、elasticsearch、Hadoop、lucene等絕技的Java程序員,必然能更好的適應(yīng)潮流。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2988

    瀏覽量

    108664
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    954

    瀏覽量

    30340
  • .NET
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    24282
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何成為一名合格的KaihongOS北向應(yīng)用開(kāi)發(fā)工程師

    :參加相關(guān)的培訓(xùn)、研討會(huì)或會(huì)議,不斷提升自己的技能。 10. 獲得認(rèn)證 專業(yè)認(rèn)證:如果可能,獲取相關(guān)的專業(yè)認(rèn)證,這可以增加你的可信度和市場(chǎng)競(jìng)爭(zhēng)力。 成為一名合格的北向應(yīng)用開(kāi)發(fā)工程師需要時(shí)間和努力,通過(guò)不斷學(xué)習(xí)和實(shí)踐,你將能夠掌握所需的技能,并在這
    發(fā)表于 04-23 06:46

    如何成為一名合格的北向應(yīng)用開(kāi)發(fā)工程師

    在快速發(fā)展的軟件開(kāi)發(fā)領(lǐng)域,北向應(yīng)用開(kāi)發(fā)工程師是個(gè)專注于系統(tǒng)級(jí)應(yīng)用開(kāi)發(fā)的高需求職位。 以下是成為一名合格的KaihongOS北向應(yīng)用開(kāi)發(fā)工程師的建議。 1. 基礎(chǔ)知識(shí) 編程語(yǔ)言 :學(xué)習(xí)至少
    發(fā)表于 01-10 10:00

    阿里云升級(jí)通義靈碼AI程序員,全面上線

    近日,阿里云宣布其備受矚目的通義靈碼AI程序員已正式全面上線,為開(kāi)發(fā)者帶來(lái)更為強(qiáng)大和便捷的編程輔助工具。 此次上線的通義靈碼AI程序員,在功能上實(shí)現(xiàn)了全面升級(jí)?,F(xiàn)在,它支持VS Code
    的頭像 發(fā)表于 01-09 11:16 ?692次閱讀

    TMS320C6000程序員指南

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000程序員指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-24 17:19 ?0次下載
    TMS320C6000<b class='flag-5'>程序員</b>指南

    TMS320C55x DSP CPU程序員參考補(bǔ)充

    電子發(fā)燒友網(wǎng)站提供《TMS320C55x DSP CPU程序員參考補(bǔ)充.pdf》資料免費(fèi)下載
    發(fā)表于 12-21 11:36 ?3次下載
    TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補(bǔ)充

    UCD3138A64/UCD3138128程序員手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《UCD3138A64/UCD3138128程序員手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 12-09 14:42 ?0次下載
    UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊(cè)

    機(jī)械革命發(fā)布CODE AI程序員

    近日,英特爾新質(zhì)生產(chǎn)力技術(shù)生態(tài)大會(huì)在成都舉行,機(jī)械革命作為重要參展商帶來(lái)了多款明星產(chǎn)品引爆全場(chǎng)!其中更是在AI PC軟件生態(tài)產(chǎn)品發(fā)布分論壇上,Intel、智譜、機(jī)械革命三方聯(lián)合發(fā)布了專為程序員設(shè)計(jì)的CODE AI程序員本,成為本次大會(huì)的
    的頭像 發(fā)表于 11-30 10:34 ?1071次閱讀

    Linux驅(qū)動(dòng)程序程序員指南

    電子發(fā)燒友網(wǎng)站提供《Linux驅(qū)動(dòng)程序程序員指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-22 15:53 ?0次下載
    Linux驅(qū)動(dòng)<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南

    AI編程工具會(huì)不會(huì)搶程序員飯碗

    AI編程工具可輔助編程,減少手動(dòng)編碼,提升效率,對(duì)程序員有積極影響也有挑戰(zhàn)。程序員需深化技能、拓寬知識(shí)應(yīng)對(duì)。長(zhǎng)遠(yuǎn)看,AI與人類程序員將共生共榮。
    的頭像 發(fā)表于 11-08 10:17 ?513次閱讀

    第五屆長(zhǎng)沙·中國(guó)1024程序員節(jié)開(kāi)幕

    據(jù)官方媒體報(bào)道,10月24日;? 第五屆長(zhǎng)沙·中國(guó)1024程序員節(jié)在湖南湘江新區(qū)開(kāi)幕;本次中國(guó)1024程序員節(jié)以“智能應(yīng)用新生態(tài)”為主題。設(shè)置有岳麓對(duì)話、技術(shù)英雄會(huì)、主題峰會(huì)及賽事、展覽等活動(dòng),
    的頭像 發(fā)表于 10-25 15:42 ?473次閱讀

    90后程序員的職業(yè)成長(zhǎng)漫談

    開(kāi)始,逐步了解公司的業(yè)務(wù)、文化,以及學(xué)習(xí)如何成為一名合格的職場(chǎng)人;19-21年,我開(kāi)始負(fù)責(zé)塊完整的業(yè)務(wù),并逐漸成長(zhǎng)為小組負(fù)責(zé)人; 2022年開(kāi)始負(fù)責(zé)整個(gè)部門的架構(gòu),并且開(kāi)始參與些公
    的頭像 發(fā)表于 10-15 15:24 ?531次閱讀
    90后<b class='flag-5'>程序員</b>的職業(yè)成長(zhǎng)漫談

    【轉(zhuǎn)型必看】Java到AI,程序員的逆襲秘籍,轉(zhuǎn)行人工智能不再是夢(mèng)!

    人工智能,轉(zhuǎn)型的優(yōu)勢(shì),薪資對(duì)比,以及轉(zhuǎn)型所需的知識(shí)和學(xué)習(xí)路線等。01Java開(kāi)發(fā)者能否轉(zhuǎn)型人工智能?答案是肯定的。Java作為種廣泛使用的編程語(yǔ)言,擁有強(qiáng)大的生
    的頭像 發(fā)表于 07-31 14:42 ?2328次閱讀
    【轉(zhuǎn)型必看】<b class='flag-5'>Java</b>到AI,<b class='flag-5'>程序員</b>的逆襲秘籍,轉(zhuǎn)行人工智能不再是夢(mèng)!

    京東上萬(wàn)程序員都AI用它!

    對(duì)大模型生成代碼進(jìn)行智能修復(fù),為程序員開(kāi)啟代碼漏洞修復(fù)的“自動(dòng)駕駛”模式,不但減少人工接入、提高工作效率,更為企業(yè)抵御內(nèi)外部各種攻擊構(gòu)建起道堅(jiān)固的安全屏障,確保業(yè)務(wù)的連續(xù)性和穩(wěn)定性。 JoyCoder是京東云自主研發(fā)的款輔助
    的頭像 發(fā)表于 07-17 16:29 ?480次閱讀
    京東上萬(wàn)<b class='flag-5'>程序員</b>都AI用它!

    程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)

    10月24日,程序員專屬的節(jié)日里,我們盛大開(kāi)啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動(dòng)!這不僅是場(chǎng)視覺(jué)的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠(chéng)摯邀請(qǐng)每
    的頭像 發(fā)表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)

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

    10月24日,程序員專屬的節(jié)日里,我們盛大開(kāi)啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動(dòng)!這不僅是場(chǎng)視覺(jué)的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠(chéng)摯邀請(qǐng)每
    的頭像 發(fā)表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!