Tag: 软件架构师

软件工程师的角色-专业咨询的明确内容

在我担任软件工程师的整个过程中,尤其是在过去的一年中,我遇到了许多想法,概念,良好实践,设计模式,体系结构,思想流等等。 对于任何专业开发人员来说,自然都对如何制作更好的软件产生了兴趣。 经过大量的讨论,研究和更多的经验,直到最近才让我想到,所有这些都可以用几个简单的词来概括:“您必须明确”。 建筑 让我们从所有人一直以来最喜欢的架构开始。 在软件开发方面,软件体系结构显然是极其重要的主题。 在整个编程历史中,出现了许多旨在帮助您拥有最佳架构的原理和设计模式。 但是,无论您的信念或偏好是什么,它们都倾向于相同的目标: 明确 。 无论我们谈论的是Clean Architecture , VIPER , MVVM , MVC还是任何其他形式,它们的唯一目标是帮助您弄清自己在做什么和如何做。 在一些会议上,我从罗伯特·C·马丁(Robert C. Martin)(鲍勃叔叔)那里看到了他的例子,此刻一直困扰着我。 让我问你一件事,向你证明这一点。 你能告诉我下图是什么吗? “ 好吧,这不是很明显吗? 您可以告诉我,“ 这是大教堂的蓝图! ”。 我假设您不是我还是建筑建筑师或房地产专业人士,但是,我们所有人仍然能够马上说出那些是大教堂的建筑计划。 当我们看到它时,它尖叫起来就是为了建造一座大教堂。 那么,在软件体系结构方面,为什么要有所不同呢? 如果您的体系结构很棒,那么对任何打开您的项目的人来说,它应该立即变得显而易见。 哦! 这显然是银行帐户管理应用程序! ” “ 哦,很明显,这是一个在线书店应用程序! ”。 如前所述,无论您最喜欢的概念或设计模式是什么,在拥有良好的软件体系结构时,都可以用以下几句话来概括:“ 您必须明确 ”。 行为驱动的发展 BDD是一种软件开发过程,其灵感来自于测试驱动开发(TDD)和其他来自面向对象编程的设计概念。 在Dan Dan的带领下,这一过程在过去几年中越来越受欢迎,而我有机会在上一个项目中进行实践。 BDD的目标是通过一起指定业务需求来帮助项目的开发人员和业务人员进行协作,并编写测试以验证软件中的那些业务需求。 这样做有助于在项目的业务和技术方面都清楚应用程序应该做什么以及应用程序是否正常工作。 这可以用几句话来概括:“ 您必须明确 ”。 域驱动设计 DDD是由Eric Evans创建或至少明确定义的软件开发方法。 它的目的是将项目的重点放在领域及其逻辑上。 这样,它允许程序员,项目经理,利益相关者和项目中涉及的任何其他人共享使用普遍存在的语言讨论的领域的相同愿景,从而彼此理解。 […]