嗯,怎么說呢?因為你這邊說是建設網站,我就認為你是Web前端。
現在程序員分工比較細,全棧工程師還是比較少的,前端的話,目前有Android工程師,iOS工程師,Web開發工程師。這些統稱為前端人員,Web開發工程師和H5歸為一類。
因為看題主的提問,這邊應該是指Web開發,所以我就說下Web開發的分類。
Web從早期的HTML、CSS、JS,到現在的Vue、React和微信小程序等,分工是比較明確的,像我公司,就有UI設計師,頁編切圖人員和Web前端開發人員。
UI設計師就是做UI和美術設計的,頁編人員就是寫一些HTML和CSS的,把UI設計師提供的圖片,進行切圖和組裝成最簡單的HTML頁面,有少量或基本沒有JS腳本。
理論上來說,上面兩類不屬于程序員,歸于設計師。
而Web前端開發人員,就是屬于程序員了,雖然也會用PhotoShop,但重點不在設計上,他們需要知道JS,需要知道ES5、6、7標準,需要知道Vue和React,并能使用這些框架進行開發,需要能寫NPM包,需要能搭建Node.js服務,知道設計模式,知道編碼LISP原則,知道如何與服務端進行接口聯調,知道RESTFul API,知道OAuth協議,知道JWT,知道HTTP原理,知道ChromeV8內核運行機制,知道瀏覽器事件及微任務與宏任務執行調度規則,您進行網站性能優化,還會用Node.js搭建BFF層,提供GrapQL封裝聚合接口數據。
然后我們再來說說買一個后臺的事,這個買一個后臺是什么概念?是指買一個基本已經實現RESTFul規范的后端服務呢?還是說早期的混合項目?那要不我就也分開說吧。
早期前后端混合項目的話,最有名的就是一些CMS、論壇之類的,不過這些都是開源的,代碼一般是PHP之類的,所以樓主拿到這些項目,一般只是改改界面是沒問題的,和你的前端技術能力強弱無關,因為它是整站項目。
那第二類,就是前后端已經分離的項目,這樣的話,你就是通過RESTFulAPI進行調用后端接口了,理論上,如果你是上面說的Web前端開發人員,那是沒啥問題,你自己寫個前端,然后進行接口認證與調用,進行頁面顯示,就可以了,至于用單頁還是多頁,取決于你的網頁應用。
但,如果你是設計師,那就有點困難了,雖然說前端技術瓶頸不高,但一個人摸索,會很漫長的……
不過怎么說呢?東西不都是學來的嗎?只要你肯下時間和功夫,沒有什么會難倒努力又有智慧的人的。
在這里,我們拋開商務層的項目識別、項目論證、投標、簽合同等環節,僅從軟件項目的生命周期開始談。
一個完整的網站項目生命周期一般分為可行性分析(計劃)、需求分析、軟件設計(概要設計、詳細設計)、編碼(含單元測試)、測試、運行維護等幾個階段。下面就這幾個階段做簡要介紹。
一、可行性分析這部分主要是分析公司技術可行性、人力資源儲備、財務儲備等方面的分析。由于對我們開發人員關系不大,這里暫略。
二、需求分析這部分開始就是網站建設的重點工作,通常被認為是一件最困難的工作。需求分析概括來講就是這個網站應該“做什么”,因該具有什么樣的功能,解決什么樣的問題。通常是開發組人員和用戶多次交流以便了解用戶的需求。比如用戶需要網站首頁展示什么東西、用戶可以注冊賬號、可以充值會員、可以放視頻等需求,反復確認記錄后按某種模板整理成冊。期間伴隨著一些文檔的產生如《需求調研計劃》、《需求規格說明書》等。但軟件項目有一個特點就是“漸進明細”,意思就是用戶不可能在一開始就確定項目的需求,需要在項目完成的過程中逐步明確。于是才有了與用戶各種扯皮的現象,“需求又改變了”這也是大多數程序員工作抱怨和調侃的來源。
三、軟件設計需求完成后,就開始網站設計了。這一部分主要做網站概要設計、網站詳細設計以及數據庫設計等工作。內容主要就是確定網站的運行環境、技術架構以及根據需求理出系統功能結構,并初步描述出每個功能的設計規則及流程,初步設計數據庫表等。
四、編碼這一環節就是程序員接觸得最多的內容了,就不多講了。大致就是根據項目經理劃分的模塊為每個人分配開發任務,并定期評審,定期給用戶演示交流以確保項目實際進度與用戶需求不會偏差太多。
五、測試由于軟件項目越來越大,IT崗位中單獨衍生出測試人員這一細分崗位。測試環節最好由第三方測試,因為如果項目團隊成員自己來測試會下意識的往正確的業務邏輯走,從而不能很好的測出系統的缺陷。測試環節按不同的手段又分為黑盒測試、白盒測試、靜態測試、動態測試、壓力測試等。測出的缺陷提交給開發團隊修正。
六、運維系統上線后就進入運行維護的階段。沒有哪個系統上線后就是完美的,這也是運維存在的必要性。能多數情況下在企業和客戶簽訂合同的時候會包含一定時間的免費運維期,比如兩年,兩年后運維需另收費。運維由專人負責。運維的主要目的是解決實際使用中產生的bug、修改小的變更需求、維護服務器穩定等。
我做的項目用了以下方面
1)html,css,JavaScript,ajax,websocket
2)java,JSP,servlet
3)mysql,pool,cache,in memory db,ring buffer,
4)role based resource control,logging,performance watch,eventbus