標籤: 銷售文案

  • 英國空污嚴重超標 6成人口呼吸髒空氣

    摘錄自2020年9月8日台灣醒報報導

    在去年,有3000多萬名英國人,生活在骯髒的空氣中。英國去年共有超過100處監測站,出現空氣汙染超過標準值,換算約影響超過3,000萬人,其中受影響的兒童更高達700萬人。

    英國工黨從政府公布的數據分析後發現,會危害人體呼吸道系統的二氧化氮,在英國共有142處已超過法定標準。而絕大多數二氧化氮來自車輛,其中一半是汽車、25%是發電廠,其餘則來自其他工業或民生來源。

    對於空汙過於嚴重,工黨呼籲英國政府將降低空氣汙染達到世界衛生組織標準的目標列入環保法案中。工黨環境發言人波拉德表示,「接近6成英國人口受到不合規定的空氣汙染危害,真是令人無法接受。不管住在哪裡,人人都有權呼吸到好的乾淨空氣。」

    據倫敦皇家內科醫師學會估計,由於空污造成健康危害,讓英國必須付出200億英鎊(約台幣7,892億元)的代價。至於二氧化氮超標的地區大多數都位於大倫敦地區,包括格林威治與倫敦市等地。除此之外,南方的伯恩茅斯與東北部的蓋茨黑德也是超標地區。

    污染治理
    環境新聞
    國際新聞
    英國
    空氣污染
    二氧化氮

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※超省錢租車方案

    ※別再煩惱如何寫文案,掌握八大原則!

    ※回頭車貨運收費標準

    ※教你寫出一流的銷售文案?

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

  • 說到“新能源”就只有電動車嗎?

    說到“新能源”就只有電動車嗎?

    木炭車行駛速度慢,載重能力差,主要承擔客運。當時,由市區發往百多公里以外鄰縣的班線,每天只能行使一個單程。由於車輛老舊,汽車中途拋錨現象時常發生。特別是遇上坡路段,汽車還經常熄火,需旅客幫助推車。有時木炭燒完,還要發動旅客下車揀柴禾、樹枝充做燃料。

    現在說到新能源,一般會想到電動車,如果了解得多的可能還知道燃料電池或者氫動力之類,但是再早一點,國內還有另外一種不用新能源的“新能源”汽車—木炭車。

    當你在想木炭車怎麼驅動車的時候是不是以為大力出奇迹?其實這裏的木炭不是直接當做發動機的燃料來產生動力,整個工作原理大致如下圖。

    利用木炭在一個特殊的發生爐經過一系列程序後生成煤氣,然後讓發動機燃燒煤氣驅動車輛。聽着就很蛋疼啊,除了讓車看起來更丑,開起來更慢,可能還有更多的pM2.5(那會應該還沒有這個概念)為什麼要搞這種事情呢?

    上世紀五十年代初,國家經濟處在恢復時期又遇抗美援朝戰爭,各西方國家對我國實施禁運政策,國家汽油短缺,燒汽油的車就紛紛改裝成燒木炭的車。(所以木炭車的本質還是活塞發動機的原理,只是燃料從石油變成了煤氣。)

    由於木炭車的結構,每天發車前,駕駛員需要用油棉引燃木炭,先燒上10分鐘左右,然後搖動鼓風機才能啟動。上部的木炭淋有少量的水分,由於頂部的鍋爐蓋在正常工作時是密封着的,高溫密封加少量的氧,反應成一氧化碳氣體,經罐內生鐵造的爐膽管道,進入儲氣罐再送到發動機里和適量的空氣混合,形成可燃混合氣(也就是煤氣),然後導入發動機工作。(讓我們看下木炭車的動力系統是怎麼工作的)

    木炭車一般從點爐到啟動需40-50分鐘。行駛中,還要添料、捅爐、掌握木炭燃燒程度,司機和助手每天工作相當辛苦。木炭車行駛速度慢,載重能力差,主要承擔客運。當時,由市區發往百多公里以外鄰縣的班線,每天只能行使一個單程。由於車輛老舊,汽車中途拋錨現象時常發生。

    特別是遇上坡路段,汽車還經常熄火,需旅客幫助推車。有時木炭燒完,還要發動旅客下車揀柴禾、樹枝充做燃料。

    一趟行程下來司機乘客都是灰頭土臉,但是在當時的情況下,有車就已經很滿足了,顯然這裏的“新能源”並不是所謂的綠色新能源,所以木炭車隨着我國的油田發展也就漸漸消失了。

    看到上面的工程師以為木炭車中國才有嗎?其實二戰的時候有些國家也因為石油問題,甚至期間的坦克也採用“木炭車”的技術,屁股上背着一個大罐。

    而在我們的鄰國朝鮮現在還有機會能看到。

    雖然我們國家現在有了自己的油田,現在卻是世界最大石油進口國。不管是因為真的消耗如此巨大還是戰略上的貯備,木炭車的歷史都讓我們明白了一個道理,一定要有自己的核心技術。如果當時我們連木炭車都搗鼓不出來就真的只能幹瞪眼。現在的自主品牌中有些確實腳踏實地在潛心研發自己的技術,但是也有些品牌像寄生蟲一樣,總是想着鑽空子,鬧個大新聞,希望自主品牌越來越好的贊一個!本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※教你寫出一流的銷售文案?

  • 這三款國產家轎都帶全景攝像頭,最低只要6萬多

    這三款國產家轎都帶全景攝像頭,最低只要6萬多

    在市區遊走並不費力,雙離合變速箱在低速行車時會有拖拽感,偶爾也會卡在2擋不願升擋。內飾設計上,以酒紅色和黑色搭配,看上去較為時尚。中控的按鈕雖然多,但是都有中文標示,上手難度不大。6。99萬就有全景攝像頭,這在同級中也是絕無僅有。

    當你開着車去到一些只有狹窄停車位的地方時,即便有倒車雷達也要挪得小心翼翼,生怕兩側或者車頭會發生一些刮蹭。不過,如果你的車有全景攝像頭的話,在這種情況下就可以從容淡定不少了。而有些車的全景攝像頭,甚至可以在低速前進時開啟,這無疑更好地解決了城村匯車時的煩惱。

    雖說國產車的配置相當豐富,但是在13萬內能有全景攝像頭的汽車依舊是鳳毛麟角。下面編者我就給大家推薦三款帶全景攝像頭的國產車。

    東風裕隆-納5

    指導價:8.58-11.98萬

    帶全景攝像頭的車型:11.58萬的自動智尊型和11.98萬的自動旗艦型

    編者點評:納5的全景影像雖然精度不高且有一定程度的變形,但是已經能清楚看到周圍的情況,新手倒車也不再有難度。除了全景攝像頭以外,以上所說的那兩個車型還配備了前後駐車雷達,簡直是武裝到了牙齒。遇到一些較窄的拐角位,也不用像一般司機那樣拚命把頭往前探來看位置。

    納5隻有一款1.8T發動機可選,與之匹配的是5擋手動和6擋手自一體變速箱,最大輸出180馬力和256牛米,整個動力相當充足。內飾設計以黑色為主,兼具運動感與高級感,烤黑鋼琴漆的面板,不失優雅。

    比亞迪-速銳

    指導價:6.99-9.59萬

    帶全景攝像頭的車型:6.99萬的手動精英型、8.59萬的手動旗艦型和9.59萬的自動旗艦型

    編者點評:速銳也只有一款1.5L發動機可選,與之匹配的是5擋手動和6擋雙離合變速箱,最大輸出109馬力和145牛米。在市區遊走並不費力,雙離合變速箱在低速行車時會有拖拽感,偶爾也會卡在2擋不願升擋。

    內飾設計上,以酒紅色和黑色搭配,看上去較為時尚。中控的按鈕雖然多,但是都有中文標示,上手難度不大。6.99萬就有全景攝像頭,這在同級中也是絕無僅有。除了全景攝像頭,前後駐車雷達同樣沒有缺席,配置相當豐富。

    東風乘用車-東風風神L60

    指導價:8.97-12.97萬

    帶全景攝像頭的車型:12.97萬的自動新睿型

    編者點評:從显示的效果來說,確實是這三台車中最好的,四個角度的銜接自然。除了全景攝像以外,頂配車型還有無鑰匙進入與啟動這個亮點配置。整個內飾讓人覺得很有小清新的感覺,各處做工亦頗為精良,中央显示屏四周的烤黑鋼琴漆點綴得恰到好處。

    動力總成上,L60提供1.6L與1.8L發動機,與前者匹配的是5擋手動變速箱,而後者則多了一副6擋手自一體變速箱。1.6L發動機最大輸出117馬力和150牛米,而1.8L發動機最大輸出139馬力和172牛米。總的來說,1.6L發動機動力偏弱,1.8L會顯得更為游刃有餘。

    編者總結

    隨着時代的發展,車越來越多,越做越大。有些狹窄路段,老司機應付起來都要小心翼翼,就更不用說新手了,所以帶有全景攝像頭的這三款車可以說是新手的福音。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

    ※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

    南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

    ※教你寫出一流的銷售文案?

    ※超省錢租車方案

  • 15萬買車要最個性最實用 恐怕只能選擇這三輛!

    15萬買車要最個性最實用 恐怕只能選擇這三輛!

    東風日產-啟辰T90指導價:10。98-15。48萬說到個性,如今關注度極高的啟辰T90是不能落下的,它定位為中型SUV,採用了與寶馬、奔馳、謳歌等豪華品牌類似的轎跑式SUV設計風格。2765mm的軸距、4793mm的車身長度讓它的側面造型修長而且非常動感。

    現在的車型除了配置高、動力強以外也越來越講究功能性。關於功能性好與不好,其實可以簡單理解為這些車型能不能“裝”、能不能適應各種道路狀況!

    “裝”當然是指車輛的裝載能力,實際體現如三廂轎車很難裝載一個冰箱或洗衣機!而大兩廂車型或SUV就能輕鬆裝載。

    (還記得之前爆火的“後置發動雞、雙渦輪增鴨”嗎?)

    能不能適應各種道路狀況就體現在車輛的離地間隙是否夠高,它能防止托底的情況出現,還要有濾振到位的懸架,走爛路時車內的乘客保持舒適的體驗!

    當然,現在買車還要求外觀漂亮,最好要足夠個性!還有更重要的是“逼格”!

    今天我們就來看看15萬的預算該買哪些兼顧個性、實用性的車型。

    一汽-大眾-蔚領

    指導價:12.59-16.29萬

    用實用性兼顧個性來形容大眾蔚領一點不為過,它旅行車的車身結構讓車尾的造型異常獨特,同時這樣的車身設計也帶來了極其實用的後備廂空間。

    蔚領的後備廂容積為589L,放倒後排座椅后儲物空間能擴展為1507L!雖然蔚領的軸距為2614mm,與傑德的2760mm軸距有較大差異,但是儲物空間依然表現不錯。

    另外,蔚領還標配了全景天窗、車頂行李架、定速巡航、後排座椅比例放倒、胎壓監測、ESp等與長途自駕旅行相關的配置,可以說是比較厚道的!

    編者點評:

    蔚領的造型時尚也不失穩重,雖然車身尺寸比傑德要小,但是它配置更厚道、價格稍低,在性價比方面也有不錯的表現!

    東風日產-啟辰T90

    指導價:10.98-15.48萬

    說到個性,如今關注度極高的啟辰T90是不能落下的,它定位為中型SUV,採用了與寶馬、奔馳、謳歌等豪華品牌類似的轎跑式SUV設計風格。2765mm的軸距、4793mm的車身長度讓它的側面造型修長而且非常動感!

    而在動力方面,它搭載一款代號為MR20的2.0L自然吸氣發動機,搭配6擋手動/CVT無級變速箱,在動力方面固然無法跟售價數倍於它的豪華品牌SUV相提並論,但是啟辰T90駕駛起來動力充足,平順性很不錯,所以也適合家用。

    編者點評:

    啟辰T90的定位獨特,而且售價比較接地氣,這導致在同價位中基本找不到直接的競爭對手!它除了外觀個性外,在做工、用料方面都表現不錯,值得大家多多考慮。

    眾泰汽車-眾泰SR9

    指導價:10.88-16.18萬

    在這個看臉的時代,一個帥氣的外觀是必不可少的。眾泰SR9的外觀設計不用我多說,非常運動時尚,也給你很保時捷的感覺,而至於這樣的造型大家是否能接受呢?

    眾泰SR9的車身長寬高為4744*1929*1647mm,軸距達2850mm,定位是中型SUV,這樣的車身尺寸跟本田冠道有得一拼。

    它搭載一款來自三菱的2.0T渦輪增壓發動機,最大功率190馬力、峰值扭矩250牛米/2400-4800轉,動力參數在同級別車型裏面屬於中等水平,匹配6速濕式雙離合變速箱或5擋手動變速箱。

    編者點評:

    現在關於眾泰SR9的爭議不少,不過正是由於這些爭議,讓SR9的關注度一直居高不下,而之前推出的SR7也有着不錯的銷量。綜合來看,眾泰SR9的空間、配置、性價比表現不錯,在SUV車型銷量火爆的前提下,它有可能成為市面上悶聲發大財的車型之一!本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    南投搬家公司費用需注意的眉眉角角,別等搬了再說!

    ※教你寫出一流的銷售文案?

  • 10萬全新高顏值家轎即將上市 力爭成為國民首選?

    10萬全新高顏值家轎即將上市 力爭成為國民首選?

    整體處於平均水平,畢竟這類型的入門車型,性能不是最重要的,重要的是質量可靠以及保養維修便宜。競爭對手:福特福睿斯指導價:9。68-11。98萬福特福睿斯是這次現代悅動的頭號競爭對手,福睿斯使用的是福克斯平台,雖然換上了后扭力梁式懸架,但是比起福克斯更為舒適而且後排空間更大,深受消費者的喜好。

    最近公布的2016年全年榜單中,福睿斯以及英朗的優秀銷量告訴了我們“中國特供車”中國消費者是會多喜愛。看到這個現象,有着越來越多的車企進入這個市場。而一向以高顏值著稱的北京現代,就向我們透露這樣的信息,1月18號全新悅動下線,三月中下旬就可以買到一款有着超高顏值的全新悅動了。那麼這究竟是款怎樣的車型呢?

    全新悅動是北京現代攻佔入門級緊湊型轎車市場的武器,有着韓系車一貫的高顏值特性。犀利的開眼角大燈設計、大面積的六邊形前進氣格柵以及較低的視覺重心設計,讓它有着一種“現代領動”孿生兄弟的感覺,不過線條處理比起領動更為柔和,受眾年齡更為廣泛。

    單單看着側面就知道它的定位會比起領動要低,車身長度以及軸距預測將和福睿斯、科沃茲等入門緊湊型轎車處於同一水平。車頂線條流暢柔和,這樣可以在頭部空間能有着較大的保障。多幅式鋁合金輪轂和整車氣質非常相符,非常協調般配。

    在尾部造型上,全新悅動更像是自家弟弟——現代悅納,雖然採用的是家族史設計,但是比起領動以及悅納,全新悅動尾部造型更為圓潤。不過一樣使用小巧的鴨尾式設計,為車尾增添了一點亮色。

    (上圖為悅納1.6L自然吸氣發動機)

    動力方面全新悅動將搭載和悅納上的1.6L自然吸氣發動機,最大功率123馬力,變速箱方面將有着6速手動或者6速手自一體變速箱可以選擇。整體處於平均水平,畢竟這類型的入門車型,性能不是最重要的,重要的是質量可靠以及保養維修便宜。

    競爭對手:

    福特福睿斯

    指導價:9.68-11.98萬

    福特福睿斯是這次現代悅動的頭號競爭對手,福睿斯使用的是福克斯平台,雖然換上了后扭力梁式懸架,但是比起福克斯更為舒適而且後排空間更大,深受消費者的喜好。福睿斯相對於全新悅動來說,外觀設計面向的群眾年齡層會更高,家庭用戶佔了絕大多數。

    雪佛蘭科沃茲

    官方指導價:7.99-10.99萬

    和着福睿斯一樣,科沃茲也是一款“中國特供車”,推出市場時間較短的它還需要時間證明自己的實力,所以在今年它有可能會是一匹“黑馬”。而且在價格上,科沃茲還是非常親民,官方指導價還不到8萬,和競爭對手相比有着價格優勢,而在空間表現以及性能上也是這個級別的平均水準。

    編者總結:

    對於入門緊湊型車型,現代集團之前是處於放任自流的狀態,畢竟有着瑞納這款小型車就可以撐起這個價位的市場。但是在意識到入門緊湊型轎車的熱銷以後,推出一款全新的入門就直觀至關重要。

    而全新悅動相對於競爭對手而言就有着高顏值的特性,在筆者看來這會成為它的一大利器,畢竟能吸收更為年輕以及購買力更強的消費者。其次是價格,根據定位全新悅動價格極有可能在8-11萬之間。對於我們消費者來說,這樣一款高顏值、價格親民的入門緊湊型轎車是我們需要的。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※別再煩惱如何寫文案,掌握八大原則!

    ※教你寫出一流的銷售文案?

    ※超省錢租車方案

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

  • 油耗高達6.1L 這款混合動力車不便宜點怎麼行

    油耗高達6.1L 這款混合動力車不便宜點怎麼行

    (使用2。5L發動機的凱美瑞雙擎工信部油耗也高達5。3升/100公里)。其它方面表現如何。介紹完動力之後,咱們再看看全新起亞K7的其它方面,外觀上比老款K7更加帥氣動感,精緻感要更加好,看起來更加像一款平民豪車。K7的尺寸為4970mm*1869mm*1470mm。

    各位朋友們,臨近年關,不知道現在你們還有沒有心情工作呢?

    廢話不說那麼多,今天小編美美又來給各位介紹新車啦,這一款新車就是起亞K7混合動力版。

    有的朋友可能對起亞K7非常的陌生,起亞在我們的印象中比較熟悉的車型就是智跑、K5、K3這一類的,其實起亞K7是起亞K系列的一款高端中級轎車。他的中文名叫做起亞凱尊,起亞凱尊是起亞的一款定位B+級的中級轎車產品,採用全進口的銷售方式,售價為24.3萬~32.46萬,雖然是進口身份,但是它24.3萬元的起價已經比定位中大型車的福特金牛座還要更加貴,所以在國內賣的不好也是意料之中。

    現款起亞凱尊↑↑↑

    但是這並不妨礙我們看一下起亞的這個混動軍團的又一款產品起亞K7混動的實力。

    新一代起亞K7於2016年1月在韓國亮相,至今正好一年的時間,而一年後的現在起亞發布了K7混動的消息,K7混動採用2.4升的自然吸氣發動機加38千瓦的電動機的動力總成。最大功率為157馬力,最大扭矩為206牛米。鋰電池的電池容量為1.76kwh。官方公布的百公里綜合油耗為6.1L/100km。

    現款凱尊的2.4L發動機↑↑↑

    目前關於這款2.4L的發動機並沒有太多的消息,是否是全新的發動機也是未知,但是參考其157馬力/206牛米的動力輸出來看,這樣的輸出水平比2013款凱尊2.4L發動機都要低了不少(2013款凱尊國五:173馬力/224牛米),因此小編猜測這是一台新發動機,並且採用了混動車型多半喜歡的阿特金森循環(這種發動機動力弱但是油耗表現優秀)。

    而38千瓦(52馬力)電機和現款起亞K5混動的電機功率相同,因此電機可能是和現款K5採用相同的38千瓦(52馬力)/205牛米輸出的電機。因此發動機和電動機的總輸出功率可能為225馬力/429牛米。

    為什麼綜合油耗偏高?

    相比較同級別的雅閣混動、君越混動來說,K7的6.1升的綜合油耗是偏高的表現了,君越混動採用1.8L發動機+114千瓦電機的動力系統,工信部油耗為4.7升/100公里,雅閣採用2.0L發動機+135千瓦電機的動力系統,工信部油耗為4.2升/100公里。

    那為什麼會有偏高的油耗呢?由於K7電機的功率偏弱,因此電機主要的工作區間為低速區間,因此需要使用大排量發動機來彌補中段加速的動力,因此K7使用了2.4L的發動機,較大的發動機排量也會導致油耗偏高。(使用2.5L發動機的凱美瑞雙擎工信部油耗也高達5.3升/100公里)。

    其它方面表現如何?

    介紹完動力之後,咱們再看看全新起亞K7的其它方面,外觀上比老款K7更加帥氣動感,精緻感要更加好,看起來更加像一款平民豪車。K7的尺寸為4970mm*1869mm*1470mm。軸距為2855mm,這樣的尺寸其實已經是逼近一台中大型轎車了。

    內飾上K7也是以穩重設計為主,畢竟是起亞的高端價位的車型,現款K7的內飾做工質感在同價位就是比較出色的了,因此對於全新的K7的內飾質感小編也絲毫不擔心。而且得益於較大的車身尺寸,全新K7的內部空間貌似還比較寬敞。

    動力上,除了混動的K7之外,還會有2.0T和2.4L發動機的車型,在美國市場上K7還有6缸3.3L發動機,最大功率290馬力,並且匹配8AT變速箱,不過不用想了,即使3.3L車型來到國內,受限於稅率相信也沒多少人會買的。

    售價多少?

    回到混動K7上,看完了混動K7的數據之後相信大家會好奇,這款起亞K7混動會賣多少錢呢?綜合目前國產的起亞K5混動售價為19.98萬-24.88萬,比K5更加高級並且採用進口身份的K7售價也會更加高,但是在前不久上市的起亞極睿卻給我們帶來了極具震撼的性價比;因此作為起亞的混動新生代車型,K7混動價格預計也不會貴到離譜,因此小編猜測K7混動的價格會在23.98萬左右,你們覺得這個價格如何呢?

    競爭對手:

    本田雅閣混動

    23.98-27.98萬

    相比起亞來說本田的品牌在中國的認可度更加高,而更加低的綜合油耗以及技術上的優勢都是雅閣混動的優勢所在,也是K7混動要面對的。

    起亞K5混動

    19.98萬-24.88萬

    為什麼說K5混動是K7混動的對手呢?在許多人看來,K5和K7同為中級車,但是K7要貴得多,因此選擇K5也就更加划算了,而對於選擇K7混動的人來說,為什麼不選擇一個同樣大空間低油耗的中級車K5呢?

    別克君越混動

    27.58-30.58萬

    國人對於別克的喜愛是十分明顯的,君越高級的底盤質感以及配置上的優勢都是同價位比較明顯的,而君越混動的油耗也比K7混動更加低,品質感也絲毫不遜色於K7混動,但是君越混動的價格偏高也是一個問題,如果K7混動也定這個價的話,那麼它倆就可以正面廝殺了。

    總結:

    其實無論是對於哪個品牌來說,受限於日益嚴格的排放法規,混動都是接下來的主戰場,而從起亞極睿的上市來看,技術偏弱的起亞選擇了爭取時間優勢,率先以低價入市的方式佔領市場打開口碑,之後有了良好的市場基礎,也就不用懼怕其它車型的競爭,因此低價入市的戰略應該是起亞的主要思路,這個角度來看,起亞K7的價格還是十分值得期待的。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※別再煩惱如何寫文案,掌握八大原則!

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    ※超省錢租車方案

    ※教你寫出一流的銷售文案?

    網頁設計最專業,超強功能平台可客製化

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

  • 成天喊着要SUV 這幾款只要5萬起你買不買?

    成天喊着要SUV 這幾款只要5萬起你買不買?

    值得一提的是,甚至還能在它身上看到換擋撥片。動力方面,1。5L自然吸氣發動機加5MT的搭配,性能方面不用擔心,完全夠用。至於另外一台AMT變速箱,畢竟受限於成本,性能方面肯定不及CVT,但相比那些只有純手動擋的對手來說也算得上一優勢。

    叫獸有時候總在想,SUV究竟還要火多久?是不是今後就要與傳統轎車“平分秋色”了?

    我不得而知。總之,存在即合理。叫獸可不是來探討這個高深的問題的,既然老老少少都對SUV抱有這麼大的熱情,倒不如成人之美,今天就推薦幾款市面上能買到(或即將上市)價格最親民並且還很靠譜的SUV,喜歡SUV的同學們可不要錯過。

    以下按價格由低到高的順序排列。

    江淮汽車 – 瑞風S2mini

    預售價:4.58 – 5.68萬

    瑞風S2mini的推出,更是將SUV的火爆演繹到了極致。這款定位在小型SUV – 瑞風S2之下的S2mini,幾乎是今後市面上能買到的最便宜的大廠SUV。

    正如它的造型一樣,呆萌的造型只賣獃萌的價格。作為江淮最入門的車型,瑞風S2mini同樣運用了江淮最新的家族設計,我們依然能在這個“小巧”的前臉上看到“寶瓶式”設計,看上去在呆萌中透露出一絲狠勁,挺好。

    外掛式備胎算是S2mini的一大亮點,從後方看去就像一位背着書包的壞小子,竟毫無違和感;3775*1685*1775mm的車身也能體現其“小學生”的身份。

    內飾倒是讓人眼前一亮,紅黑色的搭配彰顯了年輕人的活力,頂配車型甚至還採用了皮質包裹,對於這麼一款售價的SUV來說,有點意思。

    動力則搭載一台1.3L自然吸氣發動機,最大馬力99ps,峰值扭矩為126Nm,這樣的參數對於這麼一個“小身材”綽綽有餘;與發動機匹配的只有一台5MT變速箱。

    叫獸點評:升高几厘米底盤,冠上SUV稱號的S2mini未來的市場一定會比同價位轎車快活得多。

    長城汽車 – 哈弗H1

    指導價:5.49 – 7.89萬

    H6銷量的恐怖程度相信大家早有耳聞,叫獸的印象中,國內月銷量超8萬的單一車型除了五菱宏光就是H6了。作為哈弗家族的入門產品,H1的表現如何呢?

    你可以認為H1就是從M4拉皮而來,但不可否認的是,H1擁有同級SUV里較高的顏值。碩大的蜂窩式黑色格柵,看上去頗有幾分氣勢。

    車尾設計精緻幹練,如果說S2mini是個調皮的小子,那H1更像位體育委員。別多想,這排氣孔只是裝飾,唬人的。

    內飾給人的驚喜很大,雖然有些某豪華品牌的設計元素在裏面,不過從視覺層面來看還是挺讓人滿意的。值得一提的是,甚至還能在它身上看到換擋撥片。

    動力方面,1.5L自然吸氣發動機加5MT的搭配,性能方面不用擔心,完全夠用;至於另外一台AMT變速箱,畢竟受限於成本,性能方面肯定不及CVT,但相比那些只有純手動擋的對手來說也算得上一優勢。

    叫獸點評:長城的功底還是不錯的,更推薦手動版本。

    長安汽車 – CS15

    指導價:5.79 – 7.79萬

    近幾年,長安的“CS系列”死磕長城哈弗,雖然整體銷量還有些距離,但也算混的順風順水。CS15則是很有力的證明。

    CS15擁有比以上兩款更接近SUV的造型,造型上採用高度原創的設計,看上去也更討喜。

    內飾部分同樣令人滿意,看上去似乎亮點不多,不過長安紮實的做工和用料還是對得起它的價格的。

    除了同樣是1.5L + 5MT的動力組合外,CS15最大的看點在於它是同級車型里鮮有配備了雙離合變速箱的車型。換擋表現不敢說多麼平順,但比起AMT變速箱還是有明顯優勢的。這一點也能讓其吸引更多潛在客戶的關注。

    叫獸點評:6、7萬的自動擋SUV,非CS15莫屬。

    上汽通用五菱 – 寶駿510

    預售價:5.98 – 7.58萬

    510這款車不用多說,自去年廣州車展亮相后就受到了極大關注,不難預料,這即將成為寶駿又一爆款車型。

    天馬行空的車頭設計不用多介紹了,叫獸認為這個設計起碼向上越了兩級,這也將成為510未來競爭的最大殺手鐧。

    內飾部分,叫獸認為510是以上幾款車裡最值得表揚的。無論是設計還是用料均達到了主流水平,重點是,這是原創設計喲!

    動力搭載的是與730同款的L2B 1.5L自然吸氣發動機,性能和可靠性自然無須擔心。唯一遺憾的是,先期並沒有提供自動擋版本。

    叫獸點評:近兩年寶駿推出的車型幾乎都成為爆款,不用多想,510又要革了小型SUV市場的命。

    THE

    END

    總結

    誰說便宜無好貨?當工業發展到一定程度,成本和設計都成熟以後,依然能推出物美價廉的產品。如果你對SUV情有獨鍾並且預算有限,這幾款是個非常不錯的選擇。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※教你寫出一流的銷售文案?

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※回頭車貨運收費標準

    ※別再煩惱如何寫文案,掌握八大原則!

    ※超省錢租車方案

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

  • 5-10萬預算還想買7座?這些車是全民認證的好!

    5-10萬預算還想買7座?這些車是全民認證的好!

    08-9。28萬寶駿730的銷量雖然沒有宏光那麼硬氣,但是2016年全年370169輛的銷量也足以讓競爭對手汗顏了,寶駿730的車身尺寸為4685/4710*1785*1715mm,軸距為2750mm。提供5座、7座、8座版車型。雖然中控台依然是採用的硬塑料,中高配依然配備中控大屏幕,但是730的內飾設計明星要比宏光時尚很多,看起來也比較有設計感,畢竟一分價錢一分貨。

    在5-10萬元這個價位,如果單論哪種車子的實用性最高,小編肯定會不假思索的推薦MpV(微面),因為這些車子價格非常實惠,質量很好,空間很大,拉人載貨都非常方便。所以小編就給大家推薦幾款2016年全年銷量比較好的MpV。

    上汽通用五菱-五菱宏光

    指導價:4.18-6.98萬

    其實第一不用說大家就猜到是五菱宏光,中華神車五菱宏光在2016年12月份的銷量高達82543輛,2016年全年累計銷量為650018輛,這樣高調的銷量數據估計只有美國的皮卡福特F-150可以媲美了。雖然五菱宏光的發動機沒法和大排量V8的F-150相比,但是宏光價格要便宜很多啊!而且,宏光可以盡情的甩尾漂移,這點F-150不好做到吧!畢竟宏光也是征服過秋名山的选手。

    宏光的不同車型的車身尺寸略有差異,但是軸距都為2720mm,座位數為5-8個不等。當然低配的宏光是不可能有中控大屏幕的,畢竟車價較低,不過,有了中控大屏,宏光的中控看起來立馬高端很多。

    宏光的動力系統為1.2L 86馬力/1.5L 112馬力+5擋手動,別看宏光馬力較小,但是宏光的定位是微面,就是用來干粗活的,所以即使是滿載,只要油門轟起來,也不會感到動力不足。

    上汽通用五菱-寶駿730

    指導價:6.08-9.28萬

    寶駿730的銷量雖然沒有宏光那麼硬氣,但是2016年全年370169輛的銷量也足以讓競爭對手汗顏了,寶駿730的車身尺寸為4685/4710*1785*1715mm,軸距為2750mm。提供5座、7座、8座版車型。

    雖然中控台依然是採用的硬塑料,中高配依然配備中控大屏幕,但是730的內飾設計明星要比宏光時尚很多,看起來也比較有設計感,畢竟一分價錢一分貨。

    寶駿730的動力選擇很豐富,有自吸、同時也有渦輪發動機,甚至還有AMT車型可供消費者選擇。其實小編認為如果只是偶爾拉貨,多數情況是坐人的話,那麼最好還是選擇730吧!畢竟730前置前驅結構,噪音要比宏光小很多,同時整車的質感和配置也要明顯強於宏光,多花兩萬元還是比較值得的!

    長安汽車-歐尚

    指導價:5.19-6.49萬

    長安歐尚2016年全年的銷量為118185輛,表現還算不錯,歐尚的車身尺寸為4465*1725*1685/1700mm,軸距為2680mm。全系均為七座車型。

    內飾的造型絕對對得起這個價位,全黑的中控看起來質感很不錯,甚至有種比較高檔的感覺,不過內飾的用料肯定是以硬塑料為主了,畢竟價位有限么,可以理解。

    其實歐尚的性價比挺不錯的,絕對不比730的性價比低,畢竟6.49萬的歐尚就有ESp、上坡輔助、電動天窗、真皮方向盤、前/后駐車雷達、倒車視頻影像、仿皮座椅、GpS導航、中控大屏、藍牙、後座出風口等配置,關鍵是歐尚的優惠比730要大不少,如果不介意歐尚的尺寸小於730的話,那麼歐尚還是很值得入手的。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※超省錢租車方案

    ※別再煩惱如何寫文案,掌握八大原則!

    ※回頭車貨運收費標準

    ※教你寫出一流的銷售文案?

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

  • 別再寫一摞if-else了!再寫開除!兩種設計模式帶你消滅它!

    別再寫一摞if-else了!再寫開除!兩種設計模式帶你消滅它!

    題外話:本來不想解釋、可是看完評論,有點服氣。沒想到居然這麼多人能曲解題意。這篇文章明顯是在說,不要寫一大堆if-else,一大堆是啥意思很難懂嗎?我沒有一句話說了不要寫if-else。開頭也給出了具體需求,在這種需求的前提下不要寫if-else,沒毛病吧??

    代碼潔癖狂們!看到一個類中有幾十個if-else是不是很抓狂?
    設計模式學了用不上嗎?面試的時候問你,你只能回答最簡單的單例模式,問你有沒有用過反射之類的高級特性,回答也是否嗎?
    這次就讓設計模式(模板方法模式+工廠模式)和反射助你消滅if-else!
    真的是開發中超超超超超超有用的乾貨啊!

    那個坑貨

    某日,碼農胖滾豬接到上級一個需求,這個需求牛逼了,一站式智能報表查詢平台,支持mysql、pgxl、tidb、hive、presto、mongo等眾多數據源,想要啥數據都能通通給你查出來展示,對於業務人員數據分析有重大意義!

    雖然各個數據源的參數校驗、查詢引擎和查詢邏輯都不一樣,但是胖滾豬對這些框架都很熟悉,這個難不倒她,她只花了一天時間就都寫完了。

    領導胖滾熊也對胖滾豬的效率表示了肯定。可是好景不長,第三天,領導閑着沒事,準備做一下code review,可把胖滾熊驚呆了,一個類裏面有近30個if-else代碼,我滴個媽呀,這可讓代碼潔癖狂崩潰了。

    // 檢驗入參合法性
    Boolean check = false;
    if(DataSourceEnum.hive.equals(dataSource)){
        check = checkHiveParams(params);
    } else if(DataSourceEnum.tidb.equals(dataSource)){
        check = checkTidbParams(params);
    } else if(DataSourceEnum.mysql.equals(dataSource)){
        check = checkMysqlParams(params);
    } // else if ....... 省略pgxl、presto等
    if(check){
        if(DataSourceEnum.hive.equals(dataSource)){
            list = queryHive(params);
        } else if(DataSourceEnum.tidb.equals(dataSource)){
            list = queryTidb(params);
        } else if(DataSourceEnum.mysql.equals(dataSource)){
            list = queryMysql(params);
        } // else if ....... 省略pgxl、presto等
    }
    //記錄日誌
    log.info("用戶={} 查詢數據源={} 結果size={}",params.getUserName(),params.getDataSource(),list.size());
    

    模板模式來救場

    首先我們來分析下,不管是什麼數據源,算法結構(流程)都是一樣的,1、校驗參數合法性 2、查詢 3、記錄日誌。這不就是說模板一樣、只不過具體細節不一樣,沒錯吧?

    讓我們來看看設計模式中模板方法模式的定義吧:

    模板方法模式:定義一個操作中的算法的框架,而將一些步驟延遲到子類中. 使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。通俗的講,就是將子類相同的方法, 都放到其抽象父類中。

    我們這需求不就和模板方法模式差不多嗎?因此我們可以把模板抽到父類(抽象類)中。至於特定的步驟實現不一樣,這些特殊步驟,由子類去重寫就好了。

    廢話不多說了,我們先把父類模板寫好吧,完全一樣的邏輯是記錄日誌,這步在模板寫死就好。至於檢驗參數和查詢,這兩個方法各不相同,因此需要置為抽象方法,由子類去重寫。

    public abstract class AbstractDataSourceProcesser <T extends QueryInputDomain> {
        public List<HashMap> query(T params){
            List<HashMap> list = new ArrayList<>();
            //檢驗參數合法性 不同的引擎sql校驗邏輯不一樣
            Boolean b = checkParam(params);
            if(b){
                //查詢
                list = queryData(params);
            }
            //記錄日誌
            log.info("用戶={} 查詢數據源={} 結果size={}",params.getUserName(),params.getDataSource(),list.size());
            return list;
        }
        //抽象方法 由子類來實現特定邏輯
        abstract Boolean checkParam(T params);
        abstract List<HashMap> queryData(T params);
    }
    

    這段代碼非常簡單。但是為了照顧新手,還是想解釋一個東西:

    T這個玩意。叫泛型,因為不同數據源的入參不一樣,所以我們使用泛型。但是他們也有公共的參數,比如用戶名。因此為了不重複冗餘,更好的利用公共資源,在泛型的設計上,我們可以有一個泛型上限,<T extends QueryInputDomain>

    public class QueryInputDomain<T> {
        public String userName;//查詢用戶名
        public String dataSource;//查詢數據源 比如mysql\tidb等
        public T params;//特定的參數 不同的數據源參數一般不一樣
    }
    public class MysqlQueryInput extends QueryInputDomain{
        private String database;//數據庫
        public String sql;//sql
    }
    
    

    接下來就輪到子類出場了,通過上面的分析,其實也很簡單了,不過是繼承父類,重寫checkParam()和queryData()方法,下面以mysql數據源為例,其他數據源也都一樣的套路:

    @Component("dataSourceProcessor#mysql")
    public class MysqlProcesser extends AbstractDataSourceProcesser<MysqlQueryInput>{
        @Override
        public Boolean checkParam(MysqlQueryInput params) {
            System.out.println("檢驗mysql參數是否準確");
            return true;
        }
    
        @Override
        public List<HashMap> queryData(MysqlQueryInput params) {
            List<HashMap> list = new ArrayList<>();
            System.out.println("開始查詢mysql數據");
            return list;
        }
    }
    

    這樣一來,所有的數據源,都自成一體,擁有一個只屬於自己的類,後續要擴展數據源、或者要修改某個數據源的邏輯,都非常方便和清晰了。

    說實話,模板方法模式太簡單了,抽象類這東西也太基礎普遍了,一般應屆生都會知道的。但是對於初入職場的新人來說,還真不太能果斷應用在實際生產中。因此提醒各位:一定要有一個抽象思維,避免代碼冗餘重複。

    另外,要再啰嗦幾句,即使工作有幾年的工程師也很容易犯一個錯誤。就是把思維局限在今天的需求,比如老闆一開始只給你一個mysql數據源查詢的需求,壓根沒有if-else,可能你就不會放在心上,直接在一個類中寫死,不會考慮到後續的擴展。直到後面越來越多的新需求,你才恍然大悟,要全部重構一番,這樣浪費自己的時間了。因此提醒各位:做需求不要局限於今天,要考慮到未來。 從一開始就做到高擴展性,後續需求變更和維護就非常爽了。

    原創聲明:本文為【胖滾豬學編程】原創博文,轉載請註明出處。以漫畫形式讓編程生動有趣!原創不易,求關注!

    工廠模式來救場

    但是模板模式還是沒有完全解決胖滾豬的if-else,因為需要根據傳進來的dataSource參數,判斷由哪個service來實現查詢邏輯,現在是這麼寫的:

      if(DataSourceEnum.hive.equals(dataSource)){
            list = queryHive(params);
        } else if(DataSourceEnum.tidb.equals(dataSource)){
            list = queryTidb(params);
        }
    
    

    那麼這種if-else應該怎麼去幹掉呢?我想先跟你講講工廠模式的那些故事。

    工廠模式:工廠方法模式是一種創建對象的模式,它被廣泛應用在jdk中以及Spring和Struts框架中。它將創建對象的工作轉移到了工廠類。

    為了呼應一下工廠兩字,我特意舉一個代工廠的例子讓你理解,這樣你應該會有更深刻的印象。

    以手機製造業為例。我們知道有蘋果手機、小米手機等等,每種品牌的手機製造方法必然不相同,我們可以先定義好一個手機標準接口,這個接口有make()方法,然後不同型號的手機都繼承這個接口:

    #Phone類:手機標準規範類(AbstractProduct)
    public interface Phone {
        void make();
    }
    #MiPhone類:製造小米手機(Product1)
    public class MiPhone implements Phone {
        public MiPhone() {
            this.make();
        }
        @Override
        public void make() {
            System.out.println("make xiaomi phone!");
        }
    }
    #IPhone類:製造蘋果手機(Product2)
    public class IPhone implements Phone {
        public IPhone() {
            this.make();
        }
        @Override
        public void make() {
            System.out.println("make iphone!");
        }
    }
    
    

    現在有某手機代工廠:【天霸手機代工廠】。客戶只會告訴該工廠手機型號,就要匹配到不同型號的製作方案,那麼代工廠是怎麼實現的呢?其實也很簡單,簡單工廠模式(還有抽象工廠模式和工廠方法模式,有興趣可以了解下)是這麼實現的:

    #PhoneFactory類:手機代工廠(Factory)
    public class PhoneFactory {
        public Phone makePhone(String phoneType) {
            if(phoneType.equalsIgnoreCase("MiPhone")){
                return new MiPhone();
            }
            else if(phoneType.equalsIgnoreCase("iPhone")) {
                return new IPhone();
            }
        }
    }
    
    

    這樣客戶告訴你手機型號,你就可以調用代工廠類的方法去獲取到對應的手機製造類。你會發現其實也不過是if-else,但是把if-else抽到一個工廠類,由工廠類統一創建對象,對我們的業務代碼無入侵,不管是維護還是美觀上都會好很多。

    首先,我們應該在每個特定的dataSourceProcessor(數據源執行器),比如MysqlProcesser、TidbProcesser中添加spring容器註解@Component。該註解我想應該不用多解釋了吧~重點是:我們可以把不同數據源都搞成類似的bean name,形如dataSourceProcessor#數據源名稱,如下兩段代碼:

    @Component("dataSourceProcessor#mysql")
    public class MysqlProcesser extends AbstractDataSourceProcesser<MysqlQueryInput>{
    @Component("dataSourceProcessor#tidb")
    public class TidbProcesser extends AbstractDataSourceProcesser<TidbQueryInput>{
    

    這樣有什麼好處呢?我可以利用Spring幫我們一次性加載出所有繼承於AbstractDataSourceProcesser的Bean ,形如Map<String, AbstractDataSourceProcesser>,Key是Bean的名稱、而Value則是對應的Bean:

    @Service
    public class QueryDataServiceImpl implements QueryDataService {
        @Resource
        public Map<String, AbstractDataSourceProcesser> dataSourceProcesserMap;
        public static String beanPrefix = "dataSourceProcessor#";
        @Override
        public List<HashMap> queryData(QueryInputDomain domain) {
            AbstractDataSourceProcesser dataSourceProcesser = dataSourceProcesserMap.get(beanPrefix + domain.getDataSource());
            //省略query代碼
        }
    }
    
    

    可能你還是不太理解,我們直接看一下運行效果:

    1、dataSourceProcesserMap內容如下所示,存儲了所有數據源Bean,Key是Bean的名稱、而Value則是對應的Bean:

    2、我只需要通過key(即前綴+數據源名稱=beanName),就能匹配到對應的執行器了。比如當參數dataSource為tidb的時候,key為dataSourceProcessor#tidb,根據key可以直接從dataSourceProcesserMap中獲取到TidbProcesser

    public static String classPrefix = "com.lyl.java.advance.service.";
    
    AbstractDataSourceProcesser sourceGenerator = 
    (AbstractDataSourceProcesser) Class.forName
    (classPrefix+DataSourceEnum.getClasszByCode(domain.getDataSource()))
    .newInstance();
    
    

    需要注意的是,該種方法是通過className來獲取到類的實例,而前端傳參肯定是不會傳className過來的。因此可以用到枚舉類,去定義好不同數據源的類名:

    public enum DataSourceEnum {
        mysql("mysql", "MysqlProcesser"),
        tidb("tidb", "TidbProcesser");
        private String code;
        private String classz;
    

    原創聲明:本文為【胖滾豬學編程】原創博文,轉載請註明出處。以漫畫形式讓編程生動有趣!原創不易,求關注!

    總結

    有些童鞋總覺得設計模式用不上,因為平時寫代碼除了CRUD還是CRUD,面試的時候問你設計模式,你只能回答最簡單的單例模式,問你有沒有用過反射之類的高級特性,回答也是否。

    其實不然,JAVA這23種設計模式,每一個都是經典。今天我們就用模板方法模式+工廠模式(或者反射)解決了讓人崩潰的if-else。後續對於設計模式的學習,也應該多去實踐,從真實的項目中找到用武之地,你才算真正把知識佔為己有了。

    本篇文章的內容和技術點雖然很簡單,但旨在告訴大家應該要有一個很好的代碼抽象思維。杜絕在代碼中出現一大摞if-else或者其他爛代碼。

    即使你有很好的代碼抽象思維,做需求開發的時候,也不要局限於當下,只考慮現在,要多想想未來的擴展性。

    就像你談戀愛一樣,只考慮當下的是渣男,考慮到未來的,才算是一個負責任的人

    “願世界沒有渣男”

    原創聲明:本文為【胖滾豬學編程】原創博文,轉載請註明出處。以漫畫形式讓編程生動有趣!原創不易,求關注!

    本文來源於公眾號:【胖滾豬學編程】。一枚集顏值與才華於一身,不算聰明卻足夠努力的女程序媛。用漫畫形式讓編程so easy and interesting!求關注!

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※教你寫出一流的銷售文案?

  • Nginx 的變量究竟是怎麼一回事?

    之前說了很多關於 Nginx 模塊的內容,還有一部分非常重要的內容,那就是 Nginx 的變量。變量在 Nginx 中可以說無處不在,認識了解這些變量的作用和原理同樣是必要的,下面幾乎囊括了關於 Nginx 的所有變量,單獨看起來可能比較枯燥,放心,後面依然有實戰內容。

    Nginx 變量的運行原理

    圍繞 Nginx 中的變量模塊可以分為兩類,一類是提供變量的模塊,另外一類是使用變量的模塊。

    • 提供變量的模塊
      • 在 Preconfiguration 源代碼中定義變量名以及可以解析出變量的方法
    • 使用變量的模塊
      • 解析 nginx.conf 時定義變量的使用方式

    也就是在 Nginx 啟動時,已經定義了變量,而只有當真正處理請求的時候,才會根據 nginx.conf 解析出來的變量使用方式調用 Preconfiguration 中定義的方法來實際獲取值。

    這也是變量的兩個特性:

    • 惰性求值:只有使用的時候才會去調方法解析
    • 變量值可以時刻變化,其值為使用的那一時刻的值。例如發送響應包體字節數,實際在發送的過程中是一直在變化的。

    除了 Nginx 的模塊之外,Nginx 框架也包含許多的變量,這些變量不需要通過編譯模塊來引入,而且,Nginx 框架所提供的變量往往反映了處理請求的細節,因此,了解 Nginx 框架所提供的變量是十分有必要的。

    HTTP 請求相關的變量

    先來看一下關於 HTTP 請求的相關變量。

    • arg_參數名:URL 中某個具體參數的值

    • query_string:與 args 變量完全相同

    • args:全部 URL 參數

    • is_args:如果請求 URL 中有參數則返回 ?,否則返回空

    • content_length:HTTP 請求中標識包體長度的 Content-Length 頭部的值。如果請求中沒有攜帶這個參數,那麼就取不到對應的值。

    • content_type:標識請求包體類型的 Content-Type 頭部的值。同樣需要用戶請求中攜帶對應的參數。

    • uri:請求的 URI(不同於 URL,不包括 ? 后的參數)

    • document_uri:與 uri 完全相同。由於歷史原因而存在的。

    • request_uri:請求的 URL(包括 URI 以及完整的參數)

    • scheme:協議名,例如 HTTP 或者 HTTPS

    • request_method:請求方法,例如 GET 或者 POST

    • request_length:所有請求內容的大小,包括請求行、頭部、包體等

    • remote_user:由 HTTP Basic Authentication 協議傳入的用戶名

    • request_body_file:很多時候會將用戶請求的包體存放到文件中,這個變量就是臨時存放請求包體的文件

      • 如果包體非常小則不會存文件
      • client_body_in_file_only 指令強制所有包體存入文件,且可決定是否刪除
    • request_body:請求中的包體,這個變量當且僅當使用反向代理,且設定用內存暫存包體時才有效

    • request:原始的 URL 請求,含有方法與協議版本,例如 GET /?a=1&b=22 HTTP/1.1

    • host

      • 先從請求行中獲取
      • 如果含有 Host 頭部,則用其值替換掉請求行中的主機名
      • 如果前兩者都取不到,則使用匹配上的 server_name
    • http_頭部名字:返回一個具體請求頭部的值

      特殊變量,這些變量會做一些處理。

      • http_host
      • http_user_agent
      • http_referer
      • http_via
      • http_x_forwarded_for
      • http_cookie

      通用變量,除了以上的變量,都可以取到對應的值。

    TCP 連接相關的變量

    下面是關於 TCP 連接的變量。

    • binary_remote_addr:客戶端地址的整形格式,對於 IPv4 是 4 字節,對於 IPv6 是 16 字節,所以在 limit_req 和 limit_conn 中通常可以用作 key (詳見:Nginx 處理 HTTP 請求的 11 個階段 中的 preaccess 階段)
    • connection:遞增的連接序號
    • connection_requests:當前連接上執行過的請求數,對 keepalive 連接有意義
    • remote_addr:客戶端地址
    • remote_port:客戶端端口
    • proxy_protocol_addr:若使用了 proxy_protocol 協議,則返回協議中的地址,否則返回空
    • proxy_protocol_port:若使用了 proxy_protocol 協議則返回協議中的端口,否則返回空
    • server_addr:服務端地址
    • server_port:服務器端端口
    • TCP_INFO:TCP 內核層參數,包括 $tcpinfo_rtt, ​$tcpinfo_rttvar,​$tcpinfo_snd_cwnd, $tcpinfo_rcv_space
    • server_protocol:服務器端協議,例如 HTTP/1.1

    Nginx 處理請求過程中產生的變量

    Nginx 處理 HTTP 請求的過程中也會產生很多變量。

    • request_time:請求處理到現在的耗時,單位為秒,精確到毫秒
    • server_name:匹配上請求的 server_name 值
    • https:如果開啟了 TLS/SSL 則返回 on,否則返回空
    • request_completion:若請求處理完則返回 OK,否則返回空
    • request_id:以 16 進制輸出的請求表示 id,該 id 共含有 16 個字節,是隨機生成的
    • request_filename:待訪問文件的完整路徑
    • document_root:由 URI 和 root、alias 規則生成的文件夾路徑
    • realpath_root:將 document_root 中的軟鏈接等換成真實路徑
    • limit_rate:返回客戶端響應時的速度上限,單位為每秒字節數。可以通過 set 指令修改對請求產生的效果

    發送 HTTP 響應時相關的變量

    • body_bytes_sent:響應中 body 包體的長度

    • bytes_sent:全部 http 響應的長度

    • status:http 響應中的返回碼

    • sent_trailer_名字:把響應結尾內容里的值返回

    • sent_http_頭部名字:響應中某個具體頭部的值

      特殊處理,下面這些變量需要經過特殊處理:

      • sent_http_content_type
      • sent_http_content_length
      • sent_http_location
      • sent_http_last_modified
      • sent_http_connection
      • sent_http_keep_alive
      • sent_http_transfer_encoding
      • sent_http_cache_control
      • sent_http_link

      通用:除了上面這些頭部,其他的頭部都是通用型的,也就是可以直接拿來用。

    Nginx 系統變量

    • time_local:以本地時間標準輸出的當前時間,例如 14/Nov/2018:15:55:37 +0800
    • time_iso8601:使用 ISO8601 標準輸出的當前時間,例如 2018-11-14T15:55:37+08:00
    • nginx_version:Nginx 版本號
    • pid:所屬 worker 進程的進程 id
    • pipe:使用了管道則返回 p,否則返回 .
    • hostname:所在服務器的主機名,與 hostname 命令輸出一致
    • msec:1970 年 1 月 1 日到現在的時間,單位為秒,小數點后精確到毫秒

    實戰

    配置文件:

    log_format  vartest  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status bytes_sent=$bytes_sent body_bytes_sent=$body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$sent_http_abc"';
    
    server {
    	server_name var.ziyang.com localhost;
    	#error_log logs/myerror.log debug;
    	access_log logs/vartest.log vartest;
    	listen 9090;
    	
    	location / {
    		set $limit_rate 10k;
            # return 200; tcpinfo: $tcpinfo_rtt,$tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space 
    		return 200 '
    arg_a: $arg_a,arg_b: $arg_b,args: $args
    connection: $connection,connection_requests: $connection_requests
    cookie_a: $cookie_a
    uri: $uri,document_uri: $document_uri, request_uri: $request_uri
    request: $request
    request_id: $request_id
    server: $server_addr,$server_name,$server_port,$server_protocol
                
    host: $host,server_name: $server_name,http_host: $http_host
    limit_rate: $limit_rate
    hostname: $hostname
    content_length: $content_length
    status: $status
    body_bytes_sent: $body_bytes_sent,bytes_sent: $bytes_sent
    time: $request_time,$msec,$time_iso8601,$time_local
    ';
    	}	
    }
    

    從上面這個配置文件中,我們可以看出來,返回的響應裡面包含了一系列的變量,實際驗證一下:

      test_nginx curl -H 'Content-Length: 0' -H 'Cookie: a=c1' 'localhost:9090?a=1&b=22'
    
    arg_a: 1,arg_b: 22,args: a=1&b=22
    connection: 2,connection_requests: 1
    cookie_a: c1
    uri: /,document_uri: /, request_uri: /?a=1&b=22
    request: GET /?a=1&b=22 HTTP/1.1
    request_id: 5d40b1ff29d2b87d5db5c4f95ebf5e4d
    server: 127.0.0.1,var.ziyang.com,9090,HTTP/1.1
    host: localhost,server_name: var.ziyang.com,http_host: localhost:9090
    limit_rate: 10240
    hostname: yuanzizhen.local
    content_length: 0
    status: 200
    body_bytes_sent: 0,bytes_sent: 0
    time: 0.000,1590842354.866,2020-05-30T20:39:14+08:00,30/May/2020:20:39:14 +0800
    

    大家可以對比一下響應和配置文件中的值是不是一一對應的,更加深刻的理解一下變量的含義。

    好了,這一節咱們學習了。關於 Nginx 的變量就講完了,下一節講一下實際應用變量的兩個模塊,大家會有更深刻的理解。

    本文首發於我的個人博客:iziyang.github.io,所有配置文件我已經放在了 Nginx 配置文件,大家可以自取。

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

    ※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

    南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

    ※教你寫出一流的銷售文案?

    ※超省錢租車方案