java架構(gòu)師需要做六個方面的工作。
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),陽原企業(yè)網(wǎng)站建設(shè),陽原品牌網(wǎng)站建設(shè),網(wǎng)站定制,陽原網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,陽原網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
1,需求整理分析
首先,第一手的信息損失最少,架構(gòu)師能夠更好的把握需求;其次,分析人員在與客戶交流時,往往不會深入挖掘需求,因為有很多隱藏的需求客戶自己都不見得意識的到,而架構(gòu)師則可以依靠敏感的軟件嗅覺發(fā)現(xiàn)這些需求,減少以后的變數(shù);第三,分析人員往往脫離開發(fā)團隊,盲目接受客戶需求,而架構(gòu)師能夠清楚把握現(xiàn)有的研發(fā)團隊能做什么,不能做什么,提前預(yù)知風(fēng)險,降低項目失敗的機率。
2,系統(tǒng)分解
在收集完信息后,架構(gòu)師需要將用戶需求轉(zhuǎn)化為軟件需求,同時要補充非業(yè)務(wù)需求,如健壯性,擴展性等等。如何區(qū)分和化解用戶需求與軟件需求,如何有效把握用戶需求與軟件需求的區(qū)別,是系統(tǒng)分解的核心。這是最考驗架構(gòu)師的地方,也是只有架構(gòu)師參與的工作。
3,技術(shù)選型
這一步要根據(jù)對軟件需求決定項目該使用何種架構(gòu),開發(fā)模型,及依賴選項。如使用多層架構(gòu)還是分布式架構(gòu),是瀑布模型還是RUP,是使用MySQL還是SQLServer,是否需要使用企業(yè)庫,是否需要使用ORM。但是,架構(gòu)師對項目的技術(shù)選型要提供多種不同的方案,并為每種不同方案提供詳細說明文檔,用來闡述每種方案的優(yōu)勢,劣勢,可行性等內(nèi)容。這些文檔供項目經(jīng)理或領(lǐng)導(dǎo)決策最終的技術(shù)選型。
4,系統(tǒng)設(shè)計
依據(jù)軟件需求和技術(shù)選型,架構(gòu)師需要和軟件工程師一起將軟件需求落實到軟件詳細設(shè)計說明書中。架構(gòu)師負責(zé)將軟件需求分解,重組織為子項目,子系統(tǒng),組件和模塊,以及它們之間的邏輯關(guān)系,從而形成不同的邏輯組成部分,最后還需要確定各個子系統(tǒng)及組件間的接口。這些都是作為進一步的團隊分工的依據(jù)。同系統(tǒng)分解一樣,系統(tǒng)設(shè)計是考驗架構(gòu)師能力的重要職責(zé)。
5,培訓(xùn)與指導(dǎo)
在軟件詳細設(shè)計說明書完成后,為保證項目的順利進行,架構(gòu)師需要對整個團隊進行技術(shù)培訓(xùn),讓團隊中的每個人明白自己的職責(zé)范圍,該做什么,不該做什么。
在項目實施過程中,架構(gòu)師需要參與到具體開發(fā)過程中,給與每個開發(fā)人員有效指導(dǎo),以避免團隊成員對系統(tǒng)設(shè)計的誤解而造成項目的延誤。在我看來,這點對于新手比較多的團隊尤為重要。因為國內(nèi)新手的一個通病是眼高手低,剛學(xué)會了一點點就認為自己什么都會;當(dāng)他們拿到真正的設(shè)計時又往往不知所措,畏首畏尾。
6,保持溝通
溝通是保證項目順利開展的有效保障。架構(gòu)師要從多方面跟蹤項目進度,及時與項目經(jīng)理或直屬領(lǐng)導(dǎo)匯報項目進展,與技術(shù)開發(fā)人員溝通遇到的問題,如果是迭代開發(fā),還需要與用戶溝通需求變更。
系統(tǒng)架構(gòu)師是一個最終確認和評估系統(tǒng)需求,給出開發(fā)規(guī)范,搭建系統(tǒng)實現(xiàn)的核心構(gòu)架,并澄清技術(shù)細節(jié)、掃清主要難點的技術(shù)人員。主要著眼于系統(tǒng)的“技術(shù)實現(xiàn)”。因此他/她應(yīng)該是特定的開發(fā)平臺、語言、工具的大師,對常見應(yīng)用場景能馬上給出最恰當(dāng)?shù)慕鉀Q方案,同時要對所屬的開發(fā)團隊有足夠的了解,能夠評估自己的團隊實現(xiàn)特定的功能需求需要的代價。 系統(tǒng)架構(gòu)師負責(zé)設(shè)計系統(tǒng)整體架構(gòu),從需求到設(shè)計的每個細節(jié)都要考慮到,把握整個項目,使設(shè)計的項目盡量效率高,開發(fā)容易,維護方便,升級簡單等。
系統(tǒng)架構(gòu)師綜合的知識能力包括9個方面,即:
1、戰(zhàn)略規(guī)劃能力。
2、業(yè)務(wù)流程建模能力。
3、信息數(shù)據(jù)結(jié)構(gòu)能力。
4、技術(shù)架構(gòu)選擇和實現(xiàn)能力。
5、應(yīng)用系統(tǒng)架構(gòu)的解決和實現(xiàn)能力。
6、基礎(chǔ)IT知識及基礎(chǔ)設(shè)施、資源調(diào)配能力。
7、信息安全技術(shù)支持與管理保障能力。
8、IT審計、治理與基本需求分析、獲取能力。
9、面向軟件系統(tǒng)可靠性與系統(tǒng)生命周期的質(zhì)量保障服務(wù)能力。
大數(shù)據(jù)架構(gòu)師需要參與規(guī)劃從數(shù)據(jù)源到數(shù)據(jù)應(yīng)用的整體流程,并參與相關(guān)產(chǎn)品的決策。下面是我為您精心整理的大數(shù)據(jù)架構(gòu)師的基本職責(zé)。
大數(shù)據(jù)架構(gòu)師的基本職責(zé)1
職責(zé):
1.負責(zé)整個大數(shù)據(jù)平臺架構(gòu)的設(shè)計和構(gòu)建;
2.負責(zé)構(gòu)建大數(shù)據(jù)平臺的數(shù)據(jù)交換、任務(wù)調(diào)度等通用平臺;
3.制定開發(fā)、測試、實施、維護的標(biāo)準和規(guī)范,指導(dǎo)和培訓(xùn)工程師,不斷提升團隊能力。
4.參與系統(tǒng)需求分析、架構(gòu)設(shè)計、技術(shù)選型、應(yīng)用設(shè)計與開發(fā)以及測試與部署,負責(zé)編寫核心部分代碼。
5.持續(xù)挑戰(zhàn)新的技術(shù)方向,攻克大數(shù)據(jù)量、高并發(fā)、高可用、可擴展等技術(shù)難點。
任職要求:
1.3年以上大數(shù)據(jù)架構(gòu)經(jīng)驗,豐富的數(shù)據(jù)倉庫、數(shù)據(jù)挖掘、機器學(xué)習(xí)項目經(jīng)驗
2.大規(guī)模數(shù)據(jù)處理的架構(gòu)和設(shè)計實戰(zhàn)經(jīng)驗
3.精通Spark、MR,熟練HDFS、Yarn、Hbase、Hive、MongoDB,熟悉Kafka、Redis、Storm、Mahout、Flume、ElasticSearch、GraphDB(NEO4J或其他)等,并具有豐富的大型數(shù)據(jù)平臺工程經(jīng)驗
4.深刻理解大數(shù)據(jù)處理(流計算,分布式計算,分布式文件系統(tǒng),分布式存儲等)相關(guān)技術(shù)和實現(xiàn)方法
5.熟悉主數(shù)據(jù)、元數(shù)據(jù)、數(shù)據(jù)質(zhì)量等企業(yè)數(shù)據(jù)管理相關(guān)的體系和方法,熟練Linux/Unix平臺上的開發(fā)環(huán)境
6.本科或以上學(xué)歷,計算機軟件或相關(guān)專業(yè),豐富的java開發(fā)經(jīng)驗和互聯(lián)網(wǎng)背景優(yōu)先。
7.具有比較強的問題分析和處理能力,有比較優(yōu)秀的動手能力,熱衷技術(shù),精益求精
大數(shù)據(jù)架構(gòu)師的基本職責(zé)2
職責(zé):
1. 深刻理解政府行業(yè)業(yè)務(wù)模式,構(gòu)建政府行業(yè)的數(shù)據(jù)模型,制定公司大數(shù)據(jù)技術(shù)發(fā)展路線;
2. 對接業(yè)務(wù)研究和技術(shù)部門,主動搜集和轉(zhuǎn)化需求,組織數(shù)據(jù)中心業(yè)務(wù)開發(fā),進行數(shù)據(jù)相關(guān)產(chǎn)品需求分析和設(shè)計;
3. 搭建數(shù)據(jù)倉庫,研發(fā)數(shù)據(jù)庫管理系統(tǒng),搜集、提取、處理業(yè)務(wù)積累的海量數(shù)據(jù),開展數(shù)據(jù)分析和挖掘;
4. 根據(jù)公司戰(zhàn)略和發(fā)展需要,規(guī)劃數(shù)據(jù)中心重點工作和任務(wù);落實部門人員、事務(wù)管理,開展跨部門、跨地區(qū)協(xié)作,協(xié)助對外交流與合作。
職位要求:
1. 5年以上相關(guān)工作經(jīng)驗,有團隊管理和項目管理經(jīng)驗者優(yōu)先;
2.了解政府運作機制,掌握財政行業(yè)知識,有電子政務(wù)行業(yè)經(jīng)驗者優(yōu)先;
3. 熟練掌握使用Java或Python,精通數(shù)據(jù)庫查詢語言如SQL,Oracle等,在機器學(xué)習(xí)模型和算法方向有應(yīng)用經(jīng)驗者優(yōu)先;
4. 具備數(shù)據(jù)中心產(chǎn)品策劃整體思維,有大數(shù)據(jù)處理、分析、挖掘經(jīng)驗者優(yōu)先;
5. 邏輯思維嚴密,具備業(yè)務(wù)抽象、分解和標(biāo)準化的能力,口頭和書面表達優(yōu)秀;
6. 有較強的大局意識和良好的團隊合作意識,富有領(lǐng)導(dǎo)力,具備優(yōu)秀的人際交往和溝通能力。
大數(shù)據(jù)架構(gòu)師的基本職責(zé)3
職責(zé):
1、從事電信行業(yè)大數(shù)據(jù)項目相關(guān)業(yè)務(wù)調(diào)研、產(chǎn)品標(biāo)準建設(shè)、核心模型設(shè)計和優(yōu)化、系統(tǒng)測試等相關(guān)工作
2、與數(shù)據(jù)專業(yè)委員會一起研究數(shù)據(jù)建模方案和建模工具,負責(zé)產(chǎn)品線產(chǎn)品的數(shù)據(jù)架構(gòu)、數(shù)據(jù)模型設(shè)計
3、參與研究數(shù)據(jù)庫之間的數(shù)據(jù)轉(zhuǎn)換方式,參與項目中的數(shù)據(jù)移植工作,收集在項目中的數(shù)據(jù)移植經(jīng)驗,優(yōu)化產(chǎn)品的數(shù)據(jù)模型
4、負責(zé)培訓(xùn)本部門隊伍的數(shù)據(jù)模型基礎(chǔ)理論工作,建立數(shù)據(jù)模型團隊
崗位要求:
1、統(tǒng)招本科學(xué)歷,3年以上主流數(shù)據(jù)上(DB2、Oracle、SQLServer、Mysql等)ETL設(shè)計、開發(fā)經(jīng)驗,具備大型數(shù)據(jù)倉庫邏輯模型和物理模型設(shè)計經(jīng)驗,精通SQL,有較好的SQL性能調(diào)優(yōu)經(jīng)驗;
2、擁有Python,R等數(shù)學(xué)建模工具的使用經(jīng)驗,并具備一定的數(shù)據(jù)處理和建模經(jīng)驗,可以輸出相應(yīng)的模型分析結(jié)果、模型比較、模型效率以及對模型的理論和判斷依據(jù)方法并對其進行完整的解釋和說明;
3、熟悉統(tǒng)計學(xué)基本原理,做過實戰(zhàn)的數(shù)據(jù)建模項目;
4、有分布式數(shù)據(jù)倉庫建設(shè)相關(guān)經(jīng)驗者優(yōu)先,具備電信行業(yè)數(shù)據(jù)倉庫建設(shè)相關(guān)經(jīng)驗者優(yōu)先;
大數(shù)據(jù)架構(gòu)師的基本職責(zé)4
職責(zé):
1、負責(zé)大數(shù)據(jù)平臺的架構(gòu)設(shè)計、核心代碼開發(fā)等任務(wù);根據(jù)項目要求編寫相關(guān)技術(shù)文檔;
2、負責(zé)大數(shù)據(jù)平臺的架構(gòu)評審,代碼評審,上線評審;參與數(shù)據(jù)應(yīng)用需求、設(shè)計、審核和評審;
3、負責(zé)核心模塊研發(fā),負責(zé)大數(shù)據(jù)平臺的搭建,完成系統(tǒng)調(diào)試、集成與實施;
4、負責(zé)建立和維護大數(shù)據(jù)平臺技術(shù)標(biāo)準規(guī)范,指導(dǎo)開發(fā)人員編寫代碼;
任職要求:
1、本科及以上計算機相關(guān)專業(yè)畢業(yè);
2、精通離線和實時數(shù)據(jù)處理流程,掌握離線數(shù)據(jù)處理框架hive、impala、spark-sql等,掌握實時數(shù)據(jù)處理常用技術(shù)工具,包括Storm、SparkStreaming等;
3、熟悉大數(shù)據(jù)技術(shù)生態(tài)圈,精通大數(shù)據(jù)技術(shù)架構(gòu),有大數(shù)據(jù)平臺構(gòu)建經(jīng)驗;
4、掌握常見數(shù)據(jù)流接入工具,包括Flume、kafka等;
5、熟練掌握基本的Linux操作系統(tǒng)和某種腳本語言編程(如Shell等);
6、掌握一種或以上實時處理語言,如JAVA、SCALA、PYTHON等,有SCALA經(jīng)驗者優(yōu)先;
7、有實際大規(guī)模數(shù)據(jù)(TB級以上)處理經(jīng)驗優(yōu)先;
大數(shù)據(jù)架構(gòu)師的基本職責(zé)5
職責(zé):
1、負責(zé)公司的大數(shù)據(jù)處理框架的研發(fā)設(shè)計工作,梳理可實現(xiàn)方案和技術(shù)規(guī)范;
2、開發(fā)、完善公司大數(shù)據(jù)平臺;參與公司離線、實時大數(shù)據(jù)處理系統(tǒng)的設(shè)計、開發(fā)、測試及多個業(yè)務(wù)模塊的自動化集成;
3、負責(zé)業(yè)務(wù)平臺數(shù)據(jù)統(tǒng)計分析模塊的設(shè)計與規(guī)劃;
4、負責(zé)公司產(chǎn)品研發(fā)過程中的數(shù)據(jù)及存儲設(shè)計;
5、帶領(lǐng)和培養(yǎng)團隊完成組織分解的目標(biāo);
任職要求:
1、統(tǒng)招本科及以上學(xué)歷,計算機、軟件工程相關(guān)專業(yè),至少8年以上工作經(jīng)驗,5年以上大數(shù)據(jù)開發(fā)經(jīng)驗;
2、熟悉Java、Hadoop、HDFS、Hive、HBase、Spark、Storm、Flume等相關(guān)技術(shù)的基礎(chǔ)架構(gòu)
3、熟悉數(shù)據(jù)倉庫,數(shù)據(jù)算法,分布式計算技術(shù)理論,具有大數(shù)據(jù)整體系統(tǒng)架構(gòu)設(shè)計經(jīng)驗;
4、熟悉Linux系統(tǒng),熟練使用shell/perl/python腳本處理問題;
5、對深度學(xué)習(xí)框架(Tensorflow)和機器學(xué)習(xí)(svm 隨機深林貝葉斯等)有一定了解的優(yōu)先;
6、能夠組織項目開發(fā)組協(xié)同工作,包括團隊溝通、計劃、開發(fā)環(huán)境管理等
架構(gòu)師是一個充滿挑戰(zhàn)的職業(yè),知識面的寬窄往往決定著一個架構(gòu)師的架構(gòu)能力,所以在這一點上我比較贊成你的學(xué)習(xí)方式,就是要閱讀大量的技術(shù)書籍,但我希望你不要僅限于軟件相關(guān)的書籍,經(jīng)常泡技術(shù)論壇,一方面可以結(jié)交朋友,一方面可以增加自己的知識面。
公司的大小往往決定了所做的項目規(guī)模,一般的大項目不太可能直接總包給小公司去做,但這并不妨礙小公司可以分包到大項目的一部分。在做小項目的同時也可以積累豐富的經(jīng)驗,我自己就是一個這樣的例子。
我在小公司混跡了5年多,其中也偶爾有1兩個大公司,比如大唐電信,但是基本上都是小公司,從基層的程序要到公司的開發(fā)總監(jiān)都做過,甚至自己還設(shè)計過包括LED顯示屏,密碼鍵盤在內(nèi)的收費系統(tǒng),自己聯(lián)系廠家OEM,當(dāng)然這些今天已經(jīng)廣泛應(yīng)用了,當(dāng)時我們的客戶用上之后還是非常震撼的。
知識面的寬廣對于一名出色的架構(gòu)師來說是必不可少的技能,也許很多人對架構(gòu)的理解還停留在設(shè)計模式,重構(gòu),SOA等等的軟件層面,然而這僅僅是非?;镜臇|西,架構(gòu)師的腦子里不光需要知道讓軟件如何高效的運行,還需要知道如何去結(jié)合網(wǎng)絡(luò),存儲,甚至一些文件系統(tǒng)的特性,比如GFS,NFS,XFS,NTFS等等,而且架構(gòu)師還需要知道一些編程語言的特性,C,C++,Java,PHP,Python,Lisp,JS等等,現(xiàn)在是一個混合編程的時代,只了解一種語言,即使再精通也會使你在架構(gòu)系統(tǒng)的時候受到很大的局限性。
再有一點,架構(gòu)師需要對數(shù)據(jù)庫技術(shù)有深刻的認識,因為現(xiàn)今是一個信息時代,大量的信息都是需要存儲并檢索的,數(shù)據(jù)庫設(shè)計的不好,將會嚴重影響系統(tǒng)的性能,而這一點往往會被我們的設(shè)計人員忽略,他們只知道遵守那些范式而不會結(jié)合數(shù)據(jù)的特性去設(shè)計數(shù)據(jù)庫。
看你的編程情況,你好像做PHP開發(fā)比較多,PHP比較適合B/S結(jié)構(gòu)的應(yīng)用開發(fā),這會限制一個架構(gòu)師的思路,我建議你再學(xué)習(xí)一門適合做C/S開發(fā)的語言,拓寬自己的視野。
從一個程序員到架構(gòu)師是一個很大的變化,架構(gòu)師需要從大的方面考慮,而不只是考慮這個模塊該用哪種設(shè)計模式去開發(fā)。不能急于求成,也許是我自己變化的比較慢,我用了10年的時間,這10年里,我使用超過一年的編程語言包括了delphi,C++,Java,python,使用的數(shù)據(jù)庫包括了oracle,infomix,sybase,sqlserver,mysql,javadb,sqlite等等,使用過大型機,小型機,服務(wù)器。unix,linux,windows都至少做過兩年以上的開發(fā),這些使用和開發(fā)的經(jīng)歷會大大增強一個人在做架構(gòu)師這個職業(yè)時的技術(shù)素養(yǎng)。
總之,想要成為架構(gòu)師,需要有耐心,不斷學(xué)習(xí),拓寬自己的視野,不僅僅局限于自己眼前的項目,關(guān)注開源技術(shù),關(guān)注熱門技術(shù)社區(qū)的新動向。