为什么要从快的角度来讲这系列课程呢?
 
因为快是一个很统一很清晰的标准. 所有人对时间都有一个统一清晰的概念. 
比如说这系列课程会讲到的一个实例: 集成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. python 字符串拼接

    str1 = 'abc' str2 = 'def' str3 = str1 + str2 print(str3) 这种方法只需要申请一次内存.

  2. hashMap,hashTable,concurrentHashMap区别

    HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相 ...

  3. DCT(离散余弦变换)算法原理和源码(python)

    原理: 离散余弦变换(DCT for Discrete Cosine Transform)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT for Discrete Fourier Tra ...

  4. app开发中,前后端使用AES进行数据加密传输

    问题:当数据调用没有使用https加密时,app被抓包,接口暴露,此时可能导致被刷等安全问题 解决:1. 使用https传输 2. 在进行数据传输时进行手动加密(app端和后端定义统一的加密方式),这 ...

  5. python之N阶乘结果末尾有几个0

    算法思路:首先是算阶乘,可以使用内置函数reduce实现,其次是计算结果的末尾有几个0,可以使用除余判断 代码如下: #!/usr/bin/env python#-*-coding:utf-8-*- ...

  6. SHOW INDEX 你用过吗???

    mysql中 show 包含了很多指令,例如show table status, show innodb 等等等, 今天来讲讲mysql中SHOW  INDEX FROM tableName 本例中用 ...

  7. 一款超人气代码格式化工具prettier

    一.prettier 介绍 官方自己介绍说,prettier是一款强势武断的代码格式化工具,它几乎移除了编辑器本身所有的对代码的操作格式,然后重新显示.就是为了让所有用这套规则的人有完全相同的代码.在 ...

  8. Django使用Channels实现WebSocket--下篇

    希望通过对这两篇文章的学习,能够对Channels有更加深入的了解,使用起来得心应手游刃有余 通过上一篇<Django使用Channels实现WebSocket--上篇>的学习应该对Cha ...

  9. mycat 从入门到放弃 (转)

    http://blog.csdn.net/u013235478/article/details/53178657   1.非分片字段查询 Mycat中的路由结果是通过分片字段和分片方法来确定的.例如下 ...

  10. MFC控件编程之复选框单选框分组框

    MFC控件编程之复选框单选框分组框 一丶分组框 分组框 英文叫做 GroubBox 添加了分组框主要就是分组.好看.不重点介绍 二丶单选框 英文: Raido Button 单选框需要注意的事项 1. ...