亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

編程是一種“組合的藝術(shù)”

系統(tǒng) 1649 0

編程是一種“組合的藝術(shù)”

—— WPF 實(shí)例分析

金旭亮

有這么一句名言—— 政治是一種妥協(xié)的藝術(shù) 。這一規(guī)律同樣適用于軟件技術(shù)。就我個(gè)人的觀點(diǎn),軟件開發(fā)在一定意義上是一種“組合的藝術(shù)”,優(yōu)秀的軟件工程師類似于優(yōu)秀的廚師,能將一些常見的原料變成一盤色香味俱全的美味佳肴。

為何說編程是一種“組合的藝術(shù)”?且讓我慢慢道來。

眾所周知,在軟件開發(fā)過程中,每名軟件工程師都要掌握大量的編程知識(shí),比如如何訪問數(shù)據(jù)庫,如何控制線程的推進(jìn)順序等,掌握這些知識(shí)是順利進(jìn)行開發(fā)的必要條件。然而,僅有這些就夠了嗎?僅僅掌握了這些編程知識(shí)就足以開發(fā)出優(yōu)秀的軟件?

在我看來,開發(fā)者還需要掌握“組合”的藝術(shù),你必須知道在某個(gè)完成特定功能的程序中,你可以組合哪些基本的構(gòu)造塊,而這些基本的構(gòu)造塊又以何種方式優(yōu)雅地組合在一起,構(gòu)成一個(gè)有機(jī)的整體。

基本的構(gòu)造塊不僅僅指可以直接拿來復(fù)用的軟件組件(或者是 SOA 中的 Service ),還包括可以在不同項(xiàng)目間復(fù)用的典型代碼(比如如何將一個(gè) double 類型的數(shù)字保留兩位小數(shù)的典型代碼段)、技術(shù)解決方案(比如各種設(shè)計(jì)模式)或軟件架構(gòu)(比如成熟的多層分布式組件化系統(tǒng)框架、基于管道的系統(tǒng)架構(gòu))等等。

我喜歡將軟件開發(fā)中用到的構(gòu)造塊稱為“七巧板”,而每一個(gè)成形的程序都是用這些七巧板拼出的圖形。

編程是一種“組合的藝術(shù)”

1 七巧板

如何開發(fā)出好的軟件,不取決于你基于什么平臺(tái),使用什么技術(shù),甚至也不完全取決于你的技術(shù)能力和對(duì)技術(shù)內(nèi)幕的深刻把握,而取決于你是如何組合這些基本構(gòu)造塊的。

在某項(xiàng)軟件技術(shù)的學(xué)習(xí)過程中,你實(shí)際上完成的是“形成軟件構(gòu)造塊”的任務(wù),而在軟件項(xiàng)目實(shí)際開發(fā)過程中,你實(shí)際上完成的是“使用現(xiàn)有軟件構(gòu)造塊”拼“七巧板”的過程。

這個(gè)有效并且成功地“拼圖”的過程,就是我們軟件工程理論中有關(guān)軟件開發(fā)過程與方法部分的內(nèi)容。

明了這些思想,能指導(dǎo)我們更有效地學(xué)習(xí)軟件技術(shù)。

自學(xué)的過程,就是“形成軟件構(gòu)造塊”的過程。

開發(fā)的過程,就是“將軟件構(gòu)造塊”組合為完成某一特定功能的程序的過程。

作為一名教師,我很關(guān)注如何幫助學(xué)生更高效地學(xué)習(xí)軟件技術(shù),培養(yǎng)軟件技能,就將這個(gè)思想進(jìn)一步地推廣與拓展了:

軟件技術(shù)教學(xué)的過程,就是將“軟件構(gòu)造塊”組合為真實(shí)軟件的過程展示給學(xué)生的過程 ,先讓學(xué)生進(jìn)行 模仿 ,然后他就學(xué)會(huì)了 創(chuàng)造

重要的是學(xué)會(huì)方法,而非掌握知識(shí)。

下面,我以 WPF 技術(shù)為例,展示一個(gè)教學(xué)實(shí)例。

這是一個(gè)類似于 Windows “資源管理器”的程序,完全采用 WPF 進(jìn)行開發(fā)。

先看一下最初的“原型”:

編程是一種“組合的藝術(shù)”

2 MyFileBrowser 的最初版本

這是最終成品:

編程是一種“組合的藝術(shù)”

3 MyFileBrowser 的最終版本

可以看到,原始版本與最終版本實(shí)在是差異巨大,整個(gè)開發(fā)過程我設(shè)定了 10 個(gè)里程碑:

編程是一種“組合的藝術(shù)”

4 MyFileBrowser 10 個(gè)里程碑

在整個(gè)開發(fā)過程中,每個(gè)里程碑都在前一個(gè)的基礎(chǔ)上增加功能和更正發(fā)現(xiàn)的 BUG 。

整個(gè)項(xiàng)目用到了多項(xiàng)具體 WPF 編程技術(shù)(此即“軟件構(gòu)造塊”),以下是最重要的幾項(xiàng):

數(shù)據(jù)模板、資源、值轉(zhuǎn)換器、數(shù)據(jù)觸發(fā)器、平臺(tái)調(diào)用、數(shù)據(jù)分組與排序、多線程。

解剖這樣一個(gè)程序的開發(fā)過程,就能基本掌握 WPF 開發(fā)中最重要最常用的技術(shù),并對(duì)軟件“拼圖”的方法與過程有直觀了解。通過模仿這種迭代的開發(fā)方式,學(xué)生就能逐步掌握有效的開發(fā)方法,掌握組合的藝術(shù),培養(yǎng)出必要的開發(fā)技能,最終成長為一名優(yōu)秀的軟件工程師。

只有在戰(zhàn)爭中才能學(xué)會(huì)戰(zhàn)爭,同樣的,只有在實(shí)踐中才能增長能力。

動(dòng)手“拼圖”吧,期待著看到能讓人眼睛一亮的優(yōu)秀軟件作品!

=====================

載MyFileBrowser示例源碼及相關(guān)文件

(注:上傳了三次,第一次上傳的壓縮包不知什么原因損壞了,我就第二次上傳。但 第二次上傳的文件久久不能在首頁出現(xiàn),也不知跑哪去了,更郁悶的是它現(xiàn)在不允許我重新上傳了,一上傳就說:此文件已上傳過!暈,不讓上傳你得給出原有的鏈接??!現(xiàn)在又看不到,又不讓重新上傳,也不允許 上傳者刪除自己上傳的文件……

沒辦法,從壓縮包中移除一個(gè)文件,然后改名,修改資源描述,第三次上傳。

過兩分鐘刷新,第二次上傳的文件鏈接出現(xiàn)了,但其字節(jié)數(shù)居然為0,點(diǎn)擊下載,報(bào)告找不著文件!

還好第三次上傳的可以正確下載和解壓。

上傳個(gè)小文件,折騰了我近1小時(shí)。 CSDN的下載頻道設(shè)計(jì)得太讓人郁悶了?。?!

編程是一種“組合的藝術(shù)”


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 成人免费视频在线看 | 国产免费一区二区三区香蕉精 | 日本天天谢天天要天天爱 | 国产美女拍拍拍在线观看 | 久久亚洲私人国产精品va | 开心久久婷婷综合中文字幕 | 2019精品国产品免费观看 | 久久精品中文字幕不卡一二区 | 亚洲欧美日产综合一区二区三区 | 亚洲欧美日韩不卡一区二区三区 | 免费看日韩欧美一级毛片 | 91热精品 | 久久99免费 | 久热这里只精品99国产6_99 | 一区二区三区在线观看视频 | 一级理论片免费观看在线 | 天天看片日日夜夜 | 99热成人精品热久久669 | 亚洲 欧美 中文 日韩欧美 | 天天色综网 | 久久亚洲精品中文字幕 | 国产高清视频 | 热热涩热热狠狠色香蕉综合 | 猫咪www免费人成在线观看网址 | 在线欧美日韩国产 | 久久免费资源福利资源站 | 成年超爽大片免费视频播放 | 中文字幕不卡一区2021 | 久久99精品久久久久久噜噜 | 色综合色综合色综合色综合网 | 国产亚洲欧美久久精品 | 精品一区二区三区在线观看视频 | 中文字幕国产综合 | 精品久久久久久国产91 | 日本高清中文字幕 | 天天干天天玩天天操 | 色片网| 99精品国产在现线免费 | 亚洲人成一区 | 91正在播放极品白嫩在线观看 | 一级亚洲 |