日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

從零開始系列,用C#做軟件產(chǎn)品:私人日記(二)開發(fā)方法(“從零開始”)

昨天寫的開篇,今天早晨起來一看,沒想到獲得了這么多網(wǎng)友的支持:

從零開始系列,用C#做軟件產(chǎn)品:私人日記(二)開發(fā)方法(“從零開始”)

說實話,沒想到,有點小興奮。不過興奮之后,又有點惶恐,突然開始擔(dān)心自己能力有限,寫不出讓大家感興趣的內(nèi)容,導(dǎo)致江湖中又多了一個騙子。不過箭已在弦上,臨陣退縮不是我的風(fēng)格,那就盡我所能吧,盡量讓大家有所收獲。

廢話不多說,我們正式開啟軟件產(chǎn)品設(shè)計的大門。

首先大概介紹下軟件開發(fā)方法。

有人可能會問,什么是軟件開發(fā)方法?你一個碼農(nóng)直接上代碼不就完了嗎,搞那么復(fù)雜?

如果是只解決某一個問題,那肯定直接上代碼最有效。但我們是一邊做產(chǎn)品設(shè)計,一邊寫教程,并不是簡單地教大家只做一個最底層的Coder,而是要讓大家了解更多的知識,提高視野,這樣才能設(shè)計出更好的產(chǎn)品。

比如同樣是做私人日記這個項目,不同人的開發(fā)方法可能會有很大不同:

  • A會事先把每個界面、每個類、每個數(shù)據(jù)庫表,甚至每步操作應(yīng)該有哪些用戶提示都全部都設(shè)計好,剩下的任務(wù)就是編碼就好了;
  • B則先做一個初步的界面,然后再在此基礎(chǔ)上不斷豐富元素,添加相應(yīng)的功能,隨著時間的推移,功能逐步完善;

看到這里,大家可以暫停下。設(shè)想一下:你是A還是B?

其實無論哪個,都沒有好壞對錯之分,只有是否適合:

A的方法更高效,更適合做需求非常明確的項目。如果不提前設(shè)計好,開發(fā)時就會造成理解偏差,如果做到最后發(fā)現(xiàn)跟之前需求不相符,就可能要重構(gòu),進(jìn)而影響開發(fā)進(jìn)度。所以如果你做的是客戶委托的定制項目,那么必須提前做好詳細(xì)設(shè)計,然后再跟客戶確認(rèn),以免最終客戶不認(rèn)可而無法交付。

B的方法更精準(zhǔn),更適合做自有產(chǎn)品研發(fā)。產(chǎn)品設(shè)計與開發(fā)的過程其實更多的是創(chuàng)作,很多事情是沒有定式的。哪怕簡單到一個按鈕的名稱,也可以有很多種叫法:保存、應(yīng)用、確認(rèn)、執(zhí)行、OK,也基本都能達(dá)意。另外創(chuàng)作是需要靈感的,可能琢磨了一天的功能都不滿意,突然晚上臨睡前一個靈感閃現(xiàn)就有了更好的方案。

我在本教程中采用B的方法,因為我不想給自己那么多的條條框框,我喜歡有很多的可能。比如很有可能隨著教程的更新,就會有用戶提出各種好玩的功能,然后我也認(rèn)同就加進(jìn)去了。就好像有些網(wǎng)絡(luò)寫手寫小說一樣,不到最后誰都無法知道結(jié)局,這多有意思!

看到這里,有人可能會問,這樣會不會太隨便了?20幾年的項目經(jīng)驗啊,就這?確實,如果按我上面的說辭,逼格是低點。但是,如果用我打工的那些年曾接觸過的一些理論來說,境界或許會高一點點,雖然道理都一樣。對我有深刻影響的理論有三個(因為只能記住這3個了)。理論的詳細(xì)內(nèi)容大家可以自行百度了解,我只講我認(rèn)為有用的:

一是微軟MSF(微軟解決方案框架)中的迭代開發(fā)和質(zhì)量投資

迭代開發(fā)就是先制訂一個小目標(biāo),然后實現(xiàn)它,然后繼續(xù)制訂下一個小目標(biāo),再實現(xiàn)它…如此往復(fù),一段時間后,你會發(fā)現(xiàn),已經(jīng)完成了若干個大目標(biāo)。

質(zhì)量投資則是把軟件質(zhì)量看成一種投資,既然是投資就要考慮投入產(chǎn)出比,而不是強調(diào)質(zhì)量第一。就好比學(xué)習(xí),80分提升到90分相對容易,而99分提升到100分可能就要多付出幾倍的努力,既然如此,我們不如把精力放在其他不足99分的學(xué)科上,相對更劃算。

二是金蝶實施方法論中的整體規(guī)劃、分步實施

整體規(guī)劃是確定方向和架構(gòu),樹立大局觀;分步實施的思想則跟迭代開發(fā)基本類似。

三是WBS工作分解結(jié)構(gòu))的概念

就是把一個大目標(biāo)分解成若干小目標(biāo),等小目標(biāo)都完成了,大目標(biāo)也就完成了。迭代開發(fā)是自下而上,WBS則是自上而下。

綜合以上,結(jié)合我們的產(chǎn)品設(shè)計思路,就基本確定了我們的開發(fā)方法:

1、整體規(guī)劃,制定各階段目標(biāo);

2、功能遞進(jìn)式增加,隨時可以加入新的;

3、每個功能作為一個迭代版本,把每個功能作為一個目標(biāo)分解成若干小目標(biāo);

4、注意質(zhì)量投資,條條大路通羅馬,能解決問題就好,別在一棵樹上吊死;

開發(fā)方法就是理論,有了理論指導(dǎo),就不會被后面可能出現(xiàn)的各種問題所困擾,它會指引你做出明智的選擇。

在上一篇文章中,我們制定了三個階段目標(biāo)。接下來,我們就開始進(jìn)入實操。

為了保證教程與GitHub(以后簡稱Git)代碼的一致性,需要大家預(yù)先安裝好Visual Studio 2019(以后簡稱VS),以方便今后的學(xué)習(xí)。

關(guān)于VS和Git,需要補充一下:

VS是微軟推出的代碼開發(fā)環(huán)境,可以方便的編寫和開發(fā)C#程序。有人說VS是收費的,說的沒錯,但是社區(qū)版對個人用戶是免費的,企業(yè)用戶收費。但對企業(yè)用戶的認(rèn)定標(biāo)準(zhǔn)是年收入100萬美元或電腦臺數(shù)在250臺以上,所以其實對絕大部分人來說,連企業(yè)用戶的資格都夠不上。

Git則是微軟提供的源代碼管理倉庫,可以方便的共享代碼。

如果大家在VS安裝或Git網(wǎng)站使用方面有疑問,可以在評論區(qū)留言,我會再發(fā)文專門介紹。

好了,接下來來完成今天的兩個小目標(biāo):一是創(chuàng)建一個.net項目,二是讓它能夠運行起來。

一、創(chuàng)建.net項目

打開VS,菜單依次:文件->新建->項目

從零開始系列,用C#做軟件產(chǎn)品:私人日記(二)開發(fā)方法(“從零開始”)

彈出的對話框中,上部的3個下拉框,我們依次選擇C#->所有平臺->桌面,下方會切換支持的項目類型??梢钥吹街С趾芏啵覀冞@個教程主要還是面向初學(xué)者,就從windows程序入手,其他的先不去關(guān)心。

從零開始系列,用C#做軟件產(chǎn)品:私人日記(二)開發(fā)方法(“從零開始”)

在下方選擇 windows 窗體應(yīng)用,注意不是windows 窗體應(yīng)用(.net framework)的那個(.net framework在微軟新的開發(fā)架構(gòu)中已經(jīng)被拋棄了,換成了大一統(tǒng)的.net),然后點右下角的下一步。

接下來:

從零開始系列,用C#做軟件產(chǎn)品:私人日記(二)開發(fā)方法(“從零開始”)

項目名稱就是我們這個階段的目標(biāo),因為目標(biāo)是Windows平臺下運行,我起名為Diary.Win,如果這個項目是新建項目,我們還需要為這個項目建立一個解決方案的名稱,因為以后還會加入第二、三階段的項目,以及其他類庫的項目,所以解決方案我起名為Diary。位置大家根據(jù)情況可以任意指定。

設(shè)置好以后點下一步。

接下來是創(chuàng)建項目的最后一步,選擇目標(biāo)框架。

  • 如果是考慮到產(chǎn)品是最大適配,應(yīng)該盡可能地選最低的,有些系統(tǒng)默認(rèn)不支持高版本的框架;
  • 如果需要用到最新的框架或最新的語言特性,則應(yīng)該選最高的。

這里我們就選.net 5,方便后續(xù)開發(fā)過渡。

從零開始系列,用C#做軟件產(chǎn)品:私人日記(二)開發(fā)方法(“從零開始”)

全部沒問題以后點創(chuàng)建。

稍等片刻,一個.net項目就創(chuàng)建好了。

從零開始系列,用C#做軟件產(chǎn)品:私人日記(二)開發(fā)方法(“從零開始”)

二、讓它能夠運行起來

初始界面大致分成4個區(qū)域

從零開始系列,用C#做軟件產(chǎn)品:私人日記(二)開發(fā)方法(“從零開始”)

  • 窗體設(shè)計界面用來設(shè)計用戶界面;
  • 文件管理器用來管理代碼文件;
  • 屬性窗口則可對窗口中的界面元素進(jìn)行精確的設(shè)置;
  • 輸出信息則為程序編譯或調(diào)試提供必要的信息,發(fā)現(xiàn)問題時可以快速定位;

現(xiàn)在我們想要程序跑起來,只需在工具條的運行圖標(biāo)點一下,VS就會幫我們自動編譯,并且運行起來。

從零開始系列,用C#做軟件產(chǎn)品:私人日記(二)開發(fā)方法(“從零開始”)

當(dāng)然,這只是一個空白的界面,除了左上角的一個Form1字樣,其他什么內(nèi)容都沒有。

從零開始系列,用C#做軟件產(chǎn)品:私人日記(二)開發(fā)方法(“從零開始”)

但不管怎樣,我們已經(jīng)邁出了第一步。

說實話上面兩個小目標(biāo)我自己都覺得辣眼睛,太水了。但是考慮教程既然是從零開始,看評論也真有一些之前沒用過VS的,索性就從最基本的寫起,不差這一天的更新。我也在這里保證一下,重復(fù)的內(nèi)容不會再出現(xiàn)第二次。

如果感興趣,別忘了關(guān)注我,以便及時獲取更新。

————————————————————————————–

對網(wǎng)友私信或評論做統(tǒng)一回復(fù)

以我對用戶的理解:如果有一個用戶向你提出問題,那么可能會有十個用戶有同樣的問題,但是他們沒有提出,所以針對用戶的提問統(tǒng)一回復(fù)下,以加深彼此的了解。

>>做一個私人日記是一個好的想法。請問一個45歲的人還能重頭學(xué)開發(fā)嗎?

我覺得只要有興趣就沒問題。

>>vs單機能裝嗎?必須要聯(lián)網(wǎng)裝嗎?我感覺好笨重,有沒有別的可以替代的能寫c#的?

我還是建議聯(lián)網(wǎng)裝,只裝C#5個G足夠了,VS與C#是絕配。不建議在這上面浪費時間。

>>期待教程,第三階段用什么技術(shù)呢?

我估計要排到明年了,那時MAUI .net6應(yīng)該成熟些了吧:)

>>感謝,會一直追隨,我這個C#愛好者最近發(fā)現(xiàn)裝不上前幾年下載的vs 2015 社區(qū)版,總說安裝包損壞,請問怎么解決,現(xiàn)在自學(xué)應(yīng)該下載哪個版本?

建議VS2019社區(qū)版。

做c#創(chuàng)業(yè)還行,用這門語言打工估計工資不高吧?

C#國內(nèi)生態(tài)目前確實要差些,不過工資不好說,物以稀為貴,現(xiàn)在的Java也快爛大街了吧?C#全棧開發(fā)還是需要很多時間才能修煉成的,游戲、醫(yī)療、金融行業(yè)用C#相對多些。

想學(xué)習(xí),怎么獲取教程?

教程剛開始做,每周更新1-3篇。代碼獲取方式文章下方有說明。

都是剛做,我會像寫網(wǎng)絡(luò)小說一樣寫教程:)

我最早只學(xué)過C語言和fortane語言,學(xué)這個C sharp行不行得通?

沒問題。不過對初學(xué)者我都是建議先看下windows核心編程、數(shù)據(jù)結(jié)構(gòu)、設(shè)計模式,理解了這3本書的內(nèi)容,所有語言基本上都只是語法上的區(qū)別。

我在為自己的小孩開發(fā)游戲,有興趣組個隊?

我也有過這個想法,但是感覺自己寫不動了:(

收徒不?

1對1的模式不符合互聯(lián)網(wǎng)思維,效率太低,看教程就可以:)

小團(tuán)隊,c#是不是比java效率高?

開發(fā)效率要看團(tuán)隊積累,java做項目有很多現(xiàn)成的代碼可以用,c#相對少些 運行效率肯定c#更高。

啥叫獨立開發(fā)者,能干啥?

這個目前還是一個比較模糊的概念。我覺得可以類比獨立音樂人:沒有任何簽約的唱片公司,自己創(chuàng)作,自己錄歌,自己宣傳,代表人物就是趙雷。對軟件開發(fā)來說,自己決定軟件產(chǎn)品的一切,包括但不限于功能、技術(shù)、盈利模式、市場推廣等等。

能干啥?我覺得是實現(xiàn)理想吧:)或者換種低調(diào)的說法,解決碼農(nóng)的35歲危機。

私人日記是做什么的,像one note一樣的軟件嗎?

類似吧。我覺得可能有誤會,我是借用做私人日記這個項目來做C#的教程,教學(xué)是主要目的,產(chǎn)品功能要服務(wù)于教學(xué)內(nèi)容,而不是要跟one note對標(biāo)去搶占市場。

————————————————————————————–

本教程已作為開源項目加入到Git,代碼內(nèi)容會隨教程實時更新,大家有興趣的話可以關(guān)注我,以獲得最及時的更新。私信:私人日記 可以來獲取Git的鏈接。

大家閱讀過程中有哪些看不懂或未盡興的地方,可以在評論區(qū)留言,我會先記下來在后續(xù)的教程中找機會再說。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
皮山县| 弥勒县| 水城县| 海口市| 灵武市| 大化| 洛川县| 会昌县| 天柱县| 龙海市| 聊城市| 福海县| 靖宇县| 武陟县| 房山区| 五寨县| 黄冈市| 兰溪市| 老河口市| 高碑店市| 淮北市| 和平区| 石泉县| 金寨县| 大荔县| 广西| 仪征市| 孙吴县| 乌兰县| 墨玉县| 铁力市| 绩溪县| 乌拉特中旗| 常熟市| 克拉玛依市| 含山县| 前郭尔| 十堰市| 呼伦贝尔市| 比如县| 罗田县|