做软件开发有哪些开发工具_软件开发? 我们做错了。

做软件开发有哪些开发工具

“You are wasting an outlandish amount of money writing code that already exists”

“您浪费的钱已经不合时宜了”

Joel Spolsky, Fogcreek, StackOverflow

Joel Spolsky,Fogcreek,StackOverflow

In software development, we like to throw acronyms around, such as DRY, KISS and OAOO, which stand for supposedly better practices that lead to a more effective development process. But is the process used to develop software today really efficient/p>

在软件开发中,我们喜欢使用首字母缩写词,例如DRY,KISS和OAOO,它们代表可以实现更好的开发过程的更好实践。 但是,如今用于开发软件的过程真的有效吗

Code reuse is largely accepted as “best practice” in our industry. Code reuse has many advantages, such as a smaller code-base which is easier to grok for developers. It’s easier to maintain and optimize, since you can make less changes in order to achieve the desired results. Many modern techniques and tools were created in order to better reuse and modularize code.

代码重用在我们行业中被广泛认为是“最佳实践”。 代码重用具有许多优点,例如较小的代码库,对于开发人员来说更容易理解。 维护和优化更容易,因为您可以进行更少的更改以达到所需的结果。 为了更好地重用和模块化代码,创建了许多现代技术和工具。

But while we’re reusing code, we’re duplicating effort. The same code is being written over and over in different places, wasting time and money.

但是,在重复使用代码的同时,我们也在重复工作。 在不同的地方一遍又一遍地编写相同的代码,浪费了时间和金钱。

As much as we’d like to think it, our industry is not yet mature.

尽我们所想,我们的行业尚未成熟。

定制开发应该是万不得已的方法 (Custom development should be the last resort)

When you look at more mature industries, such as the auto industry, no-one makes their own screws, or their own wheels, pipes and so forth – they buy off-the-shelf components, which are mass manufactured by companies that know how to make those products best. This leads to both better products – through years of field testing and experience – and to much lower costs.

当您查看更成熟的行业(例如汽车行业)时,没有人自己制造螺钉,或者自己制造轮毂,管道等-他们购买的是现成的组件,这些组件是由知道如何进行生产的公司批量生产的使这些产品最好。 通过多年的现场测试和经验,这不仅带来了更好的产品,还降低了成本。

Do you think the auto industry would be profitable if they produced every (or any) component from scratch and by handSo how come we have this very process in the software industry, only we call it “custom development”/p>

您认为如果汽车行业从头开始并手工生产每一个(或任何一个)零部件,汽车行业是否将从中获利那么,在软件行业中我们如何拥有这个过程,仅我们称之为“定制开发”呢

As software developers, we pride ourselves on our skills. We want to develop stuff from scratch, because that is often the interesting part. But – every piece of code that solves a problem that had already been solved, is wasted effort.

作为软件开发人员,我们以自己的技能而自豪。 我们想从头开始开发东西,因为这通常是有趣的部分。 但是–解决了已经解决的问题的每段代码都是浪费精力。

For our industry to become mature and take the next step in both innovation and cost effectiveness, we need to rethink some of the processes we use today.

为了使我们的行业变得成熟并在创新和成本效益上迈出新一步,我们需要重新考虑我们今天使用的某些流程。

The future of the industry is component based development

行业的未来是基于组件的发展

输入开源 (Enter open-source)

Open-source is one of the greatest innovations our industry has experienced in the short time it’s been around. Open-source offers standard source-code solutions for many common problems, and has revolutionized the industry with products such as Linux, MySQL, Apache and others.

开源是我们行业在短时间内就经历的最伟大的创新之一。 开源提供了针对许多常见问题的标准源代码解决方案,并通过Linux,MySQL,Apache等产品革新了该行业。

Free, open-source libraries and frameworks exist for almost every major programming language and platform. The amount of code that is available is huge and benefits the software on many levels: aside from significantly reducing the time needed to build many products, developers are basically sharing their experience and knowledge through the availability of their code. Becoming a programmer today has become much easier in many ways because of open-source.

几乎每种主要的编程语言和平台都存在免费的开源库和框架。 可用的代码量巨大,并且在许多层面上都使软件受益:除了可以大大减少构建许多产品所需的时间之外,开发人员基本上还通过代码的可用性来分享他们的经验和知识。 由于开源,今天成为一名程序员在许多方面变得更加容易。

开源软件与商业软件之间仍然存在巨大鸿沟 (Still a huge divide between open-source and commercial software)

So why isn’t every common need met by an available open-source solution/p>

那么,为什么没有一个可用的开源解决方案满足所有常见需求

There are a few reasons for that:

有以下几个原因:

  • Most open-source projects are created on developers’ free time and good will – developers who have day jobs or work freelance to make a living. Unless they catch major traction, they remain side-projects that are often abandoned gradually until they are not supported in practice. Only 7% of open-source projects are actively maintained.

    大多数开源项目都是在开发人员的空闲时间和善意的基础上创建的–有临时工作或自由职业谋生的开发人员。 除非它们获得了很大的吸引力,否则它们仍然是经常被逐渐放弃的附带项目,直到在实践中没有得到支持为止。 积极维护的开源项目只有7%

  • Anyone can publish an open-source project – there is no quality assurance or guarantee that it’ll meet certain standards. Many amateur developers get started by publishing open-source projects before they can produce a solution that could become an industry standard. 任何人都可以发布一个开源项目-没有质量保证或保证它将符合某些标准。 许多业余开发人员在发布可以成为行业标准的解决方案之前就开始发布开源项目。
  • Discovery is a problem – due to the long tail of abandoned projects and varying quality, unless the project is visible and well known, many developers will prefer to develop a solution themselves. 发现是一个问题–由于遗弃项目的长尾和质量参差不齐,除非该项目可见并广为人知,否则许多开发人员将更愿意自己开发解决方案。
  • As widespread as it is, open-source still covers a relatively small proportion of common needs in software development. There are so many more needs than solutions that custom development is often the only option. 尽管很普遍,但是开源仍然只占软件开发中相对较少的普通需求。 需求比解决方案要多得多,因此定制开发通常是唯一的选择。

If all the code written for commercial products was repackaged and released as small open-source projects, then we would have already a solution for most common needs.

如果将为商业产品编写的所有代码重新打包并作为小型开源项目发布,那么我们将已经可以满足大多数常见需求。

That is unlikely to happen though – the sharing incentive just isn’t strong enough for most people. It’s similar to the participation in generated content sites such as wikipedia – only 1% of the audience is actively creating while the others merely consume.

不过,这不太可能发生- 共享激励措施对于大多数人来说还不够强大。 这类似于参与生成的内容网站(如Wikipedia)的参与–只有1%的受众群体是积极创建的,而其他受众群体只是在消费。

演进的模型–商业开源 (An evolved model – Commercial open-source)

So where do we see the industry going in order to break through and become more standardized and streamlinedThe answer, in my opinion, is provided by products such as MySQL, RedHat and Magento, which use a business model we like to call commercial open-source.

那么,我们如何看待行业以突破并变得更加标准化和简化我认为答案是由MySQL,RedHat和Magento之类的产品提供的,它们使用我们喜欢称之为商业开源的业务模型。

Those products successfully built a commercial model around open-source, by either dual-licensing (free version + premium version), offering paid support and updates, or variations thereof.

这些产品通过双重许可(免费版本+高级版本),提供付费支持和更新或其变体,成功地围绕开源构建了商业模型。

I believe that building a viable business case around the release of source-code projects is the only repeatable and sustainable model for most open-source projects, and this is the direction in which the industry will move in the next couple of years. As releasing code become a viable business, several positive things will happen:

我相信,围绕源代码项目的发布构建可行的业务案例是大多数开源项目唯一可重复且可持续的模型,这就是该行业在未来几年内将朝着的方向发展。 随着发布代码成为可行的业务,将发生一些积极的事情:

  • Open-source projects will be much more actively maintained. If you can support yourself by supporting your own personal projects instead of doing contract client work or working as a hired man in a company, I think it’s a no-brainer. 开源项目将得到更积极的维护。 如果您可以通过支持自己的个人项目来支持自己,而不是从事合同客户工作或在公司中担任受雇的人,那么我认为这很容易。
  • Much more code will be released into the market. This is a very important point – in my opinion, the amount of available, ready-to-use solutions will grow by a factor of 10. So, while individual solutions will cost more than free, the overall cost reduction to software projects – compared to the cost that would be spent custom-developing those solutions – would be enormous.

    更多的代码将被投放市场。 这是非常重要的一点–我认为,可用的即用型解决方案的数量将增长10倍。因此,尽管单个解决方案的成本超过免费 ,但与软件项目相比,总体成本降低了定制开发这些解决方案所花费的成本将是巨大的。

  • Once you turn the maintenance of open-source into a business, expectations also rise. I expect increased overall quality as well as curation services that help determine which projects have a quality code-base as a reference for developers. 一旦将开放源代码维护转变为业务,期望值也会上升。 我希望整体质量得到提高,并提供策展服务,以帮助确定哪些项目具有高质量的代码库,以供开发人员参考。

无论您是否喜欢,进化都在发生 (An evolution is occurring, whether you like it or not)

I have witnessed what I’ve written about here many times over years as a software developer and the founder of a development firm.

我见证了我多年来作为软件开发人员和一家开发公司的创始人撰写的文章。

It is what I learned that spurred me to co-found Binpress, a discovery service and marketplace for source-code. I believe this is how relevant source-code solutions will be found in the future.

从中学到的知识,促使我共同创立了Binpress ,这是一个发现服务和源代码市场。 我相信这是将来会找到相关源代码解决方案的方式。

By curating the code and adding a supporting commercial layer around it, we are trying to evangelize this approach and help make it a reality.

通过编写代码并在代码周围添加支持的商业层,我们正在尝试推广这种方法并帮助使其成为现实。

I realize that there is a strong ideological resistance to this kind of movement. Open-source was originally created according to an ideal – which I can only marvel at and applaud, having been so successful in an ecosystem that is mostly motivated by a capitalistic approach.

我意识到对这种运动有强烈的意识形态抵制。 开源最初是根据一种理想而创建的,在一个主要受资本主义方法推动的生态系统中取得了如此巨大的成功,我对此赞叹不已。

I do think, though, that as an ideal, we’ve seen the best that open-source can do. The acknowledged successes will be very hard to replicate.

不过,我确实认为,作为一种理想,我们已经看到了开源可以做到的最好的事情。 公认的成功将很难复制。

What we have currently is increasing noise, as more and more people have easier access to start programming and publishing their projects. We need to streamline the process and add that missing financial element that makes it sustainable and repeatable.

当前,随着越来越多的人更容易地开始编程和发布他们的项目,我们所面临的噪音越来越大。 我们需要简化流程,并添加缺失的财务要素以使其可持续和可重复。

I’m sure you have your own opinion to offer on this subject, and would love to discuss it in the comments.

我确定您对此主题有自己的见解,并希望在评论中进行讨论。

翻译自: https://www.sitepoint.com/software-development-doing-it-wrong/

做软件开发有哪些开发工具

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92714 人正在系统学习中 相关资源:天猫店铺设计数据分析谋库助手v1.2.12.8-统计分析代码类资源-CSDN…

来源:culi3118

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年7月9日
下一篇 2020年7月9日

相关推荐