PHP 筆試 + 面試題

本章主要介紹常見的 PHP 筆試 + 面試題霞篡,包括:


  • 基礎(chǔ)及程序題

  • 數(shù)據(jù)庫技術(shù)題

  • 綜合技術(shù)題

  • 項(xiàng)目及設(shè)計(jì)題


  • 基礎(chǔ)及程序題

[1] 寫一個(gè)排序算法世蔗,可以是冒泡排序或者是快速排序端逼,假設(shè)待排序?qū)ο笫且痪S數(shù)組(不能使用系統(tǒng)已有函數(shù))(C/C++、PHP污淋、Java)
  • 假設(shè)以下的排序都是從小到大排序

  • C++ 實(shí)現(xiàn)冒泡排序

#include <iostream>

void bubbleSort(int arr[], int n)  // n 為數(shù)組大小 
{
    for (int i = 0; i < n - 1; i++) { // n-1 趟排序
        for (int j = i + 1; j < n; j++) {
            if (arr[i] > arr[j]) {
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp; 
            }
        } 
    } 
}

int main()
{
    int arr[10] = { 5, 1, 7, 2, 9, 3, 6, 8, 0, 4 };
     bubbleSort(arr, 10);  // 數(shù)組大小
    for (int i = 0; i < 10; i++) {
        std::cout << arr[i] << " ";  // 0 1 2 3 4 5 6 7 8 9
    } 
} 

  • PHP 實(shí)現(xiàn)冒泡排序
function bubbleSort($arr, $n)  // $n 為數(shù)組大小 
{
    for ($i = 0; $i < $n - 1; $i++) { // n-1 趟排序
        for ($j = $i + 1; $j < $n; $j++) {
            if ($arr[$i] > $arr[$j]) {
                $temp = $arr[$i];
                $arr[$i] = $arr[$j];
                $arr[$j] = $temp; 
            }
        } 
    } 
    print_r($arr);  // Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 )
}

bubbleSort([5, 1, 7, 2, 9, 3, 6, 8, 0, 4 ], 10);  // 數(shù)組大小

  • C++ 實(shí)現(xiàn)快速排序
#include<iostream>

void quickSort(int arr[], int i, int j)   
{
    if (i < j) {
        int l = i, r = j;
        int pivot = arr[i];  // 選擇一個(gè)基準(zhǔn)值
        while (i < j) {
            while (i<j && arr[j] >= pivot) {
                j--;  // 如果后面的數(shù)比基準(zhǔn)值大顶滩,就往前找
            }
            arr[i] = arr[j];
            while (i<j && arr[i] <= pivot) {
                i++;  // 如果前面的數(shù)比基準(zhǔn)值小,就往后找
            }
            arr[j] = arr[i];
        }
        arr[i] = pivot;  // 或者 arr[j] = pivot;
        quickSort(arr, l, i - 1);  // 左邊
        quickSort(arr, i + 1, r); // 右邊
    }
}

int main()
{
    int arr[10] = { 5, 1, 7, 2, 9, 3, 6, 8, 0, 4 };
    quickSort(arr, 0, 9);
    for (int i = 0; i < 10; i++) {
        std::cout << arr[i] << " ";  // 0 1 2 3 4 5 6 7 8 9
    } 
} 

  • PHP 實(shí)現(xiàn)快速排序
function quickSort(& $arr, $i, $j)  // 傳引用調(diào)用
{
    if ($i < $j) {
        $l = $i;
        $r = $j;
        $pivot = $arr[$i];
        while ($i < $j) {
            while ($i < $j && $arr[$j] >= $pivot) {
                $j--;
            }
            $arr[$i] = $arr[$j];
            while ($i < $j && $arr[$i] <= $pivot) {
                $i++;
            }
            $arr[$j] = $arr[$i];
        }
        $arr[$i] = $pivot;
        quickSort($arr, $l , $i - 1);
        quickSort($arr, $i + 1 , $r);
    }
}

$arr = [0, 1, 8, 6, 2, 5, 4, 9, 3, 7];
quickSort($arr, 0, 9); 
print_r($arr);  // Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 ) 
[2] 實(shí)現(xiàn)一個(gè)字符串截取的函數(shù)寸爆,類似于substr礁鲁,必須能夠截取中文這種多字節(jié)編碼。假設(shè)每個(gè)中文也是一個(gè)字符赁豆,普通的數(shù)字仅醇、符號(hào)、字母也是一個(gè)字符魔种。(提示:GB編碼的中文字符高位范圍是 0x81-0xFE )
<?php
/**
* 截取字符串子串 (GBK)
*
* @param string $str 原始字符串
* @param int $len 需要截取字符串的長度
* @return string 返回截取到的字符串
*/
function GBSubstr($str, $len){
    $count = 0;
    for($i = 0; $i < strlen($str); $i++){
        if($count == $len) break;  
        if(preg_match("/[\x81-\xfe]/", substr($str, $i, 1))) {   // 如果檢測(cè)到 GBK 中文編碼的高位 0x81-0xFE
            ++$i; // 跳過低位析二,繼續(xù)向后匹配
        }
        ++$count;   // 次數(shù)
    }
    // echo $i; 這時(shí) $i 的值為 9
    return substr($str, 0, $i);  // $i 是加上中文后的字符串長度
}
echo GBSubstr("ab喜cdefgh",7);  // 從頭開始截取一個(gè)長度為 7 的字符串; 輸出 "ab喜cdef"
?>
[3] 寫一個(gè)遍歷指定目錄下所有子目錄和子文件的函數(shù)(提示:可以使用遞歸的方法)
<?php
function dir_all($path) { 
    $handler = opendir($path); 
    while (false !== ($tmp = readdir($handler))) {    // $tmp 第 1 次是 ".",第2次是 ".."节预, 之后是文件名或目錄名叶摄,和Linux中使用 ls 的效果一樣
        if(is_dir("$path/$tmp")) {   // 如果是一個(gè)目錄
            if ($tmp == "." || $tmp == "..")  // 不輸出,也不遞歸調(diào)用
                continue; 
            echo $tmp . "<br>";      // 輸出目錄名字
            dir_all("$path/$tmp");  // 把當(dāng)前目錄名接到 $path 上安拟,遞歸調(diào)用
        } 
        else {
            echo $tmp ."<br>";  // 如果是一個(gè)文件蛤吓,直接輸出
        } 
    } 
}
dir_all("C:\Users\bingo\Desktop\ms");  // 輸出 ms 文件夾下的所有文件名、子目錄名以及子目錄下的文件名
?>
[4] 寫出匹配郵箱地址和URL的兩個(gè)正則表達(dá)式糠赦。類似下面的:
<?php
// 匹配郵箱
if (preg_match("/^[0-9a-z][0-9a-z\_\-\.]+@([0-9a-z][0-9a-z\-]*\.)+[a-z]{2,}$/i", "user_name.first@example.com.cn")) {  // 匹配模式 i 表示不區(qū)分大小寫
    echo "Matching!";  // 輸出 "Matching!"
}
else {
    echo "No Matching!";
}
// 匹配 URL
if (preg_match("/^(http|https):\/\/([0-9a-z][0-9a-z\-]*\.)+[a-z]{2,}(:\d+)?\/[0-9a-z%\-_\/\.]+/i", "http://www.example.com.cn/user_profile.php?uid=100")) {  // 匹配模式 i 表示不區(qū)分大小寫
    echo "Matching!";  // 輸出 "Matching!"
}
else {
    echo "No Matching!";
}
?>

  • 數(shù)據(jù)庫技術(shù)題

[1] 寫出三種以上MySQL數(shù)據(jù)庫存儲(chǔ)引擎的名稱(提示:不區(qū)分大小寫)
  • 存儲(chǔ)引擎:研究存儲(chǔ)數(shù)據(jù)、為存儲(chǔ)的數(shù)據(jù)建立索引和更新愉棱、查詢數(shù)據(jù)等技術(shù)的實(shí)現(xiàn)方法唆铐。存儲(chǔ)引擎也可以稱為表類型(即存儲(chǔ)和操作此表的類型)哲戚。
  • MyISAM:缺點(diǎn)是無法處理事務(wù)奔滑。適合場(chǎng)景:
    ① 選擇密集型的表:MyISAM 存儲(chǔ)引擎在篩選大量數(shù)據(jù)時(shí)非常迅速。
    ② 插入密集型的表:MyISAM 的并發(fā)插入特性允許同時(shí)選擇和插入數(shù)據(jù)顺少,例如:MyISAM很適合管理郵件或Web服務(wù)器日志數(shù)據(jù)朋其。
  • InnoDB:健壯的事務(wù)型存儲(chǔ)引擎,5.5版本之后的默認(rèn)的存儲(chǔ)引擎脆炎。InnoDB還引入了行級(jí)鎖定和外鍵約束梅猿,在以下場(chǎng)合下,使用InnoDB是最理想的選擇:
    ① 更新密集的表秒裕。InnoDB存儲(chǔ)引擎特別適合處理多重并發(fā)的更新請(qǐng)求袱蚓。
    ② 事務(wù)。InnoDB存儲(chǔ)引擎是支持事務(wù)的標(biāo)準(zhǔn)MySQL存儲(chǔ)引擎几蜻。
    ③ 自動(dòng)災(zāi)難恢復(fù)喇潘。與其它引擎不同体斩,InnoDB能夠自動(dòng)從災(zāi)難中恢復(fù)。
    ④ 外鍵約束颖低。MySQL支持外鍵的存儲(chǔ)引擎只有InnoDB絮吵。
    ⑤ 支持自動(dòng)增加列AUTO_INCREMENT屬性。
    一般來說忱屑,如果需要事務(wù)支持蹬敲,并且有較高的并發(fā)讀取頻率,InnoDB是不錯(cuò)的選擇莺戒。
  • Memory:優(yōu)點(diǎn)是速度伴嗡,采用的邏輯存儲(chǔ)介質(zhì)是系統(tǒng)內(nèi)存。但當(dāng)進(jìn)程崩潰時(shí)脏毯,所有的Memory數(shù)據(jù)都會(huì)丟失闹究。它要求存儲(chǔ)在Memory數(shù)據(jù)表里的數(shù)據(jù)使用的是長度不變的格式,這意味著不能使用BLOB和TEXT這樣的長度可變的數(shù)據(jù)類型食店,VARCHAR是一種長度可變的類型渣淤,但因?yàn)樗贛ySQL內(nèi)部當(dāng)做長度固定不變的CHAR類型,所以可以使用吉嫩。
    一般在以下幾種情況下使用Memory存儲(chǔ)引擎:
    ① 目標(biāo)數(shù)據(jù)較小价认,而且被非常頻繁地訪問。
    ② 如果數(shù)據(jù)是臨時(shí)的自娩、要求必須立即可用用踩,那么就可以存放在內(nèi)存表中。
    ③ 存儲(chǔ)在Memory表中的數(shù)據(jù)如果突然丟失忙迁,不會(huì)對(duì)應(yīng)用服務(wù)產(chǎn)生實(shí)質(zhì)的負(fù)面影響脐彩。
  • Merge:一組MyISAM表的組合,MyISAM表結(jié)構(gòu)必須完全相同姊扔。
  • Archive:歸檔的意思惠奸,在歸檔之后很多的高級(jí)功能就不再支持了,僅僅支持最基本的插入和查詢兩種功能恰梢。
  • 還有 BDB(Berkeley DB)佛南、Example、Federated嵌言、CSV嗅回、Blackhole、MaxDB 等等摧茴。
[2] 說出你所知道的三種以上開源數(shù)據(jù)庫的名稱(提示:想想目前國外流行的開源數(shù)據(jù)庫)
  • MySQL :單機(jī)的關(guān)系數(shù)據(jù)庫绵载,普及了「可插拔」引擎這一概念,針對(duì)不同的業(yè)務(wù)場(chǎng)景選用不同的存儲(chǔ)引擎是 MySQL tuning 的一個(gè)重要的方式。比如對(duì)于有事務(wù)需求的場(chǎng)景使用 InnoDB娃豹;對(duì)于并發(fā)讀取的場(chǎng)景 MyISAM 可能比較合適猜惋。 MySQL 5.6 中引入了多線程復(fù)制和 GTID(全局事務(wù)ID),使得故障恢復(fù)和主從的運(yùn)維變得比較方便培愁。另外著摔,5.7是 MySQL 的一個(gè)重大更新,主要是讀寫性能和復(fù)制性能上有了長足的進(jìn)步定续。
  • ** PostgreSQL**:單機(jī)的關(guān)系型數(shù)據(jù)庫谍咆,對(duì) SQL 支持非常強(qiáng)大,不管是內(nèi)置類型私股、JSON 支持摹察、GIS 類型以及對(duì)于復(fù)雜查詢的支持,PL/SQL 等都比 MySQL 強(qiáng)大得多倡鲸,而且從代碼質(zhì)量上來看供嚎,PostgreSQL 的代碼質(zhì)量是優(yōu)于 MySQL 的。相對(duì)于MySQL 5.7以前的版本峭状,PostgreSQL 的 SQL 優(yōu)化器比 MySQL 強(qiáng)大很多克滴,幾乎所有稍微復(fù)雜的查詢PostgreSQL 的表現(xiàn)都優(yōu)于 MySQL。PostgreSQL 的不足之處在于沒有 MySQL 那樣強(qiáng)大的社區(qū)和群眾基礎(chǔ)优床。
  • NoSQL:分布式非關(guān)系型數(shù)據(jù)庫劝赔,包含的范圍有內(nèi)存數(shù)據(jù)庫,持久化數(shù)據(jù)庫等胆敞。大多 NoSQL 都拋棄了關(guān)系模型着帽,選擇更簡單的鍵值或者文檔類型進(jìn)行存儲(chǔ)。數(shù)據(jù)結(jié)構(gòu)和查詢接口都相對(duì)簡單移层,沒有了 SQL 的包袱仍翰,實(shí)現(xiàn)的難度會(huì)降低很多。另外 NoSQL 的設(shè)計(jì)幾乎都選擇犧牲掉復(fù)雜 SQL 的支持及 ACID 事務(wù)換取彈性擴(kuò)展能力观话,業(yè)務(wù)模型相對(duì)簡單予借。
  • 另外,還有SQLite匪燕、BDB(Berkeley DB)蕾羊、Firebird 等等喧笔。
[3] MySQL數(shù)據(jù)庫中的字段類型varchar和char的主要區(qū)別是什么帽驯?那種字段的查找效率要高,為什么?

varchar是變長书闸,節(jié)省存儲(chǔ)空間尼变,char是固定長度。查找效率要char型快,因?yàn)関archar是非定長嫌术,必須先查找長度哀澈,然后進(jìn)行數(shù)據(jù)的提取,比char定長類型多了一個(gè)步驟度气,所以效率低一些割按。

[4] 說出MySQL 4.0和MySQL 4.1版本的最主要的兩個(gè)區(qū)別。如果你使用過MySQL 5磷籍,請(qǐng)說說MySQL 5跟MySQL 4的主要區(qū)別适荣。(后半題選作)

MySQL 4.1 主要是比MySQL 4.0多了 子查詢字符編碼的支持 兩個(gè)特點(diǎn)。
MySQL5增加的功能比MySQL4要更多院领,包括 存儲(chǔ)過程弛矛、視圖事務(wù) 等等比然。

[5] MySQL數(shù)據(jù)庫基本的三個(gè)優(yōu)化法則是什么丈氓,除了增加硬件和帶寬?(提示:從服務(wù)配置强法、應(yīng)用万俗、開發(fā)角度考慮)
  • 系統(tǒng)服務(wù)優(yōu)化,把 MySQL 的 key_buffer饮怯、cache_buffer该编、query_cache等增加容量;
  • 給所有經(jīng)常查詢的字段增加適當(dāng)?shù)乃饕?/li>
  • 優(yōu)化 SQL 語句硕淑,減少 distinct课竣、group、join 等語句的操作置媳。

  • 綜合技術(shù)題

[1] 請(qǐng)使用JavaScript寫出三種產(chǎn)生一個(gè)Image 標(biāo)簽的方法(提示:從方法于樟、對(duì)象、HTML角度考慮)
  • 方法角度:var img = document.createElement("img");
  • 對(duì)象角度:var img = new Image();
  • HTML角度:img.innerHTML = '<img src = "xxx.jpg" />';
[2] 請(qǐng)使用CSS樣式拇囊,描述兩種方法在當(dāng)前列中只顯示一個(gè)div對(duì)象
  • display: none; // 對(duì)象隱藏后迂曲,隱藏部分不占據(jù)空間大小
  • visibility:hidden; // 對(duì)象隱藏后,隱藏部分還占據(jù)著空間大小
  • $("#id").hide(); // JQuery 方法寥袭,隱藏部分還占據(jù)著空間大小
[3] 請(qǐng)描述出兩點(diǎn)以上XHTML和HTML最顯著的區(qū)別

網(wǎng)頁編碼的發(fā)展: HTML => XHTML => XML

  • XHTML 必須強(qiáng)制指定文檔類型DOCTYPE路捧,HTML比較隨意;
  • XHTML 區(qū)分大小寫传黄,要求標(biāo)簽必須小寫杰扫,HTML比較隨意;
  • XHTML 的標(biāo)簽要閉合膘掰,HTML比較隨意章姓;
  • XHMTL 的屬性值必須在引號(hào)之中,HTML比較隨意;
  • XHMTL 不支持屬性最小化凡伊,如 checked = "checked"零渐,在HTML中可以簡寫成 checked,但 XHTML不允許簡寫系忙。
[4] 寫出五種以上你使用過的 PHP 的擴(kuò)展的名稱(提示:常用的PHP擴(kuò)展)

MySQL诵盼、PDO 、GD银还、socket拦耐、MB_Sring、Iconv见剩、Curl杀糯、SHM、libxml
等等苍苞。

[5] 了解MVC模式嗎固翰?請(qǐng)寫出三種以上目前PHP流行的MVC框架名稱(不區(qū)分大小寫)
  • MVC模式(Model-View-Controller):軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model)羹呵、視圖(View)和控制器(Controller)骂际。
  • 模型Model :管理數(shù)據(jù)庫相關(guān)的數(shù)據(jù)和業(yè)務(wù)邏輯。模型提供了連接和操作數(shù)據(jù)庫的抽象層冈欢。
  • 視圖View : 負(fù)責(zé)界面顯示歉铝,如 HMTL/XML/JSON 顯示。
  • 控制器Controller :接收用戶的請(qǐng)求凑耻,并調(diào)用相應(yīng)的模型處理太示。
    MVC 結(jié)構(gòu)圖.png
  • PHP流行的MVC框架名稱:ThinkPHP、Zend Framework香浩、CakePHP类缤、php.MVC、FleaPHP邻吭、Symfony餐弱、Plite、PHP on Trax囱晴、Smutty 等等膏蚓。
[6] 寫出15個(gè)以上你所知道的常用的Linux命令和它的功能
  • man ls [查ls的使用手冊(cè)]
  • who [查看已登錄系統(tǒng)的用戶]
  • more/less 1.txt [主屏顯式文件內(nèi)容]
  • cat try.c [列出文本文件內(nèi)容]
  • > 2.txt [重定向到文件,新建文件]
  • head/tail -15 ab.c [打印文件頭/尾15行畸写,不指定參數(shù)默認(rèn)10行]
  • ps -ef [列出系統(tǒng)所有進(jìn)程]
  • who | wc -l [統(tǒng)計(jì)系統(tǒng)已成功登錄的用戶個(gè)數(shù)]
  • grep/egrep [0-9] 1.txt [在文件中查找滿足正則式的字符串]
  • ls -l [長格式的形式顯示文件內(nèi)容]
  • cp file1 file2 dir [將文件復(fù)制到目錄中]
  • cp -r dir1 dir2 [復(fù)制目錄]
  • mv 1.txt 2.txt [移動(dòng)文件并重命名]
  • rm file1 file2 [刪除文件]
  • find ver1.d ver2.d -name '*.c' -print [在目錄中查找文件]
  • tar cvf dir . [ 壓縮驮瞧,將當(dāng)前目錄開始的整個(gè)目錄樹(.),備份到dir目錄下]
  • tar xvf dir [解壓艺糜,將dir目錄下的數(shù)據(jù)恢復(fù)到文件系統(tǒng)中]
  • chmod a+rwx 1.txt [修改文件權(quán)限]
  • cd Desktop [修改路徑]
  • echo $addr [打印一個(gè)變量]
  • expr 3 + 4 [計(jì)算表達(dá)式]
[7] 使用過Vim編輯器嗎剧董?如果使用過,如何在vim里切分多個(gè)可視化窗口破停,包括橫排和縱排翅楼。(本題選作)

vi 進(jìn)入命令模式后,輸入 :sp:vsp 即可橫排和豎排切分可視化窗口真慢。
橫:split(sp)毅臊;縱:vsplit(vsp)

[8] 說說Linux下的find命令和grep命令的區(qū)別(本題選作)

find:可以按照文件名、文件類型黑界、文件大小管嬉、文件修改/訪問時(shí)間查找;
grep:按照文件內(nèi)容查找(正則表達(dá)式)。

[9] 請(qǐng)描述出七層網(wǎng)絡(luò)模型的名稱,由下到上(可以使用中文描述)

OSI參考模型:


OSI 七層參考模型.png
[10] 說說下面這些這些協(xié)議的全稱和中文解釋(提示:都是工作在應(yīng)用層)SMTP卒稳、POP3糖荒、HTTP、FTP掘而、DNS
  • SMTP (Simple Mail Transfer Protocol) 簡單郵件傳輸協(xié)議
  • POP3 (Post Office Protocol 3) 郵局協(xié)議第3版
  • HTTP (Hypertext Transfer Protocol) 超文本傳輸協(xié)議
  • FTP (File Transfer Protocol)文件傳輸協(xié)議
  • DNS (Domain Name System and Domain Name Service protocol) 域名系統(tǒng)(服務(wù))協(xié)議
[11] 使用過Memcache緩存嗎,如果使用過,能夠簡單的描述一下它的工作原理嗎犹菇?(本題選作)
  • Memcache 是把所有的數(shù)據(jù)保存在內(nèi)存當(dāng)中,采用hash表的方式芽卿,每條數(shù)據(jù)由key和value組成揭芍,每個(gè)key是獨(dú)一無二的,當(dāng)要訪問某個(gè)值的時(shí)候先按照鍵找到值卸例,然后返回結(jié)果称杨。
  • Memcahce采用LRU(Least Recently Used)算法來逐漸把過期數(shù)據(jù)清除掉。
[12] 請(qǐng)大致的說說Session的工作原理(提示:與Cookie有相應(yīng)的關(guān)系)
  • Session的工作原理
    1. 當(dāng)一個(gè) Session第一次被啟用時(shí)筷转,一個(gè)唯一的標(biāo)識(shí)被存儲(chǔ)于本地的 Cookie 中列另。
    2. 首先使用 session_start() 函數(shù),PHP從 Session 倉庫中加載已經(jīng)存儲(chǔ)的 Session 變量旦装。
    3. 當(dāng)執(zhí)行 PHP 腳本時(shí)页衙,通過使用 session_register() 函數(shù)注冊(cè) Session 變量。
    4. 當(dāng) PHP腳本執(zhí)行結(jié)束時(shí)阴绢,未被銷毀的 Session 變量會(huì)被自動(dòng)保存在本地一定路徑下的 Session 庫中店乐,這個(gè)路徑可以通過 php.ini 文件中的 session.save_path 指定,下次瀏覽網(wǎng)頁時(shí)可以加載使用呻袭。
  • Session和Cookie的聯(lián)系以及區(qū)別
  1. 聯(lián)系:Session 在客戶端也需要保存一個(gè)標(biāo)識(shí)眨八,所以就要借助Cookie;Session是通過Cookie 來工作的左电;Session 和Cookie 之間是通過 $_COOKIE['PHPSESSID']來聯(lián)系的廉侧,通過 $_COOKIE['PHPSESSID'] 可以知道 Session的 id页响,從而獲取到其他的信息。
  2. 區(qū)別:Cookie 機(jī)制采用的是在客戶端(瀏覽器)保持狀態(tài)的方案段誊,而Session 機(jī)制采用的是在服務(wù)器端保持狀態(tài)的方案闰蚕。
[13] 說說你所了解的搜索引擎包含那些技術(shù)?(本題選作)

爬蟲(采集)连舍、切詞(分詞)没陡、索引(存儲(chǔ))、查詢以及其他相關(guān)技術(shù)等索赏。


  • 項(xiàng)目及設(shè)計(jì)題

[1] 一個(gè)Web開發(fā)團(tuán)隊(duì)開發(fā)中盼玄,大致說說你所了解的所有成員的分工合作情況

分為美工、前端開發(fā)和后臺(tái)開發(fā)人員潜腻,美工負(fù)責(zé)界面效果設(shè)計(jì)埃儿、前端開發(fā)負(fù)責(zé)用戶交互和設(shè)計(jì),后臺(tái)開發(fā)人員負(fù)責(zé)服務(wù)端的開發(fā)融涣。

[2] 說說你做過的最得意的項(xiàng)目或者個(gè)人開發(fā)作品(可以是個(gè)人作品蝌箍,也可以是合作項(xiàng)目)

這個(gè),你猜...

[3] 假設(shè)給你5臺(tái)服務(wù)器暴心,請(qǐng)大致的描述一下妓盲,如何使用你所熟悉的開源軟件,搭建一個(gè)日PV 300萬左右的中型網(wǎng)站

PV(page view):頁面瀏覽量专普,或點(diǎn)擊量悯衬,表示一個(gè)訪問者在24小時(shí)內(nèi)瀏覽了你網(wǎng)站的幾個(gè)頁面。這里需要強(qiáng)調(diào):同一個(gè)人瀏覽網(wǎng)站同一個(gè)頁面檀夹,不重復(fù)計(jì)算 PV 量筋粗,點(diǎn)100次也算1次。
構(gòu)思(僅供參考):3臺(tái)Web服務(wù)器炸渡,兩臺(tái)MySQL數(shù)據(jù)庫服務(wù)器娜亿,采用Master/Slave同步的方式減輕數(shù)據(jù)庫負(fù)載,Web服務(wù)器可以結(jié)合Memcahe緩存來減少負(fù)載蚌堵,同時(shí)三臺(tái)Web服務(wù)器內(nèi)容一致买决,可以采用DNS輪詢的方式來進(jìn)行負(fù)載平衡 。


以上就是本章的全部內(nèi)容吼畏,歡迎指出錯(cuò)誤和補(bǔ)充督赤!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市泻蚊,隨后出現(xiàn)的幾起案子躲舌,更是在濱河造成了極大的恐慌,老刑警劉巖性雄,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件没卸,死亡現(xiàn)場(chǎng)離奇詭異羹奉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)约计,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門诀拭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人病蛉,你說我怎么就攤上這事炫加」寮澹” “怎么了铺然?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長酒甸。 經(jīng)常有香客問我魄健,道長,這世上最難降的妖魔是什么插勤? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任沽瘦,我火速辦了婚禮,結(jié)果婚禮上农尖,老公的妹妹穿的比我還像新娘析恋。我一直安慰自己,他們只是感情好盛卡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布助隧。 她就那樣靜靜地躺著,像睡著了一般滑沧。 火紅的嫁衣襯著肌膚如雪并村。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天滓技,我揣著相機(jī)與錄音哩牍,去河邊找鬼。 笑死令漂,一個(gè)胖子當(dāng)著我的面吹牛膝昆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播叠必,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼外潜,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了挠唆?” 一聲冷哼從身側(cè)響起处窥,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玄组,沒想到半個(gè)月后滔驾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谒麦,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年哆致,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绕德。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡摊阀,死狀恐怖耻蛇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胞此,我是刑警寧澤臣咖,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站漱牵,受9級(jí)特大地震影響夺蛇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜酣胀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一刁赦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闻镶,春花似錦甚脉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至顿涣,卻和暖如春波闹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背涛碑。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國打工精堕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蒲障。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓歹篓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親揉阎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子庄撮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容