Dojo的設(shè)計(jì)哲學(xué)
Understanding Your Own Footprint
理解你自己的足跡
Every useful system carries the imprint of its designers. From bridges to spoons, the expression of a builder's skill, philosophies, and production constraints are exposed in the final product. Software is no different, except in its propensity to change. Software mutates in response to users needs, and in that change, a continual re-impriting of a designer's skill and sense of taste takes place.
每一個(gè)有用的系統(tǒng)留下它的設(shè)計(jì)師的烙印。從橋梁到勺子,一個(gè)建造者技巧的表達(dá),哲學(xué)家,和產(chǎn)品約束在最終的產(chǎn)品中被暴露。軟件是不同的,除了它的變化的傾向。在用戶需要的反應(yīng)中的軟件變異,和在那種改變中,一個(gè)連續(xù)的重復(fù)的不可能的一個(gè)設(shè)計(jì)師的技巧和味覺產(chǎn)生。
This has the potential to cause continuity problems for others, be they end users or other developers. Reducing these confusing aspects (cognitive load) allows software consumers of every type to feel better about a block of code. With every interaction, their pre-conceived notions of how the thing will behave serve them instead of forming an obstacle for them to overcome. Their instincts are turned into a valuable tool by elegantly and consistently designed software.
這是為其他產(chǎn)生持續(xù)問題的本質(zhì),是他們最終用戶或其他開發(fā)者。減少這些混亂的方面(認(rèn)知的負(fù)荷)允許每一種類型的軟件消費(fèi)者感覺更好關(guān)于一些代碼。伴隨每一次交互,他們的預(yù)設(shè)想的概念是這些東西如何運(yùn)轉(zhuǎn)服務(wù)他們而不是組成一個(gè)為他們跨越的障礙。他們的本能是通過優(yōu)美和一貫地設(shè)計(jì)的軟件變成一個(gè)有價(jià)值的工具。
Dojo, as a project, should meet expectations in this way. This doesn't mean that you have to agree with every design decision that's been made in the project (dissent is healthy) or that the guiding principles outlined here are written in stone. They should, however, capture the way design choices have been made to date and serve as a guide for making future decisions.
???? Dojo,作為一個(gè)項(xiàng)目,應(yīng)該滿足這樣的期望。這不意味這你不得不同意每一個(gè)設(shè)計(jì)決定,即它已經(jīng)向項(xiàng)目中進(jìn)入(不同意是健康的)或者那寫入石頭中的導(dǎo)向原理輪廓。他們應(yīng)該是,然而,捕捉設(shè)計(jì)選擇的方法已經(jīng)提到日程和作為未來決定的向?qū)А?br />
Dojo Guiding Principles
Dojo的設(shè)計(jì)導(dǎo)向原則
Reduce barriers to adoption.
采用減少障礙物。
Simply put, do not give users reasons not to choose your code. This affects everything from design to licensing to packaging.
簡單放置,但是不給用戶不使用你代碼的原因。這影響從設(shè)計(jì)到專利的包裝的每件事情。
Simple first, fast later
簡單優(yōu)先,快在后
Make it simple to use first, make it fast when it's approprite. Simple here means simple for users, not for us. We should work as hard as necessary to make things simple for end users. This principle goes to reducing barriers to adoption. Things should be as easy as possible for the common case but transparently "upgradeable" to a faster code path if the end user is willing to learn about the performance dials and knobs.
首要的簡單使用,當(dāng)它是適合的將它打上結(jié)。 簡單這里意味這對(duì)用戶簡單,不是對(duì)我們。我們應(yīng)該使工作對(duì)最終用戶盡可能的變得簡單。這些原則定位在采用減少障礙的原則。事情應(yīng)該盡可能容易對(duì)共同的情形但是明顯“可升級(jí)的”對(duì)一個(gè)快速的代碼路徑 如果終端用戶想要了解執(zhí)行的表盤和旋鈕。
Bend to the constraints of your environment
混合你環(huán)境的約束
Do not bludgeon a problem to death with code. If the environment can do most of something, let it. Fill in as necessary, but do not re-invent. Make the path smooth for users, but do not introduce your own idioms where they aren't required.
不要棒擊一個(gè)問題來伴隨代碼死亡。如果這個(gè)環(huán)境可以做大部分是事情,讓它做。盡可能替代,不要重新發(fā)明。對(duì)用戶來說將路徑平滑,當(dāng)他們不需要的地方不要介紹你自己的方言。
Improving From Here
從這里改進(jìn)
Dojo may not yet completely embody the principles outlined here, but it is their purpose to serve as a guide for the project when making determinations how things should change.
Dojo可能沒有完全包含這里輪廓的原則,但它是當(dāng)描述這些事情應(yīng)該如何改變,他們作為一個(gè)向?qū)?duì)項(xiàng)目來服務(wù)的目的。
If you think that Dojo has not yet met one or more of these goals in a particular way, please raise the issue on one of the project mailing lists or file a bug.
如果你認(rèn)為Dojo還沒有滿足在特定方法中的一個(gè)或多個(gè)這些目標(biāo),請(qǐng)?zhí)岢鲆粋€(gè)issue在一個(gè)項(xiàng)目郵件列表或文件作為一個(gè)bug。