从大的方面讲:
架构就是从无到有的如何把 “应用/系统/软件/项目/产品” 做出来的具体的方式。包括硬件服务器选择,软件/服务的安装使用,编程语言的选择,该语言框架的选择,具体编程技术的选择,具体到一个增删改查编写的规范及前端的用户体验编写规范。
具体点:比如实现商城项目,里面需要什么功能:商品展示(吸引用户点击商品的方式、商品基本信息、促销信息、会员信息)、购买流程、下单流程、物流、权益展示(券等)。要有一个完整的整体项目概念,不要专注于一个小系统的架构,太小了,要思考整个设计过程。
具体功能怎么实现,项目优化可以给产品提建议。
分层来说:
1.首先是逻辑架构,描述业务职责单元,例如包含哪些子系统,哪些模块,职责单元之间的依赖关系是怎样的;
2.再就是代码架构,采用何种架构模式(分层,网关),使用什么框架体系,代码组织方式等;
3.还有一个是存储架构,围绕持久化,缓存,消息通知等数据的存储方式,分区分片,同步机制等
注意:技术解决了业务什么问题?之前是怎样的,改后有什么提升?
一个典型的web项目的架构包含了他的:
硬件架构(比如 服务器集群,Load Balance ,网络配置 ,CDN方案);
软件架构 (比如 数据库是否做读写分离 ,数据库优化,nosql的使用,邮件发送方案,计划任务,消息管理,缓存);
业务逻辑架构(是否使用其他公司的服务API,或提供服务API给其他公司)
代码架构(什么语言php 还是java,什么框架 mvc,restful,前端框架,后端框架)
描述一个项目的架构就是解释给别人这个项目是怎样的,你是怎么做满足、解决了这个项目的各种需求和问题。