tft每日頭條

 > 生活

 > 程序員和老手程序員的對比

程序員和老手程序員的對比

生活 更新时间:2025-02-08 02:41:12

“程序猿/媛”、“攻城獅”、“碼農”、“高薪”、“技術人才”、“996”、“007”、“35歲危機”、“互聯網”,“内卷”。。。

程序員在大衆的認知上有很多标簽,但讓大家說清楚這個行業的人到底在做什麼,具體怎麼來做,很多人就說不清楚了,隻是有一個輪廓上的概念和人傳人的認識。

上一篇《看懂程序員》中和大家從廣義上了解了一下程序員的工作、生活、人設,這次我們從程序員行業内的細分工種讓大家更好的認識這個行業。

程序員和老手程序員的對比(程序員内部是怎麼分工的)1

程序員細分行業

冰山之上

程序員和老手程序員的對比(程序員内部是怎麼分工的)2

12306官網

現在每天大家都會接觸到很多的APP、網站(後文統稱為“應用”),用它們購物、遊戲和工作。大家看到、用到的這些應用的開發人員可以被統稱為前端開發人員,相對應大家看不到的那部分冰山之下的程序員則是後端開發人員。

上篇文章中我們把程序員比作流水線工人,程序員的工作是流水線上的一個環節,再來和大家回顧一下:

1、産品經理提出需求:産品崗位的同事經過調研之後告訴整個流水線上的人,我們要做啥、為啥要做、具體分幾步實現,期望啥時候用戶可以使用。

2、美工設計:根據産品經理想要的内容進行交互設計,通俗來講就是大家看到的每一個應用長什麼樣,滑動之後是什麼效果,點擊之後會出現什麼,都是美工的同事她們說了算。她們會用設計軟件(大家最熟悉的PS就是設計軟件之一)或者畫筆(平闆 手寫筆)描繪出來應用最後是啥樣貌。

3、程序員開發:根據産品經理說的産品每個功能的邏輯和美工交付的交互設計圖進行開發(寫代碼),簡單來說就是美工提供的是二維的圖畫,程序員将二維的圖畫開發成用戶可以使用的三維可交互的功能(一個應用有很多功能,比如抖音有登錄的功能、有點贊的功能等等)。

4、測試人員測試:針對程序員開發出來的功能,測試崗位的人員會對産品經理所說的功能邏輯和美工畫出來的交互邏輯進行逐條驗證看是否符合産品經理和美工的要求。當然高級的測試團隊還會對程序員開發的代碼進行一些測試驗證,看看是否符合程序員所說的要求。期間出現不符合預期的内容,就會由程序員去修改直到符合各方預期。

5、運維上線:運維人員将程序員開發的代碼放到服務器(專門用來跑程序員代碼的高配置電腦)上,然後進行一系列的初始化、安全、防護配置,大家就可以正常使用這些應用了。

程序員的上遊是産品和美工,他們告訴程序員要做什麼、怎麼做的問題。我們以常見的“登錄頁面”為例,簡單講講産品經理交付給下遊的交付物。

産品經理的交付物簡稱為産品原型,産品原型包含下面幾部分:

1、功能描述:功能的簡要描述。2、前置條件:要操作此功能,需要具備什麼角色(普通用戶、銷售人員、管理員)、權限或狀态。3、後置條件:執行完這個用例後,關聯的數據會有什麼變化,頁面怎麼跳轉。4、界面交互:每個界面都可以拆分成多個元素,如表單、文本、鍊接、圖片等;

程序員和老手程序員的對比(程序員内部是怎麼分工的)3

登錄界面交互

程序員和老手程序員的對比(程序員内部是怎麼分工的)4

界面元素

5、業務流程:當用戶完成輸入并提交時,應該做什麼校驗,不同輸入該怎麼處理,不同結果(登錄成功、失敗、未注冊等)該返回什麼給用戶展示。

程序員和老手程序員的對比(程序員内部是怎麼分工的)5

登錄頁面業務流程圖

程序員和老手程序員的對比(程序員内部是怎麼分工的)6

文字描述業務流程

6、異常和分支流程:異常流程如網絡錯誤、接口返回異常、服務器内部錯誤等(後兩個均可以理解為系統錯誤問題)。以上面的登錄流程為例,分支流程包括找回密碼、密碼登錄等,分支流程非必須,簡單的分支流程可以直接通過主流程體現出來,具體可以視情況按照一定顆粒度進行拆分。7、數據字典:這個用例涉及哪些數據,可以通過數據字典描述,這一步非必須,最終表結構也不一定就是這樣,隻是給程序員的一個參考。有技術背景的産品,也可以做得更細,以注冊功能涉及的用戶表為例:

程序員和老手程序員的對比(程序員内部是怎麼分工的)7

數據字典

産品經理準備好以上的産品文檔後,就會叫上美工、程序員、測試坐一起來開會評審一下産品文檔。

為什麼要評審呢?因為産品文檔在美工設計和程序員開發上還有一些細節需要确認,有時也會有些流程因為各種原因不能實現,需要和産品經理溝通看如何修改。經過幾輪溝通後,産品原型就會确定下來,這時美工同事就該進行設計工作了。

美工同事會根據界面交互設計出更詳細、更美的界面。

根據産品和美工交付的産品原型和頁面交互原型,前端開發工程師就可以開始工作了。在此之前,後端開發工程師們已經同步在産品評審會後開始了他們的工作了。

前端開發人員開始用代碼實現頁面交互内容,也就是大家在應用上經常進行的點擊、單擊、雙擊、滑動、輸入等操作都是前端開發人員開發出來的,所以大家離程序員最近的一個崗位就是這些前端開發人員。

前端開發人員也有細分,比如開發浏覽器裡面的應用的,我們一般稱為“Web前端開發工程師”、“前端開發工程師”、“前端開發”、“前端”。由于蘋果手機和Android手機在技術上是完全不同的兩套,所以移動端的開發又細分為“IOS開發工程師”、“Android開發工程”。還有開發在電腦桌面上打開的軟件應用的工程師一般稱為“客戶端開發工程”。

程序員和老手程序員的對比(程序員内部是怎麼分工的)8

前端細分崗位

經過前端開發人員的努力,一個個可以進行交互的頁面就展示在大家的眼前了。但隻有前端工程師,大家的應用隻是能進行操作,如果想讓應用中的信息是和自己相關的,能自由自在地進行搜索呀,記錄下來呀,那就需要後端工程師出場了。

冰山之下

百度百科對于後端開發工程師的解釋是:隸屬于軟件研發工程師,是從事軟件開發相關工作人員,其主要職責是平台設計、接口設計和功能實現

還是以前面登錄的例子來解釋一下後端開發工程師都是幹什麼的。

程序員和老手程序員的對比(程序員内部是怎麼分工的)9

登錄頁面業務流程圖

上圖是登錄頁面的業務流程圖,其中有三個需要後端開發工程師配合才能完成整個功能。

1、獲取驗證碼;

2、驗證驗證碼是否正确;

3、點擊登錄判斷是否已注冊;

前面咱們說了前端開發工程師隻能把可以交互的頁面呈現給用戶,那麼驗證碼是咋發到你的手機上的?又是怎樣驗證你輸入的驗證碼和短信發給你的是一緻的呢?點擊登錄後咋判斷你的手機号是否注冊過呢?

前端程序通過網絡去詢問後端程序,後端程序做了這些判斷後告訴前端程序的

程序員和老手程序員的對比(程序員内部是怎麼分工的)10

登錄流程

第一步:當你在頁面上輸入手機号後,點擊獲取驗證碼時。前端程序會通過網絡發起一個請求去詢問後端程序“你可以發一個驗證碼給XXX了”,後端程序收到這個請求後就會随機生成一個驗證碼,然後一邊是将驗證碼存到數據庫(存放數據的倉庫)裡面,另外會将驗證碼發送到XXX号碼的手機上。

第二步:此時将手機上收到的驗證碼輸入到頁面上的輸入框裡面,然後點擊登錄按鈕:此時前端程序就會将頁面上輸入的手機号、驗證碼再次發給後端程序,後端程序拿到手機号和驗證碼就會去數據庫裡面查找這個手機号發送的驗證碼是什麼,與輸入的驗證碼進行比對,如果比對成功則證明輸入的正确,就可以進行下一步了。如果不成功就會告訴前端程序,剛才的驗證碼輸入錯誤了,可以給用戶提示一下。

第三步:如果驗證碼比對成功,後端程序就會去數據庫存儲注冊用戶的地方去查詢這個手機号有沒有注冊過。如果已經注冊了那就告訴前端程序,已注冊用戶,可以登錄。如果比對不成功就告訴前端程序,手機号沒有注冊,需要去注冊一下。前端程序根據後端程序的回複就會有兩種不同的展示,一種是直接登錄成功,跳轉到了另一個頁面。另一種就是未注冊跳轉到注冊頁面讓你填個人信息進行注冊。

例子中後端的每一步判斷都是發生在毫秒甚至更小的時間單位級别的。

由例子就可以看出來前端程序提供的是交互,後端程序提供的是控制。當然後端不僅僅能提供控制,還能提供數據,當你登錄成功後,會看到你的個人信息以及頁面上的大量信息(如淘寶的商品列表、抖音的視頻等等)。

為了能讓用戶使用軟件的時候更快,保證程序不會崩潰,後端開發工程師又細分了很多細分工種。

應用後端工程師:專門和前端程序通信,告訴前端程序判斷結果、提供數據給前端程序進行展示。

系統架構師:負責整個後端程序的設計,保證後端程序穩定、高效地給前端程序返回數據。

DBA(數據庫管理員):負責數據庫的高效運行,讓應用後端工程師可以快速存儲數據和讀取數據。

數據工程師:随着互聯網的興起,用戶産生的數據量越來越大,就有細分除了專門的數據工程師,他們負責将後端程序中大量的數據進行處理、分類、存儲等,然後再提供給應用後端工程師使用。

運維工程師:整天與網絡、服務器打交道,負責将程序員寫出來的代碼放在服務器上,并保證程序可以平穩、安全地運行。

近幾年AI工程師、人工智能工程師、算法工程師、圖像識别工程師等也比較火,這些也都是一個後端細分的開發崗位。比如算法工程師可以簡單地理解為在數據工程師的基礎上對數據進行進一步的分析、通過各種數據模型進行數據建模後分析,來進一步找到數據的規律,然後給應用後端工程師使用。

為什麼後端工程師細分出來這麼多細分崗位?還最終都給應用工程師提供支撐,為什麼應用工程師不直接處理數據自己使用呢,還簡單?

這是因為沒有人能樣樣精通,任何一個工種的細分目的都是為了讓專業的人做專業的事。當一件事件随着發展逐漸變複雜的時候,也就代表這件事可以拆分、細化去處理了。細分工種後,每個崗位工程師的關注點就更聚焦在自己的領域,可以更深入地研究領域内的事情。

程序員和老手程序員的對比(程序員内部是怎麼分工的)11

後端細分崗位

總結

程序員和老手程序員的對比(程序員内部是怎麼分工的)12

程序員細分行業

本文隻是簡單介紹了一下占比比較大的互聯網公司的程序員們的工作區分,在這個行業還有很多其他開發方向的程序員。通過本文希望大家可以更了解這個群體,認識到“神秘”背後的普通人。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved