設計漫談
A. 教研活動《對聯漫談》教學設計
建立良好的師生關系是創造愉悅和諧的課堂氣氛的基礎。平日,教師要注意深入到學生中去,和學生打成一片,交知心朋友,建立起深厚的師生感情。在課堂教學中,教師要善於用親切的眼神、和藹的態度、熱情的贊語來縮短師生心靈的差距,真誠地關懷和幫助每個學生,充分尊重他們,信任他們。要允許學生在學習中出現錯誤,允許學生充分表達自己的見解,允許學生質疑問難,對他們充滿愛心、關心、熱心、耐心和信心,巧妙撥動學生的情緒之弦,使學生"親其師、信其道、樂其教"。
B. 漫談建築設計的依據
建築設計的要求
(一)滿足建築功能要求
滿足建築物的功能要求,為人們的生產和生活活動創造良好的環境,是建築設計的首要任務。
(二)採用合理的技術措施
正確選用建築材料,根據建築空間組合的特點,選擇合理的結構、施工方案,使房屋堅固耐久、建造方便。
(三)具有良好的經濟效果
設計和建造房屋要有周密的計劃和核算,重視經濟領域的客觀規律,講究經濟效果。房屋設計的使用要求和技術措施,要和相應的造價、建築標准統一起來。
(四)考慮建築美觀要求
建築物是社會的物質和文化財富,它在滿足使用要求的同時,還需要考慮人們對建築物在美觀方面的要求,考慮建築物所賦予人們精神上的感受。
(五)符合總體規劃要求
單體建築是總體規劃中的組成部分,單體建築應符合總體規劃提出的要求。建築物的設計,還要充分考慮和周圍環境的關系,例如原有建築的狀況、道路的走向、基地面積大小以及綠化等方面和擬建建築物的關系。新設計的單體建築,應使所在基地形成協調的外部空間組合和良好的室外環境。
二、建築設計的依據
(一)人體尺度和人體活動所需的空間尺度
(二)傢具、設備的尺小和使用它們的必要空間
(三)溫度、濕度、口照、雨雪、風向、風速等氣候條件
風向頻率玫瑰圖,即風玫瑰圖,是根據某一地區多年平均統計的各個方向吹風次數的百分數值,並按一定比例繪制,一般多用八個或十六個羅盤方位表示。玫瑰圖上所表示風的吹向,是指從外面吹向地區中心。
(四)地形、地質條件和地震烈度
地震區的房屋設計,主要應考慮:
(1)選擇對抗震有利的場地和地基
(2)房屋設計的體型,應盡可能規整,簡潔、避免在建築平面及體型上的凹凸
(3)採取必要的加強房屋整體性的構造措施
(4)從材料選用和構造做法上盡可能減輕建築物的自重
(五)建築模數和模數制
基本模數、分模數、擴大模數
基本模數、分模數、擴大模數
基本模數:選定的標准尺寸單位,用M 表示,1M=100mm
擴大模數:指基本模數的整數倍,3M、6M、12M、30M、60M等
分模數:1/10M、1/5M 、1/2M
模數數列的適用范圍:
(1)水平基本模數數列:主要用於門窗洞口和構配件斷面尺寸。
(2)豎向基本模數數列:主要用於建築物的層高、門窗洞口、構配件等尺寸。
(3)水平擴大模數數列:主要用於建築物的開間或柱距、進深或跨度、構配件尺寸和門窗洞口尺寸。
(4)豎向擴大模數數列:主要用於建築物的高度、層高、門窗洞口尺寸。
(5)分模數數列:主要用於縫隙、構造節點、構配件斷面尺寸。
模數數列的幅度
(1)水平基本模數的數列幅度為1M~20M。
(2)豎向基本模數的數列幅度為1M~36M。
(3)水平擴大模數數列的幅度:3M為3M~75M;6M為6M~96M;12M為12M~120M;15M為15M~120M;30M為30M~360M;60M為60M~360M,必要時幅度不限。
(4)豎向擴大模數數列的幅度不受限制。
(5)分模數數列的幅度:M/10為M/10~2M;M/5為M/5~4M;M/2為M/2~10M。
(六)建築設計規范和標准
參考資料:||
C. [轉]電路設計漫談之二:需要模擬嗎,模擬怎麼不管用
早期設計電路時沒有模擬這個概念,尤其是低速數字設計時。並不是這個不重要。感覺到模擬的重要性是在設計一個3GHz速率的電路時。 大多數情況下,或者初次使用模擬時總是感覺模擬的結果跟最後的測試對不上。尤其在做模擬電路的模擬時,比如運放等組成的放大電路。這其實不是模擬的問題而是 1)model的准確性 2)對實際電路的描述。 你怎麼看待電路圖?電路圖是否代表了所有設計信息?不是的。電路圖只是給你了一個所有集中參數元件的連接順序。大家知道電路的實質是用電場和磁場描述的。而電場和磁場的相互作用跟攜帶他們物體(元器件)的空間相對位置有關。也就是這些元器件的擺放位置,方向,和公用的通路(地,電源)會對電磁場的行為產生影響。所以一個電路圖只是攜帶了有限的設計信息,至少不是全部!具體來說,每個信號loop的大小和相互作用,在公用通路上的相互耦合,電感等元件產生的磁場對其他電路的影響,大信號(比如控制的輸出)對小信號(被檢測的弱信號)迴路的影響,等等都是應該考慮的。有時大家在糾纏數模混合設計是否該分地和怎麼分,其實你把每個信號都看成有一個loop,該loop會影響別人,也會被別人影響,分析起來就清晰多了。地和電源符號的使用往往使設計者忽略的這一因素。 一般做模擬會從電路圖開始編寫模擬的描敘。更有甚者有的人想用自動軟體直接從電路圖得到spice的網表。其實電路圖並沒有告訴你元器件是怎樣連接的,除了告訴你他們的連接順序外。電路圖上表示的是一根線,雖然你做模擬時已經考慮到了一個trace可以用傳輸線來描述。但在不同頻率下介電常數不是個常量,趨膚效應使得高頻下的trace thickness發生了變化。過孔對高頻影響最甚,過孔的model到現在也沒個精確的數學模型。過孔中non-functional pad產生的寄生電容,你是否想著model了?via stub呢?記得幾年前公司招一個人對他面試,他說起他的博士論文就是研究過孔的model。所以模擬不是一個簡單的事情。專業的公司有專門的modeling和模擬的工程師。做模擬不是學會了用模擬軟體就可以做的。就像比爾蓋茨用basic能寫出MS來一樣。 當你模擬的結果跟最後測試不一致時,可以考慮一下上邊提到的兩個問題。有篇文章說,一個簡單的放大電路,在一般人眼裡是幾個電阻和一個運放器件。在一個有經驗的工程師眼中是一個有若干傳輸線,寄生參數,干擾源,干擾迴路,以及非線性的復雜網路。當你看到電路圖背後隱含的那些復雜網路時,做模擬才能對你有幫助。另外兩點: 1)模擬不能替你設計電路,它只能驗證你的設計和你期待的結果是否相符 2)模擬不只是驗證工具,它的最終目的是代替大部分實驗台的作用 通常的設計流程是設計電路,模擬,實現,測試。當你發現測試結果跟模擬不相符時,你可能接下就修改電路版上的電路,加點電容拉,去掉雜訊了,調整放大倍數拉,使得最後得到你的指標。然後就去修改電路圖,再製版去了。且慢!這時你可能丟掉了一次非常珍貴的使你的水平提高到另一層次的機會! 正確的做法是測試結果與模擬不相符時,在確認不是製造和測試引起的之後,a)先根據實際情況調試你的模擬(可能是模型,可能是對實現的描述)使得模擬跟測試在預計的誤差之內 b)在模擬平台上調試你的設計,使得達到預期指標的模擬結果 c)根據模擬所做的修改來相應調試實際電路達到預期的指標。以上3步可能要需要有幾個來回。這樣最後做到模擬和實際測試一直後,你就積累了完全描述這個設計的模擬知識庫和經驗。下次做類似設計時,大大提高了你的一次設計成功率。最後的目的是達到在工作站上進行設計和調試,而不是在LAB的實驗台上。 話是這么說,可有多少人這么做,有多少人相信這么做有價值呢?進度的壓力,懶惰的慣性,認識的深度。。。。。。所以大俠永遠是少數,呵呵。
D. 軟體設計漫談之一:什麼是軟體設計
軟體設計是採用編程或腳本語言優雅地表達並解決現實需求的一門科學和藝術。優雅地表達想傳遞的意思是,所設計出來的軟體應當能容易被人理解、方便擴展和維護。從這一定義可以看出軟體設計首先是一門科學,是一門解決用戶需求的軟體科學。既然是科學,不可避免的要掌握相關的科學知識,比如數據結構、計算機組成原理、編程語言等等,而這些內容也正是大學計算機相關專業所傳授的知識。科學知識或許更加容易被量化,拿數據結構為例,一種演算法比另一種演算法是否更優可以從演算法的時間冗餘度和空間冗餘度進行衡量。
除了科學的部分,軟體設計還涉及藝術的范疇。既然是一門藝術,那就一定存在欣賞的問題,也就意味並不是每個從業人員都能欣賞這種藝術,而只有達到了一定的層次且形成了自己的思想後才能欣賞它。由於設計中藝術的非直觀性,造成其在現實中不容易被量化,因此難以形成相應的評估准則,進而造成在軟體行業容易被忽視。試想想,大學課程有多少內容是在教我們將軟體設計當作藝術進行欣賞並追求?
好的軟體設計能相對方便(甚至是很方便)地實現新的需求問題。需求分析是告訴我們做什麼,其顯然非常的重要,而設計更多地涉及怎麼做更好。既然對於設計的好壞不能完全通過量化的方式進行衡量,那如何去評價一個軟體設計的好壞呢?或者在進行軟體設計時,如何去思考以做出一個好的設計呢?這可以通過對一些軟體設計原則的把握來做到。設計原則可能有很多,但並不是每一個項目都要同時滿足所有的設計原則,另外,不同的項目其特性有可能使得有些設計原則並不適用。另外,設計原則也不是一成不變的,可能因項目的特點又可以抽取出另外的設計原則。筆者將在後續的文章中闡述日常工作中所遵守的軟體設計原則。
軟體設計是一個不斷提煉和抽象的過程。說它是一個提煉的過程,是因為在設計之初會想到很多需要考慮的因素,這些因素在設計工作沒有深入之前,並不能發現它們有些是重疊的,或者有些根本就不需要考慮。隨著設計的深入,會從眾多的因素中得到其中的關鍵因素並將這些因素付之於實踐。設計也是一個抽象過程,需要從眾多的表象中找到它們的共性,通過表達共性從而最終描述每個個性,而不應當局限於直接去描述每一個個性。設計的深入過程並不只是一味地思考,除非設計者以前有過類似的設計經驗,否則設計過程通常需要進行一定的代碼編寫工作,以輔助思考,這一點對於開發軟體架構師(系統架構師不包括在內)也應當是一樣的。
軟體設計是一個創造模型的過程。通過對需求的理解和抽象,好的設計將最終構造出一個模型,而且這個模型與現實世界的某樣東西可能是相類似的。這個模型除了實現了用戶的需求,還向他人展示了她自己是什麼模樣以及可能會如何行事。打個比方,如果有人發明了一種新的交通工具,他如何最為有效地表達這一新的交通工具到底是什麼樣的呢?是直接拿一張圖紙給他人並說你看看圖紙就知道了好呢?還是打一個大家都耳熟能詳的比方好呢?顯然,後者更好。如果他說這個新的交通工具與現在的轎車很像,只不過,如此一來,聽眾馬上就會想,這個新的交通工具有四個輪子、也有方向盤等等。顯然,後者能很快地讓聽眾利用其生活經驗快速的接收信息,而好的軟體設計也應當做到這一點。軟體設計時的模型創造過程,其實就是賦予軟體代碼生命的過程,由此看來一個好的設計應當是 有生命的。
軟體設計是一個做選擇的過程。人有時沒有選擇反而輕松。一個剛畢業的大學生如果只拿到了一個offer,他可能沒有選擇單位的煩惱,不論單位好壞都去報道就是了。但是,如果他拿了兩個offer,選擇的煩惱也就有了 是去A單位好呢?還是B單位好?不幸的是,軟體的設計過程往往存在大量的選擇。是用空間換時間好呢?還是用時間換空間好?是現在考慮可擴展性呢?還是將來?等等。因此,毫不誇張地說,設計是痛苦的,除非設計主題很簡單或直接了當。有苦當然也就有樂,在設計沒有最終定下來時,需要痛苦地思考和選擇,往往是一個覺得這個也不行、那個也不好的過程。但是,一旦設計最終定稿,會發現這就是我想要的設計,隨之而來的是三百六十度的大轉變,覺得這個也應當就是這樣,那個也應當是這樣,其結果是設計者能從中體會到一種美,並從中收獲樂趣。
軟體設計是一個在有限理性范圍內追求完美的過程。有限理性非常重要,設計者需要在各種條件允許的情況下做出合理的設計選擇。另外,促使設計者用心並痛苦地進行設計的動力是設計者追求完美的品德。