转头条:阿里p7架构师:三年经验应该具备什么样的技能?
问:工作中,有时候实现一个功能,会去看有没有现成的轮子可用。对于重复造轮子与改造轮子有什么看法?
答:一定会的,其实这也是一个提高技术能力的方法,比如今天想做个日期转换的功能,JDK8有日期的新特性就会考虑直接使用LocalDate.now().format(DateTimeFormatter.BASICISODATE),
以前都是自己写个DateUtils。
如果已有的轮子不满足需求,我觉得可以基于已有的轮子进行改造,提供更多的特性。
在写代码的过程中,永远要思考的是现在业界的技术方案是如何做的,
现在的方案有什么优点或缺点,我能不能直接使用,不能使用的话,是否优化后可用,当然用的时候要了解它的实现原理,做到知其然知其所以然。
阿里级别薪资表
问:阿里的技术专家P7从招聘层面上来说,比如工作年限,过往经历,技术能力等需要达到怎样的要求,可否详细讲一下?
答:年限是5-10年,
技术能力有几个方面的要求,扎实的基础能力,在技术上要有技术亮点,用过的框架要知道其技术原理,能独立解决各种技术问题,具备分布式系统的开发经验,比较强的实战能力。
阿里的5要求能独立负责一个模块,6要求能独立负责一个系统,7要求能架构和负责多个系统,并规划系统的未来能力,在某个领域达到专家水平,可以是某个业务领域,也可以是某个技术领域。
独立这两个字要求很高,即遇到任何技术问题,你都能独立解决。
问:工作中,产品方案设计的时候,经常会存在多方分歧,有分歧就会存在妥协,如何合理的坚持自己的观点,如何合理的做出妥协?
答:方案没有对错,每个方案都有他的优点和缺点,要分析出别人方案的优点和缺点,肯定对方方案的优点,再针对缺点提出对方如何解决这个问题,还是说不解决这个缺点。一起讨论出最合适的方案,而不是要争论谁对谁错。
问:我就是在业务团队,偏技术。框架听起来很酷但遥远,能否带入门,给几个知识点?
答:在业务团队也可以做很多框架,比如可配置化支持业务的框架,自动生成添加删除修改页面的框架,业务数据校验的框架,
只要多思考如何快速支持业务,就能找到合适的业务框架。可以从几个点出发,配置化支持业务,页面自动生成,流程标准化等。
问: 最近在学习Spring源码,看了点书,可以跟着作者的思路看源码,但是看完不久就忘了,其实是没有太多的应用场景的,对于看源码,有什么好的方法吗?
答:可以用这个思路,比如让你来设计一个Spring框架你会如何来设计,Spring Core最重要的就是IOC和AOP,
自己可以尝试实现下简单的IOC和AOP功能,然后再去对比看下Spring是如何实现的,这样即使忘记了Spring的代码,但是仍然能基础其实现原理。
问:对于三十岁的程度员,如果还想再深入做技术,有什么建议?
答:技术人员一定要有危机感,无论多大年纪仍然要持续的学习,我也已经三十多了,每周会花点时间学习点技术。
但是年纪大了,其实时间不会那么多,所以要提高学习的效率,掌握一些学习方法和方法论,并且要静下心来持续的学习。
学技术什么时间都不晚,因为总有新技术冒出来,但是一些永远不变的技术可以优先学习,比如各种协议(TCP,HTTP,一致性hash协议),实现原理,算法等。
问:自己也实现过IOC和AOP的一些小案例,但是实现比较简单,IOC是基于一个Map来实现的,AOP使用CgLib实现,但是再看Spring Core的源码时,还是感觉很吃力,嵌套层次太多,Debug多次,还是比较吃力,怎么办?
答:技术人员一定要有个特质就是死磕,有的技术人员可能花2个星期解决一个技术BUG,就是对着源码一点点的看,要能入定。带着问题去看源码会更轻松点。
答:要给自己制定学习计划,
比如要学习哪些技术,每天学习什么,达到什么程度。
工作中用一些方式方法减少杂乱无难度的工作内容,比如白天不答疑,或只在固定的时间答疑,写FAQ减少答疑,少参与一些会议,不实时去回即时通讯软件。
问:你觉得三年经验应该具备什么样的技能?
答:我觉的作为一个开发经验三年经验来说应该要弄懂下面的知识大纲
微服务专题
作为阿里的p7当然要弄懂双十一项目;
要自己能够完全搞懂源码
分布式是必不可少的;
还要学会性能优化
问:上面的知识掌握了可以成为阿里P7的架构师吗?你对于如何学习上面提到的知识有什么建议吗?
答:完全掌握是可以的 ,但是会需要一个比较长的周期,大概是八到十个月左右,我有自己的一个技术分享群:629740746,我会每天在群里给大家分享一个架构的知识点,当然我也自己录制了一些完整的架构,还有一些bat面试点讲解的视频 ,今天作为一个福利,只要你们来我就免费的分享给大家
问:文章里面提到了架构能力,架构能力由什么组成?如何提高架构能力?又如何去设计一个架构?
答:这是个很好的问题,后续可能写一系列的文章来分享下我的看法。
架构分很多种,有业务架构,网络架构,数据架构及中间件架构。 架构能力最关键的是抽象能力,能抽象出系统中不变的部分形成领域模型。而变化的部分都是通过扩展实现的。有点像乐高积木,抽象出各种基本模块,就可以搭建你想要的东西。
那么如何提高架构能力?多学多思多实战,首先掌握架构模式和架构原则,比如分层架构,模块化,或者看些架构的书,《企业应用架构模式》等,然后看已有的系统架构,思考下该系统为什么要这样架构,遵循了哪些原则和模式,这个架构的优缺点有哪些。然后就是自己参与到架构中,和架构师一起讨论设计。
转头条:阿里p7架构师:三年经验应该具备什么样的技能?的更多相关文章
- 阿里P7架构师详解微服务链路追踪原理
背景介绍 在微服务横行的时代,服务化思维逐渐成为了程序员的基本思维模式,但是,由于绝大部分项目只是一味地增加服务,并没有对其妥善管理,当接口出现问题时,很难从错综复杂的服务调用网络中找到问题根源,从而 ...
- 详解阿里P7架构师是怎么在Spring中实现事务暂停
摘要 Spring框架是一个流行的基于轻量级控制反转容器的Java/J2EE应用框架,尤其在数据访问和事务管理方面的能力是众所周知的.Spring的声明性事务分离可以应用到任何POJO目标对象,并且包 ...
- 阿里P7架构师是如何解决跨域问题的!你有遇到吗?
现在越来越多的项目就算是一个管理后端也偏向于使用前后端分离的部署方式去做,为了顺应时代的潮流,一前后端分离就产生了跨域问题,所以许多同学把跨域和前后端分离项目联系在了一起,其实跨域产生的原因并不是前后 ...
- 深入浅出!阿里P7架构师带你分析ArrayList集合源码,建议是先收藏再看!
ArrayList简介 ArrayList 是 Java 集合框架中比较常用的数据结构了.ArrayList是可以动态增长和缩减的索引序列,内部封装了一个动态再分配的Object[]数组 这里我们可以 ...
- 看阿里P9架构师如何向你定义架构及架构师
架构的定义 先来看看软件架构的普遍定义吧. 一个程序和计算系统软件体系结构是指系统的一个或多个结构.结构中包括软件的构建,构建的外部可见属性以及它们之间的相互关系. 体系结构并非可运行软件.确切的说, ...
- 阿里P8架构师深度概述分布式架构
简介 作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术 ...
- 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结
更多内容:https://www.toutiao.com/i6599796228886626829/?tt_from=weixin&utm_campaign=client_share& ...
- 阿里P8架构师谈:数据库分库分表、读写分离的原理实现,使用场景
本文转载自:阿里P8架构师谈:数据库分库分表.读写分离的原理实现,使用场景 为什么要分库分表和读写分离? 类似淘宝网这样的网站,海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对 ...
- Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战
转: Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战 Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一 ...
随机推荐
- python装饰器 练习
用类作为装饰器 练习一 最初代码 class bol(object): def __init__(self, func): self.func = func def __call__(self): r ...
- Google是如何教会机器玩Atari游戏的
转自:http://blog.csdn.net/revolver/article/details/50177219 今年上半年(2015年2月),Google在Nature上发表了一篇论文:Human ...
- zooland 新开源的RPC项目,希望大家在开发的微服务的时候多一种选择,让微服务开发简单,并且容易上手。
zooland 我叫它动物园地,一个构思很长时间的一个项目.起初只是觉得各种通信框架都封装的很好了,但是就是差些兼容,防错,高可用.同时在使用上,不希望有多余的代码,像普通接口一样使用就可以了. 基于 ...
- .Net Core 分布式微服务框架 - Jimu 添加 Swagger 支持
系列文章 .Net Core 分布式微服务框架介绍 - Jimu .Net Core 分布式微服务框架 - Jimu 添加 Swagger 支持 一.前言 最近有空就优化 Jimu (一个基于.Net ...
- 关于GitHub上传没有记录(小绿块不显示的问题)
最近开始使用上github来上传保存自己在学习中所写过的代码,打算将自己每天的成果能有个保存,然后就利用上GitHub这么一个利器. 听说GitHub的那个绿块是用来记录每天的上传记录的,结果我将代码 ...
- linux centos 中Tomcat的安装和自启动配置
Tomcat的安装和自启动配置将tomcat添加为linux系统服务,网上找到了很多方法,其中比较简单的如下:方法一:(亲测有效)1. 首先需要将$Tomcat_HOME/bin目录下的catalin ...
- 使用VSCode调试单个PHP文件
突然发现是可以使用 VSCode 调试单个 PHP 文件的,今天之前一直没有弄成功,还以为 VSCode 是不能调试单文件呢.这里记录一下今天这个"突然发现"的过程. 开始,是在看 ...
- Linux内核分析——第六周学习笔记20135308
第六周 进程的描述和进程的创建 一.进程描述符task_struct数据结构 1.操作系统三大功能 进程管理 内存管理 文件系统 2.进程控制块PCB——task_struct 也叫进程描述符,为了管 ...
- linux 常用命令-ps(process state)
ps -ef | grep 端口号:查看某个端口的占用情况 ps -tunlp | grep 端口号:查看占用端口的进程名称
- Linux shell(1)
Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh).Bourne Again Shell(/bin/bash).C Shell(/usr/bi ...