隨想錄(我們應該編寫什麼樣的軟體)

2021-07-23 07:48:25 字數 1340 閱讀 3651

最近,我一直在思考,我們應該編寫什麼樣的軟體。或者可以換一種問法,客戶自己需要什麼樣的軟體。如果編寫軟體只是為了自娛自樂,類似於大學作業那種,那麼軟體編成什麼樣其實不是那麼重要。但是如果軟體是需要銷售出去的,或者是作為硬體的一部分銷售給客戶使用,那麼我們關注的點就多了。就我自己個人經驗而言,編寫軟體最重要的就是關注三點,分別是穩定性、高效性和友好型。

好多同學可能認為功能也是軟體必不可少的一部分。這一點我承認,但是我覺得那是軟體最基礎的特性。比如說,你寫的office軟體沒有列印功能,你編寫的腦圖無法輸出jpeg影象,你編寫的聊天工具沒有辦法群聊,這些都是說不過去的。這裡之所以沒有點出來,主要是認為他們只是服務客戶的基本條件,但遠遠沒有達到充分的程度。

1、穩定性。關於穩定性,有很多度量的指標。一種方法是7*24方式,也就是乙個星期7天,每天24小時無故障執行。要100%做到這一點其實是很難得,這其中有很多因素是你自己沒有辦法控制的。所以,為了修改這種評估方式,後面人們又提出了90%、99%、99.9%、99.99%**穩定性評估方式。這些數字看上去十分無聊的,我們可以換一種表達方式,按照一年作為度量方式,如果是90%穩定性來說,那麼你的軟體有36天是不能執行的;如果是99%的話,那麼一年中有3天是不能執行的;繼續類推,99.9%的話,則說明你的軟體一年中8個小時是沒有辦法執行;最後乙個99.99%,這個就很厲害了,它說明你的軟體一年中只有50多分鐘是沒有辦法執行的。事實上,達到99%和99.9還是可以達到的,真正99.99%的話,你所付出的代價就很高了。這只是一種方式,另外一種度量方式就是軟體發生問題後第一次發現問題的時間,以及兩次問題之間的平均時間。這種方式是我從汽車測試中學來的,因為汽車本身就是這樣測試的。如果你編寫的軟體很快就不能用了,或者頻繁發生問題,那麼基本上處於不能用的水平;反之則說明軟體本身已經達到了很高的水平。穩定性,是壞產品和合格產品的分水嶺,乙個不穩定的產品,即使功能再多,本身的價值都是有限的。大家要牢記這一點。

2、高效性。解決了穩定性之後,剩下來的就是速度的問題。乙個穩定的軟體,如果響應速度很慢,即使客戶能夠忍受一會,也是沒有辦法長時間堅持下去的。大家使用ios和安卓之後,會發現ios似乎響應速度很快,這當中並不是ios的硬體功能要比安卓快很多,而是ios花了很大的力氣來做軟體的優化工作。穩定性讓軟體有了銷售的可能,而高效性才會讓軟體的開發者慢慢積累自己的優勢。另外乙個例子就是linux kernel,其實從穩定性來說,kernel本身已經達到了乙個相當的高度。但是我們看到,kernel本身還在不停的推進和優化。這當中,除了新硬體驅動的新增、新演算法的新增,另外乙個很大改動就是流程的優化。單從中斷的發展來說,就有中斷、軟中斷、強佔、多核、均衡排程、實時排程、空閒任務處理等很多情況。總之,kernel為了榨取cpu的效能,真是無所不用其極,幾乎已經到了**的程度。

3、友好型

隨想錄(什麼是軟體架構師)

相信對於很多計算機專業的同學來說,軟體架構師是乙個自帶光環的職業。在他們的印象中,軟體架構師不僅在公司的地位高,不用編碼,而且還有非常可觀的收入。但是很多人並不是很清楚,軟體架構師的主要作用究竟是什麼,為什麼需要軟體架構師?1 為什麼需要軟體架構師?稍微複雜一點的軟體,都是需要進行分層 分塊 本地遠...

隨想錄(設計軟體模組的介面)

開發軟體是一件複雜而且辛苦的工作,不同的模組之間的邏輯需要考慮,應用層與底層的關係也需要考慮。模組之間的關係處理不好,就會給軟體的編寫質量帶來影響。當然不管軟體是怎麼設計的,有一件事情都是需要好好注意的,那就是軟體的介面問題。軟體分層也罷,模組協作也罷,我們都必須設計好相互之間的介面關係。好的介面不...

隨想錄(工業軟體和消費級軟體的區別)

之前寫 的時候,開發的軟體有消費級軟體和工業軟體。消費軟體一般就是指手機 pc裡面的娛樂軟體 工具軟體,而工業軟體就是指電信軟體 運動控制軟體 車床軟體 流水線非標軟體等等。差別還是挺多的。1 要求不同 工業軟體要求穩定,消費軟體可以接受偶發的故障。2 成本不同 工業軟體對成本極其敏感,消費軟體一般...