王和平的《計算機是怎樣跑起來的》學習筆記

第1章 計算機的三大原則
初級問題
硬件和軟件的區別是什麼?
中級問題
存儲字符串“中國”需要幾個字節?
高級問題
什麼是編碼(Code)?
初級問題: 硬件是看得見摸得着的設備,比如計算機主機、顯
示器、鍵盤等。而軟件是計算機所執行的程序,即
指令和數據。軟件本身是看不見的。
中級問題: 在GBK 字符編碼下,存儲“中國”需要4 個字節。
高級問題: 通常將爲了便於計算機處理而經過數字化處理的信
息稱作編碼。
初級問題: 硬件(Hardware)代表“硬的東西”,而軟件(Software)
代表“軟的東西”。是硬的還是軟的取決於眼睛能否看
得到,或者實際上能否用手摸到。
中級問題: 存儲漢字時,字符編碼不同,漢字所佔用的字節數也
就不同。在GBK 字符編碼下,一個漢字佔用2 個字
節。而在UTF-8 字符編碼下,一個漢字佔用3 個字節。
高級問題: 計算機內部會把所有的信息都當成數字來處理,儘管
有些信息本來不是數字。用於表示字符的數字是“字符
編碼”,用於表示顏色的數字是“顏色編碼”。
本章重點
現在的計算機看起來好像是種高度複雜的機器,
可是其基本的構造卻簡單得令人驚訝。從大約50 年前
的第一代計算機到現在,計算機並沒有發生什麼改變。在認識計算機時,
需要把握的最基礎的要點只有三個,我們就將這三個要點稱爲“計算機
的三大原則”吧。無論是多麼高深、多麼難懂的最新技術,都可以對照
着這三大原則來解釋說明。
只要瞭解了計算機的三大原則,就會感到眼前豁然開朗了,計算
機也比以往更加貼近自己了,就連新技術接連不斷誕生的原因也明白
了。本書以本章介紹的計算機的三大原則爲基礎,內容延伸至硬件和
軟件、編程、數據庫、網絡以及計算機系統。在閱讀之後的章節時,
也請諸位時常將計算機的三大原則放在心上。
1.1 計算機的三個根本性基礎

  1. 計算機是執行輸入、運算、輸出的機器
  2. 程序是指令和數據的集合
  3. 計算機的處理方式有時與人們的思維習慣不同
    1.2 輸入、運算、輸出是硬件的基礎
    1.3 軟件是指令和數據的集合
    1.4 對計算機來說什麼都是數字
    1.5  只要理解了三大原則,即使遇到難懂的最新技
    術,也能輕鬆應對
    1.6 爲了貼近人類,計算機在不斷地進化
    1.7 稍微預習一下第2 章
    第2章 試着製造一臺計算機吧
    初級問題
    CPU 是什麼的縮寫?
    中級問題
    Hz 是表示什麼的單位?
    高級問題
    Z80 CPU 是多少比特的CPU ?
    初級問題: CPU 是Central Processing Unit(中央處理器)的
    縮寫。
    中級問題: Hz(赫茲)是頻率的單位。
    高級問題: Z80 CPU 是8 比特的CPU。
    初級問題: CPU 是計算機的大腦,負責解釋、執行程序的內容。
    有時也將CPU 稱作“處理器”。
    中級問題: 通常用Hz 來表示驅動CPU 運轉的時鐘信號的頻率。1
    秒發出1 次時鐘信號就是1Hz,所以100MHz(兆赫
    茲)的話就是100×100 萬 = 1 億次/秒。M(兆)代表
    100 萬。
    高級問題: CPU 上數據總線的條數,或者CPU 內部參與運算的寄
    存器的容量,都可以作爲衡量CPU 性能的比特數。在
    Z80 CPU 中,無論是數據總線的條數還是寄存器的容
    量都是8 比特,所以Z80 CPU 是一款8 比特的CPU。
    而在Windows 個人計算機中廣泛使用的Pentium(奔
    騰) CPU 則是32 比特的CPU。
    本章重點
    要想徹底掌握計算機的工作原理,最好的方法就
    是自己蒐集零件,試着組裝一臺微型計算機。微型計
    算機(MicroCom)是Micro Computer 的縮寫,字面含義是微小的計算
    機,但一般也可用於指代IC 元件外露的、用於控制的計算機。因爲要
    製作一臺真正的微型計算機既花時間又花金錢,所以本章就在紙上體
    驗一下微型計算機的製作過程吧。需要讓諸位準備的只有如圖2.1 所示
    的電路圖和一根紅鉛筆。將電路圖複印下來後,請諸位一邊想象着元
    件之間傳輸的信號的作用,一邊用紅鉛筆描畫出筆者所介紹的電路,
    以此來代替實際的佈線環節。當所有的電路都描紅了,微型計算機也
    就完成了。
    別看只是描了描線,卻一樣能學到很多知識,甚至可以說不費吹
    灰之力就能瞭解計算機的工作原理。從此之後不但消除了對硬件的恐
    懼感,而且還會感到和計算機更加親近了。請諸位一定要藉此機會體
    驗微型計算機的製作過程。
    2.1 製作微型計算機所必需的元件
    2.2 電路圖的讀法
    2.3 連接電源、數據和地址總線
    2.4 連接I/O
    2.5 連接時鐘信號
    2.6 連接用於區分讀寫對象是內存還是I/O 的引腳
    2.7 連接剩餘的控制引腳
    2.8 連接外部設備,通過DMA 輸入程序
    2.9 連接用於輸入輸出的外部設備
    2.10 輸入測試程序並進行調試
    第3章 體驗一次手工彙編
    初級問題
    什麼是機器語言?
    中級問題
    通常把標識內存或I/O 中存儲單元的數字稱作什麼?
    高級問題
    CPU 中的標誌寄存器(Flags Register)有什麼作用?
    初級問題: 由二進制數字構成的程序,CPU 可以直接對其解
    釋、執行。
    中級問題: 標識內存或I/O 中存儲單元的數字叫作“地址”。
    高級問題: 用於在運算指令執行後,存儲運算結果的某些狀態。
    初級問題: 不僅是彙編語言,用C 語言、Java、BASIC 等編程語
    言編寫的程序,也都需要先轉換成機器語言才能被執
    行。機器語言有時也叫作“原生代碼”(Native Code)。
    中級問題: 內存中有多個數據存儲單元。計算機用從0 開始的編
    號標識每個存儲單元,這些編號就是地址(Address)。
    I/O 中的寄存器也可以用地址來標識。哪個寄存器對應
    哪個地址,取決於CPU 和I/O 之間的佈線方式。
    高級問題: Flag 的本意是“旗子”,這裏引申爲“標誌”。一旦執行
    了算術運算、邏輯運算、比較運算等指令後,標誌寄
    存器並不會存放運算結果的值,而是會把運算後的某
    些狀態存儲起來,例如運算結果是否爲0、是否產生了
    負數、是否有溢出(Overflow)等。
    本章重點
    本章的目標是通過編寫程序使諸位親身體驗計算
    機的運行機制。爲了達到這個目的,就需要使用一種
    叫作“彙編語言”的編程語言來編寫程序,然後再把編好的程序通過手
    工作業轉換成CPU 可以直接執行的機器語言。
    這樣的轉換工作叫作“手工彙編”(Hand Assemble)。也許會有
    人覺得聽起來就好像挺麻煩的,事實上也的確如此,但是還是希望所
    有和計算機相關的技術人員都能親身體驗一下用匯編語言編程和手工
    彙編。
    這次體驗應該能加深諸位對計算機的理解,使諸位猶如撥雲見日,
    找到長期困惑着自己的問題的答案,不僅能因“我能看懂程序了”而
    獲得成就感,更能因發現“計算機原來很簡單啊”而信心倍增。雖然
    本章的主題稍有些複雜,但是筆者會放慢講解的步伐,還請諸位努力
    跟上。
    3.1 從程序員的角度看硬件
    3.2 機器語言和彙編語言
    3.3 Z80 CPU 的寄存器結構
    3.4 追蹤程序的運行過程
    3.5 嘗試手工彙編
    3.6 嘗試估算程序的執行時間
    第4章 程序像河水一樣流動着
    初級問題
    Flow Chart 的中文意思是什麼?
    中級問題
    請說出自然界中河流的三種流動方式。
    高級問題
    事件驅動是什麼?
    初級問題: 流程圖。
    中級問題: 向着一個方向流淌;流着流着產生支流;捲成漩渦。
    高級問題: 用戶的操作等產生事件後,由事件決定程序的流程。
    初級問題: 流程圖(Flow Chart)是指用圖的形式表示程序的流程。
    中級問題: 與河流的流動方式一樣,程序的流程也分爲三種。在
    程序中,把猶如水流向着一個方向流淌的流程稱作
    “順序執行”;把猶如水流流着流着產生了支流的流程
    稱作“條件分支”;把猶如水流捲成漩渦的流程稱作
    “循環”。
    高級問題: Windows 應用程序的運行就是由事件驅動的。例如,
    選擇“打開文件”菜單項就能打開一個窗口,在裏面可
    以指定要打開文件的名稱和存儲位置。之所以能夠這
    樣是因爲一旦觸發了“選中了菜單項”這個事件,程序
    的流程就相應地流轉到了處理打開窗口的那部分。
    本章重點
    本章的主題是程序的流程。程序員一般都是先考
    慮程序的流程再開始編寫程序的。只有編寫過程序的
    人才能體會到“程序是流動着的”。一個人編寫的程序如果不能按照預
    期運行,就說明他還沒有很好地掌握“程序是流動着的”這一概念。
    爲什麼說“程序是流動着的”呢?因爲作爲計算機大腦的CPU 在
    同一時刻基本上只能夠解釋、執行一條指令。把指令和作爲指令操作
    對象的數據排列起來就形成了程序。請想象把若干條指令一條挨一條
    地依次排列到一條長長的紙帶上。然後把這條紙帶展開抻平,從頂端
    開始依次解釋並執行上面的每條指令,這樣看起來程序就好像流動起
    來了。這就是程序的流程。但是程序的流程並不是只有這一種。那麼
    下面筆者就先介紹一下程序流程的種類吧。
    4.1 程序的流程分爲三種
    4.2 用流程圖表示程序的流程
    4.3 表示循環程序塊的“帽子”和“短褲”
    4.4 結構化程序設計
    4.5 畫流程圖來思考算法
    4.6 特殊的程序流程——中斷處理
    4.7 特殊的程序流程——事件驅動
    第5章 與散發成爲好朋友的七個要點
    初級問題
    Algorithm 翻譯成中文是什麼?
    中級問題
    輾轉相除法是用於計算什麼的算法?
    高級問題
    程序中的“哨兵”指的是什麼?
    初級問題: Algorithm 翻譯成中文是“算法”。
    中級問題: 是用於計算最大公約數的算法。
    高級問題:“ 哨兵”指的是一種含有特殊值的數據,可用於標識
    數據的結尾等。
    初級問題: 算法(Algorithm)一詞的含義,不僅能在計算機術語辭
    典上查到,就是用普通的英漢辭典也能查到。
    中級問題: 最大公約數指的是兩個整數的公共約數中最大的數。
    使用輾轉相除法,就可以通過機械的步驟求出最大公
    約數。
    高級問題: 字符串的末尾用0 表示,鏈表的末尾用-1 表示,像這
    種特殊的數據就是哨兵。在本章中,我們將展示如何
    在“線性搜索”算法中靈活地應用哨兵。
    本章重點
    程序是用來在計算機上實現現實世界中的業務和
    娛樂活動的。爲了達到這個目的,程序員們需要結合
    計算機的特性,用程序來表示現實世界中對問題的處理步驟,即處理
    流程。在絕大多數情況下,爲了達到某個目的需要進行若干步處理。
    例如爲了達到“計算出兩個數相加的結果”這個目的,就需要依次完成
    以下三個步驟,即“輸入數值”“執行加法運算”“展示結果”。像這樣
    的處理步驟,就被稱爲算法。
    在算法中,有表示程序整體大流程的算法,也有表示程序局部小
    流程的算法。在第4 章已經講解過了表示大流程的算法。那麼本章的
    重點就是表示小流程的算法。
    5.1 算法是程序設計的“熟語”
    5.2 要點1:算法中解決問題的步驟是明確且有限的
    5.3 要點2:計算機不靠直覺而是機械地解決問題
    5.4 要點3:瞭解並應用典型算法
    5.5 要點4:利用計算機的處理速度
    5.6 要點5:使用編程技巧提升程序執行速度
    5.7 要點6:找出數字間的規律
    5.8 要點7:先在紙上考慮算法
    第6章 與數據結構成爲好朋友
    初級問題
    程序中的變量是指什麼?
    中級問題
    把若干個數據沿直線排列起來的數據結構叫作什麼?
    高級問題
    棧和隊列的區別是什麼?
    初級問題: 變量是數據的容器。
    中級問題: 叫作“數組”。
    高級問題: 棧中數據的存取形式是LIFO ;隊列中數據的存取形
    式是FIFO。
    初級問題: 變量中所存儲的數據是可以改變的。變量的實質是按
    照變量所存儲數據的大小被分配到的一塊內存空間。
    中級問題: 使用了數組就可以高效地處理大量的數據。數組的實
    質是連續分配的一塊特定大小的內存空間。
    高級問題: LIFO(Last In First Out,後進先出)表示優先讀取後存
    入的數據; FIFO(First In First Out,先進先出)表示優
    先讀取先存入的數據。本章將會詳細地講解棧和隊列
    的結構。
    本章重點
    在第5 章中筆者曾經這樣介紹過算法:程序是用來
    在計算機上實現現實世界中的業務和娛樂活動的,爲
    了達到這個目的,程序員們需要結合計算機的特性,用程序來表示現
    實世界中對問題的處理步驟,即處理流程。本章的主題是數據結構,
    也就是如何結合計算機的特性,用程序來表示現實世界中的數據結構。
    程序員有必要把算法(處理問題的步驟)和數據結構(作爲處理對
    象的數據的排列方式)兩者放到一起考慮。選用的算法和數據結構兩者
    要相互匹配這一點很重要。本章會依次講解以下3 點:數據結構的基礎、
    最好先記憶下來的典型數據結構以及如何用程序實現典型的數據結構。
    範例代碼全部由適合於學習算法和數據結構的C 語言編寫。爲了讓即
    便不懂C 語言的讀者也能讀懂,筆者會採取簡單易懂的說明,所以請
    諸位不要擔心。另外,爲了易於理解,文中只展示了程序中的核心片段,
    省略了錯誤處理等環節,這一點還要請諸位諒解。
    6.1 要點1:瞭解內存和變量的關係
    6.2 要點2:瞭解作爲數據結構基礎的數組
    6.3 要點3:瞭解數組的應用——作爲典型算法的數據結構
    6.4 要點4:瞭解並掌握典型數據結構的類型和概念
    6.5 要點5:瞭解棧和隊列的實現方法
    6.6 要點6:瞭解結構體的組成
    6.7 要點7:瞭解鏈表和二叉樹的實現方法
    第7章 成爲會使用面向對象的程序員吧
    初級問題
    Object 翻譯成中文是什麼?
    中級問題
    OOP 是什麼的縮略語?
    高級問題
    哪種編程語言在C 語言的基礎上增加了對OOP 的支持?
    初級問題: Object 翻譯成中文是“對象”。
    中級問題: OOP 是Object Oriented Programming(面向對象
    編程)的縮略語。
    高級問題: C++ 語言。
    初級問題: 對象(Object)是表示事物的抽象名詞。
    中級問題: 面向對象也可以簡稱爲OO(Object Oriented)。
    高級問題: ++ 是表示自增(每次只將變量的值增加1)的C 語言
    運算符。之所以被命名爲C++,是因爲C++ 在C 語言
    的基礎上增加了面向對象的機制這一點。另外,將
    C++ 進一步改良的編程語言就是Java 和C# 語言。
    本章重點
    在本章筆者想讓諸位掌握的是有關面向對象編程
    的概念。理解面向對象編程有着各種各樣的方法,程
    序員們對它的觀點也會因人而異。本章會將筆者至今爲止遇到過的多
    名程序員的觀點綜合起來,對面向對象編程進行介紹。哪種觀點纔是
    正確的呢?這並不重要,重要的是把各個角度的觀點整合起來,而後
    形成適合自己的理解方法。在讀完本章後,請諸位一定要和朋友或是
    前輩就什麼是面向對象編程展開討論。
    7.1 面向對象編程
    7.2 對OOP 的多種理解方法
    7.3  觀點1:面向對象編程通過把組件拼裝到一起構建程序
    7.4  觀點2:面向對象編程能夠提升程序的開發效率和可維護性
    7.5  觀點3:面向對象編程是適用於大型程序的開發方法
    7.6 觀點4:面向對象編程就是在爲現實世界建模
    7.7 觀點5:面向對象編程可以藉助UML 設計程序
    7.8  觀點6:面向對象編程通過在對象間傳遞消息驅動程序
    7.9  觀點7:在面向對象編程中使用繼承、封裝和多態
    7.10 類和對象的區別
    7.11 類有三種使用方法
    7.12 在Java 和.NET 中有關OOP 的知識不能少
    第8章 一用就會的數據庫
    初級問題
    數據庫術語中的“表”是什麼意思?
    中級問題
    DBMS 是什麼的簡稱?
    高級問題
    鍵和索引的區別是什麼?
    初級問題: 表(Table)就是被整理成表格形式的數據。
    中級問題: DBMS 是Database Management System(數據庫
    管理系統)的簡稱。
    高級問題: 鍵用於設定表和表之間的關係(Relationship),而
    索引是提升數據檢索速度的機制。
    初級問題: 一張表由若干個列和行構成。列也被稱爲字段(Field),
    行也被稱爲記錄(Record)。
    中級問題: 市面上的DBMS 有SQL Server、Oracle、DB2 等。無
    論是哪種DBMS 都可以用基本相同的SQL 語句操作。
    高級問題: 其上每個值都能夠唯一標識一條記錄的字段稱爲主鍵。
    爲了在表和表之間建立關係而在表中添加的、其他表
    主鍵的字段稱爲外鍵。而索引是與鍵無關的機制。
    本章重點
    前面的章節講解的是計算機的構造和程序設計。
    而本章一改之前的主題,來講一講數據庫。像DBMS、
    關係型數據庫、SQL( Structured Query Language,結構化查詢語言)、
    事務(Transaction)之類的數據庫術語,想必諸位都有所耳聞吧。可
    是應該也有很多人覺得自己好像是明白了這些術語的意思,實際上卻
    並沒有真正地理解。不僅是數據庫,其他計算機技術也一樣,不實際
    地應用,就不能充分掌握。
    本章首先介紹數據庫的概況,然後通過文字的描述,請諸位體驗
    一下編寫簡單的數據庫應用程序的過程。這樣就不但能理解數據庫術
    語的含義,而且還能靈活應用這些知識了。還有一點請諸位明白,在
    編寫數據庫應用程序時,可以採用各種各樣的方法,而本章所介紹的
    方法僅僅是其中的一種。
    8.1 數據庫是數據的基地
    8.2 數據文件、DBMS 和數據庫應用程序
    8.3 設計數據庫
    8.4 通過拆表和整理數據實現規範化
    8.5 用主鍵和外鍵在表間建立關係
    8.6 索引能夠提升數據的檢索速度
    8.7 設計用戶界面
    8.8 向DBMS 發送CRUD 操作的SQL 語句
    8.9 使用數據對象向DBMS 發送SQL 語句
    8.10 事務控制也可以交給DBMS 處理
    第9章 通過簡單地實驗理解TCP/IP網絡
    初級問題
    LAN 是什麼的縮略語?
    中級問題
    TCP/IP 是什麼的縮略語?
    高級問題
    MAC 地址是什麼?
    初級問題: LAN 是Local Area Network(局域網)的縮略語。
    中級問題: TCP/IP 是Transmission Control Protocol/Internet
    Protocol(傳輸控制協議和網際協議)的縮略語。
    高級問題: 所謂MAC 地址就是能夠標識網卡的編號。
    初級問題: 通常把在一棟建築物內或是一間辦公室裏的那種小規
    模網絡稱作LAN。與此相對,把互聯網那樣的大規模
    網絡稱作WAN(Wide Area Network,廣域網)。
    中級問題: TCP/IP 協議族是互聯網所使用的一套標準協議。TCP/IP
    這個名字意味着同時使用了TCP 協議和IP 協議。
    高級問題: 幾乎所有的網卡都會在上市前被分配一個不可變更的
    MAC 地址。本章將介紹查看MAC 地址的方法。
    本章重點
    諸位都經常上網吧,在網上看看網頁、發發郵件
    什麼的,這一切似乎已經司空見慣了。通常,人們把
    通過連接多臺計算機所組成的、可用於交換信息的系統稱爲“網絡”
    (Network)。互聯網作爲網絡的一種,可以使我們的計算機和遠在千里
    之外的計算機連接在一起。而用於把全世界的計算機彼此相連的網線
    已然交織成了一張網。
    因爲信息可以以電信號的形式在網線中傳播,所以計算機彼此之間
    就能夠進行信息交換。但爲了交換信息,還必須在發送者和接收者之間
    事先確定發送方式。這種對信息發送方式的規定或約束就稱爲“協議”
    (Protocol)。小到公司內部的網絡,大到互聯網,TCP/IP(Transmission
    Control Protocol/Internet Protocol)協議族已然成爲了現行的標準。
    哎呀,要是再這樣說下去的話,就會越來越複雜了。也許有人會
    認爲“只要會上網不就行了,沒有必要去了解原理什麼的”。但是,一
    旦瞭解了原理,也就能更加靈活地使用網絡了。那麼在本章,我們就
    通過一些可以隨時進行的簡單實驗,來探索TCP/IP 網絡的原理吧。
    9.1 實驗環境
    9.2 實驗1:查看網卡的MAC 地址
    9.3 實驗2:查看計算機的IP 地址
    9.4 實驗3:瞭解DHCP 服務器的作用
    9.5 實驗4:路由器是數據傳輸過程中的指路人
    9.6 實驗5:查看路由器的路由過程
    9.7 實驗6:DNS 服務器可以把主機名解析成IP 地址
    9.8 實驗7:查看IP 地址和MAC 地址的對應關係
    9.9 TCP 的作用及TCP/IP 網絡的層級模型
    第10章 試着加密數據吧
    初級問題
    通常把還原加密過的文件這一操作叫作什麼?
    中級問題
    在字母A 的字符編碼上加上3,可以得到哪個字母?
    高級問題
    在數字簽名中使用的信息摘要是什麼?
    初級問題: 叫作解密。
    中級問題: 可以得到字母D。
    高級問題: 信息摘要是指從作爲數字簽名對象的文件整體中計
    算出的數值。
    初級問題: 本章將會介紹加密和解密的具體例子。
    中級問題: 因爲字母表中的字母編碼是按字母順序排列的,所以
    在字母A 的編碼上加3,即A → B → C → D,所以可
    以得到D。
    高級問題: 對比由文件整體計算出的信息摘要,可以證明文件的
    內容有沒有被篡改。加密處理過的信息摘要就是數字
    簽名。
    本章重點
    在前面的章節中,涉及的都是一些稍顯死板的話題。
    那麼在本章,就喝杯咖啡稍微休息一下吧,敬請諸位放
    松心情往下閱讀。本章的主題是數據加密。對於公司內部的網絡而言,
    由於只是將員工的電腦彼此相連,可能就不太需要對其間傳輸的數據進
    行加密。但是在互聯網中,由於它聯結的是全世界範圍的企業和個人,
    所以會面臨很多需要對數據進行加密處理的情況A。舉例來說,在網店購
    物時用戶輸入的信用卡卡號,就是應該被加密傳輸的代表性數據。假設
    卡號未經加密就被髮送出去,那麼就會面臨卡號被同樣接入互聯網的某
    人盜取,信用卡被其用來肆意購物的危險。因此像這種網店頁面的
    URL,通常都是以https:// 開頭,表示數據正在使用加密的方式進行傳輸。
    其實,大家在不知不覺中就已經都是加密技術的受益者了。
    然而,如何對數據進行加密呢?這的確是個有意思的話題。在本
    章中,我們將使用VBScript(Visual Basic Scripting Edition)語言實際
    編寫幾個加密程序來展開這個話題B。請諸位不要只是閱讀文字內容,還
    應該實際確認程序的運作。加密技術真的有趣得令人興奮的一項技術!
    10.1 先來明確一下什麼是加密
    10.2 錯開字符編碼的加密方式
    10.3 密鑰越長,解密越困難
    10.4 適用於互聯網的公開密鑰加密技術
    10.5 數字簽名可以證明數據的發送者是誰
    第11章 XML究竟是什麼?
    初級問題
    XML 是什麼的縮寫?
    中級問題
    HTML 和XML 的區別是什麼?
    高級問題
    在處理XML 文檔的程序組件中,哪個成爲了W3C 的推薦標準?
    初級問題: XML 是Extensible Markup Language(可擴展標記
    語言)的縮寫。
    中級問題: HTML 是用於編寫網頁的標記語言。XML 是用於定
    義任意標記語言的元語言。
    高級問題: DOM(Document Object Model,文檔對象模型)。
    初級問題: 所謂標記語言,就是可以用標籤爲數據賦予意義的
    語言。
    中級問題: 通常把用於定義新語言的語言稱作元語言。通過使用
    XML 可以定義出各種各樣的新語言。
    高級問題: 本章將會介紹使用了DOM 的示例程序。
    本章重點
    在計算機行業,沒聽說過XML 這個詞的人恐怕不
    存在吧。諸位也一定都知道XML 這個詞,而且也應該
    能深切地體會到,XML 作爲一種誕生不到10 年的新技術,卻不斷地滲
    透到了計算機的各個領域。例如,這個應用程序能夠把文件保存成
    XML 格式;那個DBMS(數據庫管理系統)的下一個版本將支持XML ;
    而那個Web 服務是基於XML 實現的……
    本章的主題將圍繞“XML 究竟是什麼”來展開。XML 其格式本身
    就是既簡單又通用的。也正因爲如此,XML 纔會被擴充成各種各樣的
    形式,應用於各種各樣的場景。而且今後對XML 的利用方式也將不斷
    地進化下去。爲了不至於對進化後的XML 形態感到喫驚,趁着現在我
    們就先來整理一下XML 的基礎知識吧。
    11.1 XML 是標記語言
    11.2 XML 是可擴展的語言
    11.3 XML 是元語言
    11.4 XML 可以爲信息賦予意義
    11.5 XML 是通用的數據交換格式
    11.6 可以爲XML 標籤設定命名空間
    11.7 可以嚴格地定義XML 的文檔結構
    11.8 用於解析XML 的組件
    11.9 XML 可用於各種各樣的領域
    第12章 SE負責監管計算機系統的構建
    初級問題
    SE 是什麼的縮略語?
    中級問題
    IT 是什麼的縮略語?
    高級問題
    請列舉一個軟件開發過程的模型。
    初級問題: SE 是System Engineer(系統工程師)的縮略語。
    中級問題: IT 是Information Technology(信息技術)的縮
    略語。
    高級問題: 軟件開發過程的模型有“瀑布模型”“原型模
    型”“螺旋模型”等。
    初級問題: 在計算機系統的開發過程中,SE 是參與所有開發階段
    的工程師。
    中級問題: 一提到IT,通常就意味着充分地運用計算機解決問題,
    但Information Technology(信息技術)這個詞中並沒有
    包含表示計算機含義的詞語。
    高級問題: 本章將會詳細地介紹應用瀑布模型的開發過程。
    本章重點
    從第1 章到第11 章,講解的都是各種各樣的計算
    機技術。在作爲本書最後一章的第12 章,請允許筆者
    再介紹一下將這些技術組合起來構建而成的計算機系統,以及負責構
    建計算機系統的SE(System Engineer,系統工程師)。本章不僅有技
    術方面的內容,更會涉及商業方面的內容。對於商業而言,沒有什麼
    可稱得上是絕對正確的見解,因此本章的敘述中也多少會含有筆者的
    主觀想法,這一點還望諸位諒解。
    “將來的目標是音樂家!”——正如以前新出道的偶像歌手都會有
    這句口頭禪一樣,過去新入行的工程師也有一句口頭禪,那就是“將來
    的目標是SE !”在那時SE 給人的印象是計算機工程師的最高峯。可
    是最近,想成爲SE 的人似乎並沒有那麼多了。不善於與客戶交談,感
    到項目管理之類的工作很麻煩,覺得穿着牛仔褲默默地面對計算機才
    更加舒坦等原因似乎都是不想成爲SE 的理由。SE 果真是那麼不好的
    工作嗎?其實不然,SE 是有趣的、值得去做的工作。下面就介紹一下
    身爲SE 所需要掌握的技能以及SE 的工作內容吧。
    12.1 SE 是自始至終參與系統開發過程的工程師
    SE 指的是在進行業務的信息化時,負責調查、分析業務
    內容,確定計算機系統的基礎設計及其詳細規格的技術人員。
    同時SE 也負責系統開發的項目管理和軟件的開發管理、維護
    管理工作。由於主要的工作是基礎設計,所以不同於編寫程
    序的程序員,SE 需要具備從硬件結構、軟件的構建方法乃至
    橫跨整個業務的廣泛知識以及項目管理的經驗。
    12.2 SE 未必擔任過程序員
    12.3 系統開發過程的規範
    12.4 各個階段的工作內容及文檔
    12.5 所謂設計,就是拆解
    原則1:計算機只能夠做輸入、運算、輸出三種操作
    原則2:程序是指令和數據的集合
    原則3:計算機有自己的處理方法
    12.6 面向對象法簡化了系統維護工作
    12.7 技術能力和溝通能力
    12.8 IT 不等於引進計算機
    12.9 計算機系統的成功與失敗
    12.10 大幅提升設備利用率的多機備份
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章