构建第一个Web应用的技巧

WebFX总统。Bill在互联网营销行业有超过25年的经验,专门从事SEO, UX,信息架构,营销自动化等。William在Shippensburg和MIT的科学计算和教育背景为cloudfx和WebFX的其他关键研究和开发项目的营销提供了基础。

构建第一个Web应用的技巧

作为一个为自己和客户创建web应用程序的人,我在整个过程中学到了一些东西,这些东西帮助我用我所拥有的时间和资源取得了最好的结果。

这些建议来自一个刚开始并不熟悉Web编程的人。当我第一次开始开发我的第一个网页应用时,我还不是一个网页开发者。我是个生意人。

(如果你想了解我是如何在短短几个月内使用Ruby on Rails创建我的第一个web应用的故事,请阅读我的文章:为什么用Rails制作web应用很棒。)

一个假设我要谈论你,阅读本文的人是您已经是Web开发人员,或者您将为您的第一个Web应用程序招聘一个。我将讨论适用于所有Web应用程序的实用,一般提示,无论什么样的内容如何网页技术你使用。因此,请不要期望在本文中看到一些深层次的web编程技术,因为您将一无所获。

我所做的另一个假设是,您将在不向1.0版投资数十万美元的情况下构建您的第一个web应用程序预算在5000美元左右主要是因为这是我的经验所在。

在我的序言中,我将根据自己的web应用开发经验分享我的7条建议。

1.从数据关系的角度考虑

无论复杂性、大小或功能集如何,您都可以将任何web应用程序分解为以下简单的操作机制:

  1. Web应用程序需要在数据用户
  2. Web应用程序流程并决定与此有关数据
  3. Web应用程序为此产生一些输出用户

所有的网页应用都是这样工作的,所以在一开始,最好将你的网页应用的核心功能分解成数据关系,看看:

  • 你的网页应用应该如何构建
  • 您的Web应用程序如何处理用户数据和演示文稿
  • 优先考虑需要哪些功能
  • 什么网络服务和网络技术,你需要争取和熟悉

等等。

例如,让我们以一款图片分享应用-在照片分享服务上发布一张照片-并将其分解为上面的基本操作机制:

  1. Web应用程序需要在一个照片用户
  2. Web应用程序处理照片将其放大或缩小到Instagram的布局,以及用户希望对照片应用的照片效果
  3. Web应用程序生成修改后的图像并显示它用户

因此,如果您雇用我为您创建Instagram克隆,我可能会创建如下数据关系分解:

用户
具有2个权限角色(用户管理
一个用户可以上传照片
一个用户可以操纵照片
一个用户可以喜欢或不喜欢照片其他的用户
一个用户可以评论照片
照片
照片是由用户
一个照片可以得到一个滤器应用于它的用户谁拥有照片
一个照片可以喜欢/不喜欢的
一个照片可以得到一个评论
一个照片可以删除/编辑/更新吗
一个照片可以是私人的,也可以是公共的
滤器
一个滤器可以应用于照片
一个滤器可以由管理
评论
一个评论属于A.照片
一个评论可以创建,编辑和删除用户谁的评论
一个评论可以被删除吗用户谁拥有照片那里评论是在

我知道你可能无法认为自然喜欢,起初当你看看web应用程序,但你使用其他web应用程序越多,你越思考他们在所有这些小块数据的关系,你就越容易概念化和构建web应用程序。

2.跟踪那些能激励你的ui和网站

您有喜欢的web应用程序和网站的示例吗?

从最小的交互式组件(如按钮按下时的感觉或web应用程序处理图像上传功能的方式)到整个网站的配色方案、总体设计主题和敏感性,你应该有一些方法来记录这些鼓舞人心的例子。

把你在网上看到的任何你喜欢的东西都记录下来。

Pinterest上的UI灵感板由斯特凡马歇尔

你可以使用多媒体笔记工具印象笔记或者一个书签服务形象喜欢Pinterest为了这个。

拥有这一网络用户界面和网站设计,激励您在开始开发Web App的界面时,您将帮助您 - 您可以查看您的收集以获取想法。

此外,熟悉常见的用户界面设计模式确保您的UI组件是给定任务的最佳解决方案。

3.保持第一版尽可能简单

构建一个最低可行的产品(MVP)是网络初创企业的一个流行概念。最小可行产品是指拥有网页应用最基本的核心功能的产品。

生成MVP具有许多好处,但主要原因是尽可能快速地验证您的Web应用程序想法。

如果你将web应用程序保持在一组非常严格和定义的核心功能上,你可以测试这些核心功能是否是你的用户所需要的。

你还记得谷歌的第一版吗?

谷歌的核心功能是搜索。您所需要的只是一个核心功能是用户搜索词的文本输入字段,以及执行搜索的按钮。它不一定很漂亮。它不一定是任何比这更复杂。它只是必须做到它的承诺。

MVP允许谷歌向公众发布该产品,以便公司在进一步开发之前验证他们的想法。

MVP还允许它们开始收集用户搜索行为,并挑逗未来产品的未来版本的新功能和机会。

今天快进到今天,谷歌现在不仅仅是一个搜索公司。与第一个版本相比,他们的核心特征也是更复杂的。

但它是第一个版本,在他们现在的路径上导致它们。

我从未见过一个网页应用因为功能太少或功能不足而失败。

在我看来,网页应用之所以失败,是因为它们所要解决的问题没有需求,或者是因为网页应用没有有效地执行问题的解决方案。

4.关注行为,少关注外观和感觉

通常,人们对Web应用程序的挫败感来自于它的行为方式,而不是它看起来。

我并不是说你应该完全忽略你的web应用的外观,但我认为,一旦你确认你的解决方案是用户真正想要的,你就可以对它进行改进、完善和投资。

我的建议是,你将你的时间和资源投入到你的web应用程序中价值主张——对于web应用程序来说,这通常是它旨在为用户解决的基本问题。

为此,我鼓励您使用可靠的HTML/CSS框架或样板文件,例如推特引导骨架基金会当涉及到开发MVP的前端接口时。

CSS/HTML框架和样板文件加快了前端设计和开发,因此您可以有更多的时间专注于web应用程序的行为。

这样,你就可以把大部分时间和资源投入到开发新的、新颖的东西上,而不是已经解决的问题上。没有必要重复发明轮子。

Kippt -一个web应用程序,试图提高人们查找,阅读,存储,搜索和分享web内容的方式-使用Twitter Bootstrap:

Kippt的目标是解决一个复杂而又雄心勃勃的问题——面对数以亿计的网页,他们意识到他们的网站外观并不是他们获得更多网络应用注册的主要原因。

因此,对于前端设计,他们依靠可靠而美丽的前端框架,帮助他们与响应式网页设计,内容布局,CSS重置,跨浏览器兼容性以及任何关键的东西Web项目,但在他们面前已经由其他人解决了。

在你验证了你的网页应用,并确信它值得追求之后,你就可以用你的退休基金来设计完美的网页应用了的图标如果你愿意的话。

5.尽可能使用免费或实惠的Web服务

即使你刚刚中了彩票,有钱可花,也不要轻视你的资金。

有许多强大的Web服务,为具有免费(或非常实惠)定价计划的现代Web应用程序。

heroku.(我最喜欢的Rails主机)Amazon S3(用于存储图像和其他内容)到SendGrid(处理您的事务电子邮件)条纹(处理您的付款并仅向您收取交易费用)谷歌分析(对于相对强大的网络分析)-通过一些在线研究和自我教育,你可以最终为自己节省一大笔钱。

一旦您的应用程序耗尽了下一个Facebook,您可以在需要或扩展现有解决方案时投资更强大的Web服务更换。我提到的网络服务不需要任何替代品;随着你的成长,他们会与你扩展。

我想说的另一点是,现在没有必要考虑可伸缩性。如果您选择了正确的解决方案,当您需要时,它们将与您一起扩大规模。

因此,如果您甚至在推出MVP之前就考虑购买托管在自己数据中心的专用服务器机架,那么您的担忧和时间就放错了地方。

6.请谨慎使用第三方api

一个API是开发人员访问外部web服务数据的一种方式。例如,Twitter的API允许任何开发人员构建一个应用程序来访问公共推文和Twitter用户的帐户信息。

并非所有的api都是平等创建的。最好的api就是那些能够使用的api宁静的(即,它们符合关于数据交互方式的最佳实践和行业标准),并为多种流行语言(PHP、Ruby、Python、Java等)提供包装。它们还应提供良好的文档。

你想要非常挑剔的原因是你使用的apis是你的web应用程序的性能可能会受到这些第三方web服务的严重影响。

而且,即使您选择了高性能的API,也无法避免API所有者公司方向的变化无常。例如,Twitter的API受到批评因为该公司选择限制对其API的访问,并执行新的使用条款,这些变化严重削弱了一些web应用程序。

要特别注意那些核心功能严重或完全依赖第三方api的网页应用。外部api随时都可能发生变化,而这些变化将极大地影响网页应用的发展方向和成功。

7.专注于出色执行你的想法

我想不出有哪个网页应用仅仅因为“第一”而获得成功。

而不是花时间和金钱让律师起草你的保密协议(NDAs)与其害怕有人“窃取”你的想法,不如考虑如何有效地执行你的想法。

用一位非常成功且备受推崇的企业家的话说,德里克·西沃斯:创意”不执行就一文不值”。

对SIVER来说,想法只是实际成功的倍增。一个想法本身不会产生任何成果:

换句话说:想法不会让你富有。想法的正确执行才是。

一个伟大的产品之所以伟大,并不是因为你有一个伟大的想法,而是因为有成千上万的小想法被很好地执行。

就是用a“拉动刷新”界面,使用户不必重新加载页面。它概念化了使图像上传更简单和更容易的想法。正是你有效执行的众多小想法才会产生不同。

结论

根据我的经验,我所建立的最成功的项目和与我合作过的最好的客户都倾向于包含这些内容。

我希望我能在某种程度上启发你们思考如何开发你的第一个web应用程序。

对于构建网络应用,你有什么建议?你不同意我说的话吗?请在评论中分享你的想法,让我们开始讨论。

相关内容