《构建之法》——第一次做业

这个做业属于哪一个课程 课程的连接
这个做业要求在哪里 做业要求的连接
我在这个课程的目标是 能够对软件工程有更深刻的理解,在团队合做中,学会如何与队友沟通并提高技术
做业正文 我的博客首页

1.创建博客并介绍本身
  自我介绍:平时喜欢听歌(古风),和室友打打篮球,和朋友一块儿去影院,虽然朋友也不是特别多。我的不擅长人际交际,可能更多喜欢本身一我的呆着。虽然在这样的一个时代,与人交际是很重要的一点,特别是之后出社会,不过车到山前必有路,到时候再说吧。
2.阅读与思考
 (1)回想一下你初入大学时对你所在专业的畅想
  1.1当初你是如何作出选择你所在专业的决定的?
   当初本身报志愿的时候,我的是比较倾向于计算机相关的专业,可是在父母的强烈要求之下,一二志愿没能如愿以偿的报到,可是录取结果对于我来讲仍是比较幸运了——软件工程。这个结果我本身仍是比较满意的,由于当时报的时候,根本没想过会被这方面的专业录取。我初中的时候,喜欢捣鼓电脑,当时了解了一下“贵族”语言——c语言,不过当时没有更深一层的了解。
  1.2你认为过去一(两)年中接触到的课程是否符合你对你本身所在专业的期待,为何?
   我本身可能更偏向于网络攻防,在大二的时候接触了Linux操做系统,对这种纯命令式、高效率的操做方式产生了很大的兴趣,因此通常在课下都是去钻研那方面的知识。对于这两年的课程,却是很符合“软件工程”这门专业的,可是就我我的而言,没有知足我我的的期待。
  1.3你以为你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
   最初刚刚进大学的时候学C的时候,还挺喜欢的,可是后来慢慢的了解到了更多的知识以后,就转移了本身的兴趣。我所擅长的领域偏向服务器方面吧。
  1.4未来你会选择从事和你专业相关的工做吗?是的话给出你想去的城市、公司和岗位,否的话给出缘由
   可能不会,也说不许。我更偏向于从事运维方面的工做吧,兴趣是学习知识最大的动力,因此我以为选择工做的话,应该选择本身比较感兴趣的方向,固然这是理想状况下,结合实际的话,也就说不许了。想去的城市:就在成都吧,由于这边离家里比较近,能够常常回家看看父母。公司的话,可能每一个从事IT这个行业的人,都有那种渴望进入BAT、华为工做的欲望吧,若是本身实力容许,我会去,岗位的话:运维工程师是我理想中的,固然,到时候具体是什么不得而知啦。
 (2)对照前人们走过的路和描述将来发展,如今的你
​  2.1自我感受你已经具有的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你作的最复杂的项目/做业。
   到如今咱们学过的有不少,计算机系统基础、数据结构、java、c#、软件设计模式、程序设计基础、面向对象程序设计等等,课下我本身了解过的有python、spring框架、ssm框架、分布式、dubbox、服务器的集群分布等等,虽然了解过这么多,可是本身的但代码量是真的不多,这也是我最大的一个短板,可能这也是我和那些大佬们的差距吧,因此为了增强本身的代码编写能力以及代码规范,如今我写代码是以PEP8规范,天天强制本身敲一些代码。我作过的最复杂的做业,spring-boot框架+dubbox框架+Redis集群分布+Solr集群分布+Nginx反向代理(由于服务器不够的缘由,采用了伪集群的方式,可是与真实的部署步骤是同样的)。
  2.2离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
   我还须要了解:数据库原理及其应用,计算机网络基础、java中的各类经常使用的框架、并发编程,了解代码编写规范以及如何提升本身代码的可复用性和可维护性,最重要的一点是:不只仅要学习这些知识还要将这些知识进行融汇贯通,总结前辈踩过的坑,避免本身重走他们走过的路,作到对这些知识精通。
 (3)目前是一我的生选择的十字路口,考研、工做、考公、出国,不一样的选择在大三就有不一样的努力方向。而不管考研仍是工做的每条路径,也有许多不一样的分支
  3.1对照以上你阅读的前人们的经历,你的选择是什么?
   个人选择是考研,大一刚刚进校园,我是没有考研这个打算的,当时想法很简单,毕业了就去工做,这样也不用给家里增长额外的经济负担,还有一点经济来源。可是到了大二,我发现不考研真的不行了,为何?如今不少的大学生核心竞争力不够,换句话说,就凭这咱们在大学本科学的知识是根本不够和别人去竞争的,固然我说的大多数人,依旧有少数人仍是很厉害的。本科中的大多数人学习知识都停留在应付考试上面,没有真正的去理解为何要学习这个以及学的知识的应用。考研的话,能够跟着本身的导师接触到一些项目,将本身学习的知识应用于本身走的项目中,正如那句话说的“实践出真知”,经过实践可让咱们融会贯通。
  3.2在这种选择下,你认为你相比其余同窗来讲有何优点,有何劣势?
优点:对于不善于人际交际的我来讲,读书可能更适合我一些,由于不须要和太多人的打交道,备考的时候也基本是一我的本身的努力,虽然也须要咨询别人什么的,但我以为比社会上的人际关系要简单、单纯的多。其次如今每一年本科毕业生数量是几百万,而每一年空出来的岗位并无这么多,因此这时候就须要本身更有价值,更有竞争力,一份更高的学历,我以为会在必定程度上给本身加分。
  3.3针对你的选择,你给本身的大三设定的规划安排是什么?
   目前的规划安排:开始为明年的考研作准备,了解考研的各类信息,肯定本身之后的研究方向,学习java虚拟机、python爬虫、Linux服务器相关方面的知识。
  3.4你对于实现本身的梦想已经作了或者计划作什么样的准备?
   可能大一大二的我比较贪玩,大三会先慢慢改掉之前的一些很差的习惯,为考研作好充足的准备,毕竟机会只留给有准备的人。
3.提有质量的问题
问题一
  书中第四章 两人合做(P79),做者提到了:结对编程以及为何要结对编程。可是在后文做者也说了,代码是有复审,为此还有一个复审员,既然复审员会进行复审,那么在编程中的问题也会被发现,因此结对编程,用两我的不是有点浪费资源吗?虽然结对编程是为了高速度中完成任务,任务有较高的技术要求,任务失败的代价也很高,但一个公司老是会有很厉害的人吧?能够安排技术大拿去完成这项工做,那么另一我的的资源不久节省出来,能够安排另外的工做了吗?
问题二
  书中第五章 团队和流程(P95),做者提到了一种团队模式叫作官僚模式,就是几我的报告给一个小头目,几个小头目报告给中头目,依次而上。我以为这个官僚模式不该该和其余的模式并列在一块儿排放,由于在其余的模式中例如做者提出的主治医师模式、明星模式、社区模式等等,其实这样的团队模式,在进行开发的时候,依旧是层层上报的,普通的程序员向小组长报告,小组长向项目经理报告,依次而上。因此我是不赞同做者将官僚模式和其余的模式并列排放。
问题三
  书中第五章 团队和流程(P93),“一些软件项目在秘密状态下进行……这种模式的好处是:团队内部有极大的自由,较高的热情,没有外界的干扰”,这是书中的原话,对于秘密团队的好处我只赞同最后一点,其余的两点不是秘密团队模式所特有的好处,或者说并非团队不是秘密团队团队内部就没有极大的自由以及较高的热情,若是按照做者的思路,其余的团队模式下,团队内部只有极小的自由,较低的热情?举个例子,社区模式中,都是一些志愿者参与的,每一个人参与本身感兴趣的项目,那么他们也是有着极大的自由,和极高的热情吧?否则为什么没有报酬,他们依旧愿意参加呢?
问题四
  书上第十六章,这一章,做者讲述关于创新的迷思和如何去判断决定对于创新的影响程度,但没有说咱们该如何去创新?要依靠灵光乍现?仍是要依靠如今的数据分析?就像在本章中做者提到到的魔方的创新,大牛、二柱等等他们的创新是怎么来的?而咱们又改如何去培养本身的这样的创新的思惟?我以为应该善于大胆假设,要敢想、会想,不要被思惟固化,跳出思惟的局限待待事物,同时还要培养科学思惟,面对同一问题,发散思惟,以不一样的角度去思考,并且培养创新意识是一个过程,不是能够速成的,也只能慢慢的来。
问题五
  第四章两人合做中,提到了复审员和结对编程,复审员后无疑问,对代码进行复审,个人疑问是:结对编程还须要复审吗?毕竟两个结对编程,其中一个我以为就能够履行复审员的职责,虽然咱们须要对代码不断地复审,可是通过结对编程的程序还须要额外的人来进行复审,那么结对编程中的某一我的,岂不是没用咯?
4.了解和调查源程序版本管理工具
Git是一个开源的分布式版本控制系统,能够有效、高速地处理从很小到很是大的项目版本管理。[百度][1]
优势:
 适合分布式开发,强调个体。
 公共服务器压力和数据量都不会太大。
 速度快、灵活。
 任意两个开发者之间能够很容易的解决冲突。
 离线工做。
缺点:
 资料少(起码中文资料不多)。
 学习周期相对而言比较长。
 不符合常规思惟。
 代码保密性差,一旦开发者把整个库克隆下来就能够彻底公开全部代码和版本信息。
GitHub是一个面向开源及私有软件项目的托管平台,由于只支持git 做为惟一的版本库格式进行托管,故名GitHub。[百度][2]
优势:
 能够托管各类git库,并提供一个web界面
 每一份复制出的库均可以独立使用,任何两个库之间的不一致之处均可以进行合并
 用户能够十分轻易地找到海量的开源代码
缺点:
 资料少,学习成本比较大,学习周期比较长,要求人员素质比较高
 不符合常规思惟
 代码保密性差,一旦开发者把整个库克隆下来就能够彻底公开全部代码和版本信息
 不支持中文,图形界面支持差,使用难度大。不易推广
SVN[CSDN][3]
SVN的优势:
 采用集中式,易于管理,保证安全性
 管理方便,逻辑明确,理念符合常规思惟
 代码的一致性高
 适合人数很少的项目开发
 容许一个文件有任意多的可命名属性,会关注全部的文件类型
 支持二进制文件,更容易处理大文件
 支持空目录
 对中文支持好,操做简单,使用没有难度,美工人员,产品人员,测试人员,实施人员均可轻松上手。使用界面统一,功能完善,操做方便
SVN的缺点:
 服务器压力太大,数据库容量暴增
 必须链接在服务器上,不然基本不能工做、提交、对比、还原等
 不适合开源开发。
[1]:https://baike.baidu.com/item/GIT/12647237?fr=aladdin#1
[2]:https://baike.baidu.com/item/GitHub
[3]:https://blog.csdn.net/weixin_40783315/article/details/84981875html

相关文章
相关标签/搜索