提供一樣功能、產品和服務的服務者中, 競爭力來自功能的多樣化和服務品質的差別化, 不管是個體、企業仍是國家。html
這裏的服務指功能、產品的實現程度和處理能力,以及研發/客服提供的技術支持程度(7*24, 隨時響應, 溝通便捷,快速解決,舒適提示,有效指南等)。前端
從某種意義來講, 一切皆服務。 功能和產品只是形式, 服務纔是本質。服務響應某種需求從而具有存在價值。個體、企業爲社會提供某種類型、某種程度的服務,並得到相應回報。程序員
程序員提供的服務是,在特定的工做環境和企業文化中,運用可用的資源以及本身的知識、技能、經驗、時間、精力、資源,在適當可接受的開發成本下,經過將現實問題構造和組織成正確的邏輯流而得到問題的解決並持續維護的能力程度。正則表達式
每次解決用戶最關心的前三個問題, 不爲無關痛癢的事情浪費時間、精力和資源。數據庫
如何保證服務端開發的功能和服務達到應有的品質呢?編程
軟件是否正確實現了指定的功能, 知足客戶的多樣化須要。設計模式
軟件在指定時間和可用資源的前提下實現功能和服務的響應能力和請求處理能力。 須要有偏差範圍的測量或估算。緩存
軟件應對錯誤的能力。可以在非預期環境降級運行,在預期環境可以捕獲全部的錯誤條件(前提不符合、非預期輸入、髒數據等)和異常狀況並給出合適的返回信息。安全
程序運行過程當中輸出適量的日誌信息,便於追蹤程序執行狀態,快速排查錯誤【內部品質】。網絡
主要是單元測試、自動化功能測試和性能測試。 單元測試和功能測試保證正確性,性能測試保證效率【內部品質】。
避免泄漏重要、敏感、隱私信息; 保護業務和數據不受非法訪問、非受權訪問的破壞; 追蹤系統訪問日誌。
要求軟件中的函數、方法、類、庫、模塊、組件、框架等可以在同一工程或不一樣項目或不一樣產品中屢次使用,便於替換更新【內部品質】。
要求軟件容易理解、容易作出修改以知足新的需求,一般系統應具有模塊化、高內聚、鬆耦合的特性【內部品質】。
"適當的註釋"須要註明代碼意圖及設計思路, 做爲理解代碼的有效指南;"習慣用法"是代碼的經常使用模式,便於快速瀏覽和理解。
請參考《敏捷軟件開發:原則、模式和實踐》一書,儘量知足五大設計原則(SRP, OCP, LSP, DIP, ISP),實現「對修改關閉,對擴展開放」的境界。即:對於新需求的開發,儘量僅僅是增長代碼,而不須要修改原有代碼。
量化: 理解一個功能須要的時長; 修改或擴展一個功能須要修改的代碼行。
程序運行中可以始終如1、持續長時間地提供正確、一致性的服務。
服務在嚴重錯誤狀況下的可恢復能力和可替換能力,避免單點故障,保證可用性,保證用戶數據的正確性和完整性。
易用性是用戶使用產品的難易程度的度量。 一般用於描述用戶體驗的前端領域。 不過服務端也有可用性的概念。
服務能夠經過簡單地部署在更多機器上提高服務能力(吞吐量),能夠經過減小機器部署來下降成本。
軟件可以在多種運行環境、平臺上一致性地正確運行而只須要作出少許修改或無需修改。
服務發佈後,管理大規模服務的運行、排查/診斷/解決問題的難度和速度、處理用戶反饋的工做量。
是否容易針對客戶的特殊需求進行定製;服務升級時是否能夠儘可能不影響到用戶的正常使用。
軟件與其餘系統交互的難易程度。主要包括通訊方式、版本兼容性。
轉載請註明出處。謝謝! :)