跳转到内容

如何编写程序/架构

来自 Wikibooks,开放世界中的开放书籍

编程:如何编写程序 返回目录

编程架构是一件令人惊奇的事情。一些架构形式极其复杂,需要多年的实践才能有效掌握。其他形式则不需要或只需要很少的开发经验,这使得此类别成为初学者的最佳选择。请注意,本次讨论的重点是通用开发理论,而不是特定语言或平台的技术。这些信息对于您作为开发人员的成功至关重要,但在深入研究特定语言(根据您的目标、需求和现有技能组合)之前,必须首先建立起作为程序员开发软件的心态基础。以下是一些关于通用编程的简单概念,请记住:


逻辑不仅仅是几何学,因为大多数人在学习几何学时发现了至今仍主导我们思维过程的古老概念。逻辑是一个有序的可定义的过程,它使用所有相关方都同意的预定规则得出结论。我将逻辑定义为开发的中心点。如果没有逻辑,以任何类型的计算机能够理解的方式创建所需的软件逻辑将仍然是一项不可能完成的任务。因此,逻辑奠定了人类和机器在同一平台上操作的基础。这是应用开发中最大的难题之一,因为软件错误通常源于逻辑方面的沟通不畅。例如,如果开发人员/程序员希望实现 X 功能,但错误地编写了逻辑,导致计算机将其解释为 Y 功能,则开发人员/程序员(我将继续交替使用这两个术语)必须重新评估其代码,以查看其思维过程(从逻辑上讲)与计算机对该过程的解释在哪里不一致。新开发人员最常遇到的难题之一是,以创造性的方式可视化软件功能比将其概念转换为构建个人所需功能所需的命令、请求和其他函数的有序序列更容易。我将在后面讨论创造力,但需要说明的是,编程是少数几个始终同时兼具艺术性和科学性的行业之一。因此,刚开始开发软件的程序员必须学会寻求不寻常的答案(创造力),同时牢牢地站在地面上(逻辑),才能将所需的功能变为现实。

创造力

[编辑 | 编辑源代码]

创造力是开发人员在编写新软件时可以提供的第二重要的资产。它是一个思维过程的系统,这些过程融合在一起,为解决独特的开发挑战提供了新的选择。任何真正称职的开发人员都必须学会打开自己的思维,以新的方式思考、表达和认识事物。事实上,原作者个人认为,缺乏创造力会阻碍每个没有学会克服“盒子”综合征力量的程序员的潜力。简单地说,程序员以在前辈或同事已经发现、映射和利用的领域内思考而闻名,从而导致了一个名为“盒子”的想象空间。开发人员在这个盒子里工作、关联意义并得出解决方案。一位有才华的开发人员的标志是他/她能够根据手头的独特编程挑战动态调整或重新配置他/她心中的“盒子”。打破盒子的界限是令人畏惧的,因为它需要一种开发人员自身可能不存在的视角。一位智者曾经说过,“当你停止学习时,你就停止了领导。”为了软件开发的目的,我谦卑地修改了这句话,并说:“当你停止学习时,你就停止了软件创新的流程。”在固定的盒子里取得成果可能会在一段时间内有效,如果盒子得到了充分开发,甚至可能持续数年。然而,编程行业的本质要求持续学习,以便在行业中保持优势。我之所以关注“盒子”的概念,是因为我相信,在创造力方面真正地传授知识是不可能的。你必须亲身经历,当你开始从许多不同的角度思考你的世界时。如果你选择作为ISV(独立软件供应商)或系统集成商为他人开发软件,则需要与你的软件将要服务的所有类型的用户进行访谈。深入了解他人的想法,并从软件功能的角度发现他们的需求和愿望,这是成为程序员最令人欣慰,但也往往最具挑战性的方面。拥抱不同的视角和不同的学习方法,为你的工作带来更多思维上的保障,从而增强你的创造力。

简单来说,抽象是指在开发周期中,你与目标底层硬件之间存在的层数。例如,为视频芯片组编写软件映射的 ASIC 开发人员与为 Web 应用程序编写脚本的开发人员所处的抽象级别截然不同。由于许多原因,这两个领域是分开的,但事实上,如果 Web 应用程序开发人员引用了部署了该芯片组的系统上的图形组件,他可能会间接利用芯片组编写者的代码库。始终记住,与直接位于所用硬件顶部的低级抽象相比,高级抽象意味着软件功能位于许多逻辑“管道”层之上。开发人员通常会选择最适合其当前技能和能力的抽象级别,但不要因为低级抽象的复杂编程而害怕尝试在该领域开发软件。找到一个起点的细分领域,并努力在最符合你的愿望和需求的领域达到所需的专业水平。

进一步阅读

[编辑 | 编辑源代码]

原作者(对未来的添加或改编不承担责任):

Chris Stewart
President
Convergix Solutions
Arlington, Texas
[1] Email
[2] Visit the Convergix website!
华夏公益教科书