协作开发

DevOps:从「蒸汽时代」到「高铁时代」,SUNMI DevOps转型之路

夙愿已清 提交于 2020-03-14 14:40:40
商米科技成立于 2013 年,总部位于上海市杨浦区创智天地,是一家极具产品创新基因和互联网基因的公司。商米在短时间内迅速成长为一家近1000人的企业,产品研发人数占比一度超过70%。 做为一家初创企业,商米研发团队早期也经历过与当下大部分创业公司一样困境:协作基本靠吼、发布基本靠手的阶段。然而,业务的快速发展,团队规模不断的扩大,给商米带来了在「团队协作」和「工程效能」上的双重挑战。 一、蒸汽时代 为了能快速让团队进入步入正轨,商米研发团队早期采取和大多数企业类似的组织方式,以职能为单位的进行团队划分,分为前端、后端、Android端、测试、产品等职能团队,并采用传统瀑布研发模式组织团队协作。当时,我们称之为 正规的 研发模式。 每个团队由组长负责制,具体负责团队任务的分配、技术决策和人员培养,组员负责具体的研发任务。根据这样的职能协作的方式,商米建立了早期的研发流程: 产品经理进行原型图设计; 然后产品经理,分别找各个组长请求人员支持; 组长根据自己团队人员工作现状,将工作安排给相应的同学,接手产品开发任务,完成工作量评估、给出截止时间等; 最后再各自团队的同学,完成相应的工作之后,大家约好一个时间,集中联调一下,再交付给测试团队。 优势 劣势 资源不易空闲,需求排着队任何一个组员都能随时顶上 延续性差:分配任务时可能熟悉需求的成员在另一个需求研发中,其他成员不熟悉此业务

Git - Pull Request工作流

﹥>﹥吖頭↗ 提交于 2020-03-11 12:58:41
Pull Requests 是 Bitbucket 上方便开发者之间协作的功能。提供了一个用户友好的 Web 界面,在集成提交的变更到正式项目前可以对变更进行讨论。 开发者向团队成员通知功能开发已经完成, Pull Requests 是最简单的用法。开发者完成功能开发后,通过 Bitbucket 账号发起一个 Pull Request 。这样让涉及这个功能的所有人知道,要去做 Code Review 和合并到 master 分支。 但是, Pull Request 远不止一个简单的通知,而是为讨论提交的功能的一个专门论坛。如果变更有任何问题,团队成员反馈在 Pull Request 中,甚至 push 新的提交微调功能。所有的这些活动都直接跟踪在 Pull Request 中。 相比其它的协作模型,这种分享提交的形式有助于打造一个更流畅的工作流。 SVN 和 Git 都能通过一个简单的脚本收到通知邮件;但是,讨论变更时,开发者通常只能去回复邮件。这样做会变得杂乱,尤其还要涉及后面的几个提交时。 Pull Requests 把所有相关功能整合到一个和 Bitbucket 仓库界面集成的用户友好 Web 界面中。 解析 Pull Request 当要发起一个 Pull Request ,你所要做的就是请求( Request )另一个开发者(比如项目的维护者),来 pull

Git - Pull Request工作流

点点圈 提交于 2020-03-11 12:58:27
Pull Requests 是 Bitbucket 上方便开发者之间协作的功能。提供了一个用户友好的 Web 界面,在集成提交的变更到正式项目前可以对变更进行讨论。 开发者向团队成员通知功能开发已经完成, Pull Requests 是最简单的用法。开发者完成功能开发后,通过 Bitbucket 账号发起一个 Pull Request 。这样让涉及这个功能的所有人知道,要去做 Code Review 和合并到 master 分支。 但是, Pull Request 远不止一个简单的通知,而是为讨论提交的功能的一个专门论坛。如果变更有任何问题,团队成员反馈在 Pull Request 中,甚至 push 新的提交微调功能。所有的这些活动都直接跟踪在 Pull Request 中。 相比其它的协作模型,这种分享提交的形式有助于打造一个更流畅的工作流。 SVN 和 Git 都能通过一个简单的脚本收到通知邮件;但是,讨论变更时,开发者通常只能去回复邮件。这样做会变得杂乱,尤其还要涉及后面的几个提交时。 Pull Requests 把所有相关功能整合到一个和 Bitbucket 仓库界面集成的用户友好 Web 界面中。 解析 Pull Request 当要发起一个 Pull Request ,你所要做的就是请求( Request )另一个开发者(比如项目的维护者),来 pull

Git工作流指南:Pull Request工作流

帅比萌擦擦* 提交于 2020-03-11 12:58:10
Pull Requests 是 Bitbucket 上方便开发者之间协作的功能。提供了一个用户友好的 Web 界面,在集成提交的变更到正式项目前可以对变更进行讨论。 开发者向团队成员通知功能开发已经完成, Pull Requests 是最简单的用法。开发者完成功能开发后,通过 Bitbucket 账号发起一个 Pull Request 。这样让涉及这个功能的所有人知道,要去做 Code Review 和合并到 master 分支。 但是, Pull Request 远不止一个简单的通知,而是为讨论提交的功能的一个专门论坛。如果变更有任何问题,团队成员反馈在 Pull Request 中,甚至 push 新的提交微调功能。所有的这些活动都直接跟踪在 Pull Request 中。 相比其它的协作模型,这种分享提交的形式有助于打造一个更流畅的工作流。 SVN 和 Git 都能通过一个简单的脚本收到通知邮件;但是,讨论变更时,开发者通常只能去回复邮件。这样做会变得杂乱,尤其还要涉及后面的几个提交时。 Pull Requests 把所有相关功能整合到一个和 Bitbucket 仓库界面集成的用户友好 Web 界面中。 解析 Pull Request 当要发起一个 Pull Request ,你所要做的就是请求( Request )另一个开发者(比如项目的维护者),来 pull

【巨杉数据库SequoiaDB】巨杉数据库无人值守智能自动化测试实践

让人想犯罪 __ 提交于 2020-02-04 11:55:33
刚刚过去的春节,新型冠状病毒疫情突如其来地横扫大江南北。为了响应国家号召,许多软件公司和互联网公司也将在较长一段时间内建议员工采取远程办公的方式,同时也存在骨干工程师无法及时返岗的问题,使得生产力大受影响。 对于软件企业来说,研发与测试是两大核心命脉。研发团队保障着产品新功能新特性的及时发布,而测试团队则如同马的缰绳,确保产品不会由于迭代速度过快、设计考虑角度不周,而导致软件缺陷的产生。 巨杉数据库在9年的自研和技术创新历程中,在研发体系构建、自动化测试、团队线上线下结合等方面积累了很多经验。从2011年团队成立之初开始,巨杉数据库的整个技术研发体系就以面向流程协作的方式进行构建。其核心思想是,任何员工可以在任何地点,只要遵循正确的流程,就可以与整个团队有机地衔接在一起。 在这个非常时刻,为了帮助在远程办公期间内保质保量完成新版本的迭代与测试工作,我们也将我们自己的一些经验分享给大家,主要介绍巨杉如何在无人值守的环境下,完成产品的自动化测试与研发协作。 基础体系 网络基础设施 我们的整个开发环境分为内外网两大网络,其中外部网络可以连接到广域网Internet,而内部网络则没有广域网连接。外网包括办公室中每个员工的台式机,以及可供员工进行远程连接的***服务器与防火墙。工程师们无论使用办公室的电脑,还是通过配发的笔记本电脑从远程通过***接入,均连入公司的外网网段。

【巨杉数据库SequoiaDB】巨杉数据库无人值守智能自动化测试实践

五迷三道 提交于 2020-02-04 01:47:30
刚刚过去的春节,新型冠状病毒疫情突如其来地横扫大江南北。为了响应国家号召,许多软件公司和互联网公司也将在较长一段时间内建议员工采取远程办公的方式,同时也存在骨干工程师无法及时返岗的问题,使得生产力大受影响。 对于软件企业来说,研发与测试是两大核心命脉。研发团队保障着产品新功能新特性的及时发布,而测试团队则如同马的缰绳,确保产品不会由于迭代速度过快、设计考虑角度不周,而导致软件缺陷的产生。 巨杉数据库在9年的自研和技术创新历程中,在研发体系构建、自动化测试、团队线上线下结合等方面积累了很多经验。从2011年团队成立之初开始,巨杉数据库的整个技术研发体系就以面向流程协作的方式进行构建。其核心思想是,任何员工可以在任何地点,只要遵循正确的流程,就可以与整个团队有机地衔接在一起。 在这个非常时刻,为了帮助在远程办公期间内保质保量完成新版本的迭代与测试工作,我们也将我们自己的一些经验分享给大家,主要介绍巨杉如何在无人值守的环境下,完成产品的自动化测试与研发协作。 基础体系 网络基础设施 我们的整个开发环境分为内外网两大网络,其中外部网络可以连接到广域网Internet,而内部网络则没有广域网连接。外网包括办公室中每个员工的台式机,以及可供员工进行远程连接的VPN服务器与防火墙。工程师们无论使用办公室的电脑,还是通过配发的笔记本电脑从远程通过VPN接入,均连入公司的外网网段。

外观在 Java 中的实现

大城市里の小女人 提交于 2020-01-07 17:53:50
外观 是一种结构型设计模式, 能为复杂系统、 程序库或框架提供一个简单 (但有限) 的接口。 尽管外观模式降低了程序的整体复杂度, 但它同时也有助于将不需要的依赖移动到同一个位置。 在 Java 中使用模式 复杂度:⭐ 流行度:⭐⭐ 使用示例: 使用 Java 开发的程序中经常会使用外观模式。 它在与复杂程序库和 API 协作时特别有用。 下面是一些核心 Java 程序库中的外观示例: javax.faces.context.FacesContext 在底层使用了 Life­Cycle 、 View­Handler 和 Navigation­Handler 这几个类, 但绝大多数客户端不知道。 javax.faces.context.ExternalContext 在内部使用了 Servlet­Context 、 Http­Session 、 Http­Servlet­Request 、 Http­Servlet­Response 和其他一些类。 识别方式: 外观可以通过使用简单接口, 但将绝大部分工作委派给其他类的类来识别。 通常情况下, 外观管理着其所使用的对象的完整生命周期。 复杂视频转换库的简单接口 在本例中, 外观简化了复杂视频转换框架所进行的沟通工作。 外观提供了仅包含一个方法的类, 可用于处理对框架中所需类的配置与以正确格式获取结果的复杂工作。 some

构建之法阅读笔记01

て烟熏妆下的殇ゞ 提交于 2019-12-20 06:27:08
《构建之法》阅读笔记01—泛读《构建之法》提出的问题 第一周泛读了邹欣老师的构建之法这本书,所讲内容对我们的启发很大,是结合了理论和实践,让我们在软件编程方面有了很大的信心和动力,通过泛读仍有许多问题有待精读时解决 1.没有扎实的编程基础,我们现阶段可以从哪些方面培养自己的开发思维和能力,向工程师方向更近一步 2.代码设计规范上我们应该考虑哪些问题,采用哪些方法 3.第四章中提到了断言一词,什么叫做断言 4.了解到了团队协作的重要性,对于团队协作时需要注意什么,如何才能使团队开发更加高效率 5.软件的需求分析,需要考虑哪些方面的知识,如何使其更加完善 6.在项目中如何结合软件工程理论和技术解决实际用户的要求 7.对于十六章节提到的创新,创新需要考虑哪些因素,需要什么 来源: https://www.cnblogs.com/wuyw/p/5247595.html

娱乐网站开发

与世无争的帅哥 提交于 2019-12-03 14:23:54
 网站开发的意义: 1.宣传品牌信息,树立企业良好抽象   这一点是网站建立关于企业协助最直观的一点,企业网站建立完成后,可以经过网产及时、疾速的发布一切与企业相关的信息,如商品的功用引见、效劳的特征展现等。而这些引见内容可以经过文字、图片、视频或音频等多方式展示给用户,让用户可以身临其境的感遭到企业商品和效劳的劣势   2.取得新客户,凝聚老客户   企业网站是一个可以24小时爲用户提供效劳的媒介,且是针对整个互联网的,所以只要用户在互联网上搜索就有能够看到企业的网站。这样就爲企业争取了一个十分大的新客户市场,一切对企业的商品和效劳感兴味的用户都有可以成为何的客户。老客户们也可以随时随地的在网站的征询相关成绩,而企业则可以经过网站与老客树立敌对的联络,不只方便管理,还让单方的关系愈加劳固。   3.寻觅更多协作时机,取得协作同伴   由于企业网站上发布的信息都会有一定的专业性和针对性,所以离开企业网站的客户都是经过搜索与之相关的信息出去的,对方可以在网站上详细的检查企业的简介、商品引见等信息,这样可以协助企业愈加精确的找到合适的和作同伴。互联网自身就是一个开放式的平台,无论是协作同伴还是用户都可以经过网络寻觅到企业。在海量的互联网信息中,企业可以不时的寻觅协作时机,与适宜的商家协作,寻求合资和协作同伴做预备。   4.降低宣传本钱,进步运营效益   这一点关于企业开展来说是最重的

利用GitHub来进行团队协作开发项目

匿名 (未验证) 提交于 2019-12-03 00:08:02
首先:    1、项目组长要在GitHub创建一个仓库   2、组长git clone仓库地址到本地    3、组长在本地克隆到的项目里面创建一个Django项目    4、在当前项目下进行git add以及git commit操作,将Django项目提交到GitHub上面    5、组长邀请组员来共同开发这个项目(在settings里面,这个组员是没有的) 流程:   1、git status   2、git add 做过变更的文件   3、git status (这个时候文件是会变绿的)   4、git commit -m 对这次修改的一些说明   5、git fetch 将远程上面的内容拿过来   6、git merge 将本地的Django文件和远程上面的文件做合并(可能会产生合并冲突)我之前的博客里面有简单讲到过合并分支和解决冲突的问题: https://www.cnblogs.com/tulintao/p/11024262.html   7、git push origin master 将当前内容推送到远程的GitHub的master主分支上面 这些就是最基础的流程,还有就是要建议每当有人在修改了项目中的某一块内容的时候,最好在readme文件中详细说明你修改的说明,这是为了在协同开发的时候方便别的组员的查看