盤點程序員開發遇到的30個問題

 640?wx_fmt=jpeg

????1、我不知道該刪掉還是重寫

  回歸曾經寫的源代碼,總有一種想要重新返工的沖動,邏輯性差,冗余代碼多,讓人難以理解。但是,如果功能沒出現問題,千萬不要去修改。這是我經常要面對的困擾,相信也困擾了其他不少的軟件開發者。

  2、一開始架構時就該查Github

  相信絕大多數開發人員都知道Github,它上面每天都會發布的一些神奇的開源項目。所有語言的程序員都會利用網絡,為已存在的項目創建分支,添加項目wiki描述,或者創建自己的代碼庫,這些都為各種各樣的項目的插件和模板提供了很多豐富的資源。

  3、為什么這個腳本要依賴這么多庫

  說到一些越來越被廣泛使用的計算機語言,像Java和Objective-C,庫文件的數量也不斷增加。很明顯可以看出,構建一個框架就需要許多的基礎庫,甚至一些Java的插件也需要很多大量的附加文件。有時候這些亂七八糟的東西會很讓人心煩,但是至少它能運行。

  4、網上一定有解決辦法

  遇到困難時,我的第一反應就是上網查資料,很多程序員會在論壇上發布他們的問題,最終這些問題都會被解決并存檔。Google會很神奇地選擇一些跟你的問題相關的關鍵字,你就能夠輕而易舉地得到一些對你有幫助的討論信息。不幸的是,有時候對于一些特定的問題,相關的信息還不是很多。

  5、有這個功能的插件嗎

  何必要多此一舉插件是擴展任何程序或者網站用戶接口的很好的資源。另外它們還為開發者提供了一些定制以及獨特的選項。如果沒有可用的插件,那你為什么不自己創建一個呢?

640?wx_fmt=jpeg

  6、對于網站項目,我好擔心坑爹的InternetExplorer

  使用IE渲染網頁遇到的各種困難,我就不提了,從5。5版本到IE9-IE10,對于瀏覽器的支持問題的爭議就一直不斷。Web開發人員會很害怕網頁調試,使用IE6進行渲染更是噩夢。,幸好那些日子已經慢慢成為歷史了。

  7、有些邏輯語句,并不符合邏輯

  有一些邏輯語句,像if/else循環,for循環,while循環,do循環…等等,還有很多。在回顧一些源代碼時,我總是盡力想弄明白我的邏輯是怎么回事。我經常會回頭更新代碼,讓邏輯更清晰。

  8、我花30分鐘寫個函數,運行它卻要花2個小時

  這不是十年前的一個有關編程的故事嗎?當一切都在按照你所所期待的順利進行著,突然某個函數輸出了一個致命的錯誤,所以你不得不回頭刪除代碼塊,試圖定位出錯的代碼行。盡管這會讓你筋疲力盡,但是一旦找到錯誤的原因,問題解決之后,你又會立馬感到渾身輕松。

  9、讀了幾篇博客后,我才意識到我之前所做的全是錯的

  我總是喜歡根據自己的編程思想直入主題,但是如果事情沒有按照我原本的計劃進行時,會導致很多麻煩。有很多次,我在做項目時,途中都遇到了麻煩,最后只得查找博客和相關文章去尋求幫助。然后又發現我的整個方法完全錯了,還不如從頭開始更容易點。所以從長遠來看,在項目開始時多做點研究反而會節省時間。

  10、StackOverflow上有好心人或許能幫助我

  我已經數不清有多少次,遇到問題都是通過StackOverflow得到解決的。只要你提出問題,社區里就會有很多聰明,友好的熱心人愿意幫助你。所有的在線論壇里,它絕對是支持軟件編程和前后端web開發的最全面的網站。

640?wx_fmt=jpeg

  11、這個問題竟然就因為少了個右括號

  調試是我們經常要用的方法,向前兩步,回退一步,再向前兩步,如此反復。為了查找函數命名或者變量作用域等錯誤,盯著代碼看了數個小時,結果發現只是缺少了一個括號,你會有種哭笑不得的感覺。所有的時間都浪費在了一個小小的語法錯誤上,那一刻,你會覺得自己既是天才,又是傻子。

  12、喝杯咖啡,休息一下

  有的時候你需要起身離開顯示器,連續敲了幾個小時的鍵盤,如果中間休息一下,會對你的身體有益。大多數健康指南都建議每30-60分鐘休息一次。但是還是要取決于你的需要,如果你感覺中間暫停去休息會打斷你的思維,讓你很不爽,那就最好不要了。

  13、我應該先把這個項目放一放,稍后在處理它

  休息的另一種方式就會暫停你手中的項目,而不是離開你的電腦桌。或許你還有其他的工作要做,那就繼續下一項任務。比起試圖在一個花了5個小時還沒解決的問題上繼續掙扎,這會是一種更合理地分配時間和資源的方式。

  14、我在想或許古典音樂能夠激發我的編程潛能呢

  有一種說法認為古典音樂能促進植物的早期生長,我個人更偏愛古典音樂錯綜復雜的注解和音樂理論。爵士,鋼琴,大型樂隊,優雅的音樂在全球各地的人類文化都占有一席之地。所以編程的時候聽點美妙的音樂會讓你調試起來更得心應手呢。當然也有可能,會讓你更加心煩意亂。

  15、或許現在是驗證鮑爾默峰值理論的好時機

  我相信很多讀者都知道鮑爾默峰值,它是根據一個特殊的XKCD漫畫得來的。簡單來說,這個理論認為程序員的編碼能力在喝了定量的酒后,會達到一個峰值。這個起源于SteveBallmer的些古怪滑稽的姿態被認為是像一個醉漢在說胡話。盡管這有點諷刺,因為鮑爾默在微軟從來算不上一個真正的程序員,猜想我們只有等其他人來實踐這個理論了。

640?wx_fmt=jpeg

  16、是誰動了我的代碼?

  這個聽起來有點像妄想癥,但是有時候你很想知道是誰趁你補覺的時候寫的這些東西。回顧過去幾周或者幾個月的項目,會給你一種暈乎乎的感覺。有時候你會不記得你寫過這些東西—盡管上周你還在參與這個項目。好像是我很瘋狂地寫的代碼,你卻從來不知道…

  17、完全不知道這是神馬東東

  你遇到的最糟糕的情況應該是在研究源代碼時,完全不知道它是在干什么,可能是來自你自己的項目,也可能是其他人的項目,但是問題都一樣。這個時候,你必須確定是否值得花費更多的時間去尋找其它解決方案或者仔細剖析代碼,研究它到底是干什么的。

  18、直接google下錯誤提示

  鑒于多年的PHP經驗,我不得不說Google真的是調試問題的最好的小伙伴。這對于Objective-C,C++,Java和其他的主流語言的境況一定是相同的。錯誤提示信息對我們很有用,但是你必須記住不同的錯誤代碼代表什么意思。它讀起來更像是被翻譯過的計算機語言。幸好有這么多在線支持,讓我們確定這些錯誤信息代表的真正意思。

  19、今天應該到此為止了,可我真的想把這個問題解決了

  我們都知道想要退出時的那種極度沮喪的感覺,但是同時又覺得放棄不是正確的選擇。你很想繼續前進,找出新的解決方案來。但是如果到最后還是浪費了一個小時,那該怎么辦?我對這種情況并不陌生,它會讓人特別沮喪。

  20、哦買糕的,為什么我都沒寫注釋呢

  如果涉及到最基本的前端代碼HTML/CSS/JS時,并不需要總是寫注釋。但是如果是比較復雜的腳本和程序時,就需要寫一些標準的注釋以便你幾個月,甚至幾年后來重溫這些代碼。有時候你會忘記給函數,參數,輸出格式以及其他重要的數據寫注釋,這無疑會導致發生bug時你不得不調試整個腳本去尋求解決方案,感到非常困惑,到那個時候你會覺得要是有一些有用的注釋該多好啊。

640?wx_fmt=jpeg

  21、這個20分鐘之前還好好的呢

或許構建程序時最讓人沮喪的是,明明剛才還好好的東西,沒有改過任何代碼,這會兒卻運行不起來了。我發誓這種情況絕對有發生,而且它沒有任何意義—也許其它程序運行的是緩存版本呢然后也有一些時候我們只更新了一丁點代碼,結果整個程序都崩潰并且完全停止運行。那就會回退到最新的備份版本,從那兒繼續吧。

  22、忘了一個該死的分號,整個程序都崩了

幾乎我用過的所有的編程語言都要求每行結束時都要有結束符,但并不是所有的語言都這樣,不過C/C++系列語言絕對是這樣。當你忘記添加分號結束符時,這是多明顯的錯誤!但是解析器并不不理解,便拋出一個致命的錯誤。接下來就得再花費20分鐘時間去研究代碼,查找技術錯誤。最終發現只是少了一個分號。哈,這就是軟件調試的樂趣。

  23、我想要招人來幫我修復bug,得花多少錢哪

  雇傭程序員的想法聽起來很誘人,但顯然在經濟上是不可行的。另外,如果你連自己的的錯誤都沒解決,你又怎么能從這些錯誤中學到東西呢?經歷多次失敗,最后當你真正理解了編程的概念后,你會很有成就感。但有時候腦子里難免還是會閃過這種想法。

  24、快速瀏覽下HackerNews,肯定能提高我的效率

  很多程序員對于瀏覽軟件和創業等社會新聞的偏愛選擇都是HackerNews首頁。它有大量的關于自由職業,時間管理,軟件開發,創業發布和籌資資金等方面很棒的信息。盡管HN能夠模擬出通過自我教育更加高效的感覺,但其實是在浪費你的時間。每隔幾小時去快速瀏覽下新聞也沒那么糟糕。

  25、這個API怎么沒有說明文檔啊?

  最讓人沮喪的事情就是使用插件或者框架時,自帶的文檔很糟糕,你只好自己去深入閱讀源代碼。我更喜歡讓開發人員花時間專門為項目設計一個文檔頁,對所有的參數和選項都給予解釋,有可能的話,給出一些示例代碼。但是很遺憾,這種情況幾乎不可能。所以最簡單的辦法就是遠離那些附帶文檔很糟的工作,以免給自己帶來麻煩。

640?wx_fmt=jpeg

  26、我真希望我已經對數據庫進行備份了

  在編寫和調試代碼的時候,我有時候會想不到備份。然而,數據備份能夠幫助我們回退到做出某個特定的改變之前的版本,這對一個即時的服務器環境是特別有用的,有些變化瞬間就會發生。切記在本地保留對網站文件和數據庫的拷貝,以備急需。你可能會覺得這樣太麻煩了,但是總比你重建一個SQL數據庫強多了。

  27、怎樣才能快速解決這個問題?

  如果花費了數小時后,仍然未找到一個解決辦法,很明顯你需要一個新的方案了。程序員總是想要先實現功能,然后再去設計和美化界面。先確定一個最快的,最準確的解決方案,并盡力去實現和完成,然后再去考慮美化界面的問題就會很輕松了。

  28、我敢打賭,你更新下我的代碼,這個問題就解決了

  那些為編程語言提供依賴包和插件的團隊并不需要頻繁地發布產品。有時候從本地傳送文件到服務器的時候,更新PHP/Ruby/Python/SQL版本可能會解決一些調試問題。除非你的版本實在太舊了,否則本地更新很少能夠幫助你修復源代碼中的bug,不過還是值得一試!

  29、我真的該好好學習Git了,…還是下周吧

  開源的版本控制控制軟件Git在程序員中廣受歡迎。跟其他競爭對手相比,它提供了一條更簡單的學習曲線,被應用在了許多在線倉庫像Github和Bitbucket中。可能對初學者來說,會有點難度,但是一旦你掌握了基本命令,你會發現使用GIt就是小菜一碟。它還讓版本控制更加清晰。

  30、算了,我還是從頭開始吧

  有時候嘗試了數小時的解決方案后,你可能需要將你的工作文件歸檔(或者刪掉它們),重新開始。這個決定的最大難點就是你會考慮到前面數小時的工作會毫無收獲。但是如果你保留之前的想法,項目卻毫無進展時。重新開始,才有可能讓項目順利完成。

圖文來源于網絡


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272021.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272021.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272021.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

20159320《網絡攻防實踐》第5周教材總結

web應用程序安全攻防 應用程序體系結構以及其安全威脅 1、三層架構:表示層、業務邏輯層和數據層 2、體系結構:瀏覽器、web服務器、web應用程序、數據庫、傳輸協議HTTP/HTTPS 3、web應用安全威脅:針對瀏覽器和終端用戶的web瀏覽安全、針對傳輸…

saas是什么意思_為什么越來越多的人選擇SaaS模式的crm客戶管理系統?

SaaS近幾年在國內逐漸升溫,很多企業管理者都開始了解SaaS是什么意思,SaaS是企業根據需要,從SaaS提供商獲取軟件使用權的,直接通過互聯網就可進行操作。對于我國大多數中小企業來說,選擇SaaS模式的crm客戶管理系統也許是…

趣漫揭秘!中國程序員生存現狀?

如果沒有程序員,整個虛擬世界都會消失不見。全中國7億多網民,再也不能愉快滴發自拍,看視頻,打游戲,甚至連打電話都成了一種幻想。絕大部分電子設備都會變成廢鐵,人類的生活將完全倒退到70多年以前。程序員貢…

一個App完成入門篇(五)- 完成新聞頁面

本節教程將介紹如何用DeviceOne簡單而高效的完成一個新聞頁面。 導入項目數據模板分離MVVM模型自定義事件展示新聞九宮格展示將要學習的demo效果圖如下所示 1. 導入完整項目 本節示例demo請參考下載地址,可以導入到設計器中學習。 為了方便大家理解頁面結構&#xf…

程序員職業規劃

每個程序員的職業生涯無非以下幾種情況:一、幫別人掙錢(打工)不管你是剛入職的小兵,還是管人的經理,甚至是唬人的總監,都屬于這一階段。通常程序員在這一階段的職業發展分兩條線,專家&#xff0…

python getattrribute_python操作對象屬性

getattrgetattr(a,b)的作用就和a.b是一樣的。那么這個內建函數有什么作用呢,最方便的無疑是使用它來實現工廠方法(Factory Method)模式。參數說明:object:對象的實例name:字符串,對象的成員函數的名字或者成員變量defa…

電腦處理器i5和i7的區別,如何選擇?

對于好多正在準備入手筆記本的朋友們來說,電腦的配置參數真的是讓人眼花繚亂,一些看不懂的數字和英文碼看得人心煩,i5和i7的區別究竟在哪里那?處理器中央處理器(英文Central ProcessingUnit,CPU&#xff09…

c++ map的存儲結構_「軟帝學院」java集合類框架map及相關常見問題二

Map接口 通過查看Map接口描述,發現Map接口下的集合與Collection接口下的集合,它們存儲數據的形式不同,如下圖。 Collection中的集合,元素是孤立存在的(理解為單身),向集合中存儲元素采用一個個元素的方式存儲。 Map中的…

Windows 下 Conda install 安裝出現CondaHTTPError: HTTP 000 CONNECTION FAILED for url解決措施

在使用Conda install 安裝庫的時候出現以下錯誤 原因是使用的是國外的鏡像,切換至國內鏡像就可以解決啦 在cmd 中輸入下面命令 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes…

盤點谷歌瀏覽器9項隱藏的實用功能

谷歌 Chrome 瀏覽器一直以速度、簡潔和安全為用戶所熟知。除此之外,Chrome 的其他功能也非常強大,為了進一步提高工作效率,讓我們一一揭曉它的那些隱藏技能吧。1、同時登入多個賬戶用戶擁有多個谷歌賬戶(工作用或個人用&#xff0…

正則10-18

轉載于:https://www.cnblogs.com/XACOOL/p/5357652.html

華為手機下拉菜單沒了_用了三年才知道華為錄屏這么強大!再不會用,手機錢打水漂了...

現在的手機錄屏操作可不少,但是像華為手機這樣好用的可不多了!用了好幾年華為才知道,原來它的錄屏操作這么逆天,今天我就來給大家科普科普:華為錄屏的那些事兒!1、快捷錄屏直播錄屏講究的就是新鮮熱乎&…

程序員下班電腦不關機的5大原因,你中招了嗎?

不管是周圍的程序員朋友還是網上的很多程序員朋友,在下班后都是習慣不關電腦的,針對這一發現,小編收集了部分網友的意見,看看身為程序員的你是不是也是這樣的呢?1、你知道:開機要打開十個左右的應用&#x…

【matlab】將matlab中數據輸出保存為txt或dat格式

將matlab中數據輸出保存為txt或dat格式 總結網上各大論壇,主要有三種方法。 第一種方法:save(最簡單基本的) 具體的命令是:用save *.txt -ascii x x為變量 *.txt為文件名,該文件存儲于當前工作目錄下,再打開…

mysql數據庫算法_數據庫:MySQL索引背后的數據結構及算法原理【轉】

原文:http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL數據庫為研究對象,討論與數據庫索引相關的一些話題。特別需要說明的是,MySQL支持諸多存儲引擎,而各種存儲引擎對索引的支持也各不相同&#…

Anaconda詳細安裝及安裝Scrapy框架

Anacond的介紹 Anaconda指的是一個開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項。 因為包含了大量的科學包,Anaconda 的下載文件比較大(約 531 MB),如果只需要某些包,或者需要節…

時下流行的9種惡意軟件,你都了解嗎?

來自:FreeBuf.COM*參考來源:csoonline,Karunesh91編譯當今時代,網絡世界處處充滿了危機,對于網絡用戶來說,能夠對各種類型的惡意軟件進行了解,也許有助于在網上沖浪的過程中保全自身。病毒計算機…

Windows下OpenSSL創建CA證書以及客戶端和服務器端證書

打開命令行工具,轉到安裝目錄bin文件夾,$ mkdir -p ./demoCA/{private,newcerts}$ touch ./demoCA/index.txt$ echo 01 > ./demoCA/serial產生的目錄結構如下:-- demoCA/|-- index.txt|-- newcerts/|-- private/-- serial然后執行下面的命…

SpringCloud和SprigBoot之間的依賴關系怎么看

SpringCloud官網地址 https://spring.io/projects/spring-cloud 不推薦使用了,推薦用最新的是Hoxton版本 打開下面提供的網頁 https://start.spring.io/actuator/info 使用解析工具查看 https://tool.lu/json/ 查看json串返回的結果 { "git": { …