来自:多研究些问题,少谈些“主义”–驳Ruby无用论
“改变你能改变的,接受你不能改变的”。人月神话告诉我们软件开发没有银弹:因为软件的内在复杂性是现实世界复杂性的映射。现实复杂性归咎于客观世界,属于上帝,所以软件的内在复杂性不可消灭。但是它又告诉我们,软件开发中充斥着“次要复杂性”,也就是人为引入的复杂性,这种复杂性是可以消灭的,并且Brooks也很高兴的发现面向对象技术的发展对降低次要复杂性功不可没。这种次要复杂性表现在哪里呢?比如hibernate的hbm 文件,struts的formbean,Java匿名类的恶心语法。
Godlikeme的观点我很同意:现实复杂性是项目的最大障碍。可是如果现实复杂性的客观世界本身的复杂性的话,那不正就是客户的业务问题么,与其说是障碍,不如说是目标。这个Cost是无论如何不能消灭的,也就是“接受你不能改变的”。
可是实际项目中,除了现实复杂性,还有一些我们能够克服的次要复杂性。更少的代码量,更快的部署时间,自动化的单元测试和验收测试都是解决次要复杂性有力手段。
Godlikeme也承认ruby开发效率要快一些,但又说这是微乎其微的,“以至于”用不用ruby都一样。这是典型的否认定量 分析问题的手段。既然ror能够提升效率,哪怕只是一点点,有什么理由不接受呢?莫以善小而不为啊!假设我有和你一样解决业务问题的能力,那么我使用一套高效的开发工具,就会用较低的成本打败你,事情就这么简单。
多研究些问题,少谈些“主义”。以定量的手段降低项目成本是一个开发者的基本素质。
工具之所以重要,是因为他所代来的效率的提高几乎是无代价的!如果你掌握了他的话。从这场口水战中我发现,ruby这一方大多数掌握了ROR和java,而java这一方却不是。
何况ROR提高的效率真的是微乎其微么?
分享到:
相关推荐
针对"VC对话框运行后不能改变大小"的问题,解决方法分为两个关键步骤: 第一步,修改对话框的初始化代码: 在对话框类的 OnInitDialog() 函数中,我们需要添加一行代码来修改对话框的样式,使其具备可调整大小的...
在`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的...
### 如何在WinCC运行系统中通过脚本来改变对象颜色(背景、边框、文本) 在工业自动化领域,WinCC(Windows Control Center)是西门子公司开发的一款强大的人机交互界面(HMI)软件,广泛应用于工厂自动化和过程...
选择成功意味着接受挑战,坚持到底就能成功。 5. **做人与做事**:在做事业之前先要做好人,遵循道德准则,如孔子的“己所不欲,勿施于人”。要以爱心对待他人,并且不要试图强制改变别人,而是通过自身改变来影响...
首先,我们需要了解Unity中的`Window`类,它并不直接提供获取或设置窗口状态的方法。为了实现这些功能,我们通常需要借助于Windows API(应用程序接口)。Windows API提供了丰富的函数,允许程序直接与操作系统进行...
努力与机遇的结合,对于改变命运来说,更是不可或缺的要素。电影《20xx》中的角色通过不懈的努力,最终抓住了改变命运的机会。这说明,即使有些事情看似是预定的,但通过努力,人们仍然可以创造新的可能。 历史人物...
你可以直接修改控件的Size属性来改变其大小。 - `Width`和`Height`属性:分别代表控件的宽度和高度,可以单独调整。 2. **事件处理**: - `Resize`事件:当控件的大小发生改变时,会触发这个事件。你可以在此事件...
通过以上步骤,你就能在LabVIEW中实现表格选中行的上色和背景颜色变化,从而提升用户界面的交互性和美观性。这种技巧在数据处理和测试测量应用程序中非常常见,能够帮助用户更快地识别和分析数据。
以下是从标题“c程序运行改变颜色”、描述“想让你的程序变得更漂亮吗?这里就是你最好的选择。”以及提供的代码片段中提炼出的相关知识点。 ### 知识点一:C语言中的控制台颜色更改 #### 1.1 使用`...
首先,C++本身并不直接支持图形界面或鼠标光标的管理,但可以通过Windows API(Application Programming Interface)来实现这些功能。Windows API提供了大量的函数,可以让我们控制窗口、处理消息以及更改系统资源,...
10. **实践与智慧**:能说不能做不是真智慧,实际行动比空谈更重要。 11. **倾听与思考**:多听少说,深思熟虑后再表达,可以避免不必要的冲突。 12. **人生观**:世间没有绝对的圆满,适应圆滑,但要保持对生活的...
最后,我们要主动变革,依靠自身的力量来应对这个变化的世界,因为没有人能救赎我们,唯有自我改变。 综上所述,我们所处的环境要求我们不断地进行自我变革和适应变化。在思想上不断革新,在行动上迅速跟进,保持对...