PhylabWeb——阅读作业


  • 问题回顾

    1. Alpha/Beta,ZBB/RC阶段的界定,由于只体验了项目开发的alpha/beta阶段,对这两个的定义仍然仅有时间上的概念,alpha阶段须作出一个相对完整的可以运行的版本,那么这个”完整“要如何理解才合适,毕竟beta阶段也会添加一些核心功能,alpha阶段未必总是完成了所有的核心功能的
    2. 对于代码规范的制定尚不清晰,因为我们的团队项目使用到了很多种不同的语言,网页前端这里主要是php,html,css和js,后端核心功能模块则是用python编写脚本,在这种代码不统一的项目中,需要如何制定代码规范呢?我在使用bootstrap框架进行网页编写的时候,了解到bootstrap是通过分层次的类定义来为dom标签赋予样式的(bootstrap的类名定义非常工整),js则是基于Jquery编写,可以理解为前端的代码规范都是采用这样的模式制定的嘛?
    • 已经解决的问题:
    1. 对于写了再改模式的利弊分析,我认为对于团队协作编程,弊总是大于利的。在结对编程中因为前后端交互较少,都是围绕着接口进行,程序松耦合性比较好,写了再改模式的弊端没有充分体现出来;而在团队项目中,我和后端需要对同一个网页的Php文件进行修改,频繁修改导致的问题就是两个人自己仓库里的文件差异增多,冲突增多,并且由于服务器环境较为复杂,我不便于立即查看自己修改后的代码运行效果,每次修改都需要等待后端部署好后再查看。这样就极大地拖慢了工作效率,因此我在处理论坛页面的时候,借助于后端工程师的引导,在本地部署了一个wecenter服务器用于检查代码执行结果,以尽可能的提高代码质量,减少复写率。
    2. 关于单元测试,通过scrum meeting我从负责后端计算模块的同学那里了解到,这个还是单独去做的,每次上线前会进行一次测试,不然会影响效率。当然,后端的压力测试就更是如此了
    3. 对于优化,项目中前端这里的优化主要是指浏览器兼容性优化和响应式布局,这一点我确实意识到有的时候过多的做一些优化可能会起到反效果,网页是内容,而浏览器是框架,浏览器自身会通过优化兼容越来越多的网页(比如支持更多的H5/CSS3特性),编写网页文件时,为低端浏览器所做的一些兼容优化最终都会成为废代码,因浏览器自身的更新而被淘汰,因此只需要考虑对主流浏览器较新版本提供支持即可,兼容其他浏览器反而容易丧失代码的纯粹性,甚至会影响到原本主流浏览器的效果。响应式布局方面,因为不同浏览器对响应式设计支持的程度不同,全部兼容会造成大量的代码冗余,时间资源又有限,所以只考虑chrome/firefox内核。

  • 新问题
    • 在没有办法在本地部署服务器的前提下,前端工程师有无快速核查自己代码执行效果的手段?
    • 在需要修改同一个网页文件来配置路由的前提下,前端和后端搭配工作的最好模式是什么?在同一个分支下协作还是共同完成 ?

  • 新体会

    • 团队项目中,如果不能解决一个bug,那么至少需要将其掩盖,因为团队项目的文件可能经手不同的人修改,如果bug不解决,很容易就会引发至各处,届时bug的修复成本是难以估计的,也就是所谓的”大泥球“现象,在开发过程中我们遇到了页面图标字体显示异常的状况,经排查知道是由于本地的bootstrap.css和bootstrap.min.css对字体文件路径依赖不一所致,前者是fonts目录下而后者是font目录下,因此在处理的时候牵涉到了路由修改和相关css路径的修改,可以说是饶了很大一圈,由此可见对”大泥球“问题必须时刻保持足够的重视程度

  • 收获的知识点

    • 需求阶段

      • NABCD分析法
    • 设计阶段
      • 界面原型设计,了解了诸如mockupbuilder的原型设计工具
    • 实现阶段
      • 了解迭代开发的基本流程,如何运用github进行项目代码管理,学习了bootstrap框架并初步了解了网页前后端对接
    • 测试阶段
      • 意识到”大泥球“现象的存在,在后端的配合下在本地部署服务器,意识到开发人员自身的测试对于团队项目管理的重要性
    • 发布阶段
      • 了解了产品发布需要做哪些准备工作,如何通过git合并各个分支的源代码以整合成最终产品
    • 维护阶段
      • 充分意识到了敏捷开发中运维阶段工作的重要性,由于敏捷开发追求效率,运维阶段每个人都必须在自己负责的模块上针对各种意见反馈给出及时的处理,以免耽误整个队伍的代码修缮进度

【M2】软件工程终期总结报告——阅读作业的更多相关文章

  1. [2019BUAA软件工程]第1次阅读作业

    [2019BUAA软件工程]第1次阅读作业 Tips Link 作业连接 [2019BUAA软件工程]第1次阅读作业 读<构建之法>的疑惑 个人开发流程(Personal Software ...

  2. 【M2】软件工程终期总结报告——前端设计总结

    PhylabWeb——前端设计感想 简介 本文的内容是关于我参与的软件工程项目——“Phylab-Web物理实验中心网站”的前端设计个人总结,来自团队:软剑攻城队 网站地址为:http://buaap ...

  3. 软件工程M1/M2总结及阅读作业总结

    一.软件工程M1/M2总结 写下这篇总结的时候,我们的软件项目尚未完工.虽然尝试申请了延期答辩,但最终未能成功.这意味着,我们的项目能否正常发布已经处于了一个微妙的状态.可能可以,也可能不可以.只能尽 ...

  4. 个人阅读作业 --软件工程M1/M2总结

    软件工程M1/M2总结 写在前面的话: 这学期的软件工程伴着考期的展开逐渐落下帷幕,回顾这学期的软件工程,我感觉我的热情在一次又一次的失落中逐步消耗殆尽,每个人对于这门课的体验都会有所不同吧,可以确定 ...

  5. 高级软件工程2017第6次作业--团队项目:Alpha阶段综合报告

    高级软件工程2017第6次作业--团队项目:Alpha阶段综合报告 Deadline:2017-10-30(周一)21:00pm (注:以下内容参考集大作业4,集大作业5,集大作业6,集大作业7 一. ...

  6. 【BUAA软件工程】第一次阅读作业

    BUAA软件工程 第一次阅读作业 项目 内容 这个作业属于哪个课程? 北航软工 这个作业的要求在哪里? 第一次个人作业 我在这个课程的目标是? 学习高效严谨的软件工程开发过程,建立团队意识 这个作业在 ...

  7. 2021S软件工程——个人阅读作业2

    2021S软件工程--个人阅读作业2 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 了解并熟悉软件开发的具体流程, ...

  8. 2021S软件工程——个人阅读作业1

    2021S软件工程--个人阅读作业1 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 2021年软工-热身阅读作业 我在这个课程的目标是 了解并熟悉软件开发 ...

  9. final个人阅读作业

    一.软件工程M1/M2总结 1.M1阶段总结: 我们团队的软件工程开发是按照前后端来分别开发的,我是负责后端的.我们的项目是做一个北航的社团平台,是一个网站.在后端我们使用的是ruby on rail ...

随机推荐

  1. 解析oracle的rownum(转)

    解析oracle的rownum 本人最近在使用oracle的rownum实现分页显示的时候,对rownum做了进一步的分析和研究.现归纳如下,希望能给大家带来收获.      对于rownum来说它是 ...

  2. 4.91Python数据类型之(6)元组

    前言 有时候,我们为了数值的安全性,不许用户修改数据,今天我们就来讲讲关于python不可变的数据类型--- 元组数据 目录 1.元组的基本定义 2.元组的基本操作 (一)元组的基本定义 1.元组的概 ...

  3. C++基础算法学习——汉洛塔问题

    汉诺塔问题古代有一个梵塔,塔内有三个座A.B.C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图).有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,并且在移动过程中, ...

  4. 第 15 章 位操作(fields)

    /*----------------------------------- fields.c -- 定义并使用字段 -----------------------------------*/ #inc ...

  5. CF895C: Square Subsets && 【BZOJ2844】albus就是要第一个出场

    CF895C: Square Subsets && [BZOJ2844]albus就是要第一个出场 这两道题很类似,都是线性基的计数问题,解题的核心思想也一样. CF895C Squa ...

  6. socket 总结

    网络编程之进程:http://www.cnblogs.com/1a2a/p/7428759.html 网络编程之进阶:http://www.cnblogs.com/1a2a/p/7444446.htm ...

  7. centos7下安装docker(3.3创建镜像--修改dockerfile)

    1.我们在制作dockerfile的时候可能有些命令无法执行,导致镜像无法创建成功,这时我们可以修改dockerfile,从而达到我们的目的 查看Dockerfile内容 创建新的镜像,失败 Dock ...

  8. Lock和Condition在JDK中ArrayBlockingQueue的应用

    ArrayBlockingQueue的实现思路简单描述,ArrayBlockingQueue的底对于互斥访问使用的一个锁.细节参考源码take和put方法: import java.util.conc ...

  9. k8s mysql 单点部署

    参考官网:https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/ 20-nproc. ...

  10. go标准库的学习-net/rpc/jsonrpc

    参考:https://studygolang.com/pkgdoc 导入方式: import "net/rpc/jsonrpc" jsonrpc包实现了JSON-RPC的Clien ...