当前位置: 首页 > news >正文

软工_个人博客作业1

阅读《构建之法》中的问题


 

  关于变量名的问题

  在书中我看到了在C等弱类型语言中因为变量语义多样所以需要用“匈牙利命名法”等方法来规范变量的命名。实际在我平时的编程之中,对于变量的命名也有很大的困惑,见到有些同学的拼音首字母命名法等等,我想问一下,在实际的工程运用中,对于变量命名又是怎样处理的呢?有没有一个约定俗称的规范呢?如何才能写出更加工程化的命名方式?这点在书中并没有详细说明。

  关于结对编程的问题

  在阅读课本之前,我脑海中对于结对编程的概念是两个人分配好任务,然后各自完成。但是在书中介绍的结对编程却是两个人共用一台显示器一个键盘同时完成一部分程序。这个在实际操作中我认为会有很多的限制,我们课程中的结对编程也要求这样编么?现实的在软件开发企业中,真的有很多人会结对编程么?

  关于编程流程的问题

  在书中介绍了很多编程流程的框图,但是之前并没有接触过类似的编程流程,所以在脑海中印象不深。不知道在之后的学习之中是否会实践这些编程流程呢?有些编程流程看起来过于冗长了并且有很多不必要的工作。现在的软件开发是怎样进行的呢?

  关于敏捷编程的问题

  敏捷编程最重要的一个前提就是scrum master要将当前的任务切成一个一个的小块。但是在实际工作中,往往有些工作是不能被分割的,这时候该如何是好呢?还有在这个体系中,是不是过于依赖scrum master的个人能力了呢?感觉整个团队是否能够做好工作,都取决于他的任务分配和互相协调了。

  关于单元测试的问题

  在上学期的OO课程中,我第一次接触到了单元测试。但是,我对此有些疑问,真的做到了100%覆盖,我觉得并不能保证代码就是正确的,因为往往这个时候会有一些情况的分支没有考虑到,而这些分支的确实会导致程序最后的崩溃和功能问题。

 

软件与软件工程


 

  软件

  根据维基百科的说法,软件一词首先由计算机之父阿兰图灵提出,但是直到1957年,软件才被John W. Tukey正式用来描述现在所被称为软件的东西。

 

  软件工程

  1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(software engineering)这个概念。

 

关于各种管理软件


 

  (由于这些软件我之前都没有接触过,这些优缺点都是从网上找的,并进行个人的理解综合)

  • Git和Github

  Git是由Linux之父Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。而这个软件是本地版的,需要配置环境比较麻烦。Github则是Git的在线版,相当于搭建了一个在线的Git服务端可以让所有人方便的访问。

  优点:pull request等功能强大,方便多人开发,历史记录功能

  缺点:Github由于服务器在国外,国内访问速度很慢,难以完成大项目的合作开发。对于中文支持不好。且随时可能被墙。

  • Microsoft TFS

  TFS是微软的项目管理软件,与VS无缝结合

  优点:对敏捷,msf,cmmi等项目、过程管理、过程改善的支持。强调对于产品生命周期的管理,对于源代码的管理仅是其功能的一小部分

  缺点:整个系统是用 asp 实现的,用浏览器访问相当慢,用 XP 系统和32位系统无法访问。团队的邮件细节配置比较复杂,不关心的项目的变更集也会给发邮件。

  • Mercurial

  又称Hg,是一种类似于Git的版本管理软件

  优点:照顾命令行用户,大多数命令都有双字母的简称,效率更高。照顾SVN的迁移用户,命令上大多数都继承自SVN,使得用户更加习惯。基于Python,服务器配置相对于Git更加容易。

  缺点:Mercurial的branch管理和Git相比不方便,branch出来就删不掉。

  • Bitbucket

  类似于Github,一个同时支持Hg和Git的在线版本管理网站,支持免费的私有项目。

  优点:相比于GitHub,多支持了Hg作为版本管理工具,更加易学易用。对中文支持较好。官方的git工具SourceTree比GitHub for windows好用。

  缺点:社交性不足,做的没有GitHub好。

  • Trac

  以下几个工具在网络上的介绍都比较少,简单的介绍一下优缺点

  优点:使用非常灵活,可以和SVN集成。

  缺点:系统比较简单,功能和其他系统相比,不够强大。

  • Bugzilla

  优点:对中文支持好,对Linux扩展支持较好。

  缺点:只能管理缺陷但是对于相应的测试用例等无法进行管理。

  • Xcode好像不算管理软件?

 

转载于:https://www.cnblogs.com/shhr/p/5878147.html

相关文章:

  • iOS 没有安装对应客户端,不应显示对应的图标
  • New Year Transportation(水)
  • 解决EditText和ScrollView滑动冲突问题
  • (转)fock函数详解
  • linux TLB表
  • 基于范围的for循环(STL)
  • bzoj1221: [HNOI2001] 软件开发
  • Python小杂点
  • nginx在 window下 自动退出 php-cgi
  • MongoDB 常用命令
  • 使用异或解题 —— 序列中仅出现一次的两个数
  • 为什么我从来不无偿加班?你也不应该! 【转载】
  • MySQL主从同步配置(Ubuntu)
  • C语言学习笔记--指针和数组的关系
  • css3样式二
  • 分享的文章《人生如棋》
  • 分享一款快速APP功能测试工具
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • ECS应用管理最佳实践
  • es6
  • FineReport中如何实现自动滚屏效果
  • Hexo+码云+git快速搭建免费的静态Blog
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java基本数据类型之Number
  • mysql_config not found
  • React-redux的原理以及使用
  • 从零开始学习部署
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 使用权重正则化较少模型过拟合
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 携程小程序初体验
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • (JS基础)String 类型
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)Linux整合apache和tomcat构建Web服务器
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net 程序发生了一个不可捕获的异常
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net流程开发平台的一些难点(1)
  • [Bzoj4722]由乃(线段树好题)(倍增处理模数小快速幂)
  • [C++]:for循环for(int num : nums)
  • [CentOs7]图形界面
  • [CF543A]/[CF544C]Writing Code
  • [Electron]ipcMain.on和ipcMain.handle的区别
  • [ICCV2017]Neural Person Search Machines
  • [LeetCode]—Rotate Image 矩阵90度翻转
  • [Nginx]反向代理Node将3000端口访问转换成80端口
  • [NOIP2004] 提高组 洛谷P1090 合并果子
  • [one_demo_4]不使用第3个变量交换两个变量的值
  • [Quest ActiveRoles Management Shell for Active Directory] QADProxyAddress命令相关的bug。
  • [RK-Linux] Linux A/B System详解