timzaak / blog

8 stars 1 forks source link

论如何快速开发 #40

Closed timzaak closed 4 years ago

timzaak commented 5 years ago

最近有可能会接手一大堆项目的维护和开发,或者自己从头开始重做一遍。虽然倾向于后者,但是时间维度上,不知道是否能允许。 不管如何,我还是需要准备下如何快速开发项目。

谈到快速开发,我能立马想到的最快的也可能是最成熟的就是 ruby on rails, ror 在 scala 中的模仿者,应该是 skinny framework。所以我快速浏览了一遍开发文档。发现和我本项目 auth 子项目相比,除了多了一套手脚架,能节省不少时间外,其它并没有如何。另外我可能不太喜欢在 companion object Model 中注入过多的东西。我还比较喜欢在数据库中存储 json 数据结构。估计这又会是一个坑。

后来又考察了下 meteor, 它主要基于 minimongo,和 mongo 绑定的死死的。适合严谨性要求不那么高的。这又是个大问题。

又搜了下 graphqlcool,看 issue,还有不少问题。官方文档看的特别爽,几下就能搞定事情了,但越发感觉不踏实。毕竟涉及 scala nodejs 两个平台的融合,还有复杂数据结构的问题! 以及后面微服务的问题。太多我不能掌控的东西了。

难道现在的开发框架没问题,剩下的是开发流程的锅?这个需要再看看吧

timzaak commented 5 years ago

这两天看了下别人基于 spring dubbo 写的业务代码。 就只有一个感觉,离开了annotation,是不是代码就不会写了? 整个 java 业务开发体系,感觉陷入了通过annotation设定数据结构,然后通过反射去解析数据结构的写方式中去。另外还有就是过度的模式设计,很简单的东西,各种设计模式都得用上。interface 接口也是必备。为了找一点逻辑代码,我花了超一小时的时间。类型强制转换、类型丢失也到处都是。还有就是 try catch,只要有一个函数用了try catch,调用这个函数的都要用各种 try catch...

越发觉得 Scala is so good!

以前是反对 xml, 下一波会不会反对 annotation?

timzaak commented 5 years ago

42

timzaak commented 5 years ago

目前对我来说,后端的快速开发就是要理解好业务模型。再在此基础上抽象模型,这样就能少很多次重构,速度自然快起来。

timzaak commented 3 years ago

graphqlcool 已经演变为 Prisma, 专注 TypeScript/Go graphql ORM. 貌似数据库到业务逻辑、再到客户端API的映射,是一个 np 问题,具体领域, 具体分析。无法用框架来解决80%的问题。

可能更需要, ORM 一层数据源的管理 + API接口说明构造框架+ 常规代码自动生成。

timzaak commented 2 years ago

目前在为快速开发做的是:公共代码尽量提取,提取不了的走代码生成。 代码生成要尽量允许二次更改,不能呢每次生成都直接覆盖老的。

timzaak commented 2 months ago

如果从软件整个周期开发来看的话。需要有以下几个阶段:

需求定位

这个最为重要,很多产品中只有20%的功能是核心功能,若能定位出核心功能,排出合理的功能列表。就能节约大量的时间和开发成本。至于如何做, TODO: PS: 最核心最重要的事情,莫过于需求定位

原型

通过绘制原型图,梳理出完整的功能点,可减少代码重构次数与沟通成本。 脑图可以作为预先工具,进行字段业务梳理。流程图用以检查脑图是否合理。

原型PRD有个核心问题:如何到位的同步信息给相关人,开会、自行确认等都是可行有效但不能彻底的手段。

UI稿

可预先模拟出用户体验,获得交互体验。是时候就可以甩给核心用户、决策层对产品进行初步的评估。

评审

上传下达,另外查漏补缺,确认工期。一般通过开会来解决,但最好能讲UI稿、原型甩出来,小规模负责人技术评审会,再团队会。

测试

验证交付内容是否正确,产出物是否符合预期。对于大多数项目而言,测试的介入时间,才是产品走向可用的开始。从PRD、UI还原、法务稿件、代码逻辑都需要经历一遍彻底洗礼,大团队才能在细节点上达成共识。

timzaak commented 3 weeks ago

管理

来讲,需要解决的是:

  1. 确认这个人是否能胜任工作以及替代方案。
  2. 协调沟通流程,梳理标准模版,确认岗位解决的问题边界。
  3. 奖与罚,以目标为导向,倒推资源分配。
  4. 信息同步,包括预期同步。