网站架构师的工作内容(编程能力是要有的,然后别人才会信服你)
优采云 发布时间: 2022-01-01 00:04网站架构师的工作内容(编程能力是要有的,然后别人才会信服你)
推荐一本书:
这本书的介绍是这样写的:
一般来说,人们对软件架构师有两种错误的看法。有些人认为软件架构师是高级职位;有些人认为软件架构师根本不了解开发,而只是一个知道如何制定规则的指挥者。本书将打破这些传统认知,在过程中模糊软件开发与架构的界限,进而正视软件架构的名称。本书是一本重实践、重实践、轻量、面向开发者的软件架构指南。
然后说说我的看法。我在一个敏捷团队工作。我们的团队中没有专门的架构师角色,但每个人都是架构师。我只是一个技术负责人,一直负责架构的设计,但是负责报告的人是团队的成员——也就是我们给他们解释这个系统是怎么设计的,我们遇到坑就得填坑。因此:编程技能是必需的,并且比大多数团队成员更好。也就是说,先成为一名优秀的程序员,再成为一名架构师。先用你的能力说服群众,然后别人才能说服你。
在设计架构时,还必须考虑成员的能力和感受。如果您的成员无法完成您设计的结构,您如何继续?
在设计架构时,也需要估算时间。如果你不知道大多数人的水平,你怎么估计时间?
您需要知道的是,成为架构师比成为程序员更难! ! !
您需要知道的是,成为架构师比成为程序员更难! ! !
您需要知道的是,成为架构师比成为程序员更难! ! !
当你是程序员时,你只需要考虑这个功能是如何实现的,当你是程序员时,你还需要考虑如何部署,如何测试等等。 . .
推荐看看我之前写的文章文章《
/p/20619564
”,你会发现你要考虑的不止一点点。但是,每个人都应该是架构师。
如何搭建博客系统
如果您需要帮助某人建立博客,您首先会想到什么?
先问一个问题。如果你想建一个博客,你会想到什么技术方案?
静态博客(类似GitHub Page)动态博客(可以在线更新,比如WordPress) 半动态静态博客(可以动态更新,但依赖于后端构建系统)使用第三方博客
这只是基本的骨架。所以,如果只有这个需求,我们是无法统筹规划的。现在我们有更多的需求,我们需要一个独立的博客,所以我们可以删除第四个计划。但就目前的流程而言,我们还有三个选择。
接下来,我们需要看看Ta需要什么样的博客,他多久更新一次?以及他能接受的价格?
先说杰哥吧,价格方面,静态博客最便宜,可以用AWS S3或者国内云存储等等。成本方面,一个月只需要几块钱,又快又稳定,可以接受大流量。而动态博客的成本要高很多倍——我们需要保持这个服务器的开放,如果用户数量比较大,我们需要考虑使用缓存。如果用户数量增加,我们需要更多的服务器。对于半动态静态博客,需要一个Hook来检测文章的修改。这样的 Hook 可以是客户端。当发生修改时,运行服务器,然后生成一个静态网页。最后,将网页部署到静态服务器。
从操作难度来看,动态博客最简单,静态博客次之,半动态静态博客最难。
总体成本效益考虑如下:
现在,我们已经达成了一定的共识。现在,我们有几个选项供用户选择。目前,我们不了解进一步推进的必要性,只能等待以下结果。
客户需要能够看到文章的修改和变化,此时静态博客被移除。仍然有第一个和第三个选项可供选择。考虑到第三种方案实施难度较大,短期内实施并不容易。而第三种方案可以依赖于第一种方案,因此采用动态博客方案。
然而,问题的实现才刚刚开始。
我们使用什么样的技术?
作为一个团队,我们需要优先处理这个问题。使用什么样的技术方案?而这是一个比较复杂的问题,这取决于我们团队的技术构成,以及未来的团队构成。
如果在现有系统中,我们使用的是Java语言。这并不意味着每个人都喜欢使用 Java 语言。因为随着团队的变化,做出这个技术决定的人可能已经不在团队中了。即使那些人还在那里,也不意味着我们将来喜欢使用这种语言。当时的技术决策都是在当时的环境中产生的,现在看起来很可笑的技术决策可能是当时最好的技术决策。
对于一个好的团队来说,没有一个人擅长所有技术栈的情况——除非团队从事的范围比较小。在一个复杂的系统中,每个人都负责系统的相应部分。虽然目前还没有建立自己的团队的好机会,但我希望有一天会有这样的机会。在这样的团队中,只需要一个人负责整个系统的架构。其中的人可以在他们擅长的层次结构中构建自己的架构。那么让我们回到我们的博客,现在我们决定使用动态博客。然后呢?
作为一个博客,我们至少有前台和后台,所以我们可能需要两个开发人员。
(PS:当然也可以用React,不过先忽略这个框架,紧耦合会削弱系统的健壮性。)
接下来,作为前端开发者,我们还需要考虑两个问题:
我们的博客系统是单页应用程序吗? 您想做响应式设计吗?
第二个问题可以在不与后端开发人员沟通的情况下决定。对于第一个问题,我们需要与后端开发人员一起做出决定。单页应用的天然优势在于,由于系统本身是解耦的,因此与后台模板系统分离。这样,当我们改变前端或后端时,就不需要考虑使用哪种技术了——因为我们使用API作为接口。现在,我们决定制作一个单页面应用程序,然后我们需要定义一个 API。这时候我们可以决定前台使用哪个框架:Angular.js、Backbone、Vue.js、jQuery,然后我们的架构可以进一步完善:
此时后台人员也可以自由选择自己的框架和语言。后端开发者只需要专注于生成一个RESTful API,还需要一个好的Model层来交付给数据库。
现在,我们似乎已经完成了大部分工作?我们还需要:
在哪里部署操作系统,在哪里使用数据库,如何部署,如何分析数据,如何测试。 . .
Growth 电子书版本摘录:GitHub-phodal/growth-ebook:Growth 的电子书