来自:多研究些问题,少谈些“主义”–驳Ruby无用论
“改变你能改变的,接受你不能改变的”。人月神话告诉我们软件开发没有银弹:因为软件的内在复杂性是现实世界复杂性的映射。现实复杂性归咎于客观世界,属于上帝,所以软件的内在复杂性不可消灭。但是它又告诉我们,软件开发中充斥着“次要复杂性”,也就是人为引入的复杂性,这种复杂性是可以消灭的,并且Brooks也很高兴的发现面向对象技术的发展对降低次要复杂性功不可没。这种次要复杂性表现在哪里呢?比如hibernate的hbm 文件,struts的formbean,Java匿名类的恶心语法。
Godlikeme的观点我很同意:现实复杂性是项目的最大障碍。可是如果现实复杂性的客观世界本身的复杂性的话,那不正就是客户的业务问题么,与其说是障碍,不如说是目标。这个Cost是无论如何不能消灭的,也就是“接受你不能改变的”。
可是实际项目中,除了现实复杂性,还有一些我们能够克服的次要复杂性。更少的代码量,更快的部署时间,自动化的单元测试和验收测试都是解决次要复杂性有力手段。
Godlikeme也承认ruby开发效率要快一些,但又说这是微乎其微的,“以至于”用不用ruby都一样。这是典型的否认定量 分析问题的手段。既然ror能够提升效率,哪怕只是一点点,有什么理由不接受呢?莫以善小而不为啊!假设我有和你一样解决业务问题的能力,那么我使用一套高效的开发工具,就会用较低的成本打败你,事情就这么简单。
多研究些问题,少谈些“主义”。以定量的手段降低项目成本是一个开发者的基本素质。
工具之所以重要,是因为他所代来的效率的提高几乎是无代价的!如果你掌握了他的话。从这场口水战中我发现,ruby这一方大多数掌握了ROR和java,而java这一方却不是。
何况ROR提高的效率真的是微乎其微么?
分享到:
相关推荐
针对"VC对话框运行后不能改变大小"的问题,解决方法分为两个关键步骤: 第一步,修改对话框的初始化代码: 在对话框类的 OnInitDialog() 函数中,我们需要添加一行代码来修改对话框的样式,使其具备可调整大小的...
"接受有的时候比改变更难"这句话揭示了一个深刻的道理:在面对不如意的情况时,首要任务是接纳现状,而不是盲目地试图改变。这是因为,没有理解和接受,任何改变都可能只是表面的妥协,而非真心的投入。 当我们遇到...
这篇文章主要探讨了如何面对失败和接受改变的重要性,特别是在个人成长和成功中的关键作用。以下是相关的知识点: 1. **面对失败的态度**:文章强调了两种对待失败的不同态度,悲观者选择叹息,而乐观者则微笑接受...
在`hostPcSimulator`项目中,如果你需要将这些改变应用到模拟器的界面设计上,你需要确保在相应的地方调用了上述方法,并根据项目的具体需求进行调整。同时,记得在修改UI元素时,要考虑到用户的使用习惯和界面的...
在Android开发中,TextView是用于显示单行或多行文本的视图组件,它在用户界面...同时,了解如何使用SpannableString和Spanned对象能让你的文本更具表现力。在使用提供的代码片段时,记得结合实际情况进行适配和调试。
一个可以改变皮肤的计算器(java) 可以接受键盘输入。。。。。。。
这两个属性都可接受上述的常量值。例如,将鼠标指针设置为沙漏形状的代码如下: ```vb Cursor = vbHourglass ' 或 MousePointer = vbHourglass ``` 3. **使用自定义图标**: 如果需要使用自定义的图标作为...
创建一个新的委托类型,例如`ChangeTitleEventHandler`,它接受适当的参数,如新标题。 ```csharp public delegate void ChangeTitleEventHandler(string newTitle); ``` 2. **创建事件**: 在子窗体类中,定义...
在Android开发中,改变TextView的背景色是常见的交互设计需求,尤其在用户界面设计中,通过点击事件来改变TextView的状态可以提升用户体验。本教程将详细讲解如何实现Android中点击TextView时改变其背景颜色。 首先...
在`uses`部分添加`frxReport`,确保你能访问FastReport的功能。 2. **创建Report**:在你的代码中创建一个`TfrxReport`对象,例如`Report1`。这将作为你的FastReport的实例。 3. **设计Report**:使用FastReport的...
选择成功意味着接受挑战,坚持到底就能成功。 5. **做人与做事**:在做事业之前先要做好人,遵循道德准则,如孔子的“己所不欲,勿施于人”。要以爱心对待他人,并且不要试图强制改变别人,而是通过自身改变来影响...
### 如何在WinCC运行系统中通过脚本来改变对象颜色(背景、边框、文本) 在工业自动化领域,WinCC(Windows Control Center)是西门子公司开发的一款强大的人机交互界面(HMI)软件,广泛应用于工厂自动化和过程...
他不相信自己的人生只能按照既定的道路前行,而是选择勇敢追求自己的理想,这种勇气和决心是改变命运的驱动力。 4. 努力与机遇的结合:电影《20xx》中的故事表明,尽管有些事情可能是预定的,但通过努力,人们可以...
通过以上步骤,你就能在LabVIEW中实现表格选中行的上色和背景颜色变化,从而提升用户界面的交互性和美观性。这种技巧在数据处理和测试测量应用程序中非常常见,能够帮助用户更快地识别和分析数据。
你可以直接修改控件的Size属性来改变其大小。 - `Width`和`Height`属性:分别代表控件的宽度和高度,可以单独调整。 2. **事件处理**: - `Resize`事件:当控件的大小发生改变时,会触发这个事件。你可以在此事件...
以下是从标题“c程序运行改变颜色”、描述“想让你的程序变得更漂亮吗?这里就是你最好的选择。”以及提供的代码片段中提炼出的相关知识点。 ### 知识点一:C语言中的控制台颜色更改 #### 1.1 使用`...
首先,C++本身并不直接支持图形界面或鼠标光标的管理,但可以通过Windows API(Application Programming Interface)来实现这些功能。Windows API提供了大量的函数,可以让我们控制窗口、处理消息以及更改系统资源,...
10. **实践与智慧**:能说不能做不是真智慧,实际行动比空谈更重要。 11. **倾听与思考**:多听少说,深思熟虑后再表达,可以避免不必要的冲突。 12. **人生观**:世间没有绝对的圆满,适应圆滑,但要保持对生活的...
首先,我们需要了解Unity中的`Window`类,它并不直接提供获取或设置窗口状态的方法。为了实现这些功能,我们通常需要借助于Windows API(应用程序接口)。Windows API提供了丰富的函数,允许程序直接与操作系统进行...
它接受一个透明度参数,范围是0(完全不透明)到255(完全透明)。 4. **重绘菜单栏** 在改变了标题栏颜色后,应调用`DrawMenuBar`以更新菜单栏的显示。这一步确保菜单栏的颜色与标题栏一致。 ```cpp ...