軟體工程學習後的一些體會--------兩周

來源:互聯網
上載者:User

標籤:

      軟體工程這門課在印象中就是一門理論課,因為以前沒有接觸過,想象中的情境是:老師開啟ppt,然後照本宣科的開始念經。在第一節課上,作為見面禮,老師開場贈送的一波營養豐富的雞湯確實很是鮮美,聽後信誓旦旦的感覺一定會成就一番事業(不過我更覺得像是一場90分鐘的單口相聲)。所以課上聽得酣暢琉璃,課後不久也就忘得差不多了。然後隨之而來的是號稱11項的課後作業,其實都是一些簡單的活兒。有句話說得好:”難的事情不會做,簡單的事情做不好,那你能幹啥?“。其實我確實將任務都完成了,但後來分數很是不理想,因為沒能按規定的要求進行發布。所以從第一次的課後作業中我體會到:即便你能做出結果,但是如果不能很好的展示給客戶,那一切都是徒然。就像你號稱自己精通十八般武藝,可是到了比武場卻不出拳一樣。

  時間來到第二節課,我意識到如果把每節課當成老師的單口相聲來聽,也只能過過耳癮,就像拿零碎的時間來看新聞一樣,對當時看到的新聞表示震驚,或是感同身受,過了兩小時後再要你講述你看到的事情,卻一概不知。所以我決心在聽老師的課時,寫一些自己應該注意的事項。隨著90分鐘的逝去,居然足足寫了一頁的內容,同時也驚歎於看似笑點百出的“單口相聲”能有這麼多資訊量。要學會從別人話中提取資訊。同時課後也是留下了一大批作業,看似在前次作業的基礎上難度稍有增加,然後想著要以自己理想中的方式來完美實現。就拿題目中的一項“編寫程式,實現(正,負,分)數的加減乘除四則混合運算“來說,想著挺簡單的,但真正實現時才知道要想好所用的資料結構,設計流程,以及各種邊界情況。最後才感到要一次性完成一個理想中的作品是很有難度的,所以我先實現一個簡單的版本,然後在下一個迭代周期進行改進,Rome was not built in a day。在需求上不懂的一定要和同學多交流,討論。需求理解錯了後面的一切功夫都白費。我就是花了大半天的時間在一個很簡單的需求上(關於重新導向的問題),然後始終不能實現。最後發現其實是自己對需求的理解錯了。

  在程式實現部分體會到會寫代碼不是編程的全部,自己對於以前做過的程式,現在看來居然一臉懵,就是因為缺少注釋。在網上看別人寫的代碼都有規範的注釋,這一點是值得學習的。對於程式的縮排,話說縮排之後的代碼可讀性真的很強,甭管代碼是否正確,但是在外觀上看著就舒服。在部落格的書寫上,以前都是將結果論述出來就算完成任務,後來發現優秀的同學竟然將部落格寫的像一篇論文一樣,從問題的提出,到需求分析,再到解決方案的提出,實現過程中關鍵步驟的給出和功能代碼的展示,以及未來的可擴充性的描述,講述的頭頭是道。甚是覺得自愧不如,應當學習。技術上的痛點可以通過外界訓練來實現,但好習慣好作風的養成只能靠自己的內在意識。永遠不要把事情在最後一秒提交或實現,對於需求儘快完成,就算出現問題也會有很多修改的空間,戰勝自己的拖延症。

  最後談一談在作業中遇見的幾個知識點:

1.對於java的equals方法和“==”之前有所瞭解他們的不同,但是在編寫代碼的過程中問題恰恰就出現在這裡了,最後解決了。現在對於自己和讀者進行一下科普。

Java中的資料類型可以分為基礎資料型別 (Elementary Data Type)和複合資料型別這兩種。基礎資料型別 (Elementary Data Type):Byte,short,char,int,long,float,double,boolean.他們之間的比較用“==”,比較的是值。

複合資料型別(類)用“==”進行比較時,比較的是他們在記憶體中的存放地址,除非為同一個new出來的對象(地址相同),他們比較結果為true,否則其餘的都為false。java中所有的類都是繼承自Object這個基類,Object這個基類中有equals方法,此方法的初始行為就是比較對象的記憶體位址。但是對於String,Integer,Date這些類中,equals方法有其自身的實現,而不再是比較類在對記憶體中的地址了。而對於複合資料型別中沒有覆寫equals方法的類,他們用equals方法比較的還是他們在記憶體中的地址值,因為Object中的equals方法也是用“==”實現的,所以用equals比較後的結果和用“==”比較的結果相同。以String類型舉例:

String s1 = "Monday"; String s2 = "Monday";     s1==s2為true,   s1.equals(s2)為true,因為s1與s2指向同一個“Monday”對象,值也相同。

String s1 = "Monday";      String s2 = new String("Monday");    s1==s2為false, 因為s1與s2引用兩個不同的Monday對象,記憶體位址不同。     s1.equas(s2)為true,因為值相同。

引用自 http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html

2.對於詞頻統計中文本的儲存:txt檔案在詞頻統計時要儲存為ANSI格式(預設的),不要設定成UNICODE格式。

3.java在命令列編譯問題。我的程式開頭有 package com.nune.homework這種包語句,類名叫Test,編譯時間應該寫為 Javac -d . Tset.java (意思是在目前的目錄下的 com/nenu/homework下產生.class檔案) 然後繼續運行Java com.nenu.homework.Test才好使。起初我是這樣寫:Javac Tset.java  然後運行 java Test 會報錯"找不到類"。

路漫漫其修遠兮,吾將上下而求索。       

        ---------------共勉!

軟體工程學習後的一些體會--------兩周

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.