![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
炼金术
文章平均质量分 82
幻灰龙
计算数学博士,程序员,热爱技术和学习。
展开
-
把一件事情说清楚即可,把一件事做完即可
我手里已经没什么可做的了,但是环顾四周,好像其他人都还在,我就在犹豫要去吃饭不,还是再等等。忽然,我想到了:“今天主要的事情做完了即可”,于是我就撤了。那些不能做的事情,如果有缘份,总是会有机会真正跑到你的面前,而你也有了有质量地做好它的准备,那时候再做不迟。于是做PPT的时候,总想着要用多华丽的标题,用多华丽的图片,用多华丽的数据,以及用多华丽的动画什么的。或者,我想演示一个东西,例如AI编程,那么只要把AI编程,从简单到复杂的一组例子挨个展示出来,中间保留直接演示的能力即可。没有代码,也没有图表。原创 2023-07-04 22:22:43 · 419 阅读 · 1 评论 -
远程小组软件开发过程(3):人
本节内容可能不会很长,但是还是希望尽可能把这个环节重要的骨架勾勒出来。有一个经典的问题是:“如果你是一个投资人,要投资一个项目,核心是看什么?项目还是团队?”。与之对应的一个问题是:“如果你是一位创业者,创业的基石是一个独特的项目还是一个优秀的团队?”当然这种二选一的问题往往都只强调了某一个方面,并没有标准答案,有的人会选项目,有的人会选人(团队)。本节要讨论的是在一个企业里面“如何构建一个有效的能做产品的团队所需要的不同角色的人”,这个问题。原创 2022-09-05 01:47:30 · 5237 阅读 · 19 评论 -
远程小组软件开发过程(1):流程
现代软件开发,人与人在空间上的距离已经越来越明显地发生了范式转移,在可预见的未来和更久远的时候,远程办公都会是一件经常发生或者常态的协同方式。远程软件开发的最小组织单位是远程小组软件开发,把远程小组软件开发的效能做好,软件公司将在空间上解放了一种新的能力可以在更大区域间完成软件开发的组织和协同工作,提供一种新的效率。CSDN本身就在北京/长沙之间有两个大的研发团队,即使不考虑少数的个体远程办公,北京和长沙之间的团队协作也是一种远程软件开发过程。.........原创 2022-07-27 22:26:24 · 3362 阅读 · 4 评论 -
远程小组软件开发过程(2):工具
工欲善其事,必先利其器,我们以CSDN技能树的分层构架和工具链构建为例子,展示投资工具链在软件开发中的好处。流畅的工具链,是软件开发团队效能的关键之一。原创 2022-07-28 21:25:59 · 3088 阅读 · 0 评论 -
炼金术(4): 程序员的心智模型
如果一个团队的成员都是资深程序员,是不是就能保证项目开发质量和效率是最佳的呢?答案是未必。如果一个团队的成员都是新手,是不是项目的开发质量和效率就是“新手水平”呢?答案是未必。由于人的惰性是会滋生的,更有破窗效应在背后默默起作用。一个团队如果没有人担起责任,推进紧凑的开发节奏,强力推进进度,那么项目就会在漫不经心之间发生质量和效率的双滑坡。甚至,有时候越是资深的程序员,越会出现老油条现象,...原创 2020-01-18 00:14:00 · 701 阅读 · 2 评论 -
炼金术(1): 识别项目开发中的ProtoType、Demo、MVP
软件开发是很分裂的,只有不断使用原则和规律,才能带来质量。只要不是玩具性质的项目,项目应该可以大概划分为0-1,1-10,10-100,100-1000四个种重要阶段。其中,0-1是原型验证性的;1-10是Demo展示性的;而10-100是项目的最小功能集,可以让产品初步达到可以第一次发布的阶段;最后100-1000则需要对项目做持续的迭代,完善项目的完整功能,达成完整发布。项目立项的时候,...原创 2020-01-05 23:40:00 · 1011 阅读 · 0 评论 -
炼金术(2): 为什么要用issue管理软件
在项目开发中,存在的无数的任务分解,问题管理,流程跟踪。因为直接说话或者直接在IM里喊话是很容易的,所以在一个还没有习惯使用issue管理软件的团队中,直接说话或者直接在IM里AT,就在某些时候变成了主要的任务通知渠道。就像为什么我们不能用IM传递代码给别人,让别人覆盖到自己项目里一样。事实上我们应该摈弃那种把任务分解和任务跟踪用IM这种方式“便利”通知的方式。思考一下,如果你在程序里写一个任...原创 2020-01-07 23:16:00 · 307 阅读 · 0 评论 -
炼金术(3): 怎样做好1个业务流程的接口对接
假设一个完整的项目,包含了6个不同的【端】:PC客户端、移动端、官网、支付页面、活动页面、以及后端、以及底层的核心功能组件开发。假设有5个人分别负责5个【有脸】的【端】:PC客户端、移动端、官网、支付页面、活动页面;假设1个人负责开发后端,实际多少人不知道,这1个人是一个代表;假设2个人负责开发底层核心功能组件,实际多少人不知道,这2个人是一个代表;假设1个跟进的测试。假设产品上,做好了MV...原创 2020-01-09 23:51:00 · 389 阅读 · 0 评论 -
炼金术(5): 区分前端开发/客户端开发/后端开发/核心开发
前端开发,指只做过HTML、CSS、JavaScript以及具备使用在此基础上构建的各种Web类型的UI框架开发的能力,例如React、Vue、Elm等Web框架,同时对NodeJS生态下的Gulp、Webpack等打包工具链、有所熟悉。前端开发人员还需要对PC端网页渲染、移动端网页渲染,或响应式渲染有所熟悉。必要的,前端开发人员还需要熟悉微信开发、微信环境的H5开发、以及各种小程序的开发等。...原创 2020-01-28 19:07:00 · 5058 阅读 · 1 评论 -
炼金术(6): 可迭代的模型和用例
算法笔记(1):【通过测试用例的累积和回归测试导向算法的正确】有一次,我做了一道算法题:https://leetcode.com/problems/regular-expression-matching/最终的代码,我用JavaScript写了300多行代码,通过的时候我本地的测试用例有50几个。这个题目我做了挺久的,但是我从中获得了很多启发。当然,算法本身所代表的DFA/NFA,以及模式...原创 2020-03-06 23:09:00 · 271 阅读 · 0 评论 -
炼金术(8): 开发和发布的并行
在一个技术群里,遇到一个网友提了一个问题,这种场景我曾经遇到过,提供一种解法,这需要去构建,但是如果需要的是【立即有效】的解法,可能不存在。这个方式,最小的情况下3人的迷你小team就可以实施,所以可以说是一个面向小企业的团队的介绍。麻雀虽小,五脏俱全,要用好的调度、原则、自动化工具带来效率和自由。一个网友的问题:为了赶时间,dev和pub并行,我一天发五六版,不是在发版就是在发版的路上,...原创 2020-04-16 19:41:00 · 414 阅读 · 0 评论 -
炼金术(7): 何以解忧,唯有重构
很多时候,把代码梳理一遍,把逻辑写正确,把依赖关系理顺,BUG就不见了。一个Bugly的遗留系统,只有彻底的重构,让程序首先处于「良构」状态,才可以正常的开发、维护和发版本。其中有一个本质的问题,就是让代码实现「高内聚、低耦合」。下面是我的重构笔记。干活我发现我原来习以为常的编程习惯,我一开始就不会写出这种乱七八糟耦合的问题,所以有很长一段时间以来我都感觉不到写代码要注意「高内聚、低耦合」...原创 2020-03-26 11:24:00 · 286 阅读 · 0 评论