为什么要从快的角度来讲这系列课程呢?
 
因为快是一个很统一很清晰的标准. 所有人对时间都有一个统一清晰的概念. 
比如说这系列课程会讲到的一个实例: 集成LinqToExcel, 用我的方法大概耗时1个小时.
如果你有异议, 那请你拿出更好的方案, 就是耗时比1个小时更少.
这么一说评判标准就很清晰, 两个方案之间可以立盼高下.
 
假如我用好来做标准, 因为好的标准很模糊, 就会导致很多问题.
还是拿上面的那个实例来说吧: 集成LinqToExcel. 如果采用好来做标准, 公说公有理,婆说婆有理. 争论估计就花了两个小时, 而我做完它才只需要1个小时.
 
为什么我要专门强调这点呢? 因为我看到有很多同学因为按照好的标准而不是快的标准导致了:
  1. 很多同学遇到的问题花了很多时间和精力, 然而从最根本的角度和方向上来看这些问题应该是不存在。
  2. 很多同学在DDD理论上钻了牛角尖, 花费了很多时间和精力却没啥收获.
同时也导致了IT界发生了不少争论, 比如“PHP是最好的语言”和“代码缩进用tab好还是空格好”
 
那么快的定义是什么呢?
很快速的写完代码提交但是出了一堆bug要修复, 这样并不叫快, 因为我们计算时长是要这样计算的: 写代码的时间+修复bug的时间.
所以我们是这样定义快的: 在保证没有Priority1和2 bug的前提下总耗时越短越好。这里的总耗时是指写代码的时间+修复bug的时间
 
有同学还是觉得有点抽象, 我具体解释一下.
首先, 没有bug的程序是不存在的, 大家打开github, 请找出一个100star以上而又没有bug的项目给我看看?
所以我们不追求0 bug.
我们只追求没有Priority1和2 bug. 也就是优先级为1和2的bug.
 
现在让我们打开AzureDevops(就是以前的TFS), 看看bug的Priority定义在哪里.
 
好啦, Talk is cheap, just show your code.
理论讲完了, 这节到此为止, 在接下来的章节里面, 我会讲到以下几个实践:
  1. DDD理论要听命于代码生成器(节省手写和争论时间)
  2. 集成LinqToExcel(只耗时1个小时就开发完成)
  3. 通过BDD/TDD来节省回归测试时间
 

如何用ABP框架快速完成项目(2) - 快的定义!的更多相关文章

  1. 如何用ABP框架快速完成项目(4) - 如何正确使用ABP?

    正如我在<如何用ABP框架快速完成项目(2) - 快的定义!>提到的, 很多同学在使用ABP中遇到很多问题, 花了很多时间和精力, 然而从最根本的角度和方向上来看这些问题应该是不存在. 这 ...

  2. 如何用ABP框架快速完成项目(面向项目交付编程面向客户编程篇)(1) - 目录

    昨天发表了<如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor>后,大家十分热情,几个小时内就收到了不少问题,包括: 对于ui自动化测试这方 ...

  3. 如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor

    要想快速完成一个项目, 自动化是很关键很有用的一块. 自动化测试比人工测试快很多. 特别是在回归测试中. 实践证明, 虽然投入了时间在写自动化测试代码上, 但是在回归测试中节省了大量的时间,同时及时发 ...

  4. 如何用ABP框架快速完成项目(8) - 用ABP一个人快速完成项目(4) - 能自动化就不要手动 - 使用自动化测试(BDD/TDD)

    做为一个程序员, 深深知道计算机自动化的速度是比人手动的速度快的, 所以”快速”完成项目的一个重要武器就是: 能自动化就不要手动.   BDD/TDD有很多优势, 其中之一就是自动化, 我们这节文章先 ...

  5. 如何用ABP框架快速完成项目(11) - ABP只要加人即可马上加快项目进展- 全栈篇(2) - 不推荐模块组件化, 推荐微服务

    一个人写代码不需要担心会和别人的代码冲突, 不需要做代码合并, 不需要担心自己的代码被覆盖. 但是多个人一起写代码就需要担心这些问题.   解决这些问题的方法很多, 比如用AzureDevOps(TF ...

  6. 如何用ABP框架快速完成项目(3) - 为什么要使用ABP和ABP框架简介

    首先先讲为什么要使用ABP? 当然是因为使用ABP可以快速完成项目啦. 时间就是金钱, 效率就是生命嘛   有了ABP, 你就节省了写如下模块的时间: CRUD数据库基本操作 校验 异常处理 日志 权 ...

  7. 如何用ABP框架快速完成项目(5) - 用ABP一个人快速完成项目(1) - 使用代码生成器

    用ABP一个人快速完成项目有如下要点: 站在巨人的肩膀上 - 使用代码生成器 站在巨人的肩膀上 - 使用成熟控件框架, 一个框架不够就上两个, 两个不够就上三个 通过微服务模式而不是盖楼式来避免难度升 ...

  8. 如何用ABP框架快速完成项目(10) - ABP只要加人即可马上加快项目进展- 全栈篇(1) - 发挥DDD理论优势的时候到了!

    正如我在<程序员英语二三事(2) - 从听开始>里说的, 任何技术/工具/语言都有其适用场景和上下文环境. DDD理论同样是如此.   现在, 终于到了发挥DDD理论优势的时候啦!   一 ...

  9. 如何用ABP框架快速完成项目(7) - 用ABP一个人快速完成项目(3) - 通过微服务模式而不是盖楼式来避免难度升级和奥卡姆剃刀原理

    这节文章十分重要!十分重要!十分重要!   很多同学在使用ABP的过程中遇到很多问题, 花费了很多时间和精力都还无法解决, 就是卡在这节文章这里.   Talk is cheap, just show ...

随机推荐

  1. VIM -小技巧汇总

    一 代码自动对齐: 1 命令行模式下先输入gg 然后按=后输入大写的G,这样整个文件的代码就对齐了. 二 选中多行缩进 1.按v进入visual状态,选择多行,用>或<缩进或缩出 2. 通 ...

  2. android WebView详解,常见漏洞详解和安全源码

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  转载请注明出处:http://blog.csdn.net/se ...

  3. 8.python面向对象编程

    基本概念 Class 类一个类即是对一类拥有相同属性的对象的抽象.蓝图.原型.在类中定义了这些对象的都具备的属性(variables(data)).共同的方法 Object 对象 一个对象即是一个类的 ...

  4. RabbitMQ访问控制

    Access Control (Authentication, Authorisation) in RabbitMQ 认证和授权这两个概念经常容易被混淆,甚至被互换使用.在RabbitMQ中这是错的, ...

  5. 微信小程序跳转小程序

    <navigator target="miniProgram" open-type="navigate" app-id="{{BappId}}& ...

  6. mcrypt加密以及解密过程

    Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示 Mcrypt扩展库可以实现加密解密功能 ...

  7. 网络基础知识 - HTTP协议

    前传:HTTP协议的演变过程 HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是 ...

  8. RabbitMQ系列(一)RabbitMQ在Ubuntu上的环境搭建

    环境配置 Ubuntu Server 18.04 RabbitMQ 3.6.10 安装之前 我们使用apt-get进行RabbitMQ安装,在安装之前,强烈建议您把apt源换位国内,大大增加下载安装的 ...

  9. NiftyNet项目介绍

    NiftyNet项目介绍  简述  NiftyNet是一款开源的卷积神经网络平台,旨在通过实现医学图像分析的深度学习方法和模块,支持快速原型和再现性,由WEISS (Wellcome EPSRC Ce ...

  10. Linux comm命令求出文件的交集、差集

    A(1,2,3)和B(3,4,5),A和B的交集是3,A对B的差集是1和2,B对A的差集是4和5,A和B求差的结果是1.2.4.5. 在Linux中可以使用comm命令求出这些集. [root@xue ...