標籤: 潭子電動車

  • 豪華新標杆 這台又新又帥的合資SUV讓奔馳寶馬震驚了

    豪華新標杆 這台又新又帥的合資SUV讓奔馳寶馬震驚了

    看起來漂亮些嗎。我告訴他,是性能。性能是一台豪車最內在的地方,而豪車之間差距最大的則在於動力系統和科技水平,比如說XT5的2。0T發動機動力強大198KW/400牛米,這樣的強大動力推動XT5動力綽綽有餘,而同級別的奧迪Q5僅為169kw,奔馳GLC更是僅有135kw。

    目前的中國豪車市場上,奧迪Q5和寶馬X3車型偏老,遲遲未換代的尷尬一直存在,老舊的設計以及技術平台使得它們的性能表現差強人意,而GLC雖然新上市,但是加價過高,性價比比較低。

    但是XT5的出現打破了這種局面,XT5一經上市便引爆市場,銷量超過了德系老將寶馬X3,XT5的到來為這個市場吹進了一股新風,而XT5出現之後,其他的產品似乎變得黯淡無光,而在小編看來XT5也確實是這個價位最值得推薦的SUV車型。為什麼呢?

    龐大尺寸 有容乃大

    外觀設計是豪華SUV的消費者十分注重的一個方面,一個氣派的造型設計很大程度上決定了它的成功與否,而XT5的外觀設計十分有特點,氣派不失時尚。4812*1903*1685也全面碾壓BBA車型。4813mm的長度是什麼概念呢?百萬級SUV奔馳GLE長度也不過是4813mm而已。花一台GLC的錢買一台GLE級別的SUV,你說划不划算呢?

    而大尺寸帶來的最直接的好處就是大空間,XT5的空間表現十分驚人。相比之下奧迪Q5/奔馳GLC表現就相形見絀了。得益於2857mm的超長軸距,XT5的內部乘坐空間十分寬敞,每個乘客擁有的都不止是一席之地。

    而且XT5的裝載空間也十分巨大,XT5在常規狀態下行李箱容積便已經達到了584升,而放倒後排座椅之後容積更是高達1634升,相當於一部廂式小貨車的空間了,不過還不止如此。XT5有着多種車內空間的組合方式,支持4/6比例放倒的後排座椅可以靈活兼顧坐人和拉貨的需求,空間靈活性做得十分優秀。

    反觀對手奧迪Q5和奔馳GLC的裝載空間,奧迪Q5的行李箱容積為540升,軸距也僅為2807mm,而奔馳GLC甚至都沒有公開它的尾箱容積數據。

    澎湃動力 智能四驅

    有人問我豪車和普通車型差別到底在哪?看起來漂亮些嗎?我告訴他,是性能。

    性能是一台豪車最內在的地方,而豪車之間差距最大的則在於動力系統和科技水平,比如說XT5的2.0T發動機動力強大198KW/400牛米,這樣的強大動力推動XT5動力綽綽有餘,而同級別的奧迪Q5僅為169kw,奔馳GLC更是僅有135kw。在動力上的差距就尤其明顯了。

    再比如XT5的智能雙離合適時四驅系統使得車輛的動力能夠在前後軸之間實現0~100%的扭矩分配,在運動和經濟以及通過性上取得完美均衡。為什麼前後軸的0~100%扭矩分配這麼重要呢?車輛在不同狀態下前後軸需要的動力是不一樣的,比如在山路就需要把更多動力分配給後輪,提高操控靈活性;在雪地就需要更多的實現前後50:50的動力分配來保證穩定性,而在高速則可以變成前驅車達到節油目的,XT5的四驅系統就能夠實現0~100%的扭矩分配。

    而奔馳GLC的4matci四驅系統和奧迪Q5的quattro四驅系統屬於全時四驅,不管在什麼狀態下都是四驅,而我們日常使用實際上是用不到四輪驅動的,而四驅會帶來高油耗,因此奔馳/奧迪的全時四驅車型能夠省油嗎?

    如果你說你只看四驅系統實力不在乎油耗,奧迪能打敗XT5嗎?不能!奧迪Q5的quattro四驅系統最多只能將85%的動力傳遞給後輪,前輪最多也只能接受70%的動力,相比XT5來說,弱爆了~

    總結:

    為什麼XT5的性價比/性能會如此突出呢?眾所周知BBA在中國的價格一直虛高,花了40萬隻能買到30萬的品質,但是許多人對BBA盲目追捧,即使是X3這樣的老產品也能有春天,而這些價格虛高的產品也一定程度上凸顯了XT5的性價比,因而一直保持高裝備水平的XT5的也就更加顯得划算了。

    XT5的出現是必然,豪華SUV市場就應該是百花齊放的,而配置高動力強勁內外裝備也足夠奢華的XT5獲得成功是必然,XT5的出現為豪華SUV市場樹立了一個新的標杆,使用最具性價比的價格打造一檯面面俱到的優秀SUV,到目前也只有凱迪拉克XT5做到了。動力性和空間上的優勢是德系豪車無法相比的,想要追上XT5,德系還需要再換一次代才行!本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

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

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

    ※想知道最厲害的網頁設計公司"嚨底家"!

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

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

    ※回頭車貨運收費標準

    台中搬家公司費用怎麼算?

  • 同樣是傳祺的SUV,為啥大家都愛GS4不買GS5?真是GS5不好嗎?

    同樣是傳祺的SUV,為啥大家都愛GS4不買GS5?真是GS5不好嗎?

    那就是如今傳祺非常紅火的GS4車型了,它較低的起步價更加的親民。而時尚的外觀與內飾設計配合一樣出色的底盤,因此它熱銷就不難想象了。就現在來看,傳祺GS5真的不值得購買么。今天就來好好對比下,看看它們哪款比較出色。

    國產SUV在最近這幾年發力非常猛,大有超過日韓SUV的氣勢。究其原因是自主品牌經過多年的技術積累,同時堅持正向研發配合大量的資金投入的基礎下的成果。而且如今的自主廠商也漸漸的意識到只有原創的設計,符合大眾的審美的車型才能在激烈競爭的市場上生存下來。

    回顧前幾年的SUV市場,當然合資品牌還沒有很多SUV車型推出。因此當然也有一些自主品牌看中了合資品牌沒有佔領了15萬這個區間的緊湊SUV市場,於是推出一些實力還算比較出色的SUV車型來提升自家的品牌形象,其中傳祺GS5 Super就是最突出的例子。它的外觀原創度很高,整體的底盤調校與做工都非常出色,無奈是當時由於定價的偏高與消費者對自主SUV的認可還沒有現在這麼深,於是它的市場表現一直不算很出色。

    雖然GS5 Super有點出師不利,但它前期推出市場還是有不少的消費者購買的,它出色的做工與良好的底盤響應都使得傳祺在市場上有了不錯的口碑,於是就有了後來的事情了。那就是如今傳祺非常紅火的GS4車型了,它較低的起步價更加的親民。而時尚的外觀與內飾設計配合一樣出色的底盤,因此它熱銷就不難想象了。就現在來看,傳祺GS5真的不值得購買么?今天就來好好對比下,看看它們哪款比較出色?

    綜上所述,目前的GS5 Super相比GS4除了動力有一定的優勢之外,它的價格仍然是一大硬傷,當然如今消費者對傳祺的認可已經很不錯了,就像其最新推出的GS8一樣,只要品質足夠的出色,熱銷真的不是問題。

    那麼未來GS5 Super要怎麼才能重新煥發青春呢?在看來,如今最亟待改變的就是換裝全新的家族式面孔,與傳祺的其他車型有良好的延續,同時內飾的造型與配置都要相應的提升,這樣只要保持之前的行駛質感的話再把價格降低一些。這樣的話,相信GS5 Super要熱賣真的不成問題。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

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

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

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

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

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

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

    ※回頭車貨運收費標準

  • 02 . Zabbix配置監控項及聚合圖形

    02 . Zabbix配置監控項及聚合圖形

    安裝Zabbix Agent監控本機

    安裝agent軟件

    與server端不同,Agent只需安裝zabbix-agent包

    cat /etc/yum.repos.d/zabbix.repo 
    [zabbix]
    name=Zabbix Official Repository - $basearch
    baseurl=https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
     
    [zabbix-non-supported]
    name=Zabbix Official Repository non-supported - $basearch
    baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
    gpgcheck=1
    
    
    curl https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 -o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
    curl https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX -o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
    
    yum -y install zabbix-agent zabbix-get
    
    配置Agent並啟動
    vim /etc/zabbix/zabbix_agentd.conf
    Server=39.108.140.0                    # 被動模式 zabbix-server-ip
    ServerActive=39.108.140.0              # 主動模式 zabbix-server-ip
    Hostname=You-Men                       # Agent端主機名,最終显示在監控頁面上的名字
    UnsafeUserParameters=1                 # 是否限制用戶自定義keys使用特殊字符
    
    systemctl restart zabbix-agent
    netstat -antp|grep agent
    tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      3898/zabbix_agentd  
    tcp6       0      0 :::10050                :::*                    LISTEN      3898/zabbix_agentd
    
    配置snmp(可以不做)

    zabbix除了可以使用agent獲取數據之外,還可以通過snmp獲取數據,為了能夠讓zabbix監控更多的信息,將本機的snmp功能啟動起來.

    yum -y install net-snmp net-snmp-utils
    vim /etc/snmp/snmpd.conf
    com2sec notConfigUser 39.108.140.0 public
    access notConfigGroup "" any noauth exact all none none
    view all included .1 80
    systemctl restart snmpd && systemctl enabel snmpd
    ss -anup |grep snmp        # 161端口,udp協議
    # 測試snmp協議工作是否正常
    # snmpwalk -v 1 -c public 39.108.140.0   .1.3.6
    # 使用v1版本,共同體為public,來對192.168.0.1的.1.3.6分支進行walk。
    
    snmpwalk -v 2c -c public 39.108.140.0
    # 使用v2c版本,共同體為public,對39.108.140.0進行walk。
    # -v        显示當前SNMPWALK命令行版本.
    # -
    # 獲取cisco設備39.108.140.0的接口類型
    

    接下來我們到web界面上配置如何監控本地主機,我們看到接口上是127.0.0.1,但是我們配置文件寫的是39.108.140.0,我們讓這兩個IP一致.點擊3進去然後修改.

    更新完后,跳到下面頁面,稍等一會,重新載入一下頁面就是可用性為綠色了

    至此,監控本地主機就完成了,如果想看下監控本地主機的網卡流量就做下面圖2步驟.鼠標依次根據数字挨個點,如果想要監控項是中文的話,可以做Zabbix故障例一,但是4.4版本較以前版本有所改善,監控項不是亂碼,而是英文.

    如果想要將這種亂碼換成正常中文

    如果是windows在C盤搜索simkai.tff中文楷體,拷貝/上傳到服務器,然後cp到zabbix的字體目錄
    3.*版本:
    cp  /root/simkai.ttf   /usr/share/zabbix/fonts/
    
    # 不同的安裝方式,路徑會有所不同,所以可以直接find / -type d -type fonts找到類似的文件夾,那就是了
    # 注意字體權限問題
    vim /usr/share/zabbix/include/defines.inc.php
        define('ZBX_GRAPH_FONT_NAME',    'simkai');
        define('ZBX_FONT_NAME',            'simkai');
    

    Zabbix監控遠程主機

    如果遠程主機安裝不上zabbix-agent,可以通過裝的上的zabbix-agent的機器把包傳過去

    yum -y instlal yum-utils
    # 下載到指定目錄
    yum install zabbix-agent -y --downloadonly --downloaddir=/root
    1.安裝zabbix agent
        # 方法一(國外源zabbix好像下載不下來包了,用上面的源):
        # rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
        yum clean all
        yum -y install zabbix-agent
        # 方法二:(使用別的機器傳過來的zabbix-agent包直接rpm安裝即可)
        rpm -ivh zabbix-agent-4.4.1-1.el7.x86_64.rpm
    
    # 修改zabbix-agent配置並啟動服務
    
        vim /etc/zabbix/zabbix_agentd.conf
        Server=192.168.244.144
        Server=192.168.244.144            //監控主機IP地址
        Hostname=agent1.zabbix.com        //被監控主機到監控主機的名字
        UnsafeUserParameters=1
    
        systemctl start zabbix-agent
        ss -antp |grep 10050
    # 接下來我們到web端進行操作
    # 為了服務方便管理和易於查看。
    # 監控系統中往往根據被監控的主機角色或其他屬性將同類主機劃分到同一個主機組中.
    

    如果等上一段時間,可用性哪裡沒有紅色警告,就說明這台主機被添加進來了,但是因為沒有掛載模板和創建監控項,所以我們接下來嘗試着掛載一下模板,然後再去創建監控項.

    我們到agent端裝一個nginx,然後去zabbix的web端找到此模板並掛載.

    yum -y install nginx
    systemctl start nginx
    

    測試監控主機

    接下來我們用瀏覽器或者elinks訪問一下nginx,產生一些數據,然後去zabbix上查看變化

    elinks --dump 116.196.83.113
    

    我們以後自定義Key監控項時,先看看最新數據有沒有數據過來,如果數據都不會過來,就別提圖形觸發器報警什麼了.

    至此,添加本地主機,遠程主機,創建主機組,掛載模板就已經完了

    Zabbix監控項

    監控項(Items)簡介

    監控項是Zabbix中獲得數據的基礎,沒有監控項,就沒有數據——因為一個主機只有監控項定義了單一的指標或者需要獲得的數據,監控項適用於採集數據的,多個同類的監控項可以定義成一個應用集,如,mysql增刪改查以及每秒鐘的讀表,寫錶速度可以寫成一個Mysql應用集.

    對於監控項的示例,需要輸入以下必要的信息

    名稱

    輸入CPU Load作為值,在列表中和其他地方,都會显示這個值作為監控項名稱.

    手動輸入system.cpu.load作為值,這是監控項的一個技術上的名稱,用於識別獲取信息的類型,這個特定值需要是Zabbix Agent預定義值的一種.
    https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/zabbix_agent # 此網址就是zabbix官網的預定義值.

    信息類型

    在此處選擇Numeric(float),這個屬性定義了獲得數據的格式
    你也需要減少監控項歷史保留的天數,7或者14天,對於數據庫而言,最佳實踐是避免數據庫保留過多的歷史數據.
    我們選擇了數據類型后,暫時保持其他選項的默認值.
    1> 磁盤容量Units一般為B
    2> 網卡流量單位為bps
    3> Mysql每秒訪問量qps,例如MySQL每秒select,insert Mysql serlect

    點擊添加,新的監控項就出現在監控項列表中了

    查看數據

    當一個監控項定義完成后,你可能好奇他具體獲取了什麼值,前往監控首頁,點擊最新數據,選擇相應的主機.看數據能不能過來以及是不是自己想要的類型.

    圖表

    當監控項運行了一段時間后,可以查看可視化圖表,如果沒有可以自己創建一個,下面會有詳細介紹

    常用監控項

    1.服務器網絡接口進出流量和總流量
        net.if.in[if,<mode>]
        net.if.out[if,<mode>]
        net.if.total[if,<mode>]
    
    2.服務器啟動分區剩餘空間
        vfs.fs.size[fs,<mode>]
        vfs.fs.size[/boot,free]
    
    3.監控虛擬機內存
        vm.memory.size[<mode>]
        vm.memory.size[total
        vm.memory.size[free]
        vm.memory.size[wired]
    
    4.服務器服務狀態
        net.tcp.listen[port]
        net.tcp.port[<ip>,port]
        net.tcp.service[service,<ip>,<port>]
        net.tcp.service.perf[service,<ip>,<port>]
    
    5.服務器進程數量
            proc.num[<name>,<user>,<state>,<cmdine>]
            zabbix_get -s 39.108.140.0 -k proc.num
        121
        zabbix_get -s 39.108.140.0 -k proc.num[,,run]
        3
        zabbix_get -s 39.108.140.0 -k proc.num[,,sleep]
        118
    
    6.服務器CPU狀態(浮點型,無單位)    
        system.cpu.intr
        system.cpu.load[<cpu>,<mode>]
        system.cpu.num
        system.cpu.switches
        system.cpu.util[<cpu>,<type>,<mode>]
        zabbix_get -s 39.108.140.0 -k system.cpu.load[all,avg1]
        0.000000
        zabbix_get -s 39.108.140.0 -k system.cpu.load[,avg5]
        0.010000
    
    7.磁盤IO情況
        vfs.dev.read[device,<type>,<mode>]
        vfs.dev.write[device,<type>,<mode>]
    zabbix_get -s 39.108.140.0 -k vfs.dev.read[/dev/vda1]
    
    8.監控文件修改
        vfs.file.chsum[file]        # 如監控/etc/passwd ,/etc/group 文件從而知道是否有新用戶創建
        vfs.file.md5sum[file]
        vfs.file.size[file]        # 通常用來監控日誌
        vfs.fs.size[fs,<mode>]
    
    9.磁盤總和.
    
    監控網卡流量

    我們先創建一個應用集,這樣的話之後創建的網卡上傳,下載,總流量不會顯的很亂,都在一個Network應用集裏面,而且能導出成xml文件,放到其他的zabbxi主機上能直接用.

    我們此刻做的創建監控項是利用zabbix安裝好自帶的監控項,跟自定義Key差不多,都是寫一個監控腳本然後傳參,每一個鍵值相當於一個監控腳本

    接下來我們檢測---> 主機群組裡面去查看下最新數據,我們可以從下圖看到是有數據的

    下行寬帶和上行寬帶.

    下載就是in,下行寬帶,你發出去的就是out,作為一個服務器來說上行寬帶肯定要高,在家裡就是下行寬帶高,對服務器來說他需要接收很少的數據包,回復很多的數據包,而在家裡我們是發出去一個很小的數據包,返回來整個網頁.

    接下來我們再去創建一個網卡輸出流量,然後將他們做成一個圖標,以圖形化展示出來

    接下來我們再去監測裏面去查看最新數據,可以養成這個習慣,因為最新數據過來了才是說明當中數據流向沒有問題,如果數據都沒有過來你去創建圖形,圖表說沒有數據,你覺得得等一會,浪費時間影響效率

    可以看到,兩個監控項都是有數據的,接下來我們去創建圖形

    接下來我們去查看監測 ---> 圖形,選擇相應群組,相應的主機及創建的圖形

    這台主機可以裝一個nginx,然後上傳一張大一點圖片到網站根目錄,然後訪問,再查看網絡波動圖.

    或者我們直接上傳一個大點的rpm、tar包到其他主機.這樣看着明顯

    監控CPU

    跟剛才一樣,創建一個CPU應用集,方便管理歸納

    接下來我們創建應用集的監控項,cpuintr,cpu中斷數

    接下來我們創建一個cpu每隔一分鐘的負載監控項
    通過下圖,我們可以看到,每個監控項都是有數據過來的,接下來我們去創建圖形

    我們可以看到,數據是可以實時轉換成圖標的,接下來我們去做一個聚合圖形

    創建聚合圖形

    至此,我們第一個構造函數完成,另外一個構造函數同理,此處就不寫了,直接看結果圖.

    創建系統定義好的監控項,跟上面兩個都差不多,多做做自然就會了,如果不習慣使用官方定義好的key,我們可以根據公司環境自己寫腳本自定義key,此章完結.

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

    【其他文章推薦】

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

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

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

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

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

    ※回頭車貨運收費標準

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

  • 要是明年別克將這車國產 告訴我你買不買賬?

    要是明年別克將這車國產 告訴我你買不買賬?

    基於輕量化平台打造后,新君威不僅車重減輕,車身和軸距都相應加長了55mm和92mm,加上車尾採用的溜背設計,未來新君威的後排空間必定提升不少。新君威在未來也有望搭載1。5T/2。0T發動機,其中1。5T車型極有可能搭載7速雙離合變速箱。

    相信大家對別克君威都不陌生,這輛中級轎車從以前主打舒適穩重的風格向後期年輕化的運動范轉變。而最近它的姊妹車歐寶Insignia實車也亮相了,新一代君威的外觀基本會與其相同。

    可能很多人已經淡忘了歐寶這個品牌,實際上作為通用旗下的子品牌,歐寶、別克和沃克斯豪爾(Vaxuhall)都存在着換標車型。同一款車彼此換上不同的logo,在不同的國家地區發售。

    而歐寶Insignia所對應的車型分別是別克的君威和霍頓的Commodore(沒錯,霍頓同樣是通用的子品牌)。這輛未來的新君威走了略帶豪華的運動風格,不論是前臉還是腰線的設計都顯得非常運動,只不過到時進來國產的時候,外觀肯定會有一些調整,而這款Insignia則有可能在明年日內瓦車展發布,而新君威則有望在明年國產。

    基於輕量化平台打造后,新君威不僅車重減輕,車身和軸距都相應加長了55mm和92mm,加上車尾採用的溜背設計,未來新君威的後排空間必定提升不少。

    新君威在未來也有望搭載1.5T/2.0T發動機,其中1.5T車型極有可能搭載7速雙離合變速箱。只不過在國內眾多消費者對於別克的變速箱印象都很一般,未來國產車型還是得要多花點心思好好調整下了。

    本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

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

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

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

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

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

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

    ※回頭車貨運收費標準

  • 為什麼阿里巴巴Java開發手冊中不允許魔法值出現在代碼中?

    為什麼阿里巴巴Java開發手冊中不允許魔法值出現在代碼中?

    在閱讀《阿里巴巴Java開發手冊》時,發現有一條關於關於常量定義的規約,具體內容如下:

    圖中的反例是將數據緩存起來,並使用魔法值加鏈路 id 組成 key,這就可能會出現其他開發人員在複製粘貼的時候,少複製 _ 的情況發生,這種錯誤很難去檢查到,因為讀取緩存不存在,可能會去數據庫讀取,很難察覺到。

    如果在生產環境中,大量的請求進來,緩存全部失效,直接請求數據庫,導致數據庫連接過多,查詢效率變低的問題發生,因此看來魔法值確實應該避免出現在代碼中。

    另外在 《Clean Code》 和 《重構》 等書中也提到了類似的問題,在代碼中出現原始形態数字通常來說是壞現象,應該用命名良好的常量類隱藏它。

    靜態常量取代魔法值

    像下面這個例子:

    if (billCount > 75) {
        //todo
    } else {
        //todo
    }
    

    如果在不了解這塊的業務的同事,在讀到這塊代碼的時候,可能會想,75 是什麼鬼,為啥和這個數比較,背後深藏着什麼秘密嗎?可能只有當時的開發人員記得了,導致代碼可讀性和可維護性極差。

    如果聲明一個常量,來替換該魔法值,可能就會使代碼的可讀性和可維護性大大增加。

    static final Integer BASIC_BILL_COUNT = 75;
    

    還有些魔法表達式,比如:

    if (value > 60 && value <= 80 && type = 1) {
        // todo
    }
    

    比如這個表達式是表示狀態為正常且項目活躍,就可以定義:

    boolean isActiveProject = value > 60 && value <= 80 && type = 1;
    

    這樣是不是可讀性就提高了,一眼就可以看出來這塊代碼的邏輯。

    枚舉類取代魔法值

    還有一種消除魔法值的方式是使用枚舉類代替,下面讓我們舉個例子:

    if (eventId == 1) {
        System.out.println("睡覺");
    } else if (eventId == 2) {
        System.out.println("吃飯");
    } else if (eventId == 3) {
        System.out.println("打豆豆");
    }
    

    如上代碼是針對事件 id 去執行相應的事件,如果事件比較少,大家還可以勉強記住每個 eventId 對應的含義,但是隨着事件 id 的增多,很可能會發生,新來的員工把事件 id 給搞混了,導致執行錯誤的事件,發生 bug。

    那麼我們可以使用枚舉類來表示相應的事件:

    public enum EventEnum {
    
        /**
         * 睡覺
         */
        SLEEP_EVENT(1, "睡覺"),
    
        /**
         * 吃飯
         */
        EAT_EVENT(2, "吃飯"),
    
        /**
         * 打豆豆
         */
        FIGHT_PEA_EVENT(3, "打豆豆");
    
        private int eventId;
        private String desc;
    
        EventEnum(int eventId, String desc) {
            this.eventId = eventId;
            this.desc = desc;
        }
    
        public int getEventId() {
            return eventId;
        }
    
        public String getDesc() {
            return desc;
        }
    }
    

    修改完之後的代碼如下:

    if (eventId == EventEnum.SLEEP_EVENT.getEventId()) {
        System.out.println("睡覺");
    } else if (eventId == EventEnum.EAT_EVENT.getEventId()) {
        System.out.println("吃飯");
    } else if (eventId == EventEnum.FIGHT_PEA_EVENT.getEventId()) {
        System.out.println("打豆豆");
    }
    

    是不是可讀性急劇提升,還不快看看自己代碼中有沒有這樣的魔法值出現,有的話趕緊改造起來。

    還有如果你需要在不同的地點引用同一數值,魔法數會讓你煩惱不已,因為一旦這些数字發生改變,就必須在程序中找到所有的魔法值,並將它們全部修改一遍,這樣就太費時費力了。

    其實不只是 Java 不應該在代碼中使用魔法值,其他語言亦是如此。

    總結

    本文主要介紹了為什麼不允許在代碼中出現魔法值以及如何將代碼中已有的魔法值去除掉。

    代碼可讀性還是比較重要的,你肯定不希望別人在接手你的代碼的時候,罵到這数字啥意思,這代碼寫得跟粑粑一樣。

    最好的關係就是互相成就,大家的在看、轉發、留言三連就是我創作的最大動力。

    參考

    《Java開發手冊》泰山版

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

    【其他文章推薦】

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

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

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

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

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

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

    ※回頭車貨運收費標準

  • 只賣11萬起的大氣 好開大三廂家轎 為何油耗還低?

    只賣11萬起的大氣 好開大三廂家轎 為何油耗還低?

    但是,凌派的百公里加速時間約為10。05秒。其實在同級別中是屬於比較快的車型了,它的動力匹配得比較完善。轉向採用的是電動助力,手感輕盈,所以在日常開的時候,能給你輕鬆、好開的感覺。懸架調校比較中性,在舒適性和支撐性方面表現綜合。

    如果您想買一輛10萬左右、空間、動力、外觀設計都表現不錯的合資緊湊型車的話,來自廣汽本田的凌派是一個不錯的選擇!

    如今2016款的凌派採用的是CVT無級變速箱,其實在這款車型剛推出的時候,編者就已經深入試駕過它。今天我們就一起來聊聊這款車的駕駛感受吧!

    廣汽本田-凌派

    指導價:10.98-14.98萬

    我覺得凌派的外觀設計極力地營造出大氣、氣派的感覺。而這種感覺的營造是比較成功的,包括中網誇張的大嘴、粗壯的鍍鉻飾條、加入LED光源的大燈等。

    動力總成

    凌派搭載的是R18系列的發動機,代號為R18ZH,採用了本田特有的i-VTEC技術,最大功率136馬力,峰值扭矩169牛米/4300轉。採用了多點電噴的供油方式。

    變速箱採用的是本田自主研發的CVT變速箱,帶有S擋(運動模式)。底盤方面,它採用前麥弗遜式獨立懸架、后扭力梁式非獨立懸架。

    駕駛起來如何?

    首先,進入到車內,黑色的內飾給人的感覺比較年輕、動感。方向盤的握感不錯,而且多功能按鍵布局簡約,使用起來方便。

    凌派的油門響應靈敏,1.8L發動機也有着不錯的低扭輸出,所以每次起步動力都比較充足。

    動力響應性是不錯的,而CVT變速箱讓動力輸出均勻、持續。但是由於不像AT那樣每次換擋都帶有鏗鏘感,所以總會讓人有“動力不夠強”的錯覺。

    但是,凌派的百公里加速時間約為10.05秒!其實在同級別中是屬於比較快的車型了,它的動力匹配得比較完善。

    轉向採用的是電動助力,手感輕盈,所以在日常開的時候,能給你輕鬆、好開的感覺。懸架調校比較中性,在舒適性和支撐性方面表現綜合。

    油耗怎樣?

    1.8L自動擋車型車主口碑油耗:7.7L/100km

    1.8L手動擋車型車主口碑油耗:7.4L/100km

    CVT變速箱的加入讓凌派的油耗表現不錯,畢竟它採用的是1.8L的自然吸氣發動機。

    競爭對手:

    上汽大眾-朗逸

    指導價:10.99-15.99萬

    凌派的對手很多,因為國內的A級車市場戰火紛飛。而凌派的優惠幅度沒有朗逸、軒逸那麼大。不過凌派的動力總成表現有一定優勢!

    編者語:

    其實凌派的性價比挺高,不錯的配置、充足的空間、動力總成也表現給力。它並不是主打駕控,但是作為一輛家用車來說,還是很給力的。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

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

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

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

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

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

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

    ※回頭車貨運收費標準

  • 俄羅斯計畫2032年前清除七艘廢棄核潛艦

    摘錄自2020年7月14日自由時報報導

    為解決海域核污染問題,俄羅斯正在設計建造能夠打撈沉沒在大海中的核動力潛艦,整個工作預計要進行到2032年。

    《Defense World》報導,在第23屆俄羅斯-挪威聯合委員會會議中,改善核能與輻射安全成為主要議題。俄羅斯計畫清除七艘沉沒在北極海域的核潛艇,「K-159」和「K-27」從打撈到拆解預計各自花費四年時間,分別為2025至2028年、2028至2031年,另外5艘則在2029至2032年完成。

    報導指出,在1990年代,超過100艘除役的核潛艇被放置在九個不同地點,目前有兩個地點的核潛艇已被清除,自2004年起,放射性廢料減少了一半以上,從1110萬居禮下降至509萬居禮。

    能源轉型
    國際新聞
    俄羅斯
    核子潛艦
    核污染
    核能

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

    【其他文章推薦】

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

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

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

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

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

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

    ※回頭車貨運收費標準

  • 昆蟲間諜要出現了?美研發出可由甲蟲搭載的微型攝影機

    摘錄自2020年7月19日自由時報報導

    用昆蟲機器人監控敵方行動不再是電影畫面了!美國華盛頓大學研發出微型攝影機,搭載在甲蟲上可將其拍攝的畫面傳送到智慧型手機裡,相關研究已刊載在Science Robotics期刊上。

    據《BBC》報導,這款微型攝影機整個裝置的重量只有250毫克,是紙牌重量的10%左右。它安裝在可以左右移動的機械臂上,因此可以掃描環境以獲得全景圖像。為了節省電量,研究人員將攝影機改裝成只有在甲蟲移動時才會啟動,如此一來充滿電後可運作六個小時。實驗結束後甲蟲沒有受到傷害,至少再活了一年。

    研究團隊透過這次的實驗,製作了如同昆蟲大小的攝影機機器人,其透過振動的方式進行移動,每秒約可前進3公分。研發團隊也坦承微型攝影機機器人可能會引發新的監控問題,不過他們認為更重要的是把這件事放在公共領域進行討論,以便讓人們意識到其中的風險並得到解決方案。

    生物多樣性
    國際新聞
    美國
    動物福利
    經濟動物

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

    【其他文章推薦】

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

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

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

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

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

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

  • Java I/O模型及其底層原理

    Java I/O模型及其底層原理

      Java I/O是Java基礎之一,在面試中也比較常見,在這裏我們嘗試通過這篇文章闡述Java I/O的基礎概念,幫助大家更好的理解Java I/O。
      在剛開始學習Java I/O時,我很迷惑,因為網上絕大多數的文章都是講解Linux網絡I/O模型的,那時我總是搞不明白和Java I/O的關係。後來查了看了好多,才明白Java I/O的原理是以Linux網絡I/O模型為基礎的,理解了Linux網絡I/O模型再學習Java I/O就很方便了,所以這篇文章,我們先來了解I/O的基本概念,再學習Linux網絡I/O模型,最後再看Java中的幾種I/O。

    什麼是I/O?

      I/O是Input、Output的縮寫,即對應計算機中的輸入輸出,以一次文件讀取為例,我們需要將磁盤上的數據讀取到用戶空間,那麼這次數據轉移操作其實就是一次I/O操作,更具體的說是一次文件I/O。我們瀏覽網頁,其中在請求一個網頁時,服務器通過網絡把數據發送給我們,此時程序將數據從TCP緩衝區複製到用戶空間,那麼這次數據轉移操作其實也是一次I/O操作,更具體的說是一次網絡I/O。I/O到處都在,十分重要,Java對I/O對底層操作系統的各種I/O模型進行了封裝,使我們可以輕鬆開發。

    Linux網絡I/O模型

      根據UNIX網絡編程對I/O模型的分類,UNIX提供了5種I/O模型,分別是:阻塞I/O(Blocking I/O)、非阻塞I/O(Non-Blacking I/O)、I/O多路復用模型(I/O Multiplexing)、信號驅動式I/O(Signal Driven I/O)、異步I/O(Asynchronous I/O)。我們逐步了解一下其基本原理。

    阻塞I/O(Blocking I/O)

      阻塞I/O是最早最基礎的I/O模型,其在讀寫數據過程中會阻塞。通過下圖我們可以看到,當用戶進程調用了recvfrom這個系統調用后,內核開始第一階段的數據準備工作,直到內核等待數據準備完成,然後開始第二階段的將數據從內核複製到用戶空間的工作,最後內核返回結果。整個過程中用戶進程都是阻塞的,直到最後返回結果后才接觸阻塞block狀態。阻塞I/O模型適用於併發量小且對時延不敏感的系統。

    非阻塞I/O(Non-Blacking I/O)

      當用戶進程調用recvfrom這個系統調用后,如果內核尚未準備好數據,此時不再阻塞用戶進程,而是立即返回一個EWOULDBLOCK錯誤。用戶進程會不斷髮起系統調用直到內核中數據被準備好(輪詢),此時將執行第二階段的將數據從內核複製到用戶空間的工作,然後內核返回結果。非阻塞I/O模型不斷地輪詢往往需要耗費大量cpu時間。

    I/O多路復用模型(I/O Multiplexing)

      I/O多路復用的優點在於單個進程可以同時處理多個網絡連接的I/O,其基本原理就是select/epoll函數可以不斷的輪詢其負責的所有socket,當某個socket有數據到達時,就通知用戶進程。
      如下圖所示,當用戶進程調用select函數時,整個進程會被阻塞block住,但是這裏的阻塞不是被socket I/O阻塞,而是被select這個函數阻塞。同時內核會監聽改select負責的所有socket(這裏的socket一般設置為non-blocking),當任何一個socket中的數據準備好時,select就會返回給用戶進程,這時候用戶進程再此發起一個系統調用,將數據從內核複製到用戶空間,並返回結果。
      對比I/O多路復用模型和阻塞I/O模型的流程,多路復用多了一個系統調用來完成select環節,除此之外沒有太大的不同。Select的優勢在於它可以同時處理多個connection,但是會多一個系統調用。多路復用本質上也不是非阻塞的。

    信號驅動式I/O(Signal Driven I/O)

      首先我們開啟socket的信號驅動I/O功能,然後用戶進程發起sigaction系統調用給內核后立即返回並可繼續處理其他工作。收到sigaction系統調用的內核在將數據準備好後會按照要求產生一個signo信號通知給用戶進程。然後用戶進程再發起recvfrom系統調用,完成數據從內核到用戶空間的複製,並返回最終結果。其基礎原理圖示如下:

    異步I/O(Asynchronous I/O)

      用戶進程向內核發起系統調用后,就可以開始去做其他事情了。內核收到異步I/O的系統調用后,會直接retrun,所以這裏不會對用戶進程有阻塞。之後內核等待數據準備完成後會繼續將數據從內核拷貝到用戶空間(具體動作可以由異步I/O調用定義),然後內核回給用戶進程發送一個signal,告訴用戶進程I/O操作完成了,整個過程不會導致用戶請求進程阻塞。
      信號驅動I/O模型是內核通知我們可以發起I/O操作了,而異步I/O模式是內核告訴我們I/O操作已經完成了。

      以上就是Linux的5種網絡I/O模型,其中前4中都是同步I/O模型,他們真正的I/O操作環節都會將進程阻塞,只有最後一種異步I/O模型是異步I/O操作。

    Java中的I/O模型

      在JDK1.4之前,基於Java的所有socket通信都是使用阻塞I/O(BIO),JDK1.4提供了了非阻塞I/O(NIO)功能,不過雖然名字叫做NIO,實際底層模型是I/O多路復用,JDK1.7提供了針對異步I/O(AIO)功能。

    BIO

      BIO簡化了上層開發,但是性能瓶頸問題嚴重,對高併發第時延支持差。
    基於消息隊列和線程池技術優化的BIO模式雖然可以對高併發支持有一定幫助,但是還是受限於線程池大小和線程池阻塞隊列大小的制約,當併發數超過線程池的處理能力時,部分請求法務繼續處理,會導致客戶端連接超時,影響用戶體驗。

    NIO

      NIO彌補了BIO的不足,簡單說就是通過selector不斷輪詢註冊在自己上面的channel,如果channel上面有新的連接讀寫時間時就會被輪詢出來,一個selector上面可以註冊多個channel,一個線程就可以負責selector的輪詢,這樣就可以支持成千上萬的連接。Selector就是一個輪詢器,channel是一個通道,通過它來讀取或者寫入數據,通道是雙向的,可以用於讀、寫、讀和寫。Buffer用來和channel交互,數據通過channel進出buffer。
    NIO的優點是可以可靠性好以及高併發低時延,但是使用NIO的代碼開發較為複雜。

    AIO

      AIO,或者說叫做NIO2.0,引入了異步channel的概念,提供了異步文件channel和異步socket channel的實現,開發者可以通過Future類來表示異步操作的結果,也可以在執行異步操作時傳入一個channels,實現CompletionHandler接口作為回調。AIO不用開發者單獨開發獨立線程的selector,異步回調操作有JDK地城思安城池負責驅動,開發起來比NIO簡單一些,同時保持了高可靠高併發低時延的優點。

    參考:
    https://blog.csdn.net/historyasamirror/article/details/5778378
    https://juejin.im/post/5cce5019e51d453a506b0ebf

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

    【其他文章推薦】

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

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

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

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

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

  • 世界經濟論壇:綠色振興將可創造一年300兆元收益

    環境資訊中心綜合外電;姜唯 編譯;林大利 審校

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

    【其他文章推薦】

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

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

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

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

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

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