软件工程第一次作业
自动生成小学四则运算题目的“软件”
代码地址:自动生成小学四则运算题目
快速看完《构建之法》,列出你不懂的问题
读了整整一本书,遇到了一个窘境,我想这也是我目前最大的问题——形成不了自己的判断。在阅读《构建之法》时,所有遇到的文字,对于我来说,要么是我所认同的,要么就是我从未考虑过而只能接受的。小学时老师就告诉我们,“你们要带着批判的思维去学习,不要畏惧权威,要细细思考,要勇敢反驳”,但是,对于现在的我来说,至少是对于阅读专业性更强的计算机书籍时,更多的只能是接受。当然,走出这个窘境的唯一方式也只有多看书,想一想也很有趣,一个幻想计算机能改变世界的人,还是要通过更多的与屏幕、键盘鼠标无关的纸质书籍来提升自己。
但是,我还是注意到了一段文字,而引出一个思考,或者说问题。
2010年,中国还出了一件怪事:A公司要挟用户必须卸载B公司的软件,然后A公司的软件此案能运行…… 在相关法律完善之前,软件行业还有一个行规,即应该有职业道德规范来约束IT人的行为。(第1章 概论 Page 4)
“2010年”“怪事”“要挟用户”三个关键词让我想到“3Q大战”,细细一查,引文中提到的应该便是360公司与腾讯公司之间的矛盾了。再次回顾整个事件,现在看来,确实有些荒唐,不过,我也有一些疑问和看法:
-
让用户选边站
现在看来,这是一个非常错误的决定,虽然在当时看来“十分艰难”。
前段时间闹得沸沸扬扬的音乐版权便是一个例子:网易云音乐通过“拉拢小众音乐人”“更精准的每日推荐”“更强的用户社交”吸引了一大片年轻人入住“云村”。近来,因为音乐版权方面的问题,越来越多的列表歌曲变为灰色,使得很多用户不得不在手机上同时下载多个音乐软件才能听完一个列表。在这段时间里,是存在一部分用户转投其他音乐软件,而大部分用户则是被挤在中间,因为自己所喜爱的音乐而同时保留多个软件,在网络上怨声载道,两个对立软件也没在其中讨到多少好处。
同一类型的软件进行“选边站”就掀起了这么大的波澜,更别说一个社交软件与安全软件进行选边站了,不过,360倒是因此获得了更大关注,并在激烈竞争中活了下来。
-
竞争与合作
腾讯到现在还有一个“靠着抄袭起家”的帽子,我想缘由也是腾讯以前的策略为:这个方向不错,我们也来靠着QQ巨大的用户量来搞一个吧。3Q大战的爆发也是腾讯将“QQ医生”升级为“电脑管家”与360开始对抗,之后出现一系列违规操作,事件升级,用户选边。不过,在3Q大战之后,也能看到腾讯的明显改变:“拍拍购物与京东合并”、“打造腾讯开放平台”,特别是近期的,同时投资斗鱼和虎牙两家对立直播平台,可以看出腾讯减少了很多直接竞争,以更安全的方式涉足更多的领域。
-
我们如何做到保护自己的软件
虽然事件已过去八年,但是有些问题好像没有得到解决。前段时间有两家初创公司在网上曝出支付宝公司通过谈合作的方式拿走源码,后又拒绝合作,自己推出与初创公司相同的功能。这时,需要注意到的是,八年过去,被侵权的公司还是在通过网络来引起公众的注意,寻求同情。更有趣的是,就算有相关法律站台,还有一个问题,三年前“快播案”中的法官并不是一个十分懂技术的人,虽然我们能看到法官为了能公平判案,进行了很多学习,但还是出现了一些在网络上津津乐道的“金句”。所以,我们能依靠的就只用引文中提到的“职业道德规范”来保护自己的软件了吗?
分析三种软件各自的特点
-
windows10操作系统
- 开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
开发者与OEM厂商进行绑定,对出厂的产品进行内置。以盈利为目标。以赚取OEM授权费用为目标,OEM将费用分摊进产品。
-
- 这些软件是如何到你手里的(邮购,下载,互相拷贝)
通过购买OEM的产品到我手里。
-
- 这些软件是如何处理Bug的?又是如何更新新的版本的?
当Bug出现时,通过“蓝屏”“报错”等方式上传log到服务器进行分析,并根据触发概率、波及范围和影响程度对BUG进行修复。通过自动更新的方式更新版本。
-
- 同一类型的软件之间是如何竞争的?
Linux系统通过开源的方式让大众参与系统的维护;MAC系统通过与同公司硬件产品相绑定进行销售。
-
基于网页的软件
样例:Windows 10 怎样计算硬盘整数分区?1GB应该等于多少MB
-
- 开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
以一篇博文展现软件方便的使用环境,让人一试。不以盈利为目标。展现自己的技术并通过技术帮助他人。
-
- 这些软件是如何到你手里的(邮购,下载,互相拷贝)
基于网页,通过浏览器便能使用。
-
- 这些软件是如何处理Bug的?又是如何更新新的版本的?
通过浏览博文留言进行Bug收集,在后台升级软件。
-
- 同一类型的软件之间是如何竞争的?
寻找用户不常用但又十分有用的功能,并制作合集以吸引用户只需呆在一个网站便能完成所需,并收藏网站。
-
游戏
- 开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么?还是别的?
通过各种媒体宣传。以盈利为目标。赚取用户现金。
-
- 这些软件是如何到你手里的(邮购,下载,互相拷贝)
通过网络下载。
-
- 这些软件是如何处理Bug的?又是如何更新新的版本的?
通过玩家反馈进行Bug收集,在服务器停机或不停机更新进行升级。
-
- 同一类型的软件之间是如何竞争的?
制作与同行不同类型的游戏类型,提供更高质量的制作、剧情和操作体验来吸引用户。
-
列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
软件是能够根据用户的反馈进行改变的,而硬件无法做到。