One Simple Way To Spot Bad Architects一个简单的办法现货坏建筑师
This is a rejoinder to Frank’s这是一项答辩,以坦诚的 article文章 on the same topic.关于同一主题的。 He discusses 13 scenarios.他讨论了13日的情况。 I would like to point to one simple way to spot a bad architect and also how you can spot a good architect.我想指出,以一个简单的办法现货一个坏的建筑师,也是如何,您可以当场一个好的建筑师。
A bad architect will inevitably show lack of practical knowledge and use specifications and authorities to justify his statement.一个坏的建筑师将不可避免地表明,缺乏实际的知识和使用的规格和当局辩解他的发言。 They are swayed by fads and lacking a grounding on reality will tend to adopt and force anything new and shiny on the poor developers.他们是动摇的潮流,缺乏接地从实际出发,往往会采取和部队有什么新的光泽和对穷人的发展。 They are also the over-engineering types.他们也是超过工程类型。 The tendency to over-complicate design is a sure-fire sign of poor architects.的倾向,过度复杂的设计是一种肯定火的迹象,穷人的建筑师。 It is easy to spot them.这是容易被发现。 Jot down the points above and go to your next meeting.写下的上述各项要点,并转到您的下次会议。 You will know how good your architect is.你就会知道有多好,您是建筑师。
A real architect will have a strong grounding on reality.一个真正的建筑师将有强烈的接地对现实。 He knows when to use any technology and when not to.他知道,当使用任何技术和何时不。 He will justify with solid understandable logic when questioned and will not rely upon highfalutin words and specifications.他将与坚实的理由可以理解的逻辑时,质疑并不会依靠highfalutin话和规格。 A good architect will also choose the simplest solution that meets the requirements.一个好的建筑师,也将选择最简单的解决方法,能够满足要求。
PS.保安局常任秘书长。 I always had this nagging suspicion that UML thumping architects (this who generate reams of UML documents and almost nothing else) are most often than not bad architects.我一直有这个困扰,怀疑UML的thumping建筑师(这谁产生的大量UML的文件和几乎没有任何其他人)是最常见的比不坏的建筑师。 Recently I was trying to use a JSP Table component from a project which repeatedly touted its clean design and UML diagram but didn’t even have a 5 minute user guide.最近,我是试图用一个JSP的表组成,从一个项目反复宣扬其清洁的设计与UML图表,但没有,甚至有一个5分钟的用户指南。 After honest effort to decipher the nearly non-existent documentation and doc-less javadocs I gave up and chose Ext Grid component instead.之后,诚实努力,破译几乎不存在的文件和Doc -少javadocs我放弃和选择分机网格组成。 Have you seen any correlation between UML thumpers and bad architects?你见过任何相关关系的UML thumpers和坏的建筑师?
Filed under提起下 Enterprise Software企业软件 , , Headline News头条新闻 , , How To如何 , , Java Software Java软件 , , PHP PHP的 , , Programming编程 , , Ruby红宝石 , , Software Outsourcing软件外包 | |
| |
RSS 2.0 2.0 | |
Trackback Trackback跟踪 this Article |此文章|
Email this Article电子邮件此文章
You may also like to read您也可以想读 |




July 3rd, 2007 at 2:10 am 2007年7月3日在上午02时10分
Uhh… so the one simple way is… what…. uhh …因此,一个简单的办法是… …什么… … 。 UML use? UML的使用?
Actually, that sounds about right to me.其实,这听起来约权给我。
July 4th, 2007 at 3:06 pm 2007年7月4日在下午3时06分
UML is brain damaged. UML是脑损害。
For starters, UML is specified in… UML.首先, UML是指定的… UML的。 This means that UML means… whatever UML means, because it is specified in itself.这意味着, UML的手段…无论UML的手段,因为它是在指定的本身。 People who know algebra or geometry will be laughing.人谁知道代数几何或将开怀大笑。
There are no successful projects delivered using UML.有没有成功的项目交付使用UML的。 You can laugh, but UML is an energy drain, since there is no way you can prove a design with UML is right nor wrong, therefore it is a waste, because it is open to interpretation.你可以笑,但UML是一个能源流失,因为是没有出路的,您可以证明,与UML的设计是正确的,也不是错误的,因此它是一种浪费,因为它是开放的诠释。 Most successful projects ignore UML completely and avoid it like the plague.最成功的项目忽略的UML完全避免像瘟疫。 This is not coincidence, but a serious decision to make.这不是巧合,而是一个严重的决定。
Java was not designed using UML, nor it’s class library. Java的设计并非基于UML的,也不是它的类库。 Still there are no compelling UML design for the Java class library and it has been around for at least 10 years.仍然有没有令人信服的UML设计为Java的类库,它一直围绕在至少十年。 How come?如何来? Nobody can do it or it is found that it wouldn’t be useful?没有人能这样做,或者它发现它不会有用吗?
I have another explanation: Wouldn’t it be possible that real engineers know that UML is a scam?我有另一种解释:不会,才有可能真正的工程师都知道, UML是一个骗局?
Have you ever seen diagram of design patterns (Java best practices)?你见过图的设计模式( Java的最佳做法) ? There are at least 24 design patterns with name and example code, but all UML diagrams made for them look the same.有至少24个设计模式与名称和代码示例,但所有的UML图表为他们看起来一样。 Would you use UML to document the design patterns you used?您会使用UML在文件中的设计模式,你用? I bet you wouldn’t, because it would be considered a waste, but then how can you explain your design if you can’t draw them?我打赌你不会,因为这将被视为废物,但是又如何你能否解释一下您的设计,如果你不能借鉴他们呢?
UML class diagrams do not show polymorphism in your programs and polymorphism is the key to object orientation. UML类图不显示多态性在您的程序和多态性的关键是面向对象。 Why is that so?为什么会这样呢?
UML sequence diagrams do not show polymorphism and break encapsulation. UML的序列图的不显示多态性,并打破封装。 Encapsulation and polymorphism are at the center of object orientation.封装和多态性是在该中心的面向对象。 Why is UML marketed as an object oriented tool if it works against object orientation?为什么是UML的销售作为一个面向对象的工具,如果工程对面向对象?
UML use cases are simply escenario-oriented documents, specifying “steps” for the user to use the system, while we know that modern user interfaces (since 1984) are event-oriented, and therefore you can’t force the user into any steps since the user selects the steps he wants to do. UML的用例只是escenario为导向的文件,明确“的步骤” ,供用户使用该系统,而我们知道,现代的用户界面(自1984年以来)是面向事件,因此你不能强迫用户的任何步骤由于用户选择的步骤,他想做的事。
Furthermore, Rational was the company behind UML.此外,合理的是,该公司背后的UML 。 Where is Rational now?如果是理性的,现在呢? Why their people lost so much momentum?为什么他们的人失去了这么多的势头呢?
Finally, Rational Rose was the key product marketed by Rational, but the product was obviously bloated (too big), underperforming (too slow), unusable (hard to use) and buggy (a diagram that extended beyond a page was usually the one you could not save).最后,理性的上涨是主要的产品销售的合理,但产品明显臃肿(太大) ,效果不佳(太慢) ,使用(努力用)和小车(一图即延长到一个网页,通常是一个你无法保存) 。
The fact that most UML architects can’t code is a sign that shows that they don’t know what they are talking about, yet they have very strong opinions backed by companies that create UML design tools, a whole ecosystem.事实上,大部分UML的建筑师不能代码是一个迹象,这表明,他们不知道是什么,他们所谈论的,但他们有很强烈的意见作为后盾的公司,创建UML设计工具,整个生态系统。 Architects should be able to code and give recomendations on how to code, pointing to design patterns when necesary.建筑师应能守则,并给予recomendations就如何代码,并指出设计模式,必要时。 Doing code reviews and writing code conventions, for example, should be at least 20% of the time spent every day by any serious Java architect.这样做代码审查和写作守则公约,例如,至少应为20 %的时间,每天由任何严重的Java的建筑师。
July 5th, 2007 at 12:54 am 2007年7月5日在上午12时54分
The purpose of UML was to communicate architectural and design ideas to developers.目的是UML的沟通,建筑和设计思路,以发展。 Unfortunately the means to communicate (UML) is often more complicated than the ideas themselves and also often incomplete.可惜的手段,以沟通( UML的)往往是更复杂,比自己的想法,也往往是不完整的。
We need a better and simpler alternative.我们需要一个更好的和更简单的选择。
July 5th, 2007 at 9:35 am 2007年7月5日在上午09时35分
There is an alternative.有一个替代的方法。 It is called Functional Dependencies.这是所谓的函数依赖。
Functional dependencies are the basis of database modelling, but also can be applied to system design.函数依赖是基础数据库的模特儿,而且还可以应用到系统设计。
For example, if you can find out that the color of the website will depend on the user logged in, then your write:例如,如果你可以找到指出,颜色的网站,将取决于使用者登入在,那么你的收件:
user ->> website color用户-> “ >网站的颜色
If later you realize that the website color depends also on the time of the day:如果稍后你知道网站的颜色还取决于的时候,一天:
(user, time) ->> website color (用户,时间) -> “ >网站的颜色
You can replace all those dependencies (they are just text).您可以取代所有这些相依(他们只是文本) 。
Imagine now that you have several thousand dependencies expressed that way, and that you have a parser for your dependencies.试想你现在有几千年的相依性表示的方式,和您有一个解析器为您的相依性。 Voila! voila ! Your system is finished!您的系统是结束了!
July 10th, 2007 at 6:55 pm 2007年7月10日在下午6时55分
Are you assuming that a non-coding architect is a bad architect?假设你是一个非编码的建筑师是一个坏的建筑师? If so, I disagree with you.如果是的话,我不同意你。 I have seen many non-coding architects who have been beneficial, if not vital, to the success of a project.我见过很多非编码建筑师谁已是有益的,如果没有重要的,成功的一个项目。 A coding architect can result in a variety of issues for a project.编码建筑师,可能会导致各种问题的一个项目。 The example I have seen most often are the coding architects that do not trust other “lower” developers and try to code too much of the application.的例子,我所看到的最常见的是编码的建筑师认为,不信任其他的“低”的开发商和尝试代码太多的应用。 This results in a lack of attention to key concerns and issues, as well as project failure.这个结果在缺乏注意的主要关切和问题,以及项目的失败。
I have found those who paint non-coding architects as “bad architects” may have had one negative experience, and afterwards they generalize all non-coding architects as bad.我发现,这些油漆谁非编码建筑师作为“坏建筑师”可能有一正反两方面的经验,然后他们一概而论,所有非编码建筑师作为坏。 Or, in some cases, the person is jealous of the architects’ skills, believing that coders are the more important part to a project.或在某些情况下,该人是妒忌建筑师的技能,以为编码是更重要的一部分,一个项目。
The key is not to identify a coding or non-coding architect, but to be able to identify whether the architect can properly discover and address key concerns for a project and then resolve them.关键不在于确定一个编码或非编码建筑师,但能够确定是否建筑师能够妥善地发现和解决的主要关切的一个项目,然后解决这些问题。 In the end, it should not matter if the architect codes or does not code, so long as the concerns have been properly addressed.在年底,便不应该的事,如果建筑师的守则或不代码,因此,只要关注,已妥善处理。 If a reference implementation needs to be developed, I am more than happy to see an architect delegate it to someone else.如果一个参考实现还需要发展,我多高兴地看到,一位建筑师,代表它给别人。
Rational is still around ~~shiver~~ as part of IBM’s Rational product line.理性的仍是左右〜 〜 〜 〜寒战的一部分, IBM公司的合理的产品线。 Very buggy and very costly IMHO (I opened three bug requests within one week of usage).非常小车和非常昂贵imho (我打开三个错误的请求后一个星期内使用) 。 Not to mention RAD is a beast.更不用提了RAD是一个野兽。 As far as UML goes, I will still take a strong set of use cases, an object model and sequence diagrams for complex functions in the system.据UML的云,我仍然会采取强硬的一套使用情况下,一个对象模型和序列图的复杂功能,在系统中。 It works; it is proven across the fifty or so systems I have architected, developed and/or managed.它的工程,它是证明了全国50或系统,使我有设计,开发和/或管理。 Outside of those three, I can get away with my own functional models outside of UML.以外的那些三,我可以摆脱我自己的功能模型以外的UML的。