成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

3條必須知道的軟件開發原則

開發 后端 開發工具
在本文中將介紹 3 條重要的軟件開發原則,你可能已經知道,也可能只知道其中一條。這些原則看似很簡單,但實施起來會很難。無論如何,這些原則提供了一個管理復雜軟件項目的強大的途徑。當涉及到真實世界中的項目開發時,你會發現這些原則都是非常有用的。

在本文中將介紹 3 條重要的軟件開發原則,你可能已經知道,也可能只知道其中一條。這些原則看似很簡單,但實施起來會很難。無論如何,這些原則提供了一個管理復雜軟件項目的強大的途徑。當涉及到真實世界中的項目開發時,你會發現這些原則都是非常有用的。

原則1:不要重復自己(Don’t Repeat Yourself,DRY 原則)

這個原則非常重要,換言之,就是不要寫重復的代碼。

當你正在構建一個大型的軟件項目時,你通常會被整體復雜性搞得不知所措。解決復雜性的最基本的策略是將系統分成若干個容易處理的部分。起初,你可能想將系統按組件劃分,每個組件代表了一個子系統,其中包含了完成特定功能所需的一切。

組件還可以往下再分,這樣復雜性將被降低到單一職責(single responsibility),每個職責可以使用一個類來實現,類包含了方法和屬性。方法實現算法,這些算法和算法的子部分是構成軟件業務邏輯的最小知識塊。你只需要保證這些塊不重復即可。

DRY 原則規定,在整個系統中,每一個小的知識塊只可能發生一次,且每個知識塊必須有一個單一、明確、權威的表征。

在一個完美的應用程序中,每一小塊業務邏輯將被封裝在一個表征中,也就是一個變量或一個類。變量被封裝在一個能夠被描述為一個職責表征的類中,類被封裝在一個能被描述為功能表征的組件中。這種方式稱為模塊化架構,DRY 原則是其一個重要的部分。

3 條必須知道的軟件開發原則

實現 DRY

你可以按照以下方式降低軟件項目的復雜度,以便更容易地發現潛在的重復問題:

●繪制軟件架構圖,并映射主要的組件,復雜的項目可能需要為每個組件繪制一個專門的架構圖。

●如果你到達了連接職責的層級,你可能需要轉換到 UML 圖。

●在寫代碼塊之前,根據它在項目中的層級命名。定義它代表什么,并確定你知道它在組件中的作用。

●定義表征應該展示的內容(如功能是在數據庫驅動程序中執行 SQL)以及應該隱藏的內容(如數據庫認證信息)。

●確保表征不依賴于另一個復雜層級的表征(如一個組件依賴于另一個組件中的類)。

當你發現正寫的代碼與之前寫過的代碼類似或相同,你就需要花時間來考慮你正在做什么,并確保不重復自己。

原則2:盡量簡單、一目了然(Keep it Simple Stupid,KISS 原則)

最簡單的解釋往往是最正確的。

這里的 Stupid 翻譯為“一目了然”更好一些,簡單并不意味著一目了然,比如“.(){..&};.”,夠簡單吧,但看懂這是什么嗎?這其實是一個 bash 中的 fork 炸彈(不斷 fork 一個新進程,耗盡系統資源)。

所以做到簡單的同時,還要做到一目了然。你也可以這樣理解,將一個軟件做得連白癡都會用。這就是用戶體驗的最高境界了。

如何做到簡單且一目了然呢?這要歸結到軟件開發的可維護性和可理解性。KISS 原則往往體現在需求設計階段,當你考慮如何將客戶的需求轉變成一個可實現組件時,嘗試確認以下部分:

●收益和努力比例不調的功能

●高度依賴其他功能的功能

●可能會變得復雜的功能

總而言之,如果一個任務看起來超復雜,試著去考慮一種創造性、獨特的方式。多花時間去討論關鍵點,看是否有其他更合適的方案。

原則3:適可而止(You Ain’t Gonna Need It,YAGNI 原則)

YAGNI 原則指的是只需要將應用程序必需的功能包含進來,而不要試圖添加任何其他你認為可能需要的功能。

在一個軟件項目中,往往 80% 的時間花費在 20% 的功能上。

3 條必須知道的軟件開發原則

當你準備列出一個項目清單時,試著考慮以下問題:

●通過降低抽象的層級,來實現低復雜度

●根據特性將功能獨立出來

●適度接受非功能性需求

●識別耗時的任務,并擺脫它們

這些原則看似簡單,但在實際運作中,會有各種各樣的問題出現。一旦你強迫自己應用這些原則,你會發現你距離創造一個完美的軟件已經不遠了。

英文原文:3 Key Software Principles You Must Understand

本文轉自:http://blog.jobbole.com/22559/

責任編輯:林師授 來源: 伯樂在線
相關推薦

2018-05-23 20:56:49

開發原因原則

2023-12-27 18:10:05

PyTorch工具框架

2010-04-12 14:58:56

Meego開發

2020-10-13 09:28:51

vue開發

2017-04-17 21:33:01

前端開發javascript嚴格模式

2020-09-22 08:16:20

軟件開發原則

2015-04-15 10:50:06

綜合布線

2009-04-17 09:50:49

軟件架構云計算SOA

2018-04-08 10:08:43

開發人員工具

2020-07-09 07:34:40

開發Web工具

2017-09-25 16:22:04

App

2014-09-01 09:53:50

Android框架

2012-09-29 09:22:24

.NETGC內存分配

2012-09-29 10:29:56

.Net內存分配繼承

2020-12-29 09:50:23

大數據大數據技術

2017-12-07 15:28:36

2017-12-07 15:47:25

2020-02-28 14:05:00

Linuxshell命令

2019-11-12 14:18:56

PythonWord設計

2018-08-24 07:17:41

Spark大數據調優
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕av一区二区三区 | 一区二区三区四区电影 | 欧美中文字幕一区二区三区 | 国产成人精品一区二区三区网站观看 | 久久亚洲国产精品日日av夜夜 | 日韩一区二区久久 | 国产精品福利在线 | 999精品网| 国产精品一区免费 | 国产高清视频一区二区 | 免费在线观看av | 一区二区三区中文字幕 | 国产精品久久久亚洲 | av网址在线播放 | 一区二区三区国产好 | 国产精品美女久久久久久免费 | www.黄色在线观看 | 青青草国产在线观看 | 好姑娘影视在线观看高清 | 91久久久精品国产一区二区蜜臀 | 国产亚洲精品一区二区三区 | 久久久网 | 久久午夜影院 | 欧美亚洲另类丝袜综合网动图 | 色综合久久88色综合天天 | 欧美专区在线视频 | 色婷婷国产精品综合在线观看 | 久久亚洲欧美日韩精品专区 | 久久精品国产一区二区电影 | 日韩精品一区二区三区在线播放 | 亚洲电影一区二区三区 | 色婷婷一区二区三区四区 | 欧美激情久久久 | 国产一区黄色 | 欧美无乱码久久久免费午夜一区 | 久久久久久亚洲精品不卡 | 国产精彩视频在线观看 | 国产视频精品免费 | 免费欧美视频 | 91精品国产91久久久久久三级 | 九九久久久久久 |