应用背后:filezilla的故事

在我第一次安装新电脑时经常下载的应用程序中有FileZilla,一个简陋的开源FTP客户端。对于我们这些谁经营自己的小网站,这是一个长期的主要网站管理员的工具箱。...
Illustration for article titled Behind the App: The Story of FileZilla

在我第一次安装新电脑时经常下载的应用程序中有FileZilla,一个简陋的开源FTP客户端。对于我们这些谁经营自己的小网站,这是一个长期的主要网站管理员的工具箱。

尽管如此纯粹的功能,我还是忍不住怀旧时使用FileZilla。它让我想起了我还是个孩子的时候,我试着编写HTML代码,这样我就可以在自己的网站上发布很酷的图片和gif了。一旦代码稳定,就可以启动FTP软件并上传到服务器,这是发布的最后一步。如今,大多数网站都可以完全在一个web浏览器中设计和维护,但我仍然手头有FileZilla来修补我自己的项目。

FileZilla是怎么来的?实际上是学校的项目。我们与开发人员timkosse讨论了15年前他创建FileZilla的方式和原因。

所以filezilla实际上是作为一个学校项目开始的,对吗?你是想解决你在现有软件中遇到的问题,还是灵感来自其他地方?

是的,差不多15年前,我在学校的最后一年,在计算机科学课程中,它是作为一个小组项目开始的。我们正在寻找一些既不太琐碎也不太大的东西来实现,并且可以并行工作。可悲的是,我已经不记得我们最终如何解决一个FTP客户端的细节了。

你提出这个想法后,下一步是什么?

弄清楚如何实现每个FTP客户机需要的最基本的一组功能:连接到服务器,获取目录列表,当然还有上传和下载文件。

通过GUI设计,我们确实模仿了我们所知的其他图形FTP客户机的基本布局。对于支持的功能,我们使用了一些第三方FTP类。

项目正式结束后,我继续工作,部分原因是我自己可以使用一个好的FTP客户机。渐渐地,我添加了一些特性,并修复了出现的bug。在某种程度上,我还开始使用FileZilla服务器来补充客户机。

你是如何选择目标平台和忽略或等待的平台的?

最初FileZilla仅适用于Windows,它是我们启动项目时唯一有足够经验的平台。然而,在某个时候,我想扩展到其他平台,特别是Linux。不幸的是,由于最初选择使用微软的MFC作为GUI库,支持其他平台将意味着完全重写。

2004年初,我终于决定从头开始重写FileZilla,因为旧的代码库已经变得越来越难以维护,添加新的特性很有可能会破坏它。

经过一番研究,我最终确定了wxWidgets库,并于2014年3月开始重写,最终在三年半后发布了FileZilla 3.0.0版本。我不仅严重低估了跨平台开发的复杂性,在这段时间里,我还必须维护旧版本,直到达到功能对等。此外,我在这段时间里不断改进FileZilla服务器。尽管如此,重写还是取得了成功。

你最大的障碍是什么?你是如何克服的?

它更像是一个无休止的收集不必要的减速,阻碍了我最。

FTP是一个相当古老的协议,有很多历史和遗留功能。FTP的部分被详细地指定,而其他部分则没有指定。在FTP中,实现同一件事的手段往往不尽相同,不同的FTP软件支持和使用的功能也不尽相同。

此外,FTP使用单独的连接来控制命令和数据传输,这使得在防火墙和NAT路由器后面很难使用,这本身就是一个额外的挑战。

这会导致一些有趣的问题:例如,服务器可能无**确实现某个功能,或者服务器前面的防火墙可能会阻塞某些命令。此外,FileZilla可能是唯一使用此命令的客户机。因此,FileZilla不能用于与这样的服务器交换文件。

几乎每次我使用额外的FTP特性或更改FileZilla的操作方式时,都会发生类似的情况。在这些情况下,我花费了大量的时间和精力来确定问题的根本原因。当这种情况发生在其他开源FTP软件中时,我通常会编写一个补丁来修复这个问题。

不幸的是,这种情况经常发生在专有服务器、防火墙和NAT路由器上,我自己也无能为力,所以各个供应商必须解决这个问题。正是在这一点上,我最大的障碍在于:如何说服他人问题出在第三方组件上,特别是考虑到它与其他FTP客户机或FileZilla的早期版本一起工作的未知反驳?

虽然我可以在这种情况下实现变通方法,但它们通常会带来高昂的成本和许多额外的复杂性。此外,根本问题仍然没有得到解决。

因此,我做了一个重要的决定:如果它会损害安全性或性能,我将不实施任何变通方法。虽然FileZilla不需要服务器来支持可选功能,但是如果服务器说它支持特定的功能,那么FileZilla反过来希望服务器能够正确地处理它。

当然,有时这对受影响的用户来说是最不方便的,尤其是当服务器或防火墙供应商不承认或不想解决问题时。不过,我坚信解决问题的根本原因是正确的。

人们在选择ftp软件时有很多选择;在设计filezilla时,哪些特性对您很重要?

在决定在FileZilla中实现一个新特性之前,我先看看图形FTP客户机是否是执行正确任务的正确工具。实现一个更适合其他类型程序的特性没有什么价值。其中一个例子是自动化和脚本传输,我认为这更适合于简单的命令行客户机。

在决定实现一个新特性之后,在FileZilla中有两个主要的设计考虑来指导新特性的实现。

首先是可靠性。每个特性都需要像在所有可能的使用场景中宣传的那样工作。此外,我还将安全性视为可靠性的一个方面:安全漏洞可以被视为比预期做的更多的软件。换言之,用户可以依赖FileZilla做它想要做的事情,不多不少。

第二个方面是性能和可伸缩性。当然,FileZilla应该尽可能快,没有人喜欢在一项任务上等待超过必要的时间。在实现一个特性时,我总是考虑如果有人把它用到极致会发生什么。例如,大多数用户可能只处理几千个文件,然而FileZilla被设计成处理包含数百万个文件的目录,这些文件的总容量为数TB。

在它超越了学术目的之后,“发射”对你来说是什么样的?我猜这是一个缓慢的雪球,随着时间的推移越来越多的人采用了这个软件。

是的,最初的版本非常安静。我在SourceForge上注册了一个新项目,设置了项目描述,上传了第一个版本,并宣布今天结束。

最终,第一批用户试用了FileZilla并发送了有价值的反馈。我不断改进FileZilla,而用户群也随着每个版本的发布而不断增长。我从来没想过会有这么大的成功,但它让我有动力继续这个项目。如果2001年有人告诉我,我将拥有数百万用户,我会说他疯了。

有趣的事实:2001年的早期版本仍然在现代windows10机器上运行。

有没有想过要把它卖掉或以某种方式赚钱?

我从来没有考虑过卖FileZilla是一个可行的选择。毕竟,由于FileZilla是免费的开源软件,重新分发不仅是允许的,而且是鼓励的。

不过,我正在参与SourceForge的DevShare合作计划以创造收入。我知道有些用户反对捆绑服务,所以我给了所有用户选择的自由,使用捆绑安装程序是完全可选的。

你如何有效地处理用户的请求和批评?

用户反馈可以大致分为三类:问题报告、功能请求和一般帮助请求。

问题报告我马上分类。如果它被证明是FileZilla中的一个bug,那么它很可能在下一个版本中被修复。

我发现保持一致的产品愿景是很重要的,所以特性请求的处理方式是不同的。许多特性将与产品愿景正交,实现它们将很快使FileZilla脱离关注。这已经过滤掉了许多特性请求。剩下的部分将被划分优先级并归档到特性请求跟踪器中,以便在某个时候实现它们。

至于一般的帮助请求,虽然我自己没有时间回答每个这样的请求,但是FileZilla论坛是用户相互帮助的好地方。

现在,您如何在开发新功能和管理现有功能之间分配时间?

我总是希望在每一个新版本中都能兼顾这两个方面。平均来说,我的开发时间的三分之二都花在了实现新特性上。

不过,最近我花了很多时间在架构改进、更新和清理大部分代码库上。虽然FileZilla看起来仍然和以前一样,但在引擎盖下发生了很多变化。这不仅大大提高了FileZilla的性能,还应该使将来实现新特性更加容易。

你会给其他想从事类似项目的人什么建议?

坚持并保持敏锐的产品视觉。尽早发布并经常发布,以找出哪些重点领域需要改进或可以扩展。最后但并非最不重要的一点,用你自己创造的。


在应用程序背后,我们可以从内部了解到一些我们最喜爱的应用程序是如何从创意到发布(以及以后)的。有你想见的人吗?给安迪发邮件。

  • 发表于 2021-05-18 13:10
  • 阅读 ( 115 )
  • 分类:互联网

你可能感兴趣的文章

windows的5个最佳免费ftp客户端

... FileZilla仍然是Windows10最流行的免费FTP客户端之一。您还可以在macOS和Linux上找到FileZilla。 ...

  • 发布于 2021-03-25 21:12
  • 阅读 ( 249 )

如何在ubuntu上安装ftp服务器

...访问FTP服务器?您将需要一个FTP客户端,可以说最好的是FileZilla。这是一个开源解决方案,适用于Windows(以及服务器)、macOS,Linux有32位和64位版本。遗憾的是,Ubuntu或其他Linux发行版没有FileZilla FTP服务器。 ...

  • 发布于 2021-03-30 13:11
  • 阅读 ( 315 )

如何在windows上用filezilla托管ftp服务器

在本指南中,我们将使用名为FileZilla的免费程序,指导您完成在Windows计算机上设置文件夹作为FTP存储库的步骤。FTP可用于在计算机之间轻松传输大量文件;FTP存储库可映射到Internet上的多台计算机,以便其他人可以直接从Windows...

  • 发布于 2021-04-12 00:34
  • 阅读 ( 140 )

故事背后的真实故事是广告

Facebook今天在其主要的“蓝色大应用”中复制了Snapchat的故事,此前它在Instagram、Messenger、WhatsApp以及Facebook曾经想到过的所有其他产品中都进行了复制。Oculus VR的故事肯定是在某个地方的办公室里用白板写的。 这种趋...

  • 发布于 2021-05-10 12:05
  • 阅读 ( 111 )

应用背后:篱笆的故事

...前,你可能不会意识到你需要围栏。它是这样一个简单的应用程序,可以帮助你把你的桌面图标组织成不同的空间是的,隔离不同的类别来组织你的杂乱。Fences是由jeffbargmann开发的,他是一个终生的应用程序开发人员,高中时就...

  • 发布于 2021-05-19 05:30
  • 阅读 ( 85 )

应用背后:simplenote的故事

...助你。这就是为什么会有Simplenote,这是一款极简的笔记应用和网站,它优先考虑简洁但优雅的功能,而不是多余的功能。Simplenote最初是创造者的学习体验,Fred Cheng和Michael Johnston是Simperium(后来被Automatic收购)的联合创始人;...

  • 发布于 2021-05-19 06:35
  • 阅读 ( 147 )

应用背后:allcast的故事

...样你就可以在大屏幕上看视频了?多亏了像AllCast这样的应用程序,这一切都变得老掉牙了。近年来,随着Chromecast或Roku等低成本设备成为媒体柜中的常见看点,我们将媒体从一个设备传输到另一个设备的方便性迅速提高。AllCast...

  • 发布于 2021-05-19 08:55
  • 阅读 ( 174 )

应用背后:lastpass的故事

...营了一家云服务公司8年。我们知道,我们希望基于云的应用程序具有本地备份和本地加密的便利性,消除使用云的两个典型缺点:没有本地访问,以及云供应商能够访问您的数据。你是如何选择目标平台和忽略或等待的平台的...

  • 发布于 2021-05-20 14:21
  • 阅读 ( 149 )

应用背后:阿尔弗雷德的故事

...调,顺从的名字所暗示的,就像你的Mac的管家。它是一个应用程序启动程序、一个搜索实用程序和一个通用的生产力工具,让您可以自动执行工作流程的各个方面,而无需从键盘上抬起手指。这个应用程序是由安德鲁和维罗佩珀...

  • 发布于 2021-05-20 18:30
  • 阅读 ( 267 )

应用背后:第一天的故事

...最喜欢的工具之一就是第一天。第一天是一个可爱的日志应用程序,帮助您保持您的条目跟踪,同时也是一个强大的写作工具,这是一个愉快的使用。这款应用的背后是保罗·梅恩,他的公司布鲁姆(Bloom)的设计师和创始人,...

  • 发布于 2021-05-21 03:32
  • 阅读 ( 138 )
blu9351
blu9351

0 篇文章

相关推荐