`
zhouxwyeah
  • 浏览: 20937 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

程序员需要知道的97件事情之 ------- 谨慎选择你的工具

阅读更多
本人英语抄过4级,奇烂无比,翻译这个实属蛋疼,错误是肯定有的,而且是翻不出出来就是随便猜,欢迎指出,谢谢啦。但愿我能够翻完我看的懂的....
   原链接:oreilly的程序员需要知道的97件事http://programmer.97things.oreilly.com/wiki /index.php/Contributions_Appearing_in_the_Book

现代应用很少是从从零开始搭建的。他们大都是由现有工具装配的----组件,库,以及框架。这样做有很多好处:
  
   1 随着时间的变化,应用在短时间内随着规模的增长,复杂度,混合度都会相应的增加。开发者最好能够将它们的时间和聪明才智专注在编写更多的业务领域代码,而不要浪费在更加基础性的代码

  2 广泛应用的组件和框架比一些闭门造车的框架相对来说BUG的可能性少一点。
  3 互联网上拥有大量高质量的免费软件,意味着更小的开发成本和更加容易招聘到相关技能的和兴趣的开发者。
   4 软件的开发和维护是人力密集型工作,所以购买产品将会比重新构建应用更加便宜。

   尽管如此,为你应用选择正确的工具集是一个棘手的商业需求,事实上当需要作出选择的时候,以下建议可以记住:
  1 不同的工具依赖于不同的假定的上下文环境,例如:环境的底层结构,控制模型,数据模型,通信协议等等。这些东西都可能导致应用和工具的架构不匹配。这样的不匹配导致工作区代码比必须的更加复杂
2 不同的工具有不同的生命周期,同时,如果新的功能,设计变化,或者是修复一些BUG,升级它们将会变得非常困难和浪费时间,也可能导致和你其他的工具之间不能共存。这样的工具越多,导致的问题就越严重。
3 有些工具需要大量的配置,常常以XML配置文件的方式呈现,它们以很快的速度增长…有些应用在结束的时候看起来好像完全是用XML编写仅仅插入某些编程代码。这些配置的复杂度也会导致应用难以扩展和维护。
  4 当代码严重依赖于厂商的特殊功能,就很容易被厂商所绑定:维护,性能,发展的能力,价格等等
  5 当你准备使用免费软件的时候,你将发现它其实并不是完全免费,你可能需要购买技术猴称子,而且很有可能还不便宜。
  6 许可证的问题,即使是免费软件,例如:一些公司并不适合去使用基于GNU许可证的软件,因为他的拟生病毒式传播, 软件利用它进行开发的必须公布它的源码。

   避免或者减轻这些问题,我个人的策略是首先小范围使用那些必须需要的工具。通常最初关注的是如果避免底层的框架或者基础架构问题。比如利用一些中间件代替自己的读写socket分布式应用。然后如果还有需求,再增加。我也倾向我的业务模型接口分层使用不同的工具。这样我能够花最小的代价来改变使用的工具。这种方法积极地一点就是在我应用开发结束的时候发现我使用的工具经常比原先预期的要少。
0
1
分享到:
评论

相关推荐

    你可以用 ChatGPT 做的 8 件令人惊讶的事情.pdf

    以下是你可以利用ChatGPT进行的8个令人惊讶的事情: 1. **写一封求职信** 求职信通常被视为一项费时的任务,ChatGPT可以帮助你生成一个基础模板。只需提供职位和行业信息,它就能创作出一封看似由人手书写的信件。...

    DVP03C01-C++编程规范

    - **建议**:提倡单一职责原则,每个函数应只做一件事情,函数参数数量和复杂性应适度。 8. **可测试性** - **规则**:鼓励编写可测试的代码,如使用单元测试,确保代码功能正确无误。 9. **程序效率** - **...

    编写高质量代码:改善Python代码的91个建议-中文版

    - 函数应该具有单一职责,只做一件事情,并且做得好。 6. **模块化设计**:强调将相关功能组织到单独的模块中的重要性。 - 模块化可以提高代码的复用性,降低维护成本。 #### 第2章:编程习惯与技巧 7. **使用...

    JAVA编码规范 JAVA变成好习惯

    - 遵循单一职责原则(SRP),每个类和方法只做一件事情。 - 避免使用全局变量,除非绝对必要。 5. **异常处理** - 不要忽略异常,即使捕获了异常也应该进行适当的处理或记录。 - 使用具体异常而不是`Exception`...

    提高C#编程水平的50个要点(C#程序员必读)

    事件是一种特殊的委托,用于通知其他对象某件事情的发生。 #### 23. 避免返回类内部成员的引用 避免泄露内部实现细节,保护数据安全。 #### 24. 使用元数据来控制程序 元数据提供了一种在运行时获取类型信息的方式...

    华为的编程规范与范例

    - 过程设计应遵循单一职责原则,每个过程只做一件事情。 7. **可测性**: - 代码应易于测试,可以编写单元测试和集成测试,确保功能正确性和健壮性。 8. **程序效率**: - 编码时需考虑性能优化,避免不必要的...

    C++编程规范 编程规范

    - **规则**:每个函数或过程应只做一件事情,保持职责单一。 - **建议**:函数参数数量控制在3-5个以内,过多参数可能降低可读性。 7. **可测性** - **规则**:编写可测试的代码,确保单元测试能够覆盖所有关键...

    高质量C语言编程指南

    - **单一职责原则**:每个函数应只做一件事情,保持功能简单明了。 - **函数签名**:函数的参数列表和返回类型应清晰反映其功能。 8. **代码复用**: - **模块化**:通过函数、结构体和枚举等手段实现代码重用。...

    cpp-neat:一组整洁的小模式、片段以及可以用 C++ 做的所有其他事情(11)

    6. **内存管理**:C++允许直接控制内存,但同时也需要谨慎处理内存泄漏和悬挂指针。cpp-neat可能包含了智能指针的使用,以及何时使用new和delete的最佳实践。 7. **RAII(Resource Acquisition Is Initialization)...

    关于Java反射机制 你需要知道的事情

    总结来说,Java反射机制提供了一种强大的工具,允许程序员在运行时分析和操纵类的行为。它在许多场景下都非常有用,如框架开发(Spring、Hibernate等)、元编程、动态代理以及处理未知类型的对象等。然而,由于反射...

    C/C++编程规范文档

    3. 遵循单一职责原则,每个函数或类只做一件事情。 4. 使用设计模式解决常见问题,如工厂模式、单例模式、观察者模式等。 六、注释与文档 1. 每个函数、类和重要的数据结构都要有注释,解释其功能、参数、返回值和...

    阿里巴巴java开发手册中文版

    2. 方法设计:方法应尽可能短小,每个方法只做一件事情。避免过长的方法和过深的嵌套结构。 3. 数据结构的选择:合理使用集合类,如List、Set、Map等,根据实际需求选择合适的数据结构,以提高性能。 四、并发编程...

    如何提高c/c++编程质量

    6. **函数设计**:遵循单一职责原则,每个函数应只做一件事情。函数应保持小巧,以便测试和复用。避免大函数,如果一个函数超过几行,可能需要考虑拆分。同时,合理使用参数,避免过多的参数传递,可以考虑使用...

    JAVA编程规范学习材料

    遵循单一职责原则(SRP),一个类只做一件事情。此外,使用适当的封装,将实现细节隐藏在内部,提供公共接口供外部调用。 3. **注释规范**:注释应清晰、简洁,解释代码的目的和行为,而非代码本身。使用Javadoc来...

    C++编程规范

    尽量让函数做一件事情并做好,遵循单一职责原则。 9. **面向对象编程**:理解封装、继承和多态的含义,合理使用抽象类和接口,避免过度设计。 10. **并发编程**:当涉及多线程编程时,使用`std::mutex`、`std::...

    改善Go语言编程质量的50个有效实践.rar

    然而,写出高质量的Go代码并不总是自然而然的事情,需要遵循一定的最佳实践。以下是对"改善Go语言编程质量的50个有效实践"这一主题的详细解读,旨在帮助程序员提升Go语言编程水平。 1. **理解Go的核心特性**:熟悉...

    ReflectionExtensions.zip_C#编程_C#_

    在.NET框架中,反射是一种强大的工具,允许程序在运行时检查自身并操作其类型和对象。`ReflectionExtensions.zip`中的内容...如果你在项目中经常需要处理类型信息或操作对象的属性和字段,这个库将是一个宝贵的资源。

    动态方法和CLR的乐趣(第2部分)

    这种技术允许程序员在运行时生成和执行代码,提供了极大的灵活性和效率。C# 4.0及其后续版本引入了`System.Reflection.Emit`命名空间,使得动态方法的创建变得容易且高效。 首先,让我们了解如何创建一个基本的动态...

Global site tag (gtag.js) - Google Analytics