導航:首頁 > 程序命令 > 剛畢業的程序員怎麼寫代碼

剛畢業的程序員怎麼寫代碼

發布時間:2022-07-23 21:17:09

A. 程序員寫程序時經常出錯嗎我剛學c,寫的100行左右代碼就有好幾個問題上萬行的代碼那是怎麼寫的啊

呵呵、、、出錯很正常啊!你剛開始學習,不要太把錯誤放在心上,重要是解決錯誤的辦法和過程。至於那上萬行的代碼,大型程序都是模塊化編寫的,不是一c文件。那是要分成若干c文件,不能c文件中放著不同的函數(對應相應的功能),單個c文件編譯容易發現錯誤。最後將所有的c文件整體編譯。就這樣!!模塊化編程思想!!

B. 程序員如何寫出更好的程序代碼

Martin Thompson是java Champion稱號獲得者,同時也是一名高性能計算科學家。他說,為了寫出更好的代碼,程序員需要運用基本設計原則,閱讀已有代碼。在QCon London 2016大會上,他做了題為「挖掘你的工程師屬性(Engineering You)」的演講。InfoQ在會後采訪了他,內容涉及軟體行業面臨的挑戰及程序員如何應對那些挑戰成為更好的軟體工程師。
軟體開發面臨的其中一個最大的挑戰就是處理應用程序規模增長帶來的復雜性。對象、組件、模塊或系統之間的耦合程度越高,我們需要承擔的後果就越多。這些後果包括但不限於修改困難、故障蔓延、由於爭用而無法擴展、由於關聯操作而導致的性能問題。時間、空間和實現上的松耦合對於擴展性和彈性而言至關重要。「共生性(Connascence)」可以很好地描述耦合,一個模塊/組件的變化會導致另一個模塊/組件的變化。
我發現,內聚比耦合更微妙。我喜歡將內聚理解為統一性。當我們考慮在不同的方面使用同一個組件時,就失去了統一性,這會導致不必要的行為和特徵。軟體設計中的低內聚常常是一個很好的需求或團隊狀況指標。通常,內聚設計很容易跟蹤,由於相關的函數和特性都進行了分組,相互關聯,所以可發現性很高。
如果我們希望成為更好的軟體工程師,那麼提高我們運用基本設計原則的技能應該成為我們日常活動的核心。在訓練和實踐中不斷重復是讓技能成為第二天性的最好方法。

C. 如何提升程序員的代碼編寫能力

一、先列三個常見的開發場景:

1、拿到一個模塊詳細設計文檔,大部分程序員的通常做法就是開始搭建界面代碼,然後從第一個按鈕點擊事件或頁面Load事件開始寫第一行業務代碼。寫的差不多了,就運行一下,發現哪裡不是自己想的那樣,就改改,直到改到是自己預想的那樣。

2、做完了一個功能模塊或幾塊相關聯的功能模塊,輸入111asd,發現新建正常、保存正常,就提交給測試人員。測試員用測試用數據、測試場景用例來測試,發現有問題,就登記bug。對於嚴重的影響下一步測試的BUG,測試員就用內部IM通知這個開發人員。對於不影響繼續往下測試的BUG,測試員就登記下來,等程序員有空時處理。

3、程序員一般工作不希望大家打擾,所以開發起來就是開發。等手頭開發告一段落,就看看BUG庫。發現有與自己有關的BUG,就從第一個BUG開始看起。就開始通過IM和測試員掰扯起來(這不是個BUG啊、業務邏輯不是你想的那樣啊、我這里不能重現啊、你給的信息描述不清晰啊),於是IM幾來幾往,甚至跑過去當面交流一番,甚至會拉扯上產品經理一起討論,更甚者需要項目經理或產品經理發起一個會議來集體討論一下

這是不是很熟悉呢?這就是大部分程序員開發的三個步驟:寫代碼、自測、修復BUG。

二、說好的代碼設計、代碼測試呢?

代碼設計?那不是都有開發平台么,已經固化了啊。那不是維護舊功能做完善修改呢么,又不是寫新代碼,只能在現有代碼基礎上修改啊,你又不能大幅重構。

代碼測試?你丫需求討論期、產品設計期、設計評審期那麼長,都把研發項目時間佔光了,就留下2個星期讓我們寫代碼,我們哪裡有時間搞那麼深的測試。還想讓我們搞結對編程?還想讓我們搞測試驅動開發?

而且你看測試,什麼功能測試、集成測試、性能測試、安全測試、安裝部署測試、升級測試、遷移測試、UAT測試,一大堆測試,測試也需要很多時間。

一個項目,需求討論、產品范圍規劃與評審、產品設計與設計評審佔了一個半月,開發+自測就一個月,測試佔了一個半月,這就4個月了啊。

三、為啥程序員寫代碼總是寫寫測測?

剛才大家也都看到了,大部分程序員都是從界面代碼開始寫起,而且寫一寫,就運行一下看看。為什麼會是這種開發方式?

那是因為大部分程序員缺乏在腦子中的整體建模能力。只能做出來一點,真實的感覺一下,然後再往下。

有些是產品經理的上游就有問題,沒給出業務流程圖(因為產品經理也沒做過業務),也沒畫清楚產品功能操作流程圖。

為啥沒給出業務流程圖?因為產品經理不熟悉業務,另外,產品經理也沒有流程建模能力啊。為啥沒畫清楚產品功能操作流程圖啊?因為不會清晰表達流程啊。

很多產品經理、程序員,都缺乏分類、分層、相關、先後能力,更別說總結、洞察能力。

這是基本訓練,是一個做事頭腦清醒的人必備的技能,這不是一個程序員或產品經理或測試員的特定技能要求。

我經常看書就梳理書的脈絡,每看一本就寫一篇總結。我過去閑扯淡還梳理過水滸傳、紅樓夢的人物關系圖呢,其實就在事事上訓練自己的關聯性、層次性、洞察性。

我經常面試一個人時,我會問這樣的問題:「你把我剛才說的話復述一遍,另外你再回答一下我為什麼會這樣?」,其實,我就在看一個人的細心記憶、完整梳理、重現能力,我也在看一個人的梳理、總結、洞察能力。

我個人寫代碼就喜歡先理解業務流,然後理解數據表關系,然後理解產品功能操作流,大致對功能為何這樣設計、功能這樣操作會取什麼表、插入或更新哪些表,哪些表的狀態欄位是關鍵。

然後我寫代碼的時候,就根據我所理解的業務流、功能操作流、數據輸入輸出流,定義函數,定義函數的輸入與輸出。

然後,我會給函數的輸入值,賦上一些固定值,跑下來看看能否跑通這幾個關聯函數,看看還需要怎樣的新增函數,或者看看函數的輸入輸出參數是否滿足跑通。

剩下的事,就是我填肉寫詳細邏輯代碼了。

當然,大部分人沒我這樣的邏輯建模能力。怎麼閱讀理解也想像不出來,也沒法定義函數。畢竟有邏輯建模能力的程序員都很少,100個人里有10個,已經是求爺爺告奶奶好幸運了。

那怎麼辦呢?

我建議是分離分工配合,這就是現實中沒辦法的辦法。讓有邏輯建模能力的人來設計函數框架、來設計工具來設計代碼模板,然後讓沒有邏輯建模能力的人來填肉寫詳細邏輯代碼。

我們可以先從最緊要的模塊開始這么做。不緊要的模塊,還讓它放任自流,讓熟練手程序員繼續塗抹。

我曾經還讓有頭腦的程序員做榜樣,給大家分享他是怎麼規劃函數的,怎麼做維護性代碼的代碼結構改善的。但是發現效果並不佳,其他人並沒有因此能做代碼設計。可能邏輯建模能力是個人的基本素質,是從小到大訓練成型的,不是你一個大學已經幾年的人能夠短時間內可以訓練的。

所以啊,還是讓能走的人先走,讓從最緊要的模塊開始這么做。

不必擔心這樣做後,因為過去一件事被分工(一個做代碼框架一個填肉)成兩個人做了會降低工作效率。我們很多的工作效率低就是因為半瓶子醋搞出來的,來回反復修改。

真是應了劉德華在電影里說的那句話:說你又不聽,聽又聽不懂,聽懂了又不做,做又做不好,做不好還不服氣。

四、為什麼大部分程序員不做代碼測試或白盒測試或單元測試呢?

還是因為沒有代碼設計。因為沒有函數啊。所以,一個按鈕功能有多復雜,代碼就有多長。我見過2000行的函數,我也見過1000多行的存儲過程和視圖SQL。怎麼做白盒測試啊,這些代碼都粘在一起呢,要測,就得從頭到尾都得測。

所以啊,先學會設計函數,先寫好函數,這就求爺爺告奶奶了。很多開發了5年的熟練手程序員,可能都未必會寫函數。

函數的輸入輸出值就很有講究。很多人都寫死了,隨著版本迭代,發現過去定義的函數參數不夠用了,於是就新增了一個參數。然後,相關性異常就爆發了,其他關聯的地方忘改了,到底哪些有關聯,怎麼查啊,本系統沒有,沒准其他系統就調用你了,你根本不知道哪個神經人曾經COPY過你的代碼修吧修吧就改成了他的功能呢,而且裡面的很多代碼他看不懂也不敢刪,只要他實現的功能正常了他也不管了。於是,你改了你這個函數,他的系統就莫名出錯了。

所以,我一般會定義幾個對象來做參數。另外,我也很注重函數的日誌、函數的異常保護、異常拋出、異常返回。另外,我也很注重參數輸入值的合法性校驗。

所以啊,應該開發Leader們先制定函數編寫規范最佳實踐,輸入輸出參數怎麼定義比較好,函數的返回值如何定義比較好,函數的日誌記錄應該怎麼寫比較好,函數的異常保護、異常拋出、異常返回如何寫比較好。先教會一般程序員,先從會寫函數開始啊。

當然,你光有一份規范,程序員們還是不理解、不實際應用啊。所以,還得Leader們做好典型的代碼模板,裡面是符合函數規范的代碼框架,只有這樣,一般程序員們才會照貓畫虎適應了函數設計的編程習慣。

所以啊,我專門重新定義了leader的明確職責,其中第一個重要職責就是:負責工具/框架/模板/規范的制定,並且負責推廣且普及應用落地。

你不明確定義Leader的這個重要職責,你不對這個職責做明確的KPI考核,誰尿你啊。你以為好的工具/框架/模板/規范是靠人們的熱情、自發產生的么?我們還沒有那麼自覺高尚啊。

五、為什麼大部分程序員不寫注釋啊?

我經常說一句話,千萬別多寫注釋。為啥?

因為我們經常遇到的問題不是沒有注釋,而是更糟的是,注釋和事實代碼邏輯是不相符的。這就出現常見問題了:殘存下來的設計文檔是一個邏輯、注釋是一個邏輯說明、真實代碼邏輯又是一個,鍾表多了,你也不知道正確時間了。

所以啊,產品文檔、注釋、真實代碼,三者總是很難一致同步。我為了幾百人研發團隊能做到這個同步花了大量心血和辦法,但我最終也沒解決了這個問題,還把Leader們、總監們、我都搞的精疲力盡。

索性回歸到一切一切的本源,代碼,就是程序員的唯一產出,是最有效的產出。那麼,讓代碼寫的不用注釋也能看懂,咱得奔著這個目的走啊。

為啥看不懂,不就是義大利面條式代碼么,又長又互相交雜。

OK,我就規定了,每個函數不能超過50行。用這一個簡單規定和靜態代碼檢查插件,來逼迫大家嘗試著寫函數。有的函數屬於流程函數,是串起其他函數的,有的函數就是詳細實現函數,實現一個且唯一一個明確作用的。

有了流程函數和功能函數,而且每個函數不超過50行,這就比過去容易看懂了。

六、為什麼大部分程序員不抽象公共函數啊?

我經常說一句話:千萬別抽象公共函數啊。為啥?

因為大部分程序員缺乏抽象洞察能力。特別是有些積極熱情有餘、愛學習愛看書、半瓶子醋晃悠的二桿子,看了幾本UML、重構、設計模式、整潔代碼之道,就躍躍欲試了,還真敢給你抽象公共函數了。

一開始,他覺得80%相似,20%不相似,於是在公共函數裡面簡單寫幾個if..else做個區隔就可以。沒想到,越隨著版本迭代,這些功能漸漸越變越不一樣了,但是這個代碼已經幾經人手了,而且這是一個公共函數,誰也不知道牽扯多少,所以誰也不敢大改,發現問題了就加一個if..else判斷。

沒想到啊沒想到,這個本來當初公共的函數,現在變成了系統最大的毒瘤,最復雜的地方,誰也不敢動,除非實在萬不得已,手起刀落。

所以,我平時告誡程序員,純技術的、純通用的,你們可以嘗試搞搞抽象公共函數,對於業務的,你們還是簡單粗暴的根據Leader們做的代碼模板代碼框架,乖乖的復制、修改、填肉吧。

你們啊,先從做模板做代碼片段開始吧,咱們放到咱們內部代碼片段開源庫里,看誰的代碼片段被別人復制的多,說明你的代碼抽象設計能力越好了。那時候,我就大膽放心讓你撒丫子跑了。在沒有學會跑之前,給老子乖乖的復制、修改、填肉吧。

D. 程序員如何寫出干凈的代碼

1編寫可讀的代碼
最簡單的方法是使用空格,在發布代碼之前,可以縮減代碼,但是沒有必要讓代碼看起來很小型化。

相反,可以使用縮進、換行和空行等方式,使代碼結構更具可讀性。代碼可讀性和可理解性就會提高,當然更容易理解。

2為變數、函數和方法使用有意義的名稱

「有意義的名稱」是指描述性足夠的名字,而不僅僅是編寫自己才能理解的,換句話說,名稱本身應該根據變數、函數或方法的內容和使用方式來定義。

需要注意的是,使用描述性名稱並不是說就可以隨意使用任意多個字元。比較好的辦法是將名字限制在3或4個單詞。

如果需要使用超過4個單詞,說明這個函數或方法需要同時執行多個的任務,所以應該簡化代碼,只使用必要的字元。

3讓一個函數或方法只執行一個任務

讓每個函數或方法只執行一個任務,如此一來,別人能夠很輕松的理解這些代碼。

如果你很難找到函數和方法的描述性名稱,或者需要編寫冗長的指令以便其他人可以使用,那請考慮這個建議,讓每個函數或方法只執行一個任務。

這種讓每一個函數或方法只執行一項任務的做法被稱為保持純函數。這種編碼實踐來自於函數式編程的概念。

4更容易遵循編碼模式

我們應該只在必要的時候使用注釋,而不是解釋糟糕的代碼。編寫無窮無盡的注釋將無助於將糟糕的代碼轉換成干凈的代碼。

如果代碼不好,應該通過改進代碼來解決這個問題,而不是添加一些如何使用它的說明。編寫干凈的代碼更重要。

5保持代碼風格一致性

最好的方法是選擇一套編碼方式,然後在所有的項目中堅持使用。

如此一來,即使中間做了其他項目,再回到之前項目的時候也會更容易上手。

當然,嘗試新的編碼方式是一件好事,它可以幫助我們找到更好的方法來開展工作。但是最好是在不同的實驗項目或練習上嘗試不同的編碼風格,而不是在主要項目上進行。

6經常自我檢查代碼

我們應該定期檢查代碼,並試著改進它。如果想讓代碼保持最佳狀態,就需要定期更新它們。

如果不審查和更新我們的舊代碼,它很快就會過時,就像我們的設備一樣。

E. 程序員進來,筆試中寫代碼,應該寫哪裡的代碼順便指點一下以後的路

兄弟,首先說筆試中寫代碼,應該寫哪裡的代碼?這個問題要看題意了,要看人家想考你頁面知識水平還是想考你後台知識水平,要把握題意。一般情況下,筆試中的打碼一部分是基礎常規知識考查,就是知識點之類的,一般與項目無關。另一部分是與項目有關的,比如一個項目模型,實現簡單典型功能。關於資料庫的,筆試我我認為一般是考後台數據處理的,而不應該寫頁面代碼,雖然頁面也能和資料庫交互,這是分工分層問題,資料庫就用後台代碼處理,頁面主要任務就是表現顯示。
關於以後的路,兄弟既然是學軟體的,剛畢業,我建議還是堅持走這條路,最起碼前幾年或者是沒有發現更好方向之前,要好好鑽研軟體道路上的相關理論和知識,在工作中加強實踐。這條路干好了還是比較不錯的,盡管有時有些累。
畢竟剛畢業,遇到些挫折是正常的。
建議兄弟在工作的過程中,抽時間學習一下相關的軟體知識,以及其他開發語言,比如流行的java,jsp等等,知識范圍不要過於局限。將來有條件了也可以參加些職業培訓,大有好處。
如果兄弟現在身上沒錢,一時半會有不好找到工作,那建議可以先擴大就業范圍,保安啦,服務生啦,先干個一段時間,稍微攢點錢,緩解一下壓力,有點資本,再專心找工作。但是此過程中注意學習。
你可以在網路搜 「段小磊」,不管有沒有誇張成分,但是可以是個例子。
可以看出兄弟是個想自立的人,不想向家裡要錢。好樣的。萬不得已,還是要向家裡要些,先讓自己過得去。
祝兄弟好運!

F. 剛畢業做程序員,每天都是寫代碼,感覺有點枯燥,聽說有個程序員鼓勵師的活動,不知道該怎麼參與呢

其實你現在不是想做程序員的問題,而是處於一個反思期,你現在在反思著,這么多年了浪費了大量的時間,後悔,想重新努力,其實做什麼不要緊,只自己覺得目標正確,並在過程中獲得自我認可就行了。
不管你想做什麼,有一條是要緊的,積極向上的心態,如果你實在不知道怎麼行動,那就先健身,先完成一個小小的,近期的目標,讓信心恢復。信心很重要。有了這個,你做什麼都會有自信的感覺。

G. 程序代碼怎麼編寫

編寫需要學習編程語言,例如c語言,java等。

1、有基礎的學員:對於沒有任何編程基礎的初學者來說,要想快速入門編程,最為有效的方式之一就是與專業人士進行交流,在專業人士的指導下進行學習會有比較高的學習效率,而且也會有一個系統的學習過程,當前可以充分利用互聯網來開辟自己的交流渠道。

2、無基礎的學員:對於已經有一定編程基礎的同學來說,邊用邊學往往會有更高的學習效率,比如程序員在學習一門新的編程語言時,如果採用聽課的方式學習也許並不是最高效的。

很多程序員是直接看代碼案例,然後就開始嘗試應用,然後再逐漸提升應用的熟練程度,因為對於已經有成熟編程思想的程序員來說,不同的編程語言僅僅是語法上的不同,思想終歸是統一的。

編程語言難易

編程語言的語法並不難掌握,但是要想熟練運用編程語言,一定要多做實驗,這個過程是無法忽略的,也沒有任何捷徑,編程語言用得多了,自然也就熟練了。對於很多應用級程序員來說,編程並沒有太多需要思考的地方,也不需要設計復雜的演算法

如果要想在程序設計領域走得更遠,熟練運用編程語言僅僅是第一步,還需要有自己的主攻方向,並且能夠圍繞自己的主攻方向不斷深入,掌握相應的研究方法,最終成長為一名研發級程序員。

H. 程序員用c語言寫代碼到底是怎樣的難不難啊舉下例!

這個難說了,看你編什麼了。不同的語言寫的代碼會有所差異的,可能用這個語言寫這個程序比較簡潔,用那個預言寫那個程序比較簡潔

I. 優秀Java程序員都是怎樣寫代碼的

1.編碼之前想一想
用10分鍾,20分鍾甚至30分鍾的時間來想想你需要什麼,想想什麼樣的設計模式適合你將要編碼的東西。你會很慶幸「浪費」了那幾分鍾,當你不得不更改或添加東西到代碼中時你就不將將浪費幾分鍾而是要花費更多的時間。
2.注釋你的代碼
說真的,沒有什麼比兩個月後檢查自己的代碼,卻不記得它用來干什麼更糟糕的了。注釋所有重要的內容,當然那些顯而易見的就免了吧。
3.寫干凈的代碼
錯落有致。使用空格。根據功能模塊化你的代碼。閱讀RobertC.Martin寫的《CleanCode》,非常有幫助。此外,遵循代碼約定/標准(如,尤其如果是共享的代碼。
4.重構
沒有人喜歡用那些超級長的方法。這通常(幾乎總是)意味著你混雜了功能。用更易於管理的方法分離代碼。還能使得代碼更可重用。
5.不要復制粘貼代碼
如果你有兩個或兩個以上相同的代碼塊,那麼你可能做錯了什麼。閱讀第4條。
6.使用有意義的名稱
雖然命名int變數為「elligent」或char為「mander」是很好笑;但是,這樣的名稱並不能說明變數是用來做什麼的。
7.測試代碼
測試,測試,測試,還是測試。測試你的代碼。不要等到已經做完程序之後再來測試,否則當你發現一個巨大的bug,卻不知道它來自於哪裡來的時候,你會追悔莫及。
自動化測試通常都是有價值的。它還有助於節省大量重測試和回歸測試的時間。

閱讀全文

與剛畢業的程序員怎麼寫代碼相關的資料

熱點內容
地梁的箍筋加密區位置 瀏覽:300
二分法排序程序及編譯結果 瀏覽:677
日語命令形和禁止型 瀏覽:283
安裝軟體用管理員解壓 瀏覽:503
編譯原理代碼塊 瀏覽:398
小孩可以用壓縮面膜嗎 瀏覽:12
錐形倒角怎麼計演算法 瀏覽:880
java合並鏈表 瀏覽:505
pic單片機編譯器 瀏覽:803
麗水四軸加工中心編程 瀏覽:689
國產系統怎麼解壓 瀏覽:552
戰雙程序員 瀏覽:483
him觸摸編程軟體 瀏覽:931
植物大戰僵屍存檔怎麼轉移安卓 瀏覽:852
java棧的元素 瀏覽:737
程序員與籃球事件 瀏覽:675
app反編譯不完整 瀏覽:788
電腦上的文件夾怎麼調整 瀏覽:8
伺服器無響應是什麼原因呀 瀏覽:984
wd文檔里的app怎麼製作 瀏覽:513