欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

編程需要什么工具?

黃文隆2年前13瀏覽0評論

軟件開發需要的工具和知識很雜,一般情況下包括:工具:你需要一個集成開發環境,主流的是VisualStudio。“集成”的意思是,它是很多工具的集合,主要包括:

源代碼編輯:你也可以用VIM,但是這個在Windows開發中非主流,用戶多為從Linux過來的。

代碼編譯器:把源代碼編譯成可執行文件的工具,這其實也是一套工具,有編譯代碼的(如編譯C#的csc),有編譯資源的,有控制編譯流程的工具(msbuild),有代碼自動生成工具,有對程序集進行簽名的工具。有興趣可以看看WindowsSDK。

代碼測試工具:有知名的NUnit,其實VisualStudio也自帶一套,而且比Nunit強很多,對UI測試有十分良好的支持。比如UI錄制操作,用于回放測試。

源代碼管理工具:VisaulStudio也有服務器端產品,叫TeamFoundationServer,其中便有源代碼管理的功能。當然,VisualStudio也可以與Git,Perforce,SVN等其它源代碼管理工具集成。

Profiling工具:對代碼的運行進行動態分析,通過HotPath分析性能瓶頸。

需求與變更管理工具:管理你軟件上的Bug以用戶提出的(哪怕是你自己想的)需求。有很多的開源替代品,但是VisualStudioTeamFoundationServer有提供這個功能。

UI與UX設計工具:界面設計分原型設計(mockup)與界面開發。原型設計常用balsamiq。界面開發根據你使用的技術有所不同。如果使用MFC或是WinForm,基本上只能找專門美工畫圖。而簡單地應用皮膚庫,除了讓你的界面眼花繚亂外,在UX上沒有實質性的助益。如果使用WPF,微軟有ExpressionBlend和ExpressionDesign負責UX和與UI,是介于開發和美工中間的一類角色。

除了VS外,如果是多人開發一般還會需要搭建:持續集成環境,常見的工具是TeamCity或是http://cc.net

溝通平臺,常見的是用Email和各種IM,還可以用Wiki或是SharePoint保存每個人的知識和分享。如果時髦些,可以搭一個Jive。

知識方面(假設已經是一個程序員):開發一個軟件,比如QQ之前,你應該有一定的軟件開發基礎,但是并不需要先把所有需要的技術了解的一清二楚,沒有那個時間,也沒有意義。就算你知道你要做的東西需要算法知識,你需要把《算法導論》先拿來看一遍嗎?開發軟件最重要的,是對每個功能問出下面的問題:要做什么?做成什么樣?要達到怎么的效果?

要做到這些,存在哪些沒有解決的問題?

有哪些現有的技術

可以用來解決這個問題?

如何驗證結果?

然后才是去了解那些需要用的技術去解決你的問題。

至于具體的知識上面列出的工具要會用吧。

熟悉開發流程。這非常重要,比如Commit代碼的流程,發布新版本的流程,什么時候做Branch。這些不一定要正經地文檔化,但是一定要在團隊內部達成共識

,否則開發過程就是一片混亂。(人有可能覺得這和問題沒直接關系,但是要知道現在的軟件開發基本沒有一個人進行的,一個人的叫玩玩,愛怎么搞怎么搞。)

軟件銷售。這決定了你的軟件

1.是否需要數字版權保護機制2.是否需要接入支付體系軟件運營。這決定了你的軟件

1.是否需要技術支持?通過什么途徑提供技術支持?2.是否需要收集用戶信息?收集什么信息?實名還是匿名?3.是否使用第三方服務來降低運營和維護成本?(自己Host還是租?要不要使用GAE構建服務器端?)當地法律。根據當地法律,你的軟件,可能會被要求具有下列功能中的一部分:

1.用戶信息保護2.敏感內容過濾3.審查。(誰在用,用了哪些功能)有人可能覺會得上面這些點太大太泛,但這些的確是開發一款軟件要考慮的事情,而且是一開始就要考慮的事情。沒太明白題主具體到“Windows”的目的是什么。上面這些,無論是什么平臺上的軟件,都存在這些問題。Windows之于Linux或是Mac的不同,也就是使用的技術框架上有些差異,這些而差異對于程序員而言不應該是什么問題。因為原理都是一樣的,一樣的算法,一樣的TCP鏈接傳數據,一樣的數據加密,甚至可以做出一樣的界面統一用戶體驗。(當然你也可以做得完全不一樣。)