240 发简信
IP属地:陕西
  • fp-ts 介绍

    FP,全称为函数式编程(Functional Programming)。函数式编程是一种编程范式,强调将计算过程视为数学函数的计算。 Function Composition...

  • 谈谈Scala FP中那些基本又重要的概念

    在学习和使用Scala FP的过程中,我们经常发觉这条道路非常陡峭,但其实有的时候不是因为当前正在使用的库或者代码组织方式复杂,很多时候是我们对一些基本概念的理解不够透彻。F...

  • 120
    关于我学习软件产品数据处理这档事

    背景我所在的新团队在为当前一个老产品添加新功能的 Inception 期间, 客户多次为我们展示了当前产品的用户使用数据,用来说明产品的优化空间和要添加的新功能会带来的价值,...

  • React Hook - 如何使用useMemo和useCallback

    Hook是在React 16.8之后增加的一项新功能,能够帮助我们在不写class的情况下使用state和其他React的相关特性。关于如何使用Hook官网[https://...

  • 120
    Proxy & Reverse Proxy

    Proxy Proxy: 代理,即正向代理(Forward Proxy),在客户端和另一个系统之间路由通信的服务器。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,...

  • 写给软件行业有“35岁危机”的你

    背景2020年,COVID-19 疫情出现,到2022年,这段时间内,全球各行各业为了应对疫情,都采取了一些行动。2022年,俄乌开战,全球都开始或被动,或主动的采取了一些行...

  • 本文中提到的 Code Review,是指”代码质量审核“,也提到了github 中的 Pull Request,或(PR Review)是一种在开源软件开发过程中被广泛采用的 代码质量审核 方式。

    关于Code Review 和 结对编程, 首先,他们的前提是团队对于工作人员能力的认可(通过了面试,以及相应的培训)和信任,那么在”代码质量审核“这一个点上,差别就成了参与人数,和发生时间的不同。即”集思广益“应该发生在何时?结对编程认为,在写代码的过程中,可以一直存在两人的讨论(小范围的集思广益),然后提交代码。在代码合并后,依然可以通过大范围的(团队内)Code Review,来进行回顾,如果有问题,持续改进和维护。因此,单看结对编程和Code Review,理应没有冲突。

    但是 当Code Review 结合了 Github的PR Review 流程,就不是这样了。因为这是在流程上的强制控制,它的前提是建立在Code Owner 对于代码质量负责,并且并不充分信任 Contributor 的代码能力的基础上。因此,它在代码并合并前,建立了一套强制的审核机制,审核通过才能合并。也就是说,如果想要顺畅的合并代码,必须要有其他具有一定上下问的人花时间完成Review才能继续。如果,考虑到敏捷概念中的持续集成概念,那么这种关键节点(合并代码前)的人工不可控流程的介入,必然会让整个代码集成过程变得不平顺。

    因此,对于企业内软件交付项目 与 开源软件项目,由于侧重点不同,还是需要结合具体情况,选择合适的实践方式的。但我个人并不认为 结对编程 的多重实践效果可以被取代。😄

    Code Review 与 结对编程

    这篇文章的起因是在《“敏捷中国史”交流群》群里的一个争论,我希望能够通过这篇文章说明自己的一个观点:相对于结对编程,Code Review是一种更加合理与普适性的研发实践。 ...

  • 勘误:“它们会给你完全不同的体验。从整体来看,我将 TDD 的实践归纳为 2个阶段:”
    此处应为 “3 个阶段”, 文章在调整时出现纰漏,明天会更新。

    “叕”谈 TDD(三)--- 如何TDD

    背景:重新阅读了以下 可以引发思考 的 陈年老文《TDD并不是那么美》[https://coolshell.cn/articles/3649.html]《TEST-DRIVE...

  • “叕”谈 TDD(四)--- 如何不TDD

    你好,虽未能谋面,但我感谢你能耐心的读到这里。这至少说明你对测试驱动开发的兴趣不低。我写这个系列的文章,并没有抱着一定要推广测试驱动开发实践的目的。而是希望有更多的人,能通过...

  • “叕”谈 TDD(三)--- 如何TDD

    背景:重新阅读了以下 可以引发思考 的 陈年老文《TDD并不是那么美》[https://coolshell.cn/articles/3649.html]《TEST-DRIVE...

  • 120
    沉思录 --- 结对编程(Pair Programming) 篇

    背景今年,我开始了使用敏捷软件交付工程实践的第五个年头,在编程知识满足工作需求之余,我开始重新审视这些融入日常的工程实践方式,去尝试找出实际与理论的差距,分析差距的成因,基于...

  • 120
    “叕”谈 TDD(二)--- 为何TDD

    背景:重新阅读了以下 可以引发思考 的 陈年老文《TDD并不是那么美》[https://coolshell.cn/articles/3649.html]《TEST-DRIVE...

  • “叕”谈 TDD(一)--- 何为TDD

    背景:重新阅读了以下 可以引发思考 的 陈年老文《TDD并不是那么美》[https://coolshell.cn/articles/3649.html]《TEST-DRIVE...

  • Git Fork 技巧

    日常工作中,经常会遇到一种情况,看到别人写的好的 repo 希望能够学习瞻仰,一番观摩之后发现一些问题,因而需要对代码做一波修改,修改之后希望能够贡献在源代码上,但是又因为没...

  • 为什么小明改造自己要花很久,小偷却一下就偷走了手机?😂
    小偷是什么?

    浅谈控制反转与依赖注入

    注:本文转载于:https://zhuanlan.zhihu.com/p/33492169 第一章:小明和他的手机 从前有个人叫小明 我们用一段简单的伪代码,来制造一个这样的...

  • 120
    简单谈谈控制反转 ( Inversion of Control )

    在上一篇《关于原则、模式、框架的概念梳理》中,我提到最近在学习一些基础理论,例如一些简单的编程原则,设计模式等。那么本文就来谈谈我对于控制反转这个概念的理解。因为纯粹是个人学...

  • 120
    关于原则、模式、框架的概念梳理

    背景:在网上查找 IoC 相关的知识,蹦出来最多的是 Java Spring 的工作原理...略有不解,为啥我查一个原则,给我一堆工具的工作原理说明 ?🙄 所以尝试梳理清楚:...

个人介绍
踏上取经之路。。。