这个作业属于软件工程课 | 软件工程4班 |
---|---|
这个作业要求在 | 作业要求 |
这个作业的目标 | 评估当下,展望未来 |
其它参考文献 | csdn,《构建之法》 |
文章目录
- 1.评估当前的自己
- 个人简历
- 当前值
- 2.展望未来
- 《构建之法》的问题思考
- 未来的职业规划
- 课堂期待
- 3.学习路线(自制)
- 4.git作业提交
1.评估当前的自己
个人简历
姓名 | Kk |
---|---|
头像 | |
爱好 | 羽毛球、篮球、看小说 |
当前值
成果和获奖经历 | 数学竞赛省三 镇优秀大学生 2021届计算机学院“新生杯”辩论赛最佳辩手 |
---|---|
专业水平 | 编程语言:c、java、js 技术框架:react、vue 开发软件:devc++,IDEA 代码量:3k+ |
项目经历 | 图书馆管理系统 开发语言:C 开发软件:devc++ 功能:个人信息、图书信息的增删改查 |
2.展望未来
《构建之法》的问题思考
1.上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,它们各有什么优缺点?
GitHub
优点:
- 免费且开源。
- 用于敏捷高效地处理任何或小或大的项目。
- Git支持分支功能(branch)。如果你想开发一个新的产品功能,你可以建立一个分支,对这个分支的进行修改,而不至于会影响到主支上的代码。
- 可拿Git做备份系统,或者同步两台机器的文档,很方便。
- 支持离线工作。本地提交可以稍后提交到服务器上,不用和集中的代码管理服务器交互。 只有最终完成的版本才需要向一个中心的集中的代码管理服务器提交。
- Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。
- Git 中的每个工作树都包含一个具有完整项目历史的仓库。
- 简易的初始化。对于随便写两行代码就要放到代码管理工具里的人来说,再合适不过。
缺点:
- 学习成本大。由浅入深的过度很漫长,需要大量时间的投入。
- Git版本库需要频繁的手动维护。
SVN
优点:
- 对目录的组织的管理更加方便。SVN不光对文件做版本跟踪,也会对目录做版本跟踪。因此可以根据项目的需要,对目录结构随时进行修改,可以把现有的目录移动到新的地方。
- 保证提交操作的完整性。SVN对提交操作的处理方式类似数据库的事务处理,要么全部成功,要么全部无效,保证了原子性。
- SVN允许一个文件有任意多的可命名属性,功能十分完全。
缺点:
- 不能离线工作。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。
- 提交、更新、浏览历史的速度慢。耗费CPU资源。
- 代码不能及时提交。强迫使用者即时处理冲突,然后才能提交。
- 不能恢复到历史版本。SVN记录了单个文件的历史版本,但没有记录全局版本,不能恢复到上次的状态。
- 需手动“cleanup”。很多评论回复这点让他们抓狂。
Mercurial(hg)
优点:
- 学习门槛较低。整体上看,hg需要掌握的命令要比git少很多。
- 可以一键完全恢复到历史版本的某一个切面。
- 封装好。相比git,hg很少暴露一些实现内的细节。
- 照顾 svn 的迁移用户。hg 的很多命令是迁移自 svn 命令的,目标其实是为了让 svn 用户更容易接受。这使得已经习惯 svn 命令的团队,几乎零成本的切换到 hg。
- hg 的 pull 更多的时候可以让你避免创建分支。hg 好比苹果系统,git 好比 Linux,前者在常用命令上更好用更易用,后者在功能上更强大更灵活。
- hg的版本库不需要维护。
缺点:
- 分支管理不灵活。Mercurial的branch管理和Git相比不是很方便。大型团队不愿使用。
Microsoft TFS
优点:
- 任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用集成了项目管理、版本控制、BUG 跟踪。
- 能有效实现 SCRUM能与 VS 无缝接合。
缺点:
搭建、维护tfs比较复杂,硬件要求也比较高。
整个系统是用 asp 实现的,用浏览器访问相当慢。
[引用](细数目前流行的"源程序版本管理和项目管理软件"优缺点 - JINGYAN - 博客园 (cnblogs.com)](https://www.cnblogs.com/JINGY/p/5271594.html#:~:text=据网上查阅,目前流行的源程序版本管理软件和项目管理软件有Github、Mercurial(hg)、SVN、Microsoft TFS等。,图中数据为2010年整理,所以存在一定的偏差,仅作为参考。 图片出处: http%3A%2F%2Fwww.infoq.com%2Fnews%2F2010%2F03%2FReview-Version-Control-Systems))
2.Coder和Hacker的区别
Coder仅仅机械式完成分内的任务和工作,是在未来最大可能会被ChatGPT取代的一类人。
相较之下,hacker就是比coder更高层次的等级了,他们有着自己对技术的热爱和对更高水平的追求,拥有着强大的内在驱动力,对新的事物有着较强的探索欲望,比大部分的Coder要更为强大。
- 20个著名的软件的软件灾难
《水手探秘》火箭偏航,原因:手写公式错误转录,软件将正常的速度视为严重的变化,导致错误的修正。
体育馆倒塌,原因:错误认为支撑的钢架只会压缩,实际会引起严重的连锁反应
天然气管道爆炸,软件被特工破坏
第三次世界大战(误会),苏联预警系统错误指出美国发射了五枚导弹
医疗机器辐射外散,错误配置医疗
…
4.VCD的创新
失败原因:创始人没有把握自主知识产权,放弃专利申请,最终在仿制品的投入后失去了自身优势,在价格战中退出了市场。
从软件工程的角度分析这个案例:万燕公司追求质量占据市场这个策略没有错,但是当一样产品无法以碾压性的质量战胜同类竞品时,那么单靠产品质量就不足以占据整个市场了,产品的价格,产品的包装等因素,都可以成为消费者买单的的原因。纵观万燕公司的发展史,占据的是VCD开创者身份的先机,然而,万燕公司还没有站稳脚跟,便被仿制产品打乱了发展的节奏,无法投入到再创新,再生产的良性循环当中,实在令人惋惜。
我们反思中国技术发展史,有的技术在敝帚自珍中遗失,有的技术流入百姓家中,造福百姓,但我们很少想过,我们要为这些技术的创始人付出些什么,也许我们会记住有巨匠墨子、大匠鲁班,但这对于需要养家糊口的百姓,物质上是匮乏的。
专利保护、知识产权,相应政策的实施,政策也需要与时俱进。
5.创业–坚持自己的想法or与时俱进
无知的乐观主义->通知悲观->意义危机->崩溃放弃or通知乐观
我认为,文章中创业的心态变化,更像是一种踏足未知领域,想要有所作为的一种心理变化。当我上大学前,受到网上的影响,我选择了计算机这个专业,当时高考毕业,满怀壮志,颇有一种将要造福社会、造福人类的架势(无知的乐观主义)。当我在学c语言时,软件的配置,毫无征兆的bug,做着一些原始的、落后的操作,没有华丽的效果,没有夺人目光的特效,只有一堆堆自娱自乐的加减乘除和输入输出(通知悲观)。当悲观愈演愈烈,继续上网,悲观只会愈加悲观,因为网络的大数据是具有导向性的,开始出现摆烂、躺平、AI取代人类、互联网寒冬,突然觉得人生或许走错了路,如果XXX该多好(意义危机)。当经历过一轮心理斗争,路还是要继续走的,便不会(崩溃放弃),那便只有(通知乐观),在恰当的时间做该做的事,不后悔过去的选择,不虚度当下的光阴,不去杞人忧天那未知的未来,人生便透彻许多,便发现还是有许多能够做并做好的事情(真正的乐观)。
未来的职业规划
1.研究生3年
2.前期钻研技术,成为一名全栈工程师,架构师
3.后期转型,国企或教育事业
课堂期待
1.希望在课上能够接触更多本专业毕业生的职业发展案例,例如:35岁危机,如何兼顾家庭和工作?工作环境在农村与城市之间的取舍,国企or互联网or医疗,工作场景等等。这类落于实处,有着具体解决方法的案例,使我们对自己的职业生涯有着更进一步的理解。
2.希望在课上能够系统性地学习当下一门主流技术的发展趋势的特点,能够更深入地理解技术本身的优点、局限性、内在价值、应用场景,并且掌握快速学会并上手应用一门技术的方法。
3.能够独立完成一款软件,参与一款软件制定计划、需求分析、软件设计、程序编写、软件测试和运行维护全过程。
3.学习路线(自制)
4.git作业提交
附:仓库地址