專屬客服18376668806 在線咨詢 留言/需求提交

致產品經理:是時候要學學編程了!

小編說:對于非技術型產品經理來說,在實際工作中與工程師配合最為密切,兩種思維模式的個體在對問題的思考方式上存在一定的差異性。

對于產品經理這一綜合性職能來說,具備一定的技術知識,不論是在與工程師工作的配合中,還是在對技術產品的理解上,都能起到非常大的幫助作用。

本文選自《產品經理必懂的技術那點事兒》,我們簡單聊聊非技術型產品經理需要了解的編程語言中的數據類型。了解更多詳情請點擊閱讀原文

說產品經理學編程并不是真的讓產品經理去學習如何寫代碼,而是讓產品經理通過了解編程的基本原理,知道產品背后的程序邏輯是如何處理的。

工程師是一類理性和邏輯思維較強的個體,對于產品經理來說,首先需要做的就是能聽懂工程師所說的話,在實際工作中來看,工程師在和產品經理配合的過程中,使用最多的就是技術語言。

如果你是技術人員,那么本文對你的幫助不大,但也可以跟著小編繼續回顧一下這些知識點~

  ◆    

那么進入本文正題,編程語言中的那些數據類型

數據類型是用來在計算機世界中區分和表達數據載體的規則,數據類型是一種對數據的約束,每一種數據都有一種且唯一一種數據類型,數據類型代表編程語言中的最基本規則。介紹完什么是編程語言及幾種主流的編程語言后,我們來看一下編程語言中的基本數據類型。“數據”是計算機世界中的基本單元,一張圖片是一個數據,一個文字也是一個數據。如下圖所示,一個基本的數據單元主要由幾部分構成,分別是數據類型、數據名稱和數據值。數據的名稱也叫變量名,每一個變量都有對應的數據值,這部分內容我們會在接下來的章節里介紹。

每一門編程語言都有自己的基礎語法,就像我們學外語需要掌握語法一樣。編程語言是和計算機進行溝通的語言。計算機要理解程序的意思,首先就得從數據類型開始,數據類型好比我們說話用的單詞的意思,計算機需要理解我們傳遞了什么信息。

另外就是語法結構,好比我們說的單詞需要以什么樣的順序和方式被組織起來,不同的外語有不同的語法規則,也有不同的單詞,例如表示蘋果這一物體,中文里叫“蘋果”,但英文里叫“apple”,中文的主謂語順序和英語中的也略有差別。同理,在編程語言中也會有不同的語法規則和不同的關鍵字。我們先看一下編程語言中的基本數據類型。

  • 表示整數的“整型”

在產品中,我們通常會在需要計算一些數值時使用到整型,比如需要統計通訊錄有多少人時,需要聲明一個整型變量來記錄通訊錄項目總數,而且這個變量是可以持續累加進行計算的。

整型是一種數字類型,所有的不帶小數點的數字都屬于整型,在編程語言中,用關鍵字int 來表示整型。關鍵字是編程語言中一種約定存在的表示一定具體意義的形容詞,關鍵字一般都是固定存在的,就好比語言中的一些固定詞語。int 實際上就是英文integer 的縮寫,表示整數的意思。在不同的編程語言中,表示整型數據的關鍵字會略有不同,但大部分都是用“int”來表示整型數據。在程序中,我們可以給一個變量取一個名字,然后聲明這個變量為整型,例如“int a = 10”,這是一個基本的程序語句,里面有幾個關鍵字符號,從左到右,首先是“int”,說明這個數據類型被我們聲明為整型,也就是整數類型,然后是“a”,這是我們隨便取的名字,我們還可以叫x 或者y 都行,再往后就是“=”,這個“等號”其實是賦值號,代表的意思是,將“10”這個整數賦值給變量“a”。至此,我們就寫完了一個最簡單的程序語句。同時,整型是可以被用來進行數學計算的,例如我們可以將兩個整數進行加減乘除的數學計算,“int a = 1;int b = 2;int c = a + b”,在這條程序語句中,最終變量“c”的計算結果是“3”。下圖所示為三個數據單元,數據的名稱也就是變量名分別是a、b、c,名稱后面對應的是數據類型和數據的值,這也表示了所有類型數據的基本格式。

例如,我們還可以寫一個聲明整型的程序語句,“int x = 1024”,這句程序的意思就是我們聲明了一個整型的變量“x”,并且賦值為整數1024。對于變量的取名也有一定的規則,例如我們可以取名為“a”和“x”,但我們不可以用一些特殊符號來命名變量,不能使用“%”或者“$”類的符號作為變量名,規范的變量取名一般是字母或者下畫線開頭,中間和結尾也可以是字母數字或者下畫線,比如“a1”、“_a”、“a1_”都是合法的變量命名。

  • 表示文本的“字符型”

字符型是一種文本類型,字符型的內容沒有規則限制,可以是任意內容。在不同的編程語言中,表示字符型的關鍵字略有不同。例如在Java 語言中,我們使用關鍵字String 表示字符型數據;在C 語言中,字符型使用關鍵字char 來表示;在Objective-C語言中用NSString 表示字符型數據。使用哪一種關鍵字取決于各編程語言自身的特點,就好比使用不同國家的語言來表示“蘋果”這個意思,說法不一樣但本質其實是一樣的。字符型數據一般會用引號表示該數據屬于字符型,例如“hello”就是一個字符類型的數據,表示一個單詞,也可以是“hello world”,表示一句話,中間的空格也算是這個字符型數據的一部分。如果字符型數據的內容是數字,比如“1024”,這時候并不代表是整數,而就是一個字符型數據。也就是說,字符型的“1024”并不具備數學意義,不能用來做計算。

字符型的數據在我們設計產品的過程中其實使用得最多,我們在產品界面上展示的所有信息在程序里都是以字符型的數據類型展示的。例如,我們在用戶登錄界面會看到用戶名和密碼的文字,這些都是以字符型的方式顯示在界面上的,如果我們在用戶名和密碼的輸入框中輸入一些內容,那這些內容也是以字符型的數據被程序讀取,然后做進一步處理。

再比如,我們在電商產品的購物車中填寫購買商品的數量時,填寫的是具體的數字,但是程序讀取出來的實際上是字符類型,如果需要對購買商品的數量做進一步計算,比如要統計總共買了幾件商品,那就需要將字符型的數據轉換為整型,然后再做計算。在產品設計中,我們會定義某一個輸入項的輸入類型是文字還是數字,這是產品層面的定義,比如產品層面會定義購物數量是輸入數字,但在程序里面,從這個輸入框獲取的內容卻是字符型的,如果需要對這個值進行數學計算,則需要先將這個字符型的數值轉換成整型數據。關于數據類型間的轉換,我們會在后面章節做具體介紹。可以說,字符型是使用最廣泛的一種數據類型。

  • 表示小數的“浮點型”

浮點型也是一種數字類型,與整數型相比,浮點型的數據都是帶小數點的數據。在編程語言中,一般使用float 或者double 標記浮點型數據。對于產品經理來說需要理解的是,雖然都是數字,但是整數和帶小數點的數在程序里面是分別用不同的數據類型聲明和表示的。了解這些基本數據類型后,在設計產品或者與技術人員溝通的過程中就可以對數據類型這一項做到心中有數了。

和前兩種數據類型一樣,在不同的編程語言中,表示浮點型的關鍵字也會根據編程語言的特點略有差別,但本質上都代表一類有小數點的數字類型。還是以Java 語言為例,我們可以聲明一個浮點型的變量“float a = 1.5”,跟之前聲明變量的方式一樣,現在變量“a”的數據類型就是浮點型。與此同時,我們將數值“1.5”賦值給變

量“a”,浮點型和整型一樣,都是有數學意義的,也就是說可以被用來進行計算。例如,我們可以讓兩個浮點型的數相加,“float a = 1.5;float b = 1.5;float c = a + b”,這時候變量“c”的計算結果就是“3.0”,就算相加出來的結果是一個整數,但是因為聲明變量“c”是浮點型,所以結果也是帶小數點的浮點型。

在產品設計中,我們也會使用到浮點型,例如在填寫體重的時候,我們可以輸入“60.5”這樣的數值來表示公斤,在一些專業型的工具產品中,我們會輸入一些帶小數點的數來設置一些參數,這時都會使用到浮點型。當然,如前文所說,在界面上獲取的其實都是字符型,只是我們在程序里面將字符型轉換為了浮點型。

  • 表示是非判斷的“布爾型”

布爾型是一種特殊的數據類型,布爾型的數據只有兩種值,即“true”和“false”。“true”對應的序號是1,“false”對應的序號是0。布爾型變量的賦值只能是“true”或者“false”,一般用來做標記位使用,反映現實世界里的真假判斷。在編程語言中,一般用關鍵字“boolean”或者“bool”表示和聲明布爾型數據。例如,我們可以聲明一個布爾型的變量“boolean a = true”或者“boolean b = false”,變量“a”和“b”的值只能是“true”或者“false”之一。

在產品設計中,我們經常會在流程設計里使用到布爾型。例如,如果用戶在注冊時需要同意一個注冊協議,注冊協議旁邊往往有一個可以勾選的小框,勾上視為同意,不勾視為不同意。

在程序實現中,我們可以使用布爾型的數據對這個操作進行記錄。例如,我們可以設置一個變量來記錄這個操作,“boolean isSelected = false”,我們聲明了一個變量名字叫“isSelected”,然后給它初始賦值為“false”,即設定默認是沒有勾選的,如果用戶在注冊時將勾選項選上,我們就可以將這個變量的值修改為“true”。布爾型在程序設計中使用得比較多,主要用于控制流程或者做一些特殊標記。

  • 數據類型間的轉換

前面我們提到了編程語言中三種最常見的數據類型,分別是整型、字符型和浮點型。除了這三種基礎類型之外,還有一些其他類型,例如長整型、單精度浮點型和雙精度浮點型,這些都是基于基礎數據類型的其他數據類型,它們一起構成了程序的數據基礎。前文提到數據類型間的轉換,例如我們從界面上獲取的整型數據輸入實際上首先得到的是字符型。這時,我們就需要將字符型轉換為整型,在大部分編程語言中,都會有對應的工具來進行數據類型轉換。例如,我們獲取到購物車商品的數量,從界面上獲取的值的數據類型是字符型的“10”,這時的“10”是不能直接進行數學計算的。如果我們要將商品的單價乘以商品數量,必須先將字符型的“10”轉換為整型的“10”,轉換成整型數據類型后,就具備了數學計算的能力。同理,我們也可以將字符型的數據“1.5”轉換為浮點型的數據進行數學計算。反過來,我們也可以將整型或者浮點型的數據轉換為字符型,數字類型的數據轉換為字符型后就不具備數學計算意義了。

需要注意的是,如果字符型數據不是數字而是其他字符,比如“a”,這時將字符型轉換為整型的話,得到的結果是“a”在ASCII(American Standard Code forInformation Interchange,美國標準信息交換代碼,是基于字母的一套編碼系統)中對應的具體數值,實際上就是字母“a”對應的二進制代碼,也就是一串由0 和1 組成的代碼。在計算機的世界里,所有的數據最終都是由0 和1 表示的,我們所編寫的程序語言最終被解析編譯后都會還原成計算機能識別的機器碼。簡單說,計算機真正認識的其實都是由0 和1 組成的各種序列,這些序列的順序和組合及長度各不相同。

  • 數據拼接

在編程語言中,數據拼接一般是字符型數據間的拼接,拼接后的字符型數據統稱為字符串,字符串的內容可以表達任何內容,字符串簡單來說就是一串文本。如前文所說,“1024”是一個文本,也就是一個字符串,并不是數學意義上的1024,字符串能表達的內容非常多,字符串的內容既可以是數字也可以是小數或各種符號。

在產品設計中,我們經常使用到數據拼接,例如要設計一個功能展示有多少人參與了活動,文本會設計成“目前有??人參與了本次活動”,這句話在程序里是以字符型的數據類型存儲的,整個字符串中間關于多少人的部分是變量,也就是說這里的數字是會動態變化的,在編程語言中,該如何實現呢?其實很簡單,我需要用到數據拼接,以Java 語言為例,第一種是我們先將“目前有”這個字符串用變量“a”表示,將后面的“人參與了本次活動”這個字符串用變量“c”表示,中間的數字我們在程序中獲取時是整型數據,先將整型轉換為字符型然后用變量“b”表示。這時,我們通過“String s = a + b + c”這條程序語句就可以實現字符串數據的拼接,從而實現這個功能。

在進行產品設計時,如果某個功能涉及固定字符和動態字符的組合,就要考慮數據拼接了。

如果產品經理在產品設計過程中能對那些屬于動態數據的部分做特殊標記,那么工程師一定刮目相看。

上圖是上文提到的活動參與人數統計的例子,其中人數部分是動態變化的,數字前后的文字都是靜態的。如果在產品設計圖中能清晰地把動態變化的部分標記出來,就能明確地提示工程師在開發時需要特別注意,也降低了產品經理額外說明和解釋的溝通成本。

◆  ◆  ◆  ◆  ◆  

除此之外,還有邏輯結構、數據結構、程序以及最小執行單元,這些都是編程方面需要了解的內容,在《產品經理必懂的技術那點事兒》一書中都會有詳細的介紹。



 

博文視點

您閱讀的專業智庫

喜歡請分享至朋友圈

了解更多本書詳情請點擊閱讀原文

長按二維碼輕松關注


點擊閱讀原文,即可快速抵達本書詳情頁!

99久久香蕉国产线看观看