大家好,今天小编关注到一个比较有意思的话题,就是关于扒代码做网站的问题,于是小编就整理了2个相关介绍扒代码做网站的解答,让我们一起看看吧。
架构师在做一个网站的架构时要做哪些工作(按顺序排列)?
我是一个假的架构师,真的程序员。
现在所在的项目,是去年八九月份启动的,虽然不是一个网站,但是大部分工作都是类似的,那么我给大家介绍一下这半年我做了哪些工作。
一般新建一个项目有两种背景:
一种是没有系统,需要重新建立;
一种是有老系统,但是因为种种原因,需要新建一个系统把老系统替换掉(或替换部分功能);
我们算是后者,老系统已经运行多年,主要工作是对外提供接口服务,现在服务的效率和抗压性都无法满足业务需求。
需求梳理
需求,在开发之前一定要明确需求。因为是对老系统的改造,所以需求相对来说比较明确。
梳理老系统有多少接口,压力比较大的接口有哪些,确定接口迁移的优先级。
确定第一批迁移的接口之后,需要对接口的处理逻辑进行梳理,包括出参入参都是什么,对参数有哪些校验,出参的是从什么表的什么字段取得,查询条件是什么,是否对数据进行了加工、转移等处理。
主要是通过“扒代码”的手段,这一步很痛苦(程序员们都懂的)。
压力预估
因为是老改新,压力容易预估出来,我们主要关注的几个点:
现有系统的数据量有多少,年增长的数据量是多少。
多少系统在调用,大概服务器的数量是多少。
平均每天的调用量,如果业务几种在某些时间段内,比如工作时间,那么就要估计出每小时的量大概是多少。
业务高峰期的时候,量有多少。
架构设计
其实我也是野路子出身,我在做这一步所做的工作有这些:
整理项目的功能点,比如我们这个项目主要功能有:数据抽取、数据存储、数据加工、服务提供;这一步形成整体的功能架构。
对每个大的功能点,评估需要使用的资源,拿数据加工为例:数据加工主要就是批处理,需要Tomcat部署Java程序,需要Redis做分布式锁和缓存,需要MongoDB做加工后的数据存储;这一步形成整体的方案规划。
继续详细的评估,根据前期统计的数据量,对MongoDB的部署进行评估:是否需要分片,如果分片的话,前期部署几个分片,容量申请多少;当这些评估都做完之后,就可以把一个一个的点汇总起来,就形成了物理部署架构。
到了这一步,基本上技术架构图也就出来了。
在设计过程中,还要和很多人进行沟通,比如DBA、比如领导。
开发
到了开发阶段,我依然在。
这时候,一边招人(招人有些晚了),一边搭框架;一边面试,一边写代码。
最后开发人员招的差不多的时候,我从无到有,第一个接口基本上开发完成了...
现在嘛,我依然在项目里面,沟通需求、设计、任务分配、写写代码、看看开发人员写的代码再给他们提提意见,如果别的项目组有设计或开发方面的问题,我也会帮忙处处主意;
我总觉得我是个假的架构,真的程序员。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
我多次全程参加从策划到运维的系统开发,在这里分享一些干货。架构设计过程大致可分成需求分析和系统设计两个阶段。
需求分析
这个阶段的目的是进行需求分析制定系统的逻辑模型。需求可分为功能性需求和非功能性需求。功能性需求主要是业务逻辑,非功能性需求则是业务以外的需求,如运行环境,信息安全,故障诊断等等。功能需求可使用用例图等可视化的工具来完成。非功能需求涉及到的技术较多,没有通用的结构化的方法,一般需要参考类似系统的经验。这部分的设计结果可以用配置图进行可视化。完成了功能性需求和非功能性需求之后,可将两部分需求进行统合,具体就是,结合系统配置为每一个用例设计逻辑流程。
系统设计
这个阶段的目标是把需求分析阶段建立的逻辑模型转换成物理架构。首先,要根据逻辑配置选择网络,服务器,操作系统,数据库,各类服务程序运行环境,并拆分出子系统。确定了子系统之后,可以为各个子系统选择编程语言和架构模块(如,Struts)。确定了子系统的架构之后,就可以进行程序结构的设计了。程序结构设计要从用例图中抽出事务,从逻辑时序图中抽出逻辑类,将各逻辑类部署到各物理配置上,确定物理类,设计物理时序。最后,可从时序图上,抽出物理类,根据类的功能整理,并选择设计模式,补足实装所需的各种类的定义,做类图。至此,架构设计完成。
服务器 ubuntu/centos/windows
web服务器 nginx/apache
php,php扩展
数据库
缓存
redis
消息队列
...
项目部署
服务器日志收集、分析
怎么进一步提高HTML和CSS的能力?
根据你的问题,你应该是做前端开发的,虽然你的问题比较简单,但是我要提醒你要有大前端的概念,因为HTML,CSS是前端里面比较简单的两个知识点。学好这两个还远远不够。
进入正题。
第一,通读有关HTML和CSS书籍,经典的,两到三本足够,把不了解的标记和样式写法记录到本子上,每天早晚复习,上机练习,争取一周时间把不熟悉的知识点各个攻破,这些在以后开发中对标签的正确选用就得心应手了。
第二,学习HTML和CSS相关的知识点,比如JavaScript,jquery,bootstrap,react,H5,CSS3,vue.js等,因为知识不是单一的,提高不是单方面的提高,好比如你刀工厉害,不代表你是一个好厨子。
第三,了解HTML和CSS的背后的原理,比如浏览器引擎是如何解析dom元素,如何做渲染。
第四,了解HTML和CSS等前端标准知识,了解不同浏览器的引擎的区别,这对浏览器的兼容性开发会有巨大的帮助。深刻理解盒子模型,对样式布局非常重要,否则样式的各种变形会让人抓狂。
第五,了解他们的细节,也就是坑,这个需要长期实战,并做好笔记。比如左右浮动技术,图片反转技术,CSS3动画。
第六,要懂得使用工具进行debug,或者F12进行调试,现在的浏览器越来越强大,会调试是高级前端必备技能。
先回答这么多,有疑问再沟通。
IT架构师
到此,以上就是小编对于扒代码做网站的问题就介绍到这了,希望介绍关于扒代码做网站的2点解答对大家有用。