乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      程序員為什么熱衷于造輪子,升職加薪嗎?

       小傅哥 2021-12-13


      作者:小傅哥
      博客:https:// - 原創(chuàng)系列專題文章

      沉淀、分享、成長(zhǎng),讓自己和他人都能有所收獲!😄

      一、前言

      哪個(gè)架構(gòu)師沒造過輪子?

      你想過這樣一件事嗎?是先具備能力在安排職位,還是先安排職位在學(xué)習(xí)? 🤬什么?走后門,你出去!

      就像我們上學(xué)考試、跆拳道考段、晉升答辯一樣,都是先具備了可勝任上一階段的能力,才給予相應(yīng)的職位。所以,架構(gòu)師造輪子從做程序員時(shí)候就開始了,只不過到了架構(gòu)師階段可以造出更好的輪子。

      鑒于實(shí)際業(yè)務(wù)開發(fā)的緊急程度,不會(huì)允許你造輪子。但造輪子,幾乎是每個(gè)程序員突破技術(shù)瓶頸的最佳方式。千萬不要因?yàn)橐痪?#xff0c;不要重復(fù)造輪子的借口,給自己一個(gè)不學(xué)習(xí)的理由!

      二、我造過的輪子

      我可能是癡迷于造輪子!

      了解小傅哥的粉絲可能都知道,我的第一份工作是寫了兩年的 C#,但為了不放下我寫好的 Java,在工作之余就用 Java 語(yǔ)言把我能接觸到到的項(xiàng)目,都用 Java 寫了一遍,包括;串口打碼機(jī)服務(wù)、中繼器對(duì)接、PLC數(shù)據(jù)采集等等。

      等到正式進(jìn)入互聯(lián)網(wǎng)后,像是為我打開了新的大門,這能接觸到的知識(shí)太niao性了,盤它!來,看我造過的輪子。

      1. RPC 通信組件

      • 文章:手寫RPC框架第三章《RPC中間件》
      • 源碼:https://github.com/fuzhengwei/itstack-demo-rpc
      • 難度:???
      • 15年初進(jìn)互聯(lián)網(wǎng),驚訝的發(fā)現(xiàn)原來兩個(gè)工程之間還可以使用RPC通信,以前公司使用的還是http或者webservice,所以這部分知識(shí)給我?guī)砹撕艽蟮臎_擊。為了能更明白的了解它,找到了一些git中的源碼,像Dubbo、gRPC,進(jìn)行學(xué)習(xí)。學(xué)著學(xué)著,就開始動(dòng)手自己實(shí)現(xiàn)一次,實(shí)踐的過程學(xué)到了大量的知識(shí),包括;結(jié)合Spring開發(fā)中間件、自定義配置、主定義注解、切面攔截、Netty通信、編解碼器、流量整形等等。這些知識(shí)也為我后續(xù)開發(fā)其他中間件,打下了一個(gè)很好的基礎(chǔ)。

      2. 編寫JVM虛擬機(jī)

      • 文章:用Java實(shí)現(xiàn)一個(gè)JVM虛擬機(jī)
      • 源碼:https://github.com/fuzhengwei/itstack-demo-jvm
      • 難度:?????
      • 這是一個(gè)用不上的輪子,同時(shí)這么干可能有點(diǎn)虎🤔,整整寫了一個(gè)月,寫了幾十萬行代碼,才能運(yùn)行幾個(gè)簡(jiǎn)單的HelloWorld。,因?yàn)槲也幌肼爠e人吹著一些理論詞忽悠了我的編碼生涯,也不想看幾本不能實(shí)操落地的書就感覺學(xué)會(huì)了。所以,我才愿意投入大量的時(shí)間進(jìn)行實(shí)踐,雖然我不能完整的編出一個(gè)可以用到生產(chǎn)使用的JVM,但我通過這樣的學(xué)習(xí),了解了JVM的基本功能;搜索和解析class、字節(jié)碼指令集、運(yùn)行時(shí)數(shù)據(jù)區(qū)、虛擬機(jī)棧、棧針、局部變量表、操作數(shù)棧、寄存器等,是如何一步步把Java代碼跑起來的。

      3. 基于SpringBoot的分布式任務(wù)中間件

      • 文章:開發(fā)基于SpringBoot的分布式任務(wù)中間件DcsSchedule
      • 源碼:https://github.com/fuzhengwei/schedule-spring-boot-starter
      • 難度:???
      • 這是一個(gè)什么輪子呢?簡(jiǎn)單來說它這功能類似xxl-job,組件要解決的問題是把定時(shí)任務(wù),可以分配到不同的機(jī)器上去執(zhí)行,同時(shí)它是以 zookeeper 作為注冊(cè)中心擴(kuò)展為分布式任務(wù)調(diào)度系統(tǒng)。接入方式接單易用,統(tǒng)一控制啟停、宕機(jī)災(zāi)備等。并且能自動(dòng)檢測(cè);部署數(shù)量、任務(wù)總量、成功次數(shù)、失敗次數(shù)、執(zhí)行耗時(shí)等信息。

      4. 服務(wù)治理中間件

      • 文章:服務(wù)治理中間件之統(tǒng)一白名單驗(yàn)證
      • 源碼:https://github.com/fuzhengwei/door-spring-boot-starter
      • 難度:???
      • 服務(wù)治理是什么?其實(shí)服務(wù)治理包括的內(nèi)容也比較多,例如;從部署層面、管理層面、應(yīng)用層面、網(wǎng)關(guān)層面等等,而這里的服務(wù)治理說到的是應(yīng)用層面,簡(jiǎn)單來說,例如你有很多個(gè)服務(wù)系統(tǒng),每個(gè)服務(wù)的對(duì)外層都需要白名單,那怎么辦呢?不太可能每一個(gè)系統(tǒng)都重復(fù)的開發(fā)類似的功能,這樣也很難管理。所以我們希望把業(yè)務(wù)系統(tǒng)中,非業(yè)務(wù)邏輯的通用性核心功能抽離出來,開發(fā)成統(tǒng)一的業(yè)務(wù)組件,來幫助服務(wù)解耦,讓業(yè)務(wù)系統(tǒng)更關(guān)心業(yè)務(wù)流程開發(fā)。那么這就是服務(wù)治理其中的一個(gè)作用。

      5. Netty仿桌面版微信

      • 文章:Netty+JavaFx實(shí)戰(zhàn):仿桌面版微信聊天
      • 源碼:https://github.com/fuzhengwei/NaiveChat
      • 難度:????
      • 本項(xiàng)目是作者小傅哥使用JavaFx、Netty4.x、SpringBoot、Mysql等技術(shù)棧和偏向于DDD領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方式,搭建的仿桌面版微信實(shí)現(xiàn)通信核心功能。

      6. 還有很多造過的輪子

      1. 數(shù)據(jù)庫(kù)分庫(kù)分表路由中間件
      2. Redis緩存讀寫引擎中間件
      3. ES + Ibatis結(jié)合使用中間件
      4. 全鏈路業(yè)務(wù)流程監(jiān)控

      除了,這些造的輪子還有很多,其他的不一一列舉了。當(dāng)然我不只造輪子,還造各種小工具,甚至還包括js寫的散列路由計(jì)算器??傊?#xff0c;我可能在造輪子的路上越走越遠(yuǎn),是因?yàn)檫^于癡迷🧐!

      三、造輪子升職加薪嗎?

      造輪子本身不一定升職加薪,如果你第一次造,也許會(huì)被扣薪。

      如果是運(yùn)用到業(yè)務(wù)系統(tǒng)中的造輪子,不同于CRUD,往往需要了解 Spring 或者 SpringBoot 部分源碼,以及動(dòng)態(tài)代理和反射等知識(shí)。并且在設(shè)計(jì)實(shí)現(xiàn)上也要考慮的非常全面,否則出了事故就不只是一個(gè)系統(tǒng),而是所有使用你這個(gè)輪子的系統(tǒng)都需要隨著你升級(jí)改造上線。所以,造輪子不一定升職加薪!

      但,造輪子可以讓個(gè)人的技術(shù)棧得到很全面的成長(zhǎng),也許還能讓你在某個(gè)階段突破現(xiàn)有的技術(shù)瓶頸。因?yàn)樵燧喿幽阈枰獙W(xué)習(xí)以往別人的輪子、組件的源碼、拓展的技術(shù)棧以及更加全面的思考🤔。

      最后是你造的輪子要能經(jīng)受起驗(yàn)證,也要能適應(yīng)業(yè)務(wù)需求進(jìn)行拓展,并且這可能還是一份除了你日常業(yè)務(wù)系統(tǒng)開發(fā)外的其他工作。是否能經(jīng)受起這份考驗(yàn),也就決定了你能收獲多少知識(shí)。而這份別人沒掌握的知識(shí)才是你升值加薪的籌碼!也是你能留下的本事和走出去的能力!

      四、有人反對(duì)你造輪子?

      不要重復(fù)造輪子、不要重復(fù)造輪子、不要重復(fù)造輪子

      很多時(shí)候你是否聽到這句話,而把自己內(nèi)心的小火苗澆滅。其實(shí)這句話從某些時(shí)候來說不一定是錯(cuò)的,因?yàn)橐粋€(gè)項(xiàng)目的開發(fā)到上線,需要對(duì)時(shí)間成本、項(xiàng)目質(zhì)量、可靠度進(jìn)行評(píng)估,誰(shuí)也不敢貿(mào)然使用一個(gè)沒有驗(yàn)證過的新功能,也不敢讓你拿著練手。

      當(dāng)然,有時(shí)候我們?cè)斓妮喿硬灰欢ㄊ侵貜?fù)的,可能是創(chuàng)新的。但這個(gè)輪子的階段,不應(yīng)該是新項(xiàng)目啟動(dòng)時(shí)候開始,最起碼應(yīng)該是你在這之前就寫過,已經(jīng)驗(yàn)證過,已經(jīng)投入生產(chǎn)過,才敢讓你造了用。對(duì)于當(dāng)前這次開發(fā),如果非常緊急,那么最好的是求穩(wěn),并在這個(gè)項(xiàng)目里吸收更多的經(jīng)驗(yàn)。并總結(jié)如果是用了你的輪子,那么這個(gè)輪子能支持多久,還需要擴(kuò)展嗎,會(huì)不會(huì)有問題。

      這一切的學(xué)習(xí)、總結(jié)、應(yīng)用,最終都是可以為你技術(shù)棧成長(zhǎng)鋪路的。不要因別人反對(duì)就放棄,也不要倔強(qiáng)的就非要怎樣,而且游刃有余的成長(zhǎng)和學(xué)習(xí)。有準(zhǔn)備的人,總是會(huì)在必要的時(shí)候給力😎!

      五、總結(jié)

      • 沒有一句話能評(píng)論造輪子的錯(cuò)和對(duì),即使是已經(jīng)有了的輪子,那么你以學(xué)習(xí)為目的呢?你以可以拿出更優(yōu)的方案為導(dǎo)向呢?所以,想造就造吧,只不過千萬要驗(yàn)證在使用!
      • 造輪子能我們學(xué)到很多業(yè)務(wù)系統(tǒng)開發(fā)以外的知識(shí),這些知識(shí)能拓展你的技術(shù)棧,掃描掉一些技術(shù)盲區(qū),為你以后的晉升答辯或跳槽面試鋪好夠到更高薪資的墊腳石。
      • 想造輪子要學(xué)會(huì)讀源碼、學(xué)會(huì)技術(shù)遷移、學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、學(xué)習(xí)算法、學(xué)習(xí)設(shè)計(jì)模式,一定是先提升技術(shù)視野了,才能讓自己有造輪子的想法,而不是硬造。

      六、系列推薦

      • Mybatis接口沒有實(shí)現(xiàn)類為什么可以執(zhí)行增刪改查
      • Spring定時(shí)任務(wù)Quartz執(zhí)行全過程源碼解讀
      • 基于jdbc實(shí)現(xiàn)一個(gè)Demo版的Mybatis
      • 咋嘞?你的IDEA過期了吧!加個(gè)Jar包就破解了,為什么?
      • 手寫mybait-spring核心功能

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多