回覆列表
  • 1 # 渣渣俊的vlog

    我和作者的經歷一模一樣,畢業那時就進了一家中小型公司,公司的專案都已經成型了,跟我一起進去的幾個小夥都是維護舊專案,最多客戶說加需求才會有新功能寫,不然都是修修改改bug,美化介面。

    但是我覺得我在維護舊專案能學到很多,比如說閱讀別人的程式碼,是對自己的一種成長,從中可以看出程式碼的質量,提醒自己不能和他們寫的一樣,會經常遇到空指標的報錯,各種小問題,學會排查問題,學的最多的是,最佳化別人的程式碼,我從一個3000+行的jsp最佳化,封裝。

    上面這些都是我實習時期的工作和收穫

  • 2 # fist3

    沒幫助,建議重新瞭解需求,重新梳理業務框架,再看看原專案的庫表設計是否合理,再評估是否有改的必要。當然啦如果為了修改BUG就無需上面的動作了。搞研發首先懂業務。

  • 3 # 五四瘋哥

    這個看你所謂的Java老專案指的是你這個專案的架構太老了還是僅僅因為是上批人留下的舊專案,但架構還是當前主流。

    如果你說的是專案的架構老了,那可以肯定的說對以後找工作沒有什麼好處。現在技術發展這麼快,一不小心就會被落下,雖然不說要走在技術前列,但至少要跟上主流。我面試的過程中,經常碰到一些程式設計師在上家只是維護老專案,他們接觸的架構太老,好一點的還知道Struts,更倒黴的有些進的是大公司,維護的是十幾年前的專案,架構還是用的公司自已封裝的,甚至連SpringMVC都沒用過,更別說Springboot等等了。這些人換工作的理由基本都有一條感覺技術上落伍了,想要接觸下新的架構。尤其是應屆就進公司維護老架構,完全沒有新技術的工作經驗,對以後的發展很不利。

    另一種情況,如果這個專案的架構還屬於當前的主流,只不過是之前已經完成了,你現在只是維護,那可以說對你是一個很好的機會。靜下心來,認真去學習這個專案,先從整體上把握整個架構,請求進來一步步怎麼走的,每一步都用到了哪些配置、哪些技術,然後再掌握細節,可能這個地方用到了鎖,那個地方用了多執行緒,等等。在有成型的專案參考的情況下,學東西特別有效果,千萬不要忙時只顧寫程式碼,閒時只會撩妹子。

  • 4 # 有趣的程式碼

    無論新系統的全新設計開發,還是原有系統的需求和問題維護,都對自己的開發技能有很大的幫助。尤其是新入職開發人員,有機會開發新系統的機會都很少,一般都是從熟悉舊系統開始。對於舊系統的開發和維護,不僅對自己的開發能力有幫助,還會要求自己對整個系統的框架和脈絡有個熟悉,比如,原來設計者的意圖,如果換做自己,如何設計和實現。

    遇到問題,多問自己幾個為什麼,不要只是停留在表面,要深入思考框架原理。

    設計新系統,是在一張白紙上繪圖。而維護舊系統,要求更高,進步也更快。

  • 5 # 趙黑臉

    你要意識到一個問題,工作中大部分時間都是在維護老的專案。如果你進入一家公司,從開始就是開發新專案,才意味著你能學到的東西非常有限。

    透過維護現有的,已經能穩定工作的專案,學習別人的編碼方式,專案架構,來幫助你形成有一個正確的編碼思維。軟體具有工程性,就是說會有很多現存的理論來指導你如何開始,如何進行,整個過程如何儘可能正確順利的進行下去。但是同時工程也意味著單純的理論是不夠的。你需要在實踐中總結積累經驗,理論指導實踐,實踐在反饋回來,糾正理論。本人是軟體工程專業出身,曾經以為很牛很主流的的理論,比如瀑布模型,面向物件程式設計等,在實際工作了之後,才意識到理論就是理論,實踐會根據自己的需要,以及長期的經驗積累,有選擇的做取捨。因此,多看看人家現在的一名上線的專案是怎麼玩兒的,往往很有好處。讓你從頭開始寫一個專案,我猜你必然會落入理論的圈套,最後無法自拔,專案延期,無限加班。如果總是自己在創造一些東西,聽起來很酷,但是很多時候你也可能在錯誤的道路上走的越來越遠!

    當然,你也得多留心。現有程式碼也會存在各種垃圾code在裡面,這也就需要你在維護這些專案的時候,思考那些程式碼是值得學習的,那些程式碼是應該改進的,透過這樣的思考,你取得的進步絕對會大於你整天做些專案大的多。

  • 6 # IT人劉俊明

    作為一名IT行業的從業者,同時也出版過Java程式設計書籍,所以我來回答一下這個問題。

    首先,在軟體開發領域,尤其是應用級開發領域,改需求是一種常態,即使開發網際網路領域的產品,也需要不斷的迭代。隨著大資料、雲計算的發展,軟體需求幾乎每天都要進行調整,不少大型網際網路企業甚至有多個不同的開發團隊同時向多個不同方向進行產品迭代,以便於能夠及時把握住使用者的各種最新需求。所以,程式設計師在面對需求更改的時候,一定要有充足的思想準備。

    由於Java語言已經有了多年的應用歷史,所以目前有大量的歷史專案都是基於Java語言編寫的,隨著技術的不斷髮展,這些歷史專案如果想進一步延長生命週期,必然需要進行一定的修改,所以目前在Java傳統專案的基礎上進行開發也是比較常見的現象。

    雖然是從事歷史遺留專案的開發,但是由於Java語言目前依然是IT行業內最為流行的程式語言之一,所以對於開發經驗並不豐富的應屆畢業生來說,也能夠積累一定的開發經驗,畢竟實際的開發專案能夠獲得更快速的成長,同時也能夠積累一定的行業經驗,可以說是一舉兩得的事情。

    對於應屆畢業生來說,要想不斷提升自身的職場競爭力,需要做好三方面的事情,首先是不斷豐富自身的知識結構,重點在於能夠緊跟技術發展趨勢;其次是能夠透過自主學習完成某個細分方向的突破,這通常需要一個紮實的基礎學科基礎,比如數學;最後是積累豐富的實踐經驗。所以,在工作的初期透過修改遺留專案也能夠積累一定的開發經驗。

  • 7 # 睿智的天氣播報

    作為一名Java開發人員,其實我剛進公司做開發的時候大體情況和您類似。

    面對這種情況,其實更多的需要的是我們自身態度、行動方面的改進,畢業應屆生,本身就是職場小白,代表著無任何開發經驗、專案經驗、工作經驗,這種情況下,專案組長更多的可能考慮的是讓應屆生逐漸去熟悉工作環境並且適應這種節奏。同時安排的工作更多的是開發維護為主。

    首先維護一個Java老專案,難度其實說難不難,說不難也難,主要是看遇到什麼問題。埠阻塞、CPU彪升、gc問題對剛入職場的人來說可能較難,但是一些新需求、小型需求的開發,更多的是邏輯的編寫,這部分其實很簡單,畢竟老專案中有很多的類似程式碼。天天改新需求其實也是程式設計師的工作內容。

    程式設計師本身就是在開發需求功能,天天改新需求,可能是與您對接的產品經理的工作做得不夠周全,這就需要您與產品經理的協商。

    考慮以後的工作,其實這就需要您在完成自身的工作的時候,儘可能的去拓展一些知識面,學習一些新的技術,您現在本身的工作其實除了寫邏輯程式碼應該會接觸到一些專案的構建以及框架、程式碼構建思維等相關的知識,這都是您現在需要去面對、總結、提升自己的方面。

    既然您負責老專案的維護,那就您完全有時間把老專案全部吃透。從老專案怎麼搭建、到搭建的結構性編碼、編碼的思維、框架的使用都是您或缺的知識和能力。等您什麼時候能單獨擼出一個大型專案的時候,您也許就是架構師了。這對您將來跳槽找工作其實是很多幫助的。找工作更多的會詢問您參與的專案。根據專案區詢問一些具體的開發細節或者開發難題的處理。

  • 8 # 大學生程式設計指南

    從事軟體開發多年,對於剛入行的程式設計師來講開始的工作都會覺得比較枯燥或者沒有什麼長進,技術類的職業一般對於新手需要一個很長的適應期,因為一旦新手開發做專案之後出現問題解決排查的時間還不如用一個成熟一些的程式設計師哪怕任務多一些,最後的結果也會比新手程式設計師要強一些,不同的職位的新手程式設計師經歷的適應期也會不太一樣,像樓主說的在以前的框架的基礎上修改需求,這也是大多數公司的程式設計師要做的事情,因為不可能所有的專案都是從頭再來。

    在框架的基礎修改需求不僅僅是新手程式設計師做的事情,也是很多成熟的程式設計師做的事情,一個程式設計師首先要會做東西,然後是更好的做東西,最後是搭建框架滿足更多的需求。初級的程式設計師做點修修補補的事情也特別正常,不要覺得現在做的事情很無聊,這麼多一是在適應環境一種是從簡單的事情中提煉出自己要學習的程式設計技能,很多人覺得在一個框架上不停的修改點功能,重複的工作太多沒有什麼挑戰性,任何一個功能需求點力求盡善盡美才是程式設計師要追求的境界。

    程式設計師基本技能之一是專案開發能力,開發專案更是多種能力的考驗,雖然是在一個框架上不停的修復,但修復的過程也對框架認知的一個過程,如果是好奇心非常強的程式設計師就會忍不住找到底層的程式碼進行研究,這些過程都包含在天天修改新需求的過程中,有很多人覺得java的開發就是增刪改查,其實大部分的工作基本上就是這四個字,但真正要做好這幾個字卻是有有很大的難點,程式開發工作最大的忌諱就是好高騖遠。

    程式開發講究的是水到渠成,前面積累的經驗以及專案中遇到的問題,都能極大的擴充套件知識框架,對於後續找工作有非常大的好處,如果覺得修改需求是一件非常簡單或者重複性事情,證明還沒真正的領悟到程式設計的內涵,程式設計的學習無處不在,不同的需求延伸出來不同的知識點,應該會有學不完的感覺。

    在任何一個崗位上想真正做出一點成績需要付出十萬個小時的努力,所以樓主提到的修改需求距離真正的修煉還差很長一段時間,善於從實踐中找到自己的不足,然後拿出時間來修復基礎,拓展自己的知識面,如果保持著這種積極的心態,早晚是程式設計高手,真正的高手都不是自己尋找工作都是公司主動來挖人。

  • 9 # 衛Java

    對於應屆生來說,進來就要你做新功能,從0開始開發系統的比較少!一般就是要你進來維護系統改改需求。

    前期要你改改需求還是挺好的,你說的老專案,可能技術都不是最新的,對於入手都不難。你可多學習下別人程式碼熟習下功能,多敲多練下。假設你開發,你能不能做出來,帶著這樣的想法去學習事半功倍。

    後期公司一般要求重構,那樣你的機會來了。有大神帶著你從0開始解析需求,設計框架,新技術研發你都可能參與到,對你成長是很有幫助的!

    即使不重構,你可自學其他技術!因為老專案改需求也不是很忙,對你後面可能分分鐘解決!那樣每天肯定有空閒時間,這時候你得利用起來,在網上自學參與一些實戰專案多練習,對你很有提高!另外你也混的是經驗,為何呢?本來應屆生現在不好找工作,經驗的積累對你找工作成功機會也是很高的!

  • 10 # 會點程式碼的大叔

    個人認為,這是很正常的現象,維護老專案,做新需求,對工作經驗的積累也是有幫助的;但同時可能會對你的發展有一定的影響,我來詳細地談談自己的看法。

    在大部分的公司,一個專案的生命週期,都是以年為單位計算的,短一些的兩三年,長一些的十來年(我見過最老的專案已經執行二十年了);如果是傳統行業的公司,一個專案執行五年以上再被迭代替換掉,是很正常的現象,說句不好聽的就是:“哪有那麼多新專案讓你參加。”

    先說說好處吧:

    要想維護好老專案,很關鍵的一點就是要了解業務,很多程式設計師只看中技術,而忽視業務,這種看法是不對的。

    熟悉業務就需要了解行業領域的運轉邏輯和流程,需要知道行業是如何發展起來的,現狀是什麼樣子,未來趨勢將會是怎樣;用什麼技術,有哪些解決方案。如果你只會敲程式碼,那你就是可以被替代的,因為現在會敲程式碼的程式設計師太多了,除非你技術超群,能達到大師的水平,但公司在招聘程式設計師的時候,更多的是看你做了哪些專案,是否能夠用手中的技術解決某方面的業務問題。

    現在很多IT公司喊“科技驅動、技術驅動”,但實際上,大多數時候都是被業務逼著前進,就比如阿里的飛天系統、中臺戰略架構,也不都是淘寶使用者逼出來的。

    壞處當然也是有的:

    首先,維護老專案,也分側重業務還是業務和技術兼顧,這要看公司的性質。比如我就職於一家金融公司的IT部門,校招進來的開發崗位,大多數還是以業務為主(很多時候開發都依靠外包),這些同學進公司幾年下來,技術方面進步是非常有限的;在這方面,網際網路大廠做的就非常好,對於校招的同學,公司都有成熟的培訓制度,有些公司會一對一地安排“老師傅”帶新人,而且新人的主要工作就是敲程式碼。所以,如果你在一個偏業務的公司,就要自己更努力一些,去提升程式設計能力。

    另外,“老專案”要看有多老了,需要分析一下專案組的技術棧都有哪些,近期是否引入過新的技術。如果專案用到的框架還都是五年前十年前的,而且長期保持不變,這時候就要小心了,你可能身處在一個毫無活力的專案。因為你是“新人”,第一年技術方面還能有所提高,後面的工作可能對你技術的提高毫無幫助。

  • 11 # 累的像狗還要繼續

    老的專案 ,也有你可以學習的地方,畢竟你是剛畢業,再說,專案本身已經上線,你 平時不忙的話,可以多多關注一下,新的發展方向,還有就是 java 本身就是由潛到深的過程,有時間還是 多看看一些底層的程式碼,對後期很還大的好處,不是說你現在待著有沒有幫助,也是要看你現在手裡的專案 ,有沒有值得你借鑑的地方!

  • 12 # 霸都小生

    首先說一點這是現實。

    未搞開發之前,總覺得以後肯定牛氣哄哄,根據需求,萬丈高樓一磚一瓦的搭建。而實際上,這是不允許的,需求不斷的更改,開發週期不斷地壓縮,最終的結果就是開發之前,download一個,然後各種修改。同時還在維護前輩的程式碼,多少人,多少種不同的程式設計風格,到我手裡的程式碼,看著慘不忍睹。

    維護老專案其實對找工作還是挺有用的,畢竟大部分公司都一樣,一大批老專案需要維護。

  • 13 # Java架構師CAT

    我與其他答主不同,我不認為維護老專案對畢業生有好處。舉個例子,我有一個侄子,他是去年畢業的,校招進入的一家規模不是很大的小公司,天天維護專案,改新需求,接觸不到新的知識就只是運用的再滾瓜爛熟又有什麼用?我記得他在和我抱怨天天使用Struts2的時候我很著急,畢竟與社會脫節了。最終的結果就是在兩個月後辭職,我讓他低薪進入了一家外包公司,多見見世面,接觸更多的東西,一年後跳槽就行了,畢業生現在沒什麼可以拿得出手的,只能多學習,關鍵是自身還有惰性,怎麼辦?硬逼著學。這就是我的理解

    另外,需要學習資料的找我,免費送

  • 中秋節和大豐收的關聯?
  • 工資發了,想買個手機,2500到3500之間,有什麼推薦?