Dojo的設計哲學
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.
每一個有用的系統留下它的設計師的烙印。從橋梁到勺子,一個建造者技巧的表達,哲學家,和產品約束在最終的產品中被暴露。軟件是不同的,除了它的變化的傾向。在用戶需要的反應中的軟件變異,和在那種改變中,一個連續的重復的不可能的一個設計師的技巧和味覺產生。
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.
這是為其他產生持續問題的本質,是他們最終用戶或其他開發者。減少這些混亂的方面(認知的負荷)允許每一種類型的軟件消費者感覺更好關于一些代碼。伴隨每一次交互,他們的預設想的概念是這些東西如何運轉服務他們而不是組成一個為他們跨越的障礙。他們的本能是通過優美和一貫地設計的軟件變成一個有價值的工具。
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,作為一個項目,應該滿足這樣的期望。這不意味這你不得不同意每一個設計決定,即它已經向項目中進入(不同意是健康的)或者那寫入石頭中的導向原理輪廓。他們應該是,然而,捕捉設計選擇的方法已經提到日程和作為未來決定的向導。
Dojo Guiding Principles
Dojo的設計導向原則
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.
簡單放置,但是不給用戶不使用你代碼的原因。這影響從設計到專利的包裝的每件事情。
Simple first, fast later
簡單優先,快在后
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.
首要的簡單使用,當它是適合的將它打上結。 簡單這里意味這對用戶簡單,不是對我們。我們應該使工作對最終用戶盡可能的變得簡單。這些原則定位在采用減少障礙的原則。事情應該盡可能容易對共同的情形但是明顯“可升級的”對一個快速的代碼路徑 如果終端用戶想要了解執行的表盤和旋鈕。
Bend to the constraints of your environment
混合你環境的約束
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.
不要棒擊一個問題來伴隨代碼死亡。如果這個環境可以做大部分是事情,讓它做。盡可能替代,不要重新發明。對用戶來說將路徑平滑,當他們不需要的地方不要介紹你自己的方言。
Improving From Here
從這里改進
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可能沒有完全包含這里輪廓的原則,但它是當描述這些事情應該如何改變,他們作為一個向導對項目來服務的目的。
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.
如果你認為Dojo還沒有滿足在特定方法中的一個或多個這些目標,請提出一個issue在一個項目郵件列表或文件作為一個bug。