一些總結(jié)

不得不說,*年的工作經(jīng)驗(yàn)德绿,其實(shí)沒寫多少代碼荷荤,只是一直在拓寬自己的技術(shù)視野,深度上追求過少移稳。寫的沒有重點(diǎn)蕴纳,想到什么就寫什么了。

html个粱、css古毛、javascript、jquery几蜻、其他(vuejs喇潘、angularjs体斩、reactjs)

前段是個(gè)體力活,需要記得東西很多颖低,越熟練做頁面越快絮吵。不需要太多項(xiàng)目邏輯和數(shù)學(xué)邏輯,適合女生做忱屑。比較難搞的是兼容性蹬敲,有些是webapp蘋果和安卓的兼容性更煩人。小公司網(wǎng)站訪問量不大莺戒,業(yè)務(wù)邏輯少或者就是純靜態(tài)的頁面伴嗡,是靠臉吃飯的,所以前段(小公司可能會(huì)把ui設(shè)計(jì)劃到前段)很重要从铲。
與后臺(tái)交互瘪校,一般都是通過后臺(tái)提供的接口
關(guān)于接口(我說說我接觸到的):
    #### 1、不管給前端還是給移動(dòng)端提供的接口名段,最好遵守一定約定的格式
        請求接口返回成功時(shí)的示例:
                    {
                        'code':0,
                        'msg':'success',
                        data:[
                            {'name':'yii2'},
                            {'name':'laravel'}
                        ]
                    }
        請求接口返回失敗時(shí)的示例:
                    {
                        'code':1,
                        'msg':'未登錄',
                        data:[]
                    }
        解釋:
            a.code:代表一種狀態(tài)碼阱扬,比如0代表成功,1代表失敗伸辟,或者再有其他返回的自定義的狀態(tài)
            b.msg:代表接口返回的信息麻惶,尤其失敗時(shí),返回的是錯(cuò)誤原因
            c.data:代表接口返回的數(shù)據(jù)信夫,即使沒有數(shù)據(jù)窃蹋,也要返回該字段并把值置為空(因?yàn)檫@是接口的數(shù)據(jù)格式,如果前端利用該字段進(jìn)行邏輯判斷静稻,接口返回時(shí)沒有該字段警没,就會(huì)報(bào)錯(cuò))
    #### 2、接口風(fēng)格:restful api
        網(wǎng)上搜到的一個(gè)示例:
            GET /zoos:列出所有動(dòng)物園
            POST /zoos:新建一個(gè)動(dòng)物園
            GET /zoos/ID:獲取某個(gè)指定動(dòng)物園的信息
            PUT /zoos/ID:更新某個(gè)指定動(dòng)物園的信息(提供該動(dòng)物園的全部信息)
            PATCH /zoos/ID:更新某個(gè)指定動(dòng)物園的信息(提供該動(dòng)物園的部分信息)
            DELETE /zoos/ID:刪除某個(gè)動(dòng)物園
            GET /zoos/ID/animals:列出某個(gè)指定動(dòng)物園的所有動(dòng)物
            DELETE /zoos/ID/animals/ID:刪除某個(gè)指定動(dòng)物園的指定動(dòng)物
    #### 3姊扔、測試接口:
        接口開發(fā)完成后惠奸,或者前端使用接口寫頁面js前梅誓,都需要先進(jìn)行接口測試∏∩遥現(xiàn)在瀏覽器上都有很多接口測試工具,比如chrome下的postman(很好用)

php

php開發(fā)梗掰,現(xiàn)在都在看你用什么框架開發(fā)嵌言。
laravel(簡化版是lumen)
yii2
thinkphp(thinkphp3.2和thinkphp5),
做后臺(tái)開發(fā)最好會(huì)在linux上搭建環(huán)境及穗,我接觸到的公司都是開發(fā)自己搭建環(huán)境摧茴,如果公司有運(yùn)維,他們也只是給你個(gè)純凈的linux環(huán)境埂陆。如果網(wǎng)站上線后出現(xiàn)bug苛白,通過linux上查看錯(cuò)誤日志娃豹,能幫助快速找到問題。這期間就需要理解一些linux上php购裙、apache(或者nginx)懂版、mysql的配置信息,如果是自己搭建的環(huán)境躏率,這些就相對容易找得到躯畴。
當(dāng)在window下開發(fā)完成后,往linux部署項(xiàng)目時(shí)常見問題:
    1薇芝、文件夾權(quán)限問題蓬抄。比如thinkphp下的runtime文件夾是需要777權(quán)限的
    2、文件名字大小寫問題夯到。比如thinkphp里require一個(gè)類 page.class.php ,而該文件的名字是Page.class.php嚷缭,那么thinkphp就找不到該文件,就會(huì)報(bào)錯(cuò)耍贾。

mysql

查詢時(shí)考慮查詢效率峭状、數(shù)據(jù)是否緩存、數(shù)據(jù)是否有效等細(xì)節(jié)
一般小公司用不到 讀寫分離逼争,因?yàn)閿?shù)據(jù)量達(dá)不到(我遇到的兩家公司用戶量過萬了优床,就用到了負(fù)載均衡、讀寫分離誓焦,去的時(shí)候一般都已經(jīng)搭好了)胆敞。
關(guān)于讀寫分離,我覺得和主從復(fù)制是離不開的杂伟,比如有三臺(tái)數(shù)據(jù)庫服務(wù)器:一臺(tái)主數(shù)據(jù)庫(名字比如叫master)移层,兩臺(tái)從數(shù)據(jù)庫(名字比如slave1、slave2)赫粥,寫入更新刪除數(shù)據(jù)都是操作在master上观话,讀取數(shù)據(jù)會(huì)從slave1和slave2上讀。然后通過配置實(shí)現(xiàn)寫入越平、更新频蛔、刪除數(shù)據(jù)只是去操作主庫master,查詢只是去操作兩個(gè)slave秦叛,這個(gè)配置就是讀寫分離配置(屬于項(xiàng)目代碼里的配置)晦溪。主數(shù)據(jù)庫和兩個(gè)從數(shù)據(jù)庫的數(shù)據(jù)同步就是是主從復(fù)制配置(屬于mysql服務(wù)器的配置)
比如thinkphp的讀寫分離配置:
"DB_DEPLOY_TYPE"=>1, //是否啟用分布式()
'DB_RW_SEPARATE'=>true, //是否啟用智能讀寫分離
'DB_TYPE' => 'mysql', //數(shù)據(jù)庫類型
'DB_HOST' => '192.168.2.1,192.168.2.10,192.168.2.11', //服務(wù)器地址 192.168.2.1為主庫挣跋,192.168.2.10和192.168.2.11為從庫
'DB_NAME' => 'tp'三圆, //數(shù)據(jù)庫名
'DB_USER' => 'root, root, root', //用戶名
'DB_PWD' => 'root , root,root', //密碼

    查詢時(shí) 會(huì)從192.168.2.10或者192.168.2.11從庫中查詢(這個(gè)到底選擇那個(gè)從庫進(jìn)行查詢,是在主從復(fù)制的配置中的服務(wù)器所占比重 體現(xiàn)的)
        $articleObj=M("Article");
        $rows=$articleObj->select();
    寫入時(shí) 會(huì)向192.168.2.1 這個(gè)主庫中查詢
        $articleObj=M("Article");
        $data["title"]="讀寫分離測試"
        $articleObj->add($data);

負(fù)載均衡

一般用于單個(gè)服務(wù)器難以承受訪問壓力的時(shí)候,利用負(fù)載均衡軟件把請求分發(fā)給多個(gè)服務(wù)器(這幾個(gè)服務(wù)器里的項(xiàng)目代碼其實(shí)一模一樣)來分?jǐn)傇L問壓力舟肉。
比如利用haproxy來實(shí)現(xiàn)負(fù)載均衡:
    現(xiàn)在有兩個(gè)服務(wù)器192.168.1.100修噪、192.168.1.101,兩個(gè)服務(wù)器上都安裝了apache(或者nginx)路媚,在192.168.1.100上安裝haproxy軟件(當(dāng)然也可以單獨(dú)在一個(gè)服務(wù)器上安裝haproxy做成負(fù)載均衡服務(wù)器)割按,然后通過配置在haproxy里監(jiān)聽80端口,然后分發(fā)給192.168.1.100:8080和192.168.1.101:8080磷籍。這時(shí)候你再去訪問192.168.1.100:80時(shí)其實(shí)訪問的是192.168.1.100:8080或者192.168.1.101:8080适荣,
    為什么使用8080端口?因?yàn)槲业膆aproxy和代碼服務(wù)器在一起院领,不能在一個(gè)服務(wù)器上haproxy和apache同時(shí)去監(jiān)聽同一個(gè)80端口弛矛,會(huì)沖突。另一個(gè)原因是既然做了負(fù)載均衡比然,就是為了讓請求直接去訪問負(fù)載均衡服務(wù)來減輕代碼服務(wù)器的訪問壓力丈氓,所以不讓其通過192.168.1.100(其實(shí)是192.168.1.100:80)直接訪問代碼服務(wù)器。當(dāng)然也可以使用其他未被監(jiān)聽的端口强法,比如192.168.1.100:8001

任務(wù)隊(duì)列

我遇到的項(xiàng)目是利用laravel代碼和redis內(nèi)存服務(wù)器實(shí)現(xiàn)的万俗。
使用隊(duì)列的場景:比如當(dāng)用戶在網(wǎng)站上的一篇文章寫了條評論,你需要發(fā)送一條郵件給文章作者饮怯。這時(shí)候你可以使用正常的http請求去實(shí)現(xiàn)闰歪,首先你把用戶的評論內(nèi)容發(fā)送到后臺(tái),然后把評論寫入數(shù)據(jù)庫蓖墅,最后利用代碼發(fā)送一個(gè)郵件給作者库倘,但是發(fā)送郵件時(shí)間一般需要幾秒,這時(shí)候用戶在瀏覽器上需要等待這額外的幾秒(如果發(fā)送郵件的配置宕掉了论矾,用戶就會(huì)一直等在這里)教翩。當(dāng)然也可以利用ajax去實(shí)現(xiàn),但是后臺(tái)處理有沒有成功贪壳,你還是需要等待的饱亿。如果使用了隊(duì)列,就可以把發(fā)送郵件這個(gè)任務(wù)推送到隊(duì)列闰靴,然后完成該次http請求彪笼,讓redis有空閑了再去執(zhí)行該隊(duì)列任務(wù)發(fā)郵件。這里其實(shí)是實(shí)現(xiàn)了正常http訪問不能解決的并行問題传黄,只能等待所有執(zhí)行完成后才返回成功杰扫,體驗(yàn)不好队寇。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膘掰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌识埋,老刑警劉巖凡伊,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異窒舟,居然都是意外死亡系忙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門惠豺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來银还,“玉大人,你說我怎么就攤上這事洁墙∮挤瑁” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵热监,是天一觀的道長捺弦。 經(jīng)常有香客問我,道長孝扛,這世上最難降的妖魔是什么列吼? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮苦始,結(jié)果婚禮上寞钥,老公的妹妹穿的比我還像新娘。我一直安慰自己陌选,他們只是感情好凑耻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著柠贤,像睡著了一般香浩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上臼勉,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天邻吭,我揣著相機(jī)與錄音,去河邊找鬼宴霸。 笑死囱晴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瓢谢。 我是一名探鬼主播畸写,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼氓扛!你這毒婦竟也來了枯芬?” 一聲冷哼從身側(cè)響起论笔,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎千所,沒想到半個(gè)月后狂魔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淫痰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年最楷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片待错。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡籽孙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出火俄,到底是詐尸還是另有隱情蚯撩,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布烛占,位于F島的核電站胎挎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏忆家。R本人自食惡果不足惜犹菇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芽卿。 院中可真熱鬧揭芍,春花似錦、人聲如沸卸例。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筷转。三九已至姑原,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呜舒,已是汗流浹背锭汛。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留袭蝗,地道東北人唤殴。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像到腥,于是被迫代替她去往敵國和親朵逝。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

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

  • 網(wǎng)絡(luò)概念第一天 兩臺(tái)電腦怎么通過網(wǎng)絡(luò)傳輸數(shù)據(jù)乡范?怎樣才能知道傳輸?shù)氖菙?shù)據(jù)配名?誰摸過網(wǎng)線啤咽? 看電影,怎么看的段誊?通過電流闰蚕,...
    小吖朱閱讀 1,545評論 0 1
  • 一栈拖、項(xiàng)目目標(biāo) 搭建一個(gè)高可用web集群網(wǎng)站 二连舍、項(xiàng)目規(guī)劃 2.1 ip地址規(guī)劃 2.2 拓?fù)鋱D 2.3 相關(guān)說明 ...
    夏日之光閱讀 3,386評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)涩哟,斷路器索赏,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 1、第八章 Samba服務(wù)器2贴彼、第八章 NFS服務(wù)器3潜腻、第十章 Linux下DNS服務(wù)器配站點(diǎn),域名解析概念命令:...
    哈熝少主閱讀 3,717評論 0 10
  • 本文主要根據(jù)美團(tuán)的技術(shù)博客《常見性能優(yōu)化策略的總結(jié)》整理而來器仗。 代碼 之所以把代碼放到第一位融涣,是因?yàn)檫@一點(diǎn)最容易引...
    你是妖怪吧閱讀 4,125評論 0 15