第一个 VBA 项目交付时的反思

规矩:干啥前儿先说一声。

流程:

  1. 需求获取

使用情境scenario和所需功能function,运行环境和实现语言要求。

  1. 需求分析1:操作流

总结用户情境,规范操作流程。正常流和异常流等。

  1. 需求分析2:交互设计

如果有界面,询问客户想法,尽快拿出方案,与客户碰。
要在这一步就把界面设计得几近完善。否则后期可能会被代码牵着鼻子走。
“用代码实现界面” 和 “实现功能后随手添一个界面” 是不一样的,我们这次就犯了这样的错误,最后懒了。
本来不难,但是因为懒,所以就给自己找理由不去改善。
这一步,是这次项目给我们的第一个启发。

判断文件在不在,在,是不是 Excel,是,指定列是否为空。是否 ignore。
判断文件夹在不在。

就这么几步,很简单。

「设计驱动开发」和「功能驱动开发」仅仅一步之遥。
长谷川是产品经理,他重视的是用户体验,那我们就给他用户体验。

在这一步就把交互设计做到能的最佳。


直到見積もり前,需求和界面都与实现代码无关,所以可以单独考虑。
比如界面这种东西。没有问题。


  1. PRE見積もり

技术难点分析。总结为几步。比如这次我总结的五步就很清晰。
两个方面去想,程序 = 数据 + 算法
数据的增删改查CRUD,数据的存放、类型,获取和修改方法。字符串匹配方案。排序搜索方案。

软件 = 程序 + 界面。
界面可以是 cmd,也可以是 gui。以 gui 居多。
所以,还要考虑 gui 实现方案。

  1. 見積もり

学习时间,各步完成时间。
分工,人力核算。

  1. 二次谈判。提交预算。

  2. 设计测试用例。
    开发前就设计好测试方案。统一分发 dummy 数据。
    这一步,是这次项目给我们的第二个启发。
    「测试驱动开发」。
    最终的模式是 ——

设计驱动测试、测试驱动开发。

  1. 开发。
    遇到不明之处不独断,“事无巨细”,请示客户确认。累死客户,我们不给他们拿主意,难伺候,那我们就伺候死你,表达我们的尊重。

  2. 测试与除虫。

  3. 验收交付。

  4. 反思总结。
    每次实战,胜负都要有改进、有提高。


学习方法:学新语言,一定要先找一本适合自己口味书写的教材,截图笔记,快速通读一遍。了解其于以往学过和使用的语言的异同,尽快切换语法使用习惯。
将预计可能会用于此次项目的内容记录下来。
高级用法要清楚,比如这次的 excel 事件编程与界面编程的关系。如果不清楚,和滨畑就没法聊 gui 了。
先看书,再写代码。先虽慢,但后快。

掌握了新语言的设计理念后,再把常用语法,比如变量、作用域、条件、循环、gui 绑定,搞定之后。就可以用搜索引擎边用边搜示例代码,边读边学。

体悟经验:
学编程,第一步是先完完整整地学一门语言,扎扎实实地语法和内存基础。
第二步就是接项目。边做边学。
学新语言,就是与原语言对比的过程,新语言的掌握将非常快。所以,你的入门语言,一通百通。

一定要有项目,甚至要自己给自己施压,限制見積もり才行。

没有项目需求,没有 deadline,一辈子就在安逸中,那永远也别想学会编程。
学习,就是反安逸的过程,自己找不自在才能成长。


gui 编程

vba 启发:流程化

不会 vs 学不会。

不会我还学不会?
要有股子老子明睿天授的傲气。
不要怕接活儿,有活儿来就代表有钱赚啊。
坚持到最后一刻交卷。

躲着客户 = 躲着钱,不会 ≠ 学不会。

不运用,学不会。李晓鹏。
但只要联系,就能记住。而且是贯通。
学会?
也许,只是也许。有些东西记住就算会了。
就看你怎么定义“学会”了。
钉网理论不一定能帮你学会,但一定能帮你建立联系。
建立联系自然就记住了。但,“学会”究竟是什么东西,我还没有完美的定义,我还没有答案。

你可能感兴趣的:(第一个 VBA 项目交付时的反思)