软件开发与写作

      计算机和中文、外语专业一样,都是用语言混饭吃的专业。我最近胡思乱想,越来越觉得软件开发和写作很像,开发小软件就好比写篇短文,而开发大型软件就类似于写书了。(不过不包含分布式软件,下辈子有空再来谈它)
      不管是软件开发还是写作,最早都源自某人的灵光一闪。软件开发多半是某人觉得如果开发出这么一个软件,肯定能赚钱,或者能给自己带来成就感;写作也一样。不过软件开发大体是为了赚钱,非职业的写作则大体为了后者。
      软件开发的第一个步骤是需求分析,也就是确定为了达成自己的目的,软件应该具备哪些功能。如果软件规模不大或者有学步对象,这一步未必很明显。有时候灵光一闪的时候就已经基本确定要做什么了。不过也有可能灵光一闪是“我要赚钱”,现在再来搜肠刮肚构思。这个步骤对应于写作,就是确定写作内容:产品说明书 or爱情小说or其他。特别注意本段文字里的“确定”,只是某个时刻地球上的一个灵长类动物的脑电波状态,别太当真。其实本文一开始动手的时候是想写词性标注算法,结果写到什么鬼来了。当然,大部分时候,这个“确定”不会这么离谱,但是细节上的修改几乎总是不可避免。
      在需求确定后要做的是选择架构了。“哈哈,我抓住你的马脚了,我写作文从来没有架构这个步骤”。真的吗?那你为啥不用英语(因为这是语文考试),不用脑残体(会被老师K),不三俗(家长会被叫到学校),不写甲骨文(只会几个字,没法表达自己思想)……我想说的是我们做出了很多选择而不自知。对于大部分软件来说,架构其实也就是做一组选择题——很多人会认为架构是主观题,这其实是因为对不同知识背景的人,选项不同导致的,对于具体的一个人来说,架构更类似选择题。如果这组选择题做不好,可能开发得满地找牙,效果还很山寨。另外选择架构往往带有个性:当年我写作文时常常写记叙文一半才发现写议论文比较好写。这种事情发生几次以后,我看到一个题目,只要合适写议论文,就一定写议论文。很多开发者也一样,熟悉c++,就用c++搞定一切。有个谚语形容这种情况:手里拿着锤子,看啥都是钉子。
      确定架构后就是要进行概要设计了。比如写篇议论文,就是大体要分几个段落,每个段落写啥内容。当然有些人写文章自称意识流,想到哪写到哪。软件开发也有人使用极限无文档裸奔流。最后效果很难说,说不定还不错呢。软件开发和写作一样,都是挺有个性的东西,很多条条框框不一定放之四海而皆准。
      哈哈。概要设计后就是实际动手了(详细设计?我还没接触过需要详细设计的项目,故不评论)。在这点上两者也很像
      1)提高写作水平的最好方法是多阅读,提高编码水平也一样。
      2)好文字往往是靠改出来的,好代码也一样。一个字-几个词-整句话的斟酌vs一个变量-几行代码-整个函数的重构。
      3)拾人牙慧会加分。比如文章中用成语,代码中用设计模式。
      4)如果一段话重复出现,说明文章/代码质量不佳。
      5)语言能力不够的人写的文字很罗嗦,编码也一样。写的精炼代表语言能力已经过关。
      6)懒得想了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值