第 25 集:梦之队的开始(AIRBNB 挑战)
第 25 集:梦之队的开始(AIRBNB 挑战)
原文:https://medium.com/hackernoon/episode-25-the-dream-team-the-airbnb-challenge-59108901e4c6

第六周。这是多么激动人心的一周。你可能会问这有多刺激?你不就是像以前那样配对吗?我的朋友们,这周是我们一起做第一个小组项目的时候。这将是一场激动人心的冒险,有欢笑和悲伤,有乒乓和代码,还有四个人之间的纽带。
本周的小组挑战是重新创建一个版本的 Airbnb 。它需要后端和前端之间的大量组合。从头到尾都需要做很多决策。这需要事先做大量的计划,虽然说起来似乎没什么用,但仔细想想却更方便。

我把这篇文章称为“梦之队”,因为它实际上是任何编码团队都希望迎接这一挑战的梦之队。原因如下:
- 就个人而言,我们都擅长不同的事情。我的大多数团队成员都是后端人员,所以作为一个热衷于前端的人,这无疑是一个亮点。我有一个合法的角色,耶!
- 当谈到我们的工作流程时,我们有冷静的人和精力充沛的人
- 我们所有人的目标都是把工作做好,我们所有人的目标都是把我们的休息仪式——乒乓球——做好。
第一天作为一个开始是惊人的,虽然它是一个很大的规划。然而,我相信这个计划是一个很好的策略,因为我发现很多团队都陷入了困境。我从没想过我的设计实践会派上用场,但当它出现在我们的流程中时,它确实派上了用场。鉴于我们正在重新创建一个受欢迎的应用程序,第一件关键的事情是…
研究。
为什么这个阶段的研究很重要?
- 我们可能会认为 AIRBNB 是一个简单的平台,主机和客户可以在这里找到彼此,并从中受益。然而,有这么多的考虑进入该网站的内容
- 我们可能认为工作流是找到一个属性并点击支付,但是工作流有几个步骤,需要考虑不同的属性和不同的元素
- 消费者和宿主的工作流可能看起来模糊不清,或者是我们在头脑中想象出来的有意义的东西。这净化了空气。
- 我们得到正在发生的事情的地图,选择我们想要去的方向,我们想要实现的目标,并将任务分散到几周内
一个网站或一个应用程序投入了很多,比我们想象的要多!看看我们为团队带来的那些至关重要且有用的好处吧!如果我们要深入研究这个问题,那么研究能做的事情是惊人的。这是我们超越一切的第一步,为我们想要实现的目标绘制一张地图。

我们对 AIRBNB 类应用程序的研究贯穿了 AIRBNB 的工作流程。我们意识到有两个初始化的视角,即客户和主机。在此过程中,我们还列出了每页中显示或使用的所有数据元素。为用户列出从 1 到 9 的步骤对于创建这个地图很有用。这张地图很有用,因为这样我们就可以开始构思如何处理一段代码。
例如,我们选择了“即时图书”方法,这种方法对于思想的核心来说比作为一个单独的特性来执行更简单。我不会说这是我们的想法。更多的是我们把我们的想法放在我们的研究上。
选择焦点:

如果我们在研究一个项目,大多数时间,我们会发现一堆东西。这是一堆有很多方向的东西。在一周之内,重新创建 AIRBNB 所能提供的全部功能是不可能的。因此,从这里开始,我们的下一步是选择我们的焦点。
在代码中,这就是我们所说的用户故事的 MVP。MVP 有点意味着网站的核心功能是真实的。
在这个阶段,虽然我们提到了工作流程,但列出我们的用户故事也很好,这样我们就可以跟踪创建需要什么功能。鉴于客户和主机是两个独立的部分,为他们做一件事很重要,因为有不同的需求。


最后,我们的 MVP 归结为三个用户故事
- 列出倾向的主页
- 按城市搜索
- 单击属性时的单个属性视图
我发现这个过程是有效的,因为我们花时间来计划它,我们从核心开始工作,然后扩展。我喜欢这种方法的地方是,我们的进步不是直线的,我们正在到达一个山顶。这是一个从核心开始的扩展,我们正在观察我们可以扩展到什么程度。这些方法对团队的情绪和化学反应有很大的影响。
因此,我们的目标是开始建立基础(核心),并扩大我们的覆盖范围,达到我们可以达到的程度。
奠定基础:
我相信在每一个团队中,两个关键因素是沟通,每个人都站在同一条战线上。除非这种情况发生,否则没有人能够有效或轻松地向前迈进。
因此,重新解释或描绘出我们如何看待工作流程总是很好的,不仅是我们的整个代码,还有我们的 MVP 的细节。有前端开发人员和后端开发人员在房间里,这是至关重要的。
理解我们代码的工作流程很棒,因为我们需要知道前端将如何连接到后端。这是上周在 Javascript 周上的一节课,我们大多数人都上不了(因为我们在和其他东西做斗争)。因此,像大多数人一样,再次经历这一切对我们所有人都有好处。
所以,建立我们的基础是在底部展示右边的图像。它是用一个简单的片段或代码或测试将前端和后端放在一起。我们知道在这一点上,实施其他扩展会更容易,这取决于我们本周能扩展到什么程度。


MVP requirements and overall code workflow
虽然我们没有完成整个基金会的建立,但重要的是我们已经完成了大部分工作。可能有一个错误,但作为一个团队,我们应该为我们的进步感到骄傲。
关于工作流的更多信息:
这个项目非常具有挑战性,因为我们不仅要计划好一切,还要确保我们的工作方式在每个人的理解中都是一样的。
这是我们偶然发现学习 GIT 分支
令人生畏的话题,因为许多比我们高的人害怕它。当涉及到代码冲突时,我们听到了痛苦的故事和痛苦的眼泪。因此,一个聪明的解决办法是明确地把它添加到我们的待办事项列表中。为了试验 GIT 分支,我们创建了一个自述文件并进行试验。
我们练习得越多,我们就越能列出一个人应该如何使用 GIT BRANCH 的七个步骤
- 第一步:拉 Github
- 步骤 2:创建一个分支,然后签出到该分支
- 步骤 3:编写代码并提交
- 步骤 4:将分支签回到主分支
- 第 5 步:从 GITHUB 中获取最新的代码(如果您遇到冲突或错误,并希望保留两者,您希望删除冲突行……它们看起来像随机的行,而不是选择或使用一个代码而不是另一个代码)
- 步骤 6:合并本地分支
我们第一次这样做的时候,我记录了这个过程是如何得到一个更好的想法的。如下图所示,我首先合并了我的分支。然后跟着我的其他队友。我们每个人轮流合并我们的分支机构,我们成功而轻松地做到了这一点。

这样做的好处是,我们做了两次,以确保我们所有人都在同一页上。由于该项目很可能会扩大到相当大的规模,我们希望为我们所有人的工作方式奠定基础。这对团队同步肯定是有益的。
为什么解释事情值得一个团队的时间?
我们首先从后端开始,创建数据库,然后逐步发展到前端。在我们的理解中,最大的问题或漏洞无疑是理解房产的细节是如何被发布到网站上的。尽管我们可以简单地获取属性的数据并打印出来,但是在扩展时我们也必须考虑我们的代码。
当我们考虑客户是主人还是租赁者时,这一点尤为突出。
现在,就我们的 MVP 而言,我们已经实现了我们为客户设定的目标。这是因为作为编码人员,我们在网站上有硬编码的属性。让我给你看看这里的流程。
- 我们编码员正在输入储存在数据库中的属性数据
- 我们使用 Ruby 连接到我们的租赁,这样我们就可以看到租赁
- 我们的 json 文件是我们的控制器,它将引导我们到达前端,在那里我们与 javascript 连接以输出这些租金。(因此,这又回到了租赁。
但是,当一个客户成为主人,把自己的财产放在清单上,我们会怎么做。然后,主机将不得不与我们的前端交互以创建租赁,该租赁将不得不从我们的 javascript 传递到后端。后端将必须连接到我们的数据库来存储它,如果希望被客户看到,或被客户提取,它遵循我们前面所做的流程!
如果这个解释有意义,给我打分,让我有能力解释它。

对于一个团队来说,让每个人都保持一致的真正好方法是解释或练习解释他们的想法。所以,如果没有人知道它是什么,但是有一个人知道,那么有一个人会解释它。从那时起,鼓起勇气重新解释那个人刚刚说要做的事情,这将在你的脑海中固化下来。如果你做对了,向团队中的其他人解释!
有时,这种方法可能行不通,但对你来说这是一天结束时的练习。尽管人们可能不明白这一点,不管是通过文字还是图表来解释,但是希望你的团队在同一页上是有好处的。
反思:
如果你来到这个博客,试图找出创客对 AIRBNB 挑战的答案,很抱歉让你失望了。然而,我认为这些技术是团队在突然跳入所有代码时忘记考虑的事情…
我会说,这是非常健康、美味、多汁的食物。
我学到的新东西:
我刚才解释的概念,开玩笑的哈哈!

- 显然,当您在 ruby 控制器中使用它时,它会在数据进入之前检查数据。当我们抓取数据时,它被用作安全协议/预防措施。一旦它检查它,它有点说“好吧,它很好,让它通过,没有任何问题”
我希望这是正确的,因为我纵容它从罗布的解释。
今日趣事

当你报名参加训练营时,你会期望你的经历仅仅是关于代码的。然而,这些经历也可以是生活经历。它甚至可以告诉你你是什么样的人。
从经验来看,它可能会变得非常糟糕,以至于当你心碎或你伤了别人的心时,但就像许多人说的那样,这是你经历的一部分,也是你在那里学习的一部分。疯了,我说的对吗?