有人请用适当的标签重新标记
您好,
这是我的故事,但我想这对所有程序员都适用。
我们开始使用一些简单的Hello World程序进行编程。我们练习&将函数/类添加到程序中。但他们仍然保持着Hello World风格。函数调用其他函数标准库。
但是当谈到现实世界的项目时(我只熟悉OpenSource)。更多其他事情进入了画面。然后开始这个新手程序员的艰辛。
项目流程:
- 程序未按预期运行。使用调试器
- 利用third party libraries。今天,我们有 每种流行语言的图书馆 几乎我们需要的一切。
- 在同一个项目上工作的多个人。使用Version Control Systems。
- 项目正在发展壮大。 Build Automation
- 很多人开始使用您的应用程序。你需要将它移植到 不同的平台(运营 系统/结构)。需要 交叉编译
- 我不知道为什么,但我们需要单元测试框架和/或单元测试
- 还有什么???
醇>这个问题是这个新手程序员对这些东西的存在缺乏了解。
我的意思是当我开始研究一些现实世界的项目(Opensource)时。我不知道这是什么?为什么我们需要这样做?
$./configure
$make
$make install
最近我意识到关键字“Build Automation”。我需要一些可用于linux的库,但我需要在windows中使用它。我不知道它的名为“交叉编译”和MinGW / MSYS等工具是否存在。我必须以艰难的方式学习这些东西。我希望有人告诉我这些事情的存在。这样可以节省我很多时间。
今天我遇到了性能问题,感觉需要什么。我想我正在寻找的是 Profiler。感谢我参与开源项目。虽然我没有意识到/觉得有必要,但我知道术语单元测试。
虽然这种(硬)学习方式有一些像现在这样的大优点,但我能够很快找到解决方案或一些未知的东西。与其他朋友不同,我不会在任何时候受到打击。但我讨厌浪费时间。你不相信我浪费了多少时间来弄清Makefiles
& Gnu Build System
那么,我在这篇文章中寻找的是什么?
Project Flow
。我想知道所有事情都涉及到了什么。Project Flow
列表中的每个任务。我想看到以下信息。
示例:
利用图书馆:
资源(现在,一旦我知道上述信息。我可以自己搜索资源)
注意:
请注意,我不是要求建议如何学习这些内容的信息。我在问这些事情还涉及到什么,以及每种事情的替代方案。
答案 0 :(得分:0)
您的问题似乎过于宽泛,但在评论中您要求提供不同方法的示例。这至少可以让你找到一些其他指针并做出自己的决定。
这些以及更多是软件开发方法,包括不同的原则,过程和角色。其中大多数还带有一些用于不同目的的实践,例如:你在问题中提到的那些。这些在现实世界中被广泛使用,尽管许多公司使用不同的组合以及一些自己的过程和方法。什么不是广泛使用的东西的一部分,但可能会给你一些有趣的发展观是正式的方法,这是精确的,但大多数时候太不实用。