<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    zhrb的空間

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      20 隨筆 :: 0 文章 :: 29 評論 :: 0 Trackbacks

    2008年3月18日 #

    jEdit,一款用java編寫的代碼編輯器,可定制性很強(qiáng),還有功能豐富的插件。
    官方網(wǎng)址:   http://www.jedit.org/
    先上一個官方網(wǎng)站其他人配置的圖片吧。然后隨便寫一些前陣子折騰出來的常用設(shè)置





     
     

    常用設(shè)置
        Utilities--Global Options
            Appearance(設(shè)置外觀,其中Swing look $ feel如果設(shè)置成Metal風(fēng)格,可以更改菜單等字體大小)
            Docking(設(shè)置插件、組件在編輯器中出現(xiàn)的位置,一般將FileBrowser設(shè)置在left,將console與Errolist設(shè)置在bottom)
            Editing(Tab witdh設(shè)置tab的空格數(shù),Indent width設(shè)置縮進(jìn)的空格數(shù),Soft(emulated with space)tabs用空格模擬tab)
            Gutter(編輯區(qū)左邊條狀區(qū)域)
                1.Line numbers(顯示行號),Gutter font
            Text Area(編輯區(qū))
                1.Text font(字體大小)
            View
                1.Show full path of buffer in title bar(在標(biāo)題欄顯示打開文件的完整路徑)
                2.show buffer switcher(buffer switcher,打開文件切換器)
            File System Browser
                1.Default path(打開browser時默認(rèn)打開的目錄)
            Plugin Manager
                1.Update mirror list(插件升級服務(wù)器鏡像列表)
                2.Install plugins in
                    jEdit setting directory(jEdit設(shè)置目錄,在windows操作系統(tǒng)下通常是在MyDocument目錄下的 .jedit 目錄)
                    jEdit application directory(jEdit程序目錄)

    jEdit的設(shè)置目錄(.jedit)
        存放jEdit設(shè)置、插件的目錄(可以備份此文件夾來保存自己的設(shè)置與插件)位置(在windows操作系統(tǒng)下通常
    是在MyDocument目錄下的 .jedit 目錄,也可以通過菜單Utilities--TroubleShooting--Activity log查看含有 message字
    樣的信息,一般包含.jedit的信息就是jEdit的設(shè)置目錄)

    常用插件及設(shè)置
        Plugins--plugin manager
            Install下可以選擇想要安裝的插件
            常用的插件
                console(控制臺)
                error list(錯誤列表)
                buffer tab(以標(biāo)簽頁的方式顯示打開文件)
                code book(代碼自動完成)
                java style(修飾代碼風(fēng)格)
                javainsight(反編譯)
        插件不僅需要安裝還需要設(shè)置,選擇plugin options
        常用設(shè)置
            console(general下選擇字體大小。Character encoding選擇編碼,請選擇GBK,否則無法顯示中文。Compile & run,選擇編程語言對應(yīng)的編譯器等)
            buffer tabs(選擇Enable BufferTabs by default)

    先寫這么多比較基礎(chǔ)的設(shè)置,還有更多強(qiáng)大功能還有待挖掘。嘿嘿
    posted @ 2010-03-02 22:49 zhrb 閱讀(7921) | 評論 (4)編輯 收藏

    原帖地址:
    http://www.infoq.com/cn/articles/use-uml-to-do-system-analysis

    業(yè)務(wù)很重要...呵呵
    posted @ 2008-06-25 23:06 zhrb 閱讀(290) | 評論 (0)編輯 收藏

    轉(zhuǎn)載:奧卡姆剃刀

    發(fā)表于:2008年6月25日 22時59分0秒評論(1) 舉報(bào)本文鏈接:http://user.qzone.qq.com/2882888/blog/1214405940
    發(fā)信人: Vulcain (龍★火神), 信區(qū): Philosophy
    標(biāo)  題: 轉(zhuǎn)載:奧卡姆剃刀
    發(fā)信站: 水木社區(qū) (Wed Jun 25 22:48:38 2008), 站內(nèi)
    Phil Gibbs 著 
    杉原廣 補(bǔ)充
    柯南 譯   
      奧卡姆剃刀(Occam's Razor, Ockham's Razor)是由14世紀(jì)邏輯學(xué)家、圣方濟(jì)各會修
    士奧卡姆的威廉(William of Occam)提出的一個原理。奧卡姆(Ockham)在英格蘭的薩里郡,那是他出生的地方。
      這個原理稱為“如無必要,勿增實(shí)體”(Entities should not be multiplied
    unnecessarily)。
        威廉使用這個原理證明了許多結(jié)論,包括“通過思辨不能得出上帝存在的結(jié)論”。這使他不受羅馬教皇的歡迎。  許多科學(xué)家接受或者(獨(dú)立的)提出了奧卡姆剃刀原理,例如萊布尼茲的“不可觀測事物的同一性原理”和牛頓提出的一個原則:如果某一原因既真又足以解釋自然事物的特性,則我們不應(yīng)當(dāng)接受比這更多的原因。
      對于科學(xué)家,這一原理最常見的形式是:
      當(dāng)你有兩個處于競爭地位的理論能得出同樣的結(jié)論,那么簡單的那個更好。
      在物理學(xué)中我們使用奧卡姆剃刀切掉形而上學(xué)的概念。愛因斯坦的狹義相對論與洛侖茲
    的理論就是一個范例。洛侖茲的理論認(rèn)為在以太中運(yùn)動的尺收縮、鐘變慢。愛因斯坦關(guān)于空—時變換的方程與洛侖茲方程在鐘慢尺短效應(yīng)上一致,但是愛因斯坦和龐加萊(法國數(shù)學(xué)家——譯注)認(rèn)為以太不能根據(jù)洛侖茲和麥克斯韋方程組檢測到。根據(jù)奧卡姆剃刀,以太就被排除了。
      這一原理也被用來證明量子力學(xué)的不確定性。海森堡從光的量子本性和測量效應(yīng)中推出了不確定原理。
      史蒂芬·霍金在他的《時間簡史》中解釋說:我們?nèi)匀豢梢韵胂瘢瑢τ谝恍┏匀坏纳铮嬖谝唤M完全地決定事件的定律,它們能夠觀測宇宙現(xiàn)在的狀態(tài)而不必干擾它。然而,我們?nèi)祟悓τ谶@樣的宇宙模型并沒有太大的興趣。看來,最好是采用稱為奧卡姆剃刀的原理,將理論中不能被觀測到的所有特征都割除掉。
      但是“不能確定以太的存在”和“以太的不存在”都不能僅僅根據(jù)奧卡姆剃刀推出。它可以區(qū)分兩個能做出同樣結(jié)論的理論,但是不能區(qū)分其他可能做出不同結(jié)論的理論。實(shí)驗(yàn)的證據(jù)仍然是必需的,并且奧卡姆本人支持經(jīng)驗(yàn)主義,而不是反對。
      厄恩斯特·馬赫提倡奧卡姆剃刀的一個版本,他稱作“經(jīng)濟(jì)原理”,表述為:“科學(xué)家應(yīng)該使用最簡單的手段達(dá)到他們的結(jié)論,并排除一切不能被認(rèn)識到的事物”。把它引入哲學(xué)就形成了實(shí)證主義哲學(xué),即認(rèn)為某物存在但無法觀測與根本不存在是一碼事。馬赫影響了愛因斯坦關(guān)于時空不是絕對的論述,但是他(馬赫)也把實(shí)證主義應(yīng)用到分子的概念。馬赫和他的追隨者認(rèn)為分子是形而上學(xué)的概念,因?yàn)樗鼈兲《荒鼙恢苯犹綔y到。這種主張不顧分子論在解釋化學(xué)反應(yīng)和熱力學(xué)上的成功。具有諷刺意味的是,當(dāng)使用經(jīng)濟(jì)原理拋棄了以太和絕對參照系的時候,愛因斯坦幾乎同時發(fā)表了一篇關(guān)于布朗運(yùn)動的論文,它證實(shí)了分子的實(shí)在性,這就打擊了實(shí)證主義的使用。這個故事意味著,我們不能盲目使用奧卡姆剃刀。正如愛因斯坦在他的《自傳筆記》中寫道:
      即使是大膽而天才的學(xué)者也會因?yàn)檎軐W(xué)上的偏見而妨礙他認(rèn)清事實(shí),這是一個很有趣的例子。
      人們常常引用奧卡姆剃刀的一個強(qiáng)形式,敘述如下:
      如果你有兩個原理,它們都能解釋觀測到的事實(shí),那么你應(yīng)該使用簡單的那個,直到發(fā)現(xiàn)更多的證據(jù)。
      對于現(xiàn)象最簡單的解釋往往比較復(fù)雜的解釋更正確。
      如果你有兩個類似的解決方案,選擇最簡單的。
      需要最少假設(shè)的解釋最有可能是正確的。
      ……或者以這種自我肯定的形式出現(xiàn):
      讓事情保持簡單!
      注意到這個原理是如何在上述形式中被加強(qiáng)的。嚴(yán)格的說,它們應(yīng)該被稱為吝嗇定律,或者稱為樸素原則。最開始的時候我們使用奧卡姆剃刀區(qū)分能夠做出相似結(jié)論的理論。現(xiàn)在我們試圖選擇做出不同結(jié)論的理論。這不是奧卡姆剃刀的本意。我們不用檢驗(yàn)這些結(jié)論嗎?顯然最終不是這樣,除非我們處于理論的早期階段,并且還沒有為實(shí)驗(yàn)做好準(zhǔn)備。我們只是為理論的發(fā)展尋求一種指導(dǎo)。
      這個原理最早至少能追溯到亞里士多德的“自然界選擇最短的道路”。亞里士多德在相信實(shí)驗(yàn)和觀測并無必要上走得太遠(yuǎn)。樸素原理是一個啟發(fā)式的經(jīng)驗(yàn)規(guī)則,但是有些人引用它,仿佛它是一條物理學(xué)公理。它不是。它在哲學(xué)和粒子物理中使用的很好,但是在宇宙學(xué)和心理學(xué)中就不是特別好,這些領(lǐng)域中的事務(wù)往往比你想象的還要復(fù)雜。或許引用莎士比亞的一句話要勝過引用奧卡姆剃刀:“天地之大, 赫瑞修, 比你所能夢想到的多出更多”(出自《哈姆雷特》,第一幕,第五景——譯注)
      樸素是主觀的,宇宙并不總是像我們認(rèn)為的那樣簡單。成功的理論往往涉及到對稱、美與簡單。1939年保羅·狄拉克寫道:
      研究者在把自然法則轉(zhuǎn)變?yōu)閿?shù)學(xué)形式的時候,應(yīng)該為數(shù)學(xué)的美而努力。對于簡單和美的需求往往是等價(jià)的,然而當(dāng)它們發(fā)生沖突的時候,后者應(yīng)該優(yōu)先。
      吝嗇原理不能取代洞察力、邏輯和科學(xué)方法。永遠(yuǎn)也不能依靠它創(chuàng)造或者維護(hù)一個理論。作為正確性的判別方法,只有邏輯上的連貫性和實(shí)驗(yàn)的證據(jù)才是絕對的。狄拉克的理論很成功,他構(gòu)造了電子的相對論場方程,并用它預(yù)言了正電子。但是他并沒有主張物理學(xué)僅僅應(yīng)該基于數(shù)學(xué)的美。他完全贊同實(shí)驗(yàn)檢驗(yàn)的必要性。
      最后的結(jié)論來自愛因斯坦,他本身也是一位格言大師。他警告說:
      “萬事萬物應(yīng)該盡量簡單,而不是更簡單。” 
    --
    如果我們仔細(xì)的研究唐詩宋詞,就會發(fā)現(xiàn)里面有全部已知和未知的現(xiàn)代數(shù)學(xué)和物理學(xué)定理。現(xiàn)在我確知李衛(wèi)公所寫的春宮解說詞里包含了費(fèi)爾馬定理的證明,但我沒法把它讀出來——這是因?yàn)橘M(fèi)爾馬定理的證明應(yīng)該是怎樣的,現(xiàn)在沒有人知道,或者說,現(xiàn)在還沒有人能夠證出費(fèi)爾馬定理。它就如隋時發(fā)明的避孕套,到唐代就失傳了,因此給了洋鬼子機(jī)會,讓他們可以再發(fā)明一次。因?yàn)樗呀?jīng)失傳,所以我也不知該怎樣解釋這些說明詞。最簡單的解釋是:那是一些性交的訣竅。但是不應(yīng)該是這樣子的。不應(yīng)該的原因是有我們存在。我們的任務(wù)就是把性交的訣竅解釋成數(shù)學(xué)定理,在宋詞里找出相對論,在唐詩里找出牛頓力學(xué)。——王小波《紅拂夜奔》
    ※ 來源:·水木社區(qū) http://newsmth.net·[FROM: 210.78.58.*]
    posted @ 2008-06-25 23:03 zhrb 閱讀(381) | 評論 (0)編輯 收藏

    發(fā)信人: kabbesy (Arthas), 信區(qū): Java
    標(biāo)  題: zz做JAVA開發(fā)要掌握的知識
    發(fā)信站: 水木社區(qū) (Sun Jun  1 23:42:19 2008), 站內(nèi)

    http://www.javaeye.com/topic/183513


    來自http://www.bjsxt.com/zixue/zixuezhilu_1.html


    一:J2SE
    面向?qū)ο螅庋b、繼承、多態(tài)
    內(nèi)存的分析
    遞歸
    集合類、泛型、自動打包與解包、Annotation
    IO
    多線程、線程同步
    TCP/UDP
    AWT、事件模型、匿名類
    正則表達(dá)式
    反射機(jī)制

    2:數(shù)據(jù)庫(Oracle或者M(jìn)ySQL)
    SQL語句
    多表連接,內(nèi)外連接, 子查詢等
    管理表、視圖、索引、序列、約束等
    樹狀結(jié)構(gòu)存儲
    存儲過程、觸發(fā)器
    數(shù)據(jù)庫設(shè)計(jì)三范式、

    3:JDBC
    JDBC基礎(chǔ)
    連接池
    樹狀結(jié)構(gòu)存儲與展現(xiàn)
    DataSource & RowSet
    JDBC連接Oracle及MySQL

    4:HTML_CSS_JAVASCRIPT
    html、css、javascript基礎(chǔ)語法
    JavaScript Form判斷
    Dom編程基礎(chǔ)(事件處理等)
    JS常用效果如TreeView、下拉聯(lián)動等
    JS學(xué)習(xí)方法
    JS調(diào)試方法
    DreamWeaver初步(建立HTML、Table、Form、CSS)等

    5:Servlet & JSP

    tomcat基礎(chǔ)
    servlet基礎(chǔ)
    web.xml配置基礎(chǔ)
    web application的結(jié)構(gòu)
    servlet生命周期
    request response等常用方法
    ServletContext類
    HTTP協(xié)議基礎(chǔ)(GET POST)
    Cookie
    Session
    Application

    JSP的幾種語法(包括JSTL等)注意在項(xiàng)目中練習(xí),不要拘泥于語法細(xì)節(jié)而裹步不前。

    6:Struts
    多層架構(gòu)理論
    Model 1 and Model 2
    Struts基本概念
    MVC
    Action與業(yè)務(wù)邏輯類的關(guān)系
    在Struts與JSP之間傳遞數(shù)據(jù)
    Struts處理流程(控制流)
    Struts TagLib(了解常用的)
    JSTL
    ActionForm
    字段收集
    上傳文件
    類型轉(zhuǎn)換
    DTO
    動態(tài)Action Form
    驗(yàn)證框架
    ActionForward 轉(zhuǎn)發(fā)與重定向
    動態(tài)生成ActionForward
    全局與局部的ActionForward
    Action Forward Scope
    UnknownActionMapping
    Action的線程安全
    I18N
    如何切換語言環(huán)境
    Struts異常處理機(jī)制 程序處理 自動處理 自定義異常處理器
    Struts的多模塊配置

    7:XML
    (XML/XSL、XSLT/DTD、SCHEMA等基礎(chǔ)的概念、關(guān)于Java的編程可以暫時扔在一邊)

    8:Hibernate
    OR Mapping原理
    Hibernate基礎(chǔ)開發(fā)步驟
    Hibernate基本接口(重點(diǎn)Session)
    普通屬性映射
    關(guān)聯(lián)關(guān)系映射
    Native SQL
    inverse lazy cascade
    繼承關(guān)系映射
    HQL
    性能優(yōu)化 一級緩存 二級緩存 查詢緩存
    事務(wù)與并發(fā) 悲觀鎖、樂觀鎖
    OpenSessionInView
    CurrentSession
    (至于JTA、聯(lián)合主鍵、自然主鍵、動態(tài)主鍵、Any類型 Creteria Queries Intercepter and Event 自定義類型等,可以暫時扔在一邊)

    9:Spring
    IOC/DI
    Spring配置
    Spring架構(gòu)
    AOP及Spring AOP
    聲明式事務(wù)(AOP)
    Spring + Hibernate Spring支持Web
    Scope
    (其他的Spring模塊對于自學(xué)來說可以暫時扔在一邊)

    10:EJB3.0
    J2EE架構(gòu)基礎(chǔ)(JTA JMS等)
    EJB基礎(chǔ)(地位及基本理論、分類等)
    Annotation
    Ant編譯與部署EJB
    Session Bean
    EJB的依賴注入
    Persistence API
    (可以用JBoss學(xué)習(xí)EJB3.0)

    11:至于SOA,對于自學(xué)的同學(xué)來說,暫時不用特別關(guān)注。

    梳理一下,你就會發(fā)現(xiàn)東西不是想象中的那么多呀!

    --
    The pact is sealed!


    ※ 來源:·水木社區(qū) newsmth.net·[FROM: 125.33.176.*]

    posted @ 2008-06-02 12:01 zhrb 閱讀(389) | 評論 (1)編輯 收藏

    應(yīng)用lucene建立簡單的索引軟件
    可以使用lucene進(jìn)行程序的編寫

    發(fā)信人: minos (卡妙), 信區(qū): NewSoftware
    標(biāo) 題: 有什么軟件能夠?yàn)閛ffice文檔建立索引目錄?
    發(fā)信站: 水木社區(qū) (Mon May 12 11:16:28 2008), 站內(nèi)

    就如同word的索引,它是為word里面的文字建立索引。

    能有個方便的軟件能為doc,ppt,xls文檔建立索引,并添加注釋就好了

    posted @ 2008-05-12 21:33 zhrb 閱讀(283) | 評論 (0)編輯 收藏

    主要功能:為用戶群建立群組,群組中含有任務(wù)分發(fā)與管理、論壇、發(fā)放通知、資源共享(照片、文件等)。每個用戶都有自己的信息中心,里面包含任務(wù)、信息、個人功能。成熟以后,可以為用戶開發(fā)相應(yīng)的客戶端,類似qq。其實(shí)本質(zhì)上就是開發(fā)一個個人信息中心。

    可能涉及的難點(diǎn):權(quán)限管理、任務(wù)分排與管理


    以后的工作:C/S

     

     自己隨便的一個想法,不知道國內(nèi)有沒有已經(jīng)做得很成熟的系統(tǒng)可供參照,希望大家可以幫忙介紹一下。呵呵

    posted @ 2008-04-20 00:54 zhrb 閱讀(314) | 評論 (0)編輯 收藏

    發(fā)信人: gentboy (老流氓,老水車,老男人就是快樂的一家), 信區(qū): Java
    標(biāo)  題: 填坑:oo的前世今生及后世
    發(fā)信站: 水木社區(qū) (Fri Apr 18 13:27:06 2008), 站內(nèi)

    摘要:需求一直在擴(kuò)展,邏輯復(fù)雜度以更高的速度增加,而人的邏輯處理能力沒有任何變?
    。oo解決了一個stage的問題,但是類似于軟件危機(jī)的問題肯定還會出現(xiàn),期待新的邏輯或
    者工具來解決這個問題。


    N多年前,軟件危機(jī)的出現(xiàn)基于三個事實(shí),一個是需求迅速增長,功能要求越來越多;再者軟件的復(fù)雜度并不是與軟件的體積成正比的,復(fù)雜度的增長速度要遠(yuǎn)大于代碼的行數(shù)的增長速度。

    還有一個沒有被強(qiáng)調(diào)的原因就是,人的能力是有限的,對于復(fù)雜的軟件,沒有任何一個人能掌握所有的邏輯,即使他了解所有的邏輯,也不可能同時考慮到這些邏輯。因此,人們在編寫軟件時,只能在有限的視野內(nèi)工作,這種情況本身就決定了軟件中的缺陷難以避免。

    oo被認(rèn)為是解決軟件危機(jī)一個比較好的方法,主要原因就是oo將整個軟件中的大量邏輯和數(shù)據(jù)封裝起來,從而使得程序員不必關(guān)注所有的細(xì)節(jié),而只關(guān)注與自己負(fù)責(zé)的部分有關(guān)的細(xì)節(jié)。這大大減輕了程序員的負(fù)擔(dān),從而也使軟件規(guī)模得到了較大的擴(kuò)大。

    但是,需求仍在繼續(xù)增長,而且邏輯的復(fù)雜度又以更快的速度增長。用oo編程的程序員們漸漸感覺到即使大量的邏輯被封裝了,剩下的要處理的邏輯仍然足夠復(fù)雜。

    而且,oo也是一把雙刃劍,如果封裝的方法不當(dāng),同樣會給別人的開發(fā)造成麻煩。而且不同的程序員往往對同一個應(yīng)用有著不同的理解。這使得協(xié)作中的沖突很常見。

    因此大量的針對具體應(yīng)用的framework出現(xiàn)了,比如orm, ejb, struts等等,這些framework從某種程度上定義了某種具體應(yīng)用的范式,把應(yīng)用中有共性的部分拿出來,而讓程序員做那些有特性的東西。這又讓程序員少考慮了不少東西。

    到目前為止,framework的確起了不小的作用,也出現(xiàn)了很多超大型的framework,能讓程序員寫很少的代碼就能完成原來可能要18個人干半年才能完成的任務(wù)。

    但是,framework也有其本身的缺陷,一個是framework往往本身就足夠復(fù)雜,難以學(xué)習(xí)已經(jīng)是一些大型的framework的通病。另外framework本身也有質(zhì)量問題,過分依賴或者不正確的使用framework的后果同樣是致命的。

    framework替你做的事情越多,程序員往往就越難以使用它,但是如果他做的東西少,程序員就會喊自己做了很多重復(fù)勞動。因此這兩者之間要有一個平衡。從這個角度來講,spring做的比jboss要好。

    展望將來,需求的規(guī)模還會繼續(xù)增長,而邏輯的復(fù)雜度仍然會以相對于需求的復(fù)雜度的指數(shù)形式增長。但是人的腦子跟幾十年前沒什么區(qū)別,還是同時能處理那么多邏輯。尖銳問題肯定會出現(xiàn)。

    但是解決問題的方法呢?單單靠語言特性恐怕已經(jīng)難以再做什么。人們應(yīng)當(dāng)再次反思程序這個概念本身,提出新的解決方案。或許人們會開發(fā)出更為實(shí)用的framework以定義業(yè)務(wù)邏輯,更為智能化的集成開發(fā)/協(xié)作環(huán)境工具來擴(kuò)展我們的大腦,或者其它...


    --


       晶晶姑娘是個好姑娘


    ※ 修改:·gentboy 于 Apr 18 13:28:32 2008 修改本文·[FROM: 210.13.85.*]
    ※ 來源:·水木社區(qū) newsmth.net·[FROM: 210.13.85.*]

    posted @ 2008-04-19 10:34 zhrb 閱讀(255) | 評論 (0)編輯 收藏

    發(fā)信人: NewXin (睡貓|糖果氣泡), 信區(qū): ITExpress
    標(biāo)  題: 技術(shù)是一種加速器 但重要的不是技術(shù)
    發(fā)信站: 水木社區(qū) (Mon Apr 14 12:32:38 2008), 站內(nèi)

    噴嚏網(wǎng):原創(chuàng) www.dapenti.com
    (一)

     多年以前,我有個學(xué)生在一家做“工作流引擎”的軟件小公司里工作。他遇到了一些麻煩

     什么是“工作流引擎”?簡單地說,是一種可以自動執(zhí)行流程的工作元件:使用者設(shè)置好
    基本的參數(shù),該元件就能按照預(yù)先設(shè)定的工作步驟和業(yè)務(wù)的流程往下走。

     聽起來很酷,看上去很美。

     學(xué)生的麻煩是:公司的產(chǎn)品做得歪瓜劣棗的,開發(fā)人員不夠,人員參差不齊。總的說來,
    技術(shù)問題很多,公司也不太重視。

     他來問我他該怎么辦。

     我說:其實(shí),這不是技術(shù)的問題。而是在于以公司這樣的實(shí)力進(jìn)入這樣的小眾市場,完全
    沒有能力。高端的“工作流引擎”肯定有市場,但是都是很多IT的老大才做。中低端的應(yīng)用
    ,需要的不是自動化軟件,而是人事關(guān)系。這就更與技術(shù)無關(guān)。

     技術(shù)是很好的想法,但是沒有生根的地方。從商業(yè)和個人投資來看,就沒有商業(yè)價(jià)值。

     我給他的建議是:趕快離場,做點(diǎn)其他的。


    (二)

     我在軟件行業(yè)做過10年以上的技術(shù)工作。我知道技術(shù)人員在某一個階段上會有一個通病,
    就是:太把技術(shù)當(dāng)回事兒。

     怎么說呢?就是說總是從技術(shù)的觀點(diǎn)去考慮問題,想到希望發(fā)生的事情,而不會從一個普
    通人的角度看待現(xiàn)實(shí)。

     理解技術(shù)是好事情,你可以飛快地想象到未來,看到一種趨勢。但是,你一定要明白,這
    種趨勢可能發(fā)生,也可能只是一種錯覺。

     技術(shù)是一種加速器。但是你不知道,這是成功的加速器,還是速死的加速器。

     技術(shù)的思維角度,如果放錯了位置,很多時候,會成為認(rèn)知上的障礙。你以為你看到的東
    西是重要的,其實(shí),人們根本不是按你想象的方式需要,或者生活。

     技術(shù)是一種異化過程。當(dāng)你以為你是專業(yè)人士的時候,你也有可能忘記:作為普通人,他
    們的感覺應(yīng)該是什么樣子。


    (三)

     我經(jīng)常在小區(qū)的周圍散步。我看見各種各樣的小商鋪,開辦的熱火朝天。我最喜歡的是一
    家小面館。這些店鋪的生意各不相同,但都有一個共同之處:跟我的職業(yè)沒有任何的關(guān)系。也就是說,他們都是一些遠(yuǎn)離互聯(lián)網(wǎng)的又小又好的生意。比如:洗衣店、蛋糕房、小型超市。

     我很清楚,至少在我活著的時候,我還不能從網(wǎng)絡(luò)上下載一碗面。這種想法,總是提醒我
    注意在偉大的傳統(tǒng)行業(yè)面前,保持謙卑。

     看著很多2-3個人,10來個人開辦的火熱的小生意。我就在想:什么樣的生意才算是好生意呢?能活著的生意,當(dāng)然是好的。這些生意還應(yīng)該有如下的特點(diǎn):

     【1】有廣泛的需求,無認(rèn)知障礙,應(yīng)用的技能簡單,如:吃飯、穿衣。這是誰都需要,誰都會的事情;

     【2】市場龐大,不是只需幾家就能搞定的,而且要方便。需求是有循環(huán)、反復(fù)的;

     【3】滿足需求的產(chǎn)品種類獨(dú)特,或者豐富;

     作為技術(shù)的互聯(lián)網(wǎng),是如何改變了傳統(tǒng)的市場?

     優(yōu)勢:

     【1】技術(shù)跨越了地域的限制,信息加速,需求被聚合;

     【2】信息流動得更快,用戶間的接觸增加,消費(fèi)變得可以評價(jià);

     【3】營銷的方式發(fā)生了根本的變化

     劣勢:

     【1】信任成本的建立很高;

     【2】商品的可接觸成本很高;

     【3】需求到消費(fèi)的轉(zhuǎn)換率不高;

     這樣看來,我們就很容易理解這樣的事實(shí):互聯(lián)網(wǎng)上的生意看著人多,其實(shí)一點(diǎn)都不便宜
    。而且,還不太容易存活。難怪那么多人,成天鬧著要忽悠風(fēng)投。

     能自個賺錢了,還需要風(fēng)投干嘛。


    (四)

     任何一個成功的互聯(lián)網(wǎng)項(xiàng)目或產(chǎn)品,至少應(yīng)該具有這樣的基本特征:

     【1】首先要是一個很好的生意。

     上面說過了,無論是用月球的技術(shù)還是火星的技術(shù),生意還是生意,生意的本質(zhì)并沒有改
    變。

     【2】要找到一個跟這種生意匹配的業(yè)務(wù)形式,或是商業(yè)模式:

     扎堆,是人多。人多好辦事,但是成本也高。而且,面越廣,實(shí)質(zhì)就越少。

     任何一個商業(yè)系統(tǒng)都是中性系統(tǒng),不可能是完美的系統(tǒng)。所以說,長尾是一種浪漫的說法
    。對長尾的正確理解應(yīng)該是:傳統(tǒng)系統(tǒng)能做5個特性的話。長尾目前也最多能擴(kuò)展到10或者
    15。

     如果首先有80/20的業(yè)務(wù)存在,那么互聯(lián)網(wǎng)的長尾就會看上去非常優(yōu)美。如果沒有,長尾就等于是零。

     所以,那些辦起博客,相冊就叫web 2.0的網(wǎng)站,肯定是:非死不可(FaceBook) 。同時
    ,如果能符合上面的兩個條件的社區(qū)或管它叫什么的網(wǎng)站,卻會活得很好。

     我相信基本的一點(diǎn):當(dāng)所有人談?wù)撋虡I(yè)模式,談錢的時候。他們都要回到最根本的問題上
    --商業(yè)的需求從何而來,是怎么樣的一個規(guī)模,在某個具體的平臺下,技術(shù)能提供怎么樣的突破,該如何提供什么樣的產(chǎn)品和服務(wù)的形式來滿足這些需求。

     雖然有些社區(qū)是非死不可了,但我仍然看好這樣的一類網(wǎng)站:婚戀市場,如世紀(jì)佳緣類的
    ,還有育兒市場,如寶寶樹之類的。

     這樣的網(wǎng)站首先是有一個無限廣闊的市場空間,而且網(wǎng)站的內(nèi)容跟業(yè)務(wù)結(jié)合的非常緊密。
    只要不犯大的錯誤,堅(jiān)持下去,這樣的業(yè)務(wù)本身不僅可以賺大錢,而且可以一直做很久。因?yàn)椋芏鄻I(yè)已存在的傳統(tǒng)生意,被證明已經(jīng)是好生意。

     我一直認(rèn)為:web 2.0類的網(wǎng)站發(fā)展,是電子商務(wù)普及的前哨戰(zhàn)。很多的炮灰會成就電子商務(wù)的明天。我敢打賭:活下來的都是不太關(guān)心是2還是1的人。

     最后,提一下作為web 2先驅(qū)的豆瓣:盡管?

     如果首先有80/20的業(yè)務(wù)存在,那么互聯(lián)網(wǎng)的長尾就會看上去非常優(yōu)美。如果沒有,長尾就等于是零。

     所以,那些辦起博客,相冊就叫web 2.0的網(wǎng)站,肯定是:非死不可(FaceBook) 。同時
    ,如果能符合上面的兩個條件的社區(qū)或管它叫什么的網(wǎng)站,卻會活得很好。

     我相信基本的一點(diǎn):當(dāng)所有人談?wù)撋虡I(yè)模式,談錢的時候。他們都要回到最根本的問題上
    --商業(yè)的需求從何而來,是怎么樣的一個規(guī)模,在某個具體的平臺下,技術(shù)能提供怎么樣的突破,該如何提供什么樣的產(chǎn)品和服務(wù)的形式來滿足這些需求。

     雖然有些社區(qū)是非死不可了,但我仍然看好這樣的一類網(wǎng)站:婚戀市場,如世紀(jì)佳緣類的
    ,還有育兒市場,如寶寶樹之類的。

     這樣的網(wǎng)站首先是有一個無限廣闊的市場空間,而且網(wǎng)站的內(nèi)容跟業(yè)務(wù)結(jié)合的非常緊密。
    只要不犯大的錯誤,堅(jiān)持下去,這樣的業(yè)務(wù)本身不僅可以賺大錢,而且可以一直做很久。因?yàn)椋芏鄻I(yè)已存在的傳統(tǒng)生意,被證明已經(jīng)是好生意。

     我一直認(rèn)為:web 2.0類的網(wǎng)站發(fā)展,是電子商務(wù)普及的前哨戰(zhàn)。很多的炮灰會成就電子商務(wù)的明天。我敢打賭:活下來的都是不太關(guān)心是2還是1的人。

     最后,提一下作為web 2先驅(qū)的豆瓣:盡管開始人多勢大了,也加了很多功能,但是,本身的特色也在喪失。豆瓣賦予了自己太多的使命。我覺得謙卑一點(diǎn)還是比較好。我喜歡作為讀
    書工具的豆瓣,而不太喜歡作為交友工具的豆瓣。 一會兒是關(guān)注,一會兒又是好友。一會
    兒是廣播,一會兒又是日記。

     如果功能太多,只能讓人不知所措。面越廣,實(shí)質(zhì)就越少。

     我最喜歡《玩具總動員》里面主人翁的第一句話:focus,speed!

     我的理解是:專注,才有速度。

    --

    ※ 來源:·水木社區(qū) http://newsmth.net·[FROM: 202.108.130.*]

    posted @ 2008-04-14 19:31 zhrb 閱讀(300) | 評論 (0)編輯 收藏

    發(fā)信人: seableu (地球是天上一顆星), 信區(qū): JavaExpress
    標(biāo)  題: 面向?qū)ο蟮乃季S方法 [zz]
    發(fā)信站: BBS 水木清華站 (Sat Jan  8 20:02:47 2005), 站內(nèi)

        剛才看到一篇文章,是有關(guān)面向?qū)ο蟮乃季S方法的,感覺對我很有啟發(fā),貼出來大家一起看,呵呵。
        原文鏈接:http://blog.csdn.net/wooaoo/archive/2004/07/30/56163.aspx

    ------------------------------------------------------------------------
    面向?qū)ο蟮乃季S方法
    作者:范凱
    E-mail: robbin_fan@yahoo.com.cn

    我是從學(xué)習(xí)Java編程開始接觸OOP(面向?qū)ο缶幊?,剛開始使用Java編寫程序的時候感覺很別扭,因?yàn)槲以缫粤?xí)慣用C來編寫程序,很欣賞C的簡潔性和高效性,喜歡C簡練而表達(dá)能力豐富的風(fēng)格,特別忍受不了Java運(yùn)行起來慢吞吞的速度,相對冗長的代碼,而且一個很簡單的事情,要寫好多類,一個類調(diào)用一個類,心里的抵觸情緒很強(qiáng)。

    我對Java的面向?qū)ο蟮奶匦宰聊チ季茫哉J(rèn)為有所領(lǐng)悟,也開始有意識的運(yùn)用OOP風(fēng)格來寫程序,然而還是經(jīng)常會覺得不知道應(yīng)該怎樣提煉類,面對一個具體的問題的時候,會覺得腦子里千頭萬緒的,不知道怎么下手,一不小心,又會回到原來的思路上去。

    舉個例子,要發(fā)廣告郵件,廣告郵件列表存在數(shù)據(jù)庫里面。倘若用C來寫的話,一般會這樣思考,先把郵件內(nèi)容讀入,然后連接數(shù)據(jù)庫,循環(huán)取郵件地址,調(diào)用本機(jī)的qmail的sendmail命令發(fā)送。

    然后考慮用Java來實(shí)現(xiàn),既然是OOP,就不能什么代碼都塞到main過程里面,于是就設(shè)計(jì)了三個類:

    一個類是負(fù)責(zé)讀取數(shù)據(jù)庫,取郵件地址,調(diào)用qmail的sendmail命令發(fā)送;
    一個類是讀郵件內(nèi)容,MIME編碼成HTML格式的,再加上郵件頭;
    一個主類負(fù)責(zé)從命令讀參數(shù),處理命令行參數(shù),調(diào)用發(fā)email的類。

    把一件工作按照功能劃分為3個模塊分別處理,每個類完成一件模塊任務(wù)。

    仔細(xì)的分析一下,就會發(fā)現(xiàn)這樣的設(shè)計(jì)完全是從程序員實(shí)現(xiàn)程序功能的角度來設(shè)計(jì)的,或者說,設(shè)計(jì)類的時候,是自低向上的,從機(jī)器的角度到現(xiàn)實(shí)世界的角度來分析問題的。因此在設(shè)計(jì)的時候,就已經(jīng)把程序編程實(shí)現(xiàn)的細(xì)節(jié)都考慮進(jìn)去了,企圖從底層實(shí)現(xiàn)程序這樣的出發(fā)點(diǎn)來達(dá)到滿足現(xiàn)實(shí)世界的軟件需求的目標(biāo)。

    這樣的分析方法其實(shí)是不適用于Java這樣面向?qū)ο蟮木幊陶Z言,因?yàn)椋绻挠肅語言,封裝兩個C函數(shù),都會比Java實(shí)現(xiàn)起來輕松的多,邏輯上也清楚的多。

    我覺得面向?qū)ο蟮木柙谟诳紤]問題的思路是從現(xiàn)實(shí)世界的人類思維習(xí)慣出發(fā)的,只要領(lǐng)會了這一點(diǎn),就領(lǐng)會了面向?qū)ο蟮乃季S方法。

    舉一個非常簡單的例子:假使現(xiàn)在需要寫一個網(wǎng)頁計(jì)數(shù)器,客戶訪問一次頁面,網(wǎng)頁計(jì)數(shù)器加1,計(jì)數(shù)器是這樣來訪問的

    http://hostname/count.cgi?id=xxx

    后臺有一個數(shù)據(jù)庫表,保存每個id(一個id對應(yīng)一個被統(tǒng)計(jì)訪問次數(shù)的頁面)的計(jì)數(shù)器當(dāng)前值,請求頁面一次,對應(yīng)id的計(jì)數(shù)器的字段加1(這里我們忽略并發(fā)更新數(shù)據(jù)庫表,出現(xiàn)的表鎖定的問題)。

    如果按照一般從程序?qū)崿F(xiàn)的角度來分析,我們會這樣考慮:首先是從HTTP GET請求取到id,然后按照id查數(shù)據(jù)庫表,獲得某id對應(yīng)的訪問計(jì)數(shù)值,然后加1,更新數(shù)據(jù)庫,最后向頁面顯示訪問計(jì)數(shù)。

    現(xiàn)在假設(shè)一個沒有程序設(shè)計(jì)經(jīng)驗(yàn)的人,他會怎樣來思考這個問題的呢?他會提出什么樣的需求呢?他很可能會這樣想:

    我需要有一個計(jì)數(shù)器,這個計(jì)數(shù)器應(yīng)該有這樣的功能,刷新一次頁面,訪問量就會加1,另外最好還有一個計(jì)數(shù)器清0的功能,當(dāng)然計(jì)數(shù)器如果有一個可以設(shè)為任意值的功能的話,我就可以作弊了。

    做為一個沒有程序設(shè)計(jì)經(jīng)驗(yàn)的人來說,他完全不會想到對數(shù)據(jù)庫應(yīng)該如何操作,對于HTTP變量該如何傳遞,他考慮問題的角度就是我有什么需求,我的業(yè)務(wù)邏輯是什么,軟件應(yīng)該有什么功能。

    按照這樣的思路(請注意,他的思路其實(shí)就是我們平時在生活中習(xí)慣的思維方式),我們知道需要有一個計(jì)數(shù)器類 Counter,有一個必須的和兩個可選的方法:

    getCount()  // 取計(jì)數(shù)器值方法
    resetCounter()  // 計(jì)數(shù)器清0方法
    setCount()  // 設(shè)計(jì)數(shù)器為相應(yīng)的值方法

    把Counter類完整的定義如下:

    public class Counter {
      public int getCount(int id) {}
      public void resetCounter(int id) {}
      public void setCount(int id, int currentCount) {}
    }

    解決問題的框架已經(jīng)有了,來看一下如何使用Counter。 在count.cgi里面調(diào)用Counter來計(jì)數(shù),程序片斷如下:

      //  這里從HTTP環(huán)境里面取id值
      ...
      Counter myCounter = new Counter();  // 獲得計(jì)數(shù)器
      int currentCount = myCounter.getCount(id);  // 從計(jì)數(shù)器中取計(jì)數(shù)
      //  這里向客戶瀏覽器輸出
      ...

    程序的框架全都寫好了,剩下的就是實(shí)現(xiàn)Counter類方法里面具體的代碼了,此時才去考慮具體的程序語言實(shí)現(xiàn)的細(xì)節(jié),比如,在getCount()方法里面訪問數(shù)據(jù)庫,更新計(jì)數(shù)值。

    從上面的例子中看到,面向?qū)ο蟮乃季S方法其實(shí)就是我們在現(xiàn)實(shí)生活中習(xí)慣的思維方式,是從人類考慮問題的角度出發(fā),把人類解決問題的思維方式逐步翻譯成程序能夠理解的思維方式的過程,在這個翻譯的過程中,軟件也就逐步被設(shè)計(jì)好了。

    在運(yùn)用面向?qū)ο蟮乃季S方法進(jìn)行軟件設(shè)計(jì)的過程中,最容易犯的錯誤就是開始分析的時候,就想到了程序代碼實(shí)現(xiàn)的細(xì)節(jié),因此封裝的類完全是基于程序?qū)崿F(xiàn)邏輯,而不是基于解決問題的業(yè)務(wù)邏輯。

    學(xué)習(xí)JDBC編程的經(jīng)典錯誤問法是:“我怎樣封裝對數(shù)據(jù)庫的select操作?”

    面向?qū)ο蟮脑O(shè)計(jì)是基于解決業(yè)務(wù)問題的設(shè)計(jì),而不是基于具體編程技術(shù)的設(shè)計(jì)。我不會去封裝select語句的,我只封裝解決問題的業(yè)務(wù)邏輯,對數(shù)據(jù)庫的讀取是在業(yè)務(wù)邏輯的編碼實(shí)現(xiàn)階段才去考慮的問題。

    回過頭看上面那個發(fā)廣告郵件的例子,應(yīng)該如何應(yīng)用面向?qū)ο蟮乃季S方法呢?

    對于一個郵件來說,有郵件頭,郵件體,和郵件地址這三個屬性,發(fā)送郵件,需要一個發(fā)送的方法,另外還需要一個能把所有郵件地址列出來的方法。所以應(yīng)該如下設(shè)計(jì):

    類JunkMail

    屬性:
      head
      body
      address
    方法:
      sendMail()    // 發(fā)送郵件
      listAllMail() // 列郵件地址

    用Java來表示:

    public class JunkMail {
      private String head;
      private String body;
      private String address;
      public JunkMain() {  // 默認(rèn)的類構(gòu)造器
        // 從外部配置文件讀郵件頭和郵件體
        this.head=...;
        this.body=...;
      }

      public static boolean sendMail(String address) {
        //  調(diào)用qmail,發(fā)送email
      }

      public static Collection listAllMail() {
        //  訪問數(shù)據(jù)庫,返回一個郵件地址集合
      }
    }

    當(dāng)把JunkMail設(shè)計(jì)好了以后,再調(diào)用JunkMail類完成郵件的發(fā)送,將是非常輕松的事情。

    如果說傳統(tǒng)的面向過程的編程是符合機(jī)器運(yùn)行指令的流程的話,那么面向?qū)ο蟮乃季S方法就是符合現(xiàn)實(shí)生活中人類解決問題的思維過程。

    在面向?qū)ο蟮能浖治龊驮O(shè)計(jì)的時候,要提醒自己,不要一上來就去想程序代碼的實(shí)現(xiàn),應(yīng)該拋開具體編程語言的束縛,集中精力分析我們要實(shí)現(xiàn)的軟件的業(yè)務(wù)邏輯,分析軟件的業(yè)務(wù)流程,思考應(yīng)該如何去描述和實(shí)現(xiàn)軟件的業(yè)務(wù)。畢竟軟件只是一個載體,業(yè)務(wù)才是我們真正要實(shí)現(xiàn)的目標(biāo)。

    但是在設(shè)計(jì)過程中,心里卻往往在擔(dān)心,如果我完全不去考慮程序代碼的實(shí)現(xiàn)的話,那么我怎么知道我的設(shè)計(jì)一定合理呢?我怎么知道我設(shè)計(jì)的類、接口一定可以實(shí)現(xiàn)呢?(是個問題:()所以經(jīng)常可以看到的現(xiàn)象就是:

    在設(shè)計(jì)過程中,雖然知道不能過早考慮代碼實(shí)現(xiàn),但是每設(shè)計(jì)一個類,一個接口,心里都要不知不覺的用自己熟悉的編程語言大概的評估一下,看看能否編出來,因此,一不小心,就會又回到按照程序功能實(shí)現(xiàn)的思路進(jìn)行設(shè)計(jì)的老路上去了。

    舉個例子來說明,在做Web程序設(shè)計(jì)的時候,經(jīng)常要遇到分頁顯示數(shù)據(jù)的情況。比如說需要把系統(tǒng)中所有的用戶都列出來這樣的功能。假設(shè)使用User類來表示用戶,增加用戶addUser(),刪除用戶deleteUser(),查詢所有用戶listUsers()方法。而數(shù)據(jù)庫中有一個user表,一條記錄是一個用戶的信息。下面考慮一下User類的方法的實(shí)現(xiàn):

    addUser()和deleteUser()方法都好實(shí)現(xiàn),就是對數(shù)據(jù)庫增加記錄和刪除記錄。對于listUsers()方法,其實(shí)就是對user表的select,取出一個記錄集。但是該怎么從listUsers()方法中得到所有用戶的列表呢?

    一個方法調(diào)用的返回值只有一個,沒有多個,所以很多情況下采用的辦法就是返回值定義為集合類型,比如Vector。這樣就可以在listUsers()方法的具體代碼實(shí)現(xiàn)的時候,從數(shù)據(jù)庫依次取出一個個記錄,插入到Vector里面來。在主程序里面,調(diào)用listUsers()方法可以返回一個Vector,然后再對Vector遍歷操作,就可以得到用戶列表了。

    public class User {

      public static void addUser(...) {
        //  數(shù)據(jù)庫insert一條記錄
      }

      public static void deleteUser(...) {
        //  數(shù)據(jù)庫delete一條記錄
      }

      public Vector listUsers(...) {
        //  數(shù)據(jù)庫select結(jié)果放到一個集合里面
      }
    }

    這樣的設(shè)計(jì)基本合理,但是仍然有點(diǎn)小問題。因?yàn)樵谠O(shè)計(jì)的時候,就考慮到了用Java的集合類Vector來實(shí)現(xiàn)對不定長數(shù)據(jù)集的存放,因而違反了面向?qū)ο笤O(shè)計(jì)的一個原則:在設(shè)計(jì)的時候不應(yīng)過早的考慮具體程序語言的實(shí)現(xiàn)。所以必須用抽象的方法,和具體實(shí)現(xiàn)無關(guān)的方法來表達(dá)業(yè)務(wù)邏輯。

    我們知道,通常對具有集合特征的數(shù)據(jù)結(jié)構(gòu)進(jìn)行遍歷通常可以使用next和hasNext方法,next實(shí)現(xiàn)取下一個用戶,hasNext判斷是否還有元素。 因此我們定義一個接口Iterator,這個接口中定義兩個方法next和hasNext:

    public interface Iterator {
      public boolean hasNext() {}
      public Object next()  {}
    }

    而User類的listUses方法返回值改為Iterator接口的實(shí)現(xiàn)類:

    public class User {
      ...
      public Iterator listUsers() {
      }
      ...
    }

    這樣就把User類的設(shè)計(jì)和具體的實(shí)現(xiàn)方法分離開了,因?yàn)榇藭r任何實(shí)現(xiàn)了next()和hasNext()方法的類都可以做為listUsers的返回值,都可以被用來表達(dá)“用戶列表”,而不僅僅可以使用Vector而已。比如,我可以用ArrayList來表達(dá)用戶列表,因?yàn)锳rrayList也實(shí)現(xiàn)了Iterator,當(dāng)然我也可以自己專門寫一個類來存放用戶列表,只要實(shí)現(xiàn)next()和hasNext()方法就行了。

    這樣在具體的編寫代碼的時候,程序員具有了最大的靈活性,可以根據(jù)具體的情況,采用不同的編程方法來存放用戶列表。特別是降低了程序的耦合度,提高了程序的可移植性。對于上面那個JunkMail的listAllMail()方法也同樣應(yīng)該改為接口類型。

    然后,在主程序里面就這樣來使用User類的listUsers方法:

    User myUser = new User();
    Iterator iterator = myUser.listUsers();
    while (iterator.hasNext()) {
      iterator.next();
    }

    這樣就可以完全不用考慮程序代碼實(shí)現(xiàn)了,從高層次上把功能抽象出來,定義成為接口,同時又可以把系統(tǒng)設(shè)計(jì)的很合理,完全根據(jù)業(yè)務(wù)的需求來進(jìn)行設(shè)計(jì)。

    結(jié)語

    通過上面的幾個例子的設(shè)計(jì)說明,使用面向?qū)ο蟮乃季S方法,其實(shí)是一個把業(yè)務(wù)邏輯從具體的編程技術(shù)當(dāng)中抽象出來的過程,而這個抽象的過程是自上而下的,非常符合人類的思維習(xí)慣,也就是先不考慮問題解決的細(xì)節(jié),把問題的最主要的方面抽象成為一個簡單的框架,集中精力思考如何解決主要矛盾,然后在解決問題的過程中,再把問題的細(xì)節(jié)分割成一個一個小問題,再專門去解決細(xì)節(jié)問題。

    因而一旦牢牢的抓住了這一點(diǎn),你就會發(fā)現(xiàn)在軟件設(shè)計(jì)和開發(fā)過程中,你自己總是會不知不覺的運(yùn)用面向?qū)ο蟮乃季S方法來設(shè)計(jì)和編寫程序,并且程序的設(shè)計(jì)和開發(fā)也變得不再那么枯燥,而一個合理運(yùn)用面向?qū)ο蠹夹g(shù)進(jìn)行設(shè)計(jì)和架構(gòu)的軟件,更是具備了思維的藝術(shù)美感。

    最后,愿面向?qū)ο蟮乃季S方法也能給您的程序設(shè)計(jì)之路帶來創(chuàng)作的樂趣。



    --
            有一名年輕人名字叫seableu,
            他的速度遠(yuǎn)勝于光,
            一天,他啟程旅行,
            但卻于前一天就返回了!


    ※ 來源:·BBS 水木清華站 http://smth.org·[FROM: 212.194.215.*]

    posted @ 2008-03-25 17:26 zhrb 閱讀(440) | 評論 (3)編輯 收藏

    轉(zhuǎn)某個大牛關(guān)于需求分析的一段評論:

    發(fā)信人: zms (來福), 信區(qū): Java
    標(biāo)  題: Re: 這個怎么解決?
    發(fā)信站: 水木社區(qū) (Tue Mar 18 11:58:58 2008), 站內(nèi)

    這么解決:

    1.  需求分析,把 當(dāng)前 的需求搞清楚
    2.  需求分析,把 未來 可能出現(xiàn) 的需求搞清楚
    3.  需求分析,把 可能擴(kuò)展 以及發(fā)揮 的需求搞清楚
    4.  需求分析,預(yù)料 可能出現(xiàn) 的 變態(tài) 需求
    5.  需求分析, 把 以上需求加以 綜合 引申
    6.  照需求設(shè)計(jì)編碼之,沒有什么特殊之處,愛采用什么技術(shù)都行

    posted @ 2008-03-18 12:47 zhrb 閱讀(738) | 評論 (1)編輯 收藏

    主站蜘蛛池模板: 777成影片免费观看| 95老司机免费福利| 日本一道本不卡免费 | 国产成人免费午夜在线观看| 手机在线免费视频| 亚洲人成影院在线无码观看| 亚洲AV成人精品网站在线播放| 亚洲一区二区三区精品视频| 国产精品亚洲片在线花蝴蝶| eeuss草民免费| 1000部无遮挡拍拍拍免费视频观看| 成在人线AV无码免费| 亚洲一级特黄大片无码毛片| 久久久影院亚洲精品| 亚洲国产精品一区二区三区在线观看| 色偷偷亚洲第一综合网| 成人精品一区二区三区不卡免费看 | 亚洲精品91在线| 精品国产_亚洲人成在线| 国产拍拍拍无码视频免费| 动漫黄网站免费永久在线观看| 日韩亚洲精品福利| 综合自拍亚洲综合图不卡区| 国产精品亚洲专区无码牛牛| a级成人毛片免费图片| 成人免费淫片在线费观看| 夜夜春亚洲嫩草影院| 亚洲五月综合网色九月色| 国产福利免费视频| A级毛片内射免费视频| 亚洲熟女一区二区三区| 久久国产亚洲精品| 精品成人免费自拍视频| 国产大片91精品免费观看男同| 亚洲伊人tv综合网色| 老司机午夜在线视频免费| 88xx成人永久免费观看| 亚洲免费日韩无码系列 | 亚洲伊人久久精品| 中文字幕的电影免费网站| 女性自慰aⅴ片高清免费|