`

Flarum Story:我为什么开发 Flarum

阅读更多

我叫 Toby Zerner,是一个 22 岁的澳大利亚人。去年我完成了第三年的医学院本科学业。

今年,我有了学业以外的休息时间,来从事我的一个爱好:构建简洁的论坛软件

这个故事是关于我为什么要做这些,以及 Flarum 的未来。

论坛软件烂透了

在我的成长过程中,我的哥哥 Simon 教会了我编程(从某种意义上来说)。

Simon 非常聪明开朗。即使不谈技术层面,虽然当时我们都知道 PHP4 面条式代码,然而 Simon 却能领悟到别人领悟不到的事:简洁 Simplicity

论坛软件在当时非常的不简洁。即便是使用“设计”这个词形容这些论坛,都是奢侈的。他们真的算是很粗心的迭代的产物:为了满足一些需求,就要添加一个功能,但却带来了额外的复杂性。然而这个过程会重复上百次,软件就会复杂上百倍。你无法做一个简洁的论坛用户——你必须是一个超能用户,花费你宝贵的时间去适应——这简直就是场战斗——和这些凌乱的功能战斗,和这些不违和的界面战斗。

Simon 想退一步,以使论坛保持简洁。回归到最基本的对话。为什么我们就不能在网上与人简简单单的交谈吗? 所以我们就构建了 esoTalk

我们研究了所有论坛中关于讨论列表的层次结构,并交换了各自的意见。我们摆脱了识别标志,而是实现了一个强大的 gambit 搜索系统(一个简化版的 GitHub's search tokens)。我们使用短轮询,因此在论坛中所以人可以几乎实时对话。esoTalk 是有别于其他论坛的,人们对此很感兴趣。

esoTalk 视频:esoTalk: a simple fast free web-forum

<iframe style="font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;" src="https://player.vimeo.com/video/2867330" frameborder="0" width="100%" height="450"></iframe>

不幸的是,Simon 在 2009 年去世。世界失去了一位杰出的人。

这是一个悲伤的时刻,带着对他的回忆,我竭力地继续为完善 esoTalk 而工作。然而,我毕竟是一个年轻的开发人员,编写的代码不知不觉地重新发明了轮子。当我开始关注生活中的其他领域时,发现 esoTalk 已经逐渐变得陈旧。

但我没有停止思考。

构建更好的东西

尽管 esoTalk 已经停滞,可人们仍然喜欢使用它。甚至有些人愿意赞助它,希望它进一步发展。通过所有的错误、教训、迭代、和反馈……我开始坚信:人们期待好的论坛软件,也许我有能力设计出来。

为了锻炼我的想象力,我开始嘲笑“esoTalk 2.0”。一些审美的想法最终随着 esoTalk 的新版本发布了。但这些设计也仅仅是头脑风暴的一部分——而这些想法,最终导致了 Flarum 的概念版。

2013 年,在朋友 Stephen 的帮助下,我带着 Flarum 的想法参加了我们学校的创业者竞赛。首先我们开始构建一个原型,并设想一个商业模式。其次,一些现金,还有很多鼓励性的问题:我们可以做这个吗?

也许不是。原来,在现实世界中新的论坛软件是很难的。我们在 Kickstarter 的竞选活动 generated interest, but not traction。投资或孵化也许已经成为了一种选择,但是我既不想放弃学医,也不想放弃这个社区型项目的想法。

看来最好的办法是启动它。我还有一年的时间才能离开学校,并把它的构建过程开放。然后我可以市场化,构建一个小型的基于服务的业务。 开源第一,赚钱第二。

事实证明,你需要达到一定阶段后开源协作才变得可行。这比我希望的时间要长一点。但 8 个月后我们做到了: Flarum beta 发布了。我相信它实现了一个很强的愿景,而这个愿景,是从 Simon 和我一起发布 esoTalk 第一版时就一直梦想的,如今它实现了。Flarum 的目标是:

  • 快速、简单 没有混乱,没有膨胀,没有复杂的依赖关系。Flarum 使用 PHP 构建,因此它很容易部署。界面使用 Mithril,它是一个高性能 JavaScript 框架。

  • 漂亮、响应式 Flarum 由我们的设计师精心设计,它是跨平台的、开箱即用的。界面布局使用了 LESS,所以主题风格只是小事一桩。

  • 强大、可扩展 为了满足您的社区需求,您可以定制、扩展和集成 Flarum。Flarum 的架构非常灵活,它拥有非常全面的 API 和文档

  • 自由、开放 Flarum 基于 MIT license 发布。

让 Flarum 更稳定

没有任何庆功会,因为还有很多工作要做!

我从 esoTalk 学到了一件事:如果一个软件没有建立良好的基于扩展的生态系统,那么这个软件必将失败。我不打算 Flarum 犯同样的错误。我的计划是扩展市场,任何人都可以购买和出售扩展——配有简单的安装和更新。然而,只有 Flarum 发布了稳定版,这一切才会有可能。

与此同时,我真的不知道自己该做什么了,而 Flarum 无疑是这一事实的化身。我做了大量的开发,从 Franz Liedke 获得了一些帮助。getting it done的精神,导致我迄今为止都忽视了编写测试审计性能。 没有团队的反馈,我创造了一些低质量的代码和 API,而这些都需要修订。

如今我的重点变成了:Flarum 需要你们的帮助!

beta 版的目标是让开发人员可以从代码库中得到完整代码。现在,已经激发了很多潜在的贡献者,我们写了许多 GitHub issues 的详细描述。它们包含一些忠告,需要做什么和在哪里查看。看看有哪些是你想要做的!

特别是,我们想要一个关于扩展 API 的深入讨论。你可以阅读初版文档来学习扩展是如何工作的。这里有一个在GitHub 的问题反馈

如果你不是一名开发人员,可以考虑捐赠。所有捐款将用于支付服务器费用和支付专用的开发时间。(如果你有兴趣为开源项目做一些有偿工作:告诉我们你能做什么贡献!)

在接下来的几个月里,让我们慢慢地工作,以便 Flarum 顺利走向稳定版

鸣谢

在此次叙述中我谈到了很多关于自己的事。但是到目前为止我们取得的所有成就,不可能没有别人的帮助。

Franz Liedke 是 FluxBB 的开发者,在今年早些时候加入了我的团队。他分享我的激情,超过我的才华,并一直工作至今。谢谢你!

感谢那些热情地跟随我一起开发的人,特别是 BerloDominion 和 Stephen。你们让我有动力,通过你们的测试和反馈,Flarum 有了明显的改善。

Matthew McKinlay 是我在创业竞赛的导师,也已经成为了我的好朋友。他让我有了宝贵的建议并验证这些想法(Just Do It™)。 谢谢 Matt。

我的父母和兄弟姐妹 支持我追求我的梦想。为此我非常感激。我有一个相当 cool 的家庭。

最后,我的哥哥,Simon,他把种子种了下去,直到他生命的最后一天。Flarum 是献给你的,我希望我已经让你感到骄傲。

最后一段,我保留一下原文:

Finally, my brother, Simon, who planted the seed and watered it right up until his last day. Flarum is dedicated to you; I hope I have made you proud.

9
10
分享到:
评论
1 楼 justjavac 2015-10-20  
自己回复一下,原文链接 http://flarum.org/story/

相关推荐

    Story:我的杰作

    《Story:我的杰作》的开发涉及到了多种技术,包括编程语言(如C++、Python或Unity Script)、游戏引擎(如Unity或Unreal Engine)以及图形设计工具(如Photoshop、3DS Max或Blender)。游戏开发者利用这些工具构建...

    scrum 敏捷开发,story标准写法

    首先,标准用户故事的格式通常为“作为一个[角色],我想要[功能],以便于[达成目标]”。这种表述方式简洁明了,有助于团队成员理解故事背景及其对业务的价值。 接下来,用户故事的估算通常采用故事点(Story Points...

    The Algorithm Design Manual (2rd Edition)

    1.6 War Story: PsychicModeling 1.7 Exercises 2 Algorithm Analysis 2.1 The RAM Model of Computation 2.2 The Big Oh Notation 2.3 Growth Rates and Dominance Relations 2.4 Working with the Big Oh ...

    Story:测试

    "Story:测试"可能指的是敏捷开发方法中的一种用户故事,它专门关注于软件系统的测试方面。用户故事通常是从最终用户的角度描述对软件的需求,而这个"测试"用户故事可能意味着团队需要构建一个可靠的测试策略来验证...

    search-story:谷歌搜索的故事作家

    "search-story:谷歌搜索的故事作家"这个标题暗示了我们要探讨的是关于谷歌搜索背后的一些有趣故事以及可能涉及的技术原理。在这个项目中,我们可能会发现如何利用PHP语言来讲述这些故事。 PHP是一种广泛使用的开源...

    Story:我的故事

    《我的故事》是一款深受玩家喜爱的角色扮演...《我的故事》以其创新的游戏机制和深入人心的剧情,为玩家提供了一个可以尽情发挥想象力和创造力的舞台。通过深入体验,每个玩家都能在这个游戏中找到属于自己的独特故事。

    SeansLifeArchive_Images_Bakery-story:我的生活故事项目的模块,其中包含我的Bakery Story游戏图像

    我从2012年和2013年开始一直玩Bakery Story。从2016年YouTube内容创作者阶段(直到2018年),我休息了一会儿。 我在2020年再次回到了它,直到它在年底之前停滞不前。 维基 版本历史 不可用 贡献者 目前,我是唯一的...

    Laravel开发-story

    "Laravel开发-story 管弦台扩音器"这个标题暗示了我们将探讨一个与Laravel开发相关的项目,该项目可能是一个用于管理和优化Web应用程序性能的工具,或者是一个比喻,暗示Laravel框架如何提升开发效率,就像管弦台的...

    story:FinMango教育故事

    可以通过以下URL访问故事: https://finmango.github.io/story/&lt;story&gt;/ : https://finmango.github.io/story/&lt;story&gt;/ 。 例如,可以在以下位置找到有关货币周期课程的故事: : 。 要在lessons文件生成lesson....

    SeansLifeArchive_Images_Farm-Story:我的人生故事项目模块,其中包含我的农场故事游戏图像

    农场物语 经过: 和 最佳 README.md 指数 SeansLifeArchive_Images_Farm-Story 我的人生故事项目模块,其中包含我的农场故事游戏图像。...不允许为该项目做贡献,因为它是一个个人项目。 问题 当前的问题 目前没有

    百度地图开发java源码-MyStory:这是一个美丽的博客

    百度地图开发java源码 MyStory 项目介绍 个人博客开源项目 首页地址为: 后台管理: 软件架构 软件架构说明: 核心框架:SpringBoot2.0 安全框架:Apache Shiro 1.3.2 缓存框架:Redis 4.0 任务调度:quartz 2.3 ...

    UserStory:用户故事应用程序

    【用户故事应用程序】是一个基于Node.js的实时Web应用程序,它为用户提供了一个平台来创建和阅读故事。这个项目展示了JavaScript在构建交互式Web应用中的强大功能,特别是利用了Node.js的非阻塞I/O模型和事件驱动...

    敏捷测试中的User Story 详解

    在敏捷开发过程中,User Story 是一种重要的需求分析工具和方法,它们可以帮助开发团队快速地获取用户需求,编写可测试的 User Story,组织和优先级它们,进行计划、管理和测试。 Mike Cohn 的《User Stories ...

    Phoenix_Story:凤凰队的故事

    《凤凰_Story:凤凰队的故事》是一份关于“凤凰队”的综合资料,虽然标签部分为空,但我们可以从标题和描述中推测,这可能与一支名为“凤凰队”的组织或者团队有关,可能是体育队伍、游戏战队或者是虚构故事中的团体...

    user-story:发布故事。 获取功能

    用户故事介绍User Story的目标是设计和展示一个可扩展的后端基础设施,提供一个 Web 界面,允许用户以简单直观的方式请求新功能并提供反馈。 用户可以在他们的故事中附加文件来解释他们想要什么。 然后管理员可以...

    SeansLifeArchive_Images_City-Story:我的生活故事项目的模块,其中包含我的城市故事游戏图像

    城市故事经过:和最佳README.md指数 SeansLifeArchive_Images_City-Story我的生活故事项目的模块,其中包含我的城市故事游戏图像。关于看上面。该存储库托管所有每周的“城市故事”会话图片。我目前正在玩有一个适用...

Global site tag (gtag.js) - Google Analytics