導航:首頁 > 程序命令 > 程序員寫代碼很慢

程序員寫代碼很慢

發布時間:2023-07-28 16:59:39

1. 現實中程序員是怎樣飛快敲代碼的

敲代碼很快有幾個條件

1.對項目代碼和結構非常熟悉,知道整個數據流的在代碼中的流動過程和變化過程。知道當前新增的代碼在整個項目處於哪個位置,對於數據會有產生什麼新的變化。這些要心理有數。也就是從架構層面去思考代碼的編寫。

2.對於需求理解的很透。這樣業務邏輯轉成代碼邏輯就不會有任何不清楚的地方。

3.已經解決了技術難點,也就是說前期測試性代碼已經寫過了弄清楚了,避免了突然出現的技術性難點

4.新增的代碼和新增的數據結構已經仔細思考過了,並設計好。也清楚引入這些新的代碼和數據結構對現有代碼的整體影響

5.異常點的位置的處理方案已經安排好了。寫代碼一部分是正常業務流程,演算法過程,但是另外一大塊就是處理各種異常。當異常出現之後,是代碼重試,報錯後忽略,還是報錯之後停止代碼,還是報錯後清理代碼並重新恢復上一個狀態,等等。這些都是要心理有數。

6.對於如何新增源代碼文件,命名函數,命名文件名,命名類名,命名變數名有一整套方案。有時候想個函數名或者變數名都要卡好幾分鍾,就不算飛快了。別笑,想個變數名,網路十來分鍾的時候多了去了。

7.外部環境已經准備好了。IDE穩定,資料庫結構穩定,數據穩定,網路穩定,訪問網頁順暢,准備好免打擾的牌子。准備好刷卡提需求的二維碼,准備好板磚和大刀,預防產品經理提需求和改需求。

2. 程序員怎麼才能提高代碼編寫速度

方法很多,說說我的想法

電子文檔,可修改性強,想到方案,覺得差不多,就去做。因為復雜的程序,靠單純思考是做不出來的。
例如你現在正在看的回答。我看到這個問題時,腦子里有很多想法,但不知道怎麼寫才能通俗易懂,所以我就一個一個列出來,
然後一個一個完善,然後調整順序,不需要的還得刪除。而代碼也是如此,在寫與改的過程中,你會有更好的方案,這也是一個練習的過程。

善於利用軟體,使用寫代碼的專業軟體。像 VS Code、eclipse等。有很多功能,我都不知道,但我知道vscode可以搜索文件內容,當你在一堆文件里找一個文件,或文件里找某個函數時,在知道名字的情況下用搜索功能,能幫你省很多時間,還減輕眼睛負擔。用好手中軟體。對開發十分便利。

記不住文件名,可以建個txt文件備忘。txt是個好東西。很多記不住的都可以用txt,只是得規劃好。別建了一堆txt,自己都分不清。當然這規劃也需要時間歷練。

有空還可以了解一下命令行,腳本文件。有些固定的操作可以寫成腳本。不需要專門去學,只要了解一下,知道有哪些功能,就行了。具體編寫可以網路。

注意休息,疲勞的狀態肯定是跑不快的。早睡也許覺得沒有更精神,但熬夜會更沒有精神。早睡睡不著??可以試試早起,強迫自己早起,到了晚上不信睡不著。工作期間記得每小時休息幾分鍾,放鬆放鬆精神,活動活動身體。注意飲食,馬無夜草還不肥呢,要按時吃好飯。適當運動,運動能改善體液循環,下蹲、俯卧撐、仰卧起坐。這些可以早上在室內做,只要二十分鍾。

看完這些可能還是一臉懵逼。能寫的還有很多,但世上沒有完全相同的兩個人,一切還得靠自己。自己觀察時間耗在哪裡,總結,尋找解決方案。然後實行。

從意識到,到了解,到改變,到掌握是需要時間的,耐心點會有回報的。

3. 當程序員寫不出代碼了,該怎麼辦

你已經對著電腦n個小時了。不知道該寫什麼代碼,或者一種摔鍵盤的沖動正在你的胸中醞釀。

咖啡一杯接著一杯。不敢再喝了,因為搞不好要有副作用了,心跳加速,身體不由自主地顫抖,出冷汗,但還是無法產出任何代碼。

所有重新發現編程趣味的努力都徒勞無功,因為你的最後一點能量都用來驅逐大腦中正在攻城略地的話:

「我寫不出代碼了!」


編程的本質是棘手

即使是最優秀的程序員也會遭遇無法解決的軟體工程問題。碰到這樣的問題,並不一定意味著你缺乏技能或知識。

編程不是一項容易的工作,我們可以通過採取非正統的方法來保持你想要的生產力水平,並確保提交高質量的代碼。

如果我在一個問題上花了幾個小時,卻仍然找不到解決方案的話,最後我會覺得這是浪費了時間。我不是胡言亂語——我只是覺得「沒有人能夠百死不悔」。

沒有憤怒和悲傷。因為我已經嘗試過所有方向,只是都走不通而已。失去希望,於是開始想辭職不幹。我覺得自己應該換工作,去做做調酒師或其他,至少研究和測試在啤酒中加點什麼不會耗去我數個小時的時間。

這些都是我在不敲代碼時的想法。我開始懷疑生活,懷疑編碼,懷疑人生。

有成效不?好吧,我從來沒聽任何專家說過「辭職和萎靡不振」可以造就偉大的代碼,所以可能並沒有成效。

這就提出了一個問題:我們該如何避免這種沒有成效的狀態?

重新發現問題,重新發現你的生產力

可能你已經行進在這條路上了。那麼此時你只要繼續就可以了,我可能沒有什麼新的東西可以告訴你的。

如果你是新手,那麼可能你還不知道如何重新發現生產力。

下面我要分享的內容將有助於你在編程時以一種健康的方式保持生產力,不至於筋疲力竭。主要包括:

測試不同的解決方案,直到感覺重復

在線尋找開源解決方案

向更有經驗的程序員詢問

如果一切都失敗,那就瀟灑放手

1_測試不同的解決方案,直到感覺重復

在你研究或詢問其他開發人員(=浪費他們的時間)之前,你應該嘗試使用你現有的知識和思維來制定每一個可能的解決方案。

顯而易見的是,太多的程序員是從詢問他人開始的,自己甚至都不曾靜下心來分析問題本身。不要成為這樣的討厭鬼,盡可能不要浪費別人的時間。

先投身於工作,然後再尋求幫助。

2_在線查找開源代碼

當你投入於工作,卻沒有什麼成果的時候,那麼下一步你可以嘗試開源代碼。許多編程人員構建軟體,是出於創造解決方案並在線發布以供大家使用的樂趣。有些人發布的代碼曾被它們的程序員使用於商業項目。

GitHub是尋找開源代碼的兩個主要地方之一。另一個是StackOverflow。

這些網站的解決方案是採用可重用代碼的形式,方便你在項目中實現。

謹記,使用其他人開發的代碼總是有風險的。它可能會以你意想不到的方式改變程序的行為。備份原始代碼,這是常識。

3_向更有經驗的程序員詢問

你有沒有碰到過這樣的情況,向其他人求助卻發現你甚至不知道自己在問什麼?

在詢問任何人之前,你得准備好一些你無法通過網路信息搜索解答的問題。

明確的問題,才能有明確的解決方案。如果是你自己都描述得雲里霧里的問題——那麼你只會得到一個雲里霧里的回答(並且可能會惹惱他人)。

如果你周圍沒有任何開發者可以詢問,那麼也可以在線查找。你可以在社交論壇上詢問,或查找特別針對於你所用技術的頻道。

4_如果一切都失敗,那就瀟灑放手


不要一心鑽在死胡同里,實在不行,那就去干點別的事——睡覺,吃東西,等等。

你覺得這是在逃避工作?那就錯了。

我要告訴你的是,當你最輕松的時候,往往正是解決辦法靈機一現的時候,這不是我胡編亂造的,而是有科學的證明。此時你的大腦工作在「發散思維」的模式下,而不是在「集中注意力」的模式下——你可以在這篇文章中了解之間的差異。

總的來說,這個理念就是要你忘記手頭的問題,讓你的意識心靈沉浸到其他的事情中。此時,你的潛意識則開始連接要點,朝著頓悟的方向前行。

我們可以做些什麼以便於幫助大腦在發散思維的模式下工作呢?放輕松就好了:

散步(古代哲學家非常習慣於在走路時演講,因為他們意識到走路有助於思考)

清理辦公室或住所(完成後給自己一個獎勵)

與朋友約會,喝杯咖啡,聊聊八卦(如果你過於關注問題的話,那麼建議和不能提供幫助的非編碼人員交談)

總結

我在編程和生活兩者之間保持了一種健康的平衡。

無論你是為了興趣愛好、錢還是改變世界的宏圖偉業而選擇編程——編程都不應該是你唯一痴迷的東西,否則你會走火入魔。

最後再說一句,如果你絞盡腦汁,卻仍然無法解決問題,那麼不妨先放一放。通過潛意識的運作,搞不好突破性的想法就會靈光乍現。

感謝大家閱讀由java培訓機構分享的「當程序員寫不出代碼了,該怎麼辦?」希望對程序員們有所幫助,更多精彩內容請關注Java培訓官網

免責聲明:本文由小編轉載自網路,旨在分享提供閱讀,版權歸原作者所有,如有侵權請聯系我們進行刪除

4. 本人程序員剛進一家公司,半個月了,現在寫代碼寫不出來怎麼辦

我沒有做過程序員,但稍稍會點簡單的(自學)。我感覺一個成熟的程序是系統工程,初接觸者:無從下配廳敗手個人感覺很正常!

經常在網站上看到公司罵老的離職程序員代碼爛。我認為有二個原因:

1、培顫新入職的員工看不懂,自己不懂但罵罵別人,可以轉嫁風險,讓離職的背鍋,為自己爭取時間過渡或重建。

2、程序代碼易讀性太差,相關伏含說明文檔缺失。雖然實現了功能,但別人接手太難(普遍情況)。新入職除了重建,要麼深入讀懂每個邏輯結構(比重建難,要跟著前一程序員思維走)。

以上二點你大概也清楚什麼意思了。不知道你是維護老代碼呢,還是新項目?

如果是維護老代碼,多看文檔、查資料、了解程序思維,反正有工資拿,也不急。

如果入職的是新項目,說明你技術還不成熟,那就加緊學唄。我個人預計:程序員這行,邊學邊賣的占總比90%

個人見識有限,錯誤難免,重在交流交流!

5. 一名小白程序猿怎麼快速提升編程能力

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

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們做的代碼模板代碼框架,乖乖的復制、修改、填肉吧。

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

閱讀全文

與程序員寫代碼很慢相關的資料

熱點內容
重慶農村商業銀行app怎麼老出問題 瀏覽:467
慧編程配置要求 瀏覽:669
數控機床編程與操作視頻 瀏覽:458
文件夾資料誤刪怎麼辦 瀏覽:81
手機app怎麼下載安裝 瀏覽:492
最新的java版本 瀏覽:993
萬卷小說緩存在哪個文件夾 瀏覽:687
st單片機怎樣燒 瀏覽:871
watch怎麼下載APP 瀏覽:821
銀行程序員面試 瀏覽:358
我的世界的伺服器為什麼不能更新 瀏覽:769
命令與征服絕命時刻比賽視頻 瀏覽:827
電腦捕獲視頻的文件夾怎麼換 瀏覽:482
windows編譯安卓軟體 瀏覽:210
加密dns列表 瀏覽:990
股市操練大全八冊pdf 瀏覽:120
c傳遞指針到python 瀏覽:163
手動添加引導的命令 瀏覽:54
740伺服器小藍條是做什麼的 瀏覽:523
linux文件操作命令 瀏覽:130