1. 程式人生 > 實用技巧 >入門計算機的粗略學習-Day1

入門計算機的粗略學習-Day1

程式語言

對於計算機這種機器而言,它只認識1和0,計算機中的所有指令最終變成機器熟悉的1或0,但對於人來說,去理解複雜的編碼和各種奇怪的機器指令是困難的,所有有了程式語言,從低階的,難記難以理解的組合語言,到現在的各種各樣的高階語言,這些都是幫助人去快速開發程式的工具。使用這些語言開發程式,最終會被編譯成機器可以理解的機器語言,執行在機器上。
現在的高階語言是面向物件進行開發的,使用程式語言將各種東西抽象成類,類包含屬性和方法,類可以被例項化為物件。
物件:物件是類的一個例項(物件不是找個女朋友),有狀態和行為。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
:類是一個模板,它描述一類物件的行為和狀態。

下圖中男孩(boy)、女孩(girl)為類(class),而具體的每個人為該類的例項化物件(object),每個物件有自己的屬性和行為:
在這裡插入圖片描述

計算機網路

一臺臺獨立的計算機,雖然可以幫助人們解決一些計算問題,但是不能改變人們的生活,但是計算機網路的出現,讓獨立的計算機連線了起來,網路把主機連線起來,而網際網路是把多種不同的網路連線起來,因此網際網路是網路的網路。
在計算機網路中規定了各種各樣的協議,用以安全有效的傳輸資料。現今網路已經被規範化,根據不同的體系結構網路被劃分成不同的層次,下層為層提供服務,資料在網路中一層一層包裝或者解析。
在這裡插入圖片描述

五層協議

應用層 :為特定應用程式提供資料傳輸服務,例如 HTTP、DNS 等。資料單位為報文。

傳輸層 :為程序提供通用資料傳輸服務。由於應用層協議很多,定義通用的傳輸層協議就可以支援不斷增多的應用層協議。運輸層包括兩種協議:傳輸控制協議 TCP,提供面向連線、可靠的資料傳輸服務,資料單位為報文段;使用者資料報協議 UDP,提供無連線、盡最大努力的資料傳輸服務,資料單位為使用者資料報。TCP 主要提供完整性服務,UDP 主要提供及時性服務。

網路層 :為主機提供資料傳輸服務。而傳輸層協議是為主機中的程序提供資料傳輸服務。網路層把傳輸層傳遞下來的報文段或者使用者資料報封裝成分組。

資料鏈路層 :網路層針對的還是主機之間的資料傳輸服務,而主機之間可以有很多鏈路,鏈路層協議就是為同一鏈路的主機提供資料傳輸服務。資料鏈路層把網路層傳下來的分組封裝成幀。

物理層 :考慮的是怎樣在傳輸媒體上傳輸資料位元流,而不是指具體的傳輸媒體。物理層的作用是儘可能遮蔽傳輸媒體和通訊手段的差異,使資料鏈路層感覺不到這些差異。

OSI

其中表示層和會話層用途如下:

表示層 :資料壓縮、加密以及資料描述,這使得應用程式不必關心在各臺主機中資料內部格式不同的問題。

會話層 :建立及管理會話。

五層協議沒有表示層和會話層,而是將這些功能留給應用程式開發者處理。

TCP/IP

它只有四層,相當於五層協議中資料鏈路層和物理層合併為網路介面層。

TCP/IP 體系結構不嚴格遵循 OSI 分層概念,應用層可能會直接使用 IP 層或者網路介面層。

TCP/IP 協議族是一種沙漏形狀,中間小兩邊大,IP 協議在其中佔據舉足輕重的地位。

作業系統

在計算機中,作業系統是其最基本也是最為重要的基礎性系統軟體。如現在的Windows,Linux等,它為使用者提供了操作介面,幫助使用者簡單的進行程序排程,檔案管理,裝置管理(如儲存裝置,列印裝置)等等。

為什麼更多使用Linux作為伺服器作業系統

穩定性
Linux穩定性更好,Linux更新無du需重啟,不會停止Server,這才是真正zhi的Server;
Linux服務dao器相對Windows伺服器,宕機機率更低;
Linux系統處理多程序比Windows要好的多;
Linux系統相對win來說“靈敏”;
安全性對比
Linux是建立在Unix上,從一開始就是為多使用者設計的作業系統;
Linux檔案管理一目瞭然,不像Windows那樣隱藏檔案;
Linux系統,幾乎沒有使用者或者應用可以訪問核心;
伺服器硬體要求
Linux系統“身材苗條”,靈活輕鬆的配置,以及優秀的拓展性;
相對windows系統來說,win需要頻繁的更多的硬體升級來支援資源需求;
版權問題
Linux是開源的系統,在海外伺服器上使用不受版權限制,輕鬆獲得高階版本使用權;
windows系統在海外伺服器上使用,需要提供版權租用費用,版本越高租金也越高。

軟體工程

軟體工程(也就是我的專業~)是研究和應用如何以系統性的、規範化的、可定量的過程化方法去開發和維護軟體的方式。因為計算機發展越來越快,程式越來越複雜,導致問題越來越多,專案成本,開發進度等等,越來越難以管理,因此有了軟體工程。
軟體工程系統的規定了軟體的開發流程,現在大部分公司都會遵守一套自己的軟體開發流程。
從業務方提出需求,產品經理對需求進行分析,產出需求文件(需求文件中會用UML時序圖,流程圖,UI設計圖等各種圖,來幫助程式設計師梳理需求流程),然後程式設計師對需求進行分析,排期,開發,程式設計師開發完成後,這時可能會有bug(程式中有錯誤),需要測試人員進行測試,
測試中又分好多好多種類(單元測試(對某一特定功能進行測試),迴歸測試(對系統進行測試,檢視新功能是否影響了老業務),非功能測試(壓力測試,判斷伺服器能承受多大的流量)等等),測試完成後會上線讓產品經理進行驗收,驗收通過後,本次需求就徹底開發完成了。