您當前位置: 南順網絡>> 官方資訊
  • 正月初七,開工大吉

    大年(nián)初七,人壽年(nián)豐。攤煎餅吃七寶羹,安頓身心,休養生息。亦稱“人勝節”、“人慶節”、“人口日”、“人七日”等。傳說女娲初創世,在造出了雞狗豬牛馬等動物後,于第七天造出了人,所以這一(yī)天是人類的(de)生日。漢朝開始有人日節俗,魏晉後開始重視(shì)。古代人日有戴“人勝”的(de)習俗,人勝是一(yī)種頭飾,從晉朝開始有剪彩為(wèi)花、剪彩為(wèi)人,或镂金箔為(wèi)人來貼屏風,也戴在頭發上。道(dào)教認為(wèi):“天地(dì)先生雞,次狗,次豬,次羊,次牛,次馬,始生人。”漢代東方朔的(de)《占書》也說:“歲正月一(yī)日占雞,二日占狗,三日占豬,四日占羊,五日占牛,六日占馬,七日占人,八日占谷。”在中國傳統習俗中,大年(nián)初七“人日”,人過生日,要以七種蔬菜,煮成七寶羹,也就是将七種蔬菜,煮成雜菜湯,在農業社會,大家都祈望吃了七寶羹,來年(nián)大豐收。今天是鼓足幹勁再奮鬥的(de)節後第一(yī)個上班日,你準備好了嗎?

  • 南順網絡恭祝大家新春快樂(yuè)!

    北風擋不住春天的(de)腳步,2018已向我們揮手告别;冰雪封不住青春的(de)熱情,2019正随春潮滾滾而來!春節即将如(rú)期而至,在合作夥伴的(de)關注與支持下,本年(nián)度南順網絡的(de)工作也将要畫上圓滿的(de)句号。感謝各位合作夥伴在這一(yī)年(nián),對我們工作的(de)支持與配合!在此公布南順網絡2019年(nián)春節放假時間:                                  2019年(nián)2月2日--2019年(nián)2月10日,2月11号(初七)正式開工。     南順網絡恭祝大家在新的(de)一(yī)年(nián)裏,諸事順利,萬事如(rú)意,财源滾滾,心想事成!

  • 南順網絡技術開發部戶外團建活動

    今年(nián)公司接手多個重大項目,技術部同事為(wèi)項目付出了辛勤的(de)汗水,加班加點,任勞任怨,終于把多個項目順利完成,做(zuò)為(wèi)IT人員,每天面對着代碼,是很枯燥無味的(de),在公司領導關懷體恤下,夥伴們趁着冬日暖陽,抓着年(nián)底的(de)尾巴,南順網絡技術部夥伴結伴而行,組織到安義千年(nián)古村遊山玩水,吃喝玩樂(yuè),曬曬太陽,看看風景,好不惬意!大家邊走邊看,有說有笑,陽光照進每個人的(de)心中,美好的(de)心情洋溢在每個夥伴的(de)臉上,這一(yī)年(nián)的(de)辛酸,這一(yī)年(nián)的(de)苦辣,都不算什麽!走在千年(nián)古村的(de)石堅小路上,遠遠的(de)就能感受到古村的(de)神秘風采,一(yī)覽古村田園風光,鄉村風貌,讓平時待在市中心的(de)我們,有着另一(yī)番體驗。這些古老的(de)玩意,現在怕是很難再見到了吧(ba),是不是讓你想起了小時候在鄉村的(de)時光啦,夥伴們還是玩得挺開心的(de)!時間過得飛(fēi)快,讓我們把這一(yī)刻保存下來,成為(wèi)我們美好的(de)回憶吧(ba)!

  • 南順網絡團隊建設與企業文化建設

    2018年(nián)是南順網絡創新團隊,樹品牌的(de)重要轉折年(nián),在2018年(nián)12月,南順網絡進行了一(yī)次團建文化會議,會議中南順網絡總經理(lǐ)張總,運營總監葉總對這一(yī)年(nián)團隊建設與企業文化建設做(zuò)了重要講話。    在會中,南順網絡運營總監葉總對成長(cháng)型企業應該傭有怎樣的(de)團隊和(hé)企業文化做(zuò)了詳細的(de)分解,同事們都細心聽講,深刻理(lǐ)解,一(yī)個公司大到團隊,小到個人,都是需要包容與合作,需要自(zì)我提升,才能讓公司得到更大的(de)發展,并鼓勵團隊的(de)每一(yī)個人都要敢于提出問題,分享自(zì)己,團隊才會更有凝聚力,企業文化氛圍才會更濃厚!    會議後,南順網絡總經理(lǐ)張總也為(wèi)此次會議做(zuò)了總結,為(wèi)團隊建設與企業文化建設提出了自(zì)己的(de)建議,并為(wèi)在坐的(de)每一(yī)位家人鼓勵,提出在團隊中,每一(yī)個人把簡單的(de)事情都做(zuò)好,那就是不簡單,相信通過此次團建會議,大家會更加努力工作,團隊協作更融洽!

  • 盈科(南昌)律師事務所:互聯網+律師事務所平台建設合作項目

    11月15日,南順網絡與合作夥伴北京市盈科(南昌)律師事務所簽訂互聯網+律師事務所平台建設合作項目。律師介紹  于豐恺主任律師:盈科股權高(gāo)級合夥人,華東政法大學(xué)法律碩士,公司法與企業風險管理(lǐ)法律事務部主任,江西省知識産權局特聘特派員,勞動人事争議仲裁委員會仲裁員,江西衛視(shì)《金牌調解》欄目特邀觀察員,江西衛視(shì)《都市現場》欄目特邀律師。擔任多家國家機關、團體、企事業單位的(de)常年(nián)法律顧問,承辦了多起各類重大、疑難民商事訴訟案件,具有豐富的(de)訴訟和(hé)非訴訟實務經驗。  擅長(cháng)為(wèi)企事業單位進行法律風險管理(lǐ),建立法律風險管理(lǐ)制度與體系,對高(gāo)層管理(lǐ)人員進行法律培訓;在企業應收賬款管理(lǐ)、合同風險診斷、分析、評估、出具解決方案,對投資項目法律風險分析論證有十分豐富的(de)經驗和(hé)獨到的(de)見解。熟悉建設工程行業、房地(dì)産業、金融投資、抵押擔保、交通物流、化工塗料行業、環保行業、IT 行業、銀行、生産加工銷售業、電子(zǐ)行業、租賃市場所涉及的(de)法律知識和(hé)實踐經驗。項目分析“互聯網+”時代,任何互聯網技術在律師事務所領域的(de)應用都能夠産生非常巨大和(hé)直接的(de)力量。用戶需求不數年(nián)出現,互聯網律師事務所不能徹底滿足、其實,互聯網技術在律師事務所行業的(de)應用就是借助新的(de)技術滿足用戶新需求的(de)過程。南順将從市場的(de)角度和(hé)客戶需求出發,融合視(shì)覺美學(xué)及有效策略,為(wèi)客戶提供專業化、品牌化的(de)網站界面設計、網站策劃,網站建設與研發等。南順優勢1、專注互聯網+技術解決方案:構建有生命力的(de)平台體系南順網絡創造出“電腦營銷型網站+手機營銷型網站+微信網站+APP客戶端”為(wèi)一(yī)體的(de)四網合一(yī)網站建站系統。2、案例更多經驗更加豐富超過1000多例成功為(wèi)政企信息提供完整的(de)解決方案,20個互聯網行業應用,讓互聯網+重塑傳統企業邊界,我們始終堅持為(wèi)每個客戶定制網站。

  • 南順網絡面向智慧校園布局

         2017年(nián),教育部辦公廳關于印發《2017年(nián)教育信息化工作要點》的(de)通知中明确指出:引導各級各類學(xué)校開展數字校園、智慧校園建設與應用。數字校園和(hé)智慧校園成了學(xué)校信息化的(de)代名詞,各省市也相繼出台相關政策,明确數字校園和(hé)智慧校園要建設的(de)內(nèi)容,無線網絡作為(wèi)一(yī)個基礎接入網絡,是數字校園和(hé)智慧校園必不可(kě)少的(de)組成部分。2018年(nián),教育部か公廳關于印發《2018年(nián)教育信息化和(hé)網絡安全工作要點》的(de)通知,該通知中第二條明确提到,鼓勵具備條件的(de)學(xué)校開展“無線校園”建設,配備師生用教學(xué)終端。第三條提出引導各級各類學(xué)校結合實際特色發展,開展數字校園、智慧校園建設與應用。南順網絡自(zì)主研發的(de)智慧校園三大特征:智慧消息、智慧生活、智慧家校      南順網絡經過十年(nián)的(de)高(gāo)速發展,跟随互聯網時代的(de)步伐,不斷創新與實踐,在不同的(de)技術領域實現更大的(de)可(kě)能,從當初的(de)網站建設到高(gāo)端APP開發到布局智慧校園、始終堅持以技術開發為(wèi)核心,提升行業競争力!      南順網絡開發的(de)智慧校園項目是公司自(zì)主研發的(de)“智慧校園”管理(lǐ)系統,依托應用人臉識别、視(shì)頻監控和(hé)無線網絡等物聯網先進技術,實現對人和(hé)物身份及狀态信息的(de)智能傳感,構建一(yī)個創新的(de)、安全的(de)、和(hé)諧的(de)校園綜合管理(lǐ)模式。

  • 南順網絡被邀請入圍中國科學(xué)家論壇

    中國科學(xué)家論壇提名入圍函

  • 南順網絡開啓江西人工智能技術開發

    人工智能影響(1)人工智能對自(zì)然科學(xué)的(de)影響。在需要使用數學(xué)計算機工具解決問題的(de)學(xué)科,AI帶來的(de)幫助不言而喻。更重要的(de)是,AI反過來有助于人類認識自(zì)身智能的(de)形成。(2)人工智能對經濟的(de)影響。專家系統更深入各行各業,帶來巨大的(de)宏觀效益。AI也促進了計算機工業網絡工業的(de)發展。但同時,也帶來了勞務就業問題。由于AI在科技和(hé)工程中的(de)應用,能夠代替人類進行各種技術工作和(hé)腦力勞動,會造成社會結構的(de)劇烈變化。(3)人工智能對社會的(de)影響。AI也為(wèi)人類文化生活提供了新的(de)模式。現有的(de)遊戲将逐步發展為(wèi)更高(gāo)智能的(de)交互式文化娛樂(yuè)手段,今天,遊戲中的(de)人工智能應用已經深入到各大遊戲制造商的(de)開發中。   伴随着人工智能和(hé)智能機器人的(de)發展,不得不讨論是人工智能本身就是超前研究,需要用未來的(de)眼光開展現代的(de)科研,因此很可(kě)能觸及倫理(lǐ)底線。作為(wèi)科學(xué)研究可(kě)能涉及到的(de)敏感問題,需要針對可(kě)能産生的(de)沖突及早預防,而不是等到問題矛盾到了不可(kě)解決的(de)時候才去(qù)想辦法化解。

  • 2018年(nián)南順網絡推出H5場景在線制作平台

    2018年(nián)南順網絡推出H5場景在線制作平台! 南順網絡制作了700多套H5模闆,提供給各行業選擇,快速制作屬于自(zì)己的(de)H5宣傳片。 南順H5宣傳融合了各大行業,可(kě)以接入視(shì)頻、音樂(yuè)、語言等,是目前主流的(de)H5制作平台。南順網絡歡迎新老客戶前來體驗,請登錄官方體驗:www.ns868.com。

  • 祝賀:南順網絡與搜學(xué)360成為(wèi)戰略合作夥伴

    祝賀:南順網絡與搜學(xué)360成為(wèi)戰略合作夥伴!搜學(xué)360項目啓動于2017年(nián)11月,項目預計2018年(nián)3月份結束,2018年(nián)新型的(de)互聯網教育模式從這裏開始!搜學(xué)360新型的(de)教育門戶平台,打造互聯網交易新模式搜學(xué)網技術二次研讨會議

  • 北京市盈科(南昌)事務所:互聯網+律師事務所平台建設合作項目

    8月26日,南順網絡與新的(de)合作夥伴北京市盈科(南昌)事務所簽訂互聯網+律師事務所平台建設合作項目。 律師介紹 萬冬琴,華東交通大學(xué)法學(xué)學(xué)士,北京市盈科(南昌)律師事務所國際投資與貿易法律事務部部門骨幹律師,盈科南昌黨支部副書記;南昌市律師協會法律顧問專業委員會委員;南昌市律師協會公司法專業委員會委員。擅長(cháng)公司法律事務、保險合同糾紛、二手房買賣合同糾紛、企 業法律顧問、婚姻家庭糾紛及刑事辯護等。積極參與社會公益曾先後參與江西省法律援助中心指派的(de)被判處無期徒刑以上的(de)重大刑事案件的(de)二審程序或死刑複核程序。參與南 昌市政府信訪局多起重大信訪案件律師接訪活動,參與南昌市政府信 訪局律師接訪工作,多次為(wèi)公民提供免費法律咨詢活動,多次走進基 層社區、街辦,開展“送法進社區活動”等活動。 萬冬琴律師一(yī)貫堅持誠信、負責、效率的(de)執業理(lǐ)念,并緻力于不 斷提升專業化、規範化、标準化、精細化的(de)法律服務水平。持續深入 研究學(xué)習,以良好的(de)誠信鑄就品牌,以優質服務鍛造未來。 項目分析 “互聯網+”時代,任何互聯網技術在律師事務所領域的(de)應用都能夠産生非常巨大和(hé)直接的(de)力量。用戶需求不數年(nián)出現,互聯網律師事務所不能徹底滿足、其實,互聯網技術在律師事務所行業的(de)應用就是借助新的(de)技術滿足用戶新需求的(de)過程。南順将從市場的(de)角度和(hé)客戶需求出發,融合視(shì)覺美學(xué)及有效策略,為(wèi)客戶提供專業化、品牌化的(de)網站界面設計、網站策劃,網站建設與研發等。 南順優勢 1、專注互聯網+技術解決方案:構建有生命力的(de)平台體系 南順網絡創造出“電腦營銷型網站+手機營銷型網站+微信網站+APP客戶端”為(wèi)一(yī)體的(de)四網合一(yī)網站建站系統。 2、案例更多經驗更加豐富 超過1000多例成功為(wèi)政企信息提供完整的(de)解決方案,20個互聯網行業應用,讓互聯網+重塑傳統企業邊界,我們始終堅持為(wèi)每個客戶定制網站。

  • 海優歌:互聯網+親子(zǐ)遊泳平台建設合作項目

    8月14日,南順網絡與新的(de)合作夥伴江西海歌親子(zǐ)企業管理(lǐ)有限公司簽訂互聯網+親子(zǐ)遊泳平台建設合作項目。 公司介紹 海優歌是全省第一(yī)家也是唯一(yī) 一(yī)家親子(zǐ)遊泳的(de)早教機構。我們的(de)課程是來自(zì)全球最大的(de)母嬰啓蒙機構,英國劍橋的(de)生之光教程體系。我們的(de)每位教練包括老闆,都是獲得了英國STA國際遊泳協會培訓及認證上崗的(de)。課程根據小朋(péng)友的(de)年(nián)齡段及他們的(de)發育特點和(hé)需求分齡分課。聲之光課程特色是遵從孩子(zǐ)的(de)天性和(hé)意願,在最親密的(de)親子(zǐ)關系中培養健康親子(zǐ)關系和(hé)興趣,從而達到最好的(de)課程效果。 項目分析 “互聯網+”時代,任何互聯網技術在親子(zǐ)遊泳培訓領域的(de)應用都能夠産生非常巨大和(hé)直接的(de)力量。用戶需求不數年(nián)出現,互聯網親子(zǐ)遊泳培訓不能徹底滿足、其實,互聯網技術在親子(zǐ)遊泳培訓行業的(de)應用就是借助新的(de)技術滿足用戶新需求的(de)過程。南順将從市場的(de)角度和(hé)客戶需求出發,融合視(shì)覺 美學(xué)及有效策略,為(wèi)客戶提供專業化、品牌化的(de)網站界面設計、網站策劃,網站建設與研發等。 南順優勢 1、專注互聯網+技術解決方案:構建有生命力的(de)平台體系 南順網絡創造出“電腦營銷型網站+手機營銷型網站+微信網站+APP客戶端”為(wèi)一(yī)體的(de)四網合一(yī)網站建站系統。 2、案例更多經驗更加豐富 超過1000多例成功為(wèi)政企信息提供完整的(de)解決方案,20個互聯網行業應用,讓互聯網+重塑傳統企業邊界,我們始終堅持為(wèi)每個客戶定制網站。

  • 奧新遮陽簾:互聯網+奧新遮陽簾平台建設合作項目

    7月1日,南順網絡與新的(de)合作夥伴奧新遮陽簾經營部簽訂互聯網+奧新遮陽簾平台建設合作項目。 公司介紹   南昌奧新窗簾遮陽技術有限公司是一(yī)家南昌窗簾安裝辦公窗簾專業從事南昌安裝辦公窗簾窗簾安裝遮陽産品制作銷售的(de)專業公司,是集研制、生産、銷售窗簾産品為(wèi)一(yī)體的(de)專業南昌窗簾公司産品有百葉窗簾軌、卷簾窗簾、垂簾窗簾、鋁百葉窗簾、木百葉窗簾安裝(法國SOMFY電機,面料為(wèi)法國梅爾梅陽光面料)等産品分為(wèi)手動和(hé)電動系列.公司承接電動窗簾系統電動舞台幕及戶外和(hé)室內(nèi)外電動遮陽系統工程.公司總部設在廣州、湖南、江西,四川,湖北等設有分公司在南昌西湖區雲飛(fēi)路設有展示廳。本公司專業制作銷售:南昌窗簾安裝電動開合簾、安裝窗簾電動卷簾、普通拉珠辦公卷簾窗簾,百葉簾,中高(gāo)檔布藝專業設計,專業制作,專業精神,上門送樣,量尺等。主題專營:南昌辦公窗簾 家居酒店窗簾 智能遮陽 智能遙控電動窗簾 絲印廣告窗簾 戶外電動遮陽 電動開窗 卷簾 百葉簾 天棚簾 開合簾 戶外遮陽棚。 項目分析 “互聯網+”時代,任何互聯網技術在奧新遮陽簾領域的(de)應用都能夠産生非常巨大和(hé)直接的(de)力量。用戶需求不數年(nián)出現,互聯網奧新遮陽簾不能徹底滿足、其實,互聯網技術在遮陽簾行業的(de)應用就是借助新的(de)技術滿足用戶新需求的(de)過程。南順将從市場的(de)角度和(hé)客戶需求出發,融合視(shì)覺美學(xué)及有效策略,為(wèi)客戶提供專業化、品牌化的(de)網站界面設計、網站策劃,網站建設與研發等。 南順優勢 1、專注互聯網+技術解決方案:構建有生命力的(de)平台體系 南順網絡創造出“電腦營銷型網站+手機營銷型網站+微信網站+APP客戶端”為(wèi)一(yī)體的(de)四網合一(yī)網站建站系統。 2、案例更多經驗更加豐富 超過1000多例成功為(wèi)政企信息提供完整的(de)解決方案,20個互聯網行業應用,讓互聯網+重塑傳統企業邊界,我們始終堅持為(wèi)每個客戶定制網站。

  • 工業物聯網應用發展場景及市場預期

    工業物聯網将在哪裏得到施展才能的(de)機會,它的(de)市場預期會帶給社會怎樣的(de)表現,都是工業物聯網發展曆程中所必須要思考和(hé)構建的(de)重要思維模型。物聯網的(de)底層邏輯物聯網作為(wèi)信息技術,其本質是信息和(hé)計算。感知層負責信息的(de)獲取,網絡層負責信息的(de)傳輸,應用層負責信息的(de)處理(lǐ)計算。物聯網連接了大量物品數據,這些數據都是以往不曾處理(lǐ)的(de)全新數據,新的(de)數據加上新的(de)處理(lǐ)方式,造就大量新的(de)産品、新的(de)商業模式、全面的(de)效率提升,這是物聯網帶來的(de)根本價值。物聯網在工業的(de)應用工業物聯網是一(yī)個多元化整合、不同元素之間相互探索的(de)平台,能夠将生産現場的(de)各種傳感器、控制器、數控機床等生産設備連接起來。随着工業物聯網的(de)發展,連入工業物聯網的(de)智能設備将日趨多元化,網絡互連所産生的(de)海量數據能夠輸送到全球任何一(yī)個地(dì)方。通過将感知技術、通信技術、傳輸技術、數據處理(lǐ)技術、控制技術,運用到生産、配料、倉儲等所有階段,實現生産及控制的(de)數字化、智能化、網絡化,提高(gāo)制造效率,改善産品質量,降低(dī)産品成本和(hé)資源消耗,最終實現将傳統工業提升到智能化的(de)新階段。同時,通過雲服務平台,面向工業客戶,融合雲計算、大數據能力,助力傳統工業企業轉型。随着數據量的(de)增大,傾向于在數據源頭處理(lǐ)數據的(de)邊緣計算不需要将數據傳輸到雲端,更加适合數據的(de)實時和(hé)智能化處理(lǐ),因此更加安全、快捷、易于管理(lǐ),在可(kě)預見的(de)未來将得到更加有效的(de)利用。工業物聯網的(de)價值物聯網強調的(de)是将生活和(hé)生産中一(yī)切硬件設備的(de)連接;工業物聯網是指在工業環境下,生産設備和(hé)産品的(de)連接。工業物聯網将生産過程的(de)每一(yī)個環節、設備變成數據終端,全方位采集底層基礎數據,并進行更深層面的(de)數據分析與挖掘,從而提高(gāo)效率、優化運營。與物聯網在消費行業的(de)應用不同,物聯網在工業領域的(de)基礎已經存在了幾十年(nián)。如(rú)過程控制和(hé)自(zì)動化系統、工業化以太網連接和(hé)無線局域網等系統已經在工廠運行多年(nián),并接連可(kě)編程邏輯控制器、無線傳感器和(hé)射頻識别技術标簽。但是在傳統工業自(zì)動化環境下,一(yī)切都隻是發生在工廠自(zì)己的(de)系統裏,從來沒有與外部世界連接。工業物聯網特點:到2020年(nián),世界上物物互聯的(de)業務将是人人互聯業務的(de)30倍。工業領域目前是物聯網項目最多的(de)應用領域。制造業在物聯網應用的(de)占比約為(wèi)15%—25%,制造業在物聯網中的(de)重要地(dì)位顯而易見。·數據收集範圍:工業物聯網利用RFID、傳感器、二維碼等手段随時獲取産品從生産到銷售到最終用戶使用各個階段的(de)信息數據,而傳統工業自(zì)動化的(de)數據采集往往局限于生産質檢階段。·互聯傳輸:工業物聯網利用專用網絡與互聯網相結合的(de)方式,實時準确地(dì)傳遞物體信息,對網絡依賴性更高(gāo),更強調數據交互。·智能處理(lǐ):工業物聯網綜合利用雲計算、雲存儲、模糊識别、神經網絡等智能計算技術,對海量數據和(hé)信息進行分析和(hé)處理(lǐ),并結合大數據技術,深入挖掘數據價值。·自(zì)組織與自(zì)維護:工業物聯網的(de)每個節點為(wèi)整個系統提供自(zì)己處理(lǐ)獲得的(de)信息或決策數據,當某個節點失效或數據發生變化時,整個系統會自(zì)動根據邏輯關系做(zuò)出相應調整。工業物聯網的(de)應用場景·預測性維護在過去(qù),工廠生産設備的(de)運營管理(lǐ)通常采用定期維護的(de)方式進行。按預定計劃每年(nián)定期中斷生産設備,進行機器的(de)維護和(hé)檢修。這種維護可(kě)以減少意外事件和(hé)停機的(de)風險,但也存在一(yī)些不足。不是所有機器都需要在同一(yī)時間進行維護,通過工業物聯網技術企業可(kě)以做(zuò)預測性維護。設備處于實時監控的(de)環境下,公司可(kě)以在設備需要維護的(de)時候進行維護,而不是在任意時間進行維護。·可(kě)視(shì)化供應鏈未來制造業中供應鏈的(de)可(kě)視(shì)化是必不可(kě)少的(de),也是極具挑戰性的(de)環節。尤其是在某些些領域,如(rú)食品,生産成本可(kě)能來自(zì)各種各樣的(de)供應商,而新的(de)法規會要求完全透明化。通過工業物聯網,制造商可(kě)以實時預見所發生的(de)一(yī)切事件,确保産品從原料采購、生産加工到銷售過程都是可(kě)控的(de)。·設備效率分析當需要對生産線上各設備的(de)生産效率和(hé)産品質量做(zuò)比較時,在過去(qù)是很難作出詳細的(de)回答的(de)。今天,制造商可(kě)以使用工業物聯網技術收集和(hé)分析來自(zì)多個設備的(de)數據,他們可(kě)以為(wèi)更好了解設備的(de)工作狀況,并為(wèi)提升生産效率、質量控制等作出更好的(de)決策,這就是使用工業物聯網的(de)好處。·自(zì)動化工業物聯網的(de)本質是讓機器在沒有人幹預的(de)情況下彼此通信。這使得更多的(de)自(zì)動化解決方案采用了成群結隊方式,從而提高(gāo)機器的(de)效率和(hé)産品質量,産品更一(yī)緻的(de)化。·安全控制當你接觸工業物聯網時可(kě)能不會想到安全問題,然而,在工廠安全方面可(kě)以通過物聯網獲聯很多的(de)幫助。安全一(yī)直存在的(de),隻是沒有人真正收集所需的(de)數據,利用物聯網能解決安全問題。我國工業物聯網的(de)預期價值物聯網在工業的(de)應用,是物聯網最重要的(de)領域之一(yī)。 “中國制造 2025”、“智能制造”、“互聯網+”等戰略規劃,“中國智造”已經成為(wèi)未來制造企業的(de)發展方向。而工業物聯網正是實現“中國智造”的(de)基礎。中國物聯網生态環境日趨成熟,物聯網在工業領域的(de)應用需求逐漸強烈。2016 年(nián)我國工業物聯網規模達到 1896 億元,在整體物聯網産業中的(de)占比約為(wèi) 18%。預計在政策推動以及應用需求帶動下,到 2020 年(nián),工業物聯網在整體物聯網産業中的(de)占比将達到 25%,規模将突破 4500 億元。對一(yī)些中小型工業企業來說,傳統的(de)系統集成、定制開發的(de)理(lǐ)念無法應用到中小型企業中,工業物聯網建設成本過高(gāo),使得大企業的(de)成功模式無法在小企業複制,導緻我國工業物聯網應用呈現出兩極分化的(de)狀态。随着 NB-IOT,eMTC 等物聯網技術的(de)推進,以及在 5G 網絡的(de)應用場景中,工業物聯網才可(kě)以具備快速發展的(de)空間。傳感器識别技術、傳感器網絡技術、感知節點及終端服務、業務支撐及智能處理(lǐ)技術等都是助力物聯網産業快速發展的(de)動力。工業物聯網的(de)未來趨勢未來企業工業物聯網應用的(de)重點由設備和(hé)資産轉向産品和(hé)客戶。工業企業借助物聯網實現業務成長(cháng)的(de)主要途徑包括新的(de)産品和(hé)服務和(hé)更緊密的(de)客戶關系。為(wèi)了開發更具吸引力的(de)産品或提升現有客戶關系,企業将需要大量産品和(hé)客戶的(de)相關信息支持。數據能力提升将以數據分析計算能力提升為(wèi)投資優先選擇。物聯網的(de)整體突破不僅依賴于硬件能力和(hé)商業模式創新,算法與數據同樣不可(kě)或缺。中國制造企業多年(nián)基于應用研發積累了大量經驗數據,如(rú)果将這些數據提取并模型化,形成可(kě)實用的(de)專家算法,數據将變成具有良好盈利能力的(de)金礦。技術的(de)進步大大增加了物聯網解決方案在工業領域的(de)潛在實力,物聯網解決方案将提高(gāo)工業企業運營效率,增加其收入來源并激發創新。物聯網也證明了它可(kě)以幫助企業制造更多的(de)持續性價值,像是從過去(qù)一(yī)次性的(de)交易轉變成長(cháng)久的(de)客戶關系。雖然面臨連接性和(hé)安全性的(de)問題,但我們仍可(kě)預期物聯網将襲卷工業領域各大産業。

  • Windows Lite OS曝光:頁面清爽 最快年(nián)內(nèi)推

     所謂WCOS即Windows Core OS,是構建客戶端、服務器、Xbox等平台Win10系統的(de)基礎,看來LiteOS同樣基于它搭建。至于“Web”,似乎進一(yī)步确認了Windows LiteOS對抗Chrome OS的(de)戰略宗旨,據說其隻允許運行UWP和(hé)PWA(漸進式網頁應用)程序。        UI視(shì)覺方面,Windows Lite和(hé)Win10基本類似但更加彈性,目前流出的(de)接近內(nèi)部開發樣式的(de)效果圖顯示,開始按鈕在底部居中,一(yī)個碩大的(de)搜索框涵蓋了賬戶管理(lǐ)、網頁/文件/設置搜索、應用程序抽屜等。        綜合目前資料,芯片廠商和(hé)OEM協作順利的(de)話,搭載Windows Lite OS的(de)雙屏産品最快今年(nián)末亮(liàng)相。

  • 解決這4個難題,IoT低(dī)功耗設備也能有高(gāo)清視(shì)頻通話

    解決這4個難題,IoT低(dī)功耗設備也能有高(gāo)清視(shì)頻通話如(rú)果有人跟你聊“實時音視(shì)頻通話功能”,你會想起什麽?視(shì)頻聊天、在線課堂,還是朋(péng)友之間的(de)遊戲開黑?其實,還有一(yī)個複雜且巨大的(de)領域,有着旺盛的(de)“互動”需求,那就是 IoT 領域。不少大廠商都紛紛布局推出了相應産品,例如(rú)在去(qù)年(nián)由“能打電話的(de)智能手表”變為(wèi)“能視(shì)頻的(de)電話手表”的(de)小天才手表;在今年(nián)2019 CES 上,多家廠商都推出了支持實時視(shì)頻的(de)智能門禁。總體來講,希望集成實時音視(shì)頻功能的(de)低(dī)功耗智能設備有以下幾類:▪智能手表:“能打電話”已成很多兒童智能手表的(de)标配,而“能視(shì)頻通話”的(de)智能手表已經紛紛出現在海內(nèi)外市場上。▪智能眼鏡:基于實時音視(shì)頻與後處理(lǐ)技術(如(rú) AR、計算機視(shì)覺算法)可(kě)以實現多種場景▪智能攝像頭:安防監控、視(shì)頻交互一(yī)直是智能攝像頭的(de)重要功能▪機器人:家庭機器人及少數公共場所的(de)機器人,需要實時音視(shì)頻功能▪智能門禁:通過實時音視(shì)頻實現遠程安防、通話低(dī)功耗設備上視(shì)頻通話的(de)難點事實上,利用WebRTC方案是可(kě)以在手機上實現實時音視(shì)頻通話的(de),但如(rú)果将這套方案照搬到低(dī)功耗設備,則無法做(zuò)到。這是由于低(dī)功耗智能設備在硬件、軟件方面都與手機不同,所以對實時音視(shì)頻通信的(de)要求也有所不同,這導緻了手機的(de)方案無法直接拿來套用。以智能手表為(wèi)例,如(rú)果要實現實時音視(shì)頻,需要滿足以下要求:1. 功耗要低(dī)很多低(dī)功耗智能設備的(de)電池容量,以及可(kě)支持的(de)功率有限。另一(yī)方面,很多智能設備采用的(de) CPU 性能有限,在進行音視(shì)頻通話的(de)同時,還要支持系統、常駐功能的(de)運轉。一(yī)般的(de)解決方案,無法做(zuò)到稍長(cháng)時間的(de)視(shì)頻通話,最大的(de)障礙就在于能耗。随着通話時長(cháng)的(de)積累,高(gāo)負荷運轉的(de)設備會發熱。所以低(dī)功耗十分必要。2. 實時音視(shì)頻不可(kě)占用過多內(nèi)存智能設備的(de)內(nèi)存有的(de)高(gāo),有的(de)低(dī),要看是什麽類型的(de)設備。但智能手表這類産品的(de)內(nèi)存一(yī)般都不高(gāo)。在這樣的(de)背景下,如(rú)果要在設備上進行實時音視(shì)頻通話時,不能占用太多內(nèi)存資源,否則會影響設備的(de)正常使用。3. 跨平台、跨設備的(de)通話支持智能設備并不像手機這樣普及,所以當你在通過智能手表、智能眼鏡與他人通話時,對方所使用的(de)可(kě)能是手機或 Web 浏覽器。所以還需要支持智能設備與其它平台的(de)通話。4. 提供高(gāo)音質高(gāo)畫質體驗音視(shì)頻通話的(de)質量始終是關鍵,畫面的(de)卡頓、模糊,聲音出現回聲、噪聲都是用戶無法接受的(de)。但是,一(yī)套音視(shì)頻方案在别人的(de)智能手表上跑通了的(de)時候,并不意味着完全能用于你的(de)設備。還是以 WebRTC 為(wèi)例,它本身具備回聲消除模塊,但一(yī)個回聲消除算法的(de)設計實現與設備、系統狀态緊密相關。 聲音經過揚聲器傳導到麥克風,經過了多少路徑就被處理(lǐ)多少次。不同的(de)設備材質,甚至設備發熱,都會導緻聲傳導特性不一(yī)樣,都會導緻回聲消除算法不一(yī)樣。這是設備的(de)差異帶來的(de)影響。另一(yī)方面,回聲消除裏有兩大模塊,自(zì)适應濾波和(hé)非線性處理(lǐ)。自(zì)适應濾波前置第一(yī)個模塊就是延時搜索。延時估計要在一(yī)定範圍內(nèi)估計,就是要有一(yī)個預先設計的(de)delay值,如(rú)果在一(yī)個很大的(de)範圍內(nèi)搜索,會極大消耗CPU資源。而Android系統的(de)線程調度設計存在特殊性,一(yī)旦資源搶占,會在Android底層buffer産生延時,可(kě)能會導緻之前預設的(de)delay值不準。而低(dī)功耗智能設備的(de)系統存在很多細微差異,就更需要有針對性地(dì)優化算法了。所以,在低(dī)功耗智能設備上實現視(shì)頻通話,并不是用一(yī)套通用的(de) demo,通過短(duǎn)短(duǎn)幾步的(de)配置、接口調用就能實現的(de)。想要好的(de)通話體驗,都需要圍繞你的(de)設備進行調優。這也是難點之一(yī)。聲網Agora低(dī)功耗智能設備場景方案而針對以上大部分問題,尤其是針對低(dī)功耗設備的(de)硬件、軟件系統的(de)特點,聲網對 Agora SDK 進行了多方面的(de)優化,包括編碼算法、降噪算法,幀率和(hé)分辨率的(de)優化算法,推出了低(dī)功耗版本 Agora SDK ,支持低(dī)功耗智能設備與其它設備與平台進行視(shì)頻通話。聲網低(dī)功耗智能設備場景方案的(de)特點:1. 跨平台實時語音通話聲網Agora創建了基于UDP協議的(de)軟件定義實時網絡SD-RTN™,并在全球部署的(de)近200個數據中心。通過 Agora SD-RTN™虛拟通信網絡,集成聲網方案的(de)低(dī)功耗設備,可(kě)以與 Web 浏覽器、手機端進行實時的(de)音視(shì)頻通話。2. 低(dī)功耗、低(dī)內(nèi)存占用占用的(de)內(nèi)存小,正常通話發熱量小,可(kě)以保證用戶之間的(de)較長(cháng)時間的(de)正常通話,經測試在小天才智能手表上可(kě)進行15分鍾的(de)長(cháng)時間視(shì)頻通話。 3. 支持主流軟硬件平台該方案适用于基于 ARM 架構、Android 系統平台的(de)低(dī)功耗智能設備,隻需要在集成後調優setVideoProfile、setAudioProfile參數即可(kě)正常通話。目前,聲網智能設備低(dī)功耗 SDK 已經應用于多類智能硬件産品上,包括智能手表、智能眼鏡、智能音箱、智能攝像頭、機器人、智能門禁等 IoT 設備,被集成于小天才、亮(liàng)亮(liàng)視(shì)野、小米等多個品牌的(de)産品中。

  • 支付寶小程序向個人開發開放公測:處于限量狀态

    支付寶小程序在2018年(nián)8月開放公測給企業之後,一(yī)直沒有開放給個人開發的(de)消息,不過現在有用戶發現,支付寶小程序在2月26日開始向個人開發開放公測,開發隻要登陸支付寶賬号就可(kě)以進入公測申請。據悉,支付寶這一(yī)次開放的(de)個人開發公測處于限量狀态,每天審核1000人左右的(de)項目,由于支付寶發現有大量的(de)個人開發申請創建支付寶小程序,因此目前支付寶決定開啓個人開發的(de)小程序開發功能。根據支付寶小程序提供的(de)開發文檔顯示,個人開發與企業開發開發支付寶小程序所采用的(de)流程、框架、開發工具相差不大,隻是在類目和(hé)功能上會相對少一(yī)些。阿裏支付寶小程序是一(yī)種全新的(de)開放模式,它運行在支付寶客戶端,可(kě)以被便捷地(dì)獲取和(hé)傳播,為(wèi)終端用戶提供更優的(de)用戶體驗。在支付寶最近公布的(de)數據中,支付寶小程序的(de)總用戶數超過了5億,日活躍用戶達到了1.7億,春節期間的(de)峰值一(yī)度達到了2.8億。

  • 從家居智能場景看聯想SloT2.0的(de)制勝關鍵點

    萬物互聯正成為(wèi)科技互聯網行業下一(yī)個風口,而眼下AI、IoT已然成為(wèi)了智能物聯新時代的(de)關鍵字符。而我們的(de)生活也将被這場智能革命改變。試想一(yī)下,下班回到家門口,不用鑰匙或卡片,指紋密碼直接将智能門鎖打開,智能攝像頭識别出你的(de)身份,直接進行隐私保護,家裏燈光、空調等設備随當時的(de)環境啓動并調至最佳狀态,電視(shì)自(zì)動開機續播之前沒看完的(de)節目,空氣淨化器開啓強力工作模式。而手機、電腦、平闆等設備自(zì)動連接到雲端,共享“家庭雲”裏的(de)照片、音樂(yuè)等數據,音箱會根據你日常的(de)使用習慣播放合時宜的(de)歌曲等......随着AI和(hé)IoT技術的(de)不斷進步,這樣的(de)場景不用等到未來,現在已經部分實現并逐步完善,而5G,更讓智能物聯如(rú)虎添翼,勢不可(kě)擋。作為(wèi)智能物聯時代的(de)引領者和(hé)推動者,聯想在這片領域早有布局。在聯想雲服務部新晉掌門人阿木的(de)帶領下,立足全面轉型智能物聯服務提供商的(de)戰略,更積極賦能行業合作夥伴,構建SIoT雲服務平台,用UDS體系構建開放的(de)智能物聯網生态圈,重新布局軟硬一(yī)體化,為(wèi)用戶提供更加智能、能夠無縫連接到雲內(nèi)容、雲應用和(hé)雲服務的(de)智能物聯設備,帶來極緻的(de)多場景互聯新體驗。聯想集團中國區戰略副總裁雲服務部總經理(lǐ)阿木2019CES拉斯維加斯專訪現場介紹雲服務平台聯想品牌日,用SIoT雲服務守護您的(de)家在消費端,聯想這次能提供的(de)不僅是傳統的(de)硬件産品,軟件服務能力也大大提升。根據最新數據,目前聯想SIoT雲服務平台已經有了超過百家合作夥伴,SIoT雲服務平台全終端月活用戶亦進一(yī)步突破2000萬。為(wèi)了服務好越來越多的(de)用戶,切實考慮他們的(de)日常需求,聯想雲服務平台将各種智能物聯設備的(de)聯動進行了優化,實現了不同場景中細微需求的(de)滿足,充分發揮了不同設備的(de)優勢,讓它們在場景中更好地(dì)配合起來。比如(rú)“看家寶”聯想智能攝像頭R1+聯想Lecoo智能門鎖R1就被用戶視(shì)為(wèi)看家護院的(de)“黃金搭檔”。如(rú)果你安裝了這一(yī)套設備(需要搭配聯想門磁和(hé)Zigbee網關),借助聯想SIoT雲服務,就可(kě)以使用“智慧聯想”APP把聯想智能攝像頭R1與智能指紋鎖R1網絡尊享版連接到一(yī)起。當快遞小哥(gē)或者保姆需要臨時進門,用戶一(yī)方面可(kě)以遠程下發臨時密碼給聯想Lecoo智能門鎖R1網絡尊享版,另一(yī)方面開鎖後攝像頭還可(kě)以自(zì)動進入監控狀态并跟蹤,再也不用擔心安全隐患。而當房子(zǐ)的(de)主人回家時,系統會識别主人的(de)回家動作,關閉攝像頭,從而保護主人的(de)隐私;而當主人離(lí)家的(de)時候,系統識别後會自(zì)動開啓攝像頭,保衛家庭的(de)安全。可(kě)以說聯想雲服務平台給家庭安全“加了一(yī)重保險”,解決了安全和(hé)隐私雙重問題,可(kě)謂是當下更貼心的(de)護家使者。聯想SIoT雲服務打造的(de)智能家庭聯動場景示例另外,對大多數人來說,家人的(de)身體健康和(hé)房屋的(de)安全同等重要,日新月異的(de)科技從不同維度守護我們的(de)安全。聯想智能體脂秤能幫我們守護這道(dào)安全底線。它1次上秤可(kě)測量包括體重、脂肪率、BMI、水分率等20項身體健康數據,讓人獲得更全的(de)健康衡量指标,通過雲平台支持的(de)智慧聯想APP,用戶可(kě)以随時查看,并獲得雲服務健康建議,時刻注意。同時,聯想智能體脂秤可(kě)同時智能識别10個用戶并記錄相關測量數據,家庭中每個人都可(kě)以分别科學(xué)地(dì)管理(lǐ)體脂、飲食、運動計,全家一(yī)起使用更便捷。想要這些智能物聯新品?2.26上京東聯想品牌日!上述這些智能産品在2月26日聯想品牌日中還有钜惠活動,不僅是硬件的(de)實惠價格,還有來自(zì)軟件層面的(de)優惠服務。當然,類似的(de)SIoT産品還有很多,要嘗鮮和(hé)感知智能家居的(de)消費者,不妨就從這裏起步,保你在這個春天用極震撼的(de)價格就能體驗到更驚喜的(de)軟硬一(yī)體化服務。提前感受場景互聯聯想SIoT雲服務平台搶足風頭當下幾乎各家都推出了智能物聯的(de)打法,但是聯想SIoT雲服務平台卻脫穎而出,可(kě)以說給智能物聯行業發展提供了新的(de)思路。從前述的(de)幾個場景案例可(kě)以看出聯想SIoT2.0軟硬一(yī)體化服務的(de)完整性和(hé)科學(xué)性。除了設備,場景互聯更大的(de)價值就在數據的(de)分析和(hé)整合,更有針對性地(dì)服務用戶,并在互聯世界裏讓人們的(de)體驗得到提升,這都離(lí)不開軟件層面的(de)支持。而數據、計算力、算法正是浸淫互聯網科技行業多年(nián)的(de)聯想的(de)長(cháng)項。聯想提早布局,建立了一(yī)張開放的(de)、共生共赢的(de)智能生态網絡。這也是楊元慶眼中聯想智能物聯戰略的(de)另一(yī)個亮(liàng)點,劉軍“砸10億做(zuò)智能物聯網的(de)領軍者”的(de)基石——搭建SIoT智能物聯生态平台,聯合業界共同推動設備的(de)智能化創新。聯想在2017年(nián)提出“智慧聯想服務中國”大戰略願景,基于此構建起了開放共赢的(de)智慧物聯生态平台,從産品、渠道(dào)、服務、AI、資本給其他合作夥伴輸送養料,帶動了一(yī)張包羅廣泛的(de)智能互聯生态網的(de)良性發展,打破“智能孤島”,協助更多的(de)中小企業能乘上智能升級的(de)東風,提升更大程度實現萬物互聯的(de)可(kě)能,也更快地(dì)推動契合用戶場景的(de)智能方案落地(dì)。這種賦能産業的(de)做(zuò)法,為(wèi)更多謀求智能化發展的(de)企業帶去(qù)了紅(hóng)利,得到了行業好評,聯想也獲得了2018中國最有影響力物聯網雲平台企業等認可(kě)聯想SIoT雲平台榮獲賽迪網2018中國最有影響力物聯網雲平台獎在萬物互聯的(de)潮頭,聯想将聯合更多合作夥伴一(yī)起,編織出一(yī)張無形的(de)将人、物、數據服務等結合在一(yī)起的(de)大網,這種帶有生命的(de)有機連接将讓萬物互動無限膨脹、變化,創造出新的(de)價值。相信,聯想有望在這波浪潮裏創造出更大的(de)輝煌

  • 百度Q4營收272億元超預期:盤後股價漲3.38%

            對此,百度董事長(cháng)兼CEO李彥宏表示,“百度在2018年(nián)打下了堅實的(de)基礎,全年(nián)營收達1023億元人民币,同比增長(cháng)28%。同樣2018年(nián)對百度來說是關鍵的(de)一(yī)年(nián),我們将人工智能應用從搜索拓展到更多業務領域,如(rú)信息流、語音助手、AI解決方案和(hé)自(zì)動駕駛,讓更多用戶、客戶和(hé)合作夥伴從百度的(de)人工智能技術和(hé)應用中受益。”       百度CFO餘正鈞表示:“百度業務正在由移動互聯網向智能家居、智能交通、雲和(hé)自(zì)動駕駛多元化拓展,并将堅定持續地(dì)投資。我們希望看到這些投資結出碩果,并在未來幾年(nián)持續推動百度的(de)收入增長(cháng)。”第四季度主要業績       百度第四季度總營收為(wèi)人民币272億元(約合39.6億美元),與上年(nián)同期相比增長(cháng)22%,不計入公司已經宣布的(de)資産剝離(lí)交易的(de)影響為(wèi)同比增長(cháng)28%。“百度核心”(Baidu Core,即搜索服務與交易服務的(de)組合)第四季度總營收為(wèi)人民币205億元(約合29.8億美元),比上年(nián)同期增長(cháng)14%,不計入公司已經宣布的(de)資産剝離(lí)交易的(de)影響為(wèi)同比增長(cháng)20%;  百度第四季度運營利潤為(wèi)人民币11億元(約合1.62億美元),比上年(nián)同期下降77%;運營利潤率為(wèi)4%,相比之下上年(nián)同期為(wèi)21%;“百度核心”第四季度運營利潤為(wèi)人民币44億元(約合6.45億美元),比上年(nián)同期下降26%;運營利潤率為(wèi)22%,相比之下上年(nián)同期為(wèi)33%;  不計入股權獎勵支出,百度第四季度運營利潤為(wèi)人民币27億元(約合3.86億美元),比上年(nián)同期下降54%;運營利潤率為(wèi)10%,相比之下上年(nián)同期為(wèi)26%。不計入股權獎勵支出(不按照美國通用會計準則),“百度核心”第四季度運營利潤為(wèi)人民币58億元(約合8.37億美元),比上年(nián)同期下降17%;運營利潤率為(wèi)28%,相比之下上年(nián)同期為(wèi)38%;   百度第四季度淨利潤為(wèi)21億元(約合3.03億美元),比上年(nián)同期下降50%。百度第四季度每股美國存托憑證攤薄收益為(wèi)人民币6元(約合0.86美元),比上年(nián)同期下降52%。“百度核心”第四季度淨利潤為(wèi)41億元(約合5.89億美元),比上年(nián)同期下降22%;  不計入股權獎勵支出,百度第四季度淨利潤為(wèi)人民币46億元(約合6.72億美元),比上年(nián)同期下降17%。不計入股權獎勵支出(不按照美國通用會計準則),百度第四季度每股美國存托憑證攤薄收益為(wèi)人民币13元(約合1.92美元),比上年(nián)同期下降17%。不計入股權獎勵支出(不按照美國通用會計準則),“百度核心”第四季度淨利潤為(wèi)人民币65億元(約合9.39億美元),比上年(nián)同期下降1%。2018财年(nián)主要業績:   百度2018财年(nián)總營收為(wèi)人民币1023億元(約合148.8億美元),比2017财年(nián)增長(cháng)28%,不計入公司已經宣布的(de)資産剝離(lí)交易的(de)影響為(wèi)同比增長(cháng)31%。“百度核心”2018财年(nián)總營收為(wèi)人民币783億元(約合113.8億美元),比2017财年(nián)增長(cháng)22%,不計入公司已經宣布的(de)資産剝離(lí)交易的(de)影響為(wèi)同比增長(cháng)26%;  百度2018财年(nián)運營利潤為(wèi)人民币155億元(約合22.6億美元),比2017财年(nián)下降1%;運營利潤率為(wèi)15%,相比之下2017财年(nián)為(wèi)20%;不計入股權獎勵支出,百度2018财年(nián)運營利潤為(wèi)人民币202億元(約合29.4億美元),比2017财年(nián)增長(cháng)7%;運營利潤率為(wèi)20%,相比之下上年(nián)同期為(wèi)24%。不計入股權獎勵支出(不按照美國通用會計準則),“百度核心”2018财年(nián)運營利潤為(wèi)人民币279億元(約合40.6億美元),比2017财年(nián)增長(cháng)23%;運營利潤率為(wèi)36%,與2017财年(nián)的(de)運營利潤率類似;  百度2018财年(nián)淨利潤為(wèi)人民币276億元(約合40.1億美元),比2017财年(nián)增長(cháng)51%。百度2018财年(nián)每股美國存托憑證攤薄收益為(wèi)人民币78元(約合11.35美元),比2017财年(nián)增長(cháng)49%。“百度核心”2018财年(nián)淨利潤為(wèi)人民币336億元(約合48.9億美元),比2017财年(nián)增長(cháng)52%;  不計入股權獎勵支出,百度2018财年(nián)淨利潤為(wèi)人民币233億元(約合33.9億美元),比2017财年(nián)增長(cháng)35%。不計入股權獎勵支出(不按照美國通用會計準則),百度2018财年(nián)每股美國存托憑證攤薄收益為(wèi)人民币66元(約合9.64美元),比2017财年(nián)增長(cháng)34%。不計入股權獎勵支出(不按照美國通用會計準則),“百度核心”2018财年(nián)淨利潤為(wèi)人民币285億元(約合41.4億美元),比2017财年(nián)增長(cháng)37%。主要業務線财報數據:      百度2018年(nián)加大了對移動産品矩陣的(de)投入,取得了令人振奮的(de)成果。旗艦應用百度App、好看視(shì)頻、全民小視(shì)頻三款産品的(de)用戶增長(cháng)強勁,整體信息流用戶使用時長(cháng)同比增長(cháng)112%。QuestMobile數據顯示,在中國十大短(duǎn)視(shì)頻應用中,全民小視(shì)頻與好看視(shì)頻是增長(cháng)最快的(de)兩個應用。       移動産品矩陣的(de)卓越表現帶動百度移動生态的(de)進一(yī)步繁榮。截至2018年(nián)12月,百家号內(nèi)容創作者達到190萬,包含人民日報、新華社、中央電視(shì)台和(hé)多個省級媒體機構;百度智能小程序月活用戶達到1.47億,環比增長(cháng)30%。       在AI新業務方面,DuerOS正在成為(wèi)中國最受歡迎的(de)智能語音助手。截至2018年(nián)12月,搭載DuerOS的(de)智能設備激活量超過2億台,環比上漲45%;語音交互達16億次, 并連續八個季度實現每季度數據翻倍。DuerOS技能開放平台目前擁有約2.7萬個第三方開發者,可(kě)提供包括網絡電台、視(shì)頻直播等1000多種技能支持。百度智能設備小度在家與小度智能音箱兩款産品在國內(nèi)多個電商平台創下購物節同品類最佳銷售記錄,深受用戶喜愛。       Apollo開放平台也取得技術與商業化上的(de)突破性進展。百度在今年(nián)1月CES上發布了全球首個智能駕駛商業化解決方案Apollo Enterprise,并發布Apollo 3.5,覆蓋更多、更複雜的(de)自(zì)動駕駛場景,支持市中心、住宅場景等城市道(dào)路路況。截至目前,百度已經獲得超過50張智能網聯汽車道(dào)路測試牌照,在國內(nèi)遙遙領先。Apollo合作夥伴也已超過135家,持續領跑自(zì)動駕駛行業。此外,Apollo還與一(yī)汽、沃爾沃達成戰略合作,共同生産商用L4級轎車。       百度雲的(de)技術實力、營收能力也得到顯著提升。在百度與央視(shì)2019年(nián)春晚紅(hóng)包互動期間,百度雲穩定承接了全球觀衆208億次紅(hóng)包互動。百度雲還推出了開源計算平台OpenEdge,幫助開發者構建輕量、安全、可(kě)擴展性強的(de)邊緣應用程序,将AI應用于智能家居設備、可(kě)穿戴設備以及其他物聯網設備。       愛奇藝也延續了強勁增長(cháng)勢頭。在優質自(zì)制內(nèi)容驅動下,愛奇藝會員數量第四季度達到8740萬,比去(qù)年(nián)同期增加3660萬。百度還聯合愛奇藝與四川有線電視(shì)推出混合OTT 機頂盒“蜀小果”,這是繼“歌華小果”之後,百度推出的(de)第二款人工智能機頂盒。現金流情況:        百度2018财年(nián)自(zì)由現金流為(wèi)人民币272億元(約合39.6億美元)。若将愛奇藝排除在外,則百度2018财年(nián)自(zì)由現金流為(wèi)人民币249億元(約合36.2億美元)。業績展望:     百度預計在2019年(nián)第一(yī)季度,百度的(de)淨收入總額将會介于235億元人民币(約合34.2億美元)到247億元人民币(約合36.0億美元),同比增長(cháng)12%到18%,移除百度國際業務與度小滿拆分影響,同比增長(cháng)18%至24%。該展望隻代表基于當前情況的(de)初步預測,不排除今後有調整的(de)可(kě)能。股價變動情況:      百度發布财報後,其股價在納斯達克常規交易中上漲0.63美元,報收于171.81美元,漲幅為(wèi)0.37%。在随後的(de)盤後交易中,百度股價再度上漲4.84美元,至176.65美元,漲幅為(wèi)2.82%。過去(qù)52周,百度的(de)最高(gāo)價為(wèi)284.22美元,最低(dī)價為(wèi)153.78美元。

  • Gartner:雲和(hé)企業軟件2019年(nián)支出增長(cháng)速度将超IT其他領域

    從實體業務轉向數字業務,是支出增長(cháng)的(de)主要動力。如(rú)果您在懷疑數字化轉型是否是IT主管的(de)首要考慮事項,那麽隻需看看他們正在購買什麽。預計在企業軟件(尤其是雲服務和(hé)應用程序)上的(de)支出增長(cháng)速度将在今年(nián)超過IT其他領域,這将推動全球技術支出的(de)總體增長(cháng)。根據市場研究和(hé)咨詢公司Gartner發布的(de)一(yī)份報告,該報告預測全球IT支出将增長(cháng)3.2%,達到3.77萬億美元。預計在企業軟件上的(de)支出今年(nián)将較2018年(nián)增長(cháng)8.5%,達到4310億美元。企業軟件包括ERP(企業資源規劃)、SCM(供應鏈管理(lǐ))、CRM(客戶關系管理(lǐ))、開源軟件、本地(dì)軟件和(hé)雲端軟件。Gartner表示,在整個企業軟件類别中,雲計算基礎架構和(hé)應用程序将吸收大部分支出,今年(nián)總計将達到2140億美元,比2018年(nián)增長(cháng)17.5%。“我們所看到最重要的(de)事情是從實體業務轉向數字業務,” Gartner分析師約翰•洛夫洛克(John Lovelock)表示。“這是支出增長(cháng)的(de)主要動力。”雖然成本優化很重要,但它并不是轉向雲服務和(hé)應用程序的(de)主要原因,洛夫洛克說。“轉向雲端的(de)實際情況是,可(kě)獲得更多的(de)敏捷性,以及以您需要的(de)速度獲得所需的(de)特色功能。數字業務的(de)運行速度遠遠超過(實體)業務;超大規模數據中心是唯一(yī)的(de)方案,它可(kě)以支持數字業務的(de)速度,以及數字業務所需的(de)合作——在本地(dì)則很難做(zuò)到這一(yī)點。”然而,雲端支出的(de)增長(cháng)在全球各地(dì)并不均衡。“必須說,在全球範圍來看,雲計算确實是源自(zì)美國的(de)影響,并且正在蔓延;美國目前幾乎占全球雲計算支出的(de)60%,”洛夫洛克說。除此之外,發展中國家市場缺乏超大規模數據中心,這導緻其應用的(de)滞後,從而減緩這些地(dì)區的(de)雲端業務增長(cháng),他說道(dào)。服務和(hé)數據中心的(de)支出也在增長(cháng)對IT服務和(hé)數據中心系統的(de)支出也将對總體增長(cháng)做(zuò)出重大貢獻。Gartner表示,包括服務器、存儲和(hé)網絡技術在內(nèi)的(de)數據中心系統支出将增長(cháng)4.2%,達到2100億美元,而對IT服務的(de)支出将增長(cháng)4.7%,達到1.03萬億美元。Gartner表示,雖然在設備和(hé)通信服務上的(de)支出也将增加,但它們會落後于其他領域支出的(de)增長(cháng)。包括固定和(hé)移動電信服務以及統一(yī)通信技術在內(nèi)的(de)通信支出今年(nián)将增長(cháng)1.3%,達到1.4萬億美元。與此同時,預計在PC、平闆電腦、手機和(hé)打印機等設備的(de)支出将增長(cháng)1.6%,達到6,790億美元。洛夫洛克表示,市場上出現的(de)手機新功能似乎沒有為(wèi)許多用戶帶來足夠的(de)動力進行升級,尤其是在經濟不穩定時期。“我們現在正在尋找經濟混亂的(de)迹象,”洛夫洛克說。經濟領域的(de)烏雲包括英國即将退出歐盟,美國和(hé)中國之間的(de)貿易緊張關系以及潛在的(de)全球關稅上升,這些都給商業計劃注入了不确定性。“對于一(yī)家倫敦銀行來說,如(rú)果不知道(dào)英國脫歐之後其商業模式将如(rú)何的(de)情況下,就很難制定計劃在技術方面投入大量資金,”洛夫洛克說。宏觀經濟問題是企業高(gāo)管關注的(de)焦點。洛夫洛克指出,杜克大學(xué)最近對首席财務官的(de)調查顯示,46%的(de)受訪者認為(wèi)2019年(nián)将出現衰退。盡管如(rú)此,Gartner預測2019年(nián)的(de)IT支出增長(cháng)為(wèi)3.2%,雖然略低(dī)于2018年(nián)的(de)3.9%,但仍然相當強勁。“人們在購買IT的(de)原因方面發生了基本面上的(de)變化,以及他們在打算如(rú)何使用IT方面也發生了巨大變化——我們賺錢的(de)方式正在改變,”洛夫洛克說。換句話說,盡管地(dì)緣政治問題令商業領袖感到擔憂,但技術支出的(de)基本驅動力——數字化轉型——仍然是IT支出的(de)推動力。

  • IT行業該如(rú)何應對AI帶來的(de)技術變革

           我們的(de)家庭生活越來越多地(dì)開始使用智能設備和(hé)智能應用程序,這些設備和(hé)應用都是為(wèi)了及時滿足我們的(de)需求。像Alexa和(hé)Siri這樣的(de)服務意味着,簡單地(dì)大聲說話就能立即獲取信息或完成任務。這一(yī)趨勢反映了在專業領域,工作者開始期待工作場所的(de)需求得到同樣的(de)即時滿足,因此提供自(zì)助服務和(hé)自(zì)動化已成為(wèi)所有IT服務台必不可(kě)少的(de)條件。人工智能正在加快普及       這一(yī)演變的(de)下一(yī)個階段就是人工智能服務的(de)出現,它不僅滿足我們的(de)要求,而且通過分析我們的(de)個人喜好來學(xué)習預測我們的(de)需求。雖然這項技術還處于起步階段,但人工智能已經成為(wèi)大多數領域的(de)主要關注點。知名分析師高(gāo)德納(Gartner)預計,到2020年(nián),30%的(de)首席信息官将把投資人工智能作為(wèi)其最優先考慮的(de)五大領域之一(yī)。随着人工智能驅動的(de)解決方案變得越來越普遍,IT服務台行業也将不得不适應,以反映員工對工作場所請求的(de)響應性、預見性支持的(de)期望。       盡管幾十年(nián)的(de)科幻設定了共同的(de)期望,但我們還不能看到獨立的(de)、自(zì)我實現的(de)人工智能。相反,目前的(de)人工智能技術都是分析複雜的(de)信息來學(xué)習、識别模式和(hé)得出結論,當然所有這些都比人類的(de)思維快得多。這一(yī)過程的(de)最終結果通常是自(zì)動化和(hé)大大加快活動,這将節省我們許多小時的(de)重複工作。       在IT服務管理(lǐ)(ITSM)中,人工智能開始自(zì)動化IT技術人員執行的(de)常規和(hé)非常規任務,給他們更多的(de)時間來執行其他具有更大價值的(de)活動。人工智能在ITSM中最明顯的(de)應用之一(yī)是通過自(zì)然語言處理(lǐ)和(hé)機器學(xué)習為(wèi)虛拟助理(lǐ)提供動力。這些功能将使服務能夠與使用正常人類語言的(de)人進行交互,觀察模式,構建數據模型,并推薦操作。盡管這項技術還在開發中,但ITSM供應商不能忽視(shì)人工智能的(de)進步,如(rú)果他們的(de)解決方案想要适應和(hé)跟上新的(de)、人工智能驅動,就應該開始多學(xué)習,打下基礎。        建立知識管理(lǐ)實踐        信息是任何人工智能應用的(de)命脈,穩定地(dì)提供豐富、一(yī)緻的(de)數據是必不可(kě)少的(de)。這一(yī)要求促使組織發展、收集和(hé)分享信息的(de)方式發生了變化,越來越重視(shì)管理(lǐ)良好和(hé)維護良好的(de)知識,這些知識對于解決方案來說很容易閱讀和(hé)學(xué)習。       構建和(hé)優化數據存儲是一(yī)項相當大的(de)任務,因此IT團隊應該開始建立強大的(de)知識管理(lǐ)實踐。包括來自(zì)第三方解決方案的(de)數據以及內(nèi)部系統将提供更多的(de)洞察力,因此建立與API的(de)外部互操作性也很重要。        自(zì)助文化建設        多年(nián)來,向用戶提供自(zì)助服務一(yī)直是ITSM的(de)一(yī)大趨勢,解決方案包括可(kě)搜索的(de)門戶網站和(hé)如(rú)何指導用戶直接收集知識和(hé)解決問題,可(kě)幫助自(zì)己和(hé)IT團隊節省時間。人工智能的(de)實現将極大地(dì)增強自(zì)助服務的(de)提供,通過能夠更好地(dì)預測用戶需求的(de)Web門戶和(hé)交互式的(de)、智能的(de)聊天機器人。事實上,企業管理(lǐ)協會(EnterpriseManagementAssociates,EMA)在進行一(yī)項調查發現,通過移動、自(zì)助服務和(hé)機器人改善終端用戶體驗是首要優先事項。        那些已經專注于開發自(zì)助服務渠道(dào)的(de)企業,自(zì)然能夠更好地(dì)應對以人工智能為(wèi)中心的(de)未來。擁有現有自(zì)助服務門戶的(de)IT團隊可(kě)以通過在一(yī)些選擇用例中添加一(yī)個簡單的(de)聊天機器人或虛拟代理(lǐ)來嘗試AI實現。使用這些測試機器人的(de)用戶越多,他們的(de)學(xué)習和(hé)開發就越好,所以團隊可(kě)以使用遊戲化來激勵用戶嘗試。        要充分實現人工智能的(de)潛力,需要對ITSM背後的(de)互聯系統進行大規模、叠代的(de)更改。這可(kě)能具有挑戰性,因為(wèi)ITIL(信息技術基礎設施庫)是最常見的(de)ITSM框架,對于已建立的(de)系統非常有效,但往往過于僵化,無法支持快速發展的(de)環境。        相反,敏捷或精益的(de)框架,如(rú)DevOps,是以實驗和(hé)探索為(wèi)導向的(de),更适合引入AI。敏捷方法采用了一(yī)種更小、更頻繁的(de)更改的(de)叠代方法,這使得在沒有不必要的(de)風險的(de)情況下更容易進行實驗。        探索新的(de)解決方案       在家裏,大多數人已經習慣于使用單一(yī)的(de)智能設備進行任何事情,輕松地(dì)在網上購物,設置音樂(yuè)播放列表,用幾個熟練的(de)刷卡或口語短(duǎn)語聯系朋(péng)友。因此,我們越來越期望在我們的(de)職業生活中采取同樣的(de)統一(yī)辦法。員工不再區分IT、人力資源和(hé)财務問題,他們希望在一(yī)個單一(yī)的(de)系統中滿足他們所有的(de)需求。這意味着在一(yī)個地(dì)方包含所有業務服務需求的(de)組合服務變得越來越有價值。        還沒有組合産品的(de)組織可(kě)以通過找到一(yī)個需要服務門戶、自(zì)動化和(hé)報告的(de)高(gāo)價值業務部門來測試這些流程,并使用現有的(de)ITSM解決方案實現這些過程的(de)自(zì)動化。如(rú)果該平台不夠靈活,無法滿足這些新的(de)需求,這是一(yī)個強烈的(de)迹象,是時候探索新的(de)解決方案,将能夠應對統一(yī)的(de)服務提供。        總結       雖然人工智能在大多數領域仍處于實際應用的(de)早期階段,但不可(kě)否認的(de)是,這一(yī)概念最終超越了科幻幻想,進入了日常的(de)、腳踏實地(dì)的(de)現實。幾乎沒有哪個行業能夠忽視(shì)這一(yī)趨勢,尤其是那些以處理(lǐ)信息和(hé)盡可(kě)能高(gāo)效地(dì)找到解決方案為(wèi)中心的(de)ITSM。那些已經開始通過更強有力的(de)知識管理(lǐ)、自(zì)助服務和(hé)敏捷實踐來奠定基礎的(de)ITSM提供商将在未來幾年(nián)中處于領先地(dì)位。

  • 工業互聯網已進入大發展時代

            一(yī)、工業互聯網行業發展現狀        工業互聯網作為(wèi)新一(yī)代信息技術與制造業深度融合的(de)産物,不僅能為(wèi)制造業乃至整個實體經濟數字化、網絡化、智能化升級提供新型網絡基礎設施支撐,而且催生了網絡化協同、個性化定制、服務型制造等新模式新業态,有力促進了傳統動能改造升級和(hé)新動能培育壯大。當前,我國已形成比較健全的(de)工業互聯網産業體系,工業互聯網應用正由家電、服裝、機械等向飛(fēi)機、石化、鋼鐵、橡膠、工業物流等更廣泛領域普及。        2018年(nián)是全面實施工業互聯網的(de)開局之年(nián)。”在近日由中國信息通信研究院、工業互聯網産業聯盟聯合主辦的(de)2018工業互聯網峰會上,工信部部長(cháng)苗圩表示,工信部将開展工業互聯網發展“323”行動,即打造網絡、平台、安全三大體系,推進大型企業集成創新和(hé)中小企業應用普及兩類應用,構築産業、生态、國際化三大支撐。        目前工業互聯網已進入大發展時代,我國已形成較健全的(de)工業互聯網産業體系。從工業互聯網産業聯盟的(de)會員單位構成來看,工業企業占35%,信息通信企業占38%,幾乎平分秋色,同時通信産業有很多在做(zuò)工業軟件,包括6%的(de)安全公司。最重要的(de)是,這個聯盟是一(yī)個開放的(de)聯盟,面向全球,與全球在同樣的(de)起跑線上競争,境外企業占7%。        工業互聯網産業聯盟的(de)會員單位構成         相關報告:智研咨詢網發布的(de)《2018-2024年(nián)中國工業互聯網行業市場專項調研及投資前景預測報告》  2017年(nián)中國工業互聯網市場規模達到4676.99億元, 增長(cháng)率為(wèi)13.5%; 随着産業政策逐漸落點, 市場空間将有望加速, 預計2020年(nián)中國工業互聯網市場規模可(kě)達6929.12億元。  2015-2020年(nián)中國中國工業互聯網市場規模及增長(cháng)率走勢  2017年(nián)中國工業互聯網細分領域結構情況中, 基礎設施規模達到1912.89億元, 占總規模的(de)40.9%;軟件與應用規模達到1435.84億元, 占比為(wèi)30.7%; 通信與平台的(de)規模為(wèi)1290.85億元, 占比為(wèi)27.6%; 工業安全為(wèi)37.42億元, 占總規模的(de)0.8%。  2017年(nián)中國工業互聯網細分領域規模   2017年(nián)中國工業互聯網細分領域結構        當前,我國工業互聯網網絡、平台、安全三大體系建設正加速創新發展。企業在工業互聯網網絡、平台、安全等領域不斷創造出新技術、新産品、新方案,工廠內(nèi)外網絡改造升級穩步推進,安全保障能力不斷提升,初步建成了一(yī)批典型應用平台        工業互聯網平台已成為(wèi)全球主要國家與跨國巨頭競争和(hé)布局的(de)焦點與核心,各類産業主體積極布局,推出一(yī)系列工業互聯網平台産品。        我國工業互聯網平台創新活躍,裝備、自(zì)動化、工業軟件、信息技術和(hé)制造企業從不同領域積極推動平台發展,目前已經形成超過30個工業互聯網平台。部分平台企業能夠在航空航天、裝備制造、信息電子(zǐ)、冶金、石化等行業精耕細作,在質量優化、工藝優化、設備預測性維護、供應鏈協同等方面形成一(yī)系列創新應用,并逐步培育起一(yī)個工業應用的(de)創新生态。        工業互聯網作為(wèi)新一(yī)代信息技術與制造業深度融合的(de)産物,不僅能為(wèi)制造業乃至整個實體經濟數字化、網絡化、智能化升級提供新型網絡基礎設施支撐,還催生了網絡化協同、個性化定制、服務型制造等新模式新業态,有力促進了傳統動能改造升級和(hé)新動能培育壯大。        目前我國工業互聯網發展進度與全球一(yī)緻,都處于起步階段,但有自(zì)己的(de)特色,目前在參考架構設計、技術創新與産業化、生态體系建設、應用模式創新、國際合作等方面都取得了一(yī)系列進展。        就發展階段而言,國內(nèi)工業互聯網處于發展的(de)第三個階段快速發展期,中國互聯網正從消費型轉向企業型。不過還處于起步階段,或者稱之為(wèi)“淺水區”,在深度和(hé)廣度方面都十分有限,但中國作為(wèi)僅次于美國的(de)第二大互聯網産業強國,工業互聯網發展前景廣闊。        二、工業互聯網相關企業情況分析   中國互聯網雲平台産業鏈結構而言可(kě)分為(wèi)數據采集層、IAAS層、PAAS層、SAAS層。其中,數據采集層是基礎,IAAS層是支撐,PAAS層是核心,SAAS層是關鍵。白皮書還指出目前較為(wèi)成熟的(de)是IAAS層,但随着市場消費需求的(de)不斷擴大,另外三層的(de)利潤将逐漸上升,将成為(wèi)産業利潤的(de)主要獲取者。        巨大的(de)市場前景吸引着各行業企業紛紛布局,這包括互聯網企業、生産制造商、設備制造商在內(nèi)的(de)來自(zì)産業鏈不同階段的(de)企業紛紛跑馬圈地(dì),推動中國制造業正在向數字化、網絡化、智能化和(hé)雲化發展。       1、寶信軟件  寶信軟件是寶鋼股份控股、 寶鋼集團實際控制的(de)軟件企業, 是中國領先的(de)工業軟件行業應用解決方案和(hé)服務提供商。  2017 年(nián)正式發布寶信工業互聯網平台, 實現企業內(nèi)部信息流、 資金流和(hé)物流的(de)集成和(hé)融合。  2018年(nián)1-3月實現營業收入10.14億元,同比增長(cháng)7.05%; 計算機應用行業平均營業收入增長(cháng)率為(wèi)18.14%; 歸屬于上市公司股東的(de)淨利潤1.48億元, 同比增長(cháng)78.14%。  2014-2018Q1寶信軟件總營收及淨利潤情況分析  2、用友軟件(廣東) 營銷服務中心  用友軟件(廣東) 營銷服務中心成立于2006年(nián), 主要業務有用友各系列軟件代理(lǐ)、 為(wèi)企業信息化建設提供整體解決方案、 軟件開發、 系統實施, 企業數據庫管理(lǐ)及維護等。  2018年(nián)一(yī)季度業績報告, 總營業收入10.74億元, 同比增加3.28億元, 增長(cháng)43.9%;雲服務業務營收3.66億元, 同比增長(cháng)158.3%;軟件服務業務快速增長(cháng), 營收7.02億元, 同比增長(cháng)16.0%。  2014-2018Q1用友軟件總營收及淨利潤情況分析  3、東方國信  東方國信成立于1997年(nián), 專注于大數據領域, 緊跟全球大數據技術的(de)發展趨勢, 構建以大數據、 雲計算及移動互聯三大技術體系為(wèi)核心的(de)雲化架構的(de)大數據産品體系。  2018年(nián)1-3月實現營業收入2.31億元, 同比增長(cháng)2.63%; 計算機應用行業平均營業收入增長(cháng)率為(wèi)23.09%; 歸屬于上市公司股東的(de)淨利潤3607.40萬元,同比下降26.13%, 計算機應用行業平均淨利潤增長(cháng)率為(wèi)12.35%。  2014-2018Q1東方國信總營收及淨利潤情況分析  目前,在政策與市場的(de)雙重驅動下,工業互聯網平台的(de)制造業生态正成為(wèi)産業競争的(de)“風口”,2018年(nián)的(de)跑馬圈地(dì)正愈演愈烈,一(yī)場“發展的(de)腥風血雨”已經在所難免。  三、我國工業互聯網平台建設和(hé)應用呈現六大亮(liàng)點  2018年(nián)上半年(nián),國家密集出台了一(yī)系列支持工業互聯網的(de)政策,工業互聯網平台建設熱度高(gāo)企。總體看,我國工業互聯網平台建設和(hé)應用呈現六大亮(liàng)點。  亮(liàng)點一(yī):  工業互聯網平台建設迎來政策密集紅(hóng)利期       為(wèi)深入貫徹落實國務院《關于深化“互聯網+先進制造業”發展工業互聯網的(de)指導意見》,工信部先後發布了《工業互聯網發展行動計劃(2018—2020年(nián))》《工業互聯網專項工作組2018年(nián)工作計劃》《工業互聯網APP培育工程方案(2018—2020年(nián))》,可(kě)以說,支持工業互聯網發展的(de)政策體系基本形成。廣東、上海、江蘇、浙江、河南、重慶、福建等省市紛紛制定配套實施方案,加大工業互聯網平台培育和(hé)企業上雲支持力度。為(wèi)加快國家與地(dì)方聯動,工信部和(hé)廣東、浙江、江蘇等地(dì)簽訂了推進工業互聯網發展的(de)部省合作協議。       亮(liàng)點二:  工業互聯網平台建設和(hé)應用路線圖基本形成  工信部重點圍繞“一(yī)二三四五”部署工業互聯網平台工作,工業互聯網平台建設和(hé)推廣路徑基本形成。  一(yī)是打造兩類工業互聯網平台。一(yī)類平台是能夠參與全球競争的(de)跨行業跨領域工業互聯網平台,另一(yī)類平台是面向特定行業的(de)企業級工業互聯網平台。  二是培育三類工業App。包括基礎共性、行業通用和(hé)企業專用工業App。  三是推動九大工業設備上雲。推動高(gāo)爐、工業鍋爐、風電設備、光伏設備、數控機床等工業設備上雲,帶來工業互聯網平台的(de)功能演進和(hé)規模商用。  四是開展四類試驗測試。開展跨行業跨領域工業互聯網平台試驗測試、特定行業工業互聯網平台試驗測試、特定區域工業互聯網平台試驗測試和(hé)工業互聯網平台測試床建設,促進技術的(de)快速叠代。  五是建立五大公共服務體系。加快建立平台基礎及創新服務、監測分析、大數據管理(lǐ)、質量管理(lǐ)、标準管理(lǐ)等公共服務體系。        亮(liàng)點三:  工業互聯網平台建設雙輪驅動格局業已形成  當前制造企業和(hé)互聯網企業成為(wèi)工業互聯網平台建設的(de)兩股核心力量。據統計,由ICT企業主導建設的(de)平台數量為(wèi)45個,占比為(wèi)60%;由制造企業主導建設的(de)平台數量為(wèi)30個,占比為(wèi)40%。海爾、航天科工、徐工、三一(yī)重工、富士康等龍頭制造企業基于較強的(de)工業知識和(hé)模型沉澱能力,阿裏巴巴、東方國信、浪潮、用友、華為(wèi)、紫光等大型ICT企業基于雲計算、大數據等使能技術,紛紛積極建設工業互聯網平台。       亮(liàng)點四:  工業App培育和(hé)應用全面展開  培育百萬工業App,是建設工業互聯網平台生态的(de)核心,是形成工業互聯網平台雙邊市場的(de)關鍵。2018年(nián)上半年(nián),工信部印發了《工業互聯網App培育工程實施方案(2018—2020年(nián))》,提出到2020年(nián)要培育30萬個面向特定行業、特定場景的(de)工業App。根據阿裏巴巴、東方國信、浪潮、海爾、航天雲網、用友、徐工、三一(yī)重工等國內(nèi)領先工業互聯網平台企業公開的(de)數據,我國工業App數量約1萬個,海量工業App和(hé)海量工業用戶互促共進、雙向叠代的(de)雙邊市場正在初步形成。       亮(liàng)點五:  工業互聯網平台領域投融資熱度空前高(gāo)漲  2018年(nián)上半年(nián),“工業互聯網平台”投融資領域備受關注,首先從A股資本市場引爆投資熱度。2月到3月僅僅一(yī)個月內(nèi),與工業互聯網相關的(de)A股上市公司中,東土科技股價上漲85.07%,漢得信息股價上漲71.03%,用友網絡股價上漲125%,海得控制股價上漲高(gāo)達135%,東方國信股價上漲66.35%,資本市場對工業互聯網相關上市公司的(de)熱炒,使得A股上市公司與工業互聯網相關的(de)資産并購和(hé)投資愈演愈烈。股票(piào)市場的(de)火爆提升了工業互聯網平台領域股權投資的(de)熱度。富士康工業互聯網股份有限公司(下稱“工業富聯”)于5月發布了招股意向書,在工業富聯IPO過程中,共有20家知名企業及投資機構進入了戰略配售名單,阿裏巴巴、騰訊、百度三大互聯網巨頭全部在列。此外,上海國投、中央彙金、中國國有企業結構調整基金、中國人壽、招商局、國投等知名企業也都通過直接投資或旗下投資主體積極參與對工業富聯進行戰略投資。工業富聯網上發行最終中簽率為(wèi)0.342%,網下配售中簽率僅僅為(wèi)0.08%,機構超額認購倍數高(gāo)達1293.57。               亮(liàng)點六  工業互聯網平台區域集中度凸顯  截至目前,我國工業互聯網平台集中分布在環渤海、長(cháng)三角、珠三角三大區域,數量較多的(de)省市是北京、江蘇、上海、浙江、廣東、山東等,分别為(wèi)15個、12個、9個、7個、6個、6個,約占平台總數的(de)73%。這些地(dì)區的(de)政府和(hé)企業積極性高(gāo)、先進制造業集聚、制造業與互聯網融合發展基礎較好,大多以推動産業集聚區的(de)行業整體上雲為(wèi)抓手,湧現出了一(yī)批各具特色的(de)工業互聯網平台。

  • 2019年(nián)IT新動态:IT市場壓力将會引發科技生态鏈巨變

    就2018年(nián)IT業的(de)發展進程,摩爾定律似乎已經跟不上人工智能和(hé)IT自(zì)動化的(de)迅猛發展!!!由于電子(zǐ)器件的(de)小型化,分布式計算在微處理(lǐ)器上得到了迅速的(de)發展。圖形處理(lǐ)單元(GPU)的(de)出現以及由此産生的(de)超集成基礎設施就是證明。現在,IT部門正在将傳統标準化服務器的(de)成本效益與進入市場的(de)創新産品與邊際計算實踐進行比較。IT部門所需的(de)技能類型也發生了變化,IT社區的(de)重點從手工任務工作轉移到了IT自(zì)動化。因此,IT解決方案必須包含更多的(de)軟件功能來操作、監控、管理(lǐ)和(hé)動态配置企業的(de)IT控制界面。對于IT供應商來說,更值得注意的(de)是,高(gāo)級功能和(hé)對安全環境不斷增長(cháng)的(de)需求進一(yī)步增加了IT基礎架構的(de)複雜性,這是實現預期結果所必需的(de)。同時,行業用戶希望在不涉及複雜性的(de)情況下從這些新功能中獲益。從IT生态權威媒體端來看,IT供應商将經曆許多變化:他們如(rú)何合作,如(rú)何進入市場,如(rú)何創新,以便在快速增長(cháng)的(de)2019年(nián)保持良好的(de)相關性,值得我們關注。同時,行業用戶希望在不涉及複雜性的(de)情況下從這些新功能中獲益。IT供應商将經曆許多變化:他們如(rú)何合作,如(rú)何進入市場,以及他們如(rú)何創新以在快速增長(cháng)的(de)2019年(nián)保持良好的(de)相關性,值得我們關注。首先,在一(yī)個日益開放的(de)源代碼環境中,合作夥伴的(de)力量在以硬件為(wèi)中心的(de)供應商戰略中變得更強。趨勢:硬件供應商正在尋求更深入、更合作的(de)合作夥伴關系,以支持圍繞雲等關鍵技術的(de)新興戰略。驅動因素:不斷增長(cháng)的(de)客戶對開源技術的(de)需求以及來自(zì)商業市場IT供應商的(de)持續壓力正在推動他們之間更深入的(de)合作關系,因為(wèi)他們必須保持技術和(hé)解決方案之間的(de)聯系,以形成一(yī)個整體的(de)解決方案。結果:合作關系将使基礎設施供應商能夠承受來自(zì)以雲為(wèi)中心和(hé)以軟件為(wèi)中心的(de)同行的(de)壓力。ODM也給原始設備制造商帶來了越來越多的(de)壓力。加強這些合作關系的(de)需要是為(wèi)了确保長(cháng)期的(de)生存能力。回顧過去(qù),2018年(nián),IT供應商之間的(de)合作關系有所增加。總體而言,該行業正在看到兩種類型的(de)合作關系。例如(rú),聯想和(hé)Netapp集成了基礎架構并演示了協作硬件平台。據悉,兩家公司目前正在使用netapp全閃存數據管理(lǐ)解決方案和(hé)聯想ThinkSystem基礎架構整合聯想品牌存儲産品,将充分利用聯想供應鏈和(hé)渠道(dào)系統來布局存儲市場。通過協作,聯想和(hé)Netapp都可(kě)以從擴大客戶群中獲益。此外,聯想與美商在中國的(de)存儲産品合資企業,增強了大公司可(kě)以積累的(de)優勢,改變了利潤率的(de)下降,成為(wèi)推動技術轉型的(de)重要途徑。戴爾與VMware的(de)合作是軟硬件合作的(de)另一(yī)個例子(zǐ)。盡管VMware是戴爾集團的(de)一(yī)部分,但它與硬件關系不大。戴爾曾考慮反向收購VMware,但除了資本運營外,這兩個方案的(de)整合也吸引了業界客戶的(de)更多關注。通過在整個IT基礎架構上進行協作,Dell和(hé)VMware使客戶能夠從IT待辦事項列表中删除冗餘的(de)管理(lǐ)任務,同時使用戶更加滿意和(hé)高(gāo)效。戴爾正通過更強大的(de)軟件和(hé)硬件集成吸引客戶做(zuò)出選擇。畢竟,這樣一(yī)個大型硬件供應商很少有與軟件産品相關的(de)解決方案。此外,客戶對開放性的(de)追求使其成為(wèi)供應商戰略的(de)重要組成部分。作為(wèi)回應,IBM擁有Red Hat技術,并以更有利可(kě)圖的(de)産品組合迎合市場。IBM可(kě)能會看到亞馬遜和(hé)谷歌的(de)盈利方向,跟随潮流或順應潮流。簡言之,更多利基設施提供商将遵循這些合作策略,以維持商業化和(hé)以雲為(wèi)中心的(de)市場。然而,通過合作或合資,一(yī)些專業領域的(de)小公司會感到壓力,後者如(rú)何選擇一(yī)個更強大的(de)合作平台是值得考慮的(de)。其次,IT供應商将重新考慮創新,因為(wèi)研發部門正轉向滿足客戶的(de)主要需求,以利用其關鍵IT供應商作為(wèi)一(yī)站式服務。趨勢:基礎設施供應商将更加關注預售和(hé)服務。驅動力:快節奏的(de)全球經濟正在鼓勵IT客戶盡快采用自(zì)動化技術,如(rú)人工智能,以跟上行業垂直部門的(de)技術變化。結果:這種快速采用,再加上嵌入新的(de)IT技術,鼓勵客戶尋求以服務為(wèi)中心的(de)基礎架構解決方案,這些解決方案可(kě)以反複叠代。從基礎設施提供商的(de)角度來看,服務是利潤率較高(gāo)的(de)解決方案。因此,通過提供服務來促進基礎設施銷售,不僅有助于密封交易,而且還能提高(gāo)公司的(de)利潤價值。在整個2018年(nián),以硬件為(wèi)中心的(de)公司一(yī)直緻力于通過有機創新、合作和(hé)收購來增強其軟件和(hé)服務能力,以滿足不斷變化的(de)客戶需求,并在其他商品行業創造差異化。随着我們進入2019年(nián),當人工智能和(hé)雲服務成為(wèi)基礎設施供應商戰略的(de)重點時,需要加快這一(yī)轉變,以便基礎設施供應商保持相關性。然而,在以小型基礎設施為(wèi)中心的(de)供應商的(de)服務領域,後者面臨着一(yī)個關鍵挑戰,即人才的(de)獲取,因為(wèi)衆所周知的(de)高(gāo)技能IT人員短(duǎn)缺。大型IT企業對人才生态有了更大的(de)信心,因為(wèi)他們有着成熟的(de)人才培養渠道(dào)、大學(xué)工程師培訓基金會和(hé)完善的(de)人才培養體系。中國權威IT生态媒體之一(yī)的(de)廣端網絡觀察表明,目前,能夠持續向人才系統前端輸送人才資源的(de)代表性企業包括華為(wèi)、新華三、思科、IBM、戴爾等大型制造企業,他們在TAL有着相當的(de)培養經驗。耳鼻喉科輸入。基于此,他們可(kě)以在現有産品組合的(de)基礎上為(wèi)客戶提供硬件、軟件和(hé)服務。小型IT供應商必須尋求更具戰略意義的(de)方法來取得類似的(de)成功。此外,随着客戶越來越依賴基礎設施供應商來滿足其所有IT需求,物聯網和(hé)安全也将成為(wèi)IT供應商在2019年(nián)合作的(de)一(yī)個領域。第三,新興的(de)基礎設施技術重塑了客戶的(de)需求,越來越多地(dì)關注計算和(hé)管理(lǐ)數據的(de)新方法。客戶尋求與較少的(de)供應商合作,以降低(dī)其環境的(de)複雜性,這将加速對大型IT供應商的(de)收購。趨勢:基礎設施提供商繼續投資新興的(de)基礎設施技術,如(rú)(NVMe)、GPU、量子(zǐ)計算和(hé)優勢。驅動因素:部分來自(zì)業務部門的(de)安全問題正在增加,這增強了硬件差異化的(de)價值,而技術進步則更加強調新的(de)數據處理(lǐ)方法,如(rú)邊緣計算。結果:客戶将尋求新的(de)硬件功能來實現現代計算,如(rú)量子(zǐ)計算和(hé)優勢。新興的(de)基礎設施技術将為(wèi)公司未來的(de)計算和(hé)數據存儲奠定基礎。人工智能和(hé)機器學(xué)習等用例導緻了數據的(de)快速創建。IT供應商在數據中心基礎設施中的(de)任務是創新,以便開發和(hé)利用這些數據為(wèi)客戶提供強大的(de)方法。IT供應商正在圍繞NVMe和(hé)GPU等新興技術進行創新,以處理(lǐ)不斷增長(cháng)的(de)數據創建并實施邊緣計算,以便客戶在購買許多不同組件後能夠使用傳統和(hé)非結構化數據更快地(dì)實現業務增長(cháng)。業界普遍認為(wèi),随着客戶越來越需要能夠促進轉型的(de)基礎設施創新,2019年(nián)将圍繞邊緣計算和(hé)數據中心、基礎設施增強(如(rú)NVME和(hé)GPU)進行大量創新。量子(zǐ)計算屬于另一(yī)類新興的(de)基礎設施技術,因為(wèi)它的(de)創新将比計算機技術産生更大的(de)影響,而不是增強現有功能的(de)NVME和(hé)GPU技術。也就是說,商業級量子(zǐ)計算的(de)出現将使近半個世紀摩爾定律的(de)進步顯得更加有力。到2024年(nián),量子(zǐ)計算産品和(hé)服務的(de)市場規模将達到84.5億美元,政府資助的(de)研發投資将達到22.5億美元。預計未來幾年(nián)将是量子(zǐ)計算技術快速發展和(hé)産業應用逐步擴展的(de)時期。如(rú)果傳統計算改變了傳統制造業的(de)信息技術應用形式,那麽量化将加速知識和(hé)技能的(de)發展,加速全球經濟從制造業向以知識和(hé)技能為(wèi)核心的(de)發展路徑,這種轉變将更加加強與傳統制造業的(de)整合。NK和(hé)練習。智能計算将有一(yī)個指數級的(de)進步,應用世界上最複雜的(de)算法來解決困難的(de)業務問題。未來的(de)公司和(hé)技術公司緻力于圍繞算法開發構建API連接器和(hé)策略規則,以接近量子(zǐ)計算的(de)應用級别,然後将結果返回到經典計算模型。簡單地(dì)說,IT程序員獲得優化的(de)量子(zǐ)算法以滿足硬件性能和(hé)特定的(de)應用場景。考慮到性能改進的(de)潛力,量子(zǐ)計算可(kě)以超越經典計算的(de)競争劣勢。據IT生态權威媒體廣端網絡預測,2019年(nián)量子(zǐ)計算商業化将在一(yī)定程度上刺激行業IT解決方案的(de)實質性創新,而不是概念的(de)包裝。回到搜狐看看更多

  • 花錢買數據也不行!蘋果這次對Facebook下了狠手

    剛剛,蘋果撤銷了Facebook的(de)iOS開發者資格證書!早上起床就被這個新聞标題驚呆了。蘋果和(hé)Facebook這兩大巨頭的(de)确素來不睦,庫克和(hé)紮克伯格也頻頻隔空批評對方,但移動巨頭和(hé)社交巨頭真的(de)到了徹底撕破臉,乃至封殺Facebook的(de)地(dì)步?沒那麽嚴重。實際上,蘋果隻是取消了Facebook的(de)企業開發者資質。Facebook在iOS正常的(de)應用分發并不會受到影響,普通用戶依然可(kě)以在iPhone和(hé)iPad下載Facebook、Instagram、WhatsApp、Facebook Messenger等諸多社交應用。那到底是什麽意思?Facebook沒法在iOS平台發布其面向內(nèi)部員工的(de)應用了,這既包括了Facebook社交矩陣諸多新功能服務的(de)測試版本,也包括了Facebook員工內(nèi)部的(de)服務應用,比如(rú)說Facebook員工的(de)班車應用和(hé)午餐應用。此舉對Facebook影響大麽?還是挺大的(de)。抛開員工生活服務不提,Facebook諸多新功能原本是通過員工應用進行內(nèi)測的(de),現在被蘋果封殺之後,iOS應用的(de)內(nèi)測就成為(wèi)了一(yī)個大問題。當然,Android平台并不會受到影響。然而,即便Facebook鼓勵員工使用Android手機,iOS也是Facebook最看重的(de)高(gāo)價值用戶群。蘋果為(wèi)什麽要對Facebook下狠手?蘋果的(de)封殺理(lǐ)由是Facebook濫用蘋果的(de)企業開發者計劃,付費吸引普通用戶下載安裝本應用于員工內(nèi)測的(de)VPN應用,違規搜集用戶大量隐私數據,嚴重違反了蘋果的(de)開發者協議。“任何開發者通過企業開發者權限向消費者分發應用,都會被取消權限。這是為(wèi)了保護用戶和(hé)數據。”究竟是什麽事?這款引發争議的(de)VPN描述文件應用叫“Facebook Research”。用戶下載并點擊信任之後,這款應用就可(kě)以獲得廣泛的(de)手機接入權限,搜集用戶幾乎所有的(de)數據,包括安裝應用、地(dì)理(lǐ)位置、聊天記錄、上網浏覽和(hé)手機使用等隐私數據。此事是由美國科技媒體Techcrunch調查曝光的(de)。Facebook從2016年(nián)開始在Instagram上打廣告,以付費參加社交媒體研究的(de)名義,吸引13-35歲的(de)用戶參加自(zì)己的(de)調查項目,每月付費20美元以及額外的(de)每個人20美元的(de)推廣拉人獎金,吸引他們下載安裝和(hé)持續使用Facebook的(de)此類隐私數據分析應用(包括iOS和(hé)Android應用)。Facebook甚至要求用戶截圖他們的(de)亞馬遜訂單購買記錄。在這些用戶中,大約有5%屬于未成年(nián)人。換句話說,Facebook是在付錢換取用戶用戶出賣自(zì)己的(de)數據用于Facebook的(de)商業分析。這是Facebook調查未來商業趨勢的(de)測試項目Project Atlas。顯然,對Facebook來說,這些完整詳盡的(de)個人智能手機使用數據的(de)價值遠遠超過了每月20美元,才會願意冒着被蘋果封殺的(de)風險去(qù)違規推廣。原本Facebook是公開推廣此類項目的(de)。但去(qù)年(nián)6月蘋果封殺了Facebook一(yī)款類似搜集用戶數據的(de)應用Onavo Protect,Facebook是在2014年(nián)斥資1.2億美元收購這個創業項目。Onavo依然在谷歌商店可(kě)以下載,累計下載量超過了1000萬次。在被蘋果App Store下架之後,Facebook并沒有徹底死心,而是利用了企業開發者機制,繞過蘋果應用商店,從員工內(nèi)測渠道(dào)繼續推出此類應用,付費吸引普通用戶(包括了成人和(hé)兒童)下載該應用,繼續收集和(hé)分析用戶的(de)手機上網行為(wèi)。實際上,Facebook Research可(kě)以被視(shì)為(wèi)Onavo的(de)另一(yī)個版本。在被媒體曝光之後,蘋果随即撤銷了Facebook的(de)企業開發者資質。諷刺的(de)是,在蘋果采取行動之後,Facebook才發表聲明稱公司已經關閉了iOS版本的(de)Research項目,假裝是自(zì)己主動取消了該應用。過去(qù)一(yī)年(nián)時間,Facebook連續被爆出多起涉及用戶數據的(de)醜聞,其中影響最大的(de)就是2016年(nián)美國大選期間的(de)“劍橋分析公司”醜聞。一(yī)家大數據營銷公司利用Facebook數年(nián)前的(de)管理(lǐ)漏洞和(hé)制度缺失,違規獲得了數千萬用戶的(de)個人數據,用于精準投放政治廣告。由于劍橋分析公司在16年(nián)大選期間的(de)服務客戶是後來獲勝的(de)美國總統特朗普,這起事件引發了美國主流媒體和(hé)自(zì)由派的(de)高(gāo)度重視(shì)。蘋果CEO庫克已經多次公開批評Facebook收集和(hé)出售用戶隐私數據進行獲利。在批評Facebook之後,庫克總是會提到蘋果高(gāo)度重視(shì)用戶隐私的(de)企業理(lǐ)念,甚至公開呼籲監管部門采取措施,加強對收集用戶數據行為(wèi)的(de)管理(lǐ)和(hé)懲罰。而紮克伯格則回擊庫克根本不懂Facebook的(de)商業模式,Facebook是免費提供服務的(de),而不是像蘋果一(yī)樣出售昂貴的(de)産品獲利。不過,盡管Facebook遭遇了一(yī)系列負面打擊,但這并沒有影響Facebook的(de)業績。今天發布的(de)Facebook财報顯示,去(qù)年(nián)第四季度Facebook營收169.14億美元,同比增長(cháng)30%;淨利潤68.82億美元,同比增長(cháng)61%。Facebook月活用戶高(gāo)達23.2億人,同比增長(cháng)9%;日活用戶高(gāo)達15.2億人,同比增長(cháng)9%。而且,Facebook高(gāo)達93%的(de)營收來自(zì)移動廣告。這一(yī)靓麗财報推動Facebook股價盤後大漲11.5%。精準投放的(de)社交廣告是Facebook的(de)商業模式基石,而用戶大數據生成的(de)社交圖譜則是Facebook賴以盈利的(de)資産。雖然Facebook Reseach項目被蘋果封殺了,但社交巨頭Facebook絕不會輕易放棄對用戶數據的(de)渴求。

  • 人工智能在中國的(de)發展狀況,中國距離(lí)AI強國還有多遠?

    第四次工業革命正在來臨,尤其是以人工智能為(wèi)技術已經從科幻逐步走入現實。世界各國已經認識到人工智能是未來國家之間競争的(de)關鍵賽場。對于中國而言,人工智能的(de)發展更是一(yī)個曆史性的(de)戰略機遇,對于緩解未來人口老齡化壓力、應對可(kě)持續發展挑戰、以及促進經濟結構轉型升級至關重要。那麽目前,人工智能在中國的(de)發展條件如(rú)何,中國距離(lí)成為(wèi)真正的(de)人工智能強國還有多遠?7月13日,《中國人工智能發展報告2018》在清華大學(xué)主樓接待廳發布。報告中稱,目前中國人工智能的(de)發展已經具備非常優越的(de)條件,然而要成為(wèi)真正的(de)人工智能強國,中國還任重道(dào)遠。中國在論文總量和(hé)高(gāo)被引論文數量上都排在世界第一(yī),但中國在人才總量,以及傑出人才占比偏低(dī)。在産業上,中國的(de)人工智能企業數量排在全球第二,不過,中國人工智能領域的(de)投融資占到了全球的(de)60%,成為(wèi)全球最“吸金”的(de)國家。        報告指出,中國必須加強基礎研究,優化科研環境,培養和(hé)吸引頂尖的(de)人才,在人工智能的(de)心基礎領域實現突破,保證人工智能發展的(de)根基穩固。同時,要大力鼓勵産學(xué)研合作,讓企業成為(wèi)人工智能創新的(de)主導力量。積極參與到人工智能全球治理(lǐ)機制的(de)構建中,在人工智能未來的(de)技術發展、風險防範、道(dào)理(lǐ)倫理(lǐ)規範制定等領域發揮中國獨特的(de)作用。        這份報告由清華大學(xué)中國科技政策研究中心、清華公共管理(lǐ)學(xué)院政府文獻中心、北京賽時科技有限公司、科睿唯安、中國信息通信研究院和(hé)北京字節跳動科技有限公司聯合發布        論文總量世界第一(yī),傑出人才占比偏低(dī)        報告中稱,在論文産出上,中國人工智能論文總量和(hé)高(gāo)被引論文數量都是世界第一(yī)。中國在人工智能領域論文的(de)全球占比從1997年(nián)4.26%增長(cháng)至2017年(nián)的(de)27.68%,遙遙領先其他國家。        高(gāo)校是人工智能論文産出的(de)絕對主力,在全球論文産出百強機構中,87家為(wèi)高(gāo)校。中國頂尖高(gāo)校的(de)人工智能論文産出在全球範圍內(nèi)都表現十分出衆。        不僅如(rú)此,中國的(de)高(gāo)被引論文呈現出快速增長(cháng)的(de)趨勢,并在2013年(nián)超過美國成為(wèi)世界第一(yī)。        但在全球企業論文産出排行中,中國隻有國家電網公司的(de)排名進入全球20。從學(xué)科分布看,計算機科學(xué)、工程、和(hé)自(zì)動控制系統是人工智能論文分布最多的(de)學(xué)科。國際合作對人工智能論文産出的(de)影響十分明顯,高(gāo)水平論文中國通過國際合作而發表的(de)占比高(gāo)達42.64%。專利申請上中國專利數量略微領先美國和(hé)日本。中國已經成為(wèi)全球人工智能專利布局最多的(de)國家,數量略微領先于美國和(hé)日本,三國占全球總體專利公開數量的(de)74%。        全球專利申請主要集中在語音識别、圖像識别、機器人、以及機器學(xué)習等細分方向。中國人工智能專利持有數量前30名的(de)機構中,科研院所與大學(xué)和(hé)企業的(de)表現相當,技術發明數量分别占比52%和(hé)48%。        企業中的(de)主要專利權人表現差異巨大,但中國國家電網近五年(nián)的(de)人工智能相關技術發展迅速,在國內(nèi)布局專利技術量遠高(gāo)于其他專利權人,而且在全球企業排名中位列第四。中國的(de)專利技術領域集中在數據處理(lǐ)系統和(hé)數字信息傳輸等,其中圖像處理(lǐ)分析的(de)相關專利占總發明件數的(de)16%。電力工程也已成為(wèi)中國人工智能專利布局的(de)重要領域。        雖然在論文總量和(hé)高(gāo)被引用論文數量上中國排名領先,但在人才投入上,中國表現并不突出。        根據該報告,截至2017年(nián),中國的(de)人工智能人才擁有量達到18232人,占世界總量8.9%,僅次于美國(13.9%)。高(gāo)校和(hé)科研機構是人工智能人才的(de)主要載體,清華大學(xué)和(hé)中國科學(xué)院系統成為(wèi)全球國際人工智能人才投入量最大的(de)機構。        然而,按高(gāo)H因子(zǐ)衡量的(de)中國傑出人才隻有977人,不及美國的(de)五分之一(yī),排名世界第六。企業人才投入量相對較少,高(gāo)強度人才投入的(de)企業集中在美國,中國僅有華為(wèi)一(yī)家企業進入全球前20。中國人工智能人才集中在東部和(hé)中部,但個别西部城市如(rú)西安和(hé)成都也表現十分突出。國際人工智能人才集中在機器學(xué)習、數據挖據和(hé)模式識别等領域,而中國的(de)人工智能人才研究領域比較分散。中國人工智能企業數量全球第二,但投融資規模最大報告稱,中國人工智能企業數量從2012年(nián)開始迅速增長(cháng),截至2018年(nián)6月,中國人工智能企業數量已達到1011家,位列世界第二,但與美國的(de)差距還非常明顯(2028家)。        中國人工智能企業高(gāo)度集中在北京、上海、和(hé)廣東。在全球人工智能企業最多的(de)20個城市中,北京以395家企業位列第一(yī),上海、深圳和(hé)杭州也名列其中。中國人工智能企業應用技術分布主要集中在語音、視(shì)覺、和(hé)自(zì)然語言處理(lǐ)這三個技術,而基礎硬件的(de)占比很小。        風險投資上,從2013到2018年(nián)第一(yī)季,中國人工智能領域的(de)投融資占到全球的(de)60%,成為(wèi)全球最“吸金”的(de)國家。但從投融資筆(bǐ)數來看,美國仍是人工智能領域創投最為(wèi)活躍的(de)國家。在國內(nèi),北京的(de)融資金額和(hé)融資筆(bǐ)數都遙遙領先其他地(dì)區,上海和(hé)廣東的(de)人工智能投資也很活躍。從2014年(nián)開始,國內(nèi)人工智能投融資活動的(de)早期投資的(de)占比逐漸下降,投資活動日趨理(lǐ)性,但A輪融資還是占主導地(dì)位。中國人工智能市場增長(cháng)迅速,計算機視(shì)覺市場規模最大。2017年(nián)中國人工智能市場規模達到237億元,同比增長(cháng)67%。計算機視(shì)覺、語音、自(zì)然語言處理(lǐ)的(de)市場規模分别占34.9%、24.8%、21%,而硬件和(hé)算法的(de)市場規模合計不足20%。預計2018年(nián)中國人工智能市場增速将達到75%。産品應用範圍廣泛,語音和(hé)視(shì)覺類産品最為(wèi)成熟。人工智能已經在醫療健康、金融、教育、安防等多個垂直領域得到應用。全球智能音箱市場增長(cháng)迅速,國內(nèi)外主要互聯網企業都有部署,其中谷歌和(hé)亞馬遜的(de)市場份額超過全球60%,中國的(de)阿裏巴巴和(hé)小米分列第三和(hé)第四位。2017年(nián)全球機器人市場達到232億美元,中國市場占27%。其它如(rú)無人機、智能家居、智能電網、智能安防、智能醫療和(hé)智能金融也發展較快。除了上述兩個闆塊外,報告人工智能的(de)發展戰略和(hé)政策環境、以及社會認知和(hé)綜合影響等方面描繪中國人工智能的(de)發展面貌,力圖綜合展現中國乃至全球人工智能發展現狀與趨勢,以提升公衆認知水平、助力産業健康發展、服務國家戰略決策。

  • Google上線更新:頁面速度影響移動搜索排名

          網站浏覽起來緩慢這無疑對用戶來說體驗不佳,停留的(de)時間和(hé)來訪的(de)次數自(zì)然不用說。谷歌顯然清楚這一(yī)點——從 2018 年(nián) 7 月開始,谷歌将在排名算法中使用網頁的(de)速度進行移動搜索排名。這意味着慢速網站将受到一(yī)定的(de)“懲罰”,而更快的(de)網站将在搜索結果中排名更加靠前。        據SE Roubdtable報道(dào),Google幾小時前剛剛在官方Twitter賬号發布消息:被稱為(wèi)速度更新( Speed Update)的(de)算法更新,也就是頁面速度影響移動搜索排名的(de)算法,正在全面上線中。        更确切地(dì)說,這個更新應該被稱為(wèi)移動速度更新,Mobile Speed Update,因為(wèi)這是針對移動頁面和(hé)移動搜索排名的(de)。        做(zuò)SEO的(de)肯定都知道(dào),頁面打開速度是搜索排名因素之一(yī),Google和(hé)百度都是如(rú)此。Google把頁面速度作為(wèi)排名算法因素之一(yī)早在2010年(nián)4月就公布并開始了。不過頁面速度隻是排名算法的(de)很小一(yī)個因素,隻影響了1%的(de)查詢排名,隻有速度真的(de)非常非常慢的(de)頁面會被影響。        不過有點令人迷惑的(de)是,直到今天為(wèi)止,從2010年(nián)就開始的(de)頁面速度影響排名指的(de)是PC搜索和(hé)PC頁面打開速度,并不是移動搜索。        過去(qù)兩三個月,Google分批次把滿足條件的(de)網站轉向移動優先索引,我的(de)大部分網站都已經在 Google Search Console中看到通知,已經轉為(wèi)移動優先索引了,也就是Google開始索引網站的(de)移動版,而不是PC版,作為(wèi)排名的(de)依據。        而到目前為(wèi)止,移動頁面的(de)速度是不作為(wèi)搜索排名因素的(de)。Google又開始使用移動頁面索引來排名,所以那些轉向移動優先索引的(de)網站的(de)頁面速度反倒不影響搜索排名了。移動搜索排名卻看的(de)是PC頁面的(de)速度。這聽起來是不是有點不合邏輯呢(ne)?移動搜索和(hé)移動頁面才更需要考慮頁面速度啊。        所以Google今年(nián)1月就發帖說,他們在考慮這個問題,将會在7月份把頁面速度作為(wèi)移動搜索的(de)排名因素。這個算法今天如(rú)期上線。  關于這次速度更新,有幾個點值得注意:  1.隻影響特别慢的(de)頁面  2.隻影響一(yī)小部分查詢詞  3.滿足查詢意圖還是最重要的(de),所以如(rú)果有好的(de)、相關的(de)內(nèi)容,很慢的(de)頁面還是會有好排名  4.速度快并不是加分因素,所以速度已經不錯的(de)頁面,即使速度改進得更快,也不會提高(gāo)排名  5.受影響的(de)那些很慢的(de)頁面,速度有一(yī)定改進就會使排名有很大提升  6.PC索引還是使用PC頁面速度  所以,如(rú)果讀者的(de)英文網站在這一(yī)兩天排名和(hé)流量,尤其是移動搜索,有比較大的(de)降低(dī),可(kě)能是因為(wèi)移動頁面速度太慢了。如(rú)果有提升,可(kě)能是排在前面的(de)競争對手頁面太慢了,被降低(dī)排名了。  現在移動搜索是所有搜索引擎的(de)重心,百度也是如(rú)此,或者說更是如(rú)此。上星期參加2018年(nián)廈門MadCon大會和(hé)百度搜索沙龍,百度現在力推的(de)熊掌号也是針對移動搜索,PC搜索的(de)事現在基本不提了。  原因也很簡單,移動搜索查詢量超過PC端搜索。下圖是過去(qù)2年(nián)世界範圍移動搜索和(hé)PC搜索份額:        大緻從2016年(nián)10月移動搜索查詢量全面超過PC搜索。目前移動搜索份額是52.36%。        下圖是過去(qù)2年(nián)中國移動搜索和(hé)PC搜索比例:        中國移動搜索超過PC搜索查詢量更早,移動搜索比例也更高(gāo)。目前中國移動搜索占比為(wèi)65.53%,比全球範圍高(gāo)得多,這也可(kě)能是百度對移動搜索更上心的(de)原因之一(yī)。

  • 一(yī)文看盡2019年(nián)IT及大數據行業趨勢權威預測

    2018已經過去(qù),今年(nián)區塊鏈、5G、芯片、量子(zǐ)計算成為(wèi)大家不斷提及的(de)技術重點,明年(nián)大數據科學(xué)還會有哪些發展方向,IT行業還有哪些發展趨勢?衆多機構都針對未來産業發展做(zuò)出預測。CCF:2019年(nián)大數據發展趨勢十大預測        在12月6日舉行的(de)2018中國大數據技術大會上,CCF大數據專家委員會發布《2019年(nián)大數據發展趨勢預測》報告時表示,大數據和(hé)數據從輔助到引領,從熱點到支點,已經成為(wèi)所有新舊(jiù)技術、新舊(jiù)模式的(de)必備基礎。        據預測,2019年(nián),大數據最令人矚目的(de)應用領域是健康醫療、城鎮化智慧城市、金融、互聯網電子(zǐ)商務、制造業工業大數據。        取得應用和(hé)技術突破的(de)數據類型是城市數據、視(shì)頻數據、語音數據、互聯網公開數據以及企業數據、人體數據、設備調控、圖形圖像。Gartner:2019年(nián)十大戰略性技術趨勢        Gartner列出了企業組織在2019年(nián)需要探究的(de)十大戰略性技術趨勢:自(zì)主設備、增強分析、AI驅動的(de)開發、數字孿生、邊緣計算、沉浸式體驗、區塊鏈、智能空間、數字道(dào)德和(hé)隐私、量子(zǐ)計算。        Gartner fellow兼副總裁David Cearley認為(wèi),無處不在的(de)智能設備提供各種基于大數據的(de)貼心服務,将是科技的(de)未來。Gartner稱之為(wèi)Intelligent Digital Mesh。        Intelligent:AI将深入所有已有的(de)垂直行業,并創造出新的(de)行業。        Digital:物理(lǐ)世界和(hé)數字世界将被折疊,新的(de)「沉浸」世界将會産生。        Mesh:人、生意、設備、內(nèi)容、服務将連結成一(yī)個不斷擴張的(de)大網。        Cearley認為(wèi),上述三點覆蓋下的(de)所有趨勢都将帶來持續的(de)創新增量。        IDC:2019年(nián)及以後的(de)全球信息技術(IT)行業的(de)預測        IDC公司将數字化的(de)經濟、邊緣計算、應用開發革命、人工智能、高(gāo)信任度、多種雲服務等産業列為(wèi)全球IT市場十大熱點。        IDC FutureScape報告中認為(wèi),鑒于競争對手和(hé)産業都在向數字化轉型,如(rú)果企業不能快速向數字化轉型,到2022年(nián),它們逾三分之二的(de)目标市場會消失。        預測1:數字化的(de)經濟。到2022年(nián),逾60%的(de)全球GDP将都是數字化的(de),推動2019-2022年(nián)期間與IT相關的(de)投資将達到約7萬億美元。        預測2:數字化原生IT。到2023年(nián),75%的(de)IT支出将用于第三代平台技術,因為(wèi)逾90%的(de)企業會建立“數字化原生”IT環境,在數字經濟中快速增長(cháng)。        預測3:邊緣計算快速增長(cháng)。到2022年(nián),逾40%機構的(de)雲部署将包含邊緣計算,25%的(de)終端設備和(hé)系統将執行人工智能算法。        預測4:應用的(de)革命。到2022年(nián),90%的(de)新應用将采用微服務架構,提高(gāo)設計、調試、更新和(hé)利用第三方代碼的(de)能力,35%用于生産環境的(de)應用将原生支持雲計算服務。        預測5:新的(de)開發者階層。到2024年(nián),新出現的(de)不使用定制腳本的(de)專業開發人員,将使開發者數量增加30%,加速數字化轉型。        預測6:數字化創新爆發。從2018-2023年(nián),借助新工具/平台、更多開發者、靈活的(de)方法和(hé)大量代碼重用,新開發的(de)應用數量将達到5億款,相當于過去(qù)40年(nián)的(de)總和(hé)。        預測7:通過專業化實現的(de)增長(cháng)。到2022年(nián),25%的(de)公共雲計算服務将基于非x86處理(lǐ)器(包括量子(zǐ)計算機);屆時,機構在垂直“軟件即服務”應用方面的(de)支出超過水平應用。        預測8:人工智能成為(wèi)新的(de)用戶界面。到2024年(nián),采用人工智能技術的(de)用戶界面和(hé)過程自(zì)動化将取代三分之一(yī)目前基于顯示屏的(de)應用;到2022年(nián),30%的(de)企業将利用對話式語音技術提供客服服務。        預測9:更高(gāo)的(de)信任度。到2022年(nián),50%的(de)服務器對數據進行加密,逾50%的(de)安全警報由采用人工智能的(de)自(zì)動化過程處理(lǐ),1.5億人将有基于區塊鏈的(de)數字身份        預測10:機構使用多種雲服務。到2022年(nián),四大雲平台将托管80%的(de)基礎設施即服務/平台即服務部署,但到2024年(nián),9成的(de)全球1000大機構将通過采用多款雲服務,或者混合雲技術和(hé)工具減輕對某一(yī)雲服務的(de)依賴。        從各機構預測看出,數據已經成為(wèi)基礎設施,數字化轉型成為(wèi)企業的(de)必選之路。大數據已經同人工智能、雲計算高(gāo)度融合,數據分析及計算能力進一(yī)步提升。中國在近兩年(nián)對零售業、金融業數字化改造逐步深化後,制造業、農業等傳統産業将成為(wèi)未來改造重點。同時數字化程度越高(gāo),數字安全問題越受關注,保障及立法迫在眉睫。        在經濟形勢不穩定的(de)情況下,通過技術研發構建核心競争力的(de)需求越發迫切。中國在5G技術、芯片技術、量子(zǐ)計算等領域加大研發,掌握先進技術;在大數據、人工智能、雲計算、區塊鏈等技術上加強應用,尋求技術落地(dì),促進企業降低(dī)成本、提質增效。        在數字經濟的(de)新一(yī)輪競争中,中國已經走在前列,2019年(nián)數字化進程将不斷深化。

  • 十種可(kě)能改變IT行業走向的(de)編程語言__編程語言前沿

    作為(wèi)開發人員,我們真的(de)還需要學(xué)習那麽多的(de)新型編程語言嗎。現在所擁有的(de)選擇已經是相當的(de)豐富,命令語言、函數語言、面向對象型語言、動态語言、編譯語言、解釋型語言以及腳本語言等等。這些身處業界前沿的(de)編程語言為(wèi)軟件開發工作的(de)未來提供了獨到的(de)解析視(shì)角。我們真的(de)還需要那麽多新型編程語言嗎。當前開發人員們所擁有的(de)選擇無疑已經相當豐富。命令型語言、函數型語言、面向對象型語言、動态語言、編譯語言解釋型語言以及腳本語言等等似乎已經完全罩得住我們可(kě)能面對的(de)一(yī)切任務,而且今日也幾乎沒有哪位專業人士能夠通曉上述全部語言。然而,新型語言仍然在以驚人的(de)速度不斷湧現。有些是學(xué)生或者愛好者以個人項目的(de)形式所設計,另一(yī)些則是來自(zì)大型IT供應商的(de)産品。連中小型企業也不甘勢弱,積極針對其所在行業的(de)需要開發出服務用語言。為(wèi)什麽人們如(rú)此熱衷于這種重複性勞動呢(ne)。答案其實很簡單,盡管目前大家手頭的(de)語言在功能性與通用性方面已經相當強大,但仍然沒有哪種單獨的(de)語法規則能程度迎合任何一(yī)種實際需求。更重要的(de)是,編程行為(wèi)自(zì)身也處于不斷的(de)發展變化當中。多核CPU的(de)崛起、雲計算的(de)升溫、高(gāo)流動性與分布式體系結構,這一(yī)切的(de)一(yī)切都向開發人員提出了新的(de)技術性挑戰。要為(wèi)現有語言——尤其是當下流行的(de)語言——添加新功能、範例以及模式可(kě)以說比登天還難。有時候直接搞一(yī)套新語言往往是解決方案。那麽在這裏,我将帶大家一(yī)同縱覽十種位居業界前沿的(de)編程語言;其中每種方案都從全新的(de)視(shì)角诠釋了軟件開發工作的(de)藝術性,并以各自(zì)不同的(de)特色解決了某些具體問題或是彌補了當下某款主流語言的(de)獨有缺憾。它們中有些是已經頗為(wèi)成熟的(de)項目,而有些則尚處于自(zì)身發展的(de)初級階段。有些可(kě)能對于大家來說還相當陌生且顯得晦澀但懂,但毋庸置疑的(de)是,它們很可(kě)能在未來給開發業界帶來颠覆性的(de)突破,并徹底改變今年(nián)數年(nián)的(de)編程工具發展趨勢——在新一(yī)代語言面世前,它們就是未來的(de)生力軍。實驗性編程語言: DartJavaScript在為(wèi)網絡頁面添加基本交互功能方面表現拔群,但當網頁應用程序的(de)體積達到數千行代碼時,該語言的(de)局限性就将暴露無遺。谷歌正是基于這種缺憾而推出了Dart,而這種語言也承載了谷歌為(wèi)網頁編程帶來全新标準的(de)雄心壯志。38c32459-c785-4450-adf4-113ec18976db.jpg與JavaScript相似,Dart采用了與C語言相似的(de)語法及關鍵字。然而Dart與JavaScript最為(wèi)顯著的(de)區别在于,前者中的(de)對象明确指向類及接口,這與C++及Java頗有異曲同工之妙。Dart還允許程序員們利用靜态式有選擇地(dì)聲明變量。追溯設計者的(de)思路,他們應該是希望Dart與JavaScript一(yī)樣更易于學(xué)習、保有動态特色以及流暢的(de)執行效果,這樣一(yī)來開發人員就能夠在編寫代碼方面投入較少的(de)時間,産品維護也将更為(wèi)便捷,同時細小的(de)錯誤帶來的(de)影響也将被降程度。目前我們還不能用Dart解決太多實際問題。其設計理(lǐ)念是希望該語言能夠同時運行于客戶機與服務器之上(與Node.js差不多),但現在惟一(yī)能夠讓Dart代碼在客戶端上運行的(de)辦法是将其通過編譯轉換為(wèi)JavaScript。它還不能正确作用于每一(yī)款浏覽器。不過由于Dart以BSD類開源許可(kě)方式進行發布,因此任何購買了谷歌版本的(de)廠商都可(kě)以随意将其構建于自(zì)己的(de)産品當中。谷歌要做(zuò)的(de)隻是說服業界接受這個編程領域的(de)新生兒即可(kě)。實驗性編程語言第二位: CeylonGavin King并不承認Ceylon這款他在紅(hóng)帽公司中創造出來的(de)語言肩負着“Java終結者”的(de)曆史使命。在King的(de)從業經曆中,最為(wèi)耀眼的(de)一(yī)頁正是他作為(wèi)Hibernate——Java對象關系映射框架的(de)創建者所赢得的(de)贊譽。他喜歡Java,但他仍然認為(wèi)Java還有很多提升空間。King對于Java的(de)抱怨主要集中在冗長(cháng)的(de)語法結構,這種語言缺乏一(yī)級與高(gāo)端功能,而且對元編程的(de)支持也相當薄弱。而更令他感到沮喪的(de)是,Java中對于結構化數據定義的(de)聲明性語法極為(wèi)欠缺,用他的(de)話來說這使得Java“與XML根本無法分割。”Ceylon的(de)目标就是解決上述疑難雜症。King與他的(de)團隊并不打算完全從零做(zuò)起。Ceylon虛拟機就不會出現,此類功能将通過Ceylon編譯器将內(nèi)容轉換為(wèi)Java字節代碼,進而運行于JVM當中。不過Ceylon絕不會止步于一(yī)款編譯器這麽簡單。該項目的(de)一(yī)大雄心是打造一(yī)套全新的(de)Ceylon SDK體系來取代Java SDK,引用King對于後者的(de)評價——結構臃腫、笨拙,且從來沒有得到“适當的(de)、與時俱進的(de)調整。”這是一(yī)項艱巨的(de)任務,因為(wèi)紅(hóng)帽公司到目前為(wèi)止還沒有發布過任何一(yī)款Ceylon工具。King表示自(zì)己期待着能在年(nián)內(nèi)看到一(yī)款編譯器出現,但不會指望短(duǎn)時間內(nèi)會有“由Ceylon編寫”的(de)軟件問世。實驗性編程語言第三位: Go解釋程序、虛拟機以及托管代碼如(rú)今正風靡一(yī)時。我們真的(de)需要另一(yī)款用于将目标內(nèi)容編譯為(wèi)本地(dì)二進制文件的(de)老式語言嗎。來自(zì)谷歌工程師團隊的(de)小組——由Robert Griesemer以及貝爾實驗室的(de)傳奇式人物Ken Thompson與Rob Pike共同執掌——給出的(de)答案是肯定的(de)。19d21be9-495d-4fce-8b60-ca434a4420ba.jpgGo是一(yī)種通用型編程語言,且适用于從應用程序開發到系統編程等各種工作需求。從這種意義上來說,它更接近于C語言或C++,而不是Java或是C#。但與後兩者一(yī)樣,Go中也包含着各類現代化功能,包括垃圾收集、運行時間映象以及對并行性的(de)支持。同樣重要的(de)是,Go在設計上有意降低(dī)了編程難度。其基礎語法與C語言非常相近,但卻消除了多餘的(de)語法及樣闆文件,同時簡化了對象定義等常用功能的(de)操作。Go項目小組的(de)目标是打造出了一(yī)款像動态腳本語言那樣擁有親切代碼的(de)語言,并且能夠像編譯語言那樣提供強大的(de)功能性。Go尚處于創建過程之中,而且其語言規範也仍可(kě)能發生變動。也就是說,我們目前已經可(kě)以開始嘗試使用了。谷歌已經為(wèi)其打造了對應的(de)可(kě)用工具與編譯器,說明文檔之類也相當豐富;舉例來說,Effective Go教程就是大家了解Go與其它早期語言不同之處的(de)上佳起點。實驗性編程語言第四位: F#函數型程序設計在計算機科學(xué)家以及學(xué)術界一(yī)直都相當流行,但像Lisp以及Haskell這樣的(de)純函數型語言通常被人們認為(wèi)無法作用于實際應用中的(de)軟件開發工作。對于函數型代碼,大家抱怨最多的(de)是它們很難與由C++及Java等命令型語言所寫成的(de)代碼與庫相整合。說起F#(發音為(wèi)“F=sharp”),這款微軟推出的(de)語言在設計上可(kě)謂兼顧了功能性與實用性。由于F#在.Net公共語言運行(簡稱CLR)中屬于一(yī)級語言,因此能夠訪問其它CLR語言的(de)所有同類庫及功能,包括C#及Visual Basic等。F#代碼與OCaml多少有些類似,但它同時擁有不少相當有趣的(de)特色語法。例如(rú),F#中的(de)數字型數據可(kě)以通過分配獲得計量單位,進而為(wèi)科學(xué)類計算服務。F#還為(wèi)異步式I/O、CPU并行處理(lǐ)以及GPU負載分擔等功能提供了必要的(de)理(lǐ)論支持。在度過了微軟研究中心中漫長(cháng)的(de)醞釀期後,F#現在終于同Visual Studio 2010一(yī)同面世了。更妙的(de)是,微軟這一(yī)次不按常理(lǐ)出牌,将F#編譯器與代碼庫通過Apache開源許可(kě)呈現在我們面前;大家不僅能夠使用這款語言,更可(kě)以将其引入Mac及Linux系統(通過Mono運行工具)。實驗性語言第五位: OpaWeb開發工作是公認的(de)繁雜無比。就算是最簡單的(de)一(yī)款Web應用程序也需要不計其數的(de)代碼行與多種語言交替使用:HTML與JavaScript處理(lǐ)客戶端、Java或PHP應對服務器、SQL負責數據庫等等。Opa其實并不打算單獨取代上述任何一(yī)種語言。相反,它存在的(de)目的(de)是希望通過為(wèi)Web編程設定一(yī)套全新規範的(de)方式一(yī)次性将各類方案直接抹殺。在Opa應用程序中,客戶端UI、服務器端邏輯以及數據庫I/O都由同一(yī)種語言負責實施——也就是Opa本身。而要完成這一(yī)目标,Opa需要将客戶端與服務器端框架進行整合。由Opa編譯器來決定某個特定程序是否應該運行于客戶端、服務器端或是同時運行于二者之上,其後該編譯器将輸出運行所必需的(de)代碼。對于客戶端型程序而言,編譯器會将Opa的(de)代碼內(nèi)容轉換為(wèi)相應的(de)JavaScript代碼,包括其中的(de)AJAX調用。當然,這樣規模的(de)整合型系統也暗藏着一(yī)些後台機關。Opa的(de)運行環境将其Web服務器與數據庫管理(lǐ)系統捆綁在一(yī)起,也就是說我們無法用其它獨立的(de)備選方案取代它們的(de)位置。這當然可(kě)以算是一(yī)點缺憾,但為(wèi)了保持标準的(de)細緻化與完整性,并使得數據驅動的(de)Web應用程序能夠以短(duǎn)短(duǎn)數十行代碼得以表達,這一(yī)切都是值得的(de)。Opa項目完全開源,并且目前已經支持64位Linux以及Mac OS X平台;今後随着工作的(de)深入還将有更多端口得以開放。實驗性編程語言第六位: Fantom我們是否應該在開發自(zì)己的(de)應用程序時考慮對java及.Net的(de)支持。如(rú)果使用Fantom來編寫代碼,那麽一(yī)切都不必擔心,連交換機平台也不在話下。這是因為(wèi)Fantom在設計上兼顧到了跨平台的(de)可(kě)移植特性。Fantom項目中不僅包括能夠為(wèi)JVM或者.Net CLI輸出字節代碼的(de)編譯器,同時也擁有一(yī)組能夠容納Java及.Net接口的(de)抽象化API,也就是創建了一(yī)套額外的(de)可(kě)移植層。Fanrom的(de)可(kě)移植性還有着進一(yī)步的(de)擴展規劃。目前由Fantom到JavaScript編譯器已經可(kě)以使用,而接下來我們還可(kě)以期望看到包括LLVM編譯器、Parrot虛拟機以及iOS版Objective-C在內(nèi)的(de)各類延展型項目。不過千萬别把可(kě)移植性當作Fantom語言惟一(yī)的(de)存在理(lǐ)由。雖然它在本質上仍然是以C語言為(wèi)基礎,但它同時也對該原始模型進行了充分改良。Fantom語言試圖在某些頗具争議的(de)語法讨論——例如(rú)牢固與動态或者接口與類——之中獲取中立身份。它不僅增加了對數據結構說明及序列化對象的(de)簡化說明,還囊括了對函數型程序設計及并行性創建工作的(de)有力支持。Fantom是基于Academic許可(kě)3.0版本的(de)開源項目,并且現在在Windows以及Unix類平台(包括Mac OS X)上已經可(kě)以付諸使用。實驗性編程語言第七位: Zimbu大多數編程語言都從其它早期語言中借用到了某些功能或是語法。而Zimbu則把這種拿來主義精神發揮到。作為(wèi)Vim文本編輯器作者Bram Moolenaar的(de)另一(yī)款得意之作,Zimbu的(de)目标是成為(wèi)一(yī)款速度快、語法簡潔、适應移植需求且便于閱讀的(de)語言,并最終使得來自(zì)任何圖形用戶界面的(de)應用程序代碼得以運行于目标操作系統內(nèi)核當中。由于Zimbu與生俱來的(de)雜交血統,其語法也相當獨特,但同時卻又功能豐富。它采用與C語言相似的(de)表達式及運算符,但卻使用自(zì)己的(de)一(yī)套關鍵字、數據類型及塊狀結構體系。另外,它還支持內(nèi)存管理(lǐ)、線程及通道(dào)等功能。可(kě)移植性一(yī)直是個關鍵問題。盡管Zimbu是一(yī)款編譯型語言,但其編譯器輸出的(de)是ANSI C碼,這就使得文件隻能由具備本地(dì)C編譯器的(de)平台來生成。遺憾的(de)是,Zimbu項目如(rú)今尚處于起步階段。而其編譯器雖然已經能夠為(wèi)自(zì)身及其它程序創建一(yī)些演示範例,但并不是全部Zimbu有效代碼都能夠正确運行。不過預期功能目前還不完善,其中一(yī)些還隻是加以草(cǎo)草(cǎo)設置,因此我相信隻要假以時日,這些問題都能得到妥善解決。另外語言規範也很可(kě)能随着時間的(de)推移而産生變化,例如(rú)在必要時添加新的(de)關鍵字、類型以及語法等。所以說明文檔等材料目前還沒有統一(yī)的(de)結論。不過如(rú)果大家對這種語言有興趣的(de)話,其初始工具已經在Apache許可(kě)基礎上得以公布。實驗性編程語言第八位: X10并行處理(lǐ)一(yī)度作為(wèi)軟件開發領域中的(de)獨特生态圈存在,但随着多核心CPU及分布式計算技術的(de)日益普及,并行化也崛起成為(wèi)未來發展的(de)主流方向。遺憾的(de)是,今日,編程語言仍然沒能跟上時代的(de)步伐。而這正是IBM研究中心苦心開發X10的(de)原因,這是一(yī)種以提高(gāo)開發人員生産效率為(wèi)主旨的(de)實用型語言,希望在現有基礎上将開發效率提高(gāo)“十倍”。X10利用劃分式全局地(dì)址空間(簡稱)編程模型來解決并行類任務。代碼與數據作為(wèi)各自(zì)獨立的(de)單位,分别位于一(yī)個或多個“空間”當中,這就使得将單線程字節代碼(單獨空間)向高(gāo)性能集群中單核心或多核心處理(lǐ)器(多個空間)的(de)多線程處理(lǐ)能力轉化的(de)過程更為(wèi)簡便。X10代碼總體來說與Java比較相近;事實上,X10運行環境可(kě)以直接作為(wèi)本地(dì)可(kě)執行文件以及類文件應用于JVM當中。X10編譯器能夠輸出C++或是Java類型的(de)源代碼。達成與Java語言之間的(de)直接操作性是該項目的(de)努力方向。就目前而言,這種語言雖然還處于發展變化中,但也已經算得上相當成熟。其編譯器與運行環境支持一(yī)系列平台,包括Linux、Mac OS X以及Windows。包括基于Eclipse的(de)IDE及調試工具等都已經以Eclipse公共許可(kě)為(wèi)基礎進行發布。實驗性編程語言第九位: haXe大多數語言都可(kě)以用來編寫可(kě)移植代碼。C語言編譯器能夠作用于幾乎每一(yī)種CPU架構,而Java字節代碼則能夠在一(yī)切具備JVM的(de)環境中發揮功效。但haXe(讀音為(wèi)“hex”)能做(zuò)的(de)則比可(kě)移植性更多。它是一(yī)款跨平台語言,能夠适應各種不同類型的(de)運行環境——包括本地(dì)二進制解釋程序及虛拟機。開發人員可(kě)以利用haXe編寫程序,然後将結果編譯為(wèi)對象代碼,例如(rú)時下流行的(de)JavaScript、PHP、Flash/ActionScript或者NekoVM等等;而像C#、Java等其它輸出模塊目前仍處于研發階段。在核心語言之外有haXe标準庫作為(wèi)補充,其指向各類目标的(de)功能也同樣齊全,而且還為(wèi)目标平台的(de)獨特功能配備了專用的(de)函數庫。haXe在語法上與C語言相似,函數集合相當豐富。它的(de)主要優勢在于規避了目标平台自(zì)身固有的(de)缺陷。舉例來說,haXe具備JavaScript所欠缺的(de)嚴謹歸類;它在ActionScript的(de)基礎上增加了通用語句及類型推導;它還完全消除了PHP語言在語法方面的(de)設計疏漏與雜亂無序。雖然仍處于開發階段,但haXe在其創造者Motion Twin遊戲工作室的(de)推動下已經進入商業化運營,因此我們已經應該用嚴肅的(de)眼光看待它。它支持Linux、Mac OS X以及Windows平台,并采用數款開源類許可(kě)相結合的(de)分布模式。實驗性編程語言第十位: Chapel在高(gāo)性能計算領域,很少有哪家企業的(de)風頭能夠蓋過Cray,因此Cray公司的(de)原始編程語言Chapel能夠上榜也就毫不奇怪了。這是一(yī)款在設計上主要考慮到超級計算機及集群實際需求的(de)語言。Chapel是Cray公司Cascade Program項目的(de)一(yī)部分,該項目可(kě)謂野心勃勃,其部分計劃內(nèi)資金甚是由美國國防部研究計劃局(簡稱DARPA)所提供。其目标主要是從底層硬件中提取抽象并行算法,進而提高(gāo)現有架構的(de)性能表現,并使得并行類程序具備更好的(de)可(kě)移植性。Chapel的(de)語法脫胎自(zì)許多來源。除了幾款我們常見的(de)主流語言(例如(rú)C、C++以及Java),它還從像Fortran及Matlab這樣的(de)科學(xué)類編程語言中借鑒了不少概念型內(nèi)容。它的(de)并行處理(lǐ)能力在一(yī)定程度上與ZPL及高(gāo)性能Fortran密切相關,另一(yī)些Cray早期項目也是它的(de)學(xué)習目标。Chapel最引人注目的(de)特色之一(yī)是其“多分辨率編程”功能,這項功能使得開發人員能夠在應用程序中引入更多抽象化代碼,并在實施中添加更多細節闡述以使得定義本身更加明确。Chapel仍處于開發階段。目前它能夠運行于Cray超級計算機及各類高(gāo)性能集群之上,并且可(kě)以移植到大多數Unix類系統(包括Mac OS X以及安裝了Cygwin的(de)Windows系統)當中。該語言源代碼采用BSD型開源許可(kě)。

  • 前端越來越流行的(de)的(de)技術

    随着互聯網技術不斷的(de)發展,前端的(de)新技術也開始日新月異,舊(jiù)的(de)技術已經不能滿足工作的(de)需要,根據業務需求來将重構也是常有的(de)事情,為(wèi)了減少工作量,快速提高(gāo)工作效率,這些新出現的(de)技術也起着不可(kě)替代的(de)作用。後端的(de)有些架構已經穩定,作為(wèi)一(yī)名前端面對這些花樣百出的(de)技術,隻有不斷的(de)去(qù)學(xué)習研究,才能不落後于時代潮流。一(yī):TypeScriptTypeScript : http://www.typescriptlang.org/官方介紹:TypeScript是一(yī)種由微軟開發的(de)自(zì)由和(hé)開源的(de)編程語言。它是JavaScript的(de)一(yī)個超集,而且本質上向這個語言添加了可(kě)選的(de)靜态類型和(hé)基于類的(de)面向對象編程。從今天數以百萬計的(de)JavaScript開發者所熟悉的(de)語法和(hé)語義開始。可(kě)以編譯出純淨、 簡潔的(de)JavaScript代碼,并且可(kě)以運行在任何浏覽器上、Node.js環境中和(hé)任何支持ECMAScript 3(或更高(gāo)版本)的(de)JavaScript引擎中。設計了一(yī)套類型機制來保證編譯時的(de)強類型判斷。TypeScript 是 Microsoft 推出的(de)開源語言,使用 Apache 授權協議增加了靜态類型、類、模塊、接口和(hé)類型注解TypeScript 可(kě)用于開發大型的(de)應用TypeScript 易學(xué)易于理(lǐ)解二:React官方介紹:React 起源于 Facebook 的(de)內(nèi)部項目,因為(wèi)該公司對市場上所有 JavaScript MVC 框架,都不滿意,就決定自(zì)己寫一(yī)套,用來架設Instagram 的(de)網站。做(zuò)出來以後,發現這套東西很好用,就在2013年(nián)5月開源了。react官網: https://reactjs.org/--高(gāo)性能的(de)虛拟DOM--封裝的(de)事件機制--服務器端渲染--聲明式的(de)直觀的(de)編碼方式。--跨浏覽器兼容三:WebAssembly官方介紹:WebAssembly 是一(yī)種可(kě)以使用非 Java 編程語言編寫代碼并且能在浏覽器上運行的(de)技術方案。WebAssembly是一(yī)項由Mozilla、谷歌、微軟及蘋果聯合開發的(de)項目,緻力于為(wèi)各種語言定義一(yī)種二進制形式的(de)編譯目标格式,并設計一(yī)種可(kě)與當前的(de)Web平台集成并在Web環境中執行的(de)方案,最終實現在各類平台上以接近原生的(de)速度調用常見的(de)硬件功能WebAssembly 主要試圖解決現有技術的(de)一(yī)些問題:--JavaScript:性能不夠理(lǐ)想,以及語言本身的(de)一(yī)堆坑--Flash:私有技術(而且漏洞一(yī)堆),并且是純二進制格式--Silverlight:私有技術,并且是純二進制格式--各種插件(Plug-in):安全性問題,平台兼容問題優點--能顯著降低(dī)加載速度,同時改進運行性能。--二進制格式,容易翻譯到原生代碼,本地(dì)解碼速度比JS解析更快。發展趨勢:wasm 還提供了一(yī)個JavaScript APIwasm: http://webassembly.org/ 四:Yarn中文網:https://yarn.bootcss.com/官網: https://yarnpkg.com/en/官方介紹:Yarn 是一(yī)個依賴管理(lǐ)工具。能夠管理(lǐ)代碼,并與全世界的(de)開發者分享代碼。高(gāo)效、安全和(hé)可(kě)靠的(de),夠讓你使用其他開發者開發的(de)代碼,讓你更容易的(de)開發軟件。是一(yī)種新的(de) Hadoop 資源管理(lǐ)器,它是一(yī)個通用資源管理(lǐ)系統,可(kě)為(wèi)上層應用提供統一(yī)的(de)資源管理(lǐ)和(hé)調度,它的(de)引入為(wèi)集群在利用率、資源統一(yī)管理(lǐ)和(hé)數據共享等方面帶來了巨大好處。五:Angular 4和(hé)Angular 5Angular 在今年(nián)跨越了兩個大版本:于 3月23日 發布的(de) Angular 4 以及于 11月1日 發布的(de) Angular 5。angular: https://angularjs.org/--運行應用的(de)速度非常快。--使用MVC架構來開發Web應用程序--通過依賴性注入進行測試--最為(wèi)核心的(de)是:MVVM、模塊化、自(zì)動化雙向數據綁定、語義化标簽、依賴注入六:Vue.jsvue: https://cn.vuejs.org/前面說過,vue之所以流行,在于它的(de)優點衆多:--輕巧、高(gāo)性能、可(kě)組件化的(de)MVVM庫,--擁有非常容易上手的(de)API;--方便構建數據驅動的(de)Web界面的(de)庫。--構建用戶界面的(de) 漸進式框架。--采用自(zì)底向上增量開發的(de)設計。--核心庫隻關注視(shì)圖層,--非常容易學(xué)習,容易與其它庫或已有項目整合。--Vue.js的(de)崛起始于2015年(nián),并在過去(qù)一(yī)年(nián)中快速發展。下圖所示為(wèi)這套框架可(kě)觀的(de)市場接受度:

  • 字節跳動确定接盤錘子(zǐ)科技,他們到底看中了羅永浩什麽?

    四面楚歌的(de)羅永浩仍然急需下一(yī)個金主,畢竟情懷和(hé)相聲賣不了手機。編者按:本文來自(zì)“第一(yī)财經”,作者:呂倩、李娜;36氪經授權轉載。部分錘子(zǐ)科技員工簽約字節跳動1月22日,錘子(zǐ)科技部分員工與北京字節跳動科技有限公司簽訂員工合同,據第一(yī)财經記者獨家獲悉,簽訂勞動合同的(de)前錘子(zǐ)科技員工還收到了一(yī)張印有 ”歡迎加入字節跳動”字樣的(de)合同說明。這些員工工作地(dì)點暫時不會變化,但具體工作內(nèi)容方面,目前字節跳動方面尚未與錘子(zǐ)員工詳細對接。據接近錘子(zǐ)科技的(de)人士對第一(yī)财經記者透露,确有部分錘子(zǐ)員工已和(hé)北京字節跳動網絡技術有限公司簽署了勞動合同。據了解,錘子(zǐ)所有硬件業務員工和(hé)一(yī)部分軟件員工都和(hé)字節跳動簽了勞動合同,而該勞動合同上印有“歡迎加入字節跳動”的(de)字樣。對此,字節跳動方面對第一(yī)财經記者回應稱,字節跳動收購了錘子(zǐ)科技部分專利使用權,探索教育領域相關業務。因為(wèi)具體交易涉及保密條款,不便披露。也有錘子(zǐ)員工入職公司,這是正常的(de)人才流動。此前,字節跳動針對與錘子(zǐ)科技之間的(de)合作曾公開回應稱,有收購錘子(zǐ)科技部分專利使用權的(de)計劃,用于探索教育領域相關硬件。接近錘子(zǐ)科技方面人士對第一(yī)财經記者表示,之前的(de)确有聽說過關于字節跳動在教育平闆、早教機等硬件産品方面的(de)信息,但真正産品級定義還沒具體落地(dì),雙方在軟硬件方面的(de)合作剛剛啓動。另外,據第一(yī)财經記者獨家獲悉,作為(wèi)錘子(zǐ)科技編号0002号人物,肖鵬已于2018年(nián)12月底加入OPPO旗下realme,擔任設計總監一(yī)職。當年(nián)錘子(zǐ)科技剛剛在新中關大廈12層開業成立時,第一(yī)天隻有羅永浩與朱蕭木兩個人,幾天後,肖鵬加入了錘子(zǐ)團隊。當時,著名UI設計師網站DRIBBBLE上,肖鵬是其人氣頗高(gāo)的(de)國內(nèi)設計師,而對産品細節苛求完美的(de)羅永浩在該網站上長(cháng)期潛水、關注肖鵬。其後,老羅特意跑到肖鵬工作的(de)百度公司樓下約他一(yī)起吃飯,并通過對公司設計理(lǐ)念、用戶體驗與審美追求的(de)觀點講解,成功打動肖鵬加入。如(rú)今,編号0002的(de)員工也已離(lí)開錘子(zǐ)。字節跳動為(wèi)什麽要接盤錘子(zǐ)科技張一(yī)鳴字節跳動布局教育領域之心由來已久,恰好錘子(zǐ)在這方面早有專利。2018年(nián)年(nián)初,今日頭條推出了一(yī)款介于“得到”和(hé)“喜馬拉雅”之間的(de)一(yī)個知識付費平台——“好好學(xué)習”App,進軍知識付費領域。2018年(nián)3月,今日頭條與真格基金、藍圖創投共同領投曉羊教育數千萬人民币A+輪。企查查消息顯示,曉羊教育是一(yī)家To B的(de)公司,主要做(zuò)中小學(xué)智慧校園和(hé)教育雲服務。2018年(nián)5月,今日頭條推出少兒在線英語品牌gogokid,面向12歲以下學(xué)齡兒童——gogokid在騰訊視(shì)頻投放了貼片廣告,并獨家贊助了芒果TV大型親子(zǐ)節目《爸爸去(qù)哪兒6》。2018年(nián)7月,今日頭條又被爆出收購在線教育公司學(xué)霸君的(de)ToB業務。截至2018年(nián)3月,學(xué)霸君單月流水過3000萬元。主營業務方面,C端用戶産品續費率超過90%;B端用戶目前覆蓋全國200多所學(xué)校。由此可(kě)以看出,今日頭條——或者字節跳動——早就開始了自(zì)己在教育領域的(de)布局。而張一(yī)鳴的(de)布局路線就是C端由自(zì)己做(zuò)産品,B端通過投資并購布局。而根據公開數據顯示,錘子(zǐ)科技在軟件著作權方面一(yī)共有8項專利。其中包括錘子(zǐ)錢包軟件、語音助手軟件、便簽軟件和(hé)時鍾軟件等。如(rú)今按照字節跳動“收購錘子(zǐ)部分專利”的(de)說法,也就是利用錘子(zǐ)手中的(de)語音助手、便簽軟件和(hé)時鍾等相關專利,來完善自(zì)己在教育領域的(de)相關布局。除此之外,老羅手中還有鎖屏的(de)、截屏的(de)、靜音計時的(de)、手機受到撞擊後提示的(de)、自(zì)拍的(de)、快速拍照的(de)專利。終于找到了買家,但老羅的(de)頭痛還沒有結束此前第一(yī)财經曾報道(dào)稱,羅永浩先後接觸過百度、華為(wèi)、阿裏等方面,尋求接盤,但均未談妥。一(yī)度傳聞中國移動要收購錘子(zǐ),讓羅永浩給飛(fēi)信團隊“上上課”。但這筆(bǐ)交易最終流産。而從錘子(zǐ)的(de)财務報表中可(kě)以看出,這家公司的(de)虧損情況足以讓潛在的(de)買家望而卻步。錘子(zǐ)科技 2016 年(nián)底總資産 4.2 億,負債 6.63 億,所有者權益 -2.43 億,已然資不抵債。原因是 16 年(nián)度營業收入 8 億元,虧損 4.27 億所緻。當我們在談論錘子(zǐ)時,其實我們就是在讨論羅永浩。自(zì)從2012年(nián)4月28日,連續創業者羅永浩在微博宣布要“注冊公司做(zuò)手機”開始,這個曾倒賣過二手書、走私車,做(zuò)過英語教師,創建過牛博網,開過英語培訓學(xué)校,出過自(zì)傳,甚至砸過西門子(zǐ)的(de)冰箱的(de)男人,就開始了一(yī)台叫作“會講相聲的(de)理(lǐ)工男怎麽做(zuò)手機”的(de)舞台劇。正因如(rú)此,錘子(zǐ)科技從一(yī)出生,就帶上了羅永浩濃重的(de)個人色彩。而如(rú)今羅永浩四處兜售錘子(zǐ)卻四處碰壁,甚至在“聊天寶”發布會上給電子(zǐ)煙、電影打廣告、做(zuò)宣發——所以這也難怪“羅永浩瘋狂續命”、“老羅求生欲真強”的(de)戲谑聲四起。不過,四面楚歌的(de)羅永浩仍然急需下一(yī)個金主,畢竟情懷和(hé)相聲賣不了手機

  • 為(wèi)什麽越來越少的(de)人用jQuery

    在原來的(de)開發中,工程師們不會太糾結于性能問題。但是現在不同了,為(wèi)了提高(gāo)用戶體現,首要的(de)就是解決浏覽器繪制所帶了的(de)性能問題。經典的(de)莫過重繪和(hé)回流這兩個概念。**重繪:**就是頁面重新進行繪制,比方說,修改一(yī)個元素的(de)背景顔色。**回流:**一(yī)般來說,浏覽器進入頁面的(de)時候就已經進行了一(yī)次回流,回流其實指的(de)就是頁面重新進行排版布局。既然我們想提高(gāo)性能,那麽就可(kě)以先從這兩概念入手,肯定是以小的(de)代價更新頁面是提高(gāo)性能好的(de)手段。但可(kě)惜的(de)是,jQuery并沒有做(zuò)到。為(wèi)什麽這麽說,請看以下分析:當我們拿到一(yī)組新聞數據要渲染到ul标簽裏時,通常我們會先将新聞數據逐條進行字符串拼接,緊接着使用$符選擇ul元素,并修改ul的(de)innerHTML的(de)值為(wèi)拼接好的(de)字符串(使用html API),此時完成了次渲染。這次頁面進行了重繪(這時必然的(de)),首先不分析的(de)性能好或壞,用下一(yī)個說明将更加有力。比如(rú)說我們這時多了一(yī)個換一(yī)換按鈕。在傳統開發模式中,這時的(de)換一(yī)換按鈕肯定執行的(de)還是上面的(de)代碼,獲取元素,修改元素的(de)innerHTML,但是現在問題出現了,就是我們有必要将所有元素重新删除,再重新添加一(yī)遍嗎?答案肯定是不需要(下圖所示,創建一(yī)個元素的(de)代價有多大)。因為(wèi)這時我們隻需要将每一(yī)個li裏的(de)文字和(hé)a标簽裏的(de)鏈接修改即可(kě),那顯然是沒有必要像上面那樣重新再添加一(yī)遍li的(de)。因為(wèi)一(yī)個DOM元素,可(kě)能包含上百條屬性,這對性能開銷是很大的(de)。那麽現在出現的(de)新概念 Virtual DOM(虛拟DOM),就可(kě)以解決這個問題。其實Virtual DOM就是對真實DOM節點的(de)描述,通過改變Virtual DOM來以小變動來改變真實DOM(Virtual DOM不一(yī)定真的(de)比jQuery性能更好)。

  • [Vue進階]為(wèi)什麽我的(de)代碼讓别人看起來頭皮發麻?

    前面的(de)話首先我想說的(de)是,這篇文章(zhāng)不是介紹什麽高(gāo)深的(de)技術,請各位熟知。涉及的(de)都是日常開發當中一(yī)些不符合規範的(de)案例,借此分享給諸位。如(rú)果你是小白,或許這篇文章(zhāng)對你有點幫助,如(rú)果你是老司機,看完請輕點拍!有什麽建議或意見請留言斧正,謝謝!有些同學(xué)在開發某個新功能時根據需求就哐哐哐(按照自(zì)己的(de)代碼風格)一(yī)頓撸。寫完發現,另一(yī)個地(dì)方也有這個模塊功能,可(kě)能隻是标題的(de)顔色,字體大小不對。怎麽辦? 于是很雞賊的(de)複制粘貼過去(qù),改吧(ba)改吧(ba),提交代碼,萬事大吉!自(zì)己倒是爽了,功能是按照需求如(rú)期完成了啊,沒毛病。可(kě)是你卻忽視(shì)了一(yī)件很重要的(de)東西:團隊。記住,你不是一(yī)個人在寫代碼。這篇文章(zhāng)有别于其他教程類的(de)文章(zhāng),不是教你如(rú)何制定代碼規範,也不是告訴你這樣寫就是錯的(de)亦或說是正确的(de)。本文是我這些天從優化别人代碼過程中的(de)所見和(hé)所得,凝結成文。旨在分享給大家,對号入座,然後改之。三人行,必有我師!;擇其善者而從之,其不善者而改之。 由于我是做(zuò)前端的(de),所以隻說前端代碼規範,其他語言同樣适用!目的(de)把一(yī)些常見的(de)錯誤的(de)不良的(de)代碼示例分享給大家,希望有的(de)改之,無則加勉。看完之後,希望對你們有所幫助,提高(gāo)自(zì)己的(de)代碼質量,每個人都能寫出一(yī)手漂亮(liàng)的(de)代碼。這是這篇文章(zhāng)最大的(de)目的(de)了!概述本文将以我的(de)親身項目經曆為(wèi)例,來談談我們日常開發當中,就代碼層面來講,我們應該注意的(de)一(yī)些小細節。希望各位看客能吸取精華去(qù)其糟粕。主要涉及的(de)方面有:項目結構文件命名路由Vue 組件JavaScriptHtmlCssGit 代碼提交我将會從以上幾個方面逐一(yī)枚舉和(hé)大家分享讨論。枚舉1. 項目結構沒說之前,您不妨看下自(zì)己的(de)項目結構是什麽樣的(de)。目前我們的(de)項目結構是這樣的(de):my-project ├── .idea                  # 這個是編輯器生成的(de) ├── build                  # Webpack 配置文件放在這裏 ├── config                 # Vue 基本配置文件放在這裏 ├── node_modules           # 第三方依賴 ├── src                    # 項目源碼(核心文件) │   ├── assets             # 資源文件(js, css, scss) │   ├── components         # 所有組件 │   ├── js                 # 自(zì)己寫的(de) js,裏面各種工具類方法等 │   ├── mixins             # 混合 │   ├── router             # 路由 │   ├── vuex               # 狀态管理(lǐ) │   ├── App.vue            # 根組件 │   └── main.js            # 入口文件 ├── static                 # 靜态資源,一(yī)般放 img ├── theme                  # 主題文件,修改的(de) Element-UI 主題 ├── .babelrc               # babel 編譯配置 ├── .editorconfig          # 代碼格式 ├── .gitignore             # Git 提交忽略的(de)文件配置 ├── .postcssrc.js          # 轉換 css 的(de)工具配置文件 ├── element-variables.css  # Element 全局定義的(de)變量,不明白為(wèi)啥放這兒 ├── index.html             # 主頁模闆 ├── package-lock.json      # 用來鎖定依賴的(de)版本号(NPM 自(zì)動生成) ├── package.json           # 項目基本信息 └── README.md              # 項目介紹 複制代碼都是用 vue-cli 生成的(de),目錄結構和(hé)命名規範也就沒啥可(kě)說的(de)。可(kě)能随着時間的(de)推移,自(zì)己會在項目裏加一(yī)些東西(文件或文件夾)。拿上面我們的(de)項目為(wèi)例來說幾點吧(ba):根目錄下不要有 css 文件:比如(rú) element-variables.css 文件,雖然這個文件是 Element自(zì)定義主題 自(zì)動生産的(de),但是可(kě)以通過配置更換生成所在目錄。因為(wèi)它屬于 theme 文件夾下的(de)東西,所以應該放它下面的(de)。js 文件夾應該命名為(wèi) utils:因為(wèi)它對外暴露的(de)都是工具類方法,這樣更顯語義化。關于項目結構,我發現的(de)就這麽多。每個項目的(de)目錄可(kě)能會不同,這個就看你們的(de)規範了。2. 文件的(de)命名它包含文件的(de)命名和(hé)文件夾的(de)命名。依我們的(de)項目為(wèi)例,我重點說下 src/components 目錄下的(de)命名,真的(de)是五花八門:2.1. 文件名不夠語義化這個還算正常,但還是有些問題。這裏是一(yī)些問題清單:這個模塊的(de)中文叫,是關于機器人學(xué)習的(de),叫 knowledgeBaseManagement 雖然很好的(de)翻譯了中文意思,但總覺的(de)有點長(cháng),叫 robot 會不會好些?而且文件夾下的(de)文件命名也不夠語義化下面是整理(lǐ)過後的(de)樣子(zǐ):robot ├── addQuestion.vue ├── editQuestion.vue ├── index.vue └── missedQuestion.vue 複制代碼這個我就不想說了,看的(de)我頭皮發麻。從字面意思上來講,我就認識一(yī)個 TreeNode2.vue。後面還加個 2 是什麽鬼?2.2. 文件目錄不統一(yī)這屬于一(yī)類問題,即裏面太亂了,不統一(yī),問題清單:src/components/moduleName/ 下除了子(zǐ)模塊外,盡量不要瞎放其他無關的(de)文件夾,如(rú)上面的(de) src、component/common、topcallcenterList/src 下的(de)圖片可(kě)以放到 static 下如(rú)果是功能型組件(上面的(de) color 是一(yī)個顔色選擇器組件),盡量放到一(yī)個叫 package 或者 lib 的(de)文件夾下。因為(wèi)  src/components 下的(de)模塊都是系統模塊,不要混淆。elvesSetting/top 如(rú)果是某幾個頁面頭部的(de)公共部分盡量放到 components/common 下2.3. 文件名過長(cháng)如(rú)果一(yī)個模塊下就一(yī)個文件,盡量寫成 index.vue 。這裏文件夾和(hé)文件同名,路由是不是很長(cháng)?你在其他文件中 import 的(de)時候是不是也不方便? 而且我發現 problemManagement 和(hé) problemRetrieve 都屬于問題管理(lǐ)模塊,完全可(kě)以合并到一(yī)個文件夾裏啊。還有,文件夾已經表明是問題管理(lǐ)模塊了,所以文件名就不要再以 problem*** 開頭了。不覺得啰嗦嗎? 下面是整理(lǐ)過後的(de)樣子(zǐ):problemManagement │   ├── index.vue │   ├── retrieve.vue qualityCheckAppeal     └── index.vue 複制代碼3. 路由我們系統裏的(de)路由都是一(yī)級路由。舉個栗子(zǐ):userManagement ├── add.vue └── update.vue 複制代碼用戶管理(lǐ)下有增改兩個功能,不使用彈框去(qù)做(zuò)的(de)前提下,假如(rú)說 add 和(hé) update 對應兩個路由是 /addUser,/updateUser。我們系統地(dì)址欄是這樣顯示的(de):// 增加用戶 localhost:3030/addUser // 修改用戶 localhost:3030/updateUser?id=1 複制代碼雖然地(dì)址欄路由短(duǎn)看起來會讓人舒服,但是模塊多的(de)話,就不容易區分,其實應該這樣做(zuò):// 增加用戶 localhost:3030/user/add // 修改用戶 localhost:3030/user/update?id=1 ... // 總結 localhost:3030/module/function?queryString 複制代碼當然也可(kě)以使用最近流行的(de) RESTful API 設置規範,專門用于 Web 數據結構的(de)設置。阮一(yī)峰老師有一(yī)篇非常不錯的(de)文章(zhāng),推薦給大家,我就不再贅述辣。傳送門->4. Vue 組件關于 Vue 組件開發規範可(kě)以參考官方的(de)風格指南。下面是我們項目的(de)一(yī)些問題清單和(hé)改正意見,我列舉一(yī)下作為(wèi)對照:不要在 App.vue 中直接修改第三方樣式(比如(rú):ElementUI)。請使用外部文件導入:App.vue 文件:<!-- incorrect --> ... <style>   .el-input__icon {     cursor: pointer   } </style> <!-- correct --> ... <style>   @import 'element-style-overwrite';   ... </style> 複制代碼_element-style-overwrite.scss 外部樣式文件:.el-input__icon {   cursor: pointer } 複制代碼給每個組件起個名字是個好習慣。例如(rú) Dialog 組件:// incorrect export default {   ... } // correct export default {   name: 'MyDialog', // 以大駝峰命名   ... } 複制代碼給組件樣式設置作用域 scoped如(rú)果你在某個子(zǐ)組件中修改了全局樣式,本來隻想在該組件中使用,沒想到造成了全局污染。等進行代碼 review 的(de)時候是很難排查的(de)。例如(rú),用戶管理(lǐ)(UserManagement.vue)組件:<style scoped> ... </style> 複制代碼組件名要麽單詞大寫開頭 (PascalCase),要麽橫線連接(kebab-case):// incorrect components/ └── mycomponent.vue components/ └── myComponent.vue // correct components/ └── MyComponent.vue // 或者 components/ └── my-component.vue 複制代碼.vue 單文件中的(de) <template>、<script>、<style> 标簽的(de)順序問題有的(de)人喜歡這樣寫:<style>...</style> <template>...</template> <script>...</script> 複制代碼也有人喜歡這樣寫:<script>...</script> <style>...</style> <template>...</template> 複制代碼如(rú)果你想寫,那好,不阻攔,拜托你統一(yī)下行不?别這個組件這個順序,那個組件那個順序。累不累? 這裏我強力推薦大家按照官方的(de)寫法,即下面的(de)順序來寫:<template>...</template> <script>...</script> <style scoped>...</style> 複制代碼組件中的(de)字體圖标(icon)不要用 png 圖片不知道(dào)你們項目裏有沒有很多 icon 圖标。反正我們項目不少且都是 png 圖片。靜态文件夾裏好多小圖标。本來左側菜單也都是 png 圖标的(de),被我看着不爽重構了一(yī)下。把所有的(de) png 圖标換成了 fontIcon 字體。字體圖标的(de)優勢:減少 http 請求和(hé)項目體積樣式容易控制用戶體驗好如(rú)何制作 fontIcon 字體圖标呢(ne)?其實很簡單:1、可(kě)以先去(qù)阿裏圖庫找自(zì)己喜歡的(de)或者讓你自(zì)己家的(de)UI小姐姐做(zuò)。2、下載 svg 格式的(de),如(rú)果是UI做(zuò)的(de),記得讓她轉換下。3、去(qù) icomoon 字體圖标生成網站導入剛才所有的(de) svg 圖标,設置字體名稱導出即可(kě)。4、再在文件中引用,大功告成。使用兩個空格(space)進行縮進這個放在全局規範會比較好一(yī)些。為(wèi)什麽是兩個空格? 大神們都是這樣做(zuò)的(de)!而且更重要的(de)是,使用兩個空格開發項目,傳到 github 或者 gitlab 上排版會很好看。什麽?不會設置?百度啊!你用的(de)什麽編輯器就查這個編輯器怎麽設置的(de)。一(yī)般是統一(yī)把全局規範設置放到一(yī)個叫 .editorconfig 的(de)文件夾裏,有的(de)編輯器支持這個文件,比如(rú):webstorm。有的(de)則不支持,對于不支持的(de)編輯器,可(kě)以下載安裝 editorConfig 插件,如(rú):atom、sublime、vscode 等。代碼中不用的(de)注釋都删掉調試結束,把不用的(de) console.log(...) 及時删掉,它會影響性能data 中的(de)屬性命名和(hé)初始化問題// incorrect export default {   data () {     return {       text: 'wwwwwwww', // 這是啥?       editBoxId: null, // 很明顯Id是String,這裏他初始化一(yī)個 null       flag: '',    // 這個表示的(de)啥?看意思應該是個 Boolean 類型,為(wèi)啥弄個 String ?       pSize: 10,   // pSize 是啥?       cPage: 1,    // cPage 是啥?       popCsr:true, // popCsr 是啥,恐怕現在連那個開發者自(zì)己都不知道(dào)了吧(ba)       callcenterAuthority: false, // 這麽長(cháng)你告訴是一(yī)個 Boolean 類型的(de)     }   } } // correct export default {   data () {     return {       text: '', // 'wwwwwwww' 沒卵用删掉       editBoxId: -1,  // 它應該是個 Number 類型       flag: false,    // 它應該是個 Boolean 類型啊       pageSize: 10,   // pSize -> pageSize 多好       currentPage: 1, // 完整寫法更易懂,不是嗎?       isPopcsr: true,    // Boolean 類型的(de)總是前面加個 is       isAuthority: false, // 是否授權。     }   } } 複制代碼其實還有好多問題,我就不一(yī)一(yī)列舉了。諸如(rú)此類的(de)問題,希望各位看客們都能吸取精華,去(qù)其糟粕。Props 中的(de)屬性聲明要明确類型// incorrect export default {   props: ['node', 'size'] } // correct export default {   props: {     node: Object, // 對象     size: [String, Number], // 兩種類型都可(kě)以   } } 複制代碼Vue 生命周期函數按順序放在 methods 之前為(wèi)什麽說這個呢(ne)? 我們項目中有的(de)組件就 methods 中的(de)代碼就上千行。如(rú)果生命周期函數放在 methods 之後,拉來拉去(qù)非常不方便:// incorrect export default {   ...   created () {},   methods: {     // 省略 1000 行代碼     // ...   },   mounted () {},   beforeDestroy () {},   destroy () {}, } // correct export default {   ...   created () {},   mounted () {},   beforeDestroy () {},   destroy () {},   methods: {     // 省略 1000 行代碼     // ...   } } 複制代碼Vue 組件中的(de) this 賦值要統一(yī)代碼中,有時候我們需要把 this 賦給一(yī)個變量,你要麽統一(yī)賦值給變量 vm ,要麽統一(yī)賦值給變量 self。别一(yī)個組件裏,變來變去(qù)。// incorrect export default {   ...   methods: {     one () {      let vm = this     },     two () {       let self = this     }   } } // incorrect export default {   ...   methods: {     one () {      let vm = this      // 或者      let self = this     },     two () {       let vm = this       // 或者       let self = this     }   } } 複制代碼Vue 組件中 Html 如(rú)果過長(cháng),請換行<!-- incorrect --> <el-input v-model="ruleForm.maskInput" size="small" class="nodeIpt" :icon="ruleForm.maskInput ? 'circle-close':''"  @click="ruleForm.maskInput = ''" @keyup.enter.native="nodesure($event,'ruleForm')"></el-input> <!-- correct --> <el-input    v-model="ruleForm.maskInput"    size="small"    class="nodeIpt"    :icon="ruleForm.maskInput ? 'circle-close':''"     @click="ruleForm.maskInput = ''"    @keyup.enter.native="nodesure($event,'ruleForm')"> </el-input> 複制代碼Vue 中監聽的(de)事件記得垃圾回收舉個例子(zǐ),如(rú)果我們在 Vue 組件的(de) created 聲明周期鈎子(zǐ)中監聽了一(yī)個點擊事件,那麽,當組件銷毀(beforeDestroy)之前記得把這個事件釋放,看代碼:export default {   ...   created () {     document.addEventListener('click', this.handleClick)   },   beforeDestroy () {     document.removeEventListener('click', this.handleClick)   } } 複制代碼Vue 組件中不要直接操作異步請求(axios)把所有的(de)異步請求方法封裝成一(yī)個獨立 js 文件,或者放到 Vuex 中,千萬不要耦合到 Vue 組件中。因為(wèi)代碼量太多,會加重組件的(de)後期維護,各司其職不好嗎?不好的(de)範例:// User.vue export default {   ...   mounted () {     this.getUsers()   },   methods: {     getUsers () {       this.axios(url, data, (response) => {         // Do something       }).catch(err => {         console.error(err)       })     }   } } 複制代碼如(rú)果項目比較小還好,我沒意見,如(rú)果項目較複雜,千萬别這麽幹。下面是推薦的(de)做(zuò)法:// server.js // 專門處理(lǐ)數據請求的(de)文件,也就是我沒常說的(de)MVC中的(de) M 層 import axios from 'axios' export default {   /**    * 獲取用戶列表    */    getUsers (url, data) {       return axios.get(url, data)    } } // User.vue import api from '@/api/server.js' export default {   ...   data () {     return {       users: null     }   },   mounted () {     api.getUsers((response) => {       this.users = response.data.data     }).catch(err => {       console.log(err)     })   } } 複制代碼5. JavaScript下面所有的(de)錯誤代碼示例都是從我們的(de)項目中發現的(de),撿主要的(de)列出來一(yī)些。希望犯同樣錯誤的(de)你能及時改正哦~變量命名要語義化命名// incorrect var a = document.getElementById(this.lastid) // 這裏的(de) a var aa = true // 這是啥你們知道(dào)嗎? // corrent let orderId = this.order.id let currentTime = Date.now() 複制代碼多個單詞要駝峰命名// incorrent vm.timedefault = timedvalue vm.currentsessionid = id // corrent vm.timeDefault = timedValue vm.currentSessionId = id 複制代碼變量要加注釋上面那一(yī)坨你們知道(dào)啥意思嗎?如(rú)果這個開發人員離(lí)職了,那可(kě)是坑了後來人了。所以,做(zuò)開發不能自(zì)己爽了,做(zuò)一(yī)個帥氣和(hé)代碼于一(yī)身的(de)工程師,難道(dào)不更好嗎?不要重複使用 var 聲明變量// incorrect var name = 'test'; var age = 12; var hobby = 'sport'; // correct var name = 'test',   age  = 12,  hobby = 'sport'; 複制代碼= 或 == 之間要保留一(yī)個空格錯誤的(de)範例:// 變量 var name='test' var arr=[] var obj={   id:1 } // if 判斷 if(this.id==currentId){   // Do something } // for 循環 for(let i=0;i<arr.length;i++){   // Do something } 複制代碼上面三種情況是最常見的(de),其他雷同。下面是正确的(de)範例:// 變量 var name = 'test' var arr = [] var obj = {   id: 1 } // if 判斷 if(this.id == currentId) {   // Do something } // for 循環 for(let i = 0; i < arr.length; i++) {   // Do something } 複制代碼右括号 ) 遇到 左大括号 { 時要空一(yī)格下面是錯誤的(de)範例:// if if(a === b){   // Do something } // for for(let i = 0; i < arr.length; i++){...} // 函數 var T = function(params){   ... } 複制代碼常見的(de)幾種情況,其他情況不再列舉。下面是正确的(de)範例:// if if (a === b) {   // Do something } // for for (let i = 0; i < arr.length; i++) {...} // 函數 var T = function(params) {   ... } 複制代碼非空判斷問題在我們項目裏,有人這樣寫:// 假如(rú) Vue 組件中有一(yī)個叫 userId 的(de) data 屬性 if (userId != '' || userId != 0 || userId != false || userId != null || userId != undefined) {   // ... } 複制代碼當遇到上面幾種情況的(de)時候,下面代碼實現的(de)效果是一(yī)樣的(de):if (!userId) {   // ... } 複制代碼對象聲明問題不要用下面的(de)方式之一(yī)去(qù)聲明一(yī)個對象:// incorrect var arr = new Array() // 數組 var arr = '' // 雖然 js 是弱類型,也不能這樣聲明 var obj = new object() // 對象 var obj = '' 複制代碼下面是推薦做(zuò)法,也是大衆做(zuò)法:// 聲明數組 let arr = [] // 聲明對象 let obj = {}  // or let obj = null 複制代碼異常處理(lǐ)問題我們在處理(lǐ)異步請求的(de)時候,一(yī)定要對 response 中的(de)數據進行異常處理(lǐ),不然控制台回報 response.data is not undefined,我們項目我看了下,有些地(dì)方沒做(zuò)處理(lǐ),結果在做(zuò)測試的(de)時候,浏覽器控制台一(yī)頓報錯。那叫一(yī)個難看啊!// incorrect this.axios(url, data, (response) => {   let result = response.data.data }) // correct this.axios(url, data, (response) => {   if (response.data && response.data.code === 1) {     let result = response.data.data   } }).catch(err => {   console.error(err) }) 複制代碼如(rú)果這個取值過長(cháng)且多次用到,請賦給一(yī)個變量export default {   ...   methods: {     handleClick (evt) {       // incorrect       evt.target.parentNode.innerHTML = 'test'       evt.target.style.width = '100px'       evt.target.style.height = '200px'              // correct       let target = evt.target       target.parentNode.innerHTML = 'test'       target.style.width = '100px'       target.style.height = '200px'     }   } } 複制代碼6. HTML正确的(de)使用标簽項目中我見有人寫個按鈕居然用 span 标簽,或者一(yī)個 div 。下面是錯誤的(de)範例:// 用 div 當按鈕 <div class="btn">搜索</div> // 在 span 裏 嵌套 el-input 組件 // 這樣做(zuò)的(de)同學(xué),肯定不知道(dào) el-input 編譯後的(de)代碼是啥樣的(de)! <span>   <el-input></el-input> </span> // 用 label 當标題 // label 标簽是配合表單使用的(de) <label>标題</label> // 加粗字體沒有用原生标簽 <span class="bold">我是加粗字體</span> 複制代碼下面是改正後的(de)範例:// 用 H5 的(de) button <button class="btn">搜索</button> // 如(rú)果要包含 el-input 組件請使用塊級元素,并加上合适的(de) class <div class="el-input__wrapper">   <el-input></el-input> </div> // h1-h6 才是标題的(de)正确打開方式 <h2>标題</h2> // 加粗字體請使用原生标簽 // 然後使用 class 控制字體樣式 <strong class="bold">我是加粗字體</strong> 複制代碼所有的(de)按鈕,超鏈接,鼠标的(de) :hover 狀态都應該是手形。a, button {   cursor: pointer } 複制代碼id 和(hé) class 或者其他的(de)屬性,命名要語義化不要命個名隻有你自(zì)己知道(dào)。這樣會帶來後期維護困難。<!-- incorrect --> <div class="dfdf">   <el-form class="loginForm">...</el-form> </div> <!-- correct --> <div class="login-form__wrapper">   <el-form class="loginForm">...</el-form> </div> 複制代碼把代碼縮進改成 2 個空格Html 中的(de)屬性之間保留一(yī)個空格距離(lí)<!-- incorrect --> <el-input v-model="form.loginUser"  size="small"   placeholder="請輸入用戶名"></el-input> <!-- 不覺的(de)上面的(de)代碼很醜嗎,我知道(dào)你或許不會這樣做(zuò) --> <!-- 但還真有人這樣做(zuò) --> <!-- 下面是改進後的(de)代碼 --> <el-input v-model="form.loginUser" size="small" placeholder="請輸入用戶名"></el-input> 複制代碼每個代碼快盡量加上注釋代碼量少尚且不說,如(rú)果一(yī)個 .vue 文件很長(cháng)的(de)話,找起來就很痛苦了。你還别說,我們項目裏就是這樣沒注釋。<!-- 正确的(de)示範 --> <template>   <div class="user-managerment__wrapper">     <!-- Header -->     <div class="header">...</div>          <!-- User table -->     <div class="user-table__wrapper">       <el-table>...</el-table>     </div>          <!-- Add user dialog -->     <div class="add-user__dialog">       <el-dialog title="新增用戶">...</el-dialog>     </div>   </div> </template> 複制代碼7. CSS{ 和(hé)選擇器保持一(yī)個空格距離(lí).selector {   ... } 複制代碼給每個樣式模塊加上注釋有助于區分// Global style html, body, a, div {   margin: 0 } // Login style .login button {   ... } // User manager style .user-manager__wrapper {   ... } 複制代碼每個獨立樣式間保留一(yī)行距離(lí)見上面的(de)示例選擇器不要嵌套太多層級嵌套太多層級會影響性能,盡量保證在三層以下:// incorrect .user-management .user-box .user-form .el-form-item .remark {   color: #42b983 } // correct .user-management .user-form .remark {   color: #42b983 } 複制代碼8. Git 代碼提交提交前先 pull 代碼寫代碼前記得先 pull 下别人的(de)代碼,這是個好習慣。别等到自(zì)己寫完 push 後才發現代碼有沖突。# pull git pull # modified git add someFiles git commit -m "..." git push 複制代碼寫好提交注釋大家可(kě)以看我 沸點。同事寫的(de)注釋。希望有問題的(de)同學(xué)可(kě)以及時改正哦。另外,關于 Git 如(rú)何正确的(de)寫好注釋,這裏有幾篇文章(zhāng)講的(de)很好,大家可(kě)以看看:我的(de)Git commit規範如(rú)何撰寫 Git 提交信息下面舉個例子(zǐ),比如(rú)我這次在用戶管理(lǐ)模塊中修改了兩個 bug。如(rú)何以清單的(de)方式提交呢(ne)? 看代碼:# add file git add src/components/userManager/index.vue # commit git commit -m 'fix: 用戶管理(lǐ)模塊bug修改。 修改內(nèi)容: - 修改了列表分頁的(de)bug - 修改了當用戶點擊編輯按鈕彈框無法顯示的(de)bug ' # push code git push 複制代碼你千萬别用下面的(de)方式之一(yī)去(qù)提交你的(de)代碼說明:# 說一(yī)些毫無意義的(de)內(nèi)容 git commit -m "fix: ok!" # or 不加 fix、feat、refactor、doc、style等前綴 # 為(wèi)什麽要加這些前綴呢(ne)?問得好! # 是方便日後檢索,當我們以這些前綴去(qù)搜索修改日志的(de)時候 # 是很容易的(de)哦,微笑。 git commit -m "修改用戶模塊bug"

  • 創新工場第4期5億美元基金背後:不超1個月超額完成

    創新工場董事長(cháng)兼CEO李開複創新工場管理(lǐ)資産總額新浪科技訊4 月 25 日下午消息,創新工場對外宣布完成第四期美元風險投資基金的(de)超額募集,總規模為(wèi) 5 億美元。此輪募資完成過後,截止 2018 年(nián) 4 月,創新工場共管理(lǐ) 6 支基金,管理(lǐ)的(de)資産規模達 110 億元人民币。創新工場董事長(cháng)兼CEO李開複透露,創新工場人民币三期已啓動募集,目标金額 25 億元,年(nián)限8+2。根據李開複介紹,第四期美元基金不超過 1 個月完成,并超額募集,原有投資人繼續加注,國際知名養老基金、母基金、主權基金、國際先進制造公司。對于第四期美元基金的(de)LP,李開複沒有透露太多,僅指出包括西班牙銀行、歐洲知名金融集團、國際汽車巨頭,這也是他們在中國首個VC基金戰略投資。創新工場關注具有本土化色彩、盈利模式偏成熟的(de)項目,投資領域新增人工智能、大數據以及消費升級。根據介紹,創新工場早年(nián)是投資和(hé)孵化模式,更高(gāo)比例在天使和(hé)種子(zǐ)輪次。而近年(nián)來,創新工場投資階段策略調整,強調“去(qù)孵化”,定位VC+AI,專注于早中期(A-B輪)發展階段項目。對于高(gāo)潛力領域也參與C輪以後的(de)中後期投資也開始鎖定賽道(dào),加大投資。李開複指出,創新工場已經不再是孵化器,現在一(yī)年(nián)隻孵化一(yī)個人工智能項目。李開複看好中國公司創新,他指出,随着競争日趨激烈,成就了中國企業的(de)創新。目前,全球發展趨勢從Copy To China到Copy From China,從借鑒美國模式,到成功反超美國模式,再到中國本土創新,當前中國模式正走向世界,與此同時,中國企業出海的(de)也越來越多。在李開複看來,中國式創新還在循環裂變,移動支付、OMO(線上線下融合)、多波“人口紅(hóng)利”、人工智能崛起等因素,驅動中國消費加速增長(cháng),從儲存經濟變成消費的(de)經濟,中國也成為(wèi)最佳創業平台。近年(nián)來,創新工場發力AI領域的(de)投資。李開複認為(wèi),僅僅靠錢來做(zuò)VC遠遠不夠。目前,創新工場已經建立AI工程院。對于人工智能領域,李開複指出,人工智能進入爆發期,中國将成為(wèi)最大的(de)受益者。從投資的(de)角度來看,李開複将人工智能的(de)發展分成四波浪潮:互聯網智能化、商業人工智能、實體世界智能化、自(zì)動化人工智能。他認為(wèi),在與美國的(de)競争中,中國的(de)人工智能在無人駕駛等多個領域,在未來五到十年(nián)內(nèi)有機會趕超美國。作為(wèi)一(yī)個專注于技術投資的(de)投資機構,李開複指出,創新工場對标的(de)是美國投資機構Benchmark,這是一(yī)家專注于科技的(de)VC ,50%合夥人具有技術或理(lǐ)工背景;投資技術型公司,投資過包括Uber、Twitter、Snapchat、Instagram、eBay等知名公司,回報率超過紅(hóng)杉、KPCB等老牌基金。創新工場由李開複創立于 2009 年(nián),總部設于北京,在上海、深圳、矽谷設有辦公室。成立 9 年(nián)以來,創新工場投資的(de)總項目數量累積超過 300 個,投中了 6 個獨角獸公司,投資公司包含VIPKID、美圖、知乎、Face++曠世科技、摩拜、第四範式、米未傳媒等。

  • 看懂這幾點,輕松搞定企業建站!

    為(wèi)什麽企業要建站?建設網站能帶來哪些?随着互聯網信息技術在不斷進步的(de)同時,網站建設也取得較大發展。現在越來越多的(de)企業都要建設自(zì)已的(de)網站,利用網絡推廣宣傳自(zì)己的(de)品牌來擴大企業産品的(de)影響力,進一(yī)步拓展市場,加強與消費者的(de)互動性已經成為(wèi)了企業發展的(de)迫切需求。一(yī).網站建設可(kě)增強宣傳企業形象企業網站建設是展示企業形象的(de)一(yī)面鏡子(zǐ),能夠更好的(de)宣傳企業的(de)理(lǐ)念和(hé)商業層次,所以在企業形象宣傳上,往往是每個公司最重視(shì)的(de)事情。二.網站建設可(kě)促進企業與用戶互動企業與用戶互動其實有好多方式,具體根據不同的(de)情況來分别對待,其中有一(yī)些比較好的(de)方式是通過調查問卷和(hé)會員服務的(de)方式獲取用戶的(de)信息。同時,企業通過高(gāo)端型網站獲取用戶的(de)反饋是非常有必要的(de),這也是企業站點必備的(de)一(yī)個功能。三.網站建設有助于業務宣傳從業務宣傳方面來看,選擇合理(lǐ)的(de)程序模塊來滿足需要逐步更新的(de)服務內(nèi)容,把用戶最關心的(de)問題擺在最顯眼的(de)位置,并且不需要用戶過多的(de)點擊就能讓他找到所需要的(de)信息。提倡企業應該根據自(zì)身的(de)特點,用最合适的(de)網站展示方式和(hé)展示效果來體現自(zì)己的(de)特色。想要搭建一(yī)個讓客戶眼前一(yī)亮(liàng)的(de)網站,一(yī)定要好好做(zuò)準備一(yī)、先做(zuò)好規劃,再全力執行所謂‘凡事預則立,不預則廢’。做(zuò)站也是如(rú)此,因此,在開始的(de)前期,應該根據自(zì)身的(de)具體情況做(zuò)一(yī)個長(cháng)期的(de)規劃。請注意,是長(cháng)期的(de)。因為(wèi)隻有把目光放在遠處,每一(yī)天你才能有足夠的(de)動力不顧一(yī)切的(de)前行,才有足夠的(de)毅力來堅持自(zì)己的(de)選擇,因為(wèi)在互聯網這一(yī)行業,胡亂抛棄是永遠不會成功的(de)。二、請選擇适合自(zì)己的(de)建站程序如(rú)今網上開源的(de)源碼一(yī)大堆,最終選擇什麽樣的(de)源碼來搭建網站,這取決于你搭建網站的(de)類型以及如(rú)後的(de)規劃。但是有一(yī)點必須要注意,那就是在選擇源碼的(de)時候一(yī)定要選擇比較知名的(de)建站程序,因為(wèi)如(rú)果在使用的(de)過程中有什麽問題在網上才能找得到答案,這是在選擇建站程序上應該注意的(de)問題。在網上,論壇、門戶、科技等等建站程序應有盡有,至于該做(zuò)何選擇,這取決于你自(zì)己。三、域名、空間的(de)選擇互聯網創業,首先要具備的(de)一(yī)點就是:要擁有自(zì)己的(de)站點。網站的(de)搭建,首要任務就是注冊一(yī)個屬于自(zì)己的(de)域名,然後在根據自(zì)身經濟情況選擇一(yī)個自(zì)己能承受的(de)空間服務器。對于IDC服務商的(de)選擇,首先我們就是要明确自(zì)己所需要的(de)空間類型,是VPS、虛拟主機、獨立服務器還是雲服務器。選擇虛拟空間的(de)時候一(yī)定要注意他們所支持的(de)數據庫,否則買了也不能用。至于最後你自(zì)己該做(zuò)出怎樣的(de)選擇,這取決于你自(zì)身的(de)情況。注冊好域名,找準放置自(zì)己網站的(de)服務器,這是建站首要考慮的(de)東西。四、如(rú)果你想長(cháng)遠的(de)做(zuò)站,那麽請備案!很多人嫌備案麻煩,所以選擇了國外或者香港服務器,免去(qù)了備案這一(yī)比較繁雜的(de)環節。其實這是一(yī)種目光短(duǎn)淺的(de)做(zuò)法,更是一(yī)種從長(cháng)遠來看不可(kě)取的(de)做(zuò)法!話說回來,如(rú)果你隻是想搭建個網站玩玩,并沒有什麽長(cháng)遠的(de)計劃,那麽這樣的(de)做(zuò)法無可(kě)厚非,但是如(rú)果你想要在互聯網行業闖出自(zì)己的(de)一(yī)片天地(dì),那麽這樣的(de)做(zuò)法是極為(wèi)不可(kě)取的(de)。五、南昌提亞網絡有限公司介紹:   南順網絡是江西首家推出四網合一(yī)技術的(de)網絡公司,電腦PC端、WAP手機端、手APP客戶端、微信端,四網合一(yī),同一(yī)後台管理(lǐ),解決了多端多後台管理(lǐ),把繁瑣的(de)管理(lǐ)容納到同一(yī)個後台。四網合一(yī)技術管理(lǐ)方便,操作性靈活,體現了南順網絡技術實力,方便了客戶管理(lǐ),減少客戶的(de)管理(lǐ)成本,帶領江西互聯網進入了四網合一(yī)時代!建站套餐:(可(kě)根據客戶需求制定開發,欄目客戶可(kě)以自(zì)己制定,南順全能後台系統管理(lǐ))基礎型 ¥:880/起 欄目:網站首頁+關于我們+公司動态+産品展示+在線留言+聯系我們品牌型 ¥:1580/起   欄目:網站首頁+關于我們+公司動态+産品展示+在線留言+聯系我們+WAP手機版營銷型  ¥:2280/起  欄目:網站首頁+關于我們+公司動态+産品展示+在線留言+聯系我們+WAP手機版+FLASH動畫+SEO結構優化+欄目可(kě)以制定商城型  ¥:5800/起   欄目:制定欄目+文章(zhāng)系統+産品系統+評論系統+會員系統+在線客服+在線支付系統微信公衆号   ¥:1880/起    微信開發:微官網+微商城+公衆号開發+微喜帖+微信預約+微點餐+微分銷+微交易+微金融+微信幻燈片+接受微信功能制定APP型   ¥:8800/起   APP開發:APP官網+APP商城+APP預約+APP點餐+APP分銷+APP交易+APP金融+接受APP功能制定三合一(yī)    ¥:6800/起 三網合一(yī):PC電腦端+WAP手機端+微信端(三網同一(yī)後台管理(lǐ),便于宣傳管理(lǐ))四合一(yī)    ¥:12800/起四網合一(yī):PC電腦端+WAP手機端+微信端+APP(四網同一(yī)後台管理(lǐ),便于宣傳管理(lǐ))聯系我們:(趕緊拿起手機聯系我們把,免費獲取建站方案)聯系電話:0791-82328290     手機:18970956300 (微信同号)   QQ:1006063299 

  • 必須了解的(de)一(yī)些IT知識點

    一(yī)、矽:是一(yī)種化學(xué)元素,符号是Si,有無定形矽和(hé)晶體矽兩種同素異形體,在地(dì)殼中,是第二豐富的(de)元素。 高(gāo)純的(de)單晶矽是重要的(de)半導體材料。廣泛應用的(de)二極管、三極管、晶閘管、場效應管和(hé)各種集成電路(計算機內(nèi)的(de)芯片和(hé)CPU)都是用矽做(zuò)的(de)原材料。半導體(semiconductor):指常溫下導電性能介于導體(conductor)與絕緣體(insulator)之間的(de)材料。 半導體的(de)分類,按照其制造技術可(kě)以分為(wèi):集成電路器件,分立器件、光電半導體、邏輯IC、模拟IC、儲存器等大類。還有按照其所處理(lǐ)的(de)信号,可(kě)以分成模拟、數字、模拟數字混成及功能進行分類的(de)方法。 半導體與計算機的(de)關系:半導體是集成電路制造的(de)主要材料,還是很多電子(zǐ)元件的(de)組成部分,計算機的(de)大腦CPU就是一(yī)種集成電路,計算機的(de)邏輯元件和(hé)主存儲器都采用了大規模的(de)集成電路矽谷:狹義上講是以舊(jiù)金山灣區聖塔克拉拉縣為(wèi)中心的(de)從舊(jiù)金山市以南移植到包括聖荷西市在內(nèi)的(de)地(dì)區,從廣義上講包括舊(jiù)金山市本身和(hé)舊(jiù)金山灣東岸奧克蘭市在內(nèi)更廣闊的(de)地(dì)區,也成為(wèi)大矽谷地(dì)區。 之所以得名矽谷,是因為(wèi)早期在舊(jiù)金山灣區的(de)公司大多是半導體或計算機硬件,三四十年(nián)前,矽谷就是半導體的(de)同義詞,二十多年(nián)前,半導體公司離(lí)開矽谷。矽谷沒有了矽,反而更加繁榮,因為(wèi)矽谷的(de)靈魂是創新,它演變為(wèi)高(gāo)科技之地(dì)。有人這樣描述矽谷:亘古而長(cháng)青的(de)昨天永遠是過去(qù),也永遠會再來。矽谷:狹義上講是以舊(jiù)金山灣區聖塔克拉拉縣為(wèi)中心的(de)從舊(jiù)金山市以南移植到包括聖荷西市在內(nèi)的(de)地(dì)區,從廣義上講包括舊(jiù)金山市本身和(hé)舊(jiù)金山灣東岸奧克蘭市在內(nèi)更廣闊的(de)地(dì)區,也成為(wèi)大矽谷地(dì)區。 之所以得名矽谷,是因為(wèi)早期在舊(jiù)金山灣區的(de)公司大多是半導體或計算機硬件,三四十年(nián)前,矽谷就是半導體的(de)同義詞,二十多年(nián)前,半導體公司離(lí)開矽谷。矽谷沒有了矽,反而更加繁榮,因為(wèi)矽谷的(de)靈魂是創新,它演變為(wèi)高(gāo)科技之地(dì)。有人這樣描述矽谷:亘古而長(cháng)青的(de)昨天永遠是過去(qù),也永遠會再來。二、帶寬又叫頻寬,是指在固定的(de)的(de)時間可(kě)傳輸的(de)資料數量,亦即在傳輸管道(dào)中可(kě)以傳遞數據的(de)能力。 單位:bps(比特)或Hz(赫茲) 對于模拟信号而言,帶寬又稱為(wèi)頻寬,以赫茲(Hz)為(wèi)單位。例如(rú)模拟語音電話的(de)信号帶寬為(wèi)3400Hz,一(yī)個PAL-D電視(shì)頻道(dào)的(de)帶寬為(wèi)8MHz(含保護帶寬)。 對于數字信号而言,帶寬是指單位時間內(nèi)鏈路能夠通過的(de)數據量。 帶寬在計算機中可(kě)簡單理(lǐ)解:帶寬就是傳輸速率,每秒傳輸的(de)最大字節(b/s)計算速率的(de)方式(其實都一(yī)樣,隻是單位不同): 描述帶寬時常常把“比特/秒”省略。例如(rú),帶寬是1M,實際上是1Mb/s,這裏的(de)Mb是指1024*1024位,轉換成字節就是(1024*1024)/8=131072字節(Byte)=128KB/s。例如(rú)所謂 10M 帶寬,其實是指 10Mbps (兆比特) 計算帶寬理(lǐ)論最快下載速度:10÷8=1.25MB/s 那麽100M的(de)帶寬最快下載速度是12.5MB/s。 但這隻是理(lǐ)論上的(de)速度,在這個數值附近浮動都算是較理(lǐ)想的(de),實際上因為(wèi)各種因素,還要再減去(qù)一(yī)些損耗.局域網(Local Area Network ,縮寫:LAN):指有限區域(封閉的(de),如(rú)一(yī)個學(xué)校,辦公室)內(nèi)的(de)多台計算機通過共享的(de)傳輸介質互連,所組成的(de)計算機組。例如(rú):一(yī)個大院的(de)人能在一(yī)起共同的(de)活動。 範圍一(yī)般為(wèi)方圓幾千米之內(nèi)。依據拓撲結構的(de)不同,局域網又分為(wèi)以太網(施樂(yuè)公司(xerox)的(de)帕洛阿爾托實驗室幾位科學(xué)家發明了以太網(Ethernet))、令牌環網、無線局域網等類型。 廣域網(WideAreaNetwork,縮寫:WAN):也叫遠程網RCN (RemoteComputerNetwork),一(yī)個國家或國際間建立的(de)網絡都是廣域網。它的(de)作用範圍最大,一(yī)般可(kě)以從幾十公裏至幾萬公裏。目前,世界上最大的(de)信息網絡Internet已經覆蓋了包括我國在內(nèi)的(de)180多個國家和(hé)地(dì)區,連接了數萬個網絡。 互聯網(internetwork,簡稱internet):即廣域網、局域網及單機按照一(yī)定的(de)通訊協議組成的(de)國際計算機網絡。作用相當于我國的(de)普通話,相當于國際上的(de)英語,用一(yī)種語言将世界聯系起來。城域網(Metropolitan Area Network,簡稱MAN):是在一(yī)個城市範圍內(nèi)所建立的(de)計算機通信網,屬寬帶局域網。門戶網站:即鏈接互聯網之門,屬于信息服務系統,例如(rú):谷歌、雅虎、百度、騰訊等防火牆(firewall):指的(de)是一(yī)個由軟件和(hé)硬件設備組合而成、一(yī)種位于內(nèi)部(專門)網絡與外部(公開)網絡之間的(de)網絡安全系統,是一(yī)種獲取安全性方法的(de)形象說法。 三、摩爾定律:英特爾公司的(de)創始人戈登.摩爾(Gordon Moore)博士提出,演變後的(de)內(nèi)容為(wèi):當價格不變時,集成電路上可(kě)容納的(de)晶體管數目,約每隔18個月便會增加一(yī)倍,性能也将提升一(yī)倍。換言之,相同性能的(de)計算機等IT産品,每18個月價錢會降一(yī)半。這一(yī)定律揭示了信息技術進步的(de)速度,也主導着IT行業的(de)發展。安迪-比爾定律:給所有的(de)計算機消費者帶來一(yī)個希望,如(rú)果我今天嫌計算機太貴買不起,那麽我等十八個月就可(kě)以用一(yī)半的(de)價錢來買。要真是這樣簡單的(de)話,計算機的(de)銷售量就上不去(qù)了。需要買計算機的(de)人會多等幾個月,已經有計算機的(de)人也沒有動力更新計算機。其它的(de) IT 産品也是如(rú)此。那麽IT行業将成為(wèi)傳統行業,沒什麽發展了。 但事實上,世界上的(de)個人電腦銷量在持續增長(cháng)。那麽是什麽動力促使人們不斷滴主動更新自(zì)己的(de)硬件呢(ne)?IT界把它總結成安迪-比爾定律安迪-比爾定律:即比爾要拿走安迪所給的(de)(What Andy gives, Bill takes away.),安迪是原英特爾公司CEO安迪.格魯夫(Andy Grove),比爾就是微軟創始人比爾.蓋茨 介紹: 英特爾處理(lǐ)器的(de)速度每十八個月翻一(yī)番,計算機內(nèi)存和(hé)硬盤的(de)容量以更快的(de)速度在增長(cháng)。但是,微軟的(de)操作系統等應用軟件越來越慢,也越做(zuò)越大。所以,現在的(de)計算機雖然比十年(nián)前快了一(yī)百倍,運行軟件感覺上還是和(hé)以前差不多。而且,過去(qù)整個視(shì)窗操作系統不過十幾兆大小,現在要幾千兆,應用軟件也是如(rú)此。雖然新的(de)軟件功能比以前的(de)版本強了一(yī)些,但是,增加的(de)功能絕對不是和(hé)它的(de)大小成比例的(de)。因此,一(yī)台十年(nián)前的(de)計算機能裝多少應用程序,現在的(de)也不過裝這麽多,雖然硬盤的(de)容量增加了一(yī)千倍。更糟糕的(de)是,用戶發現,如(rú)果不更新計算機,現在很多新的(de)軟件就用不了,連上網也是個問題。而十年(nián)前買得起的(de)車卻照樣可(kě)以跑。 反摩爾定律:Google的(de)前CEO埃裏克·施密特(Eric Schmidt)提出的(de):如(rú)果你反過來看摩爾定律,一(yī)個IT公司如(rú)果今天和(hé)18個月前賣掉同樣多的(de)、同樣的(de)産品,它的(de)營業額就要降一(yī)半。IT界把它稱為(wèi)反摩爾定律。 反摩爾定律被逼着所有的(de)硬件設備公司必須趕上摩爾定律規定的(de)更新速度。風險投資:二戰後,在美國,一(yī)些願意以高(gāo)風險換取高(gāo)回報的(de)投資人發明了非常規的(de)投資方式–風險投資(Venture Capital Investment,簡稱VC),在中國簡稱風投。風投無需抵押,也不需償還。如(rú)果投資成功,風投資本家将獲得幾倍、十幾倍,甚至上百倍的(de)回報,如(rú)果投資失敗,錢就打水漂了。 由于美國有完善的(de)社會保險制度和(hé)信用制度,使得信用成為(wèi)美國社會的(de)基礎,因此銀行就敢在沒有抵押的(de)情況下把錢借出去(qù),投資人也敢把錢交給一(yī)無所有的(de)創業者去(qù)創業。天使投資:本質上是早期風險投資。天使投資人,簡稱天使,常常是一(yī)些這樣的(de)有錢人:以前創辦過成功的(de)公司,對技術很敏感,又不緣再辛苦創業,希望出錢讓别人幹。在矽谷這種人很多,被稱為(wèi)“不願當總(經理(lǐ)),隻肯當董(事)”四、時間戳時間戳是指格林威治時間1970年(nián)01月01日00時00分00秒(北京時間1970年(nián)01月01日08時00分00秒)起至現在的(de)總秒數。時間戳分類:1.自(zì)建時間戳:此類時間戳是通過時間接收設備(如(rú)GPS,CDMA,北鬥衛星)來獲取時間到時間戳服務器上,并通過時間戳服務器簽發時間戳證書。此種時間戳可(kě)用來企業內(nèi)部責任認定,在法庭認證時并不具備法律效力。因其在通過時間接收設備接收時間時存在被篡改的(de)可(kě)能,故此不能做(zuò)為(wèi)法律依據。2.具有法律的(de)效力的(de)時間戳:它是由我國中科院國家授時中心與北京聯合信任技術服務有限公司負責建設的(de)我國第三方可(kě)信時間戳認證服務。由國家授時中心負責時間的(de)授時與守時監測。因其守時監測功能而保障時間戳證書中的(de)時間的(de)準确性和(hé)不被篡改。獲取時間戳平台有“大衆版權保護平台”,可(kě)與我國中科院國家授時中心時間同步。在這個日新月異的(de)時代,原地(dì)踏步就是在退步。 

  • 常見六大Web安全攻防解析

    一(yī)、XSSXSS (Cross-Site Scripting),跨站腳本攻擊,因為(wèi)縮寫和(hé) CSS重疊,所以隻能叫 XSS。跨站腳本攻擊是指通過存在安全漏洞的(de)Web網站注冊用戶的(de)浏覽器內(nèi)運行非法的(de)HTML标簽或JavaScript進行的(de)一(yī)種攻擊。跨站腳本攻擊有可(kě)能造成以下影響:利用虛假輸入表單騙取用戶個人信息。利用腳本竊取用戶的(de)Cookie值,被害者在不知情的(de)情況下,幫助攻擊者發送惡意請求。顯示僞造的(de)文章(zhāng)或圖片。XSS 的(de)原理(lǐ)是惡意攻擊者往 Web 頁面裏插入惡意可(kě)執行網頁腳本代碼,當用戶浏覽該頁之時,嵌入其中 Web 裏面的(de)腳本代碼會被執行,從而可(kě)以達到攻擊者盜取用戶信息或其他侵犯用戶安全隐私的(de)目的(de)。XSS 的(de)攻擊方式千變萬化,但還是可(kě)以大緻細分為(wèi)幾種類型。1.非持久型 XSS(反射型 XSS )非持久型 XSS 漏洞,一(yī)般是通過給别人發送帶有惡意腳本代碼參數的(de) URL,當 URL 地(dì)址被打開時,特有的(de)惡意代碼參數被 HTML 解析、執行。非持久型 XSS 漏洞攻擊有以下幾點特征:即時性,不經過服務器存儲,直接通過 HTTP 的(de) GET 和(hé) POST 請求就能完成一(yī)次攻擊,拿到用戶隐私數據。攻擊者需要誘騙點擊,必須要通過用戶點擊鏈接才能發起反饋率低(dī),所以較難發現和(hé)響應修複盜取用戶敏感保密信息為(wèi)了防止出現非持久型 XSS 漏洞,需要确保這麽幾件事情:Web 頁面渲染的(de)所有內(nèi)容或者渲染的(de)數據都必須來自(zì)于服務端。盡量不要從 URL,document.referrer,document.forms 等這種 DOM API 中獲取數據直接渲染。盡量不要使用 eval, new Function(),document.write(),document.writeln(),window.setInterval(),window.setTimeout(),innerHTML,document.createElement() 等可(kě)執行字符串的(de)方法。如(rú)果做(zuò)不到以上幾點,也必須對涉及 DOM 渲染的(de)方法傳入的(de)字符串參數做(zuò) escape 轉義。前端渲染的(de)時候對任何的(de)字段都需要做(zuò) escape 轉義編碼。2.持久型 XSS(存儲型 XSS)持久型 XSS 漏洞,一(yī)般存在于 Form 表單提交等交互功能,如(rú)文章(zhāng)留言,提交文本信息等,黑客利用的(de) XSS 漏洞,将內(nèi)容經正常功能提交進入數據庫持久保存,當前端頁面獲得後端從數據庫中讀出的(de)注入代碼時,恰好将其渲染執行。舉個例子(zǐ),對于評論功能來說,就得防範持久型 XSS 攻擊,因為(wèi)我可(kě)以在評論中輸入以下內(nèi)容主要注入頁面方式和(hé)非持久型 XSS 漏洞類似,隻不過持久型的(de)不是來源于 URL,referer,forms 等,而是來源于後端從數據庫中讀出來的(de)數據 。持久型 XSS 攻擊不需要誘騙點擊,黑客隻需要在提交表單的(de)地(dì)方完成注入即可(kě),但是這種 XSS 攻擊的(de)成本相對還是很高(gāo)。攻擊成功需要同時滿足以下幾個條件:POST 請求提交表單後端沒做(zuò)轉義直接入庫。後端從數據庫中取出數據沒做(zuò)轉義直接輸出給前端。前端拿到後端數據沒做(zuò)轉義直接渲染成 DOM。持久型 XSS 有以下幾個特點:持久性,植入在數據庫中盜取用戶敏感私密信息危害面廣3.如(rú)何防禦對于 XSS 攻擊來說,通常有兩種方式可(kě)以用來防禦。1) CSPCSP 本質上就是建立白名單,明确告訴浏覽器哪些外部資源可(kě)以加載和(hé)執行。我們隻需要配置規則,如(rú)何攔截是由浏覽器自(zì)己實現的(de)。我們可(kě)以通過這種方式來盡量減少 XSS 攻擊。通常可(kě)以通過兩種方式來開啓 CSP:設置 HTTP Header 中的(de) Content-Security-Policy設置 meta 标簽的(de)方式這裏以設置 HTTP Header 來舉例:隻允許加載本站資源Content-Security-Policy: default-src 'self'隻允許加載 HTTPS 協議圖片Content-Security-Policy: img-src https://*允許加載任何來源框架Content-Security-Policy: child-src 'none'對于這種方式來說,隻要配置了正确的(de)規則,那麽即使網站存在漏洞,攻擊者也不能執行它的(de)攻擊代碼,并且 CSP 的(de)兼容性也不錯。2) 轉義字符用戶的(de)輸入永遠不可(kě)信任的(de),最普遍的(de)做(zuò)法就是轉義輸入輸出的(de)內(nèi)容,對于引号、尖括号、斜杠進行轉義但是對于顯示富文本來說,顯然不能通過上面的(de)辦法來轉義所有字符,因為(wèi)這樣會把需要的(de)格式也過濾掉。對于這種情況,通常采用白名單過濾的(de)辦法,當然也可(kě)以通過黑名單過濾,但是考慮到需要過濾的(de)标簽和(hé)标簽屬性實在太多,更加推薦使用白名單的(de)方式。3) HttpOnly Cookie。這是預防XSS攻擊竊取用戶cookie最有效的(de)防禦手段。Web應用程序在設置cookie時,将其屬性設為(wèi)HttpOnly,就可(kě)以避免該網頁的(de)cookie被客戶端惡意JavaScript竊取,保護用戶cookie信息。二、CSRFCSRF(Cross Site Request Forgery),即跨站請求僞造,是一(yī)種常見的(de)Web攻擊,它利用用戶已登錄的(de)身份,在用戶毫不知情的(de)情況下,以用戶的(de)名義完成非法操作。1.CSRF攻擊的(de)原理(lǐ)下面先介紹一(yī)下CSRF攻擊的(de)原理(lǐ):完成 CSRF 攻擊必須要有三個條件:用戶已經登錄了站點 A,并在本地(dì)記錄了 cookie在用戶沒有登出站點 A 的(de)情況下(也就是 cookie 生效的(de)情況下),訪問了惡意攻擊者提供的(de)引誘危險站點 B (B 站點要求訪問站點A)。站點 A 沒有做(zuò)任何 CSRF 防禦我們來看一(yī)個例子(zǐ): 當我們登入轉賬頁面後,突然眼前一(yī)亮(liàng)驚現"XXX隐私照片,不看後悔一(yī)輩子(zǐ)"的(de)鏈接,耐不住內(nèi)心躁動,立馬點擊了該危險的(de)網站(頁面代碼如(rú)下圖所示),但當這頁面一(yī)加載,便會執行submitForm這個方法來提交轉賬請求,從而将10塊轉給黑客。2.如(rú)何防禦防範 CSRF 攻擊可(kě)以遵循以下幾種規則:Get 請求不對數據進行修改不讓第三方網站訪問到用戶 Cookie阻止第三方網站請求接口請求時附帶驗證信息,比如(rú)驗證碼或者 Token1) SameSite可(kě)以對 Cookie 設置 SameSite 屬性。該屬性表示 Cookie 不随着跨域請求發送,可(kě)以很大程度減少 CSRF 的(de)攻擊,但是該屬性目前并不是所有浏覽器都兼容。2) Referer CheckHTTP Referer是header的(de)一(yī)部分,當浏覽器向web服務器發送請求時,一(yī)般會帶上Referer信息告訴服務器是從哪個頁面鏈接過來的(de),服務器籍此可(kě)以獲得一(yī)些信息用于處理(lǐ)。可(kě)以通過檢查請求的(de)來源來防禦CSRF攻擊。正常請求的(de)referer具有一(yī)定規律,如(rú)在提交表單的(de)referer必定是在該頁面發起的(de)請求。所以通過檢查http包頭referer的(de)值是不是這個頁面,來判斷是不是CSRF攻擊。但在某些情況下如(rú)從https跳轉到http,浏覽器處于安全考慮,不會發送referer,服務器就無法進行check了。若與該網站同域的(de)其他網站有XSS漏洞,那麽攻擊者可(kě)以在其他網站注入惡意腳本,受害者進入了此類同域的(de)網址,也會遭受攻擊。出于以上原因,無法完全依賴Referer Check作為(wèi)防禦CSRF的(de)主要手段。但是可(kě)以通過Referer Check來監控CSRF攻擊的(de)發生。3)  Anti CSRF Token目前比較完善的(de)解決方案是加入Anti-CSRF-Token。即發送請求時在HTTP 請求中以參數的(de)形式加入一(yī)個随機産生的(de)token,并在服務器建立一(yī)個攔截器來驗證這個token。服務器讀取浏覽器當前域cookie中這個token值,會進行校驗該請求當中的(de)token和(hé)cookie當中的(de)token值是否都存在且相等,才認為(wèi)這是合法的(de)請求。否則認為(wèi)這次請求是違法的(de),拒絕該次服務。這種方法相比Referer檢查要安全很多,token可(kě)以在用戶登陸後産生并放于session或cookie中,然後在每次請求時服務器把token從session或cookie中拿出,與本次請求中的(de)token 進行比對。由于token的(de)存在,攻擊者無法再構造出一(yī)個完整的(de)URL實施CSRF攻擊。但在處理(lǐ)多個頁面共存問題時,當某個頁面消耗掉token後,其他頁面的(de)表單保存的(de)還是被消耗掉的(de)那個token,其他頁面的(de)表單提交時會出現token錯誤。4) 驗證碼應用程序和(hé)用戶進行交互過程中,特别是賬戶交易這種核心步驟,強制用戶輸入驗證碼,才能完成最終請求。在通常情況下,驗證碼夠很好地(dì)遏制CSRF攻擊。但增加驗證碼降低(dī)了用戶的(de)體驗,網站不能給所有的(de)操作都加上驗證碼。所以隻能将驗證碼作為(wèi)一(yī)種輔助手段,在關鍵業務點設置驗證碼。三、點擊劫持點擊劫持是一(yī)種視(shì)覺欺騙的(de)攻擊手段。攻擊者将需要攻擊的(de)網站通過 iframe 嵌套的(de)方式嵌入自(zì)己的(de)網頁中,并将 iframe 設置為(wèi)透明,在頁面中透出一(yī)個按鈕誘導用戶點擊。1. 特點隐蔽性較高(gāo),騙取用戶操作"UI-覆蓋攻擊"利用iframe或者其它标簽的(de)屬性2. 點擊劫持的(de)原理(lǐ)用戶在登陸 A 網站的(de)系統後,被攻擊者誘惑打開第三方網站,而第三方網站通過 iframe 引入了 A 網站的(de)頁面內(nèi)容,用戶在第三方網站中點擊某個按鈕(被裝飾的(de)按鈕),實際上是點擊了 A 網站的(de)按鈕。 接下來我們舉個例子(zǐ):我在優酷發布了很多視(shì)頻,想讓更多的(de)人關注它,就可(kě)以通過點擊劫持來實現[object Object][object Object]3. 如(rú)何防禦1)X-FRAME-OPTIONSX-FRAME-OPTIONS是一(yī)個 HTTP 響應頭,在現代浏覽器有一(yī)個很好的(de)支持。這個 HTTP 響應頭 就是為(wèi)了防禦用 iframe 嵌套的(de)點擊劫持攻擊。該響應頭有三個值可(kě)選,分别是DENY,表示頁面不允許通過 iframe 的(de)方式展示SAMEORIGIN,表示頁面可(kě)以在相同域名下通過 iframe 的(de)方式展示ALLOW-FROM,表示頁面可(kě)以在指定來源的(de) iframe 中展示2)JavaScript 防禦對于某些遠古浏覽器來說,并不能支持上面的(de)這種方式,那我們隻有通過 JS 的(de)方式來防禦點擊劫持了。四、URL跳轉漏洞定義:借助未驗證的(de)URL跳轉,将應用程序引導到不安全的(de)第三方區域,從而導緻的(de)安全問題。1.URL跳轉漏洞原理(lǐ)黑客利用URL跳轉漏洞來誘導安全意識低(dī)的(de)用戶點擊,導緻用戶信息洩露或者資金的(de)流失。其原理(lǐ)是黑客構建惡意鏈接(鏈接需要進行僞裝,盡可(kě)能迷惑),發在QQ群或者是浏覽量多的(de)貼吧(ba)/論壇中。 安全意識低(dī)的(de)用戶點擊後,經過服務器或者浏覽器解析後,跳到惡意的(de)網站中。惡意鏈接需要進行僞裝,經常的(de)做(zuò)法是熟悉的(de)鏈接後面加上一(yī)個惡意的(de)網址,這樣才迷惑用戶。Header頭跳轉Javascript跳轉META标簽跳轉這裏我們舉個Header頭跳轉實現方式:<?php $url=$_GET['jumpto']; header("Location: $url"); .html)referer的(de)限制如(rú)果确定傳遞URL參數進入的(de)來源,我們可(kě)以通過該方式實現安全限制,保證該URL的(de)有效性,避免惡意用戶自(zì)己生成跳轉鏈接2)加入有效性驗證Token我們保證所有生成的(de)鏈接都是來自(zì)于我們可(kě)信域的(de),通過在生成的(de)鏈接裏加入用戶不可(kě)控的(de)Token對生成的(de)鏈接進行校驗,可(kě)以避免用戶生成自(zì)己的(de)惡意鏈接從而被利用,但是如(rú)果功能本身要求比較開放,可(kě)能導緻有一(yī)定的(de)限制。五、SQL注入SQL注入是一(yī)種常見的(de)Web安全漏洞,攻擊者利用這個漏洞,可(kě)以訪問或修改數據,或者利用潛在的(de)數據庫漏洞進行攻擊。1.SQL注入的(de)原理(lǐ)我們先舉一(yī)個鑰匙的(de)例子(zǐ)來說明其原理(lǐ):這是我們經常見到的(de)登錄頁面,但如(rú)果有一(yī)個惡意攻擊者輸入的(de)用戶名是 admin' --,密碼随意輸入,就可(kě)以直接登入系統了。why! ----這就是SQL注入我們之前預想的(de)SQL 語句是:SELECT * FROM user WHERE username='admin' AND psw='password'但是惡意攻擊者用奇怪用戶名将你的(de) SQL 語句變成了如(rú)下形式:SELECT * FROM user WHERE username='admin' --' AND psw='xxxx'在 SQL 中,' --是閉合和(hé)注釋的(de)意思,-- 是注釋後面的(de)內(nèi)容的(de)意思,所以查詢語句就變成了:SELECT * FROM user WHERE username='admin' 複制代碼所謂的(de)密碼,本質上就是SQL注入的(de)一(yī)種利用方式。一(yī)次SQL注入的(de)過程包括以下幾個過程:獲取用戶請求參數拼接到代碼當中SQL語句按照我們構造參數的(de)語義執行成功SQL注入的(de)必備條件: 1.可(kě)以控制輸入的(de)數據 2.服務器要執行的(de)代碼拼接了控制的(de)數據。我們會發現SQL注入流程中與正常請求服務器類似,隻是黑客控制了數據,構造了SQL查詢,而正常的(de)請求不會SQL查詢這一(yī)步,SQL注入的(de)本質:數據和(hé)代碼未分離(lí),即數據當做(zuò)了代碼來執行。2.危害獲取數據庫信息管理(lǐ)員後台用戶名和(hé)密碼獲取其他數據庫敏感信息:用戶名、密碼、手機号碼、身份證、銀行卡信息……整個數據庫:脫褲獲取服務器權限植入Webshell,獲取服務器後門讀取服務器敏感文件3.如(rú)何防禦嚴格限制Web應用的(de)數據庫的(de)操作權限,給此用戶提供僅僅能夠滿足其工作的(de)權限,從而限度的(de)減少注入攻擊對數據庫的(de)危害後端代碼檢查輸入的(de)數據是否符合預期,嚴格限制變量的(de)類型,例如(rú)使用正則表達式進行一(yī)些匹配處理(lǐ)。對進入數據庫的(de)特殊字符(',",\,<,>,&,*,; 等)進行轉義處理(lǐ),或編碼轉換。基本上所有的(de)後端語言都有對字符串進行轉義處理(lǐ)的(de)方法,比如(rú) lodash 的(de) lodash._escapehtmlchar 庫。所有的(de)查詢語句建議使用數據庫提供的(de)參數化查詢接口,參數化的(de)語句使用參數而不是将用戶輸入變量嵌入到 SQL 語句中,即不要直接拼接 SQL 語句。例如(rú) Node.js 中的(de) mysqljs 庫的(de) query 方法中的(de) ? 占位參數。六、OS命令注入攻擊OS命令注入和(hé)SQL注入差不多,隻不過SQL注入是針對數據庫的(de),而OS命令注入是針對操作系統的(de)。OS命令注入攻擊指通過Web應用,執行非法的(de)操作系統命令達到攻擊的(de)目的(de)。隻要在能調用Shell函數的(de)地(dì)方就有存在被攻擊的(de)風險。倘若調用Shell時存在疏漏,就可(kě)以執行插入的(de)非法命令。命令注入攻擊可(kě)以向Shell發送命令,讓Windows或Linux操作系統的(de)命令行啓動程序。也就是說,通過命令注入攻擊可(kě)執行操作系統上安裝着的(de)各種程序。1.原理(lǐ)黑客構造命令提交給web應用程序,web應用程序提取黑客構造的(de)命令,拼接到被執行的(de)命令中,因黑客注入的(de)命令打破了原有命令結構,導緻web應用執行了額外的(de)命令,web應用程序将執行的(de)結果輸出到響應頁面中。2.如(rú)何防禦後端對前端提交內(nèi)容進行規則限制(比如(rú)正則表達式)。在調用系統命令前對所有傳入參數進行命令行參數轉義過濾。

  • 如(rú)何一(yī)步一(yī)步走向架構師

            成為(wèi)優秀的(de)架構師是大部分初中級工程師的(de)階段性目标。優秀的(de)架構師往往具備七種核心能力:編程能力、調試能力、編譯部署能力、性能優化能力、業務架構能力、在線運維能力、項目管理(lǐ)能力和(hé)規劃能力。        這幾種能力之間的(de)關系大概如(rú)下圖。編程能力、調試能力和(hé)編譯部署能力屬于最基礎的(de)能力。不能精通掌握這三種能力,很難在性能優化能力和(hé)業務架構能力方面有所成就。具備了一(yī)定的(de)性能優化能力和(hé)業務架構能力之後,才能在線運維能力和(hé)項目管理(lǐ)能力方面表現優越。團隊管理(lǐ)能力是最高(gāo)能力,它對項目管理(lǐ)能力的(de)依賴度更大。基本知識1.學(xué)會分析源碼 程序員每天都和(hé)代碼打交道(dào)。經過數年(nián)的(de)基礎教育和(hé)職業培訓,大部分程序員都會「寫」代碼,或者至少會抄代碼和(hé)改代碼。但是,會讀代碼的(de)并不在多數,會讀代碼又真正讀懂一(yī)些大項目的(de)源碼的(de),少之又少。這種怪狀,真要追究起來,怪不得程序員這個群體本身 --它是兩個原因造成的(de):我們所有的(de)教育和(hé)培訓都在強調怎麽寫代碼,并沒有教大家如(rú)何讀代碼大多數工作場景都是一(yī)個蘿蔔一(yī)個坑,我們隻需要了解一(yī)個系統的(de)局部便能開展工作,讀不相幹的(de)代碼,似乎沒用讀源碼三問:“為(wèi)什麽要有這樣的(de)架構”,“他是什麽樣子(zǐ)的(de)”,“他是怎麽工作的(de)”。 那麽阿裏程序員是如(rú)何去(qù)讀代碼的(de)呢(ne)?2.分布式架構特點及設計理(lǐ)念首先需要說明的(de)是,分布式系統是一(yī)個複雜且寬泛的(de)研究領域,學(xué)習一(yī)兩門在線課程,看一(yī)兩本書可(kě)能都是不能完全覆蓋其所有內(nèi)容的(de)。介于這篇文章(zhāng)是引導初學(xué)者入門,所以我個人覺得為(wèi)初學(xué)者介紹一(yī)下當前分布式系統領域的(de)全貌,也許比直接推薦論文和(hé)課程更有幫助。當初學(xué)者對這個領域建立起一(yī)個大的(de) Picture之後,可(kě)以根據自(zì)己的(de)興趣,有選擇性的(de)深入不同領域進行進一(yī)步的(de)學(xué)習。3.為(wèi)什麽微服務會這麽火?要學(xué)習微服務,首先,我們要了解為(wèi)什麽使用微服務。代碼難以理(lǐ)解?構建和(hé)部署耗時長(cháng),難以定位問題,開發效率低(dī)?單體隻能按整體橫向擴展,無法分模塊垂直擴展?一(yī)個bug有可(kě)能引起整個應用的(de)崩潰?受技術棧限制,團隊成員使用同一(yī)框架和(hé)語言?那麽如(rú)何解決單體的(de)不足呢(ne),通過遷移到微服務架構來解決,我們看一(yī)下什麽是微服務。微服務架構:将單體應用拆分為(wèi)多個高(gāo)內(nèi)聚低(dī)耦合的(de)小型服務,每個小服務運行在獨立進程,由不同的(de)團隊開發和(hé)維護,服務間采用輕量級通信機制,獨立自(zì)動部署,可(kě)以采用不同的(de)語言及存儲。單體架構整個團隊維護開發一(yī)個大工程及一(yī)個單庫,到了微服務架構,用戶請求經過API Gateway被路由到下遊服務,服務之間以輕量級通信協議進行通信,服務通過注冊中心發現彼此,每個服務都有專門的(de)開發維護團隊,每個服務對應獨立的(de)數據庫,服務獨立開發,獨立部署和(hé)上線。接下來我們總結下微服務的(de)優點:易于開發與維護微服務相對小,易于理(lǐ)解啓動時間短(duǎn),開發效率高(gāo)獨立部署一(yī)個微服務的(de)修改不需要協調其它服務伸縮性強每個服務都可(kě)以在橫向和(hé)縱向上擴展每個服務都可(kě)按硬件資源的(de)需求進行獨立擴容與組織結構相匹配微服務架構可(kě)以更好将架構和(hé)組織相匹配每個團隊獨立負責某些服務,獲得更高(gāo)的(de)生産力技術異構性使用最适合該服務的(de)技術降低(dī)嘗試新技術的(de)成本下面就送上學(xué)習架構圖吧(ba)4.程序員到底要不要學(xué)習JVM總有人問這個東西好像用不上,于是要不要學(xué)這樣的(de)問題。然後又總有人擔心一(yī)直搬磚成天做(zuò)些重複沒提升的(de)東西。如(rú)果你這輩子(zǐ)隻甘心做(zuò)一(yī)個平庸的(de)Java碼農,那麽你完全沒有必要去(qù)學(xué)習JVM相關的(de)知識,學(xué)習JVM對于一(yī)個Java程序員的(de)好處大概可(kě)以概括為(wèi)下幾點:1.你能夠明白為(wèi)什麽Java最早期被稱為(wèi)解釋型語言,而後來為(wèi)什麽又被大家叫做(zuò)解釋與編譯并存的(de)語言(了解JVM中解釋器以及即時編譯器就可(kě)以回答這個問題);2.你能夠理(lǐ)解動态編譯與靜态編譯的(de)區别,以及動态編譯相對于靜态編譯到底有什麽好處(JVM JIT);3.你能夠利用一(yī)些工具,jmap, jvisualvm, jstat, jconsole等工具可(kě)以輔助你觀察Java應用在運行時堆的(de)布局情況,由此你可(kě)以通過調整JVM相關參數提高(gāo)Java應用的(de)性能;4.可(kě)以清楚知道(dào)Java程序是如(rú)何執行的(de);5.可(kě)以明白為(wèi)什麽Java等高(gāo)級語言具有可(kě)移植性強的(de)特性。其實這個問題相當于“為(wèi)什麽C/C++程序員需要學(xué)體系結構與編譯原理(lǐ)?”話不多說,附上學(xué)習體系圖5.被我們忽略掉的(de)工程化專題IT産業行業細分化已經不是一(yī)天兩天的(de)事了。集成技術這件事并不可(kě)恥可(kě)笑,反而是另一(yī)種可(kě)貴的(de)能力。并不是像一(yī)些人形容的(de)那樣,好像批發幾個CPU,拿到華強北就能把自(zì)己的(de)電腦改裝成超級計算機了。那麽,為(wèi)什麽我們常常會忽略掉工程化這件事的(de)價值呢(ne)?主要的(de)原因,或許是因為(wèi)工程化這件事本身就離(lí)我們太遠。一(yī)個産業工程化的(de)普遍性越高(gāo),說明這個産業發展的(de)越成熟:産業鏈細分、分工細化、全球化的(de)研發和(hé)生産這些高(gāo)效的(de)工作方式開始出現。而産業成熟也往往代表着寡頭化情況顯著。在IT産業中,寡頭化出現代表着創業公司減少--沒人再去(qù)用聲勢浩大的(de)發布會講故事、沒人再去(qù)宣傳自(zì)己拿了多少融資。這一(yī)代中國人自(zì)小的(de)教育不比歐美的(de)STEAM,而是重學(xué)術、輕手藝。我們往往會為(wèi)工科和(hé)産能過剩畫上等号。強大的(de)資本和(hé)技術門檻為(wèi)這些産業蒙上了一(yī)層神秘的(de)面紗,讓普通人很難真正了解到其中技術和(hé)工藝的(de)複雜程度,也就更難明白其中的(de)價值。可(kě)正是因為(wèi)中國的(de)工程化能力,才讓我們有機會走到AI時代的(de)第一(yī)梯隊,而不僅僅是靠學(xué)術研究能力。另外一(yī)個原因,或許在于我們天生“叛逆心”。超級計算機、手機芯片等等技術門檻較高(gāo)的(de)産業,其背後往往是大企業和(hé)國資科研機構。當評判的(de)對象是他們時,我們似乎更願意相信狗血的(de)商業故事和(hé)陰謀論:比如(rú)科研經費都被教授們吃吃喝喝啦;搞超級計算機就是放衛星其實美日根本不care啦;XX企業的(de)技術都是從創業公司買來的(de)除了會賺用戶的(de)錢啥技術都沒有……産生這種“叛逆心”的(de)原因太深刻,我們能做(zuò)到的(de),隻有在這種“慣性思維”出現時先按住自(zì)己奔向鍵盤的(de)手,轉表達欲為(wèi)好奇心,完成自(zì)己了解的(de)義務,再去(qù)行使自(zì)己批判的(de)權利。附上思維腦圖6.沒有高(gāo)并發經驗,想進大公司該怎麽辦?假如(rú)沒有靠譜的(de)公司,接觸不到高(gāo)并發的(de)業務場景怎麽辦?你永遠解決的(de)是小問題,工作10年(nián)技術也未必提升多少。很多程序員也經常找我說,沒有經驗就沒有靠譜的(de)公司收,沒有靠譜的(de)公司也就沒有經驗,我看了無數的(de)書,自(zì)己做(zuò)了無數的(de)實驗拼命想找個靠譜公司去(qù)深入,但是感覺好難,簡直是個死循環讀者群的(de)朋(péng)友大家都比較關注高(gāo)并發,原因很簡單,想去(qù)BAT這樣的(de)大公司,你必須要有高(gāo)并發的(de)經驗。今天普及下高(gāo)并發的(de)知識,希望大家對高(gāo)并發有一(yī)個正确的(de)認識。7.學(xué)習千遍,不如(rú)項目實戰成功一(yī)次我們在學(xué)習過程中最容易犯的(de)一(yī)個錯誤就是:看的(de)多,動手的(de)少。特别是對一(yī)些項目的(de)整體開發,我們接觸的(de)機會就更少了。一(yī)次完整的(de)開發,是最好的(de)學(xué)習。它能讓你對整個開發流程有完整的(de)認識,對知識也會有極大的(de)鞏固。更重要的(de)是,你将學(xué)會将理(lǐ)論知識用到實際開發中的(de)方法。所以無論項目大小,一(yī)定要動手去(qù)進行開發學(xué)習。項目實戰相信很多程序員都多少會有的(de),可(kě)是我們這個還要學(xué)習什麽呢(ne)?那就要看你想不想成為(wèi)一(yī)個架構師了,為(wèi)什麽98%的(de)程序員工作10年(nián),一(yī)輩子(zǐ)還隻是一(yī)個開發者。程序員們都要想一(yī)想這個問題,我是不是需要提升了。我認為(wèi),學(xué)習項目實戰最重要的(de)還是學(xué)習項目管理(lǐ),作為(wèi)程序員,都應該學(xué)點項目管理(lǐ)。凡事皆為(wèi)“項目”項目的(de)兩類屬性(複雜的(de)邏輯,龐大的(de)信息量)人腦擅長(cháng)的(de)是思考,而不是記憶成為(wèi)一(yī)個“獨當一(yī)面”的(de)人獨當一(yī)面是一(yī)個很性感的(de)詞。是否擁有它,對應的(de)職場價值,有着天壤之别的(de)。所有老闆都喜歡“獨當一(yī)面”的(de)員工,因為(wèi)這是最省心力、最好算賬的(de)模式:給你一(yī)塊資源,給你一(yī)個 title,給你一(yī)個目标,然後你給我打出一(yī)片天地(dì)來。當你能獨立對一(yī)攤子(zǐ)事情負責,并把它們一(yī)一(yī)搞定,你會擁有大幅度的(de)職場溢價--相應的(de),其收入回報,也遠非“技術螺絲”可(kě)比了。如(rú)果你很進取,你會逐漸地(dì):主導一(yī)個小組,一(yī)個部門,一(yī)個家庭,甚至還是城市……而這所有的(de)一(yī)切起點,正是獨立完整地(dì)做(zuò)好一(yī)個項目:你沒有誰可(kě)以依靠,你要對其中大大小小的(de)事務負責,你要對最後的(de)結果。換句話說,“項目管理(lǐ)”是“獨當一(yī)面”的(de)元能力。在這個過程中,你的(de)意識越發清晰,你的(de)方法論越發成熟,你的(de)信心更加沛,項目越做(zuò)越大。直到某天,你真的(de)有了掌控一(yī)方的(de)封疆大吏。這就是我們學(xué)習“項目實戰”的(de)終極意義。或許作為(wèi)程序員的(de)你想提升自(zì)己,卻找不到突破口,公司沒人帶。又或許你已經工作6年(nián)了,卻還是很迷茫,很多知識都還是不懂,也沒有達到自(zì)己期望的(de)一(yī)個職位,薪資。到這裏,你可(kě)能認為(wèi)文章(zhāng)已經完了,學(xué)完這些就可(kě)以去(qù)BAT大公司做(zuò)一(yī)個架構師,年(nián)薪50W+嗎?不,你錯了,這些都知識最基本的(de)知識,想要成為(wèi)一(yī)個架構師必須是一(yī)個累積的(de)過程,也是這麽多程序員終其一(yī)生也隻是一(yī)個開發,到年(nián)齡就會被公司辭退。這些也是架構師必須要了解到的(de)知識。編程能力對工程師而言,編程是最基礎的(de)能力,必備技能。其本質是一(yī)個翻譯能力,将業務需求翻譯成機器能懂的(de)語言。提升編程能力的(de)書籍有很多。精通面向對象和(hé)設計模式是高(gāo)效編程的(de)基礎。初級工程師應該多寫代碼、多看代碼。找高(gāo)手做(zuò)Code Review,也是提升編程水平的(de)捷徑。編譯部署能力編譯并在線上部署運行程序是系統上線的(de)最後一(yī)個環節。随着SOA架構的(de)普及以及業務複雜度的(de)增加,大部分系統隻是一(yī)個完整業務的(de)一(yī)個環節,因此,本地(dì)編譯和(hé)運行并不能完全模拟系統在線運行。為(wèi)了快速驗證所編寫程序的(de)正确性,編譯并在線上部署就成了必要環節。所以編譯部署能力是一(yī)個必備技能。讓盤根錯節的(de)衆多子(zǐ)系統運行起來是個不小的(de)挑戰。得益于SOA架構的(de)普及以及大量編譯、部署工具的(de)發展,編譯部署的(de)門檻已經大大降低(dī)。基于應用層進行開發的(de)公司,已經很少有“編譯工程師”的(de)角色了。但是對于初級工程師而言,編譯部署仍然不是一(yī)個輕松的(de)事情。性能優化能力衡量一(yī)個系統成功的(de)一(yī)個重要指标是使用量。随着使用量的(de)增加和(hé)業務複雜度的(de)增加,大部分系統最終都會碰到性能問題。性能優化能力是一(yī)個綜合能力。因為(wèi):影響系統性能的(de)因素衆多,包括:數據結構、操作系統、虛拟機、CPU、存儲、網絡等。為(wèi)了對系統性能進行調優,架構師需要掌握所有相關的(de)技術。精通性能優化意味着深刻理(lǐ)解可(kě)用性、可(kě)靠性、一(yī)緻性、可(kě)維護性、可(kě)擴展性等的(de)本質。性能優化與業務強耦合,最終所采取的(de)手段是往往折衷的(de)結果。所以,性能優化要深谙妥協的(de)藝術。可(kě)以說,性能優化能力是工程師們成長(cháng)過程中各種技能開始融會貫通的(de)一(yī)個标志。這方面可(kě)以參考之前的(de)博客文章(zhāng)“常見性能優化策略的(de)總結”。市場上還有很多與性能優化相關的(de)書籍,大家可(kě)以參考。多多閱讀開源框架中關于性能優化方面的(de)文檔和(hé)代碼也不失為(wèi)好的(de)提升手段。動手解決線上性能問題也是提升性能優化能力的(de)關鍵。如(rú)果有機會,跟着高(gāo)手學(xué)習,分析性能優化解決方案案例(我們技術博客之前也發表了很多這方面的(de)文章(zhāng)),也是快速提升性能優化能力的(de)手段。調試能力程序代碼是系統的(de)靜态形式,調試的(de)目的(de)是通過查看程序的(de)運行時狀态來驗證和(hé)優化系統。本質上講,工程師們通過不斷調試可(kě)以持續強化其通過靜态代碼去(qù)預測運行狀态的(de)能力。所以調試能力也是工程師編程能力提升的(de)關鍵手段。很早之前有個傳說:“調試能力有多強,編程能力就有多強。”不過現在很多編輯器的(de)功能很強大,調試能力的(de)門檻已經大大降低(dī)。調試能力是項目能否按時、高(gāo)質量提交的(de)關鍵。即使一(yī)個稍具複雜度的(de)項目,大部分工程師也無法一(yī)次性準确無誤的(de)完成。大項目都是通過不斷地(dì)調試進行優化和(hé)糾錯的(de)。所以調試能力是不可(kě)或缺的(de)能力。多寫程序,解決Bug,多請教高(gāo)手是提升調試能力的(de)重要手段。在線運維能力如(rú)果說性能優化能力體現的(de)是架構師的(de)靜态思考能力,在線運維能力考驗的(de)就是動态反應能力。殘酷的(de)現實是,無論程序多麽完美,Bug永遠存在。與此同時,職位越高(gāo)、責任越大,很多架構師需要負責非常重要的(de)在線系統。對于線上故障,如(rú)果不能提前預防以及快速解決,損失可(kě)能不堪設想,所以在線運維能力是優秀架構師的(de)必備技能。為(wèi)了對線上故障進行快速處理(lǐ),标準化的(de)監控、上報、升級,以及基本應對機制當然很重要。通過所觀察到的(de)現象,快速定位、緩解以及解決相關症狀也相當關鍵。這要求架構師對故障系統的(de)業務、技術具備通盤解讀能力。解決線上故障的(de)架構師就好比一(yī)個在參加比賽F1的(de)車手。賽車手必須要了解自(zì)身、賽車、對手、同伴、天氣、場地(dì)等所有因素,快速決策,不斷調整。架構師必須要了解所有技術細節、業務細節、處理(lǐ)規範、同伴等衆多因素,快速決斷,迅速調整。在線運維本質上是一(yī)個強化學(xué)習的(de)過程。很多能力都可(kě)以通過看書、查資料來完成,但在線運維能力往往需要大量的(de)實踐來提升。業務架構能力工程師抱怨産品經理(lǐ)的(de)故事屢見不鮮,抱怨最多的(de)主要原因來自(zì)于需求的(de)頻繁變更。需求變更主要有兩個來源:第一(yī)個原因是市場改變或戰略調整,第二個原因是僞需求。對于第一(yī)個原因,無論是工程師還是産品經理(lǐ),都隻能無奈的(de)接受。優秀的(de)架構師應該具備減少第二種原因所導緻的(de)需求變更的(de)概率。僞需求的(de)産生有兩個原因:第一(yī)個原因是需求傳遞變形。從信息論的(de)角度來講,任何溝通都是一(yī)個編碼和(hé)解碼的(de)過程。典型的(de)需求從需求方到産品經理(lǐ),最終到開發工程師,最少需要經曆三次編碼和(hé)解碼過程。而信息的(de)每一(yī)次傳遞都存在一(yī)些損失并帶來一(yī)些噪音,這導緻有些時候開發出來的(de)産品完全對不上需求。此外,需求方和(hé)産品經理(lǐ)在需求可(kě)行性、系統可(kě)靠性,開發成本控制方面的(de)把控比較弱,也會導緻需求變形。第二個原因就是需求方完全沒有想好自(zì)己的(de)需求。優秀的(de)架構師應該具備辨别真僞需求的(de)能力。應該花時間去(qù)了解客戶的(de)真實業務場景,具備較強的(de)業務抽象能力,洞悉客戶的(de)真實需求。系統的(de)真正實施方是工程師,在明确客戶真實需求後,高(gāo)明的(de)架構師應該具備準确判斷項目對可(kě)行性、可(kě)靠性、可(kě)用性等方面的(de)要求,并能具備成本意識。最後,由于需求與在線系統的(de)緊耦合關系,掌握在線系統的(de)各種細節也是成功的(de)業務架構的(de)關鍵。随着級别的(de)提升,工程師所面對的(de)需求會越來越抽象。承接抽象需求,提供抽象架構是架構師走向卓越的(de)必經之途。市場上有一(yī)些關于如(rú)何成為(wèi)架構師的(de)書,大家可(kě)以參考。但是架構能力的(de)提升,實踐可(kě)能是更重要的(de)方式。業務架構師應該關注客戶的(de)痛點而不是PRD文檔,應該深入關注真實業務。掌握現存系統的(de)大量技術和(hé)業務細節也是業務架構師的(de)必備知識。項目管理(lǐ)能力作為(wèi)工業時代的(de)産物,分工合作融入在互聯網項目基因裏面。架構師也需要負責幾個重大項目才能給自(zì)己正名。以架構師角色去(qù)管理(lǐ)項目,業務架構能力當然是必備技能。此外,人員管理(lǐ)和(hé)成本控制意識也非常重要。項目管理(lǐ)還意味着要有一(yī)個大心髒。重大項目涉及技術攻關、人員變動、需求更改等衆多可(kě)變因素。面臨各種變化,還要在确保目标順利達成,需要較強的(de)抗壓能力。人員管理(lǐ)需要注意的(de)方面包括:知人善用,優化關系,簡化溝通,堅持真理(lǐ)。知人善用意味着架構師需要了解每個參與者的(de)硬技能和(hé)軟素質。同時,關注團隊成員在項目過程中的(de)表現,按能分配。優化關系意味着管理(lǐ)團隊的(de)情緒,畢竟項目的(de)核心是團隊,有士氣的(de)團隊才能高(gāo)效達成目标。簡化溝通意味着快速決策,該妥協的(de)時候妥協,權責分明。堅持真理(lǐ)意味着頂住壓力,在原則性問題上絕不退步。成本控制意味着對項目進行精細化管理(lǐ),需要遵循如(rú)下幾個原則:以終為(wèi)始、确定裏程碑。為(wèi)了達成目标,所有的(de)計劃必須以終為(wèi)始來制定。将大項目分解成幾個小階段,控制每個階段的(de)裏程碑可(kě)以大大降低(dī)項目失敗的(de)風險。把控關鍵路徑和(hé)關鍵項目。按照關鍵路徑管理(lǐ)理(lǐ)論(CPM)的(de)要求,架構師需要确定每個子(zǐ)項目的(de)關鍵路徑,确定其最早和(hé)最晚啓動時間。同時,架構師需要關注那些可(kě)能會導緻項目整體延期的(de)關鍵節點,并集中力量攻破。掌控團隊成員的(de)張弛度。大項目持續時間會比較長(cháng),也包含不同工種。項目實施是一(yī)個不斷變化的(de)動态過程,在這個過程中不是整個周期都很緊張,不是所有的(de)工種都一(yī)樣忙。優秀的(de)架構師必須要具備精細閱讀整體項目以及快速反應和(hé)實時調整的(de)能力。這不僅僅可(kě)以大大降低(dī)項目成本,還可(kě)以提高(gāo)産出質量和(hé)團隊滿意度。總體來說,“前緊後松”是項目管理(lǐ)的(de)一(yī)個重要原則。項目管理(lǐ)方面的(de)書籍很多。但是,提高(gāo)業務架構能力同樣重要。積極參與大項目并觀察别人管理(lǐ)項目的(de)方式也是非常重要的(de)提升手段。團隊管理(lǐ)能力不想做(zuò)CTO的(de)工程師不是一(yī)個好的(de)架構師。走向技術管理(lǐ)應該是工程師的(de)一(yī)個主流職業規劃。團隊管理(lǐ)的(de)一(yī)個核心能力就是規劃能力,這包括項目規劃和(hé)人員規劃。良好的(de)規劃需要遵循如(rú)下原則:規劃是利益的(de)博弈。良好的(de)規劃上面對得起老闆,中間對得起自(zì)己,下面對得起團隊。在三者利益者尋找平衡點,實現多方共赢考驗着管理(lǐ)者的(de)智慧和(hé)精細拿捏的(de)能力。任何規劃都比沒有規劃好。沒有規劃的(de)團隊就是沒頭的(de)蒼蠅,不符合所有人的(de)利益。規劃不是本本主義。市場在變,團隊在變,規劃也不應該一(yī)成不變。客戶至上的(de)是項目規劃的(de)出發點。就人員規劃而言,規劃需要考量團隊成員的(de)能力、績效、成長(cháng)等多方面的(de)因素。

  • 從4個方面優化你的(de)Vue項目

    運行時優化1、使用v-if代替v-show兩者的(de)區别是:v-if不渲染DOM,v-show會預渲染DOM除以下情況使用v-show,其他情況盡量使用v-if有預渲染需求需要頻繁切換顯示狀态2、v-for必須加上key,并避免同時使用v-if一(yī)般我們在兩種常見的(de)情況下會傾向于這樣做(zuò):為(wèi)了過濾一(yī)個列表中的(de)項目 比如(rú) v-for="user in users" v-if="user.isActive"。在這種情形下,請将 users替換為(wèi)一(yī)個計算屬性 (比如(rú)activeUsers),讓其返回過濾後的(de)列表為(wèi)了避免渲染本應該被隐藏的(de)列表 比如(rú) v-for="user in users" v-if="shouldShowUsers"。這種情形下,請将 v-if 移動至容器元素上 (比如(rú) ul, ol)3、事件及時銷毀Vue組件銷毀時,會自(zì)動清理(lǐ)它與其它實例的(de)連接,解綁它的(de)全部指令及事件監聽器,但是僅限于組件本身的(de)事件。也就是說,在js內(nèi)使用addEventListener等方式是不會自(zì)動銷毀的(de),我們需要在組件銷毀時手動移除這些事件的(de)監聽,以免造成內(nèi)存洩露,如(rú):created() {   addEventListener('touchmove', this.touchmove, false) }, beforeDestroy() {   removeEventListener('touchmove', this.touchmove, false) } 複制代碼4、首屏優化圖片裁剪、使用webp圖片需要裁剪,一(yī)般使用二倍圖即可(kě)盡量使用webp圖片如(rú)果使用了vue-lazyload插件,可(kě)以使用以下方法一(yī)鍵替換webp(替換使用v-lazy指令的(de)圖片)Vue.use(VueLazyload, {   error: require('./assets/img/defaultpic_small.png'),   filter: {     webp (listener: any, options: any) {       if (!options.supportWebp) return       // listener.src += '.webp'     }   } });

  • 如(rú)何改進你的(de)網站導航?學(xué)習這7個必要的(de)實踐!

    一(yī)、什麽是網站導航?網站導航(或稱,內(nèi)部鏈接體系結構)是連接你的(de)網頁的(de)鏈接。網站導航的(de)主要目的(de)是幫助用戶在你的(de)網站上輕松找到東西。搜索引擎使用你的(de)網站導航來發現和(hé)索引新的(de)頁面。鏈接幫助搜索引擎理(lǐ)解目标頁面的(de)內(nèi)容和(hé)上下文,以及頁面之間的(de)關系。“用戶至上”。這是網站導航的(de)基本目标,你必須永遠記住。首先滿足用戶。使導航容易。然後,優化搜索引擎而不損害用戶體驗。這篇文章(zhāng)的(de)其餘部分将會對網站導航的(de)最佳實踐保持更廣泛的(de)關注,列出各種可(kě)能導緻網站訪問者和(hé)搜索引擎問題的(de)內(nèi)部鏈接情況。這個話題對于在大型網站上工作的(de)人來說尤其重要。二、網站導航和(hé)內(nèi)容層次結構當在一(yī)本書中搜索特定的(de)頁面時,你可(kě)以簡單地(dì)閱讀目錄或索引。當你在雜貨店裏逛的(de)時候,貨架上的(de)貨架上一(yī)般都貼着的(de)分類标簽。兩者都提供了一(yī)種有效的(de)方式來浏覽大量內(nèi)容。內(nèi)容層次結構的(de)存在是為(wèi)了簡化查找內(nèi)容的(de)過程。當大量的(de)內(nèi)容存在時,它可(kě)以被分解成幾個大類。在這些寬泛的(de)類别中,你可(kě)以創建更細化的(de)分類,這構建了不同層次的(de)層次,用戶可(kě)以輕松導航。利用內(nèi)容層次結構以一(yī)種對用戶和(hé)搜索引擎有意義的(de)方式組織網站頁面。1. 內(nèi)容層次結構和(hé)網站導航的(de)重要性內(nèi)容的(de)分類和(hé)次類劃分幫助頁面在一(yī)般的(de)标題和(hé)特定的(de)長(cháng)尾術語中提高(gāo)排名。2. 由內(nèi)容層次結構引起的(de)問題內(nèi)容分類和(hé)構建層次結構創建內(nèi)容豎井,就像緊密相關主題的(de)集群。百度将以不同的(de)速度抓取不同的(de)頁面,從不同的(de)站點索引質量鏈接。一(yī)些內(nèi)容豎井比其他的(de)更受歡迎。這些頁面可(kě)能會比其他頁面獲得更多的(de)外部鏈接和(hé)流量,因此,在有機搜索中獲得更重要的(de)位置。當內(nèi)容太過豎向并且不能獲得鏈接和(hé)流量時,它可(kě)能也不能執行 —— 即使你的(de)其他內(nèi)容豎井執行得非常好。內(nèi)容層次結構可(kě)以隔離(lí)可(kě)能位于站點內(nèi)部太深的(de)某些流行頁面集群。這就是水平鏈接發揮作用的(de)地(dì)方。盡管鏈接相關性在排名上有所幫助,但內(nèi)容豎向之間缺乏交叉鏈接可(kě)能會對你的(de)整體排名不利。總是有方法可(kě)以創建水平鏈接類别的(de)關系。所有頁面都屬于同一(yī)網站的(de)事實已經表明,這些頁面并非完全無關。操作項:內(nèi)容類别之間的(de)鏈接對內(nèi)容進行分類,以形成對用戶有意義的(de)類别層次結構,并正确地(dì)鏈接這些頁面,在層次結構中上下移動。這些是大多數鏈接。在不同類别的(de)頁面之間創建交叉鏈接,但仍然有相似之處。三、産品與內(nèi)容營銷頁面之間的(de)鏈接銷售超過一(yī)種産品或服務的(de)公司将會對頁面進行分類,創建內(nèi)容豎井,并相互鏈接。然而,許多 SEO 團隊和(hé)內(nèi)容團隊也創建了一(yī)些具有吸引力和(hé)可(kě)分享性的(de)資産。通常情況下,這是以博客的(de)形式出現的(de),文章(zhāng)中包含了指向特定産品和(hé)服務的(de)鏈接。博客文章(zhāng)可(kě)以很有用,因為(wèi)它們可(kě)以引導更多的(de)流量到産品頁面。然而,許多網站無法将産品頁面鏈接到博客頁面。使用這種水平鏈接可(kě)以幫助用戶了解你的(de)産品或服務,并提高(gāo)你的(de) SEO 性能。操作項:産品和(hé)內(nèi)容頁之間的(de)鏈接四、網站導航使用 JavaScript 效果有時,鏈接和(hé) web 頁面是用 JavaScript 編寫的(de)。這是一(yī)個問題,因為(wèi)搜索引擎很難找到在 JavaScript 中創建的(de)內(nèi)部鏈接。盡管近年(nián)來百度在閱讀 JavaScript 方面有所改進,但 SEO 專家得出的(de)結論是,結果是不一(yī)緻的(de)。其他搜索引擎在閱讀 JavaScript 時仍然沒有能力。這意味着當搜索引擎抓取你的(de)內(nèi)容時,你的(de)內(nèi)部鏈接可(kě)能會完全丢失。對于使用 JavaScript 是否實用,SEO 專家存在分歧。一(yī)方面,一(yī)些  SEO 專家完全避免使用 JavaScript。另一(yī)方面,web 設計人員和(hé)可(kě)用性專家聲稱 JavaScript 對用戶體驗至關重要。我相信有一(yī)個這之間有一(yī)個平衡的(de)地(dì)方,JavaScript 可(kě)以被使用,同時避免任何 SEO 問題。1. 顯示和(hé)隐藏頁面內(nèi)容的(de)鏈接JavaScript 可(kě)以用來在頁面上顯示和(hé)隐藏某些內(nèi)容,而不需要更改頁面。當發生這種情況時,所有的(de)內(nèi)容都預先加載到頁面中。在這種情況下,搜索引擎仍然能夠抓取所有的(de)內(nèi)容,即使其中一(yī)些內(nèi)容是隐藏的(de)。隻有當隐藏的(de)內(nèi)容量很小的(de)時候才會成功。當整個頁面更改時,它可(kě)能會出現問題,但是 URL 保持不變。問題出現的(de)原因是,當你在一(yī)個 URL 中隐藏太多內(nèi)容時,它會稀釋頁面內(nèi)容的(de)焦點。一(yī)個完全不同的(de)主題應該有自(zì)己的(de)頁面。操作項:顯示和(hé)隐藏內(nèi)容的(de)鏈接在 2016 年(nián)的(de) seoClarity 做(zuò)的(de)演示中,更深入地(dì)介紹了如(rú)何在網站上具體實現這一(yī)點。它特别提到了 AngularJS,一(yī)個流行的(de) JavaScript 框架,以及它的(de) SEO 問題和(hé)解決方案。然而,這裏的(de)經驗也适用于幾乎任何 JavaScript 框架。五、在 URL 中使用跟蹤參數可(kě)用性專家和(hé)轉換優化專家以不同的(de)方式跟蹤用戶行為(wèi)。有時,這涉及在站點內(nèi)的(de) URL 中使用跟蹤參數。這将導緻重複的(de)內(nèi)容問題,因為(wèi)鏈接到具有完全相同內(nèi)容的(de)不同 URL。這可(kě)以通過多種方式解決。操作項:跟蹤 URL 中的(de)參數六、第一(yī)個鏈接優先一(yī)個包含兩個或多個鏈接指向同一(yī)個 URL 的(de) web 頁面被認為(wèi)會導緻搜索引擎爬行的(de)問題,隻有第一(yī)個鏈接被考慮,而重複鏈接被忽略。1. 從第一(yī)個鏈接優先級産生的(de) SEO 問題在主要內(nèi)容之前,Top-bar 導航和(hé)左側側邊欄常常首先出現在源代碼中。此外,這些菜單中的(de)導航元素通常都有短(duǎn)的(de)錨文本。他們傾向于少關注關鍵詞,多關注設計。頁面的(de)主要內(nèi)容之間的(de)鏈接傾向于更多地(dì)關注關鍵詞,包含支持關鍵詞的(de)周圍內(nèi)容。它們的(de)長(cháng)度也更靈活,有更長(cháng)的(de)、更具體的(de)錨文本。這段較長(cháng)的(de)文本增加了頁面可(kě)能排列的(de)關鍵詞的(de)種類。然而,由于第一(yī)個鏈接優先級問題,這些鏈接常常被搜索引擎忽略。操作項:第一(yī)個鏈接優先級問題考慮代碼的(de)順序。在側邊欄和(hé)頂部欄導航之前對主要內(nèi)容進行優先排序。CSS 可(kě)以用來控制浮動方向,從左到右或右到左,以使側邊欄的(de)導航負載在主內(nèi)容之後。頂部的(de)條形導航可(kě)以用絕對定位來控制。七、處理(lǐ)大型網站導航對于大型網站(那些擁有成千上萬頁的(de)網站)來說,網站導航是一(yī)個巨大的(de)挑戰。分類菜單中的(de)自(zì)然站點導航通常鏈接到站點的(de)所有頁面,而 XML 站點地(dì)圖可(kě)以幫助索引所有頁面。但是,內(nèi)容豎井之間缺乏交叉鏈接會創建頁面之間的(de)距離(lí)。在大型站點上,很難識别産品頁面和(hé)相應産品營銷頁面之間的(de)所有可(kě)能鏈接。一(yī)些大型網站可(kě)能沒有從其他頁面獲得他們需要的(de)鏈接。此外,其他問題如(rú)第一(yī)個鏈接優先級和(hé) JavaScript 問題可(kě)能難以在數百萬頁中發現。以下是應對這些挑戰的(de) 3 個方法:1. 委托給不同的(de)部門大公司擁有比例大的(de)網站,擁有多個不同部門的(de)員工。許多部門可(kě)能對應負責網站的(de)不同部分。确保每個參與維護不同網站的(de)人都遵守相同的(de) SEO 原則和(hé)實踐。然後,在整個網站的(de)優化導航中分配勞動力。2. 使用工具或創建工具自(zì)動化總是使手動過程更具可(kě)伸縮性。除非你有自(zì)己的(de)專用工具,否則可(kě)能沒有一(yī)個工具可(kě)以識别和(hé)修複上面提到的(de)所有問題。像 Xenu,Screaming Frog,DeepCrawl,或者 Botify 這樣的(de)爬行工具可(kě)以分析你現有的(de)鏈接,确定問題,并提供網站架構的(de)描述。如(rú)果你希望可(kě)視(shì)化站點體系結構,像 DynoMapper 和(hé) PowerMapper 這樣的(de)工具可(kě)以幫助實現這一(yī)點。鏈接研究工具,如(rú) Moz 的(de) Open Site Explorer、Ahrefs、Majestic、Sistrix、LRT 和(hé) CognitiveSEO 可(kě)以分析哪些頁面從外部獲得最多的(de)鏈接,然後從這些頁面中添加交叉鏈接,從而獲得更重要的(de)站點頁面。我們使用的(de)專有工具自(zì)動處理(lǐ)頁面的(de)爬行過程,并确定哪些頁面鏈接到另一(yī)個頁面。3. 使用分階段的(de)方法大型網站并不總是有大的(de)團隊來分配優化頁面的(de)工作。如(rú)果缺少資源,你可(kě)以創建自(zì)己的(de)工具來簡化這個過程。如(rú)果這些工具沒有提供你所需的(de)幫助,那麽可(kě)以考慮采用分階段的(de)方法。這需要在一(yī)段時間內(nèi)進行優化調度。這是一(yī)個循序漸進的(de)過程,可(kě)能需要更長(cháng)的(de)時間,但是依靠像有機搜索流量這樣的(de)指标将會幫助你決定首先優化什麽。八、7 個關鍵點總結用戶第一(yī):你的(de)網站導航應該首先滿足用戶。然後,優化你的(de)導航 SEO 性能。永遠不要損害用戶體驗。內(nèi)容豎井之間的(de)交叉連接:頁面之間的(de)內(nèi)容相關性對排名很重要,這在一(yī)個很好的(de)分類、層次結構的(de)網站架構中很自(zì)然地(dì)出現。但是,當缺少內(nèi)容豎井之間的(de)交叉鏈接時,這可(kě)能會有一(yī)些限制,因為(wèi)有些頁面太深或太遠,無法從其他來源獲得大量的(de)鏈接權重。博客對産品,産品到博客:創造高(gāo)質量的(de)內(nèi)容對你的(de)目标讀者是有用的(de)和(hé)相關的(de)。如(rú)果這些博客文章(zhāng)有助于産品購買決策,那麽鏈接到特定産品頁面的(de)博客文章(zhāng)。跟蹤參數:避免使用!在鏈接上使用 onClick 事件處理(lǐ)程序進行跟蹤。有一(yī)個自(zì)引用的(de)規範标記總是安全的(de)。JavaScript 鏈接:避免使用 JavaScript 編寫內(nèi)容和(hé)鏈接。如(rú)果沒有辦法,考慮其他辦法讓它發揮作用。第一(yī)個鏈接優先級:理(lǐ)想情況下,主要內(nèi)容優先。接下來,是側邊欄,然後是頂部欄。最後,處理(lǐ)頁腳。需要進一(yī)步的(de)測試來确定這是否仍然是一(yī)個有效的(de)關注點,但是堅持這種方法并沒有壞處。大型網站:成千上萬的(de)頁面很難做(zuò)到以上所有。委派給一(yī)個團隊,使用工具自(zì)動完成任務,或者一(yī)次處理(lǐ)一(yī)個問題。避免在 URL 中使用跟蹤參數。相反,通過在鏈接上使用 JavaScript 跟蹤 onclick 事件處理(lǐ)程序來跟蹤它們,這些鏈接将傳遞相同的(de)跟蹤參數。如(rú)果使用百度統計,這可(kě)以通過事件跟蹤完成。總是使用自(zì)引用的(de)規範标記是一(yī)種很好的(de)做(zuò)法,可(kě)以避免許多重複的(de)內(nèi)容問題。這個 href 值指向一(yī)個新的(de) URL,該 URL 隻預加載與這個新 URL 相關的(de)內(nèi)容。onclick 函數将阻止新的(de) URL 加載,但是将允許目标 URL 的(de)內(nèi)容加載。使用 pushState 函數更新 URL,即使該頁面沒有加載。隻與 URL 直接相關的(de)預加載內(nèi)容。對于所有的(de)錨标記,應該有一(yī)個 href 值和(hé)一(yī)個 onclick 設置。對于大量內(nèi)容,包括單頁視(shì)差滾動網站,并非所有內(nèi)容都應該預先加載。使用 CSS 來控制光标和(hé)從箭頭到指針的(de)變化。對于少量內(nèi)容,删除錨标記并使用 JavaScript onclick 事件處理(lǐ)程序替換。産品頁面也應該鏈接到相關的(de)內(nèi)容營銷頁面。這可(kě)能包括博客文章(zhāng)、FAQ 和(hé)産品手冊。

  • 關于企業建站

    企業網站是企業在Internet上展示形象的(de)門戶,是企業開展電子(zǐ)交易的(de)基地(dì),是企業網上的(de)"家",設計制作一(yī)個優秀的(de)網站是建網站的(de)企業成功邁向互聯網的(de)重要步驟。網絡可(kě)以帶給企業不分地(dì)域、不分國别的(de)大量客戶,帶給您無限的(de)商機。為(wèi)了獲得本行業的(de)領先地(dì)位,面對不斷湧現的(de)種種機會,企業建立一(yī)個具有自(zì)己特色的(de),精美完善的(de),集多種功能于一(yī)體的(de)企業網站,尤其重要。那麽,對于一(yī)個企業來說,為(wèi)什麽要建網站?下面是巴中網站建設總結的(de)企業建站的(de)優勢。一(yī)、發展業務做(zuò)為(wèi)一(yī)個企業,Internet應做(zuò)為(wèi)您擴展業務的(de)一(yī)種工具,而不僅僅是一(yī)個做(zuò)廣告的(de)媒體。一(yī)個網站可(kě)以看作是您企業的(de)一(yī)位不知疲倦的(de)業務代表,它能随時随地(dì)的(de)幫您接答每一(yī)個"業務電話",且從不請假。一(yī)個網站又是一(yī)個24小時營業的(de)商店,讓您的(de)顧客在任何時候都能買到東西,這樣,您的(de)顧客會感激您為(wèi)他們提供了方便。二、争取新客戶首先,想一(yī)想自(zì)己所從事的(de)行業。然後問自(zì)己:在一(yī)億人中,有一(yī)個人正需要找到您所能提供的(de)服務,可(kě)是,他能正好找到貴公司的(de)機率有多大呢(ne)?如(rú)果您沒有自(zì)己的(de)網站的(de)話,這種機率可(kě)能近似于零。三、服務現有的(de)客戶一(yī)個網站實際上可(kě)以提高(gāo)您對客戶服務的(de)效率。它可(kě)以回答大多數客戶經常向您提出的(de)問題,您可(kě)以讓您的(de)客戶上您的(de)網站去(qù)了解他們所關心的(de)問題,這樣您就可(kě)以滕出時間來去(qù)做(zuò)更需要您做(zuò)的(de)事情,比如(rú)企業管理(lǐ),同時縮短(duǎn)客戶的(de)對公司的(de)考察期,不就是給您的(de)公司更多的(de)利潤嗎!四、增加利潤一(yī)個網上商店自(zì)然會給您帶來利潤,您的(de)成本銷售比将大大地(dì)降低(dī)。也就是銷售成本的(de)降低(dī)。降低(dī)開銷和(hé)成本自(zì)然意味着利潤的(de)增多。即使您不是一(yī)個生産銷售型企業,也可(kě)以通過網上的(de)廣告效應為(wèi)您帶來業務,從而增加利潤。五、降低(dī)成本用網站來降低(dī)成本是一(yī)種有效的(de)競争手段。預算一(yī)下每月登一(yī)個單頁的(de)廣告需花費5000元,另外每月做(zuò)一(yī)次半版的(de)報紙廣告,花費大約2400元,這樣每月的(de)廣告支出将是7400元。有了自(zì)己的(de)網站後,您就可(kě)以減少單頁傳單和(hé)報紙廣告的(de)版面,并使更多的(de)人看到您企業的(de)廣告,同時,精确的(de)了解反饋的(de)情況,最快地(dì)做(zuò)出反映。這樣,成本減少了,而更多未來的(de)新的(de)商機增多了。如(rú)果企業有一(yī)個精美、完善的(de)網站,可(kě)以使客戶增加信任感,同時可(kě)以在段時間內(nèi)了解企業情況、産品信息、資質認證等信息,減少業務員的(de)拜訪次數,減少企業拓展業務的(de)成本。六、延長(cháng)營業時間如(rú)果有人幫您把您的(de)營業時間延長(cháng)66%,您自(zì)然會想到您的(de)業務會增加,但也需要付相應的(de)水電費和(hé)員工費等。但是,有了自(zì)己的(de)網站,您的(de)業務将24小時營業,而不增加任何成本。您可(kě)以同時服務成百上千個客戶而不需要增加店員。七、發展國際化業務您的(de)企業形象及從事的(de)業務,将被世界上每一(yī)個擁有電腦和(hé)對您的(de)業務感興趣的(de)人所看到。即便是小公司,也可(kě)輕易與大公司競争,在Internet上人人平等。八、開拓本地(dì)市場通過網絡搜索引擎可(kě)以找到更多未來的(de)新客戶,給他們發E-mail,寄介紹性資料,一(yī)個新客戶也可(kě)以通過搜索相關類别、關鍵詞、甚至電話号碼來找到您。九、增強市場推廣在當今互聯網時代,一(yī)個企業沒有自(zì)己的(de)網站就像一(yī)個人沒有住址,一(yī)個商店沒有門面。網絡時代的(de)迅速到來..加速了企業銷售、交流的(de)網絡化。所以一(yī)個企業擁有一(yī)個自(zì)己的(de)網站等于是在網絡上的(de)一(yī)個據點。客戶可(kě)以通過網絡了解您的(de)企業、您的(de)産品、關系到您公司的(de)赢利。十、網站是您的(de)忠實接待員建設一(yī)個精美的(de)網站是公司整體實力的(de)體現,同時可(kě)以給顧客留下美好的(de)印象,增強公司軟實力的(de)提升。企業網站建設已經是大勢所趨了,那麽怎麽能在茫茫商海中抓住屬于我們的(de)商機------招攬顧客,提升企業形象!

  • 為(wèi)什麽你愛用的(de) App,都用卡片式設計?

    一(yī)、什麽是卡片卡片是含有圖片和(hé)文字在內(nèi)的(de)小矩形模塊,它是用戶了解更多細節信息的(de)「入口」。要平衡界面的(de)美學(xué)和(hé)可(kě)用性,卡片基本是一(yī)個默認選擇。因為(wèi)卡片用起來非常方便,還可(kě)以展示包含不同元素的(de)內(nèi)容。1. 完美的(de)拟物在用戶界面加入卡片設計可(kě)謂完美的(de)拟物,因為(wèi)它們看起來就像日常生活中真實存在的(de)卡片。其實早在手機設備出現之前,卡片就已經存在了,比如(rú)名片、棒球卡、撲克卡等等。當今,卡片可(kě)謂是目前使用較廣泛的(de)一(yī)種交互模型。因此,對用戶而言,其更能憑直覺認識到,這些卡片就代表真實生活中的(de)某物。此外,就小故事推廣而言,卡片也是非常棒的(de)選擇,棒球卡就是一(yī)個典例。你所需要了解的(de)某運動員基本信息都顯示在小卡片的(de)正反面。2. 內(nèi)容架構卡片将內(nèi)容劃分成多個有意義的(de)部分,這樣還節省了一(yī)定的(de)屏幕空間。類似于「字詞句段篇」的(de)組成形式,卡片也是由最小信息單元組成,并彙總形成連貫的(de)整體內(nèi)容。像 Facebook 這類大企業,其采用卡片驅動型的(de)界面用于台式桌面、手機網頁及 app 客戶端時,卡片布局就被認作設計環節中的(de)核心了。Facebook 充分利用了盒子(zǐ)風格的(de)設計(即卡片——譯者注),将信息歸類,哪怕是在怎麽也滑動不到底端的(de)頁面上。3. 視(shì)覺享受基于卡片的(de)設計通常主要依靠視(shì)覺設計,而使用大量圖片就是卡片設計的(de)一(yī)大亮(liàng)點。研究發現已證實,圖片可(kě)以提升網頁或 app 的(de)整體設計,因為(wèi)圖片可(kě)以快速有效地(dì)吸引用戶的(de)注意力。所以,加入圖片也使得基于卡片的(de)設計更加引人入勝。比如(rú) Dribble,一(yī)個面向設計師等創意類作品的(de)人群,提供作品在線服務,供網友查看的(de)交流類網站。要展示這類內(nèi)容,基于卡片的(de)設計是再合适不過的(de)選擇了。二、如(rú)何設計卡片在同一(yī)頁面布局中,卡片寬度應保持不變,但高(gāo)度可(kě)以相應調整。卡片最大高(gāo)度限于該平台可(kě)用空間的(de)高(gāo)度,但也可(kě)以臨時延伸。例如(rú),在顯示評論框的(de)時候。從設計角度來看,卡片各角最好是圓角,并且最好稍有一(yī)點陰影。圓角使卡片看起來更像一(yī)個內(nèi)容塊,陰影則可(kě)以反映出深度。這些元素在沒有分散用戶注意力的(de)前提下,能給設計帶來一(yī)些視(shì)覺亮(liàng)點。另外,還能給人一(yī)種卡片像是要從頁面中跳出來的(de)感覺。除此之外,還可(kě)以加入動畫和(hé)動效。三、卡片的(de)優勢設計恰當的(de)話,卡片可(kě)以提升 app 的(de)用戶體驗感。因為(wèi)其功能性以及外形的(de)原因,它們成了用戶界面的(de)一(yī)個增值元素,對用戶來說,也更能憑直覺交互。1. 易于理(lǐ)解的(de)形式之前 AppSo(微信号 appsolution)靈感早讀欄目分享 過「內(nèi)容至上原則」。卡片是一(yī)個可(kě)以裝入任何內(nèi)容的(de)設計盒子(zǐ)。将不同內(nèi)容置于卡片之中,可(kě)以方便用戶理(lǐ)解。這樣一(yī)來,用戶可(kě)以輕松了解其最關注的(de)內(nèi)容。這也使用戶可(kě)以通過各種方式來交互。2. 響應式設計以及移動界面設計關于卡片,最重要的(de)是它們基本上極度容易被掌控。不管在台式桌面還是手機客戶端,加入卡片設計的(de)效果都非常好,因為(wèi)內(nèi)容可(kě)以通過更易理(lǐ)解的(de)卡片呈現給用戶。就響應式設計而言,它是不錯的(de)選擇,因為(wèi)以內(nèi)容盒子(zǐ)呈現的(de)卡片可(kě)以方便地(dì)擴展或收縮。最後,加入卡片,在跨平台設備上設計出統一(yī)的(de)美感也就不會步步維艱了。這也是為(wèi)什麽通過卡片可(kě)以在不同設備上輕松設計出相同的(de)用戶體驗感。

  • 高(gāo)速數據緩存

    首先查詢緩存是否存在,如(rú)果存在直接返回緩存內(nèi)容。不存在的(de)話,取數據庫讀取內(nèi)容後存入緩存中,下次就會直接從緩存中讀取內(nèi)容。如(rú)果項目隻是存儲在 Redis 中,減輕 MySQL 壓力。建議不要設置緩存時間,由手動控制更新緩存。查詢時建立緩存,應該同時在創建數據和(hé)修改數據時也建立緩存。避免高(gāo)并發下緩存沒命中,導緻流量瞬間進入 MySQL 查詢。建議使用 ThinkPHP5 的(de)模型事件 after_write 控制緩存的(de)創建和(hé)更新實際項目中更多的(de)是使用哈希或者列表來實現。

  • JS HTTP 請求庫哪家強?Axios,Request,Superagent,Fetch 還是 Supertest .

    Web 開發中客戶端與服務器間的(de)交互非常重要,它有利于客戶端應用高(gāo)度動态化。用戶通過單擊按鈕的(de)交互方式向服務器發送請求,服務器檢索數據并返回,頁面無需重新加載,直接使用返回的(de)數據重新渲染其部分/整體內(nèi)容,或者對數據進行操作。這其中的(de)技術原理(lǐ)是 AJAX,通過 XMLHttpRequest 實例實現。 為(wèi)了提升 AJAX 及 XMLHttpRequest 的(de)使用體驗,社區開發了一(yī)些無需處理(lǐ) AJAX 和(hé) XMLHttpRequest 就直接發出 HTTP 請求的(de)庫。本文将帶你研究 5 個流行的(de) HTTP 庫,了解它們是如(rú)何實現的(de)。 希望能幫你省下一(yī)些時間。提示:通過與 Bit 共享同步公共組件可(kě)以避免代碼重複。 把相同的(de)功能的(de)代碼變成共享組件,就可(kě)以随處使用它了,構建快,趕緊試試看。Axios基于 Promise 的(de) HTTP 客戶端,可(kě)用于浏覽器和(hé) Node.jsAxios 是一(yī)個基于 Promise 的(de) HTTP 庫,可(kě)用在 Node.js 和(hé)浏覽器上發起 HTTP 請求,支持所有現代浏覽器,包括 IE8+!優點同時支持 Node.js 和(hé)浏覽器支持 Promise API可(kě)以配置或取消請求可(kě)以設置響應超時支持防止跨站點請求僞造(XSRF)攻擊可(kě)以攔截未執行的(de)請求或響應支持顯示上傳進度廣泛用于 React 和(hé) Vue 項目缺點用起來比較麻煩Superagent改良版 Ajax——與 Node.js HTTP 客戶端搭配使用Superagent 是一(yī)個基于 Promise 的(de)輕量級漸進式 AJAX API,非常适合發送 HTTP 請求以及接收服務器響應。 與 Axios 相同,它既适用于 Node,也适用于所有現代浏覽器。用 Superagent 發起 HTTP 請求就像在 request 對象上調用方法一(yī)樣簡單: 優點它有一(yī)個插件生态,通過構建插件可(kě)以實現較多功能可(kě)配置HTTP 請求發送接口友好可(kě)以為(wèi)請求鏈式添加方法适用于浏覽器和(hé) Node支持顯示上傳和(hé)下載進度支持分塊傳輸編碼支持舊(jiù)風格的(de)回調繁榮的(de)插件生态,支持衆多常見功能缺點其 API 不符合任何标準Request

  • JavaScript複制內(nèi)容到剪貼闆的(de)兩種常用方法

    查了一(yī)下萬能的(de)Google,現在常見的(de)方法主要是以下兩種:第三方庫:clipboard.js原生方法:document.execCommand()分别來看看這兩種方法是如(rú)何使用的(de)。clipboard.js這是clipboard的(de)官網:https://clipboardjs.com/,看起來就是這麽的(de)簡單。引用直接引用:<script src="dist/clipboard.min.js"></script>包: npm install clipboard --save ,然後 import Clipboard from 'clipboard';使用從輸入框複制現在頁面上有一(yī)個 <input> 标簽,我們需要複制其中的(de)內(nèi)容,我們可(kě)以這樣做(zuò):?12<input id="demoInput" value="hello world"><button class="btn" data-clipboard-target="#demoInput">點我複制</button>?12import Clipboard from 'clipboard';const btnCopy = new Clipboard('btn');注意到,在 <button> 标簽中添加了一(yī)個 data-clipboard-target 屬性,它的(de)值是需要複制的(de) <input> 的(de) id,顧名思義是從整個标簽中複制內(nèi)容。直接複制有的(de)時候,我們并不希望從 <input> 中複制內(nèi)容,僅僅是直接從變量中取值。如(rú)果在 Vue 中我們可(kě)以這樣做(zuò):<button class="btn" :data-clipboard-text="copyValue">點我複制</button>?123import Clipboard from 'clipboard';const btnCopy = new Clipboard('btn');this.copyValue = 'hello world';事件有的(de)時候我們需要在複制後做(zuò)一(yī)些事情,這時候就需要回調函數的(de)支持。在處理(lǐ)函數中加入以下代碼:?12345678910111213// 複制成功後執行的(de)回調函數clipboard.on('success', function(e) { console.info('Action:', e.action); // 動作名稱,比如(rú):Action: copy console.info('Text:', e.text); // 內(nèi)容,比如(rú):Text:hello word console.info('Trigger:', e.trigger); // 觸發元素:比如(rú):<button class="btn" :data-clipboard-text="copyValue">點我複制</button> e.clearSelection(); // 清除選中內(nèi)容}); // 複制失敗後執行的(de)回調函數clipboard.on('error', function(e) { console.error('Action:', e.action); console.error('Trigger:', e.trigger);});小結文檔中還提到,如(rú)果在單頁面中使用 clipboard ,為(wèi)了使得生命周期管理(lǐ)更加的(de)優雅,在使用完之後記得 btn.destroy() 銷毀一(yī)下。clipboard 使用起來是不是很簡單。但是,就為(wèi)了一(yī)個 copy 功能就使用額外的(de)第三方庫是不是不夠優雅,這時候該怎麽辦?那就用原生方法實現呗。document.execCommand()方法先看看這個方法在 MDN 上是怎麽定義的(de):which allows one to run commands to manipulate the contents of the editable region.意思就是可(kě)以允許運行命令來操作可(kě)編輯區域的(de)內(nèi)容,注意,是可(kě)編輯區域。定義bool = document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)方法返回一(yī)個 Boolean 值,表示操作是否成功。aCommandName :表示命令名稱,比如(rú): copy, cut 等(更多命令見命令);aShowDefaultUI:是否展示用戶界面,一(yī)般情況下都是 false;aValueArgument:有些命令需要額外的(de)參數,一(yī)般用不到;兼容性這個方法在之前的(de)兼容性其實是不太好的(de),但是好在現在已經基本兼容所有主流浏覽器了,在移動端也可(kě)以使用。使用從輸入框複制現在頁面上有一(yī)個 <input> 标簽,我們想要複制其中的(de)內(nèi)容,我們可(kě)以這樣做(zuò):?12<input id="demoInput" value="hello world"><button id="btn">點我複制</button>js代碼?123456789const btn = document.querySelector('#btn');btn.addEventListener('click', () => {    const input = document.querySelector('#demoInput');    input.select();    if (document.execCommand('copy')) {        document.execCommand('copy');        console.log('複制成功');    }})其它地(dì)方複制有的(de)時候頁面上并沒有 <input> 标簽,我們可(kě)能需要從一(yī)個 <div> 中複制內(nèi)容,或者直接複制變量。還記得在 execCommand() 方法的(de)定義中提到,它隻能操作可(kě)編輯區域,也就是意味着除了 <input>、<textarea> 這樣的(de)輸入域以外,是無法使用這個方法的(de)。這時候我們需要曲線救國。<button id="btn">點我複制</button>js代碼?123456789101112const btn = document.querySelector('#btn');btn.addEventListener('click',() => {    const input = document.createElement('input');    document.body.appendChild(input);    input.setAttribute('value', '聽說你想複制我');    input.select();    if (document.execCommand('copy')) {        document.execCommand('copy');        console.log('複制成功');    } document.body.removeChild(input);})算是曲線救國成功了吧(ba)。在使用這個方法時,遇到了幾個坑。遇到的(de)坑在Chrome下調試的(de)時候,這個方法時完美運行的(de)。然後到了移動端調試的(de)時候,坑就出來了。對,沒錯,就是你,ios。。。1、點擊複制時屏幕下方會出現白屏抖動,仔細看是拉起鍵盤又瞬間收起知道(dào)了抖動是由于什麽産生的(de)就比較好解決了。既然是拉起鍵盤,那就是聚焦到了輸入域,那隻要讓輸入域不可(kě)輸入就好了,在代碼中添加 input.setAttribute('readonly', 'readonly'); 使這個 <input> 是隻讀的(de),就不會拉起鍵盤了。2、無法複制這個問題是由于 input.select() 在ios下并沒有選中全部內(nèi)容,我們需要使用另一(yī)個方法來選中內(nèi)容,這個方法就是 input.setSelectionRange(0, input.value.length);。完整代碼如(rú)下:?12345678910111213const btn = document.querySelector('#btn');btn.addEventListener('click',() => {    const input = document.createElement('input'); input.setAttribute('readonly', 'readonly'); input.setAttribute('value', 'hello world'); document.body.appendChild(input);    input.setSelectionRange(0, 9999);    if (document.execCommand('copy')) {        document.execCommand('copy');        console.log('複制成功');    } document.body.removeChild(input);})總結以上就是關于JavaScript如(rú)何實現複制內(nèi)容到剪貼闆,附上幾個鏈接:execCommand MDNexecCommand兼容性clipboard.js

  • 微信小程序實現日曆功能

    <view class="calendar"> <view class="selectDate"> <view class="goleft iconfont icon-jianzuo" bindtap="prevMonth"></view> <view class="date-wrap">  {{year}}年(nián){{month}}月 </view> <view class="goright iconfont icon-jianzuo" bindtap="nextMonth"></view> </view> <view class="week"> <view wx:for="{{weekArr}}" wx:for-index="index" wx:for-item="item" wx:key="key" style="width:{{param}}px;height:{{param-17}}px;line-height:{{param-17}}px">{{item}}</view> </view> <view class="date" style='width: {{ param * 7 }}px;'> <block wx:for="{{dateArr}}" wx:for-index="index" wx:for-item="item" wx:key="key">  <view style="{{index ==0?'margin-left:'+ param *firstDay +'px;':''}}width:{{param}}px;height:{{param-10}}px;line-height:{{param-10}}px;" class="{{index+1==day?'today':''}} {{index+1==day&&isClock?'clockOn':''}}"><view class="day">{{item}}</view></view> </block> </view></view><!--end calendar-->?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113data: { year:'', month:'', day:'', weekArr: ['日', '一(yī)', '二', '三', '四', '五','六'], dateArr:[], firstDay:'', lastDay:'', param:null, clockNum:3, },getDate: function () { //獲取當月日期 var mydate = new Date(); var year = mydate.getFullYear(); var month = mydate.getMonth(); var months = month + 1; this.data.year = year; this.data.month = months; this.data.day = mydate.getDate(); var fist = new Date(year, month, 1); this.data.firstDay = fist.getDay(); var last = new Date(year, months, 0);  this.data.lastDay = last.getDate();  this.setData({  year: this.data.year,  month: this.data.month,  day: this.data.day,  firstDay: this.data.firstDay,  lastDay: this.data.lastDay }) console.log("今天:" + this.data.day); }, setDate: function () { for (var i = 1; i < this.data.lastDay + 1; i++) {  this.data.dateArr.push(i); } this.setData({  dateArr: this.data.dateArr,  firstDay: this.data.firstDay }) }, prevMonth:function(){ //上一(yī)月 var months=""; var years=""; if(this.data.month ==1){  years=this.data.year-1  this.data.month=12;  months=this.data.month; }else{  years=this.data.year;  months = this.data.month - 1; }   var first = new Date(years, months-1, 1); this.data.firstDay = first.getDay(); var last = new Date(years, months, 0); this.data.lastDay = last.getDate();   this.setData({  month: months,  year:years,  firstDay: this.data.firstDay,  lastDay: this.data.lastDay })  this.data.dateArr = []; for (var i = 1; i < this.data.lastDay + 1; i++) {  this.data.dateArr.push(i); } this.setData({  dateArr: this.data.dateArr }) }, nextMonth:function(){ //下一(yī)月 var months=""; var years=""; if(this.data.month== 12){  this.data.month=0;  months = this.data.month;  years = this.data.year+1; }else{  months = this.data.month+1;  years = this.data.year; } var months = this.data.month + 1; var first = new Date(years, months-1,1); this.data.firstDay= first.getDay(); var last = new Date(years,months,0); this.data.lastDay= last.getDate(); this.setData({  month: months,  year:years,  firstDay:this.data.firstDay,  lastDay:this.data.lastDay })  this.data.dateArr = []; for (var i = 1; i < this.data.lastDay + 1; i++) {  this.data.dateArr.push(i); } this.setData({  dateArr: this.data.dateArr }) },onLoad: function (options) { this.getDate(); this.setDate(); var res = wx.getSystemInfoSync(); this.setData({  param:res.windowHeight/12, }) },

  • 微信小程序實現點擊圖片旋轉180度并且彈出下拉列表

    index.wxml?123456789101112<view class="phone_one" bindtap="clickPerson"> <view class="phone_personal">{{firstPerson}}</view> <image src="../../image/v6.png" class="personal_image {{selectArea ? 'rotateRight' :''}}"></image> //三目法判斷圖片要不要旋轉180。 </view>  <view class="person_box"> <view class="phone_select" hidden="{{selectPerson}}">  <view bindtap="mySelect">測試1</view>  <view bindtap="mySelect">測試2</view>  <view bindtap="mySelect">測試3</view> </view></view>index.js?123456789101112131415161718192021222324252627282930Page({ data:{ selectPerson:true, firstPerson:'個人', selectArea:false, }, //點擊選擇類型 clickPerson:function(){ var selectPerson = this.data.selectPerson; if(selectPerson == true){  this.setData({  selectArea:true,  selectPerson:false, }) }else{  this.setData({  selectArea:false,  selectPerson:true, }) } } , //點擊切換 mySelect:function(e){ this.setData({  firstPerson:e.target.dataset.me,  selectPerson:true,  selectArea:false, }) },}}index.wxss?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748.phone_personal{ width: 100%; color:rgb(34, 154, 181); height:100rpx; line-height:100rpx; text-align: center;}.phone_one{ display: flex; //用flex布局更方便。 position: relative; justify-content: space-between; background-color:rgb(239, 239, 239); width:90%; height:100rpx; margin:0 auto; border-radius: 10rpx; border-bottom:2rpx solid rgb(255, 255, 255);}.person_box{ position: relative;}.phone_select{ margin-top:0; z-index: 100; position: absolute; //小程序中z-index和(hé)absolute需要同時存在,元素才能脫離(lí)文檔。}.select_one{ text-align: center; background-color:rgb(239, 239, 239); width:676rpx; //脫離(lí)文檔後元素width不能再用百分比。 height:100rpx; line-height:100rpx; margin:0 5%; border-bottom:2rpx solid rgb(255, 255, 255);}.personal_image{ z-index: 100; position: absolute; right:2.5%; width: 34rpx; height: 20rpx; margin:40rpx 20rpx 40rpx 0; transition: All 0.4s ease;  -webkit-transition: All 0.4s ease;}.rotateRight{ transform: rotate(180deg); //180°旋轉圖片。}

  • redis的(de)五種對象類型及其底層實現

    Redis對象類型簡介Redis是一(yī)種key/value型數據庫,其中,每個key和(hé)value都是使用對象表示的(de)。比如(rú),我們執行以下代碼:redis>SET message "hello redis"其中的(de)key是message,是一(yī)個包含了字符串"message"的(de)對象。而value是一(yī)個包含了"hello redis"的(de)對象。Redis共有五種對象的(de)類型,分别是:類型常量 對象的(de)名稱REDIS_STRING 字符串對象REDIS_LIST 列表對象REDIS_HASH 哈希對象REDIS_SET 集合對象REDIS_ZSET 有序集合對象Redis中的(de)一(yī)個對象的(de)結構體表示如(rú)下:/* * Redis 對象 */typedef struct redisObject {     // 類型    unsigned type:4;             // 不使用(對齊位)    unsigned notused:2;     // 編碼方式    unsigned encoding:4;     // LRU 時間(相對于 server.lruclock)    unsigned lru:22;     // 引用計數    int refcount;     // 指向對象的(de)值    void *ptr; } robj;type表示了該對象的(de)對象類型,即上面五個中的(de)一(yī)個。但為(wèi)了提高(gāo)存儲效率與程序執行效率,每種對象的(de)底層數據結構實現都可(kě)能不止一(yī)種。encoding就表示了對象底層所使用的(de)編碼。下面先介紹每種底層數據結構的(de)實現,再介紹每種對象類型都用了什麽底層結構并分析他們之間的(de)關系。Redis對象底層數據結構底層數據結構共有八種,如(rú)下表所示:編碼常量 編碼所對應的(de)底層數據結構REDIS_ENCODING_INT long 類型的(de)整數REDIS_ENCODING_EMBSTR embstr 編碼的(de)簡單動态字符串REDIS_ENCODING_RAW 簡單動态字符串REDIS_ENCODING_HT 字典REDIS_ENCODING_LINKEDLIST 雙端鏈表REDIS_ENCODING_ZIPLIST 壓縮列表REDIS_ENCODING_INTSET 整數集合REDIS_ENCODING_SKIPLIST 跳躍表和(hé)字典字符串對象字符串對象的(de)編碼可(kě)以是int、raw或者embstr。如(rú)果一(yī)個字符串的(de)內(nèi)容可(kě)以轉換為(wèi)long,那麽該字符串就會被轉換成為(wèi)long類型,對象的(de)ptr就會指向該long,并且對象類型也用int類型表示。普通的(de)字符串有兩種,embstr和(hé)raw。embstr應該是Redis 3.0新增的(de)數據結構,在2.8中是沒有的(de)。如(rú)果字符串對象的(de)長(cháng)度小于39字節,就用embstr對象。否則用傳統的(de)raw對象。可(kě)以從下面這段代碼看出:#define REDIS_ENCODING_EMBSTR_SIZE_LIMIT 39robj *createStringObject(char *ptr, size_t len) {    if (len <= REDIS_ENCODING_EMBSTR_SIZE_LIMIT)        return createEmbeddedStringObject(ptr,len);    else        return createRawStringObject(ptr,len);}embstr的(de)好處有如(rú)下幾點:embstr的(de)創建隻需分配一(yī)次內(nèi)存,而raw為(wèi)兩次(一(yī)次為(wèi)sds分配對象,另一(yī)次為(wèi)objet分配對象,embstr省去(qù)了第一(yī)次)。相對地(dì),釋放內(nèi)存的(de)次數也由兩次變為(wèi)一(yī)次。embstr的(de)objet和(hé)sds放在一(yī)起,更好地(dì)利用緩存帶來的(de)優勢。需要注意的(de)是,redis并未提供任何修改embstr的(de)方式,即embstr是隻讀的(de)形式。對embstr的(de)修改實際上是先轉換為(wèi)raw再進行修改。raw和(hé)embstr的(de)區别可(kě)以用下面兩幅圖所示:列表對象列表對象的(de)編碼可(kě)以是ziplist或者linkedlist。ziplist是一(yī)種壓縮鏈表,它的(de)好處是更能節省內(nèi)存空間,因為(wèi)它所存儲的(de)內(nèi)容都是在連續的(de)內(nèi)存區域當中的(de)。當列表對象元素不大,每個元素也不大的(de)時候,就采用ziplist存儲。但當數據量過大時就ziplist就不是那麽好用了。因為(wèi)為(wèi)了保證他存儲內(nèi)容在內(nèi)存中的(de)連續性,插入的(de)複雜度是O(N),即每次插入都會重新進行realloc。如(rú)下圖所示,對象結構中ptr所指向的(de)就是一(yī)個ziplist。整個ziplist隻需要malloc一(yī)次,它們在內(nèi)存中是一(yī)塊連續的(de)區域。linkedlist是一(yī)種雙向鏈表。它的(de)結構比較簡單,節點中存放pre和(hé)next兩個指針,還有節點相關的(de)信息。當每增加一(yī)個node的(de)時候,就需要重新malloc一(yī)塊內(nèi)存。哈希對象哈希對象的(de)底層實現可(kě)以是ziplist或者hashtable。ziplist中的(de)哈希對象是按照key1,value1,key2,value2這樣的(de)順序存放來存儲的(de)。當對象數目不多且內(nèi)容不大時,這種方式效率是很高(gāo)的(de)。hashtable的(de)是由dict這個結構來實現的(de)typedef struct dict {    dictType *type;    void *privdata;    dictht ht[2];    long rehashidx; /* rehashing not in progress if rehashidx == -1 */    int iterators; /* number of iterators currently running */} dict;dict是一(yī)個字典,其中的(de)指針dicht ht[2] 指向了兩個哈希表typedef struct dictht {    dictEntry **table;    unsigned long size;    unsigned long sizemask;    unsigned long used;} dictht;dicht[0] 是用于真正存放數據,dicht[1]一(yī)般在哈希表元素過多進行rehash的(de)時候用于中轉數據。dictht中的(de)table用語真正存放元素了,每個key/value對用一(yī)個dictEntry表示,放在dictEntry數組中。集合對象集合對象的(de)編碼可(kě)以是intset或者hashtable。intset是一(yī)個整數集合,裏面存的(de)為(wèi)某種同一(yī)類型的(de)整數,支持如(rú)下三種長(cháng)度的(de)整數:#define INTSET_ENC_INT16 (sizeof(int16_t))#define INTSET_ENC_INT32 (sizeof(int32_t))#define INTSET_ENC_INT64 (sizeof(int64_t))intset是一(yī)個有序集合,查找元素的(de)複雜度為(wèi)O(logN),但插入時不一(yī)定為(wèi)O(logN),因為(wèi)有可(kě)能涉及到升級操作。比如(rú)當集合裏全是int16_t型的(de)整數,這時要插入一(yī)個int32_t,那麽為(wèi)了維持集合中數據類型的(de)一(yī)緻,那麽所有的(de)數據都會被轉換成int32_t類型,涉及到內(nèi)存的(de)重新分配,這時插入的(de)複雜度就為(wèi)O(N)了。是intset不支持降級操作。有序集合對象有序集合的(de)編碼可(kě)能兩種,一(yī)種是ziplist,另一(yī)種是skiplist與dict的(de)結合。ziplist作為(wèi)集合和(hé)作為(wèi)哈希對象是一(yī)樣的(de),member和(hé)score順序存放。按照score從小到大順序排列。它的(de)結構不再複述。skiplist是一(yī)種跳躍表,它實現了有序集合中的(de)快速查找,在大多數情況下它的(de)速度都可(kě)以和(hé)平衡樹差不多。但它的(de)實現比較簡單,可(kě)以作為(wèi)平衡樹的(de)替代品。它的(de)結構比較特殊。下面分别是跳躍表skiplist和(hé)它內(nèi)部的(de)節點skiplistNode的(de)結構體:/* * 跳躍表 */typedef struct zskiplist {    // 頭節點,尾節點    struct zskiplistNode *header, *tail;    // 節點數量    unsigned long length;    // 目前表內(nèi)節點的(de)最大層數    int level;} zskiplist;/* ZSETs use a specialized version of Skiplists *//* * 跳躍表節點 */typedef struct zskiplistNode {    // member 對象    robj *obj;    // 分值    double score;    // 後退指針    struct zskiplistNode *backward;    // 層    struct zskiplistLevel {        // 前進指針        struct zskiplistNode *forward;        // 這個層跨越的(de)節點數量        unsigned int span;    } level[];} zskiplistNode;head和(hé)tail分别指向頭節點和(hé)尾節點,然後每個skiplistNode裏面的(de)結構又是分層的(de)(即level數組)用圖表示,大概是下面這個樣子(zǐ):每一(yī)列都代表一(yī)個節點,保存了member和(hé)score,按score從小到大排序。每個節點有不同的(de)層數,這個層數是在生成節點的(de)時候随機生成的(de)數值。每一(yī)層都是一(yī)個指向後面某個節點的(de)指針。這種結構使得跳躍表可(kě)以跨越很多節點來快速訪問。前面說到了,有序集合ZSET是有跳躍表和(hé)hashtable共同形成的(de)。typedef struct zset {    // 字典    dict *dict;    // 跳躍表    zskiplist *zsl;} zset;為(wèi)什麽要用這種結構呢(ne)。試想如(rú)果單一(yī)用hashtable,那可(kě)以快速查找、添加和(hé)删除元素,但沒法保持集合的(de)有序性。如(rú)果單一(yī)用skiplist,有序性可(kě)以得到保障,但查找的(de)速度太慢O(log)。

  • HTTP簡介

    HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的(de)縮寫,是用于從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地(dì)浏覽器的(de)傳送協議。HTTP是一(yī)個基于TCP/IP通信協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。HTTP是一(yī)個屬于應用層的(de)面向對象的(de)協議,由于其簡捷、快速的(de)方式,适用于分布式超媒體信息系統。它于1990年(nián)提出,經過幾年(nián)的(de)使用與發展,得到不斷地(dì)完善和(hé)擴展。目前在WWW中使用的(de)是HTTP/1.0的(de)第六版,HTTP/1.1的(de)規範化工作正在進行之中,而且HTTP-NG(Next Generation of HTTP)index-5_24618_1.html"HTTP"後面的(de)“//”為(wèi)分隔符2.域名部分:該URL的(de)域名部分為(wèi)“www.aspxfans.com”。一(yī)個URL中,也可(kě)以使用IP地(dì)址作為(wèi)域名使用3.端口部分:跟在域名後面的(de)是端口,域名和(hé)端口之間使用“:”作為(wèi)分隔符。端口不是一(yī)個URL必須的(de)部分,如(rú)果省略端口部分,将采用默認端口4.虛拟目錄部分:從域名後的(de)第一(yī)個“/”開始到最後一(yī)個“/”為(wèi)止,是虛拟目錄部分。虛拟目錄也不是一(yī)個URL必須的(de)部分。本例中的(de)虛拟目錄是“/news/”5.文件名部分:從域名後的(de)最後一(yī)個“/”開始到“?”為(wèi)止,是文件名部分,如(rú)果沒有“?”,則是從域名後的(de)最後一(yī)個“/”開始到“#”為(wèi)止,是文件部分,如(rú)果沒有“?”和(hé)“#”,那麽從域名後的(de)最後一(yī)個“/”開始到結束,都是文件名部分。本例中的(de)文件名是“index.asp”。文件名部分也不是一(yī)個URL必須的(de)部分,如(rú)果省略該部分,則使用默認的(de)文件名6.錨部分:從“#”開始到最後,都是錨部分。本例中的(de)錨部分是“name”。錨部分也不是一(yī)個URL必須的(de)部分7.參數部分:從“?”開始到“#”為(wèi)止之間的(de)部分為(wèi)參數部分,又稱搜索部分、查詢部分。本例中的(de)參數部分為(wèi)“boardID=5&ID=24618&page=1”。參數可(kě)以允許有多個參數,參數與參數之間用“&”作為(wèi)分隔符。(原文:http://blog.csdn.net/ergouge/article/details/8185219 )URI和(hé)URL的(de)區别URI,是uniform resource identifier,統一(yī)資源标識符,用來唯一(yī)的(de)标識一(yī)個資源。Web上可(kě)用的(de)每種資源如(rú)HTML文檔、圖像、視(shì)頻片段、程序等都是一(yī)個來URI來定位的(de)URI一(yī)般由三部組成:①訪問資源的(de)命名機制②存放資源的(de)主機名③資源自(zì)身的(de)名稱,由路徑表示,着重強調于資源。URL是uniform resource locator,統一(yī)資源定位器,它是一(yī)種具體的(de)URI,即URL可(kě)以用來标識一(yī)個資源,而且還指明了如(rú)何locate這個資源。URL是Internet上用來描述信息資源的(de)字符串,主要用在各種WWW客戶程序和(hé)服務器程序上,特别是著名的(de)Mosaic。采用URL可(kě)以用一(yī)種統一(yī)的(de)格式來描述各種信息資源,包括文件、服務器的(de)地(dì)址和(hé)目錄等。URL一(yī)般由三部組成:①協議(或稱為(wèi)服務方式)②存有該資源的(de)主機IP地(dì)址(有時也包括端口号)③主機資源的(de)具體地(dì)址。如(rú)目錄和(hé)文件名等URN,uniform resource name,統一(yī)資源命名,是通過名字來标識資源,比如(rú)mailto:java-net@java.sun.com。URI是以一(yī)種抽象的(de),高(gāo)層次概念定義統一(yī)資源标識,而URL和(hé)URN則是具體的(de)資源标識的(de)方式。URL和(hé)URN都是一(yī)種URI。籠統地(dì)說,每個 URL 都是 URI,但不一(yī)定每個 URI 都是 URL。這是因為(wèi) URI 還包括一(yī)個子(zǐ)類,即統一(yī)資源名稱 (URN),它命名資源但不指定如(rú)何定位資源。上面的(de) mailto、news 和(hé) isbn URI 都是 URN 的(de)示例。在Java的(de)URI中,一(yī)個URI實例可(kě)以代表絕對的(de),也可(kě)以是相對的(de),隻要它符合URI的(de)語法規則。而URL類則不僅符合語義,還包含了定位該資源的(de)信息,因此它不能是相對的(de)。在Java類庫中,URI類不包含任何訪問資源的(de)方法,它唯一(yī)的(de)作用就是解析。相反的(de)是,URL類可(kě)以打開一(yī)個到達資源的(de)流。HTTP之請求消息Request客戶端發送一(yī)個HTTP請求到服務器的(de)請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行和(hé)請求數據四個部分組成。Http請求消息結構.png請求行以一(yī)個方法符号開頭,以空格分開,後面跟着請求的(de)URI和(hé)協議的(de)版本。Get請求例子(zǐ),使用Charles抓取的(de)request:GET /562f25980001b1b106000338.jpg HTTP/1.1Host    img.mukewang.comUser-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36Accept    image/webp,image/*,*/*;q=0.8Referer    http://www.imooc.com/Accept-Encoding    gzip, deflate, sdchAccept-Language    zh-CN,zh;q=0.8第一(yī)部分:請求行,用來說明請求類型,要訪問的(de)資源以及所使用的(de)HTTP版本.GET說明請求類型為(wèi)GET,[/562f25980001b1b106000338.jpg]為(wèi)要訪問的(de)資源,該行的(de)最後一(yī)部分說明使用的(de)是HTTP1.1版本。第二部分:請求頭部,緊接着請求行(即第一(yī)行)之後的(de)部分,用來說明服務器要使用的(de)附加信息從第二行起為(wèi)請求頭部,HOST将指出請求的(de)目的(de)地(dì).User-Agent,服務器端和(hé)客戶端腳本都能訪問它,它是浏覽器類型檢測邏輯的(de)重要基礎.該信息由你的(de)浏覽器來定義,并且在每個請求中自(zì)動發送等等第三部分:空行,請求頭部後面的(de)空行是必須的(de)即使第四部分的(de)請求數據為(wèi)空,也必須有空行。第四部分:請求數據也叫主體,可(kě)以添加任意的(de)其他數據。這個例子(zǐ)的(de)請求數據為(wèi)空。POST請求例子(zǐ),使用Charles抓取的(de)request:POST / HTTP1.1Host:www.wrox.comUser-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)Content-Type:application/x-www-form-urlencodedContent-Length:40Connection: Keep-Alivename=Professional%20Ajax&publisher=Wiley第一(yī)部分:請求行,第一(yī)行明了是post請求,以及http1.1版本。第二部分:請求頭部,第二行至第六行。第三部分:空行,第七行的(de)空行。第四部分:請求數據,第八行。HTTP之響應消息Response一(yī)般情況下,服務器接收并處理(lǐ)客戶端發過來的(de)請求後會返回一(yī)個HTTP的(de)響應消息。HTTP響應也由四個部分組成,分别是:狀态行、消息報頭、空行和(hé)響應正文。 http響應消息格式.jpg例子(zǐ)HTTP/1.1 200 OKDate: Fri, 22 May 2009 06:07:21 GMTContent-Type: text/html; charset=UTF-8<html>      <head></head>      <body>            <!--body goes here-->      </body></html>第一(yī)部分:狀态行,由HTTP協議版本号, 狀态碼, 狀态消息 三部分組成。第一(yī)行為(wèi)狀态行,(HTTP/1.1)表明HTTP版本為(wèi)1.1版本,狀态碼為(wèi)200,狀态消息為(wèi)(ok)第二部分:消息報頭,用來說明客戶端要使用的(de)一(yī)些附加信息第二行和(hé)第三行為(wèi)消息報頭,Date:生成響應的(de)日期和(hé)時間;Content-Type:指定了MIME類型的(de)HTML(text/html),編碼類型是UTF-8第三部分:空行,消息報頭後面的(de)空行是必須的(de)第四部分:響應正文,服務器返回給客戶端的(de)文本信息。空行後面的(de)html部分為(wèi)響應正文。HTTP之狀态碼狀态代碼有三位數字組成,第一(yī)個數字定義了響應的(de)類别,共分五種類别:1xx:指示信息--表示請求已接收,繼續處理(lǐ)2xx:成功--表示請求已被成功接收、理(lǐ)解、接受3xx:重定向--要完成請求必須進行更進一(yī)步的(de)操作4xx:客戶端錯誤--請求有語法錯誤或請求無法實現5xx:服務器端錯誤--服務器未能實現合法的(de)請求常見狀态碼:200 OK                        //客戶端請求成功400 Bad Request               //客戶端請求有語法錯誤,不能被服務器所理(lǐ)解401 Unauthorized              //請求未經授權,這個狀态代碼必須和(hé)WWW-Authenticate報頭域一(yī)起使用 403 Forbidden                 //服務器收到請求,但是拒絕提供服務404 Not Found                 //請求資源不存在,eg:輸入了錯誤的(de)URL500 Internal Server Error     //服務器發生不可(kě)預期的(de)錯誤503 Server Unavailable        //服務器當前不能處理(lǐ)客戶端的(de)請求,一(yī)段時間後可(kě)能恢複正常更多狀态碼http://www.runoob.com/http/http-status-codes.htmlHTTP請求方法根據HTTP标準,HTTP請求可(kě)以使用多種請求方法。HTTP1.0定義了三種請求方法: GET, POST 和(hé) HEAD方法。HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和(hé) CONNECT 方法。GET     請求指定的(de)頁面信息,并返回實體主體。HEAD     類似于get請求,隻不過返回的(de)響應中沒有具體的(de)內(nèi)容,用于獲取報頭POST     向指定資源提交數據進行處理(lǐ)請求(例如(rú)提交表單或者上傳文件)。數據被包含在請求體中。POST請求可(kě)能會導緻新的(de)資源的(de)建立和(hé)/或已有資源的(de)修改。PUT     從客戶端向服務器傳送的(de)數據取代指定的(de)文檔的(de)內(nèi)容。DELETE      請求服務器删除指定的(de)頁面。CONNECT     HTTP/1.1協議中預留給能夠将連接改為(wèi)管道(dào)方式的(de)代理(lǐ)服務器。OPTIONS     允許客戶端查看服務器的(de)性能。TRACE     回顯服務器收到的(de)請求,主要用于測試或診斷。HTTP工作原理(lǐ)HTTP協議定義Web客戶端如(rú)何從Web服務器請求Web頁面,以及服務器如(rú)何把Web頁面傳送給客戶端。HTTP協議采用了請求/響應模型。客戶端向服務器發送一(yī)個請求報文,請求報文包含請求的(de)方法、URL、協議版本、請求頭部和(hé)請求數據。服務器以一(yī)個狀态行作為(wèi)響應,響應的(de)內(nèi)容包括協議的(de)版本、成功或者錯誤代碼、服務器信息、響應頭部和(hé)響應數據。以下是 HTTP 請求/響應的(de)步驟:1、客戶端連接到Web服務器一(yī)個HTTP客戶端,通常是浏覽器,與Web服務器的(de)HTTP端口(默認為(wèi)80)建立一(yī)個TCP套接字連接。例如(rú),http://www.oakcms.cn。2、發送HTTP請求通過TCP套接字,客戶端向Web服務器發送一(yī)個文本的(de)請求報文,一(yī)個請求報文由請求行、請求頭部、空行和(hé)請求數據4部分組成。3、服務器接受請求并返回HTTP響應Web服務器解析請求,定位請求資源。服務器将資源複本寫到TCP套接字,由客戶端讀取。一(yī)個響應由狀态行、響應頭部、空行和(hé)響應數據4部分組成。4、釋放連接TCP連接若connection 模式為(wèi)close,則服務器主動關閉TCP連接,客戶端被動關閉連接,釋放TCP連接;若connection 模式為(wèi)keepalive,則該連接會保持一(yī)段時間,在該時間內(nèi)可(kě)以繼續接收請求;5、客戶端浏覽器解析HTML內(nèi)容客戶端浏覽器首先解析狀态行,查看表明請求是否成功的(de)狀态代碼。然後解析每一(yī)個響應頭,響應頭告知以下為(wèi)若幹字節的(de)HTML文檔和(hé)文檔的(de)字符集。客戶端浏覽器讀取響應數據HTML,根據HTML的(de)語法對其進行格式化,并在浏覽器窗口中顯示。例如(rú):在浏覽器地(dì)址欄鍵入URL,按下回車之後會經曆以下流程:1、浏覽器向 DNS 服務器請求解析該 URL 中的(de)域名所對應的(de) IP 地(dì)址;2、解析出 IP 地(dì)址後,根據該 IP 地(dì)址和(hé)默認端口 80,和(hé)服務器建立TCP連接;3、浏覽器發出讀取文件(URL 中域名後面部分對應的(de)文件)的(de)HTTP 請求,該請求報文作為(wèi) TCP 三次握手的(de)第三個報文的(de)數據發送給服務器;4、服務器對浏覽器請求作出響應,并把對應的(de) html 文本發送給浏覽器;5、釋放 TCP連接;6、浏覽器将該 html 文本并顯示內(nèi)容;   GET和(hé)POST請求的(de)區别GET請求GET /books/?sex=man&name=Professional HTTP/1.1Host: www.wrox.comUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)Gecko/20050225 Firefox/1.0.1Connection: Keep-Alive注意最後一(yī)行是空行POST請求POST / HTTP/1.1Host: www.wrox.comUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)Gecko/20050225 Firefox/1.0.1Content-Type: application/x-www-form-urlencodedContent-Length: 40Connection: Keep-Alivename=Professional%20Ajax&publisher=Wiley1、GET提交,請求的(de)數據會附在URL之後(就是把數據放置在HTTP協議頭中),以?分割URL和(hé)傳輸數據,多個參數用&連接;例 如(rú):login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。如(rú)果數據是英文字母/數字,原樣發送,如(rú)果是空格,轉換為(wèi)+,如(rú)果是中文/其他字符,則直接把字符串用BASE64加密,得出如(rú): %E4%BD%A0%E5%A5%BD,其中%XX中的(de)XX為(wèi)該符号以16進制表示的(de)ASCII。POST提交:把提交的(de)數據放置在是HTTP包的(de)包體中。上文示例中紅(hóng)色字體标明的(de)就是實際的(de)傳輸數據因此,GET提交的(de)數據會在地(dì)址欄中顯示出來,而POST提交,地(dì)址欄不會改變2、傳輸數據的(de)大小:首先聲明:HTTP協議沒有對傳輸的(de)數據大小進行限制,HTTP協議規範也沒有對URL長(cháng)度進行限制。而在實際開發中存在的(de)限制主要有:GET:特定浏覽器和(hé)服務器對URL長(cháng)度有限制,例如(rú) IE對URL長(cháng)度的(de)限制是2083字節(2K+35)。對于其他浏覽器,如(rú)Netscape、FireFox等,理(lǐ)論上沒有長(cháng)度限制,其限制取決于操作系 統的(de)支持。因此對于GET提交時,傳輸數據就會受到URL長(cháng)度的(de) 限制。POST:由于不是通過URL傳值,理(lǐ)論上數據不受 限。但實際各個WEB服務器會規定對post提交數據大小進行限制,Apache、IIS6都有各自(zì)的(de)配置。3、安全性POST的(de)安全性要比GET的(de)安全性高(gāo)。比如(rú):通過GET提交數據,用戶名和(hé)密碼将明文出現在URL上,因為(wèi)(1)登錄頁面有可(kě)能被浏覽器緩存;(2)查詢資源信息,而POST一(yī)般用于更新資源信息.html

  • redis的(de)基本操作與進階

    在Redis中,命令大小寫不敏感。一(yī)、适合全體類型的(de)常用命令啓動redis服務和(hé)redis-cli命令界面繼續後續實驗:$ sudo service redis-server start$ redis-cli(1)EXISTS and DELEXISTS key 判斷一(yī)個key是否存在;存在返回 1;否則返回0; DEL key 删除某個key,或是一(yī)系列key;DEL key1 key2 key3 key4。成功返回1,失敗返回0(key值不存在)。> set mykey hello> exists mykey> del mykey> exists mykey操作截圖: (2)TYPE and KEYSTYPE key:返回某個key元素的(de)數據類型 ( none:不存在,string:字符,list,set,zset,hash),key不存在返回空。 KEYS key—pattern :返回匹配的(de)key列表 (KEYS foo*:查找foo開頭的(de)keys)> set mykey x> type mykey>keys my*> del mykey>keys my*> type mykey操作截圖: (3)RANDOMKEY and CLEARRANDOMKEY : 随機獲得一(yī)個已經存在的(de)key,如(rú)果當前數據庫為(wèi)空,則返回空字符串> randomkey操作截圖: CLEAR :清除界面。> clear(4)RENAME and RENAMENXRENAME oldname newname:改key的(de)名字,新鍵如(rú)果存在将被覆蓋 RENAMENX oldname newname:更改key的(de)名字,如(rú)果名字存在則更改失敗筆(bǐ)者randomkey結果為(wèi)mylist,将此key值更名為(wèi)newlist。> randomkey> rename mylist newlist> exists mylist> exists newlist操作截圖: (5) DBSIZEDBSIZE :返回當前數據庫的(de)key的(de)總數> dbsize操作截圖: 二、Redis 時間相關命令(1)限定key生存時間這同樣是一(yī)個無視(shì)數據類型的(de)命令,對于臨時存儲很有用處。避免進行大量的(de)DEL操作。EXPIRE:設置某個key的(de)過期時間(秒),(EXPIRE bruce 1000:設置bruce這個key1000秒後系統自(zì)動删除)注意:如(rú)果在還沒有過期的(de)時候,對值進行了改變,那麽那個值會被清除。> set key some-value> expire key 10> get key       (馬上執行此命令)> get key       (10s後執行此命令)操作截圖: 結果顯示,執行EXPIRE命令後,馬上GET,顯示key存在。10秒後再GET時,key 已經被自(zì)動删除。(2)查詢key剩餘生存時間限時操作可(kě)以再SET命令中實現,并且可(kě)用TTL命令查詢key剩餘生存時間。 TTL:查找某個key還有多長(cháng)時間過期,返回時間秒> set key 100 ex 30> ttl key> ttl key操作截圖: (3)清除keyFLUSHDB:清空當前數據庫中的(de)所有鍵FLUSHALL:清空所有數據庫中的(de)所有鍵>flushdb>flushall三、Redis設置相關命令Redis有其配置文件,可(kě)以通過client-command窗口查看或者更改相關配置。相關命令介紹如(rú)下:(1)CONFIG GET and CONFIG SETCONFIG GET:用來讀取運行Redis服務器的(de)配置參數。 CONFIG SET:用于更改運行Redis服務器的(de)配置參數。 AUTH : 認證密碼 下面針對Redis密碼的(de)示例:> config get requirepass (查看密碼)> config set requirepass test123 (設置密碼為(wèi)test123 )> config get requirepass  (報錯,沒有認證)> auth test123> config get requirepass操作截圖: 由結果可(kě)知,剛開始時Reids并未設置密碼,密碼查詢結果為(wèi)空。然後設置密碼為(wèi)test123,再次查詢報錯。經過auth命令認證後,可(kě)正常查詢。可(kě)以經過修改Redis的(de)配置文件redis.conf修改密碼。CONFIG GET命令是以list的(de)key-value對顯示的(de),如(rú)查詢數據類型的(de)最大條目:> config get *max-*-entries*操作截圖: (2)重置報告CONFIG RESETSTAT:重置數據統計報告,通常返回值為(wèi)'OK"。> CONFIG RESETSTAT操作截圖: 四、查詢信息INFO [section] :查詢Redis相關信息。 INFO命令可(kě)以查詢Redis幾乎所有的(de)信息,其命令選項有如(rú)下:server: Redis server的(de)常規信息clients: Client的(de)連接選項memory: 存儲占用相關信息persistence: RDB and AOF 相關信息stats: 常規統計replication: Master/slave請求信息cpu: CPU 占用信息統計cluster: Redis 集群信息keyspace: 數據庫信息統計all: 返回所有信息default: 返回常規設置信息若命令參數為(wèi)空,info命令返回所有信息。> info keyspace> info server操作截圖:   Redis的(de)高(gāo)級應用實驗簡介前面學(xué)習了Redis的(de)基礎知識和(hé)基本命令,接下來繼續講解Redis的(de)高(gāo)級應用,包括:安全性設置,主從複制,事務處理(lǐ), 持久化機制, 虛拟內(nèi)存的(de)使用。一(yī)、安全性設置在客戶端連接是需要指定的(de)密碼(由于redis速度相當的(de)快,一(yī)秒鍾可(kě)以150K次的(de)密碼嘗試,所以需要設置一(yī)個密碼強度很大的(de)密碼)。設置密碼的(de)方式有兩種:(1) 使用config set 命令的(de)requirepass 參數,具體格式為(wèi)config set requirepass “password”。 (2) 配置redis.conf 中設置requirepass屬性,後面為(wèi)密碼。輸入認證的(de)方式也有兩種:(1) 登錄時可(kě)以 redis-cli -a password(2)登錄後使用 auth password(1)設置密碼第一(yī)種密碼設置方式在上一(yī)個實驗中已經提到,(在CONFIG SET命令講解的(de)實例),此處我們來看看第二種方式設置密碼。首先需要進入Redis的(de)安裝目錄,然後修改配置文件redis.conf。根據grep命令的(de)結果,使用vi編輯器修改“# requirepass foobared” 為(wèi)“requirepass test123”,然後保存退出。$ grep -n requirepass /etc/redis/redis.conf$ sudo vim /etc/redis/redis.conf編輯redis.conf的(de)結果: (2)重啓redis-server 與redis-cli重啓redis server。$ sudo service redis-server restart進入到redis-cli交互界面進行驗證$ redis-cli> info> auth test123> info> exit操作截圖: 結果表明第一(yī)次info命令失敗,在auth認證之後info命令正常返回。最後退出redis-cli。另外一(yī)種密碼認證方式:$ redis-cli -a test123> info操作截圖: 二、主從複制由于環境的(de)原因,在此處筆(bǐ)者大緻講解主從複制的(de)工作流程,不做(zuò)實驗。Redis的(de)主從複制配置和(hé)使用都比較簡單,通過主從複制可(kě)以允許多個slave server擁有和(hé)master server相同的(de)數據庫副本。從服務器隻能讀,不能寫。Redis主從複制特點:1、master可(kě)以擁有多個slave。2、多個slave可(kě)以連接同一(yī)個master外,還可(kě)以連接到其他的(de)slave。(當master宕機後,相連的(de)slave轉變為(wèi)master)3、主從複制不會阻塞master,再同步數據時,master可(kě)以繼續處理(lǐ)client請求。4、提高(gāo)了系統的(de)可(kě)伸縮性。Redis主從複制的(de)過程:1、Slave與master建立連接,發送sync同步命令。2、 Master會啓動一(yī)個後台進程,将數據庫快照保存到文件中,同時Master主進程會開始收集新的(de)寫命令并緩存。3、 後台完成保存後,就将此文件發送給Slave。4、 Slave将此文件保存到磁盤上。三、事務處理(lǐ)Redis的(de)事務處理(lǐ)比較簡單。隻能保證client發起的(de)事務中的(de)命令可(kě)以連續的(de)執行,而且不會插入其他的(de)client命令,當一(yī)個client在連接中發出multi命令時,這個連接就進入一(yī)個事務的(de)上下文,該連接後續的(de)命令不會執行,而是存放到一(yī)個隊列中,當執行exec命令時,redis會順序的(de)執行隊列中的(de)所有命令。如(rú)果其中執行出現錯誤,執行正确的(de)不會回滾,不同于關系型數據庫的(de)事務。> multi> set name a> set name b> exec> get name操作截圖: 四、持久化機制Redis是一(yī)個支持持久化的(de)內(nèi)存數據庫,Redis需要經常将內(nèi)存中的(de)數據同步到磁盤來保證持久化。Redis支持兩種持久化方式:1、snapshotting(快照),将數據存放到文件裏,默認方式。是将內(nèi)存中的(de)數據已快照的(de)方式寫入到二進制文件中,默認文件dump.rdb,可(kě)以通過配置設置自(zì)動做(zuò)快照持久化的(de)方式。可(kě)配置Redis在n秒內(nèi)如(rú)果超過m個key被修改就自(zì)動保存快照。save 900 1 #900秒內(nèi)如(rú)果超過1個key被修改,則發起快照保存save 300 10 #300秒內(nèi)如(rú)果超過10個key被修改,則快照保存2、 Append-only file(縮寫為(wèi)aof),将讀寫操作存放到文件中。由于快照方式在一(yī)定間隔時間做(zuò)一(yī)次,所以如(rú)果Redis意外down掉的(de)話,就會丢失最後一(yī)次快照後的(de)所有修改。aof比快照方式有更好的(de)持久化性,是由于使用aof時,redis會将每一(yī)個收到的(de)寫命令都通過write函數寫入到文件中當redis啓動時會通過重新執行文件中保存的(de)寫命令來在內(nèi)存中重新建立整個數據庫的(de)內(nèi)容。由于os會在內(nèi)核中緩存write做(zuò)的(de)修改,所以可(kě)能不是立即寫到磁盤上,這樣aof方式的(de)持久化也還是有可(kě)能會丢失一(yī)部分數據。可(kě)以通過配置文件告訴redis我們想要通過fsync函數強制os寫入到磁盤的(de)時機。配置文件中的(de)可(kě)配置參數:appendonly   yes     //啓用aof持久化方式#appendfsync  always //收到寫命令就立即寫入磁盤,最慢,但是保證了數據的(de)完整持久化appendfsync   everysec  //每秒中寫入磁盤一(yī)次,在性能和(hé)持久化方面做(zuò)了很好的(de)折中#appendfsync  no     //完全依賴os,性能最好,持久化沒有保證在redis-cli的(de)命令中,SAVE命令是将數據寫入磁盤中。> help save>save操作截圖: 五、虛拟內(nèi)存的(de)使用虛拟內(nèi)存管理(lǐ)在2.6及之上版本取消了,在安裝實驗中,選擇的(de)是2.8.9版本的(de)redis ,所有實驗中的(de)配置文件中沒有虛拟內(nèi)存管理(lǐ)功能的(de)配置選項。此處僅為(wèi)講解Redis的(de)虛拟內(nèi)存是暫時把不經常訪問的(de)數據從內(nèi)存交換到磁盤中,從而騰出內(nèi)存空間用于其他的(de)訪問數據,尤其對于redis這樣的(de)內(nèi)存數據庫,內(nèi)存總是不夠用的(de)。除了分隔到多個redis server外,提高(gāo)數據庫的(de)容量的(de)方法就是使用虛拟內(nèi)存,把那些不常訪問的(de)數據交換到磁盤上。通過配置vm相關的(de)redis.config配置:vm-enable  yes                   #開啓vm功能vm-swap-file    /tmp/redis.swap  #交換出來的(de)value保存的(de)文件路徑vm-max-memory    10000000        #redis使用的(de)最大內(nèi)存上線 vm-page-size   32       #每個頁面的(de)大小32字節vm-pages     123217729    #最多使用多小個頁面vm-max-threads     4        #用于執行value對象換入的(de)工作線程數量

  • JavaScript 正則表達式與字符串查找方法

    如(rú)何取得一(yī)個給定的(de)字符串substr在另一(yī)個字符串str中出現的(de)次數?字符串匹配,第一(yī)想到的(de)就是正則表達式,但我們最常使用的(de)字面量來創建的(de)正則表達式方式卻無法傳入變量,這時應該使用另一(yī)種創建正則表達式的(de)方式:構造函數,如(rú)下var reg = new RegExp(substr, "g");可(kě)以傳入變量了,再介紹個字符串基本包裝類型的(de)方法:match()其中第一(yī)個參數表示要匹配的(de)字符串模式,因此可(kě)以傳入變量,不需要加/ /,第二個參數是可(kě)選的(de)标志字符串。語法為(wèi)str.match(regExp),參數為(wèi)一(yī)個正則表達式,若傳的(de)不是正則則會隐式轉換,返回值為(wèi)一(yī)個包含匹配結果的(de)數組,如(rú)果沒有匹配項,則返回null。另外,字符串的(de)match方法與正則的(de)exec()類似,返回匹配的(de)詳細信息;字符串的(de)search方法與正則的(de)test()類似,隻是用來查看是否匹配。回到最初的(de)問題,完整的(de)程序如(rú)下:var str1 = "abctestctesqk1test23";var str2 = "test";  function countSubstr(str, substr) {  var reg = new RegExp(substr, "g");  return str.match(reg) ? str.match(reg).length : 0;//若match返回不為(wèi)null,則結果為(wèi)true,輸出match返回的(de)數組(["test","test"])的(de)長(cháng)度}console.log(countSubstr(str1, str2));//輸出2另外,對于變量的(de)問題,不使用構造函數也可(kě)以解決,即使用eval():var reg = "/" + substr + "/g";reg = eval(reg);//不推薦!但還是有個問題,如(rú)果子(zǐ)字符串中含有正則表達式中所謂的(de)元字符(即+*?^等),則無法正常匹配。但都知道(dào)不推薦使用eval()方法,所以還是推薦使用構造函數方法。因為(wèi)此時正則表達式是在字符串裏的(de),\是字符串中的(de)轉義符,也是正則表達式中的(de)轉義符。那麽隻加一(yī)個\的(de)話,隻能說明在字符串中轉義,而js需要進一(yī)步把普通字符串中的(de)\變成正則表達式中的(de)\,像是更深一(yī)則轉化的(de)意思,稱為(wèi)雙重轉義,這樣\\以後的(de)意思是正則表達式中的(de)轉義符(\)。所以對于那些元字符如(rú)果不進行雙重轉義,則無法真正查找要找的(de)那個字符。這個問題尚未解決,不過一(yī)般字符串查找也很少有這些特殊字符吧(ba),可(kě)以先一(yī)用。

  • 新手做(zuò)網頁設計?這9款經典網頁布局設計了解下

    現在,越來越多的(de)人想要建立自(zì)己的(de)網站,通過自(zì)助建站系統就可(kě)以自(zì)己進行網頁制作了。這無疑是一(yī)件好事,但是,很多設計師,尤其是新手設計師或者壓根兒就不是設計師的(de)小白,都在網頁設計上走過不少彎路。網頁制作最重要的(de)就是網頁布局,先布局,後細節,隻有在選擇了合适的(de)網站布局以後,才可(kě)以順利的(de)進行接下來的(de)工作。你要問網站布局有哪些?今天,Mockplus為(wèi)你精選了 9 款不同的(de)經典網站布局設計案例,希望給你靈感。1.Diker Bau網站網站布局思路:精選圖片展示品牌标識Diker是一(yī)家位于德國柏林的(de)建築規劃集團。設計師突出了以精選圖來概述品牌标識的(de)主要特征和(hé)屬性。精選圖被用作整個網站結構和(hé)架構的(de)基礎。由于此布局中缺少其他元素,精選圖會引起用戶對産品的(de)完全關注。如(rú)果你想設計一(yī)個可(kě)以快速銷售産品的(de)網站,那麽就可(kě)以使用這種布局。精選圖可(kě)以與訪客建立情感聯系,一(yī)張大而得體的(de)照片或插圖會産生強烈的(de)共鳴并創造出令人難忘的(de)第一(yī)印象。當你隻需展示一(yī)種産品或服務,并将用戶的(de)全部注意力集中在其上時,此布局非常有用。訪問網站:https://www.behance.net/gallery/22105949/Diker-Bau...2. Chekhov網站布局思路:分屏布局該網站使用了分屏布局,這種布局可(kě)以同時展示兩個同等重要的(de)內(nèi)容信息。此外,設計師将兩種信息相互對立,創造出完美的(de)對比,以吸引更多訪客的(de)目光。分屏布局,再加上呼應的(de)動畫,該網站創建出更加精緻的(de)體驗。如(rú)果你的(de)網站需要提供兩種截然不同的(de)用戶旅程變體,那麽使用拆分屏幕的(de)布局吧(ba)。但是要避免在拆分部分添加太多內(nèi)容。如(rú)果內(nèi)容過長(cháng)過多,分屏設計不能很好地(dì)擴展,會影響體驗。因此,如(rú)果你需要在拆分部分提供大量文本或視(shì)覺信息,則不适合這種布局。訪問網站:https://chekhov.withgoogle.com/alive#home3. Timothee Roussilhe網站布局思路:視(shì)差滾動布局該網站是設計師Timothee Roussilhe的(de)一(yī)個簡單而富有創意的(de)簡曆網站。他增加了視(shì)差效果,為(wèi)訪客提供更愉快和(hé)令人印象深刻的(de)體驗。向下滾動時,會有很多個盒子(zǐ)移入和(hé)移出。令人驚奇的(de)是,所有的(de)盒子(zǐ)都增加了視(shì)差效果,你會覺得你正在看一(yī)場電影。摹客設計系統上線了!三大福利送不停!領取福利如(rú)果你想設計一(yī)個看起來很酷,富有創意和(hé)令人印象深刻的(de)網站,那就添加一(yī)個視(shì)差效果。但是不要把它搞得一(yī)團糟,保持布局簡單并使用更幹淨的(de)配色方案。訪問網站:http://timroussilhe.com/4. Happiness Abscissa網站布局思路:側邊欄導航該網站使用了一(yī)個固定的(de)側邊欄導航來顯示整個布局。導航無疑是任何網站的(de)關鍵部分,主菜單是大多數用戶在導航時首先要查找的(de)內(nèi)容。除了頂部水平導航外,你還可(kě)以通過将菜單選項放在固定的(de)側邊欄中來布局。側邊欄應該選擇頁面左側或右側的(de)垂直列。對于此布局,側邊欄保持靜止并始終保持可(kě)見,而其餘頁面随着用戶向下滾動頁面而更改。還要确保這種導航具有可(kě)訪問性。此布局适用于導航選項數量相對有限的(de)網站。當用戶進入頁面時,所有選項最好都在視(shì)線範圍內(nèi)。側邊欄還可(kě)以包含菜單以外的(de)內(nèi)容,例如(rú)社交媒體鏈接,聯系信息或你希望訪問者輕松查找的(de)任何內(nèi)容。

  • 搭建memcached服務器

    Memcached簡介  在介紹Memcached之前,讓我們首先通過一(yī)個示例了解什麽是服務端緩存。  相信大家都玩過一(yī)些網絡聯機遊戲吧(ba)。在我那個年(nián)代(03年(nián)左右),這些遊戲常常添加了對戰功能,并提供了天梯來顯示具有最優秀戰績的(de)玩家以及當前玩家在天梯系統中的(de)排名。這是遊戲開發商所常常采用的(de)一(yī)種聚攏玩家人氣的(de)手段。而希望在遊戲中證明自(zì)己的(de)玩家則會由此激發鬥志,進而花費更多時間來在天梯中取得更好的(de)成績。  就天梯系統來說,其最主要的(de)功能就是為(wèi)玩家提供天梯排名的(de)信息,而并不允許玩家對該系統中所記錄的(de)數據作任何修改。這樣設定的(de)結果就是,整個天梯系統的(de)讀操作居多,而寫操作很少。反過來,由于一(yī)個遊戲中的(de)玩家可(kě)能有上千萬甚至上億人,而且在線人數常常達到上萬人,因此對天梯的(de)訪問也會是非常頻繁的(de)。這樣的(de)話,即使每秒鍾隻有10個人訪問天梯中的(de)排名,對這上億個玩家的(de)天梯排名進行讀取及排序也是一(yī)件非常消耗性能的(de)事情。  一(yī)個自(zì)然而然的(de)想法就是:在對天梯排名進行一(yī)次計算後,我們在服務端将該天梯排名緩存起來,并在其它玩家訪問的(de)時候直接返回該緩存中所記錄的(de)結果。而在一(yī)定時間段之後,如(rú)一(yī)個小時,我們再對緩存中的(de)數據進行更新。這樣我們就不再需要每個小時執行成千上萬次的(de)天梯排名計算了。  而這就是服務端緩存所提供的(de)最重要功能。其既可(kě)以提高(gāo)單個請求的(de)響應速度,又可(kě)以降低(dī)服務層及數據庫層的(de)壓力。除此之外,多個服務實例都可(kě)以讀取該服務端緩存所緩存的(de)信息,因此我們也不再需要擔心這些數據在各個服務實例中都保存了一(yī)份進而需要彼此同步的(de)問題,也即是提高(gāo)了擴展性。  而Memcached就是一(yī)個使用了BSD許可(kě)的(de)服務端緩存實現。但是與其它服務端緩存實現不同的(de)是,其主要由兩部分組成:獨立運行的(de)Memcached服務實例,以及用于訪問這些服務實例的(de)客戶端。因此相較于普通服務端緩存實現中各個緩存都運行在服務實例之上的(de)情況,Memcached服務實例則是在服務實例之外獨立運行的(de):  從上圖中可(kě)以看出,由于Memcached緩存實例是獨立于各個應用服務器實例運行的(de),因此應用服務實例可(kě)以訪問任意的(de)緩存實例。而傳統的(de)緩存則與特定的(de)應用實例綁定,因此每個應用實例将隻能訪問特定的(de)緩存。這種綁定一(yī)方面會導緻整個應用所能夠訪問的(de)緩存容量變得很小,另一(yī)方面也可(kě)能導緻不同的(de)緩存實例中存在着冗餘的(de)數據,從而降低(dī)了緩存系統的(de)整體效率。  在運行時,Memcached服務實例隻需要消耗非常少的(de)CPU資源,卻需要使用大量的(de)內(nèi)存。因此在決定如(rú)何組織您的(de)服務端緩存結構之前,您首先需要搞清當前服務中各個服務實例的(de)負載情況。如(rú)果一(yī)個服務器的(de)CPU使用率非常高(gāo),卻存在着非常多的(de)空餘內(nèi)存,那麽我們就完全可(kě)以在其上運行一(yī)個Memcached實例。而如(rú)果當前服務中的(de)所有服務實例都沒有過多的(de)空餘內(nèi)存,那麽我們就需要使用一(yī)系列獨立的(de)服務實例來搭建服務端緩存。一(yī)個大型服務常常擁有上百個Memcached實例。而在這上百個Memcached實例中所存儲的(de)數據則不盡相同。由于這種數據的(de)異構性,我們需要在訪問由Memcached所記錄的(de)信息之前決定在該服務端緩存系統中到底由哪個Memcached實例記錄了我們所想要訪問的(de)數據:  如(rú)上圖所示,用戶需要通過一(yī)個Memcached客戶端來完成對緩存服務所記錄信息的(de)訪問。該客戶端知道(dào)服務端緩存系統中所包含的(de)所有Memcached服務實例。在需要訪問具有特定鍵值的(de)數據時,該客戶端內(nèi)部會根據所需要讀取的(de)數據的(de)鍵值,如(rú)“foo”,以及當前Memcached緩存服務的(de)配置來計算相應的(de)哈希值,以決定到底是哪個Memcached實例記錄了用戶所需要訪問的(de)信息。在決定記錄了所需要信息的(de)Memcached實例之後,Memcached客戶端将從配置中讀取該Memcached服務實例所在地(dì)址,并向該Memcached實例發送數據訪問請求,以從該Memcached實例中讀取具有鍵值“foo”的(de)信息。在各個論壇的(de)讨論中,這被稱為(wèi)是Memcached的(de)兩階段哈希(Two-stage hash)。  而對數據的(de)記錄也使用了類似的(de)流程:假設用戶希望通過服務端緩存記錄數據“bar”,并為(wèi)其指定鍵值“foo”。那麽Memcached客戶端将首先對用戶所賦予的(de)鍵值“foo”及當前服務端緩存所記錄的(de)可(kě)用服務實例個數執行哈希計算,并根據哈希計算結果來決定存儲該數據的(de)Memcached服務實例。接下來,客戶端就會向該實例發送請求,以在其中記錄具有鍵值“foo”的(de)數據“bar”。  這樣做(zuò)的(de)好處則在于,每個Memcached服務實例都是獨立的(de),而彼此之間并沒有任何交互。在這種情況下,我們可(kě)以省略很多複雜的(de)功能邏輯,如(rú)各個節點之間的(de)數據同步以及結點之間消息的(de)廣播等等。這種輕量級的(de)架構可(kě)以簡化很多操作。如(rú)在一(yī)個節點失效的(de)時候,我們僅僅需要使用一(yī)個新的(de)Memcached節點替代老節點即可(kě)。而在對緩存進行擴容的(de)時候,我們也隻需要添加額外的(de)服務并修改客戶端配置。  這些記錄在服務端緩存中的(de)數據是全局可(kě)見的(de)。也就是說,一(yī)旦在Memcached服務端緩存中成功添加了一(yī)條新的(de)記錄,那麽其它使用該緩存服務的(de)應用實例将同樣可(kě)以訪問該記錄:  在Memcached中,每條記錄都由四部分組成:記錄的(de)鍵,有效期,一(yī)系列可(kě)選的(de)标記以及表示記錄內(nèi)容的(de)數據。由于記錄內(nèi)容的(de)數據中并不包含任何數據結構,因此我們在Memcached中所記錄的(de)數據需要是經過序列化之後的(de)表示。 內(nèi)存管理(lǐ)  在使用緩存時,我們不得不考慮的(de)一(yī)個問題就是如(rú)何對這些緩存數據的(de)生存期進行管理(lǐ)。這其中包括如(rú)何使一(yī)個記錄在緩存中的(de)數據過期,如(rú)何在緩存空間不夠時執行數據的(de)替換等。因此在本節中,我們将對Memcached的(de)內(nèi)存管理(lǐ)機制進行介紹。  首先我們來看一(yī)看Memcached的(de)內(nèi)存管理(lǐ)模型。通常情況下,一(yī)個內(nèi)存管理(lǐ)算法所最需要考慮的(de)問題就是內(nèi)存的(de)碎片化(Fragmentation):在長(cháng)時間地(dì)分配及回收之後,被系統所使用的(de)內(nèi)存将趨向于散落在不連續的(de)空間中。這使得系統很難找到連續內(nèi)存空間,一(yī)方面增大了內(nèi)存分配失敗的(de)概率,另一(yī)方面也使得內(nèi)存分配工作變得更為(wèi)複雜,降低(dī)了運行效率。  為(wèi)了解決這個問題,Memcached使用了一(yī)種叫Slab的(de)結構。在該分配算法中,內(nèi)存将按照1MB的(de)大小劃分為(wèi)頁,而該頁內(nèi)存則會繼續被分割為(wèi)一(yī)系列具有相同大小的(de)內(nèi)存塊:  因此Memcached并不是直接根據需要記錄的(de)數據的(de)大小來直接分配相應大小的(de)內(nèi)存。在一(yī)條新的(de)記錄到來時,Memcached會首先檢查該記錄的(de)大小,并根據記錄的(de)大小選擇記錄所需要存儲到的(de)Slab類型。接下來,Memcached就會檢查其內(nèi)部所包含的(de)該類型Slab。如(rú)果這些Slab中有空餘的(de)塊,那麽Memcached就會使用該塊記錄該條信息。如(rú)果已經沒有Slab擁有空閑的(de)具有合适大小的(de)塊,那麽Memcached就會創建一(yī)個新的(de)頁,并将該頁按照目标Slab的(de)類型進行劃分。  一(yī)個需要考慮的(de)特殊情況就是對記錄的(de)更新。在對一(yī)個記錄進行更新的(de)時候,記錄的(de)大小可(kě)能會發生變化。在這種情況下,其所對應的(de)Slab類型也可(kě)能會發生變化。因此在更新時,記錄在內(nèi)存中的(de)位置可(kě)能會發生變化。隻不過從用戶的(de)角度來說,這并不可(kě)見。  Memcached使用這種方式來分配內(nèi)存的(de)好處則在于,其可(kě)以降低(dī)由于記錄的(de)多次讀寫而導緻的(de)碎片化。反過來,由于Memcached是根據記錄的(de)大小選擇需要插入到的(de)塊類型,因此為(wèi)每個記錄所分配的(de)塊的(de)大小常常大于該記錄所實際需要的(de)內(nèi)存大小,進而造成了內(nèi)存的(de)浪費。當然,您可(kě)以通過Memcached的(de)配置文件來指定各個塊的(de)大小,從而盡可(kě)能地(dì)減少內(nèi)存的(de)浪費。  但是需要注意的(de)是,由于默認情況下Memcached中每頁的(de)大小為(wèi)1MB,因此其單個塊最大為(wèi)1MB。除此之外,Memcached還限制每個數據所對應的(de)鍵的(de)長(cháng)度不能超過250個字節。  一(yī)般來說,Slab中各個塊的(de)大小以及塊大小的(de)遞增倍數可(kě)能會對記錄所載位置的(de)選擇及內(nèi)存利用率有很大的(de)影響。例如(rú)在當前的(de)實現下,各個Slab中塊的(de)大小默認情況下是按照1.25倍的(de)方式來遞增的(de)。也就是說,在一(yī)個Memcached實例中,某種類型Slab所提供的(de)塊的(de)大小是80K,而提供稍大一(yī)點空間的(de)Slab類型所提供的(de)塊的(de)大小就将是100K。如(rú)果現在我們需要插入一(yī)條81K的(de)記錄,那麽Memcached就會選擇具有100K塊大小的(de)Slab,并嘗試找到一(yī)個具有空閑塊的(de)Slab以存入該記錄。  同時您也需要注意到,我們使用的(de)是100K塊大小的(de)Slab來記錄具有81K大小的(de)數據,因此記錄該數據所導緻的(de)內(nèi)存浪費是19K,即19%的(de)浪費。而在需要存儲的(de)各條記錄的(de)大小平均分布的(de)情況下,這種內(nèi)存浪費的(de)幅度也在9%左右。該幅度實際上取決于我們剛剛提到的(de)各個Slab中塊大小的(de)遞增倍數。在Memcached的(de)初始實現中,各個Slab塊的(de)遞增倍數在默認情況下是2,而不是現在的(de)1.25,從而導緻了平均25%左右的(de)內(nèi)存浪費。而在今後的(de)各個版本中,該遞增倍數可(kě)能還會發生變化,以優化Memcached的(de)實際性能。  如(rú)果您一(yī)旦知道(dào)了您所需要緩存的(de)數據的(de)特征,如(rú)通常情況下數據的(de)大小以及各個數據的(de)差異幅度,那麽您就可(kě)以根據這些數據的(de)特征來設置上面所提到的(de)各個參數。如(rú)果數據在通常情況下都比較小,那麽我們就需要将最小塊的(de)大小調整得小一(yī)些。如(rú)果數據的(de)大小變動不是很大,那麽我們可(kě)以将塊大小的(de)遞增倍數設置得小一(yī)些,從而使得各個塊的(de)大小盡量地(dì)貼近需要存儲的(de)數據,以提高(gāo)內(nèi)存的(de)利用率。  還有一(yī)個值得注意的(de)事情就是,由于Memcached在計算到底哪個服務實例記錄了具有特定鍵的(de)數據時并不會考慮用來組成緩存系統中各個服務器的(de)差異性。如(rú)果每個服務器上隻安裝了一(yī)個Memcached實例,那麽各個Memcached實例所擁有的(de)可(kě)用內(nèi)存将存在着數倍的(de)差異。但是由于各個實例被選中的(de)概率基本相同,因此具有較大內(nèi)存的(de)Memcached實例将無法被充分利用。我們可(kě)以通過在具有較大內(nèi)存的(de)服務器上部署多個Memcached實例來解決這個問題:  例如(rú)上圖所展示的(de)緩存系統是由兩個服務器組成。這兩個服務器中的(de)內(nèi)存大小并不相同。第一(yī)個服務器的(de)內(nèi)存大小為(wèi)32G,而第二個服務器的(de)內(nèi)存大小僅僅有8G。為(wèi)了能夠充分利用這兩個服務器的(de)內(nèi)存,我們在具有32G內(nèi)存的(de)服務器上部署了4個Memcached實例,而在隻有8G內(nèi)存的(de)服務器上部署了1個Memcached實例。在這種情況下,32G內(nèi)存服務器上的(de)4個Memcached實例将總共得到4倍于8G服務器所得到的(de)負載,從而充分地(dì)利用了32G內(nèi)存服務器上的(de)內(nèi)存。  當然,由于緩存系統擁有有限的(de)資源,因此其會在某一(yī)時刻被服務所産生的(de)數據填滿。如(rú)果此時緩存系統再次接收到一(yī)個緩存數據的(de)請求,那麽它就會根據LRU(Least recently used)算法以及數據的(de)過期時間來決定需要從緩存系統中移除的(de)數據。而Memcached所使用的(de)過期算法比較特殊,又被稱為(wèi)延遲過期(Lazy expiration):當用戶從Memcached實例中讀取數據的(de)時候,其将首先通過配置中所設置的(de)過期時間來決定該數據是否過期。如(rú)果是,那麽在下一(yī)次寫入數據卻沒有足夠空間的(de)時候,Memcached會選擇該過期數據所在的(de)內(nèi)存塊作為(wèi)新數據的(de)目标地(dì)址。如(rú)果在寫入時沒有相應的(de)記錄被标記為(wèi)過期,那麽LRU算法才被執行,從而找到最久沒有被使用的(de)需要被替換的(de)數據。  這裏的(de)LRU是在Slab範圍內(nèi)的(de),而不是全局的(de)。假設Memcached緩存系統中的(de)最常用的(de)數據都存儲在100K的(de)塊中,而該系統中還存在着另外一(yī)種類型的(de)Slab,其塊大小是300K,但是存在于其中的(de)數據并不常用。當需要插入一(yī)條99K的(de)數據而Memcached已經沒有足夠的(de)內(nèi)存再次分配一(yī)個Slab實例的(de)時候,其并不會釋放具有300K塊大小的(de)Slab,而是在100K塊大小的(de)各個Slab中找到需要釋放的(de)塊,并将新數據添加到該塊中。 高(gāo)可(kě)用性  在企業級應用中,我們常常強調一(yī)個系統需要擁有高(gāo)可(kě)用性和(hé)高(gāo)可(kě)靠性。而對于一(yī)個組成而言,其需要能夠穩定地(dì)運行,并在出現異常的(de)時候盡量使得異常的(de)影響限制在某個特定的(de)範圍內(nèi),而不會導緻整個系統不能正常工作。而且在出現異常之後,該組成需要能較為(wèi)容易地(dì)恢複到正常的(de)工作狀态。  那麽Memcached需要什麽樣的(de)高(gāo)可(kě)用性呢(ne)?在講解這個問題之前,我們先來看看在一(yī)個大型服務中Memcached所組成的(de)服務端緩存是什麽樣的(de):  從上圖中可(kě)以看到,在一(yī)個大型服務中,由Memcached所組成的(de)服務端緩存實際上是由非常多的(de)Memcached實例組成的(de)。在前面我們已經介紹過,Memcached實例實際上是完全獨立的(de),不存在Memcached實例之間的(de)相互交互。因此在其中一(yī)個發生了故障的(de)時候,其它的(de)各個Memcached服務實例并不會受到影響。如(rú)果一(yī)個擁有了16個Memcached實例的(de)服務端緩存系統中的(de)一(yī)個Memcached實例發生了故障,那麽整個系統将還有93.75%的(de)緩存容量可(kě)以繼續工作。雖然緩存容量的(de)減少會略微增加其後的(de)各個服務實例的(de)壓力,但是一(yī)個應用所經曆的(de)負載波動常常比這個大得多,因此該服務應該還是能夠正常工作的(de)。  而這也恰恰表明了Memcached所具有的(de)獨立性的(de)正确性。由于Memcached本身緻力于創建一(yī)個高(gāo)效而且簡單,卻具有較強擴展性的(de)緩存組件,因此其并沒有強調數據的(de)安全性。一(yī)旦其中的(de)一(yī)個Memcached實例發生了故障,那麽我們還可(kě)以從數據庫及服務端再次計算得到該數據,并将其記錄在其它可(kě)用的(de)Memcached實例上。  我想您讀到這裏一(yī)定會想:“不,還有一(yī)個問題,那就是由于Memcached實例的(de)個數變化會導緻哈希計算的(de)結果發生變化,從而導緻所有對數據的(de)請求會導向到不正确的(de)Memcached實例,使得由Memcached實例集群所提供的(de)緩存服務全部失效,從而導緻數據庫的(de)壓力驟增。”  是的(de),這也是我曾經有所顧慮的(de)地(dì)方。而且這不僅僅在服務端緩存失效的(de)時候存在。隻要服務端緩存中Memcached實例的(de)數量發生了變化,那麽該問題就會發生。  Memcached所使用的(de)解決方法就是Consistent Hashing。在該算法的(de)幫助下,Memcached實例數量的(de)變化将隻可(kě)能導緻其中的(de)一(yī)小部分鍵的(de)哈希值發生改變。那該算法到底是怎麽運行的(de)呢(ne)?  首先請考慮一(yī)個圓,在該圓上分布了多個點,以表示整數0到1023。這些整數平均分布在整個圓上:  而在上圖中,我們則突出地(dì)顯示了6個藍點。這六個藍點基本上将該圓進行了六等分。而它們所對應的(de)就是在當前Memcached緩存系統中所包含的(de)三個Memcached實例m1,m2以及m3。好,接下來我們則對當前需要存儲的(de)數據執行哈希計算,并找到該哈希結果900在該圓上所對應的(de)點:  可(kě)以看到,該點在順時針距離(lí)上離(lí)表示0的(de)那個藍點最近,因此這個具有哈希值900的(de)數據将記錄在Memcached實例m1中。  如(rú)果其中的(de)一(yī)個Memcached實例失效了,那麽需要由該實例所記錄的(de)數據将暫時失效,而其它實例所記錄的(de)數據仍然還在:  從上圖中可(kě)以看到,在Memcached實例m1失效的(de)情況下,值為(wèi)900的(de)數據将失效,而其它的(de)值為(wèi)112和(hé)750的(de)數據将仍然記錄在Memcached實例m2及m3上。也就是說,一(yī)個節點的(de)失效現在将隻會導緻一(yī)部分數據不再在緩存系統中存在,而并沒有導緻其它實例上所記錄的(de)數據的(de)目标實例發生變化。  但是我們還不得不考慮另一(yī)個問題,那就是在一(yī)個服務的(de)服務端緩存僅僅由一(yī)個或幾個Memcached實例組成的(de)情況。在這種情況下,其中一(yī)個Memcached實例失效是較為(wèi)緻命的(de),因為(wèi)數據庫以及服務器實例将接收到大量的(de)需要進行複雜計算的(de)請求,并将最終導緻服務器實例和(hé)數據庫過載。因此在設計服務端緩存時,我們常常采取超出需求容量的(de)方法來定義這些緩存。例如(rú)在服務實際需要5個Memcached結點時我們設計一(yī)個包含6個節點的(de)服務端緩存系統,以增加整個系統的(de)容錯能力。

  • 平時自(zì)己項目中用到的(de) CSS

    outline 移除當選中input元素的(de)時候會出現狀态線div {    outline: none; //一(yī)般情況下移除它    // outline: 5px dotted red; 也可(kě)以設置樣式 }contenteditable 設置element是否可(kě)編輯<p contenteditable="true">可(kě)編輯</p>webkit-playsinline手機video 都可(kě)以在頁面中播放,而不是全屏播放了。<video src="test.mp4" webkit-playsinline="true"></videouser-select 禁止用戶選中文本div {    user-select: none; }css實現不換行、自(zì)動換行、強制換行//不換行 white-space:nowrap; //自(zì)動換行 word-wrap: break-word; word-break: normal; //強制換行 word-break:break-all;calc() function, 計算屬性值div {    width: calc(100% - 100px); }CSS3 filter Property 圖片過濾img {    filter: grayscale(100%); //灰度    filter: blur(5px); //模糊    filter:brightness(200%); //高(gāo)亮(liàng)    filter:saturate(8); //飽和(hé)    filter:sepia(100%); //懷舊(jiù)    ...}使用css創建三角形div {    border-bottom: 10px solid white;    border-right: 10px solid transparent;    border-left: 10px solid transparent;    height: 0px;     width: 0px; }clip屬性,截取你想要顯示的(de)圖片img {    position: absolute;    clip: rect(0px,60px,200px,0px); }

  • 搜索引擎的(de)蜘蛛是如(rú)何爬的(de),如(rú)何吸引蜘蛛來抓取頁面

    搜索引擎的(de)蜘蛛是如(rú)何爬的(de),如(rú)何吸引蜘蛛來抓取頁面搜索引擎的(de)工作過程大體可(kě)以分成三個階段:       (1)爬行和(hé)抓取:搜索引擎蜘蛛通過跟蹤鏈接發現和(hé)訪問頁面,讀取頁面HTML代碼,存到數據庫。  (2)預處理(lǐ):索引程序對抓取來的(de)頁面數據進行文字提取、中文分詞、索引、倒排索引等處理(lǐ),以備排名程序調用。  (3)排名:用戶輸入查詢詞(關鍵詞)後,排名程序調用索引數據,計算相關性,然後按一(yī)定格式生成搜索結果頁面。爬行和(hé)抓取是搜索引擎工作的(de)第一(yī)步,完成數據收集的(de)任務。搜索引擎用來抓取頁面的(de)程序被稱為(wèi)蜘蛛(spider)一(yī)個合格的(de)SEOer,要想讓自(zì)己的(de)更多頁面被收錄,就要想法設法吸引蜘蛛來抓取。蜘蛛抓取頁面有幾方面因素:       (1)網站和(hé)頁面的(de)權重,質量高(gāo)、時間長(cháng)的(de)網站一(yī)般被認為(wèi)權重比較高(gāo),爬行深度也會比較高(gāo),被收錄的(de)頁面也會更多。  (2)頁面的(de)更新頻率,蜘蛛每次爬行都會把頁面數據儲存起來,如(rú)果第二次,第三次的(de)抓取和(hé)第一(yī)次的(de)一(yī)樣,說明沒有更新,久而久之,蜘蛛也就沒有必             要經常抓取你的(de)頁面啦。如(rú)果內(nèi)容經常更新,蜘蛛就會頻繁訪問頁面,來抓取新的(de)頁面。  (3)導入鏈接,不管是內(nèi)部鏈接還是外部鏈接,要想被蜘蛛抓取,就必須有導入鏈接進入頁面,否則蜘蛛就不會知道(dào)頁面的(de)存在。  (4)與首頁的(de)點擊距離(lí),一(yī)般網站上權重最高(gāo)的(de)是首頁,大部分外部鏈接都會指向首頁,那麽蜘蛛訪問最頻繁的(de)頁面就是首頁,離(lí)首頁點擊距離(lí)越近,頁             面權重越高(gāo),被爬行的(de)機會越大。如(rú)何吸引蜘蛛來抓取我們的(de)頁面?  堅持有頻率的(de)更新網站內(nèi)容,最好是高(gāo)質量的(de)原創內(nèi)容。  主動向搜索引擎提供我們的(de)新頁面,讓蜘蛛更快的(de)發現,如(rú)百度的(de)鏈接提交、抓取診斷等。  搭建外部鏈接,可(kě)以和(hé)相關的(de)網站做(zuò)友情鏈接交換,可(kě)以去(qù)别的(de)平台發布高(gāo)質量的(de)文章(zhāng)指向自(zì)己的(de)頁面,內(nèi)容要相關。  制作網站地(dì)圖,每個網站都應該有一(yī)個sitemap,網站所有的(de)頁面都在sitemap中,方便蜘蛛抓取。

  • 成長(cháng)中的(de)SEO,應該避免這12個過時的(de)優化策略

    SEO在過去(qù)幾年(nián)裏經曆了廣泛的(de)變化及進化,并且每天都在進行着。雖然大多數傳統的(de)營銷策略(在很大程度上)仍然适用于今天的(de)數字營銷,SEO的(de)變化已經大大改變了營銷環境。如(rú)果不是全部的(de)話,這些變化中大部分都幫助改進了互聯網,尤其是改進了搜索。然而,一(yī)些人仍然堅持“老方法”,試圖使用過時的(de)SEO實踐來提高(gāo)他們品牌的(de)有機搜索可(kě)見性和(hé)性能。幾年(nián)前有些策略奏效了,但現在已經不像以前那麽有效了。然而,許多新人營銷人員/小企業主仍在使用這些“僵屍”SEO技術(這些策略本應消亡,但并非出于某些天大的(de)原因)。它們不僅是無效的(de),而且下面12個過時的(de)SEO實踐中的(de)許多都對你的(de)品牌、網站和(hé)其他數字财産的(de)健康有潛在的(de)危險。1. 濫用關鍵詞網站管理(lǐ)員和(hé)“營銷人員”有很多方式繼續誤解關鍵詞在一(yī)般SEO活動中的(de)作用,以及如(rú)何在日常策略中使用它們。讓我們更細緻地(dì)看看特定類型的(de)關鍵詞濫用和(hé)管理(lǐ)不當,包括不相關的(de)使用、特定關鍵詞密度的(de)編寫以及關鍵詞填充。1)無關的(de)關鍵詞定位/混淆搜索引擎優化新手常常試圖将他們的(de)內(nèi)容和(hé)信息限制在關鍵詞研究的(de)範圍內(nèi)(除此之外,别無他法)。這些“營銷人員”将對內(nèi)容及其元數據進行塑造,以表示與之不相匹配的(de)關鍵詞,也表示用戶搜索所針對的(de)大量關鍵詞的(de)适當意圖。這使得品牌在有機會與讀者交流真實信息之前,很可(kě)能就失去(qù)了讀者的(de)注意力。如(rú)果營銷的(de)關鍵詞與頁面上的(de)內(nèi)容不一(yī)緻,這種脫節會阻礙內(nèi)容的(de)成功,即使內(nèi)容質量很好。不要試圖誤導用戶,不要為(wèi)了增加可(kě)見性而将用戶引向由大容量關鍵詞錯誤表示的(de)內(nèi)容。百度知道(dào)這是什麽樣子(zǐ),它可(kě)以真正定義為(wèi)一(yī)個過時的(de)SEO實踐(以及“黑帽”SEO技術,在許多情況下)。2)關鍵詞密度就像許多以關鍵詞為(wèi)中心的(de)營銷策略一(yī)樣,為(wèi)特定的(de)“關鍵詞密度”而寫作隻是沒有達到目的(de)。百度不再依賴于關鍵詞密度(或特定關鍵詞使用與整個頁面內(nèi)容的(de)比率)來确定網頁是否是回答搜索查詢的(de)有效來源。它比簡單地(dì)爬取關鍵詞要好得多;像百度這樣的(de)搜索引擎使用大量的(de)信号來确定搜索結果。雖然關鍵詞對于它們所代表的(de)主題和(hé)思想仍然很重要,但它們并不是高(gāo)價值搜索查詢排名的(de)“生命線”。內(nèi)容的(de)質量和(hé)消息傳遞的(de)方式才是這方面的(de)“生命線”。3)關鍵詞優化這可(kě)能是搜索引擎優化書籍中古老的(de)把戲了。SEO是關于關鍵詞的(de),這個約定俗成的(de)說法,對嗎?所以,用關鍵詞加載我們的(de)網頁——尤其是我們在整個網站上積極定位的(de)那些高(gāo)價值關鍵詞——将有助于我們在搜索中獲得更高(gāo)的(de)排名,從而超越競争對手? 搜索引擎很早就知道(dào)什麽是關鍵詞填充,什麽是不自(zì)然的(de)文本組合。他們注意到這些是試圖操縱搜索結果,并将內(nèi)容降級。是的(de),可(kě)能仍然有一(yī)些有價值的(de)內(nèi)容使用了簡單的(de)關鍵詞填充,可(kě)能是有意或是無意為(wèi)之,因為(wèi)它對用戶的(de)實際價值而言,所以沒有降級。說回到過去(qù),站長(cháng)想遊戲系統會盡可(kě)能把每個關鍵詞的(de)變化高(gāo)價值的(de)關鍵詞在網站頁腳,或者更粗略地(dì)說,使這些關鍵詞相同的(de)顔色作為(wèi)網站的(de)背景,有效地(dì)把它們隐藏,而特定針對搜索引擎爬蟲進行填充。一(yī)些網站管理(lǐ)員也用鏈接嘗試過。(需要提醒的(de)是,不要這樣做(zuò)。)請記住,你是為(wèi)人類而不是為(wèi)搜索引擎寫作。2. 為(wèi)機器人寫作重要的(de)是要明白,不自(zì)然的(de)寫作終歸是不自(zì)然的(de)。搜索引擎也知道(dào)這一(yī)點。他們的(de)信念是:為(wèi)網絡寫作意味着,我們應該在每次提到一(yī)個主題時,都用它的(de)正确名稱重複它,在這個詞的(de)同義詞和(hé)近義詞版本中工作,以便“涵蓋所有的(de)基礎”。當爬行時,搜索引擎爬蟲會看到關鍵詞重複出現,而且出現在幾個不同的(de)版本中,從而使頁面在使用的(de)關鍵詞變化方面排名靠前(一(yī)遍又一(yī)遍……一(yī)遍又一(yī)遍地(dì)反複使用這一(yī)SEO“技巧”)。當下,這一(yī)方式行不通了。搜索引擎是足夠先進的(de),能夠理(lǐ)解重複出現的(de)關鍵詞、它們的(de)變化,以及通常不好的(de)內(nèi)容所帶來的(de)不利體驗。為(wèi)人類而寫,而不是搜索引擎爬蟲或任何其他機器人。   

  • 百度搜索網頁标題規範:讓标題回歸标題本身

    對搜索用戶來說,标題是一(yī)個網頁最直觀的(de)認知渠道(dào)和(hé)展現方式,也是吸引用戶點擊搜索結果進入落地(dì)頁的(de)關鍵因素。 為(wèi)了保障搜索用戶對所需資源的(de)有效獲取,保證搜索結果的(de)公平性,現百度搜索對外發布《百度搜索網頁标題規範》,希望在滿足用戶需求的(de)同時,為(wèi)站長(cháng)帶來更多流量,實現共赢。1、标題的(de)定義對網頁內(nèi)容的(de) 準确且簡明扼要 的(de)描述。具體舉例:圖1-1 符合規範的(de)标題示例網頁源代碼中的(de)體現:圖1-2 符合規範的(de)标題源碼示例2、标題的(de)作用标題對于搜索用戶來說,能夠幫助用戶快速洞察網頁的(de)內(nèi)容以及該網頁與搜索需求的(de)相關性。它通常是用來決定用戶點擊哪個結果的(de)主要信息。所以,使用高(gāo)質量的(de)網頁标題對網站來說至關重要。3、 百度搜索網頁标題規範3. 1 标題的(de)原則• 網站應确保該站點下的(de)每個頁面都有指定的(de)标題(如(rú)上文中“圖1-2 符合規範的(de)标題源碼示例”所示),且同一(yī)站點的(de)不同網頁應分别使用不同的(de)标題;• 頁面标題應準确概括頁面內(nèi)容,避免使用模糊和(hé)不相關的(de)描述;• 頁面标題應簡明扼要,避免使用冗長(cháng)的(de)标題,避免關鍵詞堆砌;• 頁面标題的(de)符号使用正确,建議參考百度建議的(de)标題符号用法(詳細內(nèi)容請參見本文“3.3. 2 标題的(de)符号”部分)

  • 黑帽seo技術:利用軟件給同行刷SEO負面點擊有用嗎?

    随着最近百度細雨算法的(de)更新,很多站點都被降權或者被K,之前有個朋(péng)友問岑輝宇,利用軟件給同行刷惡意點擊,能否有用?相信很多做(zuò)SEO優化的(de)站長(cháng)都有過這樣想法:當自(zì)己網站關鍵詞排名做(zuò)不上的(de)時候,是不是可(kě)以通過一(yī)些不正當的(de)方法,把競争對手排名拉下來?或者利用負面SEO方法讓搜索引擎誤判從而懲罰網站。注意,這裏岑輝宇說的(de)負面SEO與網絡SEO負面信息是完全不一(yī)樣。 首先刷點擊本身就是一(yī)種作弊行為(wèi),搜索引擎也嚴厲在打擊這塊點擊,比如(rú)百度驚雷算法,小編不建議大家這麽做(zuò)。但是随着排名越來越難做(zuò),不排除有站長(cháng)利用這點給競争對手刷點擊或者做(zuò)其他負面SEO,從而導緻排名下降或K站。那麽讓我們了解下負面SEO有哪些常見方法?常見負面SEO做(zuò)法 1,黑帽SEO:如(rú)挂木馬,挂黑鏈,隐藏頁面,用JS跳轉到BC,灰色網站等,做(zuò)Cloaking, 修改Robots,加noindex等等,需要專業黑帽SEO技術人員。 2,攻擊網站:DDOS攻擊,讓網站打不開。這個需要很大成本,一(yī)次攻擊是沒用,需要三天兩天經常打不開,這種要求對方舍得下成本。 3,重複內(nèi)容:大量重複內(nèi)容或者鏡像網站。 4,垃圾鏈接:給競争對手制造大量垃圾鏈接和(hé)不自(zì)然的(de)鏈接,如(rú)灰色詞。百度綠蘿算法就是打擊此鏈接。 5,404錯誤:制作大量404錯誤,鏈接到不存在的(de)頁面,需要基數大。 6,垃圾轉向:大量垃圾域名或者被懲罰的(de)域名轉向到目标網站。 7,刷點擊:也可(kě)以說是用戶體驗攻擊,跟SEO快排不一(yī)樣。可(kě)從百度統計工具,看網站點擊率,跳出率,展現量等。 以上七點都是常見負面SEO做(zuò)法,都是會影響搜索引擎對網站的(de)判斷,網站排名也會受到相應變化。為(wèi)什麽給競争對手刷點擊,為(wèi)什麽排名反而越來越好呢(ne)? 首先要明白,為(wèi)什麽刷點擊的(de)站點排名會波動?搜索引擎識别一(yī)個網站很簡單,舉個最簡單的(de)例子(zǐ)就懂了,假設A站在首頁,此時的(de)點擊是100個,然後百度給你調整到了第二頁或者第三頁,你的(de)點擊還有80個或者50個,此時,搜索引擎就判斷你作弊,因為(wèi)真實的(de)點擊是不可(kě)能這樣的(de),然後第三天,或者第四天,排名就直接100後。正常的(de)點擊應該是什麽樣呢(ne)?首頁的(de)時候一(yī)天點擊假設100個,百度給你波動,第二頁 或者第三頁,那麽點擊這個時候可(kě)能隻有5個或者10個了,然後未來一(yī)周到兩周的(de)時間,如(rú)果還是這個,也許不需要一(yī)周。那麽搜索引擎就自(zì)然給你重新放到首頁的(de)位置。 第二,底子(zǐ)好的(de)站,就容易穩定。為(wèi)什麽我網站長(cháng)沙SEO不刷,排名也能穩定前三?先不考慮自(zì)然點擊。拼點擊同行不知道(dào)刷了多少,那是因為(wèi)網站即使在前面了,岑輝宇也經常更新原創,外鏈底子(zǐ)也厚,綜合因素評分非常好。市面上很多網站刷點擊,搜索引擎認為(wèi)你就是靠點擊提權,最後排名下降。底子(zǐ)好的(de)站,你就算刷點擊,搜索引擎也認為(wèi)是惡意點擊,會過濾掉。除非搞一(yī)些底子(zǐ)不好的(de)就可(kě)以。 第三,那為(wèi)什麽有些網站也沒更新內(nèi)容,為(wèi)什麽也不掉排名?因為(wèi)假如(rú)一(yī)個網站已經穩定一(yī)年(nián)多了,百度會已經認死這個網站了。要知道(dào)全中國這麽多刷點擊的(de),每天會多出起碼幾千萬甚至上億的(de)點擊出來,相當于多了這麽多用戶,事實上 百度的(de)用戶哪有這麽多,不幹點擊幹啥,你們自(zì)己算算一(yī)個站每天100個點擊,100w個 就是一(yī)天一(yī)億的(de)流量,這一(yī)億流量并不是用戶,而是憑空刷出來的(de),這麽大的(de)流量百度服務器要多承受多少數據請求,隻有底子(zǐ)同步綜合運用,效果才好,單純刷意義不大。 最後,小編強調一(yī)點,随着搜索引擎的(de)人工智能化以及AI技術的(de)運用,百度不斷加強識别機制,經常點的(de)ip和(hé)軟件的(de)ip還是md5都是可(kě)以被記錄的(de)。雖然刷點擊效果越來越差,但是還是有很多站長(cháng)樂(yuè)此不疲,出發點不同所要的(de)結果也不一(yī)樣,不把自(zì)己網站做(zuò)好,整天想着通過一(yī)些不正當的(de)方法害别人,有什麽意義呢(ne)?做(zuò)SEO,且行且珍惜。

  • 網站跳出率太高(gāo)怎麽辦?SEO優化人員必知的(de)解決方案

    為(wèi)什麽用戶進來迫切想要離(lí)開你的(de)網站?因為(wèi)你網站的(de)內(nèi)容并不是用戶所需要的(de),很多企業做(zuò)優化做(zuò)不好的(de)原因就是這裏,不懂得用戶想看什麽樣的(de)內(nèi)容,通常都的(de)主觀認為(wèi),什麽“我感覺”、“我覺得”等詞彙經常出現在他們口中,我覺得用戶應該比較關系某某內(nèi)容,我感覺用戶應該喜歡網站的(de)頁面。如(rú)果要了解用戶,就需要利用用戶的(de)搜索數據來進行分析,而不是主觀去(qù)猜測,主觀猜測隻會讓網站跳出率越來越高(gāo),一(yī)般用戶搜索關鍵詞的(de)數據是可(kě)以通過一(yī)系列工具查詢,例如(rú)百度指數,百度風雲榜、下拉框、相關搜索等,在這裏就不一(yī)一(yī)說明了。解決方法:多向一(yī)些專業的(de)優化人員請教,不要固步自(zì)封井底之蛙,考慮問題圍繞用戶,從“我是做(zuò)什麽的(de)”轉變為(wèi)“用戶需要什麽?我就做(zuò)什麽!”然後根據用戶的(de)需求做(zuò)有價值的(de)內(nèi)容,很多網站內(nèi)容都是大量轉載的(de),或者就是整個頁面就一(yī)張大圖片,能傳遞給用戶的(de)信息少之又少;又或者網站是建站公司做(zuò)的(de),建站公司随便亂添加內(nèi)容,絲毫不考慮用戶的(de)搜索需求,甚至企業管理(lǐ)員都沒人來管理(lǐ)網站,那這樣的(de)網站跳出率不高(gāo)才怪。a.首先先學(xué)會通過數據去(qù)分析用戶常常搜索哪些關鍵詞,整理(lǐ)并記錄下來。b.略微動腦思考一(yī)下,用戶搜索這些關鍵詞的(de)目的(de)是什麽?想要尋找什麽樣的(de)參考內(nèi)容?c.哪些用戶是精準客戶?哪些客戶是泛客戶?精準客戶搜索什麽樣的(de)關鍵詞?d.在了解用戶的(de)需求後,将用戶喜歡的(de)內(nèi)容布局在什麽樣的(de)地(dì)方合适?隻要考慮好以上四點,在根據用戶在頁面的(de)一(yī)個點擊數據進行微調,就能解決用戶因為(wèi)找不到有價值的(de)參考內(nèi)容而選擇跳出網站。

  • SEO一(yī)箭雙雕: 認清虛假高(gāo)權重網站的(de)套路!

    怎樣識别虛假高(gāo)權重網站?  當你面對一(yī)個高(gāo)權重網站,作為(wèi)SEO專家而言,你一(yī)定會去(qù)站長(cháng)工具查看一(yī)下相關SEO數據指标,具體包括:  1、網站權重  這裏我們談到的(de)權重,目前重點指的(de)是百度權重,但這個百度權重和(hé)谷歌真實的(de)PR還是有一(yī)定區别,雖然谷歌PR已經停止更新,但它是官方認可(kě)的(de)權重。  而百度權重,并非是百度官方的(de)定義,而是各大站長(cháng)工具,基于關鍵詞搜索量與排名的(de)一(yī)個預估權重,它隻具有一(yī)定的(de)參考價值。  2、外鏈結構  當你在站長(cháng)工具查看确實是高(gāo)權重站點,這個時候我們需要查看一(yī)下目标網站的(de)外部鏈接情況,一(yī)個SEO标準化的(de)網站,常規來講權重在5-6,甚至更高(gāo)的(de)站點一(yī)定包含大量,多元化的(de)外部鏈接。  而且他的(de)友情鏈接一(yī)定大部分來自(zì)高(gāo)權重網站,如(rú)果你利用外鏈工具幾乎查詢不到它的(de)外鏈信息,甚至主域的(de)數量并不多,那麽它很有可(kě)能處于作弊邊緣,你需要進一(yī)步的(de)分析。  3、關鍵詞搜索量  如(rú)果你從事SEO行業一(yī)定的(de)時間,并且有着一(yī)定的(de)經驗,你會很清楚高(gāo)權重站點,一(yī)般來講都是以大量長(cháng)尾關鍵詞排名為(wèi)主,當然行業大站有社會影響力的(de)可(kě)能會存在大量品牌詞的(de)搜索量,但對于中小站點,并不會有過高(gāo)的(de)搜索量。  如(rú)果你發現一(yī)個高(gāo)權重站點,它的(de)關鍵詞排名第一(yī)的(de)指數,包含很多搜索量較高(gāo)的(de)詞,那麽你可(kě)能需要注意,這些詞是否具有真實的(de)搜索量,判斷的(de)方法很簡單:  你隻要到百度官方的(de)百度指數去(qù)檢索這些關鍵詞,在搜索指數趨勢這一(yī)欄,你可(kě)以選擇查看:24h,7天,30天,90天,半年(nián),全部的(de)指數波動趨勢。  如(rú)果這部分關鍵詞,隻是集中在某個時間節點出現高(gāo)頻率,而在90天,半年(nián),全部并沒有相關一(yī)定的(de)指數波動,那麽它很可(kě)能是利用真實用戶刷出來的(de)。  那麽,利用虛假高(gāo)權重網站,做(zuò)關鍵詞排名,與SEO培訓的(de)套路流程是什麽?  1、創建一(yī)定數量的(de)原創文章(zhāng),包含無競争度的(de)關鍵詞,并且盡量在搜索結果排名第一(yī)。  2、在一(yī)定時期內(nèi),利用真實用戶搜索這些目标關鍵詞,提升該關鍵詞的(de)搜索量,并給予一(yī)定目标站點的(de)點擊。  當然值得注意的(de)是期間為(wèi)了配合高(gāo)權重站點內(nèi)容,需要在目錄中生成大量內(nèi)頁,做(zuò)目标詞錨文本,用于推動核心關鍵詞的(de)排名,具體來講就是首頁标題的(de)關鍵詞。  3、當刷的(de)關鍵詞有一(yī)定搜索量後,你會發現你的(de)網站權重會大幅度提高(gāo),到達一(yī)定數值的(de)時候,比如(rú),權重5以上,會去(qù)主動交換真實高(gāo)權重的(de)友情鏈接。  4、注意重點來啦:由于垃圾內(nèi)容原創頁面,幾乎沒有排名,而隻有主頁是具有真實高(gāo)權重鏈接推薦的(de),所以操盤手會配置真實需要排名的(de)關鍵詞在主頁,用于提高(gāo)排名,當然也可(kě)以合理(lǐ)的(de)引導到高(gāo)質量欄目頁,用于排名,獲取客戶流量。  然而,到這裏你以為(wèi)就結束了?那你就錯了,接下來還可(kě)以這麽幹:  5、尋找一(yī)位行業大咖,用于講述這個案例的(de)操作流程,然後開始SEO培訓班,可(kě)謂是一(yī)箭雙雕。  總結:套路無處不在,SEO是一(yī)項系統工程,它涉及諸多細節,隻有紮實的(de)基本,通過大量的(de)實戰案例,才能讓自(zì)己有一(yī)副火眼金睛。  

  • 淺析URL定向推廣對SEO的(de)影響有多大

    我想URL重定向對于SEO人和(hé)站長(cháng)朋(péng)友來說,再熟悉不過了,常用的(de)301和(hé)不常用的(de)302一(yī)起,成為(wèi)了站長(cháng)朋(péng)友們解決網站重大問題的(de)重要工具之一(yī)。  那麽,URL定向是個什麽鬼呢(ne)?和(hé)URL重定向僅僅相差一(yī)個字的(de)URL定向的(de)誕生對于站長(cháng)朋(péng)友和(hé)SEO人來說,是否是一(yī)個災難性的(de)存在呢(ne)?  末日  前幾天,就有人在搜外讨論,說百度SEM正在內(nèi)測一(yī)款名為(wèi)“URL定向”的(de)推廣工具,簡單來說,其要展現的(de)效果就是:可(kě)以直接購買相關的(de)目标鏈接,在正常的(de)、自(zì)然搜索結果上面進行展現。 和(hé)以往相比,SEM至少還是要寫創意,購買關鍵詞的(de),而今這種所謂的(de)“URL定向”的(de)推廣方式根本不需要競價專員燒腦的(de)去(qù)寫各種創意,隻消查看一(yī)下排在自(zì)然搜索首位的(de)網址是哪個,複制過來粘貼上,展現出去(qù),好了,剩下的(de)就等着訪客上門吧(ba)!  SEM  這一(yī)消息對于SEO人來說,無疑是轟頂的(de)五雷,如(rú)果一(yī)旦确認屬實的(de)話,那對于SEO是一(yī)個算的(de)上是一(yī)個末日或者是災難!  其實早前,還是搜外網,就傳出過所謂的(de)“科哥(gē)倫布計劃”,聲稱百度搜索的(de)展現會在自(zì)然結果中适當的(de)穿插競價、甚至第一(yī)頁不再顯示SEO結果等等的(de)消息,但到了現在絲毫沒有看到百度有這方面的(de)大動作。  百度哥(gē)倫布計劃  不知道(dào)是受到了前幾天事件的(de)影響,還是所謂“科哥(gē)倫布計劃”計劃本身就隻是個謠傳。而今搜外再次傳出百度正在內(nèi)測的(de)“URL定向”的(de)推廣,更是引起了站長(cháng)圈子(zǐ)的(de)轟動,甚至有站長(cháng)朋(péng)友在QQ群裏直接宣稱負責其公司的(de)競價推廣客服也在向其征求是否需要購買這樣的(de)一(yī)個推廣方式的(de)意見。  之前我一(yī)直沒有将這個所謂的(de)“URL定向”放在心上,也沒有去(qù)詳細的(de)參研這個所謂的(de)新型推廣方式的(de)定義,隻是偶爾的(de)打開QQ群,看一(yī)看站長(cháng)朋(péng)友們聲讨百度的(de)聲音,之後就關閉了幹自(zì)己的(de)事情去(qù)了。  網絡營銷與推廣  但這兩天朋(péng)友圈裏,不少的(de)站長(cháng)朋(péng)友們紛紛發聲,不少的(de)自(zì)媒體朋(péng)友也議論紛紛,也正好趕上今晚不知道(dào)寫點什麽,于是正好參研一(yī)下這個新型的(de)推廣方式,其實個人的(de)理(lǐ)解,這種推廣方式基本屬于“我有錢,我就是大爺”的(de)狀況了,因為(wèi)你隻要看到自(zì)然搜索結果中有競争對手的(de)網址,看着不爽果斷拿下來,這完全就相當于直接截流了有木有,相當于掉錢眼裏了有木有!  鑽錢眼裏了  這麽變态的(de)推廣方式也不知道(dào)是誰想出來的(de),但對于SEO人來說說絕對是一(yī)個災難,你辛辛苦苦優化了三個月的(de)網站,好不容易到了首頁,人家分分鍾競價買下你的(de)域名,然後你就變成了千年(nián)老二!  對于做(zuò)網絡的(de)人來說,或許都能認得出競價推廣和(hé)自(zì)然排名的(de)不同,但對于普通的(de)用戶來說,想要識别二者恐怕就比較困難了,本身就不怎麽明顯的(de)對比,再加上排在第一(yī)上,普通用戶怎麽會知道(dào)排在最上面的(de)其實是個李鬼呢(ne)?李逵在競價推廣的(de)壓制下痛哭流涕,隻因自(zì)己沒有那麽多的(de)紋銀可(kě)以打通關卡,隻能眼睜睜的(de)看着顧客被李鬼奪走,想要在自(zì)己的(de)網站上寫個聲明什麽的(de)都不行,人家的(de)網址和(hé)你一(yī)模一(yī)樣的(de)有木有!  李逵和(hé)李鬼  從個人的(de)角度來說,我想百度方面應該不會、或者說暫時不會将這樣的(de)一(yī)款變态的(de)推廣方式暴露出來,縱容有這樣的(de)心思!原因如(rú)下:  1、百度推廣受到質疑的(de)風波尚未平息,如(rú)此大動作隻會更加揭開用戶的(de)傷口,從此真的(de)就各自(zì)路人了  2、如(rú)此變态的(de)推廣實為(wèi)冒天下之大不韪,除非百度可(kě)以将推廣排名和(hé)自(zì)然排名在展現方式上做(zuò)一(yī)個超級明顯的(de)區分,讓所有不是色盲的(de)用戶都能看懂哪個是競價、哪個是自(zì)然排名!  3、如(rú)此做(zuò)法勢必會引起廣大站長(cháng)和(hé)SEO人的(de)聯合抵制,如(rú)此導緻的(de)惡果可(kě)不是那麽好平息的(de),畢竟有很大一(yī)部分站長(cháng)和(hé)SEO人也是自(zì)媒體人,比如(rú)說我!  網站如(rú)何做(zuò)百度SEO  其實對于百度推廣要出這樣的(de)一(yī)個變态推廣方式,我一(yī)直持懷疑态度、甚至可(kě)以說是抵制的(de)态度,因為(wèi)我不相信我熱愛的(de)百度會做(zuò)出這樣的(de)一(yī)個失敗的(de)決策,但畢竟三人成虎,更何況網絡中也有文章(zhāng)力證此消息屬實,看的(de)多了心态就開始有所轉變了。  心态如(rú)何改變  說實話我甯可(kě)相信這隻是百度做(zuò)的(de)一(yī)個簡單的(de)內(nèi)測,內(nèi)測之後就塵歸塵了、或者說是一(yī)個謠言,真的(de)不希望這樣的(de)結果變成現實,同時也希望諸位媒體朋(péng)友們保持一(yī)個清醒的(de)頭腦,用一(yī)個辯證的(de)眼光看問題,最好不要以謠傳謠、妄加評判,畢竟事情還沒有發生,到底是否是真的(de),自(zì)然有時間可(kě)以證明!

  • 最新百度PM告訴你SEO這六個方面的(de)優化原則(幹貨)

     大家對百度搜索引擎都有過很多研究,各種角度各個方面的(de)挖掘都已經很細緻深入了。那麽從PM的(de)角度來看,SEO優化有哪些建議呢(ne),今天海瑤SEO小編重點講講這六個方面的(de)優化:關鍵詞優化、URL命名優化、代碼優化、網頁優化、結構優化、圖片優化。  1. 關鍵詞優化  1)關鍵詞選擇策略:兩高(gāo)一(yī)低(dī): 高(gāo)搜索量, 與頁面內(nèi)容高(gāo)相關, SEO競争低(dī)。選擇搜索量高(gāo)的(de)詞也就是流量大的(de)詞,與頁面的(de)相關性高(gāo)才能有好的(de)用戶體驗,也才能更好的(de)吸引蜘蛛爬行,而競争低(dī)的(de)詞則有利于排名展現。  2)關鍵詞優化指标: 遵循詞頻、密度、位置、表現形式 4 個指标。具體來看詞頻、密度,關鍵字密度=關鍵字頁面詞頻/頁面所有詞的(de)詞頻和(hé) ,密度處于6%~8%為(wèi)最佳。位置: 關鍵字所處的(de)位置也會決定其重要程度,自(zì)上而下,自(zì)左及右重要程度依次下降。表現形式: 關鍵字表現形式要注意字号、顔色、加粗、下劃線、斜體等。  2.URL命名優化  優化原則 :  1) 同一(yī)網頁隻對應一(yī)個URL,多種形式的(de)URL會分散網頁的(de)權重。  2) URL要簡潔美觀,最好包括關鍵詞,讓客戶能從中判斷出網站內(nèi)容。  3) 動态URL變量參數盡量少,為(wèi)防止用戶輸錯地(dì)址而啓用的(de)備用域名,用 301 跳轉到主域名。  3.代碼優化  1) 除去(qù)空白區域,一(yī)般而言,空白區域(空格,制表符,換行符等)都可(kě)以安全删除,但要避免修改pre,textarea,及受css屬性中white-space影響的(de)标簽。  2) 使用短(duǎn)格式的(de)顔色表示,我們常常在用顔色的(de)時候喜歡用 16 進制和(hé)全顔色名稱,認為(wèi)這樣比較精确,但我們要盡可(kě)能根據實際情況使用短(duǎn)格式的(de)顔色表示如(rú):#ff0000,其實就是red。  3) 用短(duǎn)格式的(de)字符表示。和(hé)最短(duǎn)顔色表示一(yī)樣,一(yī)些名稱可(kě)以用最短(duǎn)字符來表示,我們可(kě)以用較短(duǎn)的(de)數字來代替某些冗長(cháng)的(de)字母。  4) 除去(qù)css中的(de)空白區域。相比html來,css對于空白區域沒有那麽敏感,所以除去(qù)空白區域可(kě)以極大地(dì)減少css文件和(hé)style樣式表的(de)區域大小。  5) 除去(qù)css注釋,如(rú)同除去(qù)markup代碼中的(de)注釋一(yī)樣,由于css的(de)注釋對普通的(de)最終用戶來說并沒有什麽使用價值,應該除去(qù)。不過,如(rú)果考慮到較低(dī)級的(de)浏覽器,則css中style标簽中的(de)屏蔽注釋信息不可(kě)以去(qù)除。使用短(duǎn)格式表示顔色,同上,不再重複。  6) 對css的(de)規則進行合并,如(rú): p{font-size:36pt; font-family:aral; line-height:48pt; font-weight:bold;} 可(kě)以這樣寫:p{font:bold 36pt/48pt arial;}  7) 完全不必在各個鏈接上寫target=“_blank”,隻要在head中寫一(yī)句即可(kě)。  4.網頁優化  1)title是搜索引擎判斷“網頁-query”權值的(de)最重要指标。每個網頁都應該有一(yī)個獨一(yī)無二的(de)标題,切忌所有頁面都使用默認标題。同時标題中要包含網頁中最重要的(de)內(nèi)容。  2)Meta description是網頁內(nèi)容的(de)精煉概括,搜索引擎會把description當做(zuò)摘要的(de)首要目标之一(yī)。切忌所有網頁都用相同的(de)description.同時描述介紹要合理(lǐ),且要與網站內(nèi)容相關,不可(kě)堆砌關鍵詞。  3) 不使用frame和(hé)iframe框架結構,通過iframe顯示的(de)內(nèi)容可(kě)能會被搜索引擎忽略。  4) Ajax等搜索引擎不能識别的(de)技術,隻用在需要用戶交互的(de)地(dì)方,把不希望搜索引擎“看”到的(de)導航及正文內(nèi)容放到 Ajax中。  5)使用文字而不是flash、圖片、Javascript等來顯示重要的(de)內(nèi)容或鏈接,如(rú)果必須使用Flash制作網頁,建議同時制作一(yī)個供搜索引擎收錄的(de)文字版,并在首頁使用文本鏈接指向文字版。  6)為(wèi)每個頁面都加上導航欄,讓用戶可(kě)以方便的(de)返回頻道(dào)、網站。  7) 不希望搜索引擎跟蹤的(de)鏈接,可(kě)以增加nofollow. 或在robots.txt(使用指南)中進行統一(yī)屏蔽。  5. 網站結構優化  1)網站結構要簡潔明了,不可(kě)太複雜。要有明晰的(de)導航和(hé)層次結構,可(kě)以是首頁-頻道(dào)-文章(zhāng)頁的(de)樹型結構(如(rú)下圖樣例),也可(kě)以是扁平結構。 樹型網站結構示例  2)網站上重要的(de)網頁,應該能從網站比較淺層的(de)位置訪問到。  3)确保每個頁面至少可(kě)以通過一(yī)個文本鏈接達到。為(wèi)每個頁面都加個導航欄,讓用戶可(kě)以方便的(de)返回上一(yī)級頁面和(hé)首頁。  6. 圖片優化  1)很多人習慣用數字來命名圖片,以方便記憶和(hé)整理(lǐ)。但從SEO的(de)角度最好使用和(hé)關鍵詞相關的(de)文字來命名圖片。這樣有助于搜索引擎判斷一(yī)個圖片的(de)內(nèi)容。  2)為(wèi)每一(yī)張圖片加alt标簽。圖片alt标簽決定了圖片的(de)排名位置,是搜索引擎判斷圖片內(nèi)容的(de)重要依據。而且,alt标簽的(de)文本內(nèi)容在圖片無法讀取時得以顯現。所以建議為(wèi)每一(yī)張圖片加上alt标簽,标簽的(de)寫法上要包含關鍵詞同時自(zì)然的(de)描述圖片內(nèi)容。  3)圖片前後的(de)文本內(nèi)容也是搜索引擎考量網頁內(nèi)容的(de)一(yī)部分,所以圖片前後的(de)文本優化也是SEO的(de)一(yī)部分。  4)最後圖片盡量本地(dì)化,這樣能保證不會因為(wèi)鏈接而分走權重,忌使用網絡上的(de)圖片。

  • 百度中文分詞技術如(rú)何在SEO中靈活運用?

    SEO優化過程中寫文章(zhāng)應該注意:一(yī)篇文章(zhāng)一(yī)般在500-800個字,一(yī)個長(cháng)尾詞一(yī)般在8個字,最好在文章(zhāng)的(de)第一(yī)段裏出現,出現次數3-6次,超過6次會被搜索引擎K掉,這是今天的(de)幹貨。百度是如(rú)何來分詞的(de)呢(ne)?分詞技術現今非常成熟了。第一(yī):字符串匹配的(de)分詞方法(1)正向最大匹配法就是把一(yī)個詞從左至右來分詞。舉個例子(zǐ):”不知道(dào)你在說什麽”這句話采用正向最大匹配法是如(rú)何分的(de)呢(ne)?“不知道(dào),你,在,說什麽”。(2)反向最大匹配法“不知道(dào)你在說什麽”反向最大匹配法來分上面這段是如(rú)何分的(de)。“不,知道(dào),你在,說,什麽”,這個就分的(de)比較多了,反向最大匹配法就是從右至左。(3)就是最短(duǎn)路徑分詞法。就是說一(yī)段話裏面要求切出的(de)詞數是最少的(de)。“不知道(dào)你在說什麽”最短(duǎn)路徑分詞法就是指,把上面那句話分成的(de)詞要是最少的(de)。“不知道(dào),你在,說什麽”,這就是最短(duǎn)路徑分詞法,分出來就隻有3個詞了。(4)雙向最大匹配法。而有一(yī)種特殊的(de)情況,就是關健詞前後組合內(nèi)容被認為(wèi)粘性相差不大,而搜索結果中也同時包含這兩組詞的(de)話,百度會進行正反向同時進行分詞匹配。第二:詞義分詞法就是一(yī)種機器語音判斷的(de)分詞方法。很簡單,進行句法、語義分析,利用句法信息和(hé)語義信息來處理(lǐ)歧義現象來分詞,這種分詞方法,現在還不成熟,處在測試階段第三:統計分詞法根據詞組的(de)統計,就會發現兩個相鄰的(de)字出現的(de)頻率最多,那麽這個詞就很重要。就可(kě)以作為(wèi)用戶提供字符串中的(de)分隔符,這樣來分詞。比如(rú),“我的(de),你的(de),許多的(de),這裏,這一(yī),那裏”等等,這些詞出現的(de)比較多,就從這些詞裏面分開來。如(rú)果一(yī)天寫10篇文章(zhāng),一(yī)年(nián)就可(kě)以寫3650篇文章(zhāng),給你的(de)網站寫3650個關鍵詞并合理(lǐ)布局到你網站中,可(kě)以使用關鍵詞挖掘工具提詞,根據用戶需求進行關鍵詞的(de)篩選,吸引流量指日可(kě)待。分詞還有一(yī)種好處,那就是提升內(nèi)頁的(de)排名。SEO是心理(lǐ)學(xué),去(qù)猜想用戶使用什麽詞搜索,從而進行非常有意思的(de)工作。

  • 移動網站SEO優化策略和(hé)優化過程注意的(de)細節問題

    很多站長(cháng)都在糾結移動網站SEO如(rú)何做(zuò),怎麽樣才能把移動端網站關鍵詞優化到首頁。其實,站長(cháng)們無需過多擔心,其實PC端網站跟移動站點還是有很多互通。下面,我們重點說說移動站點SEO優化策略,以及移動端站點優化過程中主要哪些細節問題。  1、移動站點和(hé)PC端站點做(zuò)好移動适配  對于移動站點優化而言,其實隻是在百度移動端做(zuò)優化,這就需要PC端和(hé)移動端做(zuò)好适配。曾經百度移動工程師說過,百度移動端會優先針對移動端站點進行排序,故而,單獨做(zuò)移動站點相比PC端站點更具有優勢。  站長(cháng)們就需要做(zuò)好移動端适配,把用戶在移動端訪問網站的(de)時候,自(zì)主跳轉到移動版站點。現在,百度站長(cháng)站長(cháng)平台已經開通移動端和(hé)PC端之間的(de)适配。站長(cháng)們隻需要按照百度站長(cháng)提供的(de)方法進行一(yī)一(yī)對應就可(kě)以。  2、PC端和(hé)移動端之間TDK屬性差别  PC端網站展現出來的(de)內(nèi)容要遠遠多餘移動站展示內(nèi)容。因此,移動端就需要做(zuò)出精準和(hé)簡潔。移動端SEO優化,就需要參考百度移動搜索規範來進行,而不是照搬PC端。移動端和(hé)PC端TDK主要變現在字符上面。百度移動搜索結果頁面中展現出的(de)Title,若超過24個會被截斷,建議最好不要超過17個中文漢字。  3、網站鏈接結構  對于移動站點來說,更加看重網站良好的(de)鏈接結構。良好的(de)鏈接結構,不僅僅包括網站導航和(hé)用戶體驗,更重要就是要給用戶查看內(nèi)容的(de)便捷性。還有就是讓蜘蛛更容易進行抓取和(hé)爬行。在鏈接層次結構上面,建議鏈接層次不要超過2層結構。  而且,網站建設在網站鏈接URL使用簡短(duǎn)的(de)靜态鏈接方式,有利于搜索引擎更有效的(de)抓取和(hé)判斷網頁。  4、多利用站長(cháng)平台工具診斷網站問題  目前,包括國內(nèi)的(de)百度、360、搜狗,以及國外的(de)谷歌都免費提供站長(cháng)平台。涉及到網站問題,站長(cháng)平台都會診斷出網站問題所在。因此,我們就需要合理(lǐ)和(hé)充分利用站長(cháng)工具進行網站診斷,這樣來保證網站良好的(de)優化效果。比如(rú):移動适配,可(kě)直接提交适配關系,加快搜索引擎的(de)識别和(hé)判斷能力。  5、URL鏈接301跳轉  百度已經嚴格說明,PC端301不适用于移動端,包括robots等這些屏蔽蜘蛛措施。因此,我們在移動端就需要做(zuò)好URL鏈接301跳轉和(hé)利用robots文件封禁spider抓取等。  百度移動搜索适配不僅僅是做(zuò)好URL鏈接的(de)031跳轉,同時也需要對其內(nèi)容結構上的(de)調整與布局,因為(wèi)PC端內(nèi)容布局和(hé)移動端內(nèi)容布局上有所差異。

  • 怎麽提煉與優化關鍵詞,讓您的(de)SEO效果翻倍

    在進行搜索營銷時,如(rú)何提高(gāo)與優化網站的(de)關鍵詞将對營銷起到重要的(de)作用。那麽,關鍵詞究竟有多重要呢(ne)?小編舉例來說,我們在百度裏查找相關信息的(de)時候,通常會在百度中輸入一(yī)些關鍵的(de)詞語,搜索引擎會根據這些關鍵詞在數據庫中進行搜尋,如(rú)果找到與這些關鍵詞內(nèi)容相符的(de)網頁,就會采用一(yī)種特殊的(de)算法----根據網頁中關鍵詞的(de)匹配程度、出現的(de)位置與頻次、鏈接質量等,計算出各網頁的(de)相關度及排名等級,然後根據關聯度高(gāo)低(dī),按照順序将這些網頁鏈接呈現給用戶。由此可(kě)見,懂得提煉與優化關鍵詞的(de)技巧,能夠有效地(dì)提升網頁在搜索引擎中的(de)排名。接下來小編來介紹幾種行之有效的(de)提煉與優化關鍵詞的(de)方法:1、選好網站關鍵詞我們在進行SEO時,首先要為(wèi)網站選好關鍵詞,增強營銷的(de)精準性。關鍵詞的(de)數量不宜太多,一(yī)般主要選取3個為(wèi)益,以“網絡營銷”為(wèi)例,如(rú)果我們要從事的(de)業務主要是“網絡營銷”,那麽,在選取關鍵詞時,除了“網絡營銷”這個關堅持,還可(kě)以選擇“網上營銷”、“互聯網營銷”作為(wèi)關鍵詞,這樣,用戶隻要在搜索引擎中輸入這些關鍵詞,搜索引擎在數據庫中查找結束時,會由于我們的(de)關鍵詞設置與用戶需求比較匹配,會加大将我們的(de)網頁信息提供給用戶的(de)概率。2、要在URL中出現關鍵詞URL譯為(wèi)統一(yī)資源定位器,也被稱為(wèi)網頁地(dì)址,是因特網上标準的(de)資源地(dì)址。通常來說,在确定好一(yī)個網站的(de)定位後,域名就可(kě)以使用這個行業關鍵詞的(de)雙拼或者英文單詞,這一(yī)般是比較理(lǐ)想的(de)狀态。我們仍以百度為(wèi)例,它的(de)域名中,“baidu”就是百度的(de)全拼,不僅便于上網用戶記憶,也便于搜索引擎收錄,有利于提高(gāo)在搜索引擎中的(de)關聯度排名。3、在網頁的(de)內(nèi)文中植入關鍵詞網頁的(de)內(nèi)文就是網頁要呈現給用戶的(de)具體內(nèi)容,它可(kě)以是産品信息,也可(kě)以是博客文章(zhāng)。在這裏,有一(yī)個經典的(de)法則是“內(nèi)容為(wèi)王鏈為(wèi)皇”,也就是說,如(rú)果網站沒有優質內(nèi)容,那麽網站本身就已經失敗,更無從談優化網站,因為(wèi)所有的(de)優化推廣隻是将用戶吸引到網站的(de)頁面上來,至于用戶的(de)體驗如(rú)何,還是要看網站內(nèi)文的(de)質量。4、在網頁摘要中植入關鍵詞搜索引擎展示給用戶的(de)搜索結果時,首先會顯示網頁的(de)标題,這再次說明了小編前面所強調的(de)在網頁标題中植入關鍵詞的(de)重要性,其次,在網頁标題下回顯示50···70字的(de)網頁摘要,也可(kě)以是某篇文章(zhāng)的(de)摘要。一(yī)般情況下,用戶看完标題後會習慣性的(de)去(qù)看網站的(de)摘要,假如(rú)在網站摘要裏植入關鍵詞,而且內(nèi)容設計得也吸引人,那網站的(de)點擊率就會提升,進而提升網站在搜索引擎中的(de)排名。5、巧妙運用現有關鍵詞,必要時自(zì)創關鍵詞所謂現有關鍵詞,就是那些在搜索引擎中被普遍使用的(de)關鍵詞。需要注意的(de)是,關鍵詞并非越熱越好,因為(wèi)熱刺意味着使用者太多、競争力大,所以根據實際情況選擇一(yī)些比較弱的(de)詞來做(zuò),這樣所面臨的(de)競争力就會小。另外,盡量避免選擇那些覆蓋面過大的(de)關鍵詞,因為(wèi)那會增加優化難度,小編推薦使用“百度指數”,來查詢關鍵詞的(de)冷熱度。

  • 網站優化進入前3名的(de)關鍵詞如(rú)何穩住排名

    經過一(yī)段時間的(de)努力,我們已經成功的(de)将網站關鍵詞的(de)排名優化到了前20位,這是SEO優化過程中極其重要的(de)一(yī)步,标志着我們的(de)優化方法已經得到了搜索引擎的(de)認可(kě),這個時候的(de)網站會面臨兩種結果,如(rú)果網站內(nèi)容足夠吸引人、關鍵詞競争性不是很強的(de)情況下會直接進入到前三位,還有一(yī)種情況是網站徘徊在10-13位停滞不前,這次我們首先來分析第一(yī)種情況,後面的(de)情況比較特殊我們放到後面做(zuò)單獨的(de)分析。如(rú)果網站在進入20位幾天之後直接進入前三位,那麽說明網站已經得到了搜索引擎和(hé)用戶的(de)基本肯定,如(rú)果網站第一(yī)次進入前三位會有一(yī)個不穩定期,這個不穩定是因為(wèi)關鍵詞搜索的(de)70%流量都幾種在前三位,一(yī)個新的(de)網站一(yī)旦進入這個排名便會有大量的(de)用戶點擊進來,這樣的(de)點擊會加速搜索引擎對于網站價值的(de)判斷,如(rú)果用戶點擊進入網站後沒有再返回到搜索引擎尋求其他搜索結果說明我們的(de)網站價值很高(gāo),幫助用戶找到了搜索關鍵詞需求的(de)信息,如(rú)果用戶在進入網站後又返回搜索引擎說明網站沒有提供關于該關鍵詞有價值的(de)信息,這是一(yī)個非常危險的(de)信号。  網站進入前三位後外鏈等都可(kě)以暫時停止一(yī)下,務必把重點放在內(nèi)容的(de)建設方面,哪怕是将文章(zhāng)的(de)發布數量降低(dī)一(yī)倍都無所謂,關鍵是文章(zhāng)要有可(kě)讀性,要能提供用戶的(de)需求,這一(yī)步将是SEO需要跨越的(de)至關一(yī)步,如(rú)果失敗會導緻前面的(de)努力都付之東流。  如(rú)果說之前的(de)SEO優化工作都是技術性的(de)操作,那麽從現在開始我們就要轉變為(wèi)一(yī)名文章(zhāng)編輯,要想發布的(de)文章(zhāng)是有價值的(de)就需要提前分析關鍵詞背後的(de)需求。因此我們在編輯文章(zhāng)的(de)時候就要将圍繞這些信息展開,這樣當用戶通過搜索引擎進入網站的(de)時候看到這些信息點就會停留并且閱讀。認為(wèi)SEO絕非單純的(de)技術這樣簡單,這也是說為(wèi)什麽某些行業的(de)SEOER去(qù)做(zuò)其他行業的(de)SEO很多時候非常吃力的(de)原因,重要的(de)原因是不了解這個行業,這是非常重要的(de)一(yī)點。  所以說開始SEO優化之前我們一(yī)定要分析隐藏在關鍵詞背後的(de)需求,隻要了解了這些需求才能懂得用戶在搜索這些關鍵詞的(de)時候想要得到什麽?滿足的(de)這些的(de)需求自(zì)然會讓網站變得有價值,這個價值會讓網站長(cháng)期的(de)立于不敗之地(dì)。

  • 單頁面網站如(rú)何做(zuò)seo關鍵詞優化

    對于絕大部分SEOer來說,優化多頁面的(de)網站比優化單頁面網站簡單,因為(wèi)單頁面網站內(nèi)容比較固定和(hé)簡單,站內(nèi)錨文本更是無從談起,這些無疑增加了優化的(de)難度。  其實單頁面網站經常用于産品的(de)廣告宣傳,雖然對于絕大部分企業來說,為(wèi)了增加網站的(de)美觀性和(hé)功能性,或者為(wèi)了便于做(zuò)搜索引擎營銷推廣,會使用多頁面網站。但是對于一(yī)些中小型企業,為(wèi)了省錢或者說覺得網站沒有多少存在的(de)必要性,亦或者說是為(wèi)了便于用戶浏覽,會選擇使用單頁面網站。  不可(kě)否認,單頁面網站在SEM推廣中,是不建議使用的(de),頁面過于簡單單一(yī),造成用戶體驗不好,而且跳出率100%,不利于進行分析優化。同樣的(de),在SEO優化中,單頁面網站優化也存在着很多弊端。  首先,單頁面獲取流量難度大。一(yī)個網站的(de)流量組成是由大量的(de)內(nèi)容頁面貢獻而來,而單頁面網站無法布局太多的(de)長(cháng)尾關鍵詞,所以勢必會浪費大量的(de)流量。  其次,無法進行站內(nèi)優化操作。做(zuò)SEO優化的(de)都知道(dào),內(nèi)容和(hé)外鏈在網站優化的(de)重要性,素來都有“內(nèi)容為(wèi)王,外鏈為(wèi)皇”之說。所以對單頁面來說,已經缺少了內(nèi)容為(wèi)王這一(yī)項。  再次是關鍵詞布局難度大。單頁面網站想要布局大量關鍵詞,容易被搜索引擎判定為(wèi)關鍵詞堆砌,從而造成網站優化過度。  最後是跳出率問題。單頁面網站的(de)跳出率是100%,随着搜索引擎算法的(de)調整,用戶行為(wèi)參與進算法所占的(de)比重越來越大,跳出率高(gāo)的(de)網站從側面反映出用戶對網站內(nèi)容的(de)不認可(kě),那麽在排名算法上,單頁面網站是無法獲取這部分的(de)加權的(de)。 那麽單頁面網站真的(de)一(yī)無是處嗎?答案肯定是否定的(de),相反的(de),單頁面網站的(de)SEO優化,可(kě)能比多頁面網站更占有優勢,為(wèi)什麽呢(ne)?  1、單頁面網站有利于增加權重  單頁面網站隻有一(yī)個頁面,所以我們所有的(de)內(nèi)容以及建立的(de)鏈接都是基于這個頁面而産生的(de),所有的(de)反向鏈接都指向同一(yī)頁面、同一(yī)域名,這就賦予了網站很高(gāo)的(de)權重。  2、有利于網站的(de)相關性  單頁面網站的(de)所有內(nèi)容都放在同一(yī)頁面下,頁面內(nèi)容很充實,關鍵詞的(de)相關性也随之提高(gāo)。對于搜索引擎來說,頁面內(nèi)容與關鍵詞是否具有相關性是極其重要的(de),所以單頁面網站優化是十分有必要的(de)。  3、有利于搜索引擎爬行  單頁面網站的(de)結構比較簡單,在一(yī)定程度上為(wèi)搜索引擎的(de)爬取工作減輕了負擔,有了搜索引擎的(de)抓取就可(kě)以為(wèi)進一(yī)步的(de)優化工作打下基礎。  了解了單頁面的(de)利與弊,那麽如(rú)何對單頁面網站進行優化呢(ne)?  1、定義區域性內(nèi)容  針對單頁面網站,我們可(kě)以先将頁面劃分為(wèi)幾個特定的(de)區域,将每一(yī)個區域作為(wèi)一(yī)個單獨的(de)頁面來優化。為(wèi)每一(yī)個區域選擇關鍵詞、定義內(nèi)容、設置各種标簽等。當然要切記每個區域的(de)關鍵詞都應具有相關性。  2、使用DIV分割區域  将每一(yī)個區域用DIV分割開來,這樣能夠使得網頁的(de)結構更加清晰。  3、設置錨鏈接  搜索引擎都非常喜歡錨鏈接,與錨文本不同,錨鏈接能夠将用戶帶入同一(yī)頁面的(de)特定區域。在單頁面網站優化中,在每個區域設置特定的(de)錨鏈接,正确為(wèi)用戶導航,方便用戶在同一(yī)頁面內(nèi)找尋目标信息。  4、為(wèi)每一(yī)個區域設置H1 标簽  通常情況下,一(yī)個頁面最多設置一(yī)個H1 标簽,但是單頁面網站因為(wèi)其獨特性,跟一(yī)般的(de)網站不同。在單頁面網站的(de)每個區域設置一(yī)個H1 标簽有利于突出頁面結構,有助于搜索引擎明白網站架構。但是切記每個區域設置一(yī)個H1 标簽即可(kě),不可(kě)頻繁使用。  5、避免全是圖片展示  很多企業使用單頁面網站,希望展示給用戶一(yī)種酷炫或者簡單的(de)效果,所以網站裏面添加很多圖片,但是這卻造成了網站文字內(nèi)容太少,不利于搜索引擎對網站的(de)抓取和(hé)索引。  6、高(gāo)質量的(de)網站內(nèi)容  作為(wèi)單頁面網站,将用戶關注的(de)需求點盡可(kě)能的(de)完整的(de)展示出來,是十分有必要的(de),所以這就需要高(gāo)質量的(de)網站內(nèi)容,通過不同的(de)區域展示相關的(de)內(nèi)容介紹,提高(gāo)用戶體驗。  無論是哪類型的(de)網站,SEO優化都是必不可(kě)少的(de),隻是不同類型的(de)網站有不同的(de)優化方式,選擇了對的(de)優化方式,網站優化也是手到擒來。

  • 簡析網站每天進行原創內(nèi)容更新卻還遭到降權的(de)幾點原因

    網站SEO優化理(lǐ)論中,內(nèi)容為(wèi)王已經得到了站長(cháng)們的(de)共識,可(kě)是,最近一(yī)位朋(péng)友在群裏抱怨說,自(zì)己的(de)網站天天堅持原創內(nèi)容更新,昨天天排名第二,今天一(yī)下降到十五名了,這就是國內(nèi)的(de)搜索引擎,順我者生,逆我者亡……這位站長(cháng)朋(péng)友發自(zì)內(nèi)心的(de),甚至有幾分失态的(de)話語,固然是對搜索引擎的(de)無奈,同時,他在話語中這樣說,每天堅持原創更新就等于排名第一(yī),這樣的(de)理(lǐ)論占到住腳嗎?  談到原創內(nèi)容,包括兩個方面,一(yī)種是寫給搜素引擎的(de)原創內(nèi)容,隻要網站每天有內(nèi)容更新,而且這個內(nèi)容在搜索引擎認為(wèi)是唯一(yī)的(de),那就會判斷是原創內(nèi)容,另一(yī)種則是給用戶看的(de)原創內(nèi)容,這樣的(de)內(nèi)容可(kě)以通過網站用戶的(de)停留時間做(zuò)出判斷,因為(wèi)一(yī)個用戶在一(yī)個網站停留的(de)時間越長(cháng),跳出率越少,證明這個網站的(de)內(nèi)容對用戶是有用的(de)。  顯然,做(zuò)好原創內(nèi)容,也需要好好修煉一(yī)番。簡單的(de)找一(yī)些文章(zhāng),随便改一(yī)下,或者找一(yī)些專業性的(de)文章(zhāng),根本就不是給“普通大衆”看的(de)文章(zhāng),也算是原創,這樣的(de)更新很簡單。複雜的(de)呢(ne),則需要用心去(qù)寫,然後文章(zhāng)中要加入相關關鍵詞,要有可(kě)讀性,最少保證文章(zhāng)順暢。再高(gāo)一(yī)層呢(ne)?文章(zhāng)則需要帶入情感,而且做(zuò)好站內(nèi)鏈接,文章(zhāng)不僅發布到網站上,在外站發布也能拿的(de)出手……  登陸這位站長(cháng)的(de)網站,查看他每日更新的(de)文章(zhāng),原創屬于簡單那一(yī)類,就是找一(yī)些專業性的(de)文章(zhāng),每天進行更新,也許這樣文章(zhāng)隻有需要的(de)人才能夠看明白,反正我是看不懂,随便找了幾個文章(zhāng)的(de)标題,百度一(yī)下,幾乎沒有收錄,顯然,這位站長(cháng)如(rú)此的(de)原創,值得贊揚的(de)就是強大的(de)執行力,每天都更新,每天都在堅持。  因為(wèi)你做(zuò)的(de)不夠好,一(yī)旦你的(de)競争對手開始發力,找到你的(de)缺點,開始攻擊“軟肋”,比如(rú)在原創這一(yī)塊,做(zuò)複雜的(de)哪一(yī)種,每篇文章(zhāng)加入關鍵詞,而且文章(zhāng)具有可(kě)讀性……接着又有更強的(de)競争對手出現,每天文章(zhāng)都做(zuò)了鏈接,而且還發到的(de)站外……那麽,你的(de)天天更新原創文章(zhāng)就像讓網站排名靠前,以前是競争對手太少,所以可(kě)以,而現在,一(yī)旦競争對手多了,顯然這種網站優化方式已經落伍了!  更讓人糾結的(de)是,“內(nèi)容為(wèi)王,外鏈為(wèi)皇”的(de)理(lǐ)論固然依舊(jiù)有效,但是,針對的(de)是草(cǎo)根站長(cháng)而言,因為(wèi)對于草(cǎo)根站長(cháng)的(de)網站來說,網站一(yī)般是一(yī)個人打理(lǐ),站長(cháng)負責的(de)事情相當繁瑣,又分身無術的(de)前提下,如(rú)何保證網站排名,做(zuò)好內(nèi)容和(hé)外鏈是基本功。如(rú)今互聯網已經發生翻天覆地(dì)的(de)變化,很多有實力的(de)傳統企業也開啓了網站運營推廣,和(hé)草(cǎo)根站長(cháng)單打獨鬥比較,他們更喜歡團隊作戰。  于是,網站優化已經成複雜化趨勢發展,比如(rú)網站建設、推廣需要文案、網站建設需要美工、需要運營推廣人員、需要分工,三個臭皮匠頂一(yī)個諸葛亮(liàng),就算個人能力再強,在團隊面前,還是處于弱勢地(dì)位。唯一(yī)的(de)優勢就是起步較早,但是,如(rú)果不做(zuò)大做(zuò)強,很容易就會被競争對手碾壓,這隻是時間早晚的(de)事情。  如(rú)今,網站運營已經不是一(yī)個人就能搞定的(de)事情,一(yī)招鮮吃天下的(de)時代已經過去(qù),哪些利用“黑帽SEO”的(de)時代随着搜索引擎算法的(de)不斷成熟,已經越來越沒有市場了,而唯一(yī)堅持可(kě)行的(de),就是用一(yī)套标準的(de)網站推廣方式、科學(xué)的(de)數據研究、并且是團隊作戰,當然,這需要充足的(de)成本保障。如(rú)此,優化的(de)網站才能穩紮穩打一(yī)步一(yī)步超越對手,逐漸排名靠前,也不會擔心網站會被降權,排名瞬間下去(qù)。

  • 網站權重怎麽優化?簡析在短(duǎn)期間內(nèi)将網站權重優化到2的(de)方法

    俗話說,萬事開頭難。對于一(yī)個網站運營新手來說,開拓網站優化之旅,用對了方法,那麽可(kě)能一(yī)直順利走下去(qù)。如(rú)果用錯了方法,也無關緊要,畢竟剛剛上手,怎麽也得有試錯的(de)時間是吧(ba)!不管怎麽說,網站從權重1到權重2是一(yī)個開始,其意義不僅僅是數字的(de)變化,更是對網站優化過程一(yī)個開端。也許網站權重到4是怎麽上去(qù)的(de)不會過于關心,而對于第一(yī)次升級,則印象深刻。 網站優化方式很多,比如(rú)站內(nèi)優化、內(nèi)容建設、外鏈建設、友情鏈接等等。對于新手來說,好像感覺哪個方法都不錯,哪個方法都想試一(yī)試,如(rú)果你抱着這樣的(de)想法優化網站,樣樣嘗試,樣樣稀松,結果,有可(kě)能把網站玩壞了了!  網站優化到權重2,不需要各種優化方式的(de)組合,隻要選對一(yī)樣就可(kě)以了。今天就和(hé)大家分享一(yī)個方法,那就是交換鏈接。網站交換鏈接,也稱為(wèi)友情鏈接、互惠鏈接、互換鏈接等,是具有一(yī)定資源互補優勢的(de)網站之間的(de)簡單合作形式,即分别在自(zì)己的(de)網站上放置對方網站的(de)LOGO或網站名稱,并設置對方網站的(de)超級鏈接,使得用戶可(kě)以從合作網站中發現自(zì)己的(de)網站,達到互相推廣的(de)目的(de)。  網站交換鏈接的(de)方式有很多,尋找的(de)渠道(dào)也是多種多樣,以企業網站為(wèi)例,可(kě)以利用線下資源,也可(kě)以和(hé)同行之間交換鏈接,如(rú)果這些用完了,還可(kě)以利用互聯網一(yī)些資源,比如(rú)如(rú)今廣告成災的(de)QQ群,裏有大量的(de)行業群、友鏈交換群、站長(cháng)群,在這裏精準又高(gāo)效的(de)達到你的(de)目的(de)。  當然,一(yī)個網站的(de)友情鏈接不是無限的(de)越多越好,而且在做(zuò)友情鏈接的(de)時候,也不是啥好友都鏈接,這樣不僅不利于網站優化,反而會“害了”網站。所以做(zuò)友情鏈接要注意這幾點:交換同行業效果最為(wèi)佳;網站的(de)PR和(hé)權重一(yī)定比我們稍微好或者跟我們差不多,不能交換比我們差或者被百度降權或者K站的(de),會拖累我們網站;交換友鏈的(de)網站的(de)百度快照日期越新越好;對方網站的(de)收錄和(hé)反連越多越好;一(yī)天不要交換太多,幾個即可(kě);就算對方PR和(hé)權重最高(gāo),如(rú)果對方的(de)友鏈有幾百個也不建議換,因為(wèi)分給我們網站的(de)流量會很少……  網站交換鏈接在網站初期優化不僅能夠很快讓網站權重升級,也是網站從線下到線上的(de)一(yī)個過渡過程,比如(rú)說,尋找同行或者客戶的(de)網站做(zuò)友情鏈接,這些都是以前積累的(de)經驗,而通過QQ群或者其他網絡渠道(dào)做(zuò)的(de)鏈接,則是對新事物的(de)探索。  一(yī)方面利用資源,另一(yī)方面又開拓新的(de)資源,就好比朋(péng)友圈做(zuò)微商,前期利用朋(péng)友圈做(zuò)微商,後期想把微商做(zuò)大,就得跳出朋(péng)友圈的(de)界限。那麽,網站做(zuò)友情連接的(de)過程,先和(hé)熟悉的(de)人,熟悉的(de)行業進行交流、研究,認真的(de)聽取他們的(de)意見,然後根據自(zì)己的(de)領悟,去(qù)探索新的(de)網絡資源,這樣才能不斷讓網站優化工作變得熟練起來。  網站權重優化到2的(de)時候,對互聯網的(de)營銷手段有了一(yī)個大概了解,這才算是最重要的(de),也為(wèi)網站繼續“升級”,為(wèi)以後複雜多種方式組合優化打下堅實的(de)基礎。畢竟,一(yī)個網站想要快速發展,懂得越多,做(zuò)的(de)越快,才能迅速見到效果!

  • 網頁标題是一(yī)成不變的(de)嗎 如(rú)果修改了會影響到網站排名嗎

     談到網站優化,有的(de)網站在優化一(yī)定程度的(de)時候,通常有一(yī)種無力感,就是再怎麽努力,也很難超越競争對手,這個時候,是咬緊牙關繼續緊跟,還是推倒了重新再來。有時候放棄是一(yī)種不得已的(de)選擇,而對于網站優化來說,因為(wèi)互聯網變化快,調整網站營銷推廣策略,并非不是一(yī)件好事。談到網站的(de)優化,很少人會對網頁标題動心思,一(yī)方面,在網站建設階段,基本上就把網頁标題做(zuò)好了,而且網頁标題就像給自(zì)己制定的(de)戰略目标,改動标題則是一(yī)種失敗的(de)表現,另一(yī)方面,修改網頁标題,在SEO優化過程中,是不是會讓搜索引擎感到“不舒服”,甚至會判斷網站存在“作弊”行為(wèi),從而導緻網站被降權的(de)可(kě)能呢(ne)?正是因為(wèi)這些考慮,讓站長(cháng)在網頁标題上的(de)改動特别慎重,甚至是不到萬不得已堅決不修改網頁标題。  大家知道(dào),在浏覽一(yī)個網頁時,通過浏覽器頂端的(de)藍色顯示條出現的(de)信息就是“網頁标題”。網頁标題是對一(yī)個網頁的(de)高(gāo)度概括,一(yī)般來說,網站首頁的(de)标題就是網站的(de)正式名稱。很多網站的(de)首頁标題較長(cháng),除了網站名稱(公司名稱)之外,還有網站相關業務之類的(de)關鍵詞,這主要是為(wèi)了在搜索引擎檢索結果中獲得排名優勢而考慮的(de),也屬于正常的(de)搜索引擎優化方法。  我們通常再搜索引擎看到對網站的(de)描述主要有這三個個部分:網站标題、網站關鍵詞、網站描述。在搜索引擎上如(rú)果網站被收錄,通常也會顯示這三方面的(de)內(nèi)容。網頁标題代表的(de)網站的(de)名稱,而其他關鍵詞和(hé)網站描述都是圍繞标題進行擴展的(de),一(yī)般情況下,一(yī)個不知名的(de)網站在網頁标題描述上,除了品牌名字之外,還要加上一(yī)大堆關鍵詞,因為(wèi),你的(de)品牌知名度很小,隻有通過目标關鍵詞獲得用戶關注,關鍵詞的(de)熱度大于企業品牌的(de)時候,網頁标題上加上一(yī)大堆關鍵詞,顯然是不可(kě)或缺的(de)。  關鍵詞并不是想象中那麽好,而且因為(wèi)對競争對手估計不足,一(yī)些熱詞幾乎根本就做(zuò)不上去(qù),這個時候,就要想着用其他的(de)詞獲得流量了,修改網頁标題雖然犯了兵(bīng)家的(de)大忌,可(kě)是,在網站優化發展到瓶頸階段的(de)時候,這又是一(yī)個可(kě)行的(de)方式之一(yī)。  以企業網站為(wèi)例,在線下,可(kě)能以某種産品為(wèi)主打,而到了互聯網,這個主打産品銷售疲軟,反而另一(yī)個産品獲得不菲的(de)關注度,同時,企業生産的(de)産品也是有周期性的(de),那麽,在網站标題的(de)描述上,就可(kě)能存在變動。  基于以上兩個原因,為(wèi)了網站發展,為(wèi)了有利于網站優化,網頁标題的(de)修改是一(yī)件不可(kě)避免的(de)事情,那麽,修改後的(de)網頁标題怎樣才能不會受到波動呢(ne)?  如(rú)果網站是新站的(de)話,建議不要修改标題,先保持一(yī)段時間,新站建議不要刻意拉排名。  如(rú)果網站運營有一(yī)定的(de)時間,超過2年(nián)以上,修改一(yī)次标題并不會造成什麽影響,但是也不要頻繁改來改去(qù)。  如(rú)果你确實修改改标題,請找個不要跟原标題差距太多的(de)。網站修改标題,前提是對原有網站的(de)優化,而不是網站要“改頭換面”。  如(rú)果你碰到了最不幸的(de)情況,就是修改标題導緻排名下降,那請你不要灰心,隻要搜索引擎重新收錄,考核一(yī)段時間,還是會恢複過來了。seo心态是很重要的(de)。  有一(yī)些站長(cháng)朋(péng)友,還是對網站修改标題感到忐忑,那麽,不妨在做(zuò)标題修改的(de)時候,做(zuò)一(yī)些補救措施,比如(rú)說,在網站修改标題後,加大網站內(nèi)容更新力度,加大網站外鏈發布頻率,如(rú)果修改标題的(de)跨度比較大的(de)話,那麽現有的(de)關鍵詞和(hé)要改的(de)主關鍵詞刷相關性,那麽搜索引擎就會判斷你修改的(de)幅度不是特别大,會大大的(de)縮短(duǎn)識别網站的(de)時間。  顯然,網站優化要善于靈活運用,不要過于固守,而當通過一(yī)些改動,或許會在網站運營困難的(de)時候起到峰回路轉的(de)效果,當然,也不能過于盲動,因為(wèi)很多站長(cháng)在修改網頁标題的(de)時候,都會有一(yī)些擔心,那麽,把想到的(de)一(yī)一(yī)羅列出來,找好對策,然後再去(qù)執行,這樣的(de)網站運營策略應該不會犯太大的(de)錯誤!

  • SEO如(rú)何布局長(cháng)尾關鍵詞 SEO長(cháng)尾關鍵詞布局思路簡析

    長(cháng)尾關鍵詞布局非常重要,因為(wèi)涉及到網站後期優化效果。布局長(cháng)尾詞的(de)第一(yī)點是挖掘和(hé)篩選長(cháng)尾詞,然後根據長(cháng)尾詞的(de)競争度以及相關性布局在網站的(de)欄目頁和(hé)內(nèi)頁。內(nèi)頁的(de)長(cháng)尾詞圍繞欄目頁的(de)競争度大一(yī)點的(de)短(duǎn)詞來布局,不同欄目的(de)長(cháng)尾詞不能互相交叉以及重疊。  問:SEO如(rú)何布局長(cháng)尾關鍵詞?  請問如(rú)何給網站做(zuò)長(cháng)尾關鍵詞布局?關鍵詞可(kě)以挖掘出很多,但不知道(dào)怎麽把這些關鍵詞使用上。1什麽是長(cháng)尾關鍵詞?  2006年(nián)的(de)時候,營銷管理(lǐ)業界有一(yī)個新的(de)理(lǐ)論,叫長(cháng)尾理(lǐ)論。長(cháng)尾理(lǐ)論不同于二八定律。長(cháng)尾理(lǐ)論一(yī)出現,就首先得到了SEO業內(nèi)的(de)高(gāo)度認同。直接借用了長(cháng)尾這個名詞來定義領域裏面比較泛化而大量的(de)關鍵詞,統稱為(wèi)長(cháng)尾關鍵詞。  2長(cháng)尾理(lǐ)論是互聯網時代的(de)獨有現象  馬雲之前有個理(lǐ)論,說我的(de)産品規模要翻幾倍,增加一(yī)些服務器就好了。沃爾瑪要再建多少多少店面。因為(wèi)內(nèi)容和(hé)産品的(de)數字化後,信息存儲方便。搜索引擎的(de)出現,讓長(cháng)尾理(lǐ)論得以體現出來。所以,對網站來說也是內(nèi)容越多越好。內(nèi)容多,就意味着總會有一(yī)些內(nèi)容适合這類需求的(de)用戶。  3長(cháng)尾關鍵詞等于做(zuò)內(nèi)容  沒有內(nèi)容頁面來承載關鍵詞,那關鍵詞就無法部署,這是要解決關鍵詞落地(dì)的(de)問題。關鍵詞是無法脫離(lí)內(nèi)容來談的(de)。所以,做(zuò)長(cháng)尾關鍵詞,本質上就是等于要做(zuò)內(nèi)容。如(rú)果網站沒有幾個做(zuò)內(nèi)容的(de)策略方法,是很難把長(cháng)尾關鍵詞策略部署到站內(nèi)去(qù)的(de)。  4布局長(cháng)尾關鍵詞常見方法  做(zuò)聚合,是做(zuò)長(cháng)尾關鍵詞策略的(de)常用方法。但聚合的(de)頁面質量不好的(de)話,也會影響長(cháng)尾策略效果的(de)發揮。長(cháng)尾關鍵詞因為(wèi)關鍵詞量大的(de)原因,所以隻能考慮那種能夠産生大量內(nèi)容的(de)方法來布局長(cháng)尾關鍵詞。  5長(cháng)尾關鍵詞的(de)布局是SEO工作的(de)核心  把長(cháng)尾關鍵詞布局得當,可(kě)以說是SEO工作的(de)最重要的(de)核心一(yī)點之一(yī)了。這個問題要解決并不簡單。因為(wèi)解決的(de)好,就等于網站能夠長(cháng)期生産出高(gāo)質量的(de)內(nèi)容。所以,這個問題如(rú)何解決的(de)更好,是值得SEO人員好好思考的(de)問題。  我的(de)觀點  不做(zuò)長(cháng)尾策略,網站的(de)SEO效果終歸有限。所以,如(rú)何部署長(cháng)尾關鍵詞策略,就是每個網站要發展起來過程中必須要解決的(de)問題。

  • 如(rú)何辨别非自(zì)然鏈接 三種識别非自(zì)然性外鏈的(de)方法解答

     方法一(yī):單一(yī)的(de)描文本化  當我們在建立網站外鏈的(de)時候發現有些外鏈的(de)錨文本非常單一(yī),澤敏seo博客過調查和(hé)分析後得出這就是非自(zì)然外鏈,其實這種做(zuò)法不管是對搜索引擎還是用戶都沒有幫助的(de),所以這也是屬于優化過度的(de)一(yī)種做(zuò)法。而且,像站外的(de)外鏈自(zì)然性按百度的(de)理(lǐ)解應該是用戶幫你發的(de)才對,這時候的(de)錨文本鏈接,我們是不能控制的(de),所以需要進行及時的(de)處理(lǐ),如(rú)果你的(de)外鏈錨文本卻是這種單一(yī)的(de),這很容易就能說明你是人為(wèi)發的(de),這是有違自(zì)然性的(de)。應該采取相應的(de)措施進行處理(lǐ),這樣才能促進網站鏈接質量的(de)提高(gāo)。  方法二:相關性不強的(de)鏈接  我們都知道(dào)判斷一(yī)個網站的(de)質量标準是網站與內(nèi)容、鏈接之間的(de)相關性,同時,這對于網站的(de)建設也是有很大影響的(de)。因此,如(rú)果我們在網站鏈接中發現有些鏈接的(de)相關程度非常的(de)低(dī),那麽這個鏈接就是非自(zì)然鏈接,對于網站的(de)發展是不利的(de)。也是我們需要删除掉的(de)鏈接。所以我們在添加鏈接的(de)時候一(yī)定要注重網站與鏈接之間的(de)相關性,這樣才能提高(gāo)網站鏈接的(de)整體質量。  方法三:鏈接的(de)大起大落  我們知道(dào)發布外鏈需要合理(lǐ)、平衡,所以對于外鏈發布要求也是非常高(gāo)的(de),如(rú)果我們今天你的(de)外鏈是一(yī)百個,明天是一(yī)百一(yī)十個,那你的(de)外鏈增長(cháng)率就是百分之十。你的(de)外鏈增長(cháng)的(de)趨勢是平穩的(de),也是合理(lǐ)的(de)。假如(rú)你今天一(yī)百個,明天你心情一(yī)激動就發了兩百個,後天休息一(yī)下,一(yī)個沒發。像這種起伏很大的(de)情況,搜索引擎會認為(wèi)不正常,這樣的(de)話,搜索引擎就會認為(wèi)這樣的(de)鏈接就是不正常的(de),是非自(zì)然鏈接,所以,我們就應該要在發布外鏈的(de)時候需要合理(lǐ)的(de)進行發布,這樣才能促進網站鏈接健康發展。  以上三種方法就是我總結出來的(de)關于識别非自(zì)然性鏈接的(de)方法,希望大家能夠提高(gāo)鏈接識别能力,提高(gāo)網站鏈接質量,讓網站鏈接優化之路更加寬闊。

  • 目前網站怎麽優化才好?淺析當下網站優化的(de)新思維新方法

     1、不要老做(zuò)傳統企業站,營銷型網站更受搜索引擎喜歡。  傳統的(de)網站模式都一(yī)樣,缺乏新意,已經引起人們的(de)視(shì)覺疲勞。采用合适的(de)圖文形式,形象展示産品特色和(hé)優勢的(de)營銷型網站,更能吸引大家的(de)眼球。  2、網站內(nèi)頁細節要升級,要慢慢編制內(nèi)部鏈接網。  新聞列表頁裏盡量讀取一(yī)部分內(nèi)容簡介出來,以前的(de)企業站大部分都是直接展示出新聞标題列表;公司簡介和(hé)聯系我們等頁面,側邊欄最好設置點新聞推薦等欄目,避免內(nèi)部鏈接過少;産品詳情頁盡量側邊欄展示一(yī)部分産品推薦,增加産品的(de)豐富度;新聞詳情頁下面,最好設 置相關閱讀等,增加文章(zhāng)連貫性。總而言之,內(nèi)部內(nèi)容要編制成網。  3、網站關鍵詞并非不是越少越好做(zuò)。  很多人有誤區,關鍵詞設置的(de)越少,網站分配給這個關鍵詞的(de)權重越高(gāo),這個詞越容易上來,有一(yī)定道(dào)理(lǐ),但是實際操作中這 種現象不明顯。關鍵詞的(de)設置要遵循的(de)原則是,關鍵詞要有相關性,盡量多設置,十幾個都可(kě)以的(de)。然後文章(zhāng)信息量盡量大,盡量高(gāo)質量,體現出這些關鍵詞的(de)密度 來,關鍵詞都會此起彼伏的(de)上來,先後帶動,互相影響,更好的(de)達到優化效果。  4、外鏈的(de)作用小了,但是反鏈很有用。  外鏈現在是輔助作用,優質的(de)外鏈平台越來越少,做(zuò)好內(nèi)鏈顯得更重要。盡量多的(de)做(zuò)一(yī)些優質友情鏈接,對網站很有好處。  5、優質內(nèi)鏈和(hé)流量起到核心作用。  內(nèi)鏈要咋做(zuò),首先內(nèi)容要優質,盡量僞原創和(hé)原創,就算粘貼複制也盡量插入點圖片,修改一(yī)下。一(yī)天四五條是正确的(de)做(zuò)法,做(zuò)的(de)好的(de)站一(yī)天少不了四條新聞,你再原創沒有數量也是白搭的(de)。流量不用說了,正規的(de)引流一(yī)下必不可(kě)少。

  • 網站死鏈怎麽處理(lǐ)?SEO基礎知識之死鏈的(de)産生及其處理(lǐ)技巧解答

    在網站日常SEO優化運營過程中,運營者難免會遇到各種問題,其中,死鏈就是其中之一(yī)。死鏈的(de)産生,對于網站在搜索引擎中的(de)收錄是不友好的(de),特别是當網站存在大量死鏈的(de)情況下,會讓整個網站體驗特别不好。下面,江蘇蘇州SEO吳美福就要分享關于死鏈的(de)産生及其處理(lǐ)技巧,以讓大家的(de)網站優化更加高(gāo)效。  什麽是死鏈  首先我們先來理(lǐ)解什麽是死鏈。這個概念其實很好理(lǐ)解。每個網站都是有絕對URL路徑,當一(yī)個鏈接打不開、報錯時,我們稱之為(wèi)死鏈。當該鏈接打不開時,返回狀态碼為(wèi)404的(de)頁面。大家可(kě)以想想,當用戶點擊一(yī)個鏈接,最終的(de)結果是打不開,那麽用戶關閉網頁、跳出率肯定會增加,從而間接影響到搜索引擎對網站的(de)收錄、排名以及整站質量。  死鏈産生的(de)因素  所以,網站優化運營中,要定期地(dì)對死鏈進行排查。那麽,死鏈産生的(de)因素有哪些呢(ne)?主要有:1、服務器報錯;2、頁面删除;3、網站轉移,網址出錯;4、文章(zhāng)內(nèi)容發生路徑轉移;5、人為(wèi)的(de)輸錯了網址等等,這些都可(kě)能産生死鏈。筆(bǐ)者尤為(wèi)要強調的(de)是,如(rú)果網站用的(de)是一(yī)些第三方模闆制作的(de)模闆型網站,往往很容易産生死鏈。所以,在SEO建站優化之初,就要考慮好,用模闆建站,還是個性定制網站。建議不要貪圖便宜而選擇模闆,否則後續進行網站優化特别麻煩。因為(wèi)很多模闆公司,根本不提供源代碼,也不提供代碼修改。大家要切記。  死鏈的(de)處理(lǐ)技巧  死鏈的(de)處理(lǐ)技巧有很多,這裏筆(bǐ)者就列出幾大比較容易掌握、簡單易執行的(de)方法。  1、制作404頁面,将死鏈跳轉至錯誤頁面,讓搜索引擎蜘蛛知曉這是一(yī)個死鏈。至于404頁面如(rú)果制作,大家可(kě)以看看我的(de)博客內(nèi)容,裏面之前有做(zuò)專門介紹。  2、将死鏈提交給(百度、360等)站長(cháng)平台,大家可(kě)以搜索,并注冊一(yī)個賬号,用死鏈檢查工具檢查出來,然後放在txt文件裏面,提交至站長(cháng)平台。  3、還有一(yī)種比較笨的(de)方法,就是就是逐個把死鏈的(de)地(dì)址改過來,當然這個效率會比較低(dī),尤其是當有成千上萬個死鏈的(de)時候,你想想,這要改到何年(nián)馬月?所以,還是運用前面兩種方法靠譜。  4、保證服務器運行流暢、穩定,不要随便改動網站目錄。  看完上面關于死鏈的(de)産生及其處理(lǐ)技巧,相信SEO朋(péng)友們有個初步印象了,如(rú)果還有什麽不了解的(de)話,歡迎加我的(de)聯系方式進行交流哦。