換句話說,就是該怎麼寫程式。
但是,大家上學的時候都學過資料結構吧,學過結構化設計語言Pascal吧!有人說了,沒學過,那C語言應該學過吧!要是也沒學過,那也沒有關係!
這個公式應該還記得吧:
演算法 + 資料結構 = 程式 或者 演算法 + 資料結構 + 程式設計方法 + 語言和工具 = 程式
那什麼是程式呢?其實說白了,就是一個模組。寫程式,其實就是寫一個模組,或者你用物件也可以。或者說是一個盒子也行。反正,只要理解了就行。
那麼演算法是什麼呢?其實就是解決問題的方法。
資料結構是什麼呢?其實就是資料在計算機裡面是怎麼儲存的方法。
語言是什麼呢?就是寫程式的工具。可以是PHP,ASP.NET,VB.NET,C#,Ruby,Python,SQL等等。
程式設計方法是什麼呢?其實就是組織結構,怎麼把演算法,資料結構組織起來的方法,比如:OOD,結構化程式設計等等。
所以,說一千到一萬,目前,所有的程式,寫出來的模板都應該是一樣,都應該包括以下的內容:輸入/輸出,內部變數,模組邏輯結構。不信,不可能,胡說。不要亂扣帽子,我們可以舉例子來說明。在這裡,我只拿PHP的程式來說明,其它的語言,你可以參考老鳥的觀點,自己思考一下。
1)只有輸出,沒有輸入。<?php
echo “Hello World!”;
?>2)有輸入,有輸出。<?php
include(“conn/conn.php”);
$type=$_POST[type];
$title=$_POST[title];
$content=$_POST[content];
$linkman=$_POST[linkman];
$tel=$_POST[tel];
//$edate=date(“Y-m-d h:i:s”);
$edate=date(“Y-m-d H:i:s”);
$sql=mysql_query(“insert into tb_info(type,title,content,linkman,tel,checkstate,edate) values(`$type`,`$title`,`$content`,`$linkman`,`$tel`,0,`$edate`)”);
// 前面這麼一大堆語句是做什麼用處的呢?廢話,當然是獲取提交的資料啊!
// 驗證,並依據驗證結果跳轉到對應頁面
if($sql){
echo “<script>alert(`恭喜您,資訊釋出成功!`);window.location.href=`release.php`;</script>”;
}else{
echo “<script>alert(`對不起,資訊釋出失敗!`);history.back();</script>”;
}
?>
3)複雜的輸入/輸出<?
class MysqlConn{
private $conn;
private $my_db;
private $result;
// 系統初始化
public function __construct(){
require_once(“db_config.php”);
$this->conn = mysql_pconnect($db_server, $db_user, $db_pwd);
$this->my_db = mysql_select_db($db_name,$this->conn);//選擇資料庫
}
// 對應的方法
public function query($sql){
$this->result = mysql_query($sql, $this->conn); // 執行查詢語句
return $this->result;
}
public function next(){
return $row = mysql_fetch_array($this->result);
}
public function close(){
mysql_free_result($this->result);
}
//使用轉義字元,保證系統安全.
public function escapeString($str){
return mysql_escape_string($str);
}
}
?>這段程式碼是什麼意思,你不知道OOP的,應該大概也知道是做什麼了吧!
當然,有些程式或者叫程式碼,寫的可能就很複雜,但不管怎麼寫,你按照這個思路去看程式碼,應該知道人家為什麼這麼寫了!
但是,實際上呢,我們的任何的程式,其實還應該加上一個UI,也就是使用者介面。
那麼在PHP中,它支援那些使用者介面呢?很簡單,瀏覽器,視窗,控制檯。當然,PHP做視窗不是很方便,它更多的是做瀏覽器的。是不是還有其它使用者介面呢?我不知道,你要是知道的話,可以告訴我!
最後的小結:
一個程式應該有那些內容呢?
演算法 + 資料結構 + UI = 程式
你可以審視一下過去你寫的那些程式碼,或者,你看人家寫的程式碼,不管這些程式碼是怎麼寫的,它的格式都是一樣的,唯一不同的就是語法的不同。
當然,為什麼有些程式碼我看不懂呢,那其實是因為,它裡面包含了很多的演算法。比如:在遊戲開發中經常用到下列一些演算法:A*,排序。貪婪,遺傳等。當然,有好多演算法是已經實現了各種資料結構和演算法。我們只需要怎麼做就可以了。當然,有時間的話,我們也可以理解為什麼要這麼做?但,我估計,除非你是做系統開發的,否則,勸你還是打消這個念頭吧!因為,時間和精力是有限的!