序
創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、石城網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城網(wǎng)站定制開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為石城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
現(xiàn)在的中國,做軟件咨詢這行業(yè)的人已經(jīng)爛大街了。
很多人從做技術(shù)轉(zhuǎn)過來,SAP功能玩得很熟。
有的人從企業(yè)轉(zhuǎn)去咨詢公司,原先的業(yè)務(wù)很精通。
也有些人一畢業(yè)就能進咨詢公司,一個項目接一個項目。
所有這些人,在這個圈子里混的人,對于怎么做項目,大多都能侃兩句,說個1,2,3
什么Blueprint啦,Build啦,Testing啦,這些實施過程中的階段,大家都說得出,都知道。
可是,大家真的都了解怎么做項目嗎?
真的知道一個Deployment需要做的事有哪些嗎?
真的知道一個Program中各個Deployment之間的聯(lián)系嗎?
真的知道為什么要這樣做嗎?
一,從最細節(jié)做起
我剛做項目的時候,是一個外企的Roll Out,PM是馬來西亞人。
當時每個Team要做Status Report,Status Report是用PPT做的,有專門的模板
每周開會,大家在一起一個一個Team Review
PM在開會的時候,會盯住Report的格式。
增加一個頁面不能用Ctrl C + Ctrl V,一定要在PPT里insert一個頁面,這樣才能最完整地Copy模板
每個頁面的每個文本框的字體大小要符合模板
分行,分段,頁數(shù),日期格式,要符合模板
Report的內(nèi)容里,一定要有準確的數(shù)字,本周計劃完成幾個,實際完成幾個,絕對不能用百分比來糊弄過去要做的任務(wù),要有PIC(Person in Charge),Target Day。
在描述一個事的時候,不能用“我們”“他們”之類的詞?!拔覀儭笔钦l?“他們”又是誰?
最后,還要寫好revision history。
當時我們,特別是中國的同事,覺得好麻煩啊?;敲炊鄷r間看這些細節(jié)做什么。
字體不一樣又不會有事。每個工作的完成情況,要精確到具體數(shù)字,統(tǒng)計起來也很花時間
不過,久而久之也就習(xí)慣了。
若干年以后,當我看到另一個國企項目的Status Report。
那個國企項目的Status Report,也有模板,但是很簡單
而具體的報表內(nèi)容,完全沒有上面我提到的要求
結(jié)果就是,我完全看不懂。
另外,不同的Team的report要匯總在一起,如果字體不一樣,換頁的時候你會很明顯看到差別。
Status Report只是一個小東西。但是對于細節(jié)的認真卻是非常重要的。
任何一件事,誰去做,誰來review,怎么做,什么時候完成。。。
你如果不講清楚,別人也不會知道,結(jié)果肯定是事情做不好,要不就Delay。
所以,要做好一個項目,首先請認真對待細節(jié)。
二,Logistics
這里的Logistic是指后勤,是項目中為大家提供的生活工作服務(wù)。
為什么要說這個呢?
因為作為一個Deployment,最開始的事情,是PM要解決Logistic方面的問題。
現(xiàn)在做一個項目,成員大多是從不同地方來的。那么住宿應(yīng)該怎么安排?
通常的,PM要找?guī)准耶數(shù)氐馁e館談?wù)剝r格,有時客戶那里也拿得到協(xié)議價。
住的地方不能離客戶太遠,上下班會花很多時間,打車費用也貴
住的地方不能離市區(qū)太遠,顧問出差不能與世隔絕,也要考慮生活便利
住的地方的房型怎么樣,是1個人一套還是2個人一套
2個人的話,人員怎么安排?不是隨便2個男人就可以安排在一起的。
要考慮這2個人是否能相處。
往返機場,往返客戶那里,找什么樣的交通方式?
找固定的出租車司機還是隨便在馬路上打車?
要知道,安全是第一位的!
吃飯的話,Team Member有沒有忌口,有沒有國外的習(xí)慣
在客戶那里,辦公在什么地方,
一個項目20個人左右,加上Key User,怎么坐?
一般會說一個Team做一起,那么Team和Team之間的交流呢?
FI和CO要近一些,PP最好和MM近一些
顧問和Key User最好隔著坐,不要顧問只管自己,這樣方便溝通
辦公的地方,出入證明,電話,傳真,打印機,復(fù)印機,飲水機,網(wǎng)絡(luò),空調(diào),投影機,會議室
等等這些資源都要安排好。
把Team Member的名字貼在位子上方便別人找到
做一個通訊錄,最好打印出來發(fā)給每個人
......
其實要說清楚Logistic的事情,實在是太多了。
可是你知道嗎,這是PM要負責(zé)的事情
因為這時候項目還沒有開始,人員還沒來。
而且很多牽涉到費用,PM需要控制成本。
當然有的時候PM會找人幫忙,等項目開始以后讓某個人來管。
但是,這始終是作為一個Deployment開始所要做的事
也許很多PM做這個比較隨便,甚至很舍得花錢。
但我想說的是,事情做得好不好,關(guān)鍵還是在細節(jié)。
安排的資源有沒有考慮別人的感受想法。
要考慮如何才能大家不用抱怨環(huán)境差,開心地工作。
三,Global Template
讓我以一個Global的Program為例子吧。
什么是Template
通常的,在一個跨國企業(yè)實施SAP的時候,要面對的是不同國家,不同工廠
不同分公司業(yè)務(wù)也不一樣,有些是生產(chǎn)型的工廠,有些是貿(mào)易公司
那么作為跨國企業(yè),一般都是要把業(yè)務(wù)整合在一個系統(tǒng)里。
在SAP里就是1個Client,里面分多個Company Code
Company Code就是單獨的分公司
所以在開始真正實施SAP之前,就要考慮整個企業(yè)(Client)的架構(gòu)
包括統(tǒng)一的業(yè)務(wù)流程,統(tǒng)一的解決方案,統(tǒng)一的數(shù)據(jù)格式
這樣一些統(tǒng)一的東西,就叫Template
我們自己的說法,也叫Global Template
等設(shè)計完了這些之后,再去一個一個工廠實施
在工廠實施過程中,肯定會碰到和Template不一樣的需求,這時候也可以再修改Template.
Template包括哪些內(nèi)容
首先是組織結(jié)構(gòu)
要控制這樣一個Template,就要有一個專門的Team來管理,GT Team (Global Template Team)
這個Team里每個人是一方面的專家,比如FI,MM。這些Team Member面對的客戶的人,是整個企業(yè)這一級別的BPO(Business Process Owner),比如CFO。
在每個Deployment實施過程中,Deployment Team碰到的需要更改Template的需求,都要報告給GT Team,由GT Team負責(zé)協(xié)調(diào)其他Deployment,看是否能做這樣一個修改
比如說某個Deployment想在物料主數(shù)據(jù)里用某個字段來放一些參考信息。
可不可以呢?這就要考慮,這個字段在SAP的標準功能的用途是什么,
物料主數(shù)據(jù)是被所有工廠都通用的,其他Deployment實施的時候會否用這個字段
這個字段在系統(tǒng)的報表里會不會被用到
......
Template的重點是Blueprint Design
物料主數(shù)據(jù)的命名規(guī)則是什么?
什么物料用什么物料類型?
集團的科目怎么定義?
Cost Center,Profit Center,Product Hierarchy
要不要用Material Ledger
要不要用Split Valuation
Document Type用哪些?Number Range是多少?
......
統(tǒng)一的Process
比如采購申請,誰提申請,誰批準
比如生產(chǎn)訂單發(fā)料,是Issue to Order,還是Backflush,還是都可以
......
統(tǒng)一的權(quán)限控制
設(shè)置Common Roles,Deployment只要Copy 這些 Roles就可以了
......
Template也包括程序開發(fā)
有些report是整個企業(yè)都會用到的,那么就在Template里做好
到Deployment時期只要用就可以了
......
還有Document Template
所有的文檔的格式,Status Report,Data Conversion Template,To Be Process,
當然包括我一開始提到的字體大小,分行分段等等,都是在Template里定義
怎么做一個Template
很遺憾,我沒有做過Template,所以這部分我說得不仔細
做Template也是個單獨的項目
一般在Program開始后,在Deployment開始前
企業(yè)會召集很多人,有顧問有用戶,用戶可能來自各個工廠
過程也象做項目一樣,業(yè)務(wù)調(diào)研,藍圖設(shè)計,系統(tǒng)搭建,文檔準備等等
為什么要做Template
很難想象,如果沒有Template,怎么為企業(yè)實施一個整合的SAP系統(tǒng)
Template的好不好,還是取決于細節(jié)
當我一開始看到Template所做的文檔,我很驚訝,居然把項目中要用的文檔都做得那么詳細
很多時候,我們只要Copy過來,改幾個字就可以用了
看著Template,就可以很輕松地去工廠實施。
所以,一個好的,詳細的Template,是整個Program成功的前提
四,Capture Local Input
有了Template,接下來就是去分公司/工廠做Deployment了
前面提到,不同的工廠業(yè)務(wù)不一樣,Template不一定完全適用
所以在開始Deployment的第一個階段就是Capture Local Input,中文來說就是收集當?shù)氐男枨?/p>
那么怎么來收集需求呢?
首先要準備介紹資料。介紹SAP系統(tǒng),介紹Template的設(shè)計
介紹資料一般用PPT做,用于在Workshop上跟用戶講解
其中的重點是,要用用戶看的懂得方式去介紹。
我看到過一些人寫的資料,包括培訓(xùn)材料,完全是走技術(shù)路線
說說用到哪些功能,T-code怎么樣,在系統(tǒng)中產(chǎn)生什么Document,就結(jié)束了
可是,另外的,可以寫一些:
1.名詞解釋
2.企業(yè)有什么Policy,來讓我們決定Template的設(shè)計
3.原來的業(yè)務(wù)流程是什么,Template會改變什么,有什么Benefit
4.對于權(quán)限有什么影響,對應(yīng)于業(yè)務(wù)上的什么部門的什么崗位
要記住我們在Template的基礎(chǔ)上做實施,就是要做好功課,才去工廠Capture Local Input
介紹資料之后,還要有一個Question List
哪些物料類型會用到?
不能直接問有沒有產(chǎn)成品,原材料。
可以問,有沒有Packaging Material,比如Chip Board,Wood Pallets,Wood Containers
有沒有Petrochemicals,比如Fuels,Industrial Chemicals,Lubricant
......
哪些Payment Term會用到?
比如見票30天付款,見票60天付款
......
在Template的基礎(chǔ)上,就不要問很基礎(chǔ)的問題了,要跟實際業(yè)務(wù)相關(guān),能直接幫助之后系統(tǒng)設(shè)計的問題
在Capture Local Input階段,通常會召集不同部門用戶來開Workshop
召集的用戶人員,范圍,需要仔細研究
一個用戶不能同時參加MM和FI的2個Session。所以有必要的話時間要錯開
有的Workshop,需要BPO參加,要事先打好招呼發(fā)invitation
有的Workshop需要不同F(xiàn)unction Team一起討論,稱為Integration Session
經(jīng)過Workshop,要把Local Inputs記錄下來,成為Local Inputs List
在這個List里,當然的,要包括
1.簡短的一句話來描述這個Inputs
2.詳細介紹
3.誰提出來的
4.提出的日期
5.對應(yīng)的BPO是誰
6.分類,這個每個項目可能不同定義
7.需求類型,這是個Config相關(guān)的需求,還是Data Conversin相關(guān)的需求
8.是否影響Global Template
9.Priority,這個Priority有專門的定義,不是用戶說High就是High的
10.誰負責(zé)跟蹤這個需求
11.可能的解決方案
12.狀態(tài),Open還是Closed
這里要提到的是,記錄的需求多沒關(guān)系,只要跟蹤好,稍后跟用戶確認,狀態(tài)Closed掉就可以了
就怕2種用戶,說話太多和說話太少
這階段嘛,項目經(jīng)驗還是很重要的。很多需求在Workshop時就可以砍掉了
另外,報表的需求也要在這階段收集
重點是在這階段就要做rationalization,合理化。
要知道,開發(fā)的需求搞得越多越煩,一定要砍掉,砍掉,砍掉。
最后,PM需要每天開會,Review Status
今天收集了多少local inputs, High的多少
不斷地跟蹤狀態(tài)。
結(jié)束的時候,Local input list要跟BPO確認,作為下一階段Blueprint Design的依據(jù)
五,Blueprint Design
Blueprint Design階段,主要的時間在針對Local Input來討論Solution
也就是說,收集到需求,都要在這一階段找到解決方案
其中,有3個文檔是最重要的
它們是Blueprint,To Be Process和Data Conversion Approach。
什么是Blueprint?
有一些比較概念性的介紹,比如這是系統(tǒng)的設(shè)計,解決方案....
實際的,這是一系列Word文檔
每個文檔對應(yīng)一個模塊,里面詳細介紹各個功能設(shè)計
文檔里要包括對于這一功能的需求介紹,詳細的需求分析和解決方案,對于這一個Deployment的特別的結(jié)論
比如說,Physical Inventory 庫存盤點
1.用戶的需求是什么?保證庫存準確率?和財務(wù)的Balance一致?
2.詳細的需求呢?庫存準確率是按Plant level還是Storage Location level?要不要用Cycle Count?
3.解決方案呢?A, B, C分類怎么定義?庫存調(diào)整的Reason Code用哪些?
4.關(guān)于這一個Deployment,和Template有什么不一樣的地方?
關(guān)于To Be Process,大家肯定看過到很多了
只是,這里要強調(diào)一下文檔的規(guī)范
使用的符號,標注的方式,頁眉頁腳,都要根據(jù)Template來做
不然人家也很難看懂啊
Data Conversion Approach,簡稱DCT,是對于Data Conversion指導(dǎo)性的文檔
里面包括,在這一個Deployment有哪些Conversion Items。
原始數(shù)據(jù)是哪里?數(shù)據(jù)量有多大?誰提供?誰協(xié)調(diào)?誰確認?
現(xiàn)有的SAP數(shù)據(jù)上傳模板可不可以用?
原始數(shù)據(jù)怎么轉(zhuǎn)成SAP的數(shù)據(jù)模板?字段怎么對應(yīng)?比如在老系統(tǒng)里某字段的字符長度大于SAP的字段長度,怎么解決?
......
這3個文檔,是Blueprint Design階段的關(guān)鍵
整理好這3個文檔以后,要跟BPO review,并且sign-off
作為下一階段Build 系統(tǒng)的依據(jù)
除此之外,要開發(fā)的東西的列表也要在這一階段確定下來。
項目實施,是一環(huán)接一環(huán)的,
你收集的需求不完全或者不準,那么你的Blueprint Design肯定也不完善
你Blueprint 階段還留下一些需求沒有解決方案,如果這樣開始Build系統(tǒng)的話,以后肯定有問題要返工
每一階段完成的標志是BPO Confirm。Sign-off以后不能隨便改。
當然不是說不能有新的需求,也有的客戶不重視sign-off
但是作為PM,要堅持這樣的approach,要guide用戶按這樣的approach來合作
制訂這樣的approach,是項目管理中最重要的事。
六,Build and Testing
研究技術(shù)問題是中國人的強項。
很多強人對SAP的配置很熟悉,知道能不能在SAP里能實現(xiàn)某個功能
但是,光了解技術(shù),要做Consultant是不夠
首先介紹一下系統(tǒng)環(huán)境
在SAP里,不同的Client就是不同的環(huán)境
通
常的,有一個做Config的Client,一個做Development的Client,一個Sandbox的Client(隨便改隨便用)還有一個
SIT的Client,一個UAT的Client,Training的Client,Mock
Conversion的Client,Production的正式Client,User Support的Client
做Config的Client不能做任何Transaction,做好配置以后能自動傳到Development Client
在Development Client里做Component Test
Development Client同時也是做開發(fā)的Client
因為在Config的Client里,如果做任何Transaction,有可能有的配置改不了
比如Number Range,你做了一個transaction,號碼就跳了一個了
而Development需要測試程序,所以Development Client需要測試的數(shù)據(jù)
在做配置的時候,首先,要有一個Config List
這是一個Excel 文件,包括所有SAP IMG里面所有的配置項
單獨用一列來標識,哪些Config 需要在這一個Deployment里做,哪些是Cross Client的,哪些是Corss Company Code。還要記錄Transport Request號碼
另外,當然是Config Notes了,相信大家看到過很多
Transport是Basis控制的,這方面要跟Basis協(xié)調(diào)好
誰提request,誰approve,什么時候傳
一般在大的項目里,不是你想改就改配置的
要經(jīng)過GT Team Approve
Testing分Component Test,SIT和UAT
Component Test就是你做好了配置,要去測試環(huán)境里試一下配置可不可以用,這部分不需要用戶參與SIT和UAT都取決于你的Blueprint Design階段
Testing Script來源于To Be Process
跟用戶確定過哪些流程,當然就要在系統(tǒng)里都試一下
比如創(chuàng)建個物料主數(shù)據(jù),做個銷售訂單。。。。
SIT和UAT的Testing Script都需要跟BPO確認
SIT和UAT的Testing Script結(jié)果都需要User Sign-off
SIT和UAT的區(qū)別在于
UAT的范圍大于等于SIT,有些To Be Process比較簡單,很少用到,那么跟BPO確認一下,SIT測了以后,UAT就不用再測了
SIT和UAT的用戶范圍不一樣,SIT參與的用戶是Key User,UAT參與的用戶是Selected End User
還有Integration Test,是指有些流程是牽涉到3個以上模塊的
比如Make to Stock,Make to Order
Integration Test在SIT和UAT階段都會存在
Testing Script,Testing Data要事先準備好,
安排測試的時候,要注意用戶的時間不能沖突,有的用戶參加Integration Test和某個模塊的Tesing,那么時間上要分開
七,Data Conversion
Data Conversion不只是上線前把數(shù)據(jù)導(dǎo)進去而已,而是貫穿整個項目實施過程所要做的事
一定要有一個專門的Leader,來負責(zé)盯這部分工作。
在Capture Local Input的時候,要確定Data Gathering Scope
對于每個模塊,有哪些Conversion Items,數(shù)據(jù)源是哪里?誰提供數(shù)據(jù),誰負責(zé)收集,誰Approve,數(shù)據(jù)量估計多少
在Blueprint Design階段,要完成3個文檔
DCA(Data Conversion Approach),DMM(Data Mapping Matrix)還有DCT(Data Conversion Template)
DCA里面要詳細描述每一個Conversion Item怎么樣導(dǎo)入SAP系統(tǒng)中
要怎么詳細呢?
比如說,用戶現(xiàn)在的數(shù)據(jù)要清理吧,那么怎么清理呢?
采購訂單沒有收貨的怎么處理?收完的?收了一半的?發(fā)票先收了的?發(fā)票收了一半的?
數(shù)據(jù)怎么從用戶的系統(tǒng)導(dǎo)出來?手工還是有工具?工具誰準備?誰測試?
DMM是用于Mapping用戶系統(tǒng)和SAP的字段的
不同系統(tǒng)中,即使同樣的字段,字符長度也可能不一樣,更不用說一些物料參數(shù)了
DCT是用于上傳到SAP之前的模板,基本上DCT里的字段完全對應(yīng)SAP里的字段了
在Build and Testing階段,要做Conversion Tools Build Test
這個好理解,就是開始按照之前的DCA來做事
在這一階段,同時要展開的是Mock Conversion
通常的,Mock Conversion會有3次,Mock 1,Mock 2和FDR
為什么搞這么多次呢?
Mock
1的目標比較簡單,可以只準備Go Live的30~50%的數(shù)據(jù),生產(chǎn)型的企業(yè)可以準備一個完整的BOM。這樣的Mock
Conversion,可以為SIT準備基本的數(shù)據(jù),可以估計上傳數(shù)據(jù)的時間,可以測試上傳工具,可以保證用戶了解Data Conversion全過程
Mock 2的要求就比較高一點,數(shù)據(jù)量要求Go Live的75%左右。
Mock 2的數(shù)據(jù)要為UAT做準備,需要取一個月底的時間,可以核對財務(wù)和物流的余額
FDR就是Full Dress Rehearsal,完全模擬上線的情況
上傳數(shù)據(jù)的量和時間安排都要參考Cut Over的要求來做
而且FDR過程中的數(shù)據(jù)需要Sign-off,總之要模擬上線。
同時,很多這一階段準備的數(shù)據(jù)也可以用在Cut Over的時候,比如Material Master,不用重復(fù)準備了。
Data Conversion是很重要的工作,可以通過它來熟悉用戶的系統(tǒng)
沒有經(jīng)過好的Mock Conversion,怎么能保證上線能順利進行呢?
最后,在系統(tǒng)上線前,那就是最終的Data Conversion。要安排好Conversion Plan
每一個Conversion Item,哪一天Upload,順序是什么,有沒有dependency
估計需要多少時間上傳,數(shù)據(jù)量?誰負責(zé)上傳?以及任何相關(guān)問題的跟蹤。
八,Authorization
在實施項目的時候,權(quán)限是誰來實施的呢?
不是Basis,是Function Team。
Basis應(yīng)該負責(zé)具體在系統(tǒng)中創(chuàng)建Role以及transport之類的工作。
但是關(guān)于決定需要哪些role,分別有什么權(quán)限,應(yīng)該是Function Team的工作。因為Function Team會了解業(yè)務(wù),知道Role應(yīng)該怎么設(shè)置
權(quán)限的實施也不簡單
首先,作為Global Template,已經(jīng)有一套Common Role,在做Deployment的時候,就是要把這些Common Role copy as Local Role,有一些更改的作為Variant Roles
1 在做Blueprint Design的時候,要做Legal Entity Map onto Role
在這一個Deployment用到幾個Company Code, Plant,哪些Common Role會用到,要列出來
2.Confirm SAP Tcode to Role Mapping
同樣的,經(jīng)過Blueprint Design,哪些T Code會被用到也應(yīng)該知道了,要檢查Commone Role里面是否都包括還有一些本地的開發(fā)會有新的T-code可能要加進去。
任何改變都需要創(chuàng)建Variant Role
3 Confirm Roles to User ID Mapping
這
是一個Excel文件,首先要用一個Sheet列出所有的用戶信息,名字,ID,Department,E-mail之類。還有Role
Description,這個文件給用戶看,當然要讓用戶知道每個role是做什么事,不要技術(shù)性的描述。還有SOD
Control,根據(jù)Sarbanes-Oxley所制訂的審核原則,要用戶知道什么role和什么role沖突。后面是重點,User ID
Mapping to Roles,這個不用多說了
這個文件應(yīng)該交給Key User去完成,最后要BPO sign-off
不同的Team可能用Corss Team的權(quán)限要求,比如MM User想要財務(wù)的權(quán)限,
這就需要Authorization Leader去協(xié)調(diào)
4 接下來就是交給Basis Team去創(chuàng)建Roles了,技術(shù)方面的東西就不說了
5 權(quán)限測試
分2種測試,單獨的Role測試和基于User ID的測試
為每一個Role創(chuàng)建一個ID,一個ID只有一個role,登錄以后測這個Role的權(quán)限
為每一個User創(chuàng)建一個ID,在測試系統(tǒng)里,按照Function的操作測試用戶的權(quán)限
6 最后,就是上線的權(quán)限準備了,
把Role傳到生產(chǎn)系統(tǒng)里,在生產(chǎn)系統(tǒng)里創(chuàng)建ID,設(shè)置有效時間等等
這里要提到的是,權(quán)限的更改是正常的業(yè)務(wù)流程,只有要改T-code之類要transport的才是Issue
這在上線以后要特別區(qū)分開。
一、操作系統(tǒng):
Microsoft Windows : 匯編 - C - C++
備注:曾經(jīng)在智能手機的操作系統(tǒng)(Windows Mobile)考慮摻點C#寫的程序,比如軟鍵盤,結(jié)果因為寫出來的程序太慢,實在無法和別的模塊合并,最終又回到C++重寫。
相信很多朋友都知道Windows Vista,這個系統(tǒng)開發(fā)早期比爾蓋茨想全部用C#寫,但是最終因為執(zhí)行慢而放棄,結(jié)果之前無數(shù)軟件工程師日夜勞作成果一夜之間被宣告作廢。
Linux :C
Apple MacOS : 主要為C,部分為C++。 備注: 之前用的語言比較雜,最早是匯編和Pascal。
Sun Solaris : C
HP-UX : C
Symbian OS : 匯編,主要為C++。 (諾基亞手機)
Google Android :2008 年推出: C語言(有傳言說是用Java開發(fā)的操作系統(tǒng),但最近剛推出原生的C語言SDK)
RIM BlackBerry OS 4.x : 黑莓 C++
二、圖形界面層
Microsoft Windows UI : C++
Apple MacOS UI (Aqua) : C++
Gnome (Linux圖形界面之一,大腳): C和C++, 主要是C。
KDE (Linux圖形界面) ,C++。
三、桌面搜索工具
Google Desktop Search : C++
Microsoft Windows Desktop Search : C++
Beagle (Linux/Windows/UNIX 下): C# (基于開源的 .net : Mono)
四、辦公軟件
Microsoft Office : 在 匯編 - C - 穩(wěn)定在C++
Sun Open Office : 部分JAVA(對外接口),主要為C++ (開源,可下載其源代碼)
Corel Office/WordPerfect Office : 1996年嘗試過Java,次年被拋棄,重新回到C/C++
Adobe Systems Acrobat Reader/Distiller : C++
五、關(guān)系型數(shù)據(jù)庫
Oracle : 匯編、C、C++、Java。主要為C++。
MySQL : C++
IBM DB2 : 匯編、C、C++,主要為C。
Microsoft SQL Server : 匯編 - C-C++
IBM Informix : 匯編、C、C++,主要為C。
SAP DB/MaxDB : C++
六、Web Browsers/瀏覽器
Microsoft Internet Explorer : C++
Mozilla Firefox : C++
Netscape Navigator : The code of Netscape browser was written in C, and Netscape engineers, all bought to Java (see M. Cusumano book and article) redeveloped the browser using Java. It was too slow and abandoned. Mozilla, the next version, was later developed using C++.
Safari : (2003年1月發(fā)布)C++
Google Chrome : (2008的發(fā)布)C++
Sun HotJava : Java (死于1999年)
Opera : C++ (手機上占用率比較大)
Opera Mini : Opera Mini (2007) has a very funny architecture, and is indeed using both C++ and Java. The browser is split in two parts, an ultra thin (less than 100Kb) "viewer" client part and a server side responsible of rendering. The first uses Java and receives the page under the OBML format, the latter reuses classical Opera (C++) rendering engine plus Opera's Small Screen Rendering, on the server. This allows Opera to penetrate various J2ME-enabled portable devices, such as phones, while preserving excellent response time. This comes obviously with a few sacrifices, for instance on JavaScript execution.
Mosaic : 鼻祖(已死) C 語言
七、郵件客戶端
Microsoft Outlook : C++
IBM Lotus Notes : Java
Foxmail : Delphi
八、軟件開發(fā)集成環(huán)境/IDE:
Microsoft Visual Studio : C++
Eclipse : Java (其圖形界面SWT基于C/C++)
Code::Blocks : C++
易語言: C++
火山中文: C++
火山移動: C++
九、虛擬機
Microsoft .Net CLR (.NET的虛擬機): C++
Java Virtual Machine (JVM) : Java 虛擬機:C++
十、ERP軟件 (企業(yè)應(yīng)用)
SAP mySAP ERP : C,后主要為“ABAP/4”語言
Oracle Peoplesoft : C++ - Java
Oracle E-Business Suite : Java
十一、商業(yè)智能(Business Intelligence )
Business Objects : C++
十二、圖形處理
Adobe Photoshop : C++
The GIMP : C
十三、搜索引擎
Google : 匯編 與 C++,主要為C++
十四、著名網(wǎng)站
eBay : 2002年為C++,后主要遷至Java
facebook : C++ 和 PHP
This line is only about facebook, not its plugins. Plugins can be developed in many different technologies, thanks to facebook's ORB/application server, Thrift. Thrift contains a compiler coded in C++. facebook people write about Thrift: "The multi-language code generation is well suited for search because it allows for application development in an efficient server side language (C++) and allows the Facebook PHP-based web application to make calls to the search service using Thrift PHP libraries." Aside the use of C++, facebook has adopted a LAMP architecture.
阿里巴巴和淘寶: php-C++/Java(主要用)
十五、 游戲 :
匯編、C、C++
星際爭霸、魔獸爭霸、CS、帝國時代、跑跑卡丁車、傳奇、魔獸世界.... 數(shù)不勝數(shù)了,自己數(shù)吧
都是用C++開發(fā)的,C++語言靠近系統(tǒng)地稱,執(zhí)行速度最快。比如你的兩個朋友與你分別玩用VB、Java、與C++編寫的“跑跑卡丁車”,你玩C++編寫的 游戲 已經(jīng)跑玩結(jié)束了,發(fā)現(xiàn)你的兩個朋友還沒開始跑呢,那是相當?shù)目ò。?/p>
十六、編譯器
Microsoft Visual C++ 編譯器: C++
Microsoft Visual Basic 解釋、編譯器: C++
Microsoft Visual C# : 編譯器: C++
gcc (GNU C compiler) : C
javac (Sun Java compiler) : Java
Perl : C++
PHP : C
十七、3D 引擎
Microsoft DirectX : C++
OpenGL : C
OGRE 3D : C++
十八、Web Servers (網(wǎng)頁服務(wù))
Apache : C和C++,主要為C
Microsoft IIS : C++
Tomcat: Java
Jboss: Java
十九:郵件服務(wù)
Microsoft Exchange Server : C-C++
Postfix : C
hMailServer : C++
Apache James : Java
二十:CD/DVD 刻錄
Nero Burning ROM : C++
K3B : C++
二十一:媒體播放器
Nullsoft Winamp : C++
Microsoft Windows Media Player : C++
Microsoft Windows Media Player : C++
二十二:Peer to Peer (P2P軟件)
eMule : C++
μtorrent : C++
Azureus : Java (圖形界面使用基于C/C++的SWT,類Eclipse)
二十三:全球定位系統(tǒng)(GPS)
TomTom : C++
Hertz NeverLost : C++
Garmin : C++
Motorola VIAMOTO : 2007年6月,停止服務(wù)。 Java。
二十四:3D 引擎
Microsoft DirectX : C++(相信玩 游戲 的同學(xué)都知道這個,現(xiàn)在最高版本是DX11)
OpenGL : C
OGRE 3D : C++
二十五:服務(wù)器軟件
Apache: C
Nginx: C
IIS: C
二十六:其他相關(guān)
OpenStack: Python
綜述
著名的軟件一般是系統(tǒng)軟件,軟件一般都分為系統(tǒng)軟件和應(yīng)用軟件。開發(fā)軟件分為一次開發(fā)和二次開發(fā),比如開發(fā)操作系統(tǒng)(系統(tǒng)軟件),就是一次開發(fā);在操作基礎(chǔ)上進行應(yīng)用軟件的開發(fā),比如開發(fā) 游戲 ,就是二次開發(fā)。
一次開發(fā)的系統(tǒng)軟件,要直接調(diào)用硬件資源,必須使用簡單、直接的底層語言和中層語言,比如匯編和C語言;二次開發(fā)應(yīng)用軟件等,因為應(yīng)用軟件的類別比較多的,針對的情況比較復(fù)雜和具體,因此可以選擇的語言很多,比如,大數(shù)據(jù)人工智能方面的有Python;安卓手機APP就是Java等等。
這里還有一個誤區(qū),其實語言不重要,每種語言都差不多,重要的是開發(fā)環(huán)境和編程思想。要學(xué)習(xí)編程開發(fā),學(xué)的不是語言,而是對于開發(fā)環(huán)境工具的使用和編程思維的錘煉。很多著名的軟件都是用C等底層語言編寫的,但是也可以用其他語言編寫,不過很少學(xué)C了,其中有商業(yè)的原因。(后面會解釋)
集成開發(fā)環(huán)境軟件
計算機語言是不可以單獨拿出來說的,比如我們說C語言,指的是C語言編譯器,而Python語言,指的是Python解釋器。而編譯器和解釋器卻都是用C語言編寫,是不是很意外,所以著名的軟件一般都是系統(tǒng)軟件,使用的是C語言,一個語言就要初中水平就可以學(xué)會了,但必須了解IDE開發(fā)環(huán)境。
要使用計算機語言,就必須安裝編譯器,或者是解釋器,程序員是在TXT文本上編寫語言的,用編譯器可以一次性編譯為可執(zhí)行文件exe,用解釋器則可以逐條翻譯成機器語言并逐條執(zhí)行。編譯器速度快,解釋器可以跨系統(tǒng),到了別的系統(tǒng),不需要程序員改寫程序,換一個解釋器就行了。
IDE集成開發(fā)環(huán)境具備圖形操作界面、編譯器、調(diào)制器、控制臺,是非常重要的開發(fā)工具的,只會一個計算機的語言語法,卻不會使用IDE,基本上是沒用的!
編程思想
很多著名的軟件都是使用C等底層語言編寫的,而且所用的都是編譯器。當然還有另外一個原因,就是編程思想,C語言是面向過程,Python是面向?qū)ο?。很明顯,一次開發(fā)的系統(tǒng)軟件肯定是面向過程的,而面向具體使用場景的應(yīng)用軟件肯定是面向?qū)ο蟮摹?/p>
高手可以自由使用編程思想、程序編寫時,交替使用各種語言、切換解釋器或者編譯器,達到隱藏核心代碼目的;又或者軟件的核心模塊采用C等底層代碼,保證軟件的運行速度。畢竟開發(fā)時都是模塊化的,不同模塊使用不同的方法都是可以的!
所以很多著名的軟件,往往是混合著各種語言,核心部分是C,其他部分則根據(jù)不同的情況選用不同語言,之所以會這樣做,是因為使用C開發(fā)軟件要耗費大量的時間太。摩爾定律推動硬件發(fā)展,軟件開發(fā)也受到影響,一個軟件晚幾天推出市場,效果完全不同,所以程序員經(jīng)常加班趕工,速度才是最重要的。
總結(jié)
如上所述,著名的軟件是使用C等底層語言、編譯器語言、面向過程的語言編寫的,更多的是在一個軟件的核心部分使用C等底層語言、編譯器語言、面向過程的語言,其他則見機行事。
現(xiàn)在主流的語言是java、python和go
沒有用golang寫的開源ERP系統(tǒng),這個我計劃業(yè)余時間開發(fā)一個,作為學(xué)習(xí)golang的練習(xí)。
另外,metasfresh和axelor是基于java, erpnext是基于python, viennaadvantage是基于net的通過后臺配置自動生成較為美觀的前端界面的企業(yè)應(yīng)用快速開發(fā)平臺,具有很高的開發(fā)速度。
從erp的角度,后起之秀metasfresn是功能最齊全的,適合中大型企業(yè)的開源erp(在庫存采購銷售制造各模塊加入了大量支持大型企業(yè)的功能),缺點是設(shè)計高度復(fù)雜,代碼難度極大。
而從開發(fā)框架的角度,viennaadvantage結(jié)合.net/c#,則是上手最容易的,支持saas的企業(yè)應(yīng)用快速開發(fā)平臺。
文章名稱:go語言財務(wù)erp go語言做什么的
標題鏈接:http://m.rwnh.cn/article32/hpjisc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、云服務(wù)器、外貿(mào)建站、微信小程序、網(wǎng)頁設(shè)計公司、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)