博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开发一个软件平台的一些心得体会
阅读量:2431 次
发布时间:2019-05-10

本文共 1298 字,大约阅读时间需要 4 分钟。

作者:朱金灿

来源:

 

       带团队开发一个软件平台已有两年半,突然想写下些东西。这个软件平台除了作为公司的一个产品,还有一个重要目的是必须支持项目的二次开发。两年半的开发历程,有成功的经验,也有做得不好的地方(我想如果让我重新来做,我一定会做得更好)。

 

一.研发人员如何分工?

   

        在以前我就设想一种较为合理的开发模式是:研发人员划分为三拨人:平台底层开发人员+平台功能开发人员+项目二次开发人员。这三拨人形成两种需求关系:平台功能开发人员为开发平台功能而向平台底层开发人员提出接口需求,平台底层开发人员为满足这些需求而实现接口;项目二次开发人员为满足二次开发需要而向平台开发人员提出功能需求,平台开发人员为满足这个需求而开发功能。这样划分的好处是使得软件开发不再是一种闭门造车的活动,而是一种需求带动的活动。在这种需求关系的驱动下,每个人都可能成为某个领域的专家。

 

二.最大的差距之一是产品设计

 

    除开算法等软件因素,国产软件和外国软件的最大差距是什么?我认为是产品设计。因为缺乏专业的设计人员,界面大多是开发人员和测试人员商量着设计的。这种设计往往有着三大弊端:一是说法不准确,比如有一次我就看到帮助菜单栏上有一项叫“关于对话框”,就对一个同事说:“你去翻翻Microsoft Word,看看它的帮助菜单栏上是否有关于对话框这一项,它的是关于Microsoft Office Word,因为用户不明白对话框是何物”;二是缺乏人性化的交互设计,这个很好理解,因为开发人员不是一线用户,开发人员一般实现功能了事,没想着怎么把软件做得更人性化。如果同一个功能由他成千上百次地操作,或许他会想到要做得更人性化些:三是缺乏美感,这个源于我们接受的教育。我们从小到大就没接受过美学教育,设计出来的东西很难有美感。

 

三.API的演化

 

       有没有一个开发高手一开始就能把底层库的API都设计好?我相信我们大多是凡人,不具备这样的功力。照这样说,API自然要经历一个从不完善到比较完善的历程。那么问题来了,如何缩短这个历程,如何降低API演化过程中的成本?我想到的有两点:一是软件设计人员应尽可能阅读你所开发平台的开源代码,吸收其中设计方面的精髓;二是就底层API的设计应尽量发扬技术民主,在内部就API的设计展开充分的讨论,这样设计出来的API被大家接受的程度也会大些。

 

四.需要分支版本吗?

 

        开始我设想应尽可能加快产品的迭代,尽量在项目检验API,在项目中应用主干版本的SDK进行二次开发。一些同事不同意我的激进做法。他们主张应设立分支版本SDK,用它做项目的二次开发,三个月或半年再从主干版本中更新。实践说明,同事的意见是对的,这样做兼顾了项目的快速开发和产品的开发,避免因接口变动而影响项目。

 

五.工具集合的作用

        开发一个软件平台,需要很多工具。这些工具一般由脚本语言编写,比如设置环境变量的批处理,遍历一个文件夹的所有工程将其都加到一个新建的解决方案,二次开发工程向导等等。这些工具短小精悍,却往往能有效提高开发效率。这时你会感觉掌握一门脚本语言是多么有用!

 

       另外应用持续构建能提高测试频率,从而有助于快速发布版本。

转载地址:http://byimb.baihongyu.com/

你可能感兴趣的文章
【Java】给定一个二叉树和其中的一个节点,请找出中序遍历的下一个节点且返回, 注意:树中的节点不仅包含左右子节点,同时包含父节点的指针。
查看>>
【Java】【多线程】—— 多线程篇
查看>>
【计算机网络】—— TCP/IP篇
查看>>
【Java】【算法】——算法篇
查看>>
【Java】【数据库】知识重点——数据库篇
查看>>
【Java】知识重点——消息队列篇
查看>>
【Java】学习总结 —— HashMap之put()方法实现原理
查看>>
【计算机网络】【TCP】如何讲清楚Tcp的三次握手和四次挥手?
查看>>
【Java】-- Java核心知识点总结
查看>>
【数据库】SQL之重点知识点总结
查看>>
【计算机网络】计算机网络知识总结
查看>>
【Java】【Web】JavaWeb相关知识总结 2018-9-17
查看>>
【数据库】突破单一数据库的性能限制——数据库-分库分表总结 2018-9-20
查看>>
Slurm——作业调度处理
查看>>
Lustre 维护
查看>>
Lustre 操作
查看>>
Lustre—配置和管理磁盘配额
查看>>
Lustre—磁盘配额测试
查看>>
SSH加密密码中的非对称式密码学
查看>>
Mac Redis安装入门教程
查看>>