首页 > 编程语言 >《程序员修炼之道--从小工到专家》阅读笔记02

《程序员修炼之道--从小工到专家》阅读笔记02

时间:2023-05-21 19:23:53浏览次数:38  
标签:02 软件开发 -- 代码 实践 提出 程序员 作者 实现

《程序员修炼之道--从小工到专家》第二章和第三章的主题是“实践”和“注重实效”,本文是本人对这两章节的阅读笔记。
第二章:实践
本章的核心观点是:软件开发是一门实践性很强的技艺,需要不断地实践和锤炼,才能取得进步和提高。而编写代码需要掌握多方面的技巧和工具,并不是只要会某一门编程语言就足够了。作者提出了一些在实践中需要遵循的原则和实践方法,包括:

不断学习:软件开发是一个快速变化的领域,需要不断学习新的知识和技能。作者强调了学习的重要性,提出了“知识即力量”的论断。
注重实践:只有通过实践才能真正地掌握技巧和经验。作者提倡“实现即是最好的文档”的原则,强调了代码的可读性和可维护性。
用工具解决问题:软件开发过程中需要频繁使用许多工具,如调试器、版本管理系统、构建工具等。作者提出了四项原则来选择合适的工具,分别是可靠性、易用性、可扩展性和兼容性。
面对复杂性:软件开发过程中会遇到各种各样的复杂性,如代码规模、技术复杂度、系统交互等。作者提出了分解问题和关注核心问题的实践方法,在设计和实现上介绍了一些技巧和原则。
代码复查:代码复查是一种非常有效的提高代码质量的方式,它可以发现代码中潜在的问题,并提供改进和优化的建议。作者提出了代码复查原则和实践方法。

第三章:注重实效
本章以实际的项目开发过程为背景,强调了实现的效率和实现的质量之间的平衡关系。作者指出,开发者应该用最少的时间和成本,尽可能地实现最大化的效益,而非一味地追求代码的完美。
作者提出了一些实现实效的方法和技巧,包括:

可读性和可维护性:设计和实现的代码应该具有可读性和可维护性,以方便其他人或自己日后的维护和修改。
团队协作:开发不是孤立的工作,需要团队的协作。作者提出了要协同工作,重视沟通、协调和合作等原则,介绍了一些有效的团队协作技巧。
自动化:自动化可以提高效率和减少错误,自动化测试、构建和部署是实现自动化的方法之一。
避免浪费:排除无效的工作和多余的环节,减少不必要的开销,是实现实效的重要方法之一。
精益思想:精益思想是一种管理理念,包括最小化浪费、持续改进、价值流、流程优化等概念。作者借鉴了精益思想,提出了实现实效的方法。

本章主要节选自论文《The Pragmatic Programmer》的结构,强调的是开发者应该摆脱一些不必要的束缚和偏执,让自己更加注重实用性和実用效果。

标签:02,软件开发,--,代码,实践,提出,程序员,作者,实现
From: https://www.cnblogs.com/yitongtianxia666/p/17419000.html

相关文章

  • 以希望为名,浴火重生!
    你何曾看过,那天边的星辰?当你细心看向那无尽的黑夜,你会发现有一点星火,忽暗忽明。星辰很远,光到世间的时间不短,那可能是一百年前的星火。但那似乎过于遥远了,便是一年多前的星光吧。我依然看见,那星光还有明亮起来的希望,纵使它已经在明暗的边缘徘徊。我知道如果一切照这样发展下去,它......
  • 【CPP0040】list应用测试
    应用STL中的list完成功能测试。设计要求: 定义一个空的list,将用户输入的数组a[10]的10个数插入到list中,在list头部插入数b,用迭代器遍历list并输出其中的元素值。然后将list从大到小排序,删除list尾部的元素,用迭代器遍历list并输出其中的元素值。最后将list清空。#include<iostr......
  • 原型模式(Prototype Pattern)
    原型模式(PrototypePattern)一、意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。二、优缺点优点:1、性能提高。2、逃避构造函数的约束。缺点:1、配备克隆方法需要对类的功能进行通盘考虑,这对于全新的类不是很难,但对于已有的类不一定很容易,特别当一个......
  • Bean Search 超级好用的搜索工具
    1、引入依赖<dependency><groupId>cn.zhxu</groupId><artifactId>bean-searcher-boot-starter</artifactId><version>4.1.2</version></dependency>2、定义实体类autoMapTo:若不指定别名,自动映射的表orderBy:排序字段,如果数据量大,不建......
  • Linux 文件描述符
    最近在复习tcp/ip知识,其中有关的一个问题"一台服务器做多支持多少个TCP链接"和Linux下的文件描述符有关,学习一下。Linux中,一切设备都是文件,对文件的操作都是通过文件描述符来进行的。文件描述符的定义:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一......
  • ifc的解析思路
    IFC标准的解析包括以下几个方面:资源层解析:资源层是IFC标准中最基础的信息层,包含了建筑工程中所需的各种基础信息,如材料、几何、拓扑等。资源层的信息通常是通过定义特性、数量、分类等属性来描述的。核心层解析:核心层定义了IFC标准中信息模型的整体框架,包括工程对象之间的关系......
  • 3.JUC【Java面试第三季】
    3.JUC【Java面试第三季】前言推荐3.JUC06_闲聊AQS面试1.题目+说明07_可重入锁理论2.可重入锁说明“可重入锁”这四个字分开来解释可重入锁的种类08_可重入锁的代码验证-上09_可重入锁的代码验证-下3.LockSupport10_LockSupport是什么LockSupport是什么11_waitNotify限制==线程等待......
  • Angular2 Material Design开发环境搭建
    Angular2和Angular1有什么区别?就是Java和Javascript,雷锋和雷锋塔的区别。刚会用Angular1做些小项目,发现Angular2来了,据说性能上提升还是蛮多,所以还是从0开始吧。Angular2虽然还是支持用es5代码开发,但连官方教程都已经用TypeScript,对于之前没有接触过的人来说,学习还是有些成本的。作......
  • AngularJS2 教程 -- TypeScript环境配置
    AngularJS2TypeScript环境配置这开始前,你需要确保你已经安装了npm,如果你还没安装npm或者不了解npm可以查看我们的教程:NPM使用介绍。由于npm官网镜像国内访问太慢,这里我使用了淘宝的npm镜像,安装方法如下:$npminstall-gcnpm--registry=https://registry.npm.taobao.org......
  • 2.Java基础【Java面试第三季】
    2.Java基础【Java面试第三季】前言推荐2.Java基础01_字符串常量Java内部加载-上58同城的java字符串常量池面试code讲解intern()方法---源码+解释02_字符串常量Java内部加载-下whyOpenJDK8底层源码说明递推步骤总结考查点03_闲聊力扣算法第一题字节跳动两数求和题目说明面试题解法04......