<dd id="oaqe7"><track id="oaqe7"></track></dd>
  • <code id="oaqe7"><listing id="oaqe7"><nobr id="oaqe7"></nobr></listing></code>

  • 如果您需要幫助

    點擊刷新

    我們將提供專業的咨詢與合理的報價

    提交成功!我們將盡快與您取得聯系

    這里有你想了解的網站建設內幕,
    知彼知己者,百戰不殆!

    Here's what you want to know about website construction,
    Bosom friend, a hundred battles!

    產品經理須知的“技術黑話”

    本文作者:網絡  發布于2018-02-28  分類:[產品要訣]

    28

    2018-02

    閱讀量:3184

    點贊:0

    【文章摘要】文章梳理了一些技術術語,以比較通俗的方式來解釋和介紹,希望對于非技術背景的產品經理們有所幫助。

    產品經理在實際工作中經常會遇到一些“技術黑話”,這些技術語言讓非技術背景的產品經理們經常不知所云,帶來了一些溝通和理解的問題,這里梳理了一些但不全的技術術語,以比較通俗的方式來解釋和介紹,希望對于非技術背景的產品經理們有所幫助。

    1. 類、對象、抽象和實例

    在技術的世界里,有一類編程語言叫面向對象編程,例如典型的面向對象語言Java。說到面向對象,不得不提的幾個概念是類、對象、抽象和實例。這些技術術語會經常在工程師的討論中出現,非技術背景的產品經理該如何理解這些概念呢?接下來具體介紹這些技術術語分別代表什么意思。

    首先介紹第一個概念“抽象”。我們說某一個概念聽起來非常抽象的意思是不具體的事物,對應的反義詞是具象。抽象在技術術語里的意思是提煉出一個通用模板,然后基于模板做具象化的實現。例如,在現實世界中關于人的分類,會有男人、女人、老人和小孩,如果將這個具體的分類抽象出一個類別,得到的抽象結果就是人。所以,人就是一個抽象出來的分類,也就是技術術語里面的“類”。在編程語言的世界中,通過程序語言描述現實世界中的事物時,使用的就是抽象的方法,將一類事物抽象成一個類,就得出了程序世界中的一個基本模型。

    有了基本模型后,可以基于抽象出來的模型(類)產生很多具體的實例,也就是基于類實例化的具體對象。例如,將“人”這個類實例化為兩個對象,分別是男人和女人,也可以實例化為其他對象,例如小孩和老人,甚至可以實例化為具體的人,例如Maggie和Ryan。這一系列的過程如圖所示。

    從上述流程中可以看出,工程師做的工作就是根據產品需求將現實世界中的事物抽象成程序世界中的一個個類,然后根據需要實例化很多對象,不同對象間通過相互協作完成一個具體的產品功能。

    非技術背景的產品經理在工作中也可以試著以這種技術思維的方式定義產品需求,先從產品角色開始抽象出具體的類,然后分別定義這些角色在整個產品流程中需要完成哪些關鍵動作,從而定義出具體的對象。這樣既有利于明確需求和用戶角色,也能培養非技術背景產品經理的技術思維。

    2. 工程師口中的“打印”是什么意思

    在與工程師的配合中,你一定聽說過“打印”這個詞,通常場景是在調試產品問題或進行開發測試時。工程師口中的“打印”和我們使用打印機打印文件究竟有什么區別呢?對非技術背景的產品經理而言,聽到這個既熟悉又陌生的詞匯時,該如何理解呢?

    首先,“打印”這個詞在大多數場景下是指我們將文件或圖片通過打印機從計算機世界輸出到現實世界中,意味著一種結果的輸出。工程師口中的“打印”一詞,表示的是一種結果輸出,只是這種結果并不會輸出到現實世界,只是將程序運行的結果“打印”到命令控制臺上。

    工程師在編寫程序代碼時,需要不斷測試程序片段運行是否正確,例如編寫一個加法的程序片段,當代碼編寫完成后,工程師需要測試加法程序是否運行正確,所以會輸入兩個參數然后查看程序的運行結果,程序運行結果輸出到命令控制臺的過程就叫作“打印”。

    工程師在調試問題程序的過程中,也會經常用到打印技術,將每一塊代碼的執行結果輸出到控制臺,用來查看具體問題出在哪個環節。因為代碼的運行過程是不可見的,所以通過“打印”的方式能讓代碼的運行過程和結果可視化。

    3. 工程師口中的“寫死”是什么意思

    在與工程師討論產品需求或者工程師相互討論技術方案時,經常會聽到“寫死”這個術語?!皩懰馈边@個詞嚴格來說不算一個標準的技術術語,而是工程師用來描述一種技術實現方案的說法。

    例如,要設計一個下拉選擇框用來切換不同的城市,這個產品需求在技術層面有兩種實現方案,第一種是將城市數據放在服務器端,客戶端通過請求數據接口將城市數據獲取回來再顯示在下拉列表中。第二種是將城市列表數據存放在客戶端,客戶端從本地讀取城市列表并展示在下拉列表中。

    第一種方式是一種相對靈活的方案,當城市數據有變化時,只需要調整服務端的數據內容即可,客戶端不用做任何修改,但需要開發一個專門的數據接口獲取這部分數據。第二種方式就是工程師所說的“寫死”,將數據集寫死在本地,這樣可以省去數據接口的開發,也能快速實現想要的效果。

    這兩種不同的實現方式在很多產品設計環節中都會體現,例如一些客戶端的文案或者圖片會經常變化,這時就不太適合將需要變化的數據“寫死”在本地,合理的方案是將變化的數據存儲在服務端,客戶端通過數據接口靈活地獲取這部分數據。

    當然,也不是所有的數據都不適合“寫死”在本地,例如性別數據,無非就是男和女,不必專門為了它開發一個數據接口,我們得根據具體需求和使用場景判斷哪些數據應該寫死。

    4. 架構和框架

    架構和框架是工程師經常提及的兩個技術概念,另外,在技術職能中還有架構師這一崗位。對非技術背景的產品經理而言,該如何理解和區分這兩個技術概念呢?通過一個例子就可以非常直觀地理解二者。在修建房屋時,會有一個總設計師負責設計整體藍圖和規劃,這個工作可以理解為是架構師的工作,而房屋設計結構和規劃本身是房屋的架構。

    架構工作完成后就進入具體的施工環節,施工時可以選擇從頭開始一磚一瓦的加,也可以使用現有的房屋框架,基于成熟的房屋框架一層一層累加,后期只需要做整合和裝修工作即可使用現成的框架,既能降低施工難度,也能提高施工效率。

    在技術領域,架構這個詞是對系統的結構設計和規劃,通常由經驗比較豐富的架構師或者高級工程師完成,架構的好壞直接決定了后期系統的穩定性和可擴展性??蚣軇t是指利用現有的成熟技術框架簡化開發過程,例如針對企業級應用的開發框架J2EE,就提供了很多現成的組件來降低開發的復雜度,如今很多系統的開發都會使用一些比較成熟的開發框架替代純自主開發,這樣既能保證系統質量,也能提高開發效率。

    5.  控件和組件

    任何一個網頁或者App產品都是由大量的輸入框、按鈕、文本展示框構成的,產品中的這些最小界面元素組成單元就叫作控件。一個按鈕是一個控件,一個輸入框也是一個控件。如圖所示為幾個基本控件(輸入框、文本展示框和按鈕)。

    組件是一種功能更全面的升級版控件,或者可以把組件理解成多個控件的組合。例如,Android和iOS開發中經常使用的Tab組件,如圖所示。

    大部分產品都設計為底部有幾個模塊,點擊不同的底部按鈕可以在不同的模塊之間切換,實現展示和切換的就是Tab組件,它包含了頁面容器展示、按鈕等一系列功能,將這些細粒度的控件組合到一起來完成復雜功能,這就是組件。

    6. 進程與線程

    工作中經常會聽到工程師討論進程和線程。例如,涉及一些復雜功能的技術實現方案時,工程師會說現在已經同時開了幾個線程在處理。進程和線程究竟是什么?它們之間有什么關系呢?本節主要介紹進程和線程的概念。

    當我們點擊手機屏幕上的一個App按鈕(啟動一個產品)時,系統會為這個產品的運行分配系統資源(例如CPU和存儲空間),分配好資源后,產品會在這個資源區域運行應用程序。這里所說的運行應用程序就是進程,也可以理解為每一個正在運行的App都是一個進程。

    例如,我們在手機上使用微信或者微博,就有分別屬于微信和微博的系統進程。一旦關閉應用程序或因為系統資源緊張而自動關閉在后臺運行的應用程序,進程就會被終止,同時對應的進程所占用的系統資源也會被釋放。

    相比于進程,線程是一個更小的執行單元,一個運行中的應用程序是一個進程,一個進程中可以存在多個線程,每一個子任務都可以理解為是運行中的一個線程。我們以微博為例,運行中的微博是一個系統進程,可以上傳照片發布微博,也可以上傳視頻發布微博。

    用戶上傳照片的任務在一個獨立的線程中運行,上傳視頻的任務也在一個獨立的線程中運行,并且這兩個任務可以同時運行互不影響,這種方式叫異步線程處理,即可以并行互不干擾完成各自的子任務。當然,還有一種線程處理方式叫同步線程,即子任務是按照一定的順序完成的。

    產品之所以能同時完成很多功能,就是因為線程的存在,尤其是涉及需要網絡請求的一些功能時,例如用戶在微信中發布朋友圈后有可能立馬去刷新朋友圈,這時可能剛剛發布的內容還沒有上傳成功,所以在技術實現時會用兩個線程分別處理發布和獲取新信息的子任務。這樣做既能保證用戶體驗,也能保證系統資源被合理地分配和利用。

    7. 什么是“腳本”

    “腳本”這個詞在工程師口中出現的頻率比較高。當需要對數據庫進行批量處理時,工程師會說“跑一個腳本統一處理一下”;當需要查詢某一數據報表時,工程師會說“用一個腳本批量查詢”。

    腳本也是一種被計算機執行的程序,為什么叫腳本呢?可以把腳本理解成拍戲用的劇本,劇本里會按照角色及對白把要拍的戲清晰地列出來,導演和演員會嚴格按照劇本表演。腳本就是一種面向計算機的劇本,是一個可被計算機執行的文件,文件里是一系列計算機指令,這些指令會按照順序被計算機解析并執行。

    例如需要對數據庫中所有用戶數據添加一個數據項,一個一個添加顯然是不可能的,通過一個批量操作一次性地完成是效率最高的做法,此時就會用到腳本。通過腳本寫一個新增數據項的命令,然后執行腳本,所有的數據就會被批量執行同樣的操作。圖14-4所示是在Mac電腦環境下使用命令行執行的一個查詢某一文件夾下所有文件的命令。

    在第3行執行了一個名為“ls”的命令,這個命令的作用是列出當前文件夾下的所有文件或子文件夾的名稱,第4行到第5行是當前文件夾下所有文件或子文件夾的名稱。如果把“ls”命令單獨寫成一個文件,這個包含一條指令的文件就是一個腳本文件。實際應用中,腳本文件通常會由多個指令組合而成,經過計算機的解析和執行來完成一個復雜的處理任務。

    8. 同步處理和異步處理

    同步和異步是開發技術中的兩個概念,計算機通過解析和運行程序完成相應的操作。在程序執行過程中會涉及同時處理多個任務或者同一時間只處理一個任務的情況。在前面的章節中我們介紹過什么是進程和線程,一個進程中包含多個執行任務的線程。

    以用戶登錄為例,登錄任務是在一個登錄線程中執行的,登錄任務執行過程中除了驗證用戶名和密碼是否正確外,還需要處理其他子任務,例如從服務器獲取用戶信息,更新本地緩存信息等。這些子任務通常會在新開辟的子線程里執行。執行登錄的線程可以稱為主線程,執行獲取用戶信息的線程稱為子線程。

    在一個登錄操作過程中分別執行兩個任務,這個過程就叫作異步處理。異步處理不會造成線程阻塞,相當于各自處理各自的任務。如果所有的任務都在一個線程中處理,那就會出現資源占用過多和響應時間過長的情況,例如我們在使用一些安卓APP時偶爾會出現應用程序閃退的情況,這有可能是因為出現了線程死鎖。

    同步處理比較好理解,就是同一時間只執行一個簡單任務,任務處理完后再執行第二個任務,同步處理適用于一些順序執行的任務,例如流水線處理就是典型的同步處理,流水線上的一個環節處理完成后再處理下一個環節的任務。

    點贊

    標簽 : 
    • 產品要訣
    • 產品設計

    相關推薦

    010-62692880 聯系我們
    北京網站建設|北京網站設計-20年網站建設公司【東方網景】
    7x24客服熱線
    全國7x24小時客服熱線
    北京網站建設|北京網站設計-20年網站建設公司【東方網景】
    產品全
    專業市場策劃團隊
    北京網站建設|北京網站設計-20年網站建設公司【東方網景】
    收費優質
    價格優惠
    北京網站建設|北京網站設計-20年網站建設公司【東方網景】
    優質服務
    擁有百人團隊服務
    北京網站建設|北京網站設計-20年網站建設公司【東方網景】
    系統穩
    先進穩定的技術

    北京市海淀區知春路6號錦秋國際大廈1407

    国产特黄AV

    <dd id="oaqe7"><track id="oaqe7"></track></dd>
  • <code id="oaqe7"><listing id="oaqe7"><nobr id="oaqe7"></nobr></listing></code>