WordPress 开发人员:从这里开始!
已发表: 2017-10-14欢迎来到我们的 WordPress 开发人员入门指南! 无论您是自由职业者还是媒体机构的一员。 在本文中,我们将介绍与 WordPress 开发相关的各种主题以及一些可用的资源和工具。
文本围绕创意产生和交付之间的不同阶段进行组织。 我们将讨论头脑风暴、原型设计、开发,最后讨论部署。 所有这些,都在产品开发的范围内。 我们相信,在一个想法的最初构思和最终执行之间,存在许多微妙的领域。 在当前的 WordPress 文献中,一些充其量没有被讨论,而另一些则在最坏的情况下完全没有被探索过。
如果您是 Pressidium 客户,您可以立即开始使用我们围绕我们的平台构建的工具,从而享受高度集成带来的好处。 我们还将讨论这些工具。 请记住,这是一个实时文档,应该这样对待。
首先,我们的目标是让本文档对您作为 WordPress 开发人员的实践有用,其次,向您展示我们专为您构建的一些很酷的东西。
从构思到部署
无论您是开发新产品还是承担了一些客户工作,从构思到部署的过程都包含 4 个阶段。 尽管这些阶段是离散的,但它们显着重叠并且不是线性的。 我们将在正文中进一步讨论:
- 头脑风暴和需求启发。
- 原型制作。
- 发展。
- 部署。
当您想开始构建产品或项目并且需要想法时,可以使用自由联想头脑风暴的过程。 但是,当您的任务是为客户构建项目或在头脑风暴会议后得出一个想法时,就会发生需求收集。 您仍然可以在之后设置头脑风暴会议以解决特定问题,但这些会议将受到更多限制。
头脑风暴的基本原则有两个。 追求数量,推迟判断。 我们过去写过关于如何促进这样的会议、如何建立正确的心态以及一些时髦的工具来帮助你。
引出要求
有几种方法可用于引出需求,传统上这一直是业务分析师的工作。 尽管提供有关项目要求的信息是客户的责任,但需要为所有利益相关者建立共同的理解。 需求获取是与需求收集不同的过程。 更多的是通过积极参与来提供必要的信息。 它不是被动地将客户告诉您的内容收集到文档中并将其传递给开发团队。
根据项目的范围和性质,用例是捕获功能的好方法。 用例是一种用于 UML 图中的技术,用于描述系统利益相关者与系统本身之间的交互。 由于它们是用简单但结构化的英语编写的场景集合,因此它们不仅不那么复杂,而且是开始讨论和勾画系统功能的一种快速有效的方式。
如果您想捕获复杂产品的需求,您可能需要与所有利益相关者进行结构化访谈。 为此,用户故事是一个完美的方式。 它们是敏捷思维的一部分,是一种开始讨论需求的非正式方式,以建立共同的理解。 功能的简短描述写在纸卡上,通常是便利贴,并在白板上随机排列,以创建用户旅程的叙述。 通过参与、讨论和操作白板上的卡片,现场生成用户故事。 细节慢慢充实,最后作为功能添加到产品积压中。 Jeff Patton 写了一本关于用户故事映射的优秀书籍,如果你想了解更多关于这个主题并开始在你的项目中使用它,我们强烈推荐这本书。
用户故事不是一成不变的东西,一旦创建就会永远被遗忘。 相反,它们是一个动态地图,开发和产品团队可以一次又一次地返回到它,随着原型阶段的到来,产品开始成形。
原型的重要性在于回答问题。 尽管有几种原型方法,但我们相信进化的方法最适合我们的目的,并且可以适应现代敏捷软件开发管道。 在进化原型方法中,这个过程是循环的,原型在每个循环中逐渐变得更加精细。
每个原型迭代都从设计阶段进入开发和评估阶段。 它提出了早期的设计问题,并提供了一些切实的东西,人们可以指出并讨论可以改进的地方。 从评估阶段收集的洞察力将用于下一次原型迭代,并且循环再次重复。 因此,原型慢慢演变为最终系统,直到它作为成品成熟。
原型设计通常以快速的开发速度进行,使用像 Bedrock、Sage 和 Bootstrap 等样板系统可以大大缩短开发时间。 像上面提到的系统提供了完整的应用程序框架和必要的工具链,因此您不需要每次都从头开始。 进化原型与一次性原型不同。 后者是仅作为概念证明构建一次然后丢弃的原型。 如果您花费大量时间构建电子商务原型,为什么不抽象出常用功能并在将来再次使用它们,而不是扔掉所有东西并从零开始呢?
这就是 Pressidium 克隆派上用场的地方。 它允许您一键快速克隆网站,并开始开发。 这样,您可以使用样板文件准备多个模板网站,使用必要的插件、主题和配置预加载它们,并在项目中每次需要它们时克隆它们。 您还可以以相同的方式将它们克隆到不同的 Pressidium 帐户,例如,克隆到您客户的帐户。 如果您的原型位于不同的托管 WordPress 托管服务提供商上,请不要担心。 只需使用我们的迁移向导工具并将它们导入您的 Pressidium 帐户!
无论您是自己开发 WordPress 项目还是与其他 WordPress 开发人员和设计师合作,从长远来看有助于您的工艺可持续性的两个最重要的点如下:
- 养成良好的软件习惯。
- 并且知道一切是什么,它在哪里,以及它为什么在那里。
最佳实践从始终如一地遵循软件风格指南到练习编写干净的代码而不是聪明的代码,一直到高级软件和 UI 设计选择。 第二点是简单的文档,以及它可以在项目中采用的多种形式。
遵循软件风格指南,很简单。 研究有关此事的官方 WordPress.org 资源,然后决定哪些指南对您有意义,以便将它们包含在您的编码风格中。 改变习惯是一个缓慢的过程,你应该首先做一些小的改变。 最终拥有一套代码需要遵守的准则,意味着在某个时候引入代码审查。
代码审查是一种阅读和检查代码的系统方法,旨在消除错误,阐明代码中的深奥部分,并确保代码符合标准和约定。 最好由团队中的其他人而不是您来完成。
喜欢干净代码而不是聪明代码是软件开发的“智慧之珠”,不幸的是,只有落入聪明代码的陷阱后才能欣赏它。 要点是:虽然在某些情况下,聪明的代码可以为你赢得“黑客”积分和称赞,在某些情况下甚至可以提高性能,但从长远来看,你最终会失败。 “hackish”且难以阅读的代码在未来将变得难以理解。 当您需要解决一个特别难以捉摸的错误时,它可能会花费您。 在编写优化代码和干净代码之间找到平衡是您需要自己发现的事情,但在事情的干净方面犯错总是更好。
此外,由于 WordPress 网站的性能在很大程度上取决于浏览器缓存的正确使用,因此了解您的托管 WordPress 托管服务提供商如何使用缓存非常重要。 然后,您的代码将与您的托管平台协同工作,从而获得最佳性能。 但是,请记住,以正确的方式衡量您网站的速度并不像人们想象的那么容易,并且它包含几个陷阱!
因此,谈到高级别的最佳实践,导致 WordPress 解耦其核心功能并提供 REST API 的决定当然可以被视为此类实践的一个示例。 这一决定标志着迈向新时代、向程序化内容管理系统和“无头”WordPress 应用程序开发迈进。
我们已经编写了 WordPress REST API 的简洁介绍和教程,以及使用 Postman 等浏览器插件开始修改它的简单方法。
这个软件设计决策看似简单但功能强大。 WordPress 开发人员现在可以使用 WordPress 实现远远超过网站或博客的应用程序和功能。 一个特别恰当的例子是我们的看板原型。
我们使用 WordPress 实体(例如类别和帖子)来建模具有任务、列和价值流的看板。 我们草拟了一个看板列和卡片 API,将所有内容联系在一起。
文档
有人会争辩说,最佳软件实践有助于编写更好的文档,从简单的代码注释到项目可交付成果,再到产品副本。
无论您如何看待它,文档都是一种资产。
在技术文档方面,书面语言与您日常交流或工作中使用的语言截然不同。 这种写作形式称为技术写作,它不仅用于计算机或软件工程。 事实上,它用于所有需要向专业受众传达技术概念的行业,例如法律、医学、航空等。 这是一门大学科,甚至有一些大学提供技术写作认证。 其存在的理由是使用清晰简洁的语言传达技术信息。 主动语态优于被动语态,后者用于需要描述性文本来解释概念的情况。
技术作家需要牢记读者是在搜索特定信息时经常感到沮丧的人。 因此,您的写作不需要妨碍您。 它的目标是让这个过程变得简单、直接,甚至令人愉快!
尽管您不需要拥有学位或成为专业的技术作家,但知道如何以简洁明了的方式交流概念对于您作为 WordPress 开发人员的职业生涯非常重要。 因此,每当您需要为您已构建(并引以为豪!)的插件、主题或 API 编写文档时,您都需要掌握基础知识。 出于这个原因,我们编写了一份快速指南来记录您的 WordPress 插件和主题,其中还涵盖了技术写作的 5 个基本原则。
但文档并不止于此。 如果您的主题或插件是大型项目的一部分,或者它们本身足够复杂,则应该开始考虑产品文档。 除了文档是一种资产这一事实之外,产品文档本身也是一种营销资产。 MindTouch 营销副总裁 Mike PuterBaugh 在一篇关于产品文档重要性的 Mashable 文章中恰当地概括了这一点:
这不是一项性感的事业,但它会让你赢得同行的尊重、更有效的公司管理和更协作的团队。 因为这不是关于本季度或今年,而是关于影响竞争优势和长期增长。
在产品方面,除了最常见的书面文档形式外,还有更多,例如在线帮助、样式指南、微内容等。 产品文档通常由许多不同的人合作编写,这增加了额外的复杂性。 我们编写了一份详尽的指南,帮助您也开始以这种方式思考和计划。
最后,当我们进入流程的最后阶段,即部署时,我们放置了文档拼图的最后一块:部署图。 这些可以帮助您对一切是什么以及应该在哪里有一个清晰而全面的想法。
尽管大多数人在听到 UML 时会惊恐地尖叫着逃跑(这是可以理解的,UML 的完整规范非常糟糕),但 UML 包含可以为项目增加价值的符号工具的子集。 部署图是一种非常简单的符号,仅包含节点和通信路径,可以一目了然地向您展示项目中存在的不同环境以及每个组件需要部署的位置。
我们将在未来更深入地研究 UML,特别是另一个称为序列图的有用表示法,以及更详细的用例场景图示例,以充实项目需求并构建原型。
大多数(如果不是全部)现代开发和部署都使用某种形式的版本控制,例如 git 和 SVN。 源代码存储库不仅对团队来说是必不可少的,因为即使您是一个单独的 WordPress 开发人员,它们的好处也是广泛的。
如果您是 Pressidium 客户,您可以使用外部服务(例如 deploybot)通过 SFTP 将您的存储库与您的帐户集成。 或者,您可以使用 SFTP 将文件传输到您的帐户,因为这是最简单、最直接的方法。 您还可以创建多个 SFTP 用户并将他们分配给特定的网站和环境。 说到这一点,为您的网站提供一个登台环境,可以确保您的开发和部署过程更加简化,并且您的生产网站可以免受不必要的更改。 例如,为您的网站启用了登台,您可以从生产中提取副本,然后为您的开发人员创建一个只能在登台环境中访问的 SFTP 帐户。
建立一个通过多个环境的流线型开发管道是 DevOps 运动给 IT 环境带来的变化之一。 采用持续交付原则并以增量和频繁的方式推动软件更改,可以加快部署周期并减少错误。 您不再需要使用不同版本的应用程序维护 ZIP 存档。 这样,您很容易迷失方向,并部署可能会损害您的生产系统的错误更改集。 还有文件权限被破坏的危险,这充其量可能会导致您的应用程序无法正常运行,最坏的情况是引入安全问题。
结语
我们知道您作为 WordPress 开发人员的空闲时间非常有限。 这就是我们将所有内容合并到一个文档中的原因,因为信息过载是真实存在的,而且它似乎影响了所有知识工作者,而不仅仅是 WordPress 开发人员。 我们在开头提到,我们的目标首先是提供有用的信息,其次是解决我们认为在当前 WordPress 文献中代表性不足的主题。 成为 WordPress 开发人员是一回事,保持相关性和竞争力是另一回事。 要做到这一点,你需要对软件工程作为一门学科有一个全面的认识,并养成长期为你的职业生涯服务的良好习惯、方法和技术。