最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【經(jīng)驗(yàn)分享】新手軟件工程師必須要知道的 7 件事!

2023-02-07 15:33 作者:C語言編程__Plus  | 我要投稿

今年已經(jīng)是我從事軟件開發(fā)行業(yè)的第七個(gè)年頭,我覺得現(xiàn)在是一個(gè)好的時(shí)機(jī)向一些新入行的軟件工程師分享一些我認(rèn)為越早知道越好的知識。希望能對您有所啟發(fā)。

原作者:segmentfault——libinfs


1. 需求總是會(huì)變

也許您已經(jīng)和團(tuán)隊(duì)成員評估了需求的合理性,并且達(dá)成了共識。您胸有成竹的認(rèn)為產(chǎn)品需求不會(huì)再發(fā)生改變。但真相是殘酷的,需求總是會(huì)因?yàn)楦鞣N各樣的原因發(fā)生變化,例如:

您或您的上司有了一個(gè)新的想法;

產(chǎn)品的目標(biāo)群體發(fā)生了變化;

攻克某項(xiàng)技術(shù)的成本超出了預(yù)期;

您需要意識到,正是因?yàn)檫@殘酷的真相,我們才會(huì)有一個(gè)對于軟件工程師重要的專業(yè)性評判標(biāo)準(zhǔn):您是否能夠編寫有更好組織性的代碼。

這就引出了我們下一個(gè)主題。

2. 始終以編寫更好組織性代碼為目標(biāo)

新手工程師有時(shí)候會(huì)執(zhí)著于快速的實(shí)現(xiàn)功能,從而編寫出「面條式」的代碼,面條式代碼是指代碼一段段連接在一起,然后當(dāng)代碼規(guī)模到達(dá)一定程度后,會(huì)突然發(fā)現(xiàn)無法移動(dòng)任何代碼。任何對代碼的改動(dòng),都將是一場噩夢。

因此新手工程師要比有經(jīng)驗(yàn)的工程師更加厭惡需求變動(dòng),因?yàn)樗麄冃枰ǜ鄷r(shí)間理解和修改代碼,有時(shí)甚至是需要重寫整個(gè)模塊。

所以,為了節(jié)省寶貴的時(shí)間,所有的工程師都應(yīng)該站在更高的層次上,在編寫代碼前思考代碼組織問題,我知道一些優(yōu)秀的框架已經(jīng)在語法層面上解決這個(gè)問題,但您應(yīng)該在此基礎(chǔ)上做的更好。

更好的代碼組織意味著:

(1)更穩(wěn)定的應(yīng)用;

(2)更少的 Bug;

(3)更清晰的代碼結(jié)構(gòu);

(4)代碼能夠更加靈活的變通與擴(kuò)展;

您可以學(xué)習(xí)一些 MVC 思想,并將其應(yīng)用在您的軟件開發(fā)中。要知道「謀定而后動(dòng)」在軟件開發(fā)領(lǐng)域也是適用的。


3. 代碼有保質(zhì)期

相信我,您的代碼總會(huì)過時(shí),隨著您技術(shù)水平的增長,功能的不斷迭代,總有一天,您會(huì)發(fā)現(xiàn)有更好的方式可以組織您現(xiàn)有的代碼。對于需要長期迭代的產(chǎn)品,放任代碼過期,就是我們常說的「技術(shù)債務(wù)」。

優(yōu)秀的工程師不會(huì)給未來的自己或接手的下一任工作者留下太多債務(wù),這事關(guān)開發(fā)者的責(zé)任心和聲譽(yù),需要引起重視。

而且清除技術(shù)債務(wù)并非只是對產(chǎn)品有好處,在此過程中,您的技術(shù)水平也會(huì)不斷提高。當(dāng)您意識到代碼臨近過期,需要改動(dòng)時(shí),說明您的技術(shù)水平相較于以前已經(jīng)大大提高了。

處理過期代碼有兩種方式:

重構(gòu):即保障功能接口輸入/輸出穩(wěn)定,但內(nèi)部結(jié)構(gòu)優(yōu)化的更加易讀,易維護(hù);

完全刪了,重頭寫:您很少有機(jī)會(huì)這么做,不過當(dāng)一段代碼已經(jīng)沒有人能夠理解,維護(hù)成本過于高昂時(shí),這么做是必要的;

大多數(shù)工程師不重視代碼重構(gòu)工作,他們不了解或不愿意為代碼添加單元測試并定期重構(gòu)代碼,這使得他們錯(cuò)失了寶貴的進(jìn)步機(jī)會(huì)。作為新手工程師,您應(yīng)該盡早意識到代碼重構(gòu)的重要性,并盡力勸說您的上級和合作伙伴,在開發(fā)計(jì)劃中預(yù)留代碼重構(gòu)的時(shí)間。


4. 不要重復(fù)造輪子

新手工程師由于在工作初期認(rèn)領(lǐng)不到有挑戰(zhàn)性的工作,于是傾向于在實(shí)現(xiàn)功能模塊時(shí),即使有第三方庫或框架可以使用,也會(huì)選擇自己去實(shí)現(xiàn)。

這一行為的出發(fā)點(diǎn)值得肯定,作為工程師,我們都想證明自己的實(shí)力,但是優(yōu)秀工程師的核心能力之一是在于充分調(diào)動(dòng)現(xiàn)有的成熟資源。

很多時(shí)候,自己 DIY 的功能模塊在健壯性和可靠性上都無法媲美社區(qū)成熟的功能模塊,貿(mào)然使用自己 DIY 的功能模塊會(huì)為產(chǎn)品添加風(fēng)險(xiǎn),成熟的開發(fā)者應(yīng)該極力避免。

我建議新手工程師不妨換一種思路,我們都是站在巨人的肩膀上才能看的更遠(yuǎn),與其在工作中花大把時(shí)間重復(fù)造輪子,不如利用業(yè)余時(shí)間研究成熟輪子的優(yōu)勢,并在工作中發(fā)現(xiàn)新的挑戰(zhàn)。

5. 文檔是非常重要的

這包含了兩層意思:

查閱文檔非常重要

撰寫文檔非常重要;

新手工程師有時(shí)會(huì)出于種種原因不愿意查閱官方文檔,但事實(shí)是,查閱官方文檔是工程師經(jīng)常要做的事情。優(yōu)秀工程師的核心職責(zé)是構(gòu)思如何組織代碼實(shí)現(xiàn)目標(biāo)功能,并將其付諸實(shí)踐,而查閱文檔的過程,使我們準(zhǔn)確挑選合適「建材」的必備途徑。通過經(jīng)常查閱文檔,某個(gè) API 最終會(huì)成為您的長期記憶,您的工作效率也會(huì)大大提升。


與查閱文檔同樣重要的是撰寫文檔,很可惜大多數(shù)工程師要么是重視不足,要么是無法撰寫易讀的文檔。而這兩者對于一份好文檔而言是十分重要的。

文檔的閱讀者將會(huì)是所有對您當(dāng)下工作感興趣的人,包括未來的自己。對于一個(gè)沒有文檔或文檔沒有及時(shí)更新的大型項(xiàng)目而言,下場只有死亡。

請積極撰寫產(chǎn)品或技術(shù)文檔吧!

6. 如何面對陌生代碼庫

無論是剛?cè)肼氁患夜?,還是換了一個(gè)項(xiàng)目組,我們總是無法避免接手一個(gè)陌生的代碼庫,新手程序員往往在此時(shí)手足無措,不知道如何開始。

對此我的建議是:

運(yùn)行該應(yīng)用,嘗試修改一些代碼,看看程序是如何運(yùn)作的;

分析目錄結(jié)構(gòu),理解代碼的組織方式;

查看項(xiàng)目引入的第三方庫,了解它們的作用是什么;

對于要修改的核心邏輯,試著畫一個(gè)流程圖,搞清楚整個(gè)程序的邏輯是什么;

請務(wù)必確保您已經(jīng)基本掌握了代碼邏輯,再著手進(jìn)行改動(dòng),否則無疑將增加代碼的壞味道,您很有可能會(huì)在將來某個(gè)意料之外的時(shí)刻不得不償還債務(wù)。

當(dāng)您打算進(jìn)入一個(gè)代碼庫,著手添加代碼時(shí),請務(wù)必確保您與原代碼庫的編碼風(fēng)格保持一致,即使您認(rèn)為您的代碼風(fēng)格更加合理和優(yōu)雅。

這么做的好處在于:

您的代碼風(fēng)格可能并非是最佳的,您在未來可能會(huì)對代碼風(fēng)格有新的想法;

當(dāng)每個(gè)項(xiàng)目的參與者都把自己個(gè)性化的代碼風(fēng)格帶入代碼中時(shí),代碼就會(huì)變得越發(fā)難以閱讀,也容易讓下一個(gè)接手的開發(fā)者感到迷惑;

具備一定規(guī)模的開發(fā)團(tuán)隊(duì),都會(huì)考慮統(tǒng)一代碼風(fēng)格,請您務(wù)必確保與團(tuán)隊(duì)要求的代碼風(fēng)格保持一致。如果您的團(tuán)隊(duì)沒有統(tǒng)一的代碼風(fēng)格,那么就由您來主導(dǎo)建設(shè)吧,這正是您表現(xiàn)的好機(jī)會(huì)!

除此之外,新手開發(fā)者應(yīng)該堅(jiān)定「我一定能做到」的信念,我可以坦率的告訴您,在 Web 開發(fā)世界里,沒有什么神秘的魔法,所有的問題最終都可以被解決,無論是軟件開發(fā)的新手還是老手,區(qū)別只在于解決問題的思路和時(shí)間。

這正是軟件開發(fā)行業(yè)的魅力所在,通過自己的努力解決一個(gè)棘手的問題,不僅會(huì)為所服務(wù)的企業(yè)解決問題,還能提升自己的專業(yè)水平,讓心靈得到滿足。所以請享受您當(dāng)下的工作,并勇于解決任何問題。


7. 始終學(xué)習(xí),永不止步

軟件開發(fā)行業(yè)的特點(diǎn)之一便是,您需要通過不斷學(xué)習(xí)提升自己在市場的競爭力,而編程世界也總是會(huì)有學(xué)不完的思想,技術(shù)和產(chǎn)品。

您需要清楚地認(rèn)識到一個(gè)殘酷的事實(shí),在大多數(shù)工作環(huán)境中,您獲得進(jìn)步的動(dòng)力只能來源于自己。很多團(tuán)隊(duì)都沒有完善的培訓(xùn)機(jī)制,也不會(huì)為您制定職業(yè)發(fā)展規(guī)劃,團(tuán)隊(duì)成員疲于奔命完成自己的業(yè)績或是不感興趣與您討論前沿的技術(shù)話題,所以您更需要保持警惕,尋求不斷進(jìn)步。

請確保您的技術(shù)水平總是高于,至少是配的上您的工作年限。否則工作的時(shí)間越久,您的市場競爭力會(huì)越低。請勇敢的踏出當(dāng)前的舒適圈。

8. 總結(jié)

在本篇文章中,我向您分享了我認(rèn)為值得剛步入軟件開發(fā)行業(yè)的新手們需要注意的 7 件事。這些事一些是我希望我在剛?cè)胄袝r(shí)有人告訴我的,一些是我從事本行業(yè)以來的一些經(jīng)驗(yàn)之談,感謝您的閱讀!

此外,我也給大家分享我收集的其他資源,從最零基礎(chǔ)開始的教程到C語言C++項(xiàng)目案例,幫助大家在成為C++程序員的道路上披荊斬棘!

整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)最重要的是你可以在群里面提問和交流編程的經(jīng)驗(yàn)和問題哦!

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!

編程學(xué)習(xí)書籍分享:

編程學(xué)習(xí)視頻分享:


【經(jīng)驗(yàn)分享】新手軟件工程師必須要知道的 7 件事!的評論 (共 條)

分享到微博請遵守國家法律
东至县| 通州区| 曲水县| 衡山县| 台东县| 南靖县| 康乐县| 金昌市| 绿春县| 水城县| 资阳市| 宁南县| 漠河县| 平度市| 栾川县| 丰县| 南木林县| 浦北县| 溧水县| 哈尔滨市| 中超| 缙云县| 兰考县| 远安县| 北川| 谢通门县| 江津市| 德格县| 启东市| 集贤县| 天镇县| 紫阳县| 兴文县| 无为县| 沧州市| 高平市| 阳原县| 什邡市| 山东省| 平利县| 宁乡县|