<acronym id="uci6i"><center id="uci6i"></center></acronym><rt id="uci6i"></rt>
<rt id="uci6i"><center id="uci6i"></center></rt>
<object id="uci6i"></object>
<acronym id="uci6i"><div id="uci6i"></div></acronym><acronym id="uci6i"></acronym>
<acronym id="uci6i"><div id="uci6i"></div></acronym>

企業新聞

山東搜立得--軟件開發經驗淺談

2020-12-14 12:11:17 zou

山東搜立得--軟件開發經驗淺談


不知不覺做軟件已經做了很多年,有成功的喜悅,也有失敗的痛苦。通過這幾年的軟件開發,積累了一些經驗而已,先談談經驗,只能算是這幾年來在編程方面的一些看法吧。


第一、什么叫編程。有人說:“編程講究是一個整體的平衡性”?!捌胶庑浴笔擒浖暮苤匾牟糠?,從平衡性的角度去考慮編程,就會抑制你想要用最新技術,最新系統等等一些想法。因為從平衡性的角度考慮,只要你的軟件有一個瓶頸出現,你的程序就是失敗。你首先要考慮的是怎么消除程序中可能存在的一些瓶頸。在這個基礎上你才有權利去考慮提高你程序的性能最新的技術,最好系統,如果你的代碼不行。什么都等于沒有做。因為你的程序有性能瓶頸存在。


第二、怎么編程。很多人看到這個問題,一定會在心里:“這個地球人都知道”。暫且看下去。這里說的怎么編程不是要說怎么寫詳細的代碼,而是你的程序最終是怎么完成的。但實際上編寫代碼可能在程序的生產過程中是占有時間比較少的一塊。個人覺得編程要包含以下的幾個部分:

1、市場潛力分析

分析你要寫的程序能不能賣出去,市場份額是不是很大。

2、同類產品競爭分析

看看你的同類產品的優缺點。

3、技術可行性分析

依據本公司的技術實力看在給定的時間內能否實現需求說明中的功能。

4、軟件設計

寫出詳細的軟件流程,數據流程,主要算法,軟件架構等(參考軟件工程)。

5、編寫代碼

模塊的功能的代碼實現。用一種語言實現上面的功能,在編寫代碼時,要注意書寫文檔說明。永遠記?。捍a是給人看的而不是給機器運行的,計算機在執行程序時是不怕累的,而人在看代碼時是非常累的,良好的編碼習慣,至少保證自己能夠隨時看懂幾個月前自己所寫的代碼,盡量讓你的代碼能夠很容易的被別人理解,寫代碼時想想你會不會在兩個月后被別人罵。在調試的時,要耐心好,編寫代碼其實就調試和改錯。一個好的程序運行沒有瑕疵,沒有臭蟲。到底是什么內在的因素使然呢?其實這并不神秘,我們只需要偶爾用點心思提醒自

己,無論是使用C、C++、C#、Java、Python、JavaScript、PHP、Go、Objective-C還是Swift進行編碼,所有好的編碼無不顯示出同樣的特點:簡潔、易讀、模塊性、分層、設計、效率、優雅和明晰。

6、bug測試和改錯

錯誤是一種嚴重的程序缺陷。測試的目的是為了發現盡可能多的缺陷,并期望通過改錯來把缺陷統統消滅,以期提高軟件的質量。

7、交付用戶使用

8、維護與再生工程

很多軟件產品不是一次性的買賣。比如在電信、金融等領域,有些軟件系統要用十幾年,對軟件進行維護是必不可少的。還要根據用戶的要求增加新的功能。這些事,有的是市場的事,有的是軟件構架師,系統分析員的事,還有的是編程的事。但是在很多小公司,本著小公司事必親恭的辦事原則。大家多了解一點是不會有錯的。

舉個具體的例子來說。假如我要編寫一個共享軟件。我要怎么做呢?

1、要好好想想我要寫的軟件有沒有“錢”途。時間在15天-30天左右。

2、好,我已經決定要寫xx軟件了。

3、在網上找幾個對xx最有威脅的同類軟件,分析它們優缺點。要它們的優點,不要他們的缺點。

4、根據前面分析的結果,大概的列出xx軟件應該具有的功能表。

5、寫出1.0版的基本功能表,菜單功能表,寫出1.x的功能表。

6、選擇編程語言。

7、上網找類似的源代碼,算法。RFC標準文檔。好好研究一翻。

8、根據你選定語言,算法,標準文檔,寫出xx的詳細設計文檔。

9、按照設計文檔編寫代碼。

10、測試和軟件的加密,防止別人破解軟件

11、交給用戶使用。


第三、哪里有資料,標準文檔。

代碼的世界是千變萬化的,在開始一個新的項目之前,完全可以找一個類似功能的代碼來看看。這樣可以更好的改進你的程序。有時還可以加快進度。還有當新的技術出來時,你要看看相關的文檔。雖然不要完全了解它的功能,好處。但是你至少要知道新的技術能用在什么地方。怎么用。配合什么用能更好的發揮它的作用。編寫軟件不是全部的東西都是自己寫的,有很多的功能是一種標準。也許是標準算法。像圖形的,圖象識別的,多媒體的,加密解密的算法。所以你要知道你可以從哪里找你要的資料。我把我知道的都寫在這里源代碼和技術資料站點

http://www.csdn.net(專業開發者社區)

http://www.vckbase.com(vc知識庫)

https://www.51cto.com/(中國領先的IT技術網站)

http://www.linuxeden.com(LINUX)

http://www.linuxforum.net(國內最高水平GNU站點)

http://www.chinaunix.net/(中國最大的Unix技術社區)


第四、掌握必要的工具

有些工具也許你用過,也許你沒有用過。不過沒有關系的。同行的高手會教我們怎么用的



第五、要掌握的知識

因為每一個人的發展方向不一樣,所以大部分人的知識結構都不一樣。象一些基本的計算機基礎知識大家都知道,每個人都有自己的愛好,所以自己的發展方向不一樣,有的人做系統開發,有的人做驅動開發,有的人做編譯器開發,有的人做圖象處理與識別開發等等。但是有幾點應該是一樣的。

1、英語能力

主要的新的技術,文檔資料都是用英語來首發的。如果要學到更好更新的知識,技巧。不懂點英語也是不行的。也不要指望有人給你翻譯出來。一般來說,這些資料,看的懂的人不需要翻譯,看不懂的人沒有辦法翻譯。所以大部分的資料還是英語原文的。當然也有很多的人在翻譯這些文章,但是對于這么多的資料來說,翻譯過來的只是很小很小的一部分。

2、設計能力

雖然一般來說,大公司有軟件構架師做應用系統技術體系構架,系統分析員做設計。但是70%-80%的小公司,可就不一定了。知道一點軟件工程的知識,知道一些文檔設計工具怎么用?;蛘咧缿撚心男┰O計文檔。也是很有好處的。

3、語文寫作能力

編程時候,大部分時間都是在寫代碼。但是代碼的注釋,各種文檔的編寫,測試報告,說明文檔,使用手冊這些都需要文字功底的。還有用email,bbs,qq這些工具與人交流的時候,如果話都說不清楚,那交流就更談不上了。水平提高進步也就有點問題了。

4、學習能力

沒有幾個人是全部學會了再去工作的。這個不是很現實。目前社會也不太允許這樣做。一邊工作一邊學習是很常見的。也許很多人是在工作之中才學會做某些事情的。很多技能也是這樣會的。此外,很多新的項目的到來。很新的技術的到來都要求我們能適應新的工作環境,新的工作要求。如果沒有好好的學習是很容易被一個項目浪費掉的。


第六、知道自己要做什么,要學什么,要發展什么。

隨著信息技術的高速發展,軟件技術越來越多,越來越先進。如果我們什么都想知道。天哪,那我們一輩子也學不完。作為一個軟件人員也好,作為一個初學者也好。知道自己要往那個方向走是很重要的。不然很容易的就餓死在軟件技術迷宮里的。最后只好不干這一行了。其實軟件技術就象一個很大的蛋糕,一些高級研究人員,博士發明一種新技術,把蛋糕做大,而我們只要把一門技術學好,學精了,就可以分到蛋糕吃了。一般來說,作為一個軟件人員,掌握一到兩個語言的開發能力就可以了。另外除非你是想做軟件技術的研發(這些工作最前途,也最受歡迎),象軟件構架師。如果不是做軟件技術的研發,只是一般的應用程序編寫的話,不用太關注今天出來什么新的技術,明天又出來什么新的技術。這些東西只要知道就行了。知道有這么回事就可以了。以后有用的到的地方再去認真的關注。我一向堅持知識面最大化、專業深入化。對于一般的IT技術都應該知道,把知識面擴廣,然后根據自己的興趣找一個突破口,認真學好這個方面的技術,成為這方面的專家。象有的人精通系統開發,有的人精通數據庫,有的人精通圖象處理,有的人精通網絡編程等等。我們可以找個切入點好好研究,精通計算機的某個領域。


給同行的一點建議:

(1)明確目標。每天上班要做什么事情,目標要明確。把一天中最重要的事,最緊急的事排列組合,就有四種情況。我們首先要做的是最重要且最緊急的事,其次是做緊急不太重要的事,再次是做重要不緊急的事,最后是做不重要不緊急的事。

(2)精通一門編程工具,不要什么東西都想學,什么都沒掌握。

(3)按照ISO9000認證的流程做軟件開發,加強自我管理,每天作自我總結,分析自已的錯誤率及費碼率。

(4)良好的編程風格。注意養成良好的習慣,代碼的縮進編排,變量的命名規則要始終保持一致。大家都知道如何排除代碼中錯誤,卻往往忽視了對注釋的排錯。注釋是程序的一個重要組成部分,它可以使你的代碼更容易理解,而如果代碼已經清楚地表達了你的思想,就不必再加注釋了,如果注釋和代碼不

一致,那就更加糟糕。這里推薦一本書,林銳博士的《高質量C++/C編程指南》。

(5)強調團隊合作精神,多與別人交流。三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多上上網,看看別人對同一問題的看法,會給你很大的啟發。

(6)不要急于求成,這樣往往欲速則不達。

(7)豐富的想象力。不要拘泥于固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想象力是建立在豐富的知識的基礎上,除計算機以外,多涉獵其他的學科,比如天文、物理、數學等

等。

(8)不要做浮躁的程序員。不要看到別人的回復第一句話就說:給個代碼吧!你應該想想為什么。當你自己想出來再參考別人的提示,你就知道自己和別人思路的差異??磶椭臋n時,不要因為是英文的而且很難而自己是初學者所以就不看;幫助永遠是最好的參考手冊,象MSDN是很好的幫助文檔。把時髦的技術掛在嘴邊,還不如把過時的技術記在心里。對于網絡,還是希望大家能多利用一下,很多問題不是非要到論壇來問的,首先你要學會自己找答案,比如google、百度都是很好的搜索引擎,你只要輸入關鍵字就能找到很多相關資料。


首頁
產品
新聞
聯系
多人强伦姧人妻完整版,国产精品亚洲精品日韩已满十八小,特大黑人娇小亚洲女,超清无码AV最大网站 莱阳市| 永善县| 紫云| 安乡县| 天祝| 武清区| 唐山市| 枣庄市| 涟水县| 右玉县| 洛阳市| 揭阳市| 维西| 来凤县| 尼玛县| 高邑县| 玉屏| 兴仁县| 景泰县| 靖州| 集安市| 江华| 崇左市| 莒南县| 上饶市| 桐柏县| 高平市| 拉萨市| 大方县| 涡阳县| 乌鲁木齐市| 苏尼特右旗| 南岸区| 武邑县| 嘉禾县| 托里县| 清流县| 万山特区| 余姚市| 青田县| 栖霞市| http:// http:// http:// http:// http:// http://