extjs曲线数据如何从后端获取_B端产品经理应了解的技术知识(上)
互聯(lián)網(wǎng)行業(yè)發(fā)展這么多年,產(chǎn)品經(jīng)理這個行業(yè)也發(fā)展了多年,現(xiàn)在很多人都已形成了共識:產(chǎn)品經(jīng)理需要懂技術(shù)!那么,作為B端產(chǎn)品經(jīng)理,究竟需要掌握哪些技術(shù)知識呢?掌握到什么程度才可以呢?接下來,我們?yōu)榇蠹疫M行技術(shù)體系的梳理,聊一聊作為一個B端產(chǎn)品經(jīng)理需要具備的技術(shù)知識。
理解編程語言。對于沒有接觸過的人來講,編程,一直都是一件貌似高深莫測的事兒,看著整屏的代碼,滿臉的問號。要想學(xué)習(xí),也是需要付出大量的時間和精力的,要想學(xué)好,更是得有所悟性。
有句話說得好:世上無難事,只要肯攀登!若是要編程,寫出可運行的高效率代碼,那確非易事,但理解程序設(shè)計基本邏輯,例如什么是函數(shù)、返回值、循環(huán)、調(diào)用、編譯、部署、發(fā)布等基本原理,是可行的!
程序的世界神秘而復(fù)雜,程序語言更是種類繁多。其實,現(xiàn)在大學(xué)里,計算機相關(guān)專業(yè)的教學(xué)內(nèi)容就挺有參考意義的。從主要的后端開發(fā)語言到前端開發(fā)語言,從數(shù)據(jù)結(jié)構(gòu)到算法程式,從計算機網(wǎng)絡(luò)到數(shù)據(jù)庫系統(tǒng)等,這些都是引領(lǐng)新人入門,快速體系化的了解計算機程序世界的課程。
從編程語言說起吧!
大學(xué)計算機相關(guān)專業(yè)的入門語言教學(xué),一般選擇C和java,因為C是高級程序語言之“母”,Java則是最近市場發(fā)展非常好的語言。作為入門學(xué)習(xí),可以從這兩門語言入手。編程語言都是相通的,學(xué)習(xí)了一門主要語言,了解了程序語言的設(shè)計邏輯、語法和思想之后,可以再了解一些輕量級的,工作中可能會接觸的編程語言。如前端語言的Html,CSS,腳本語言Python、Java Script等。這些都能在工作中加深你對不同研發(fā)崗位設(shè)計語言的理解,有些也會幫助到你的工作,比如使用Python爬取網(wǎng)頁內(nèi)容進行數(shù)據(jù)分析。
數(shù)據(jù)庫相關(guān)知識
談到數(shù)據(jù)庫,就得提到數(shù)據(jù)庫的不同類型,數(shù)據(jù)系統(tǒng)的組成部分,以及類似主鍵、外鍵等的內(nèi)容,這些內(nèi)容不在此贅述,感興趣的,可以網(wǎng)上查找相關(guān)資料或者翻閱數(shù)據(jù)庫系統(tǒng)相關(guān)書籍了解。
這里,想重點談一談,作為非技術(shù)的產(chǎn)品人員,關(guān)于數(shù)據(jù)庫,最應(yīng)該掌握的知識,就是SQL語言。SQL語言是關(guān)系型數(shù)據(jù)庫的處理語言(現(xiàn)在有NOSQL等非關(guān)系型數(shù)據(jù)庫)。掌握SQL在實際工作中是非常有用的。例如,在做數(shù)據(jù)分析時,常常需要從數(shù)據(jù)庫導(dǎo)出數(shù)據(jù)來分析,如果不會寫SQL語句,就需要每次都求助開發(fā)人員,效率太低;其次對于復(fù)雜的數(shù)據(jù)處理邏輯,如果不會用SQL語句進行預(yù)處理,后續(xù)的數(shù)據(jù)處理將變得非常麻煩。學(xué)習(xí)使用SQL,首先需要理解數(shù)據(jù)庫及表結(jié)構(gòu),這對于抽象建模思維的培養(yǎng)非常有幫助。
針對SQL的學(xué)習(xí),推薦以下兩個學(xué)習(xí)資源。
· www.sqlteaching.com:該網(wǎng)站是目前我接觸過的最好的SQL學(xué)習(xí)資源。網(wǎng)站通過一個個案例講解了SQL中的每個概念和語法,并且提供了非常強大的在線練習(xí)功能,這對學(xué)習(xí)SQL至關(guān)重要。雖然是英文網(wǎng)站,但是講解深入淺出,很容易理解。你只需要耐心學(xué)習(xí)幾個小時,將網(wǎng)站的內(nèi)容閱讀并實踐一遍,就可以掌握SQL的所有核心知識。
· www.w3school.com.cn/sql:w3school是老牌的Web技術(shù)學(xué)習(xí)網(wǎng)站,其中對SQL的講解也很通俗易懂,網(wǎng)站是中文的。w3school提供了豐富的Web技術(shù)知識學(xué)習(xí)素材,包括HTML、JavaScript、CSS等,內(nèi)容均簡明扼要,是非常好的入門學(xué)習(xí)資料,建議產(chǎn)品經(jīng)理通讀該網(wǎng)站內(nèi)容。
數(shù)據(jù)結(jié)構(gòu)相關(guān)知識
數(shù)據(jù)結(jié)構(gòu)就是研究數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及它們之間相互關(guān)系,并對這種結(jié)構(gòu)定義相應(yīng)的運算,而且確保經(jīng)過這些運算后所得到的新結(jié)構(gòu)仍然是原來的結(jié)構(gòu)類型。
實際工作中,數(shù)據(jù)結(jié)構(gòu)可以說是研發(fā)工程師能否寫出優(yōu)秀算法的基礎(chǔ),而能否寫出優(yōu)秀算法,則是區(qū)別一個研發(fā)工程師能否登堂入室的重要評判指標!數(shù)據(jù)結(jié)構(gòu)基本知識大家可以自行去了解,比如時間復(fù)雜度,空間復(fù)雜度,順序結(jié)構(gòu),鏈式結(jié)構(gòu),索引結(jié)構(gòu),哈希結(jié)構(gòu),線性表,棧,隊列,串,數(shù)組,廣義表,二叉樹,圖等知識。
了解數(shù)據(jù)結(jié)構(gòu)有何好處,一個不懂數(shù)據(jù)結(jié)構(gòu)的研發(fā)工程師,寫出來的代碼,或許能實現(xiàn)某個能力,但是運行效率太低,而且代碼冗余度高,這不能是一份合格的代碼。一份合格的代碼,它的數(shù)據(jù)結(jié)構(gòu)一定是足夠精簡的,運行效率普遍較高,空間復(fù)雜度和時間復(fù)雜度都很低(當然也有時間換空間,或空間換時間的做法)。
計算機網(wǎng)絡(luò)相關(guān)知識
B端產(chǎn)品經(jīng)理需要廣泛學(xué)習(xí)計算機相關(guān)的基礎(chǔ)知識,例如網(wǎng)絡(luò)與通信原理、操作系統(tǒng)原理、微機原理等,至少要理解TCP/IP協(xié)議、UDP協(xié)議分別是什么,二進制、十六進制的運算法則,字節(jié)和字的長度概念,對稱密鑰密碼體系和非對稱密鑰密碼體系的區(qū)別,等等。
如果對這些概念沒有基本認知,那么將很難理解為什么HTTPS比HTTP安全,為什么有時候需要通過二進制來控制標記位。這些常識都是軟件設(shè)計隨時會用到的基本知識,不僅在技術(shù)方案設(shè)計中會涉及,在產(chǎn)品方案設(shè)計時也會涉及。
計算機技術(shù)涉及的知識面非常寬泛,從編程語言到數(shù)據(jù)庫設(shè)計,從通信協(xié)議到算法策略。對于產(chǎn)品經(jīng)理來講,技術(shù)知識的積累是一個厚積薄發(fā)的過程,不可能通過短時間的突擊學(xué)習(xí)就掌握所有知識點,只能在實際工作中遇到新的詞匯或概念時,認真查閱資料、理解揣摩,在長期積累中融會貫通。
程序設(shè)計的MVC和MVVM
MVC是Modeling、View、Controller的縮寫,代表軟件設(shè)計的分層理念。Modeling指數(shù)據(jù)模型,View指前端交互視圖,Controller指業(yè)務(wù)邏輯。任何一套軟件系統(tǒng)運作的本質(zhì)都是相同的:用戶在前端交互層操作后,系統(tǒng)通過業(yè)務(wù)邏輯層處理數(shù)據(jù)層的數(shù)據(jù)。不論是BS架構(gòu)的系統(tǒng)(例如通過瀏覽器訪問的管理后臺),還是CS架構(gòu)的系統(tǒng)(例如App應(yīng)用),都會遵循MVC模式搭建程序結(jié)構(gòu)。將一套軟件系統(tǒng)分為數(shù)據(jù)、業(yè)務(wù)邏輯處理、前端交互三層來設(shè)計、開發(fā),可以非常有效地保證程序結(jié)構(gòu)合理、邏輯清晰。
前端交互層
前端交互層負責繪制程序界面,完成前端程序和用戶的交互互動,并實現(xiàn)一些簡單的業(yè)務(wù)邏輯,例如數(shù)據(jù)校驗。常見的負責繪制界面的編程語言有JavaScript、HTML5(即H5,嚴格來講不能算編程語言,只是一種記號語言)、PHP等。前端方向是升級迭代非常快的技術(shù)方向,例如針對移動端,有JavaScript、Flex、Objective-C、Kotlin等前端語言;針對PC端,前端語言也從曾經(jīng)的HTML+JS+CSS,到流行一時的富客戶端RIC(Rich Internet Client),再到ExtJS、Node.js等。前端工程師需要不斷地刷新自己的技能樹,來適應(yīng)快速變化的前端需求。
業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層負責處理業(yè)務(wù)邏輯,例如在分銷運營管理后臺的門店列表頁,點擊“關(guān)聯(lián)賬號”按鈕,前端交互層把指令發(fā)送給業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層要判斷門店狀態(tài)是否能夠關(guān)聯(lián)賬號、是否有空閑賬號可以進行關(guān)聯(lián)等。
開發(fā)人員應(yīng)該盡量將復(fù)雜的校驗、判斷、業(yè)務(wù)規(guī)則都封裝在業(yè)務(wù)邏輯層,這樣可以讓前端交互層的負擔更輕,更容易擴展,因此業(yè)務(wù)邏輯層是MVC結(jié)構(gòu)中最復(fù)雜的部分。例如,假設(shè)分銷運營管理后臺除了PC版本,還打算做一套H5移動版本,以方便審核人員操作。如果業(yè)務(wù)邏輯層代碼和接口設(shè)計良好,則只需要前端工程師實現(xiàn)H5代碼即可;但如果之前的前端交互層和業(yè)務(wù)邏輯層耦合緊密,那么實現(xiàn)H5版本就需要前后端工程師一起調(diào)整代碼,非常麻煩。
業(yè)務(wù)邏輯層常用的編程語言有Java、C++、C#、PHP等。
數(shù)據(jù)層
數(shù)據(jù)層代表底層的數(shù)據(jù)存儲。數(shù)據(jù)包括結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),既可以存儲在數(shù)據(jù)庫中,也可以存儲在文本文件中。數(shù)據(jù)存儲操作一般由程序來完成,例如通過程序?qū)﹃P(guān)系型數(shù)據(jù)庫的數(shù)據(jù)進行增刪改查處理。
在早期的軟件開發(fā)工作中,工程師既要開發(fā)前端,也要開發(fā)后端,還要設(shè)計并管理數(shù)據(jù)庫,可以說是真正的全棧工程師。除此以外,工程師還要承擔產(chǎn)品經(jīng)理的工作,與業(yè)務(wù)方聊需求、掌控項目進度……
現(xiàn)如今,互聯(lián)網(wǎng)公司對工作內(nèi)容的劃分非常細致,會將前后端的開發(fā)分離。不論是CS架構(gòu)還是BS架構(gòu),前端部分統(tǒng)稱為客戶端,業(yè)務(wù)邏輯層和數(shù)據(jù)層統(tǒng)稱為服務(wù)端。前端工程師負責客戶端開發(fā),后端工程師負責服務(wù)端開發(fā),客戶端和服務(wù)端之間完全通過接口交互。
MVVM
MVC中,M、V、C都不應(yīng)該處理數(shù)據(jù)解析,那么由誰來呢?這個問題實際上在面向?qū)ο蟮臅r候相當好回答:既然目前沒有類能夠處理這個問題,那么就創(chuàng)建一個新的類出來解決不就好了?所以我們聰明的開發(fā)者們就專門為數(shù)據(jù)解析創(chuàng)建出了一個新的類:ViewModel。這就是MVVM的誕生。
技術(shù)性描述:
MVVM 本身就是從MVC的設(shè)計模式上優(yōu)化而來的,從代碼的角度來解析,通常MVC的是先獲取視圖V,然后給這個視圖賦予數(shù)據(jù)M, 這個賦予的過程方法就是C。MVVM呢,就不需要這樣了,在vue中直接可以先將數(shù)據(jù)放在view中V,然后去this.setData (react :this.setState)M等方法去改變數(shù)據(jù),視圖隨之改變 (VM控制)。
生活化描述:
在MVVM中,Controller不再像MVC那樣直接持有Model了。想象Controller是一個Boss,數(shù)據(jù)是一堆文件(Model),如果現(xiàn)在是MVC,那么數(shù)據(jù)解析(比如整理文件)需要由Boss親自完成,然而實際上Boss需要的僅僅是整理好的文件而不是那一堆亂七八糟的整理前的文件。所以Boss招聘了一個秘書,現(xiàn)在Boss就不再需要管理原始數(shù)據(jù)(整理之前的文件)了,他只需要去找秘書:你幫我把文件整理好后給我。那么這個秘書就首先去拿到文件(原始數(shù)據(jù)),然后進行整理(數(shù)據(jù)解析),接下來把整理的結(jié)果給Boss。所以秘書就是VM了,并且Controller(Boss)現(xiàn)在只需要直接持有VM而不需要再持有M了。如果再進一步理解C、VM、M之間的關(guān)系:因為Controller只需要數(shù)據(jù)解析的結(jié)果而不關(guān)心過程,所以就相當于VM把“如何解析Model”給封裝起來了,C甚至根本就不需要知道M的存在就能把工作做好,前提它需要持有一個VM。那么我們MVVM中的持有關(guān)系就是:C持有VM,VM持有M。
6.總結(jié)
以上就是筆者關(guān)于——“B端產(chǎn)品經(jīng)理應(yīng)了解的技術(shù)知識(上)”的分享內(nèi)容,希望對大家有所幫助,敬請期待下篇。
總結(jié)
以上是生活随笔為你收集整理的extjs曲线数据如何从后端获取_B端产品经理应了解的技术知识(上)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这样实现分布式锁,才叫优雅!
- 下一篇: docker添加jar包_Docker部