我最喜欢的Frank SINATRA歌曲。

我在Sinatra的经历是……

一言以蔽之。 在创建类似于Web应用程序的东西时,我充满了很多乐趣,但是在整个过程中,我多次想起自己的局限性。

对于我与资源丰富的合作伙伴Naveed Shah设计的应用程序,我们决定构建Sinatra应用程序,该应用程序将允许用户直接从该应用程序构建和使用Spotify播放列表。 我们的目标是建立一个方便的地方来组织您的音乐,并具有从相似的播放列表添加音乐的附加功能。 我们将自己的想法命名为“ Sponatra”。

旅程。

因此,我们首先着重于建立数据库并充实关系,从而开始了这一过程。 我们将拥有用户,歌曲和播放列表。 用户将具有许多播放列表,而播放列表将具有许多歌曲。 这样,一个用户可以拥有许多歌曲,但是一首歌曲也可以属于许多用户。

我们添加了许多与用户登录过程相关的验证,包括身份验证和电子邮件正则表达式。 我们构建了允许我们的应用运行的页面和路由,并连接了我们构建的那些页面。 我们还使用了出色的宝石RSpotify,它使我们可以绕过直接使用Spotify API的工作,并提供了一些便捷的搜索功能来处理Spotify的音乐。 我们还内置了一些功能,可以直接从应用程序启动歌曲,还可以在数据库中搜索类似的播放列表,并在这些播放列表中列出歌曲。

挑战,男孩在那里很多。

我们遇到的一些主要困难是取决于播放列表的歌曲,我们最初是对其进行设置的,因此添加的每首歌曲都是歌曲的新实例,这意味着我们在数据库中有重复的歌曲。 我们通过设置JOIN表来解决此问题,以便歌曲可以属于多个播放列表。 我们还编写了许多代码,这些代码虽然功能丰富,但并未利用Ruby的众多方法进行迭代和搜索。 尽管这对于我们的应用程序来说并不是什么大问题,但是如果我们尝试扩大规模,我们将通过发送大量的SQL查询和许多级别的嵌套迭代来对应用程序和服务器施加更大的压力。

结局。

我们的应用程序在初次提交以供审核时需要大量工作,尽管最终我们得到了一个没有松散结局(手指交叉)的工作产品,但我对所创建的内容并不满意。 我认为,当我探索Ruby并了解有关如何重构代码的更多信息时,会有很多事情我可以回来修改。 我相信,作为一个应用程序,它可能不是我创造过的最令人印象深刻的东西,但是作为学习更多内容的动力,它是一种宝贵的工具。 它鼓励我去真正地探索一些我不熟悉的Ruby和Sinatra方法/约定,因为我对它们不熟悉,并且我认为这会激发我去探索Rails的许多我不会否则寻找。 感谢您的阅读。