《構建之法》我的第一次做業

這個做業屬於哪一個課程 課程的連接
這個做業要求在哪裏 做業要求的連接
我在這個課程的目標是 正如書名,但願能略懂《構建之法》,運用其精美的內涵豐富本身的程序人生
這個做業在哪一個具體方面幫助我實現目標 本次做業從開始使用博客,讓我認識到寫博客對程序員的學習相當重要,以及應用書中的構建美妙,尤爲是後面的「敏捷流程」的內涵,使得我受益不淺。
個人博客主頁 https://home.cnblogs.com/u/etron/
其餘參考文獻 百度搜索引擎,其餘人優秀博客,菜鳥教程

1、自我介紹

我是誰呢?html

很難經過一兩句話展現一我的的靈魂。java

由於自我展示給別人的東西和別人理解的,mysql

都將隨着各自的感官在本身的心靈加上濾鏡。git

因此只須要簡單地介紹下我這裏的濾鏡:程序員

  • 身份:年滿20,軟件工程專業,大三學生
  • 目標:但願取得與時間付出對等的工做
  • 興趣:愛讀書,不求上至天文,下至地理,但求作事有本身的思考,瞭解足夠的歷史
  • 優點技能:無,人外有人,天外有天
  • 愛好:一切能讓本身開心的事

2、閱讀與思考

(1)回想一下你初入大學時對你所在的專業的暢想

  • Q:當初你是如何作出選擇你所在專業的決定的?web

    A:在哥哥的人生經驗上,爲我提出建議後,我下定決定作出的選擇。算法

  • Q:你認爲過去一(兩)年中接觸到的課程是否符合你對你本身所在專業的期待,爲何?sql

    A:不符合。緣由在於自身沒有更加認真對待某些學科,致使如今欠下了一些學習賬須要去彌補,好比設計模式。數據庫

  • Q:你以爲你所在的專業是你喜歡的領域嗎?它是你擅長的領域嗎?編程

    A:不能直接說是我喜歡的,只能說不是我所討厭的,全部我不討厭的都是我喜歡的。擅不擅長都沒有意義,目前的編程都是熟能生巧。

  • Q:未來你會選擇從事和你專業相關的工做嗎?是的話給出你想去的城市、公司和崗位,否的話給出緣由。

    A:大機率從事計算機相關專業的工做。我想去的城市,公司和崗位如今憧憬都沒有意義。城市不夠了解,也沒有特別討厭的,公司看到時候是否有人要,崗位看本身的水平。

(2)對照前人們走過的路和描述將來發展,如今的你

  • Q:自我感受你已經具有的專業知識、技能、能力有哪些?已經寫過的代碼量是多少?描述你作的最複雜的項目

    A:已經具有:熟悉C,熟悉C#,熟悉mysql,熟悉javaweb,熟悉數據結構...

    ​ 代碼量:不曾統計。低於一百萬,高於五千。

    ​ 最複雜項目:本身的博客網站。

  • Q:離成爲一個合格的本科畢業生,在專業知識、技能、能力上還差距哪些?

    A:差得遠,最差的是底層知識的學習:數據庫,操做系統,計算機網絡...

(3)目前是一我的生選擇的十字路口,考研、工做、考公、出國,不一樣的選擇在大三就有不一樣的努力方向。而不管考研仍是工做的每條路徑,也有許多不一樣的分支。

  • Q:照以上你閱讀的前人們的經歷,你的選擇是什麼?

    A:工做,期待實習的本身,期待步入社會的本身,期待一切未知的事情。

  • Q:在這種選擇下,你認爲你相比其餘同窗來講有何優點,有何劣勢?

    A:個人優點其實也是你們都有的優點,在一件事情上花費足夠的時間。

  • Q:針對你的選擇,你給本身的大三設定的規劃安排是什麼?

    A:課程認真對待,線下多coding。大三有機會就提早去實習。

  • Q:你對於實現本身的夢想已經作了或者計劃作什麼樣的準備?

    A:夢想在我看來不用說,只須要去作。理想才須要計劃,準備。

3、提有質量的問題

  • 構建之法12.1.2中提到理解別人的處境,心境,動機的能力是同理心,軟件團隊的設計師和軟件工程師也須要同理心。我就在想站在別人的角度去考慮問題這點是很好的,可是做爲軟件工程師的話若是都從別人的角度去考慮本身軟件設計的因素的話須要考慮的角度就會特別多,例如設計者,用戶,上層等等,並且每一個角度看到的東西又都是大相徑庭的,這時候咱們要怎麼作才能更好的兼顧全局?
  • 同時,這樣的話會浪費更多的時間去調試,咱們又該怎樣在規定的工期時間內完成用戶的種種需求,這顯然是很是很是麻煩的,要作好一個知足所有要求的軟件顯然是不現實的,咱們又該怎麼取捨?
  • 12.5中向咱們提了一個問題:什麼是用戶體驗何時開始考慮用戶體驗?從不一樣時間段去考慮用戶體驗顯然會帶來不一樣的問題,那存不存在一個最好的時間點呢?
  • 14.1.1中提到軟件質量=程序質量+軟件工程質量 軟件工程的質量又有三個特性:好,快,便宜。那麼假如一我的或者一個團隊開發軟件的過程當中過無法作到這三點,我認爲最重要的是好,但想了想,在規定的工期內既然無法作到快,那也很難作到好了,那麼對於一個軟件開發過程,這三點那一項是相較於其餘兩項要更佔主導位置的呢?
  • 書16章在介紹產品了,其中舉了個魔方創新的例子,魔方產業中出現了種種的競爭者,笑到最後的確是那名技術不夠硬,產品不夠好,出現時間不夠長的一位,只由於他作到了客戶的需求。那麼我就在想,在現實社會中一個產品的營銷中也會產生不少不少的競爭者,咱們可以支抓住目標用戶的需求就能夠脫穎而出嗎,在這以前不須要磨練出過硬的技術生產出過硬的產品嗎?

4、瞭解和調查源程序版本管理工具

Git:早已聽聞git版本控制的大名,得益於課程的需求可以深刻開始瞭解一下。

如下解釋來源於菜鳥教程:

Git是一個開源的分佈式版本控制系統,用於敏捷高效地處理任何或大或小的項目。

Git是Linus Torvalds爲了幫助管理Linux內核開發而開發的一個開放源碼的版本控制版本。

Git是經常使用的版本控制工具CVS,Subersion等不一樣,它採用了分佈式版本庫的方式,沒必要服務器端軟件支持。

SVN:

Apache Subversion一般被縮寫成SVN,是一個開放源碼的版本控制系統,Subversion在2000年由CollabNet Inc開發,如今發展成爲Apache軟件基金會的一個項目,一樣是一個豐富的開放者和用戶社區的一部分。SVN相對於的RCS,CVS,採用了分支管理系統,它的設計目標就是取代CVS。互聯網上免費的版本控制服務多基於Subversion。

SVN是一個開源的版本控制系統,也就是說Subvserion管理者隨時間改變的數據。這些數據放置在一箇中央資料檔案庫(repository)中。這個檔案庫很像一個普通的文件服務器,不過它會記住每一次文件的變更。這樣你就能夠把檔案恢復到舊的版本,或是瀏覽文件的變更歷史。

CVS:

CVS是一個C/S系統,是一個經常使用的代碼版本控制軟件。主要在開源軟件管理中使用。與它相相似地代碼版本控制軟件有subversion。多個開發人員經過一箇中心版本控制系統來記錄文件版本,從而達到保證文件同步的目的。CVS版本控制系統是一種GNU軟件包,主要用於在多人開發環境下的源碼的維護。可是因爲以前CVS編碼的問題,如今大多數軟件開發公司都使用SVN替代了CVS。

Git與SVN區別:

Git不只僅是個版本控制系統,它也是個內容管理系統(CMS),工做管理系統等。

Git與SVN區別點:

  • 一、Git 是分佈式的,SVN 不是:這是 Git 和其它非分佈式的版本控制系統,例如 SVN,CVS 等,最核心的區別。
  • 二、Git 把內容按元數據方式存儲,而 SVN 是按文件:全部的資源控制系統都是把文件的元信息隱藏在一個相似 .svn、.cvs 等的文件夾裏。
  • 三、Git 分支和 SVN 的分支不一樣:分支在 SVN 中一點都不特別,其實它就是版本庫中的另一個目錄。
  • 四、Git 沒有一個全局的版本號,而 SVN 有:目前爲止這是跟 SVN 相比 Git 缺乏的最大的一個特徵。
  • 五、Git 的內容完整性要優於 SVN:Git 的內容存儲使用的是 SHA-1 哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時下降對版本庫的破壞。

相關文章
相關標籤/搜索