初读《构建之法》——阅读与准备工作
作业目录
这个作业属于哪个课程 |
https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign |
这个作业要求在哪里 |
|
我在这个课程的目标 |
熟悉软件开发基本流程和国际标准 在项目开发过程中会适时应用相应的开发模型并学会创新 在项目开发过程中学会团队协作,以使工作效率最大化 |
这个作业在哪个具体方面帮助我实现目标 |
能使我对自己目前的专业能力有个清醒的认识,对接下来的学习 有一个明确的方向以及对《系统分析与设计》这门课的学习有一 个整体把握 |
作业正文 |
|
其他参考文献 |
管理软件的优缺点[J] |
我的博客 |
1.自我介绍
我是一个热情开朗,积极乐观的男生。在上大学之前可以说对编程一无所知,上了大学之后才加入了团队,慢慢学习编程。在大学期间,我真的要感谢团队、团队的老师以及学长们,是他们带着我从开始学习编程到出去参加比赛再到跟着团队做项目。在团队的两年日子里,我着实学到了不少的东西,参加了很多比赛。比如第十一届、第十二届成都国际硬软件设计与应用大赛、互联网+、三创电子商务、计算机设计大赛等等比赛,共拿到国家级银奖一次、省级奖项6次、校级院级奖项以及成功立项若干(大概有十几项)。虽然拿了这些奖项,但我清楚的明白,这些都是团队的项目,我在这些项目的编程实现上面并没有付出很多,只是极强地锻炼了写文档的能力。当然,越往后走,我们就会发现,写文档也是软件开发人员要必备的一种技能。接下来我就与大家分享我的写文档的心得体会。首先加入团队带给你的帮助肯定是无穷的,再就是不要嫌麻烦、不要瞧不起写文档这件事,要持之以恒地去多写、多练、多修改,我大概花了一年的时间才基本掌握这项技能。
2.阅读与思考
(1)初入大学对所在专业的畅想
当初高考填报志愿时我对软件工程这个专业并不了解,只是有亲戚学的这个专业,说这个专业现在很火,就靠本事吃饭,不拼爹,作为一个从农村出来的孩子,学一门实在又流行的技术确实很重要,于是我就报了这个专业。在暑假也没有接触到代码,只是看了几本介绍计算机公司崛起的书,比如《浪潮之巅》。这两年我们学了很多类型的专业课,但缺乏实际开发经验,比如JAVA前后端开发学得并不是很深,C#桌面应用程序也只是入了个门而已。我所在的专业我很喜欢,但我其实并不擅长,那种上机实验,别人一两个小时就能做好,但我可能需要花一两天的时间。但我仍然热爱我的专业,它能给我带来快乐,对自己喜欢的东西多花点时间又何妨?毕业后我肯定要从事和专业相关的工作,只要是大一点的城市都可以,没有很具体的要求,具体岗位的话我想做Web前端开发。
(2)自我专业能力鉴定
目前我掌握得最好的能力就是写文档的能力。掌握了C语言,对JAVA、C#有一个基本的了解,熟悉HTML5、CSS、JS。写过的代码量不算很多,做过的最复杂的项目就是我们团队给冀东油田做的套管项目。离一个合格的毕业生,我的差距在于算法的研究以及JAVA、C#开发的强化。
(3)未选择的路
阅读了前人们的经历,结合自身实际情况,我决定毕业后考研深造。在这种选择下,我可能比其他同学学到更多的知识,但同样会失去现有的一些就业机会。针对我的选择,我计划大三上学期全身心地学习课本知识、锻炼专业技能,大三下学期腾出大部分时间进行考研复习。
3.提有质量的问题
问题一:
读完本书,我一直在想一个问题,软件开发代码到底是开源好呢?还是不开源好呢?开源可以供大家研究修改,做到发现漏洞修补漏洞,可以集思广益发挥它的最大功效,但也有缺点,就是可以被人利用漏洞作恶;不开源表面上是安全的,因为它的代码是不公开的,没有高水平编程水平很难去破解,但它的缺点是本身因开发人员思路的局限性会有很多漏洞,而自己又不知道,这就给了黑客以可乘之机作恶。直到读完本书,我还在权衡开源与否所带来的利弊。
问题二:
书中第16章第5节提到了小作坊,并且说IT历史上很多成功的案例都是由小作坊实现的。我在想,并不是所有的小作坊都能成功,那么小作坊成功的必要条件有哪些呢?读完本书,我仍有疑惑。
问题三:
书中第5章第6节提到了团队成员之间的协作交流,但每个人的性格不同,工作方式不同,往往队友之间配合出错或者产生分歧会对项目的研发造成一定程度的影响。虽然书中给了一些解决方法,但我认为人的感情 是相当复杂的,书中所提供的方法并不能解决所有的分歧甚至是矛盾。所以我想问还有更多更好的方法来解决团队成员之间的沟通交流问题吗?
问题四:
书中第12章讲到了用户体验,也给出了一些针对用户体验的调查方法。但不同的软件需求不同,侧重点不同,用户体验的角度也不同。所以我在想,书中给出的调查方法在实际的软件开发过程中都能使用吗?
问题五:
读完整本书,我在想我们平常从事软件开发过程中一个很常见的问题。就是临近客户约定交付产品的期限,我们还没能完成开发怎么办?我们如今还是学生,也偶尔组队接一些软件外包的活儿做,由于自身能力有限或者队友之间的配合不够好,导致不能如期交付产品或者做的产品不满意是一个很常见的问题,同时也是我们当前很困惑的问题。虽然书中给了一些解决方法,但我认为针对这个问题的解决方法,还有待细化。
4.部分版本管理软件的优缺点
目前流行的源程序版本管理软件和项目管理软件:Git、GitHub、Microsoft TFS、 Bitbucket、Mercurial、Trac、Bugzilla、Rational、Apple XCode、SVN。
部分版本管理软件的优缺点对比分析如下:
软件名称 | 优点 | 缺点 |
Git |
速度快,灵活 离线工作 强调个体,适合分布式开发
|
资料少 学习周期较长 代码保密性差 |
SVN |
易于管理,保证安全性 代码的一致性高 更容易处理大文件 |
服务器压力大 必须连接在服务器上开发 不适合开源开发 |
Trac |
免费支持私有仓库 非常灵活 |
功能不是很强大 |