<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      快速技術成長:提煉和總結項目中的技術重難點

      踏著重難點前進。

      引語

      在“程序員工作中的理性與感性活動及所需的技能素養 ”一文中,談到程序員軟件開發中的常見活動及所需需要的技能素養;在“談談程序員應當具備的技術思維”一文中,談到了程序員在其職業生涯中需要具備的技術性思維;在“程序員做什么有利于技術能力的成長”一文中,談到了程序員提升技術能力的常用方法和途徑;在“如何突破技術瓶頸”一文中,談到了程序員如何突破在一定階段的技術瓶頸。

      最近,我又發現了一種能夠快速提升技術的方法,就是提煉和總結項目中的技術重難點。項目中的技術重難點,通常是一次項目中的最大收獲點,也是下次面試中你能夠突出的亮點。功夫在平時。

      一個項目,大部分情況可能都是平淡無奇的碼代碼墻,有時則可能會有一些挑戰,這就是項目中的技術重難點。能否及時攻克這些重難點,設計方案是否可靠,決定了項目的成敗和是否會返工,也有助于個人技術能力的提升和技術經驗的積累,和后續待遇的上漲。

      那么項目中技術重難點有哪些呢? 從自己的職業生涯中提煉出如下一些,與讀者分享。


      項目中的技術重難點

      開發新系統

      面試官看到你的簡歷時,很難說想看到你的工作經驗只是一直維護老系統,而是希望能看到有新系統新項目開發。新系統新項目,往往意味著新的技術棧、先進的技術應用。無論是負責系統整體方案、架構設計和技術選型、新語言的掌握應用、新技術棧、還是作為團隊開發負責人,都是亮點。

      比如我參與一個入侵系統新系統開發。一個團隊采用新的理念、新的設計方案來改寫原來的系統。所有模塊都重新實現了一遍。當然也有借鑒原有系統的好的做法,但更多的是新的做法。

      新系統的開發,可以將你的簡歷亮點一次拉滿。

      技術重難點:架構設計和整體方案、模塊設計與開發、團隊領導力、新技術棧、新語言應用。

      性能優化

      性能優化是第二個能夠抓住面試官的亮點。

      搭建性能實驗,使用性能工具來分析性能、定位熱點區域、遇到的困難、找到辦法去提升性能,積累性能優化經驗,是一個很重要的技術提升點。

      當面試官問到這一點時,可以通過 STAR 簡潔地回答某個項目的背景、問題、困難、方法、成果;能夠系統地說出性能優化的常用手段;能夠說出遇到的問題及解決方案,基本上就過關了。

      日常面試中,很多候選人能夠說出幾點,但會比較散,不夠系統。如果有 5-7 年工作經驗,還表達得不夠有條理不夠系統化,那么這種回答就是普通水平的。

      技術重難點:性能問題及解決方案;性能手段及經驗。


      大數據量

      大數據量是性能優化之上的一個較大的技術挑戰。

      你所負責的項目或系統中,業務數據量級有多大,增量有多少,如何應對。小數據了有小而美的做法,大數據量有更好的技術手段。

      是否要分表、分庫、分片,遇到哪些開發難題、如何解決、如何部署上線,都需要記錄下來。

      技術重難點:大數據量、存儲擴展能力、性能。

      瞬時大并發流量

      瞬時大并發流量,是另一個較大的技術挑戰。與大數據量這種逐漸累積的類型不同,瞬時大并發流量只出現很短的一段時間,卻能對系統帶來很大的沖擊,甚至使系統直接崩潰。

      怎么應對瞬時大并發流量,有一整套高并發方案。服務治理、限流、熔斷降級、負載均衡、CDN、冗余、全鏈路壓測、應急方案等。即使自己的業務中暫時用不到,也可以去深入了解下,作為技術進階的一層階梯。

      技術重難點:高并發、系統穩定性優化。


      新算法設計

      新算法設計往往是一種有樂趣的技術挑戰。

      同時,要在實際系統中應用新算法,還需要加入各種工程考量。比如多正則規則命中文本內容高亮展示。除了設計出算法外,還需要考慮各種復雜的正則、正則表達式超時、多行匹配的情況。

      技術重難點:算法設計、工程考量。


      結構變更

      從一對一到多對多,往往需要對原有代碼結構進行較大的改造,從而滿足對靈活性和性能的要求。

      比如做網絡封禁,從一個主機封禁一個IP,到多個主機封禁多個IP,采用并發批量的結構來改造原有單個處理的結構。

      結構變更,在代碼設計上,是一種挑戰。對個人思維能力、技術和設計能力提升有一定幫助。

      技術重難點:設計模式、結構重構。


      API 設計

      前端有自己的邏輯組織結構。后端如果僅僅只按照自己的想象給前端提供的接口,可能自以為是通用的,但實際上用起來很難用。

      比如IP詳情優化,涉及與前端的交互。在不同場景下,前端需要展示IP不同的樣式,同時在某種情形下,需要能夠展示IP對應的主機列表。這個問題,要考慮前端接口易用性,后端可能得遇到一個需求就改一次;如果只考慮后端接口通用性,則前端就寫得很難看。

      如何兼顧 API 接口的友好性和通用性,確實也是一種類型的挑戰。

      技術重難點:API 接口設計。


      后端系統交互

      除了提供 API 與前端交互,后端系統常常還需要其它系統交互、跟各種大數據系統對接。比如對接大數據算法組件、檢測引擎等。制定合理的數據格式和安全便捷的通信方式,就是技術重難點。此外,還需要考慮各種容錯處理。

      技術重難點:數據格式制定、通信方案、容錯處理。


      系統集成

      需要構建業務監控系統。此時,并不需要你精通什么原理,而是評估各種系統,善于把已有系統的能力組合起來,為我所用。

      技術重難點:評估系統,系統集成


      技術預研

      偶爾,可能會遇到技術預研的事情。不是有了方案立即去開發,而是要先去探索嘗試各種方案利弊如何,是否滿足項目需求,做一些技術預研與技術選型。比如,入職一月后做虛表機制探索,后面應用到 K8S 日志審計檢測里。

      預研結果,往往是通過一個表格來匯報的。需要滿足哪些指標、有哪些實現方式,每一種實現方式在各個指標上的表現如何,最終根據實際情況權衡出一個比較適合的實現來。

      技術重難點:技術預研、技術選型、預研結果報告。


      中間件改造

      中間件改造,有時需要對中間件做一些源碼修改,以滿足項目中的特定要求,有時需要做出中間件的某種功能平替。這個過程中,往往需要解決很多小的技術問題,而這些小的技術問題中,可能會出現比較刁鉆的。

      比如近期做的信創改造,用 kafka 實現 redis 的 pub sub 機制,并滿足容器場景下的應用。從接口交互到實現方案到細節打磨,都有受益。

      中間件屬于較底層的層面,且影響面通常很大,因此中間件改造是一種難度偏大的技術挑戰。如果你能搞定,相信你一定會感覺到內功又上一層樓。

      技術重難點:中間件源碼、技術小難題攻克。


      復雜流程設計與改造

      有時,你需要在已有的復雜流程中加入一些功能,或者改造流程使之更簡潔更高效。難的不是加功能,而是現有流程實現中通常插根針都比較難,并且常常涉及到較大的影響面。此外,復雜流程很容易出現難查的 bug, 尤其是有大量交互或高并發情況下。

      比如做惡意進程服務端解殼處理流程,就總結出構建復雜流程的方法論:“分解-抽象-封裝-復用-組合-關聯-重構”。任意復雜的流程,都可以采用這個方法論構建出來。

      技術重難點: 結構重構,影響范圍大,保證改動不影響原有功能,疑難問題排查。


      技術重構遷移

      如果你加入到一個已經度過初創期的團隊,那么很可能會遇到系統需要技術重構的事情。也就是原系統之前因為難以承載業務復雜度的增長和業務量的增長,而需要作出一些技術性的重構。換技術棧。

      比如在阿里云入職后將 Flex 遷移到 Java ,在有贊剛入職不久的訂單導出重構(php 遷移到大數據棧),接下來的交易系統重構(用領域驅動模型改寫),還有進入青藤云之后的入侵系統重構(檢測流程的組件編排,Java 遷移到 Go)、降噪系統遷移重構。

      系統重構,難的是架構設計和部署遷移。架構設計,需要滿足未來幾年的業務需求;而部署遷移,難的是不造成線上故障。

      技術重難點:架構設計(性能、穩定性、可用性、擴展性、定制性、部署等)、部署(灰度、分流)、數據遷移。


      全模塊開發

      一個人完成一個功能的所有涉及模塊的開發。

      比如服務端入侵的一個功能開發,涉及檢測配置、系統規則下發、告警檢測流程、告警列表、告警詳情、事件列表、事件總覽和分析板、告警歸并、自定義規則、加白處理、元素響應及處置。

      這需要一個人對現有系統有相當的理解和掌握,有整體觀和全景視角。同時也需要系統設計得足夠通用靈活,這樣一個人做起來也不費事。可能搞定這個功能的一個模塊也就是一兩行配置而已。

      可以說,這是一種較大的挑戰類型。

      技術重難點: 全局視角、熟悉系統各個模塊的實現、熟悉系統技術棧。


      設計方案不周到的坑

      有時,設計方案考慮不周到,就會踩一些坑。

      比如進程元素的唯一標識用 PGUID,但是會出現同一個元素在不同告警里出現,而客戶端因為業務的不同,上報的字段有細微差異,就會導致進程元素的某些信息被反復覆寫,查不到自己所新增的那個字段的值。

      實際上,這個就是進程元素唯一標識設計不太合理或者說缺乏進程擴展信息導致。進程元素應當包含一個擴展信息,這個擴展信息包含一個告警ID到特有字段的映射(這個也可以記錄在告警表里)。這樣,通用信息不會受影響,而擴展信息也不會被覆寫。

      記錄這些教訓,也是積累了系統設計方面的經驗。

      技術重難點:設計方案的坑


      疑難問題排查

      開發過程中,有時也會遇到一些疑難問題排查,比如臨界問題、并發問題、時間差問題、數據不一致問題等。

      疑難問題排查,可以鍛煉一個人“心細如針、明察秋毫”的細心的特質。

      技術重難點:臨界問題、并發問題、時間差問題、數據不一致問題等各種問題類型。


      科學地提升

      相較于平平無奇地完成一個又一個需求(嗯,像不像接客?),采用科學的方法快速提升,更見效果。

      咱們來看奧運健兒,他們為了沖鋒世界冠軍之座,顯然不是一個事情低水平重復做,而是采用一定的科學方法和量化指標,不斷訓練、測量、反饋、提升、再訓練、再測量、再反饋、再提升。這樣子螺旋式提升的。

      那么,在做軟件開發的過程中,要快速提升自身技術能力,也需要有意識地去提煉項目中的重難點,借助這些重難點的磨煉,讓自己的能力更上一層樓,而不是在一個個平庸的需求開發里原地踏步。

      我把入職青藤云安全的三年的項目重難點總結出來之后,就覺得自己還是有了不少提升的。如果我把前兩家公司的項目重難點都總結出來,就能看到一個清晰的技術提升路線。


      小結

      本文分享了自己在職業生涯中遇到的大大小小各種技術挑戰。正是解決這些技術挑戰,促進了能力的提升。要想快速提升,不能簡單地重復已有的事情,而是有意識地去識別項目中的重難點,思考和解決他們,最終把方法和經驗都記錄下來。日積月累,總有一天,你會發現自己不負時光,更上一層樓。


      posted @ 2024-08-04 07:33  琴水玉  閱讀(745)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产三级精品片| 最新精品国产自偷在自线| 国产精品中文字幕视频| 精品无码av无码免费专区| 久久99精品久久久久久9| 亚洲一区二区三区啪啪| 国产亚洲精品岁国产精品| 欧美福利在线| 国产尤物精品自在拍视频首页| 日韩av片无码一区二区三区| 国产精品午夜福利资源| 国产成人av免费观看| 国产成人av免费观看| 国产一区二区精品久久岳| 久久精品国产久精国产| 亚洲熟女乱色综合亚洲图片| 99中文字幕国产精品| 不卡av电影在线| 久久精品一本到东京热| 精品亚洲国产成人av在线| 国产欧美精品一区aⅴ影院| 图木舒克市| 午夜视频免费试看| 亚洲人成网网址在线看| 无码中文字幕人妻在线一区二区三区| 国产成人亚洲一区二区三区| 卡一卡2卡3卡精品网站| 保德县| 国产午夜精品视频在线播放 | 国产av国片精品一区二区| 亚洲av成人无网码天堂| 加勒比无码av中文字幕| 日韩精品国产中文字幕| 加勒比无码人妻东京热| 无码精品一区二区免费AV| 日韩高清亚洲日韩精品一区二区| 亚洲大尺度无码无码专线| 国产人妻一区二区三区四区五区六 | 中文字幕日韩区二区三区| 一区二区三区日本久久九| 国产精品毛片一区二区|