热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[BUAA_SE_2017]个人作业-Week1

个人作业-Week1疑问教材中说,PM在衡量需求时需要方方面面的能力与研究。可是,当下许多互联网IT公司只承担外包业务,即客户给什么需求就实现什么需求,甚至可能不要求其它先进的功能。此时

个人作业-Week1

疑问

  • 教材中说,PM在衡量需求时需要方方面面的能力与研究。可是,当下许多互联网IT公司只承担外包业务,即客户给什么需求就实现什么需求,甚至可能不要求其它先进的功能。此时,开发团队还需要一个全能的PM吗?

  • 我们都知道,客户的需求变化是极其随机且难以预测的。软件工程要求开发团队在coding之前做足准备工作以更好地处理这些需求变动,然而计划赶不上变化快(“神秘的程序员们”一篇漫画有提到),我想知道,当下企业中遇到这种情况是选择重构(能高效实现需求,但耗时耗力)多、还是选择补丁(这么说不准确,能省时省力实现,但增加了负载,效率不高)、还是因为变动过大而放弃项目?

  • “用户需要帮助,但用户没有这么笨。”, “用户需要帮助,需要很多帮助。” 对于上述两种情况开发团队如何对其进行界定?

  • 软件的设计文档是否从需求至实现进行了全部设计?软件设计文档是否规定了每一个类、每一个函数的参功能、参数、返回值,但不涉及到函数的实现?可是,实现过程中一定会出现意料之外的情况,设计可能也随之改变,请问怎样的设计文档才算作合格或优秀的设计文档?

哲学家的宗旨是:我思,故我在;科学家的宗旨是:我发现,故我在;工程师的宗旨是:我构建,故我在。

  • 我的问题是,工程师在构建的过程中,是否受科学家、哲学家思想引领与指挥?灵感来源于生活,来源于一切事物,工程师除了构建,其他方面(如其它学科领域、人文、艺术、哲学等)的涉猎与接触是否对工程师的构建有帮助?

软件与软件工程

  • 软件一词的出现:在2000年,耶鲁法学院的图书馆员Fred Shapiro发表一封信,显示Tukey的1958年“混凝土数学教学”文章包含了最早知道使用“ JSTOR ” 搜索中找到的“software”的电子档案。

  • 软件工程一词的出现:Margaret Hamilton在为阿波罗11号开发软件的期间发明了软件工程一词。

代码版本管理软件与缺陷管理系统

  • Microsoft TFS

    • 优点:
      • 任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用;
      • 集成了项目管理、版本控制、BUG 跟踪;
      • 能有效实现 SCRUM;
      • 能与 VS 无缝接合。
    • 缺点:
      • 整个系统是用 asp 实现的,用浏览器访问相当慢;
      • 用 XP 系统无法访问;
      • 团队的邮件细节配置比较复杂。

    引用:知乎-如何评价微软的TFS(Team Foundation Server),类似的更好替代产品有哪些?

  • Git
    • 优点:
      • 免费的、开源的、分布式的版本控制系统;
      • 版本库本地化,支持离线提交,相对独立不影响协同开发;
      • 把内容按元数据方式存储,完整克隆版本库;
      • 支持快速切换分支方便合并,比较合并性能好;分布式版本库,无单点故障,内容完整性好。
    • 缺点:
      • 概念过于复杂;
      • 引入了 index/commit/stash/branch/remote repo 等诸多概念;
      • 对于初学 Git 的用户,在使用 Git 的过程中还会继续遇到更多的陌生概念。
      • 命令行语法设计得比较随意且不一致。例如 git pull 等价于 git fetch 后加 git merge,git branch -b 等价于 git branch 后跟 git checkout;
      • 缺乏良好的封装。初学者有时不得不面对(需要用到(和内部实现相关的知识))的问题;
      • 对代码的维护者友好,但却牺牲了共享者的使用体验。

    引用:Git的优势和用法,
    知乎-Git有哪些缺点

  • Mercurial
    • 优点:
      • 跨平台;
      • 封装好。
    • 缺点:
      • 分支管理不灵活;
      • 支持社区略差。

    引用:Mercurial 有哪些优点?适合怎样的开发者或团队使用?

  • Github
    • 优点:
      • pull request,issue都是杀手级的feature;
      • 强调个人,符合hacker更看重名誉/成就感的天性。
    • 缺点:
      • 国内访问速度太慢,经常出现connect time-out(非GFW所为);
      • 不能很好的解决GB2312/GBK,对中文不够友好;
      • wiki功能太弱,直接导致文档(对于开源项目很重要)经常被分离到一个独立站点。

    引用:Github 有什么优缺点?把项目直接搭建在 Github 上合适吗?

  • Bitbucket
    • 优点:
      • 支持Hg,最易学易用(但不是最强大的)的分布式版本管理工具。同时也支持Git。他的网页端的git仓库不如github好用,但是作为远端仓库足够了;
      • 完全免费的闭源项目,还支持5人以内的合作开发;
      • 支持中文;
      • 官方的git工具SourceTree比GitHub for windows好用。
    • 缺点:
      • 限制公开仓库,有时候速度比较慢;
      • 域名不好记。

    引用:GitHub、Bitbucket、Google Code 各有哪些优缺点?

  • Bugzilla
    • 优点:
      • 免费的开源的一款功能强大的Bug管理系统;
      • 强大的检索功能,强大的后端数据库支持, 丰富多样的配置设定;
    • 缺点:
      • 安装需要Perl和配置MYSQL数据库,过程比较繁琐;
      • 修改配置文件比较麻烦;
      • 能汉化但是汉化后容易出现乱码。

    引用:常用的五大bug管理工具的优缺点和下载地址

  • Rational
    • 优点:
      • 可以创建争论地图,推理和论点图表;
      • Rationale 将帮助学生学习良好的推理,重要思维,论文写作的基本原理;
      • 并且还将有助于专业人士更加方便有效地进行复杂的推论。

    引用:http://www.onlinedown.net/soft/6009.htm

趣闻(因为不够冷)

Donald Ervin Knuth习惯用铅笔而非键盘写初稿,他将原因归咎于打字速度远高于思考速度(每分钟 80 个单词以上),而这会导致思考出现太多停顿,用铅笔可以让思考与输入速度保持一致——“我打字的速度比我思考的速度更快,这样当我试图用键盘创作重要内容时,就会产生同步问题。速度通常不会是最重要的标准。科学一般都难以迅速解释或迅速领会……我通常的工作方式是用铅笔和纸先把所有东西都写下来,然后在旁边放一个大废纸篓。然后使用Emacs将所有文本键入到机器中……特定的Emacs快捷键使得写书的过程有点儿像演奏风琴……”

(评价:这老头这么任性也是没谁了。。先膜为敬,反正写软工作业我不会用铅笔 :D


推荐阅读
  • PHP中元素的计量单位是什么? ... [详细]
  • 如何撰写PHP电商项目的实战经验? ... [详细]
  • Node.js 教程第五讲:深入解析 EventEmitter(事件监听与发射机制)
    本文将深入探讨 Node.js 中的 EventEmitter 模块,详细介绍其在事件监听与发射机制中的应用。内容涵盖事件驱动的基本概念、如何在 Node.js 中注册和触发自定义事件,以及 EventEmitter 的核心 API 和使用方法。通过本教程,读者将能够全面理解并熟练运用 EventEmitter 进行高效的事件处理。 ... [详细]
  • Spring Security 认证模块的项目构建与初始化
    本文详细介绍了如何构建和初始化Spring Security认证模块的项目。首先,通过创建一个分布式Maven聚合工程,该工程包含四个模块,分别为core、browser(用于演示)、app等,以构成完整的SeehopeSecurity项目。在项目构建过程中,还涉及日志生成机制,确保能够输出关键信息,便于调试和监控。 ... [详细]
  • Git基础操作指南:掌握必备技能
    掌握 Git 基础操作是每个开发者必备的技能。本文详细介绍了 Git 的基本命令和使用方法,包括初始化仓库、配置用户信息、添加文件、提交更改以及查看版本历史等关键步骤。通过这些操作,读者可以快速上手并高效管理代码版本。例如,使用 `git config --global user.name` 和 `git config --global user.email` 来设置全局用户名和邮箱,确保每次提交时都能正确标识提交者信息。 ... [详细]
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 数据结构与算法:HyperLogLog 统计、布隆过滤器应用、缓存机制挑战及解决方案、Redis 性能优化与监控、哨兵模式、版本控制工具 Git
    本文探讨了数据结构与算法在实际应用中的多个方面。首先介绍了HyperLogLog算法,用于高效地进行基数统计,能够准确估算大规模数据集中的唯一元素数量。接着讨论了布隆过滤器的应用,该过滤器在空间效率和查询速度上具有显著优势,适用于大数据场景下的快速成员检测。此外,文章分析了缓存机制面临的挑战及其解决方案,包括LRU和LFU等策略,并详细阐述了Redis的性能优化与监控方法,如使用哨兵模式实现高可用性。最后,介绍了版本控制工具Git的基本操作和最佳实践,帮助开发者有效管理代码版本。 ... [详细]
  • MongoDB高可用架构:深入解析Replica Set机制
    MongoDB的高可用架构主要依赖于其Replica Set机制。Replica Set通过多个mongod节点的协同工作,实现了数据的冗余存储和故障自动切换,确保了系统的高可用性和数据的一致性。本文将深入解析Replica Set的工作原理及其在实际应用中的配置和优化方法,帮助读者更好地理解和实施MongoDB的高可用架构。 ... [详细]
  • AppFog 是一个基于 CloudFoundry 的多语言 PaaS(平台即服务)提供商,允许用户在其平台上轻松构建和部署 Web 应用程序。本文将通过详细的图文步骤,指导读者如何在 AppFog 免费云平台上成功部署 WordPress,帮助用户快速搭建个人博客或网站。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
  • 如果你对项目管理和系统架构感兴趣,欢迎关注微信订阅号“softjg”,加入我们这个PM和架构师的大家庭。本文将探讨编写高质量软件架构文档的重要性及其优势。良好的架构文档不仅能够促进不同利益相关者之间的沟通与理解,还能为项目的长期维护和扩展提供坚实的基础。通过详细记录系统的设计决策和关键组件,架构文档能够确保团队成员在项目周期内保持一致性和高效协作。 ... [详细]
author-avatar
linxin66063
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有