热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

提高复用性的编码习惯

设计编程的时候,往往根据具体的问题具体实施,而缺少提炼共性的动力。为什么会这样,我想主要是提炼共性是一个复杂的脑力劳动,在人们追求按时完成工作之余,是否有精力去做这个复杂繁重的脑力劳动呢?为此

设计编程的时候,往往根据具体的问题具体实施,而缺少提炼共性的动力。

为什么会这样,我想主要是提炼共性是一个复杂的脑力劳动,在人们追求按时完成工作之余,是否有精力去做这个复杂繁重的脑力劳动呢?

为此,我认为,一味去指责人们不去提炼复用,是没有意义的。要改善这方面的问题,可以培养一种可以提高复用性的编码习惯,这种习惯一旦养成,就可以不费劲的编写一些复用性相对较高的代码出来。

1.基于接口编程。制定一个良好的接口规范(根据调用方的需求制定),再来完成内部编码。这个隔离可以避免对实现的过多猜测,减少调用方对具体实现的依赖。

2.功能的专职化,每个接口应该只包含紧密相关的一组函数调用规格。

3.主流程调用方案,方案是一个配置工厂,配置工厂负责调用方和实现的配接工作。

4.减少不明确,模糊的定义。比如魔法数字,词不达意的标识符等。

5.可测试化。无法度量的代码是无益工程的。测试不变性,在同一个输入和状态下,会产生一组一致的状态和输出。

6.提高处理问题的规模。解决一个小规模问题和解决一个大规模问题从编码角度可能差别不多,因此要善于从一个相对大的规模去分析问题,解决问题。

待续


推荐阅读
  • 本文汇集了多个专注于PHP及后端开发领域的技术博客,包括知名的技术社区如SegmentFault和掘金等。这些资源对于提升技术水平、拓宽知识视野具有重要价值。技术博客作为学习过程中的辅助材料,其作用在于激发兴趣、提供灵感,但更关键的是建立坚实的技术基础和丰富的实践经验。 ... [详细]
  • 本文探讨了如何在C#应用程序中有效处理来自两个不同数据库的数据,特别是当需要从一个数据库中选择不在另一个大型集合中的ID时遇到的挑战和解决方案。 ... [详细]
  • 本文汇集了使用C#中不同HTTP客户端向Web API上传文件的实例,旨在为开发者提供实用的技术指南。 ... [详细]
  • 本文详细介绍了在PHP中如何创建新文件以及如何使自定义函数在整个项目中全局可用的方法,包括最新的实践技巧。 ... [详细]
  • 解决Android开发中的TextView难题
    探讨了在Android开发过程中遇到的关于TextView组件的常见问题,特别是如何实现多行文字的跑马灯效果,并提供了初步的解决方案和参考资料。 ... [详细]
  • 如何在Ubuntu上查询OpenCV版本
    本文介绍了一种简单的方法来查询Ubuntu系统中已安装的OpenCV版本,对于开发者来说非常实用。 ... [详细]
  • 解决phpMyAdmin运行错误:mysqli_init(): 属性访问尚未允许
    本文探讨了在使用phpMyAdmin过程中遇到的mysqli_init()函数错误,并提供了有效的解决方案。 ... [详细]
  • 掌握Python岗位,你需要了解的关键技能
    最近,在社交平台脉脉上,一条关于Python岗位的消息引起了广泛关注。本文将探讨Python岗位的实际价值,并深入解析阿里巴巴等大公司在面试Python开发者时常见的问题。 ... [详细]
  • 本文详细探讨了JSP环境下数据库连接的实现方法,包括环境配置、代码示例以及常见的连接问题及其解决方案。 ... [详细]
  • 在Word中编辑复杂的数学公式常常让人感到头疼,尤其是处理偏微分方程(PDE)等高级数学内容时。然而,最近GitHub上的一个开源项目latexify_py展示了如何利用Python轻松生成LaTeX数学公式,极大地简化了这一过程。 ... [详细]
  • Node.js中子进程的创建与管理详解
    本文深入探讨了Node.js中如何使用child_process模块来创建和管理子进程,包括exec、spawn和fork三种方法的具体应用及其实现细节。 ... [详细]
  • CGroups: 资源管理和控制
    CGroups(Control Groups)是Linux内核提供的一个功能,旨在限制、记录和隔离进程组使用的物理资源,如CPU、内存和I/O等。它通过精细的资源管理,支持现代容器技术如Docker的资源限制需求。 ... [详细]
  • 探索Java堆外内存:超越JVM限制的新途径
    本文深入探讨了Java堆外内存的应用及其对性能的提升,特别是如何通过堆外内存绕过JVM的限制,解决内存不足的问题。 ... [详细]
  • STM32嵌入式开发学习路径推荐
    本文详细介绍了STM32嵌入式开发的学习路线,涵盖串口通信、FreeRTOS实时操作系统及网络编程等内容,旨在帮助初学者全面掌握嵌入式软件工程师所需的核心技能。 ... [详细]
  • 深入解析Java中的锁类型及其应用场景
    本文详细介绍了Java中常见的锁类型,包括乐观锁与悲观锁、独占锁与共享锁、互斥锁与读写锁、可重入锁、公平锁与非公平锁、分段锁、偏向锁、轻量级锁、重量级锁以及自旋锁。每种锁的特性、作用及适用场景均有所涉及。 ... [详细]
author-avatar
mobiledu2502920413
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有