<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  Delphi程序設計  (http://www.hufushizhe.com/bbs/list.asp?boardid=76)
    ----  最近關于delphi python java 和設計的一些想法  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=76&id=2565)

    --  作者:wangxinxin
    --  發布時間:2010-12-14 10:50:19
    --  最近關于delphi python java 和設計的一些想法
    每個程序員就是藝術家,每個系統構架師都是哲學家

    這段時間我一直在思考各種設計上面的問題,原來一直寫delphi和一些其他腳本語言。對java一直沒有碰,這段時間看的比較多,也寫了一些小的程序,過程不說,1個月下來感覺只有四個字:不堪重負 ToT,可能你們還記得前段時間我抱怨了一下java的類庫之間的復雜關系,讓我完全沒有任何的線索

    隨即切換到python重新實現一些功能,也許是有了前面的經驗,寫的輕松了很多,雖然這段時間我連很多python的基本用法都沒學完,比如那個lambda函數,新奇呀~

    用twisted寫了一個server,10多行代碼,java那邊用mina還沒有實現邏輯就已經4、5個java文件了,當然大部分代碼ide都幫忙寫了,不過java類庫之間的邏輯關系復雜程度可見一斑。

    以我對這兩個語言的了解程度,還不足以對他們評頭論足,我發現他們在設計思路上有一些很有意思的地方,寫下來,大家看看。

    delphi聞名是他的RAD套路,還有就是所謂的“優雅”,因為寫出來的代碼規范而且可讀性強,不過很遺憾,delphi的rad貌似也沒有太大的進展了,至于用“begin end”來保持的優雅,我持保留意見,呵呵。期待后續的版本能繼續發揚RAD,這次支持泛型和unicode就很不錯,要是再多些語法糖就好了,恩啊恩啊。delphi仍然是我windows平臺下開發的不二選擇。
    python的設計思路很像delphi,走的是rad的套路,用python寫東西的時候,明顯感覺到是拋開了詳細設計的,就是一切都面向實現功能,他的語言設計是鼓勵你這么做的。python強調了函數和模塊,他的面向對象我到反而覺得有點半調子,不過無所謂,這些是意識形態上的東西,能解決問題就好。
    而用java的時候,我還沒開始寫一行邏輯代碼,已經被迫實現了4、5個接口了,而且我在沒有寫完之前,還不能把他們整合起來,也不知道是對是錯。心里懸著,感覺不舒服。

    很有意思的是,python的思路很接近我最初寫程序的時候,什么都不知道,只要把東西做出來就好的那種思路,所謂初級程序員的做法。不過這個不是全部,python的開發過程非常強調自省,也就是重構,說白了就是重新寫。而且目前的開發中更加注重的是在各種測試的情況下進行重構,也就是是有保障的重構,而非程序員一時性起,寫了也不知道對不對。我個人覺得這個是符合邏輯的,在沒有了解一個東西的時候做再多的設計都是空的,我原來也嘗試過,也看到過開發中到最后,完全和最初的設計沒有關系。失去控制,全靠程序員自己努力,更要命的是,牛B的SA還不愿意承認……

    python可以做到這一點,是因為python代碼很精簡,程序員寫作的時間很短,就算是重構這個時間消耗也比其他語言低很多,我覺得這是python做的最好的地方,他給這種“初級程序員”的開發模式提供了一個升級的可能

    這段時間也很關心各種語言的效率,不可否認,java的jvm虛擬機是一個很厲害的東西,java的執行效率在高端機器上和C在一個水平,一個可以自動管理內存的語言做到這個地步,實在讓人驚嘆。同時java的開發效率比C又高了不知道多少倍。所以在服務器端java可以說當之無愧的王者。

    這次準備放棄java轉而用python的主要原因其實是考慮到開發效率和rad的需求。前段時間考慮的方案是用java寫框架和效率要求嚴格的地方,然后用jython實現邏輯和效率要求不高的地方,不過這個想法首先被jython的超級低效率擺了一道,這個低效非常明顯而且不是幾十倍的問題,
    然后自己感覺java的各種代碼之間各種交互很多,設計上找不到rad的感覺,我也會設計很多接口,封裝,然后工廠,不知道是不是被引誘了呵呵。
    然后就是這次做的東西有探索的性質在里面,所以我自己是沒有太多經驗的,整個開發過程我預算了1次完全的重構和數次的迭代的重構。

    現在我基本上決定用python寫原型,先跑,然后如果效率上出了問題,profile一下,找問題的地方,用psyco編一下,如果還不行,就直接寫C的擴展或者用jtype在java里面做好,python里面調用。個人感覺python比較合適我的思路,也許是因為我不是一個合格的SA,我只是一個程序員圖片點擊可在新窗口打開查看
    多process的情況我也推翻了我原來的設計,盡量減少process之間的狀態共享,把程序都往單進程順序執行上堆,直到我決定寫erlang的哪一天,呵呵

    對于general purpose的框架來說,開發者一定是對這個領域很有經驗的,所以可以抽象出一套比較好的邏輯框架,然后實現成各種接口,工廠,封裝,分層來保證靈活性,這個在python的twisted庫里面也是一樣的,虧他們居然用python半調子的面向對象搞整了這么多東西出來。不過還好他們暴露出來的接口并不復雜,也就是一些回調和事件
    不過在面臨專業領域的問題的時候,這種一來就高層建模的方式或許就有點行不通了,因為沒有人敢站起來拍胸膛說,這個項目所有需求我都了解了。而且大部分需求都在根據時間變化。所以導致開始建模的那些封裝到后面可能會變成完全不適用或者需要大量適配才能使用的東西


    另外這段時間突然感覺各種語言蜂擁而起,而起很多都有自己的明確的主題,
    比如erlang對并發的處理簡直就是一絕,
    scala在jvm上的表現,整合的非常好,
    還有我最喜歡的跨平臺pascal:lazarus今天也剛剛出了0.9.26版本完美支持mac平臺的新界面框架(好像叫carbon把),跨平臺的native程序開發估計也只有他能做了,
    ruby新版的效率居然比python2.6還要高,好吧我承認,我沒有選ruby和jruby是因為不太喜歡他的語法- -,感覺啰嗦
    groove是瞄準ruby去的,不過現在還差一截

    最近看到有句話很喜歡:程序設計有兩種思路,一種是設計的很簡單以至于明顯沒有缺陷,一種是設計的很復雜以至于沒有明顯的缺陷 圖片點擊可在新窗口打開查看

    以上是這段時間的一些感受,水平很有限,拉拉雜雜一堆,行家眼里看來肯定是漏洞百出,說出來讓大家笑話了。歡迎拍磚

    主站蜘蛛池模板: 精品人妻系列无码一区二区三区| 中文字幕中出在线| 狠狠综合久久久久尤物丿| 国产成人久久精品二区三区| www.日韩三级www.日日爱| 新视觉yy6080私人影院| 亚洲女初尝黑人巨高清| 男人肌肌捅女人肌肌视频| 国产午夜无码精品免费看| 91精品国产人成网站| 女人扒开裤子让男人桶| 久久天天躁狠狠躁夜夜免费观看| 欧美在线视频一区| 别揉我胸啊嗯上课呢的作文| 色费女人18毛片a级毛片视频 | 91www永久在线精品果冻传媒| 嫩草影院在线视频| 久久水蜜桃亚洲AV无码精品| 欧美jizzhd精品欧美| 人妻少妇精品中文字幕av蜜桃| 精品真实国产乱文在线| 国产成人无码av| 884aa四虎在线| 在线|一区二区三区| 中国女人一级毛片| 斗罗大陆动漫免费观看全集最新| 亚洲中文字幕无码日韩| 欧美日韩一区视频| 做暧暧免费小视频| 精品一区二区三区四区五区六区| 国产免费插插插| 黄色网址大全免费| 国产精品视频一| va亚洲va欧美va国产综合| 巨肉黄暴辣文高h文奶汁| 久久国产精品久久久久久| 日韩美aaa特级毛片| 亚洲日本中文字幕天堂网| 正在播放国产精品放孕妇| 动漫成人在线观看| 精品国产一区二区三区久久|