在业务中从头开始编写软件

我是一名有十年经验的程序员。作为软件开发人员,我在这十年中曾在两家公司担任全职程序员。

我一直喜欢自己创业。 我的问题是,从头开始创建业务项目是否可以 从零写下每一段代码?

请记住,例如,如果有一些开源应用程序靠近我的项目,我更喜欢 得到消息来源,当客户进入我的公司时,我开始改变计划。 不要花几个月的时间而失去市场。

我见过我曾经工作过的公司,从头开始写一个项目是糟糕的营销 基于长时间的结果和巨大而且最终会失去所有客户的习惯和结束 详细的错误进来了。

0
@ st2000其中一个主要的东西是time.yes.And你会描述你在这里使用的SE和SW吗?
额外 作者 Anu,
额外 作者 Peter LeFanu Lumsdaine,
这是一个意见问题,对吗?大多数其他SE网站都不会这样做。但我不禁思索它。失去市场是什么意思?不能是时间的事情。我认为大多数商业软件都比运行它的机器旧。你的意思是“某人”最终会更便宜吗?那你总会遇到麻烦。我说这是你带来的东西。并且它(必须)不仅仅是SW,因为所有人都认为某些SW很糟糕(S.A.P.浮现在脑海中)。然后什么也不做。
额外 作者 Ella,
SE == stackexchange网站(有许多stackexchange 网站)。 SW == SoftWare。
额外 作者 Ella,

5 答案

从头开始创建业务项目并从零编写每段代码是否可以?

它是,如果这为客户增加价值。问题是这通常只是因为开发人员需要一种控制感。他们不喜欢被现有代码推开。他们不知道如何在没有接管的情况下使用现有代码。

有一个引人入胜的 TED谈论从头开始制作烤面包机。它巧妙地说明了自己做好每件事都需要做很多工作才能完成微小的事情。

问题是,如果这是客户想要的那就没关系。如果你能找到一个重视并付出代价的人,那很好。如果他们今天不关心并且只是想要它,那么这是一个糟糕的计划。

你可以做的是使用依赖倒置,docker容器和包管理器之类的隔离技术来隔离你从你使用的框架,工具和库中编写的代码,这样你的代码库中就会有一些既不知道也不关心的孤立位置关于他人创造的任何东西。这样做可以让你用新东西甚至自己的东西替换那些其他的东西,而不是需要重做所有东西,因为他们的废话的新版本出来了。

这样做可以为您提供所需的一切控制,而无需自己编写所有内容。如果这就是您所需要的,那么您就会被设置,因为一旦您学会了如何做到这一点,您仍然可以及时获得产品。

如果你真的想自己写一切,只是为了看你是否可以,那么也许你应该从非常小的目标工作开始。微控制器让你靠近金属。看看是否有人需要自定义硬件抽象层并且会为您付费。

5
额外

从头开始创建业务项目并编写每个项目都可以   从零开始的一段代码?

是的,如果这就是你想要做的。

它通常不是最实用的处理方式,您可能会发现使用第三方库或组件来处理不是产品核心部分的功能会很有帮助。但最终是你的项目/公司,所以做你认为最好的。你不需要任何人的批准。

2
额外

您希望进入市场的价值是多少?你能比竞争对手做得更好吗?

  • 如果它正在编写软件框架,那么不要将它们隐藏在单一市场的最终产品中,而是让您的业务从向市场提供该框架。

  • 如果它了解客户并快速提供满足其需求的解决方案,请重新使用适合您的任何产品。不要在编写框架上浪费时间。

  • 如果您的客户开箱即用的解决方案不适合,并且所有其他“盒子组合器”竞争对手都失败了,那么请同时执行两者,特定于使用的框架和结束 - 用户申请。如果你能说服他,顾客会耐心等待。

  • 如果您想要做的就是组合其他团队构建的可用框架,那么您将面临数千名竞争对手的艰难时期,他们会做同样的事情,但拥有更多的人力。

说了这么多,无论你选择哪种框架/库/组件,都要明智地做出决定。框架有一个精彩的白皮书这一事实并没有告诉您有关将其集成到项目中的工作量的任何信息。一些问题可以是:

  • 从头开始,我需要多少天才能实现我需要的部件?如果只是几天,请自行实施。
  • 框架始终会对使用它们的代码产生影响。使用该框架是否会提高应用软件的质量(可读性,稳健性,性能,可移植性,可测试性,易于调试......)?
  • 在开始使用框架之前,我需要花多少天才能理解框架?
  • 将框架集成到我的项目中需要多少天?
  • 框架是多么的错误?
  • 支持和文档有多好?
  • 该框架明年是否仍然存在?
  • 框架的新版本是否保持兼容性,或者开发人员是否经常进行重大更改?

是的,使用现有框架可以帮助你很多,忽略它们肯定是错误的,但不要认为“使用框架=好处”。

2
额外

业务项目是否可以从头开始并从零开始编写每段代码?

不,由于您已经确定的原因,这是一个糟糕的想法 - 您通过将您的产品或服务推向市场来赢得业务。这样做的方法是使用现有工具(无论它们是开源工具还是专有工具),它们是正确的选项,并在没有良好选择的地方构建位。否则,当您的竞争对手已经拥有您的潜在客户时,您将花费大量时间和精力为Spring,ASP.NET或其他任何东西构建一个错误的,功能较少的替代品。

将此视为极端情况,您是要编写自己的操作系统,自己的硬件驱动程序,自己的编译器等等吗?不,因为那会很愚蠢。因此,如果您从头开始编写所有内容,请不要担心重用其他人的应用程序级代码。

1
额外
你会解释Spring,ASP.NET的功能替换部分吗?我正处于这个部分,我正在从头开始在MVC中编写项目,我认为像Umbraco这样的开源C#CMS可以用非常少的bug处理我的工作
额外 作者 Anu,

如果你喜欢经常吃东西,可以考虑一下这样一个比喻:一家没有产品可以在很长一段时间内销售的公司会发生什么。

为了节省时间,请考虑使用开源软件,通过改进社区来支持社区,从而使开源社区受益,然后围绕它编写专有shell,将其作为增值产品销售。

The recently purchased by Microsoft github.com & the BitBucket offering by Atlassian come to mind as examples of this approach.

1
额外