👋 您好! 我们想提醒您,本系列附带的源代码已不再提供下载。 我们仍然认为该系列包含有价值的信息,但鉴于我们已经走过了 10 多年,我们也认为值得考虑使用现代的 PHP 框架(如 Laravel)甚至 JavaScript 框架(如 React 或 Vue)来创建一个渐进式 Web 应用。
今天,我们开始了一个 8 部分系列的第 1 部分,该系列将介绍如何从绝对零基础构建一个 Web 应用,直至成为一个完整的产品。 我将首先介绍这个想法,然后处理设计、UI 和一般的前端内容。 我们将从这里来回切换到我的朋友 Jason Lengstorf 的网站 Copter Labs。 Jason 将负责后端内容,例如应用规划和数据库方面的内容。 在本周末,我们将向您发布实际可运行的应用。 以下是计划
文章系列
这很简单,对吧?
我们将要创建一个“列表应用”。 其理念重点在于简洁性和实用性。 注册一个帐户,只需几秒钟即可开始创建列表。听起来很简单,对吧? 即使是那些涉猎过 PHP 的人,也可能很快就能拼凑出这样的东西,对吧? 事实上,并非如此,这并不容易。
首先,它需要正常工作,并且需要良好地工作。 这意味着良好的后端代码能够按照预期执行并运行良好。 这意味着良好的 UI 必须直观、实用且易于使用。 这意味着要确保应用安全并保护用户数据隐私。 这些都不是微不足道的事情。
在本系列的整个 8 部分中,我们将创建一个希望能够很好地完成所有这些事情的应用。 我们并不是要告诉您这是有史以来最棒的应用,而是要将此应用用作应用创建过程的逐步指南,并希望在此过程中尽可能地做出明智的选择。
核心想法
这个“列表应用”将被称为 彩色列表。 列表(现实生活中的)可以用于任何目的:待办事项列表、购物清单、露营物品清单…… 当您完成某些事项时,您可以将其划掉。 列表中的事项也可能具有不同的相对重要性。 这使得纸质列表可能变得杂乱且效率低下。 使用计算机上的列表,我们可以通过单击来划掉项目,并且可以通过拖放来重新排列项目。 对于处理相对重要性,我们可以使用颜色,也可以用于分组等目的。 计算机和网络是列表的理想场所。
草图
无需立即变得花哨。 以下是对应用可能外观的非常基本的草图
对我来说,这看起来像一个列表。 每个列表项都是一个长方形,因为这里的主要想法是为每个列表项着色,因此将它们放在一个彩色框内是有意义的。 每个列表项的左侧和右侧都有一些交互式元素。 这些将用于实现我们希望人们能够使用其彩色列表执行的基本操作。 让我们仔细看看。
早期 UI 规划
在这一点上,我们不一定要讨论具体的技术,但我们应该考虑 UI 将如何操作,以便我们可以做出关于能够满足我们 UI 需求的技术的选择。
- 点击编辑
- 拖放
- 双击删除
- 自动保存(任何操作后)
所有这些基本上都加起来变成了大量的 AJAX。 我们不希望加载特殊的屏幕来执行诸如删除列表项之类的相对简单的任务。 这些操作应该以无缝、流畅的方式进行,并在鼠标点击后响应适当的反馈,而无需刷新页面。 从某种意义上说,我们正在创建一个单页面应用,此应用的大部分交互都发生在单个页面上。 这当然是有意为之,而不是试图遵循任何特定的潮流。 列表简单快捷,这就是它们实用的原因。 如果此应用过于复杂,其实用性就会降低,没有人会使用它。
屏幕
仅对迄今为止的想法进行一些快速的头脑风暴,我们就可以想出相当多的“屏幕”或应用可能处于的状态。
- 主页
- 未登录 = 简介/销售页面
- 已登录 = 您的列表
- 登录页面
- 设置页面
- 忘记密码页面
- 帐户激活页面
- 电子邮件
是的,即使电子邮件也应被视为“屏幕”的一部分,因为它们是应用流程和交互的重要组成部分。
“功能”
人们喜欢“功能”。 您的应用具有的其他应用没有的功能,或者您的应用做得更好的功能。 这既是为了营销,也是为了您的实际产品。 此应用将具有的所有花哨的 AJAX 当然是一个功能,但如今,这些功能越来越被期望,而不是一个功能。 我们将在此应用中重点关注的一个功能是“公开共享”。 每个列表都将拥有一个可以公开共享的唯一 URL。 访问此 URL 的访问者可以查看列表的当前精确状态,但不能进行编辑/添加/删除等交互。
继续
既然我们已经确定了要构建的目标,在下一部分中,我们将深入探讨从服务器端技术方面需要做些什么。
迫不及待地期待下一部分。非常感谢您提供这些内容以及您的整个网站。我从您那里学到了很多东西。
哇,系列的开端很棒,我相信它会非常精彩。迫不及待地期待第二部分!
听起来真的很棒!
我已经计划了一个应用程序有一段时间了。可能会让这个系列先播放完,然后再尝试。期待第三部分
听起来很有趣。绝对是与往常内容不同的东西。
这看起来很有趣。我打算尝试一下。
这将是一个很棒的一周! :)
是的。期待更多!
我确实意识到这不是重点,但是您不应该能够“勾选”列表项吗?
是的,当然,这将会被涵盖=)
不错。迫不及待地期待它。
非常感谢您……,Chris!来自俄罗斯的棕熊向您问好 :)
“如果你想从头开始创建一个网络应用程序,你必须先创造宇宙。”
摘自卡尔·萨根。
哇,谢谢!正是我需要的。我正在尝试构建自己的网络应用程序,但不确定如何完成所有步骤。:-)
好的教程。期待本系列的其余部分。
嗯,一个网络应用程序,我当然也期待它。因为我也喜欢PHP的东西
我从未听说过ennuidesign,顺便说一句,很棒的网站!
谢谢你的分享。我厌倦了看到“让我们构建一个网络应用程序”的教程,而你所做的只是构建一个该死的CMS。看起来你将要构建一些真正独特的东西
我们希望如此!周五,我们将把应用程序发布出来,供您实际使用和体验,因此它将以这种方式组合在一起。
不错的帖子!我期待接下来的部分
这看起来会是一个很棒的系列,谢谢!
谢谢你的分享!这个网站不断让我惊叹不已……这个例子就是证明。
完美的时机!随着Google Chrome OS仅基于网络应用程序的消息发布,我认为了解此级别应用程序的设计过程将会很有趣。
我非常希望像你我这样的设计师和开发者能够构建下一代操作系统应用程序 :)
迫不及待地期待本系列的下一部分!
期待第3部分!焦急地等待下一期。
看到构建应用程序所需的工作流程、想法和操作令人耳目一新……但是CSS-Tricks在这些方面从未失败过。始终提供信息丰富、启发创意且解释详尽的内容。
感谢那些提供此类信息的人,在本例中指的是Chris和Jason :-)
那将是伟大的……
好的教程……等待下一部分…… :)
非常感谢……
这篇文章简直太棒了。感谢分享。热切地期待您本系列的下一部分。
我需要/想要一个符合我需求并且可以在我自己的网站上运行的待办事项列表。这似乎是完美的解决方案。我将关注本系列,并与您一起学习和构建。
很棒的文章,因为我一直试图弄清楚如何处理一段时间以来的网络应用程序。
酷,我正好在寻找一个项目来提高我的CodeIgniter技能,所以我会尝试用CI跟随它。
这是一个由网络开发人员为网络开发人员撰写的很棒的文章系列!
太棒了!迫不及待地想要阅读第7部分和第8部分
好的教程!
期待阅读整个系列。只需要开始一些严肃的编码/设计工作。
我也会跟随并创建我自己的应用程序,希望如此!干得好!
好主意,期待本系列的其余部分。
一如既往,完美地将精彩的想法变成了现实。继续加油,Chris和朋友们 :)
好主意,Chris!期待阅读所有部分。
一个很棒的教程和演练……但是我的列表没有保存,我的公共URL似乎也不正确。是我太心急了(就像,它还没有准备好)还是哪里出了问题?
注销似乎也出现了一些问题。
似乎是IE在注销时出现了问题。
不错!
“它的实用性降低了”——“it’s”表示“it is”。尝试去掉那个撇号……
同样适用于“可以在其当前确切状态下查看列表”
很高兴理解核心程序员。
哇,这太棒了……
你能把它做成视频教程并出售吗……我们会支持的……你免费做了这么多,没什么损失的 :)
好吧,也许你确实有点时间损失 :D
关于如何规划一个 web 应用的非常棒且详细的系列文章。在应用开发过程中保持条理非常重要。
你好,Chris。我发布了一个开发 web 应用的技术清单作为指南。你也可以使用我列表中的一些条目,我在创建之前回顾了你的文章。清单。(注意:我订阅了此帖子的后续更新)
不错
你好,
我怎样才能获得这个 web 应用的源代码?
我按照整篇文章操作后遇到了一些错误。
谢谢,
Astro