不甘于做curd程序员,小企业的架构师之路

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 不甘于做curd程序员,小企业的架构师之路


image.png

 首先请原谅楼主标题党(真香),步入正题:当入职3-5年后,相信你接口已经写得贼溜了。一天写个20个简单接口应该没啥问题。这时候一些老铁是不是认为咱以后也能干干架构。我认为你认为的很对。无论从未来发展与钱途上都是必需的。而那部分只会写业务的老铁在中年注定会被淘汰。

那么你又问了,公司不给我机会啊。也不让我转部门,然后因为没有经验,面试也不给我机会。

image.png

根据楼主多年教学(chui niu)经验,转到公司架构部门几率是非常小,因为一个小公司也就一个管架构的,你让他干啥去。那么只有投奔新公司才是正道。本文将从知识储备,丰满简历,迎接面试(hu you)等方面带你解决图中问题。

本文将提供准备的大纲,技术篇章后续会更新,如果有兴趣请关注楼主。

本文仅适合二线小企业开发人员,不可能雷同。温馨提示,千万不要知道就是掌握,了解就是精通。

准备工作

  1. 确认自己未来偏向code,而不是管理。
  2. 确保自己接口已经写的贼溜了。普通的业务代码已经难不到你了。
  3. 不甘平凡,有充分的时间准备,充满饱满的热情持续学习。

如果准备好了,干就完事了。

知识储备

springboot高级接口功能实现

除了日常的接口外,springboot还有比普通接口复杂的功能,在日常中常用,在面试过程中讲述或许更有亮点。例如

  1. springboot像内外网邮箱发送邮件。
  2. websocket实现。(可以使用spring提供的,易上手,可二次开发)
  3. springboot发送短信。
  4. springboot整合swagger接口文档。
  5. 上传文件到云。
  6. 自定义注解监控日志。

此类功能可自行查看,而且功能都不是太难,是不是只写在简历上比curd更高级一点呢。

springboot架构级封装与理解

可能老铁对架构没有一个清晰的认识,对于小型公司架构,我有以下理解:

  1. 对领导要求功能的实现。比如:认证与鉴权框架,在线阅读需求等。
  2. 简化于小伙伴的开发,如使用@RestControllerAdvice简化异常的处理,自定义注解等。
  3. 规范小伙伴的开发,如规范的命名,规范的项目结构,统一的返回对象封装等。

可能你又说了,这方面没有具体的了解,无从入手怎么办。这里提供了一个本文的中心思想!参考!读书人的事怎么能叫。。。遇到问题,第一时间百度或者去github或gitee寻找该轮子是否有人制造。

这里推荐两个开源项目:

  1. jeecg:https://gitee.com/jeecg/jeecg-boot?_from=gitee_search
  2. ruoyi:https://gitee.com/y_project/RuoYi?_from=gitee_search

前者功能非常全,但是因为代码非一个人所写,格式比较混乱,建议仅学习功能。后者功能不如前者强大,但是规则非常符合日常开发,代码很有条理,小企业可以直接使用作为开发架构。

这回知道怎么入手架构了吧,如果以上两个框架你都参透了,在小企业定制款符合自己需求和开发习惯的架构是非常容易的。

了解源码

源码不是万能的,但是没有源码是万万不能的。在小公司,有这个技能可以说是可以吊打大部分初中级程序员,一张嘴,这个底层源码是怎么怎么写的。然后你会看到周围投来羡慕的眼光。

在源码部分你至少要掌握以下部分。

  1. spring ioc与aop的源码。
  2. spring bean的加载过程源码。
  3. spring boot启动流程源码。
  4. spring boot约定大于配置的实现源码。
  5. mybatis执行流程源码。

当看到你简历上写阅读过源码,面试官是会嘿嘿一笑,对老板说这个小伙子还不错,仅次于我。切记,在面试过程中,不建议去背每个类名,给人一种我背我也行的感觉。总结性的描述一下原理即可。

准备一套微服务体系

在小厂,微服务可能在并发量或者业务并不是特别契合,但是可能甲方提出:我们就要上云,或者领导因为融资需要出门跟别人吹牛,所以大多数公司都需要此技能。

这里你需要掌握一套微服务体系,相比springcloud Netflix的闭源,建议使用如今火热的springcloud alibaba。

组件建议选择:

  • nacos:注册和配置中心。
  • openfeign:服务间调用组件。
  • sentinel:熔断,降级,限流,完美支持openfeign。
  • getway:网关,zuul已经是不是这个时代的选择了。

(虽然官方推荐dubbo,但是在小公司并发量并不大而且duboo相对复杂一些,所以使用openfeign也是一个不错的选择。)

最基础的要求就是自己能够搭建一套,了解其中基础概念,成功跑通。并背一些基础的面试题。

最好了解一下服务的注册于暴露的原理,这个面试遇到的概率很大。

下面这个划重点!!

在面试过程中,不要说自己没有实践过,而是自己做的demo。你可以说参与了公司部门微服务的搭建,这样即使不会了你也可以说这部分是他人搭建的,懂得吧。具体怎么组织语言还是看你自己。(以下所有技术栈都适用此条)

权限框架

在shiro和spring security中选择一项,建议使用spring security。

至少了解如何使用,核心配置类,和需要的表结构。

如果有经历可适当的了解oauth2。人才稀缺。

从0开发的话,必备技能。

sql优化

sql优化在面试中肯定跑不了,根据楼主多次面试,回答上explain具体分析流程的很少很少,掌握explain语法。会帮助你脱颖而出。

装x神器,干就完了

中间件

由于内卷的原因,现在不会几样中间件都不好意思出门。

redis与rabbitmq是必备技能,最少你需要掌握以下内容:

  1. 与spring boot的整合。redis的增删改查,mq的发送与监控消息至少都应该demo一下。别问你用什么客户端都答不上。
  2. mq消息准确发送的配置需要掌握,如:磁盘固化,ack,nack等。
  3. redis的基本使用类型与使用场景,以及数据固化相关。
  4. 其他基础面试题。

以下中间件可以初步了解,可以提升面试几率。

如elasticsearch,prometheus,apollo

对于中间件使用场景和并发量不高为什么使用,一定要给出合理的答案,这个是楼主经常问的。

规范

建议建立一套自己的开发规范,包括:

  1. 代码编写规范
  2. 接口编写规范
  3. 建表规范
  4. 接口文档编写规范
  5. 注释规范
    可以参考阿里规范自行编写。目的如下:
  6. 面试彰显自己的亮点和与众不同。
  7. 为日后管理团队打下基础。
  8. 建议日常应用,提高自己代码编写的水平。

虽然我们是小企业,也要专业。

设计模式

这里建议将工厂模式,单例模式,策略模式,代理模式,适配器模式,状态模式吃透,面试重灾区。并在工作中合理应用几次,作为面试答案。

linux操作

因为小企业人员的原因,可能运维开发都是一个人,所以适当的了解linux可以增加竞争性。

这里建议购买或借或使用公司服务器,将上文的项目与中间件在服务器上搭建一遍,并尽可能记住命令即可。

docker与非docker的方式选择一种即可。

idea插件(可选)

适当的使用idea插件,是日常开发中,凸显专业的方面。这里推荐几个插件。

  1. easycode-制定后端的代码生成器。
  2. eclipse code format -自定义代码规范。
  3. p3c-阿里代码规范检测

知识输出(可选)

可以准备一个长时间维护的博客,可以让面试官更加了解你。

面试可以说,掘金优质博主,有原创文章xx篇,xx阅读量。咱上来就给面试官一波暴击。

服务性软件(可选)

有一些软件在日常开发中非常好用,也可能是某项工作中必须的,适当的描述可以坐实你的架构经验。如:

  1. 选择一款公司文档工具。楼主使用的是dokuwiki。
  2. 可以了解私服和镜像工具。楼主使用的是Nexus和harbor。
  3. 可以选择一个测试平台。请自行百度开源开源。
  4. 任务分配平台。请自行百度开源开源。
  5. 一个符合自我习惯的接口平台,yapi是比较流程的,可适当选择。
  6. processon-流程图在线制作网站。

其他开源项目(可选)

在楼主日常工作中,也遇到了很多没有接触的技术,楼主往往先看一遍官网文档,在通过开源项目学习,会使你事半功倍。以下项目可以适当了解。也可以在面试时挑选适当的引出,如果当前企业正有此方面需求,可能会增大。

kkeking/kkFileView

地址:https://gitee.com/kekingcn/file-online-preview?_from=gitee_search

一款在线阅读的开源项目,简单好用,可单独部署,支持的文件种类多样,且显示的文件格式较为美观,当项目周期短,人员紧张时且想落地改需求时,可以直接接入。

mingyang66/spring-parent

地址:https://github.com/mingyang66/spring-parent

一套spring security+oauth2为安全框架的架构,如果你想落地应用级的spring security+oauth2,此架构可以说是学习的好资料,同时提供 /redis、rabbitmq中间件的封装,值得学习和掌握。

Swagger文档转Word

文档地址:https://github.com/JMCuixy/swagger2word

废话不多说 能够将swagger转为word

zjm16/zjmzxfzhl

地址:https://gitee.com/zjm16/zjmzxfzhl?_from=gitee_search

一套spring boot+vue+flowable的工作流引擎,如果你需要以上技术栈,那么不会让你失望的。

xxl-job

地址:https://gitee.com/xuxueli0323/xxl-job?_from=gitee_search

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

善于使用和解决问题,是小公司最缺少的人才。

总结

以上就是楼主的建议了,有关以上的技术性文章,后续楼主会陆续更新。有不明白的问题,可以留言,楼主必回。

如果本文章有一点用,还望看官姥爷用你们发财的小手点个赞和关注。圆我百赞的梦想。


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
27天前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
13天前
|
Kubernetes Cloud Native 云计算
云原生技术深度解析:重塑企业IT架构的未来####
本文深入探讨了云原生技术的核心理念、关键技术组件及其对企业IT架构转型的深远影响。通过剖析Kubernetes、微服务、容器化等核心技术,本文揭示了云原生如何提升应用的灵活性、可扩展性和可维护性,助力企业在数字化转型中保持领先地位。 ####
|
13天前
|
运维 Cloud Native Devops
云原生架构:重塑企业IT的未来####
随着数字化转型浪潮的汹涌,云原生架构凭借其高度灵活、可扩展和高效的特性,正逐步成为企业IT系统的核心。本文将深入探讨云原生架构的核心要素、技术优势以及如何引领企业实现业务创新与敏捷交付。 ####
|
1月前
|
存储 人工智能 算法
精通RAG架构:从0到1,基于LLM+RAG构建生产级企业知识库
为了帮助更多人掌握大模型技术,尼恩和他的团队编写了《LLM大模型学习圣经》系列文档,包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构,基于LLM+RAG构建生产级企业知识库》和《从0到1吃透大模型的顶级架构》。这些文档不仅系统地讲解了大模型的核心技术,还提供了实战案例和配套视频,帮助读者快速上手。
精通RAG架构:从0到1,基于LLM+RAG构建生产级企业知识库
|
28天前
|
Cloud Native Devops 持续交付
云原生架构:重塑企业IT的无形之手####
本文旨在探讨云原生架构如何成为推动企业数字化转型的核心动力,它不仅是一种技术升级,更是业务与开发模式的深刻变革。通过剖析云原生的核心要素——微服务、容器化、持续集成/持续部署(CI/CD)、以及DevOps文化,本文揭示了这一架构如何提升系统的弹性、可扩展性和敏捷性,为企业在竞争激烈的市场环境中赋予快速响应和创新的能力。不同于传统综述,本文将以一个虚构案例贯穿始终,直观展示云原生架构从理论到实践的转化过程,为读者提供一幅生动的技术蓝图。 --- ###
|
1月前
|
架构师 安全 程序员
为什么大部分 PHP 程序员做不了架构师?
【10月更文挑战第23天】本文分析了PHP程序员向架构师转型时面临的挑战,包括语言特性限制认知范围、缺乏分布式系统经验、性能优化深度不足、安全意识和安全架构能力不足,以及对其他技术栈的融合能力有限等问题。这些问题限制了PHP程序员在系统设计和架构领域的全面发展。
|
1月前
|
运维 Cloud Native 安全
云原生架构:企业数字化转型的新引擎##
【10月更文挑战第2天】 在当今数字化浪潮中,云原生架构以其独特的优势成为企业实现高效、灵活和创新的核心驱动力。本文深入探讨了云原生的概念、核心技术如容器化、微服务和DevOps等,并分析了这些技术如何共同作用,推动企业在云平台上实现快速迭代、弹性扩展和资源优化。同时,文章还阐述了云原生在实际应用中面临的挑战及相应的解决策略,为企业的数字化转型提供全面而深入的指导。 ##
52 17
|
1月前
|
运维 Cloud Native 持续交付
探索云原生架构:企业数字化转型的新引擎
在当今数字化浪潮中,云原生架构以其独特的优势成为企业转型的关键。它通过容器化、微服务、DevOps和持续交付等技术,使企业能够快速响应市场变化,实现应用的高效开发、部署和运维。本文将深入探讨云原生的概念、核心技术及其在现代IT环境中的重要性。
|
1月前
|
Kubernetes 监控 Cloud Native
探索云原生架构:企业数字化转型的新引擎
【10月更文挑战第5天】 在当今数字化浪潮中,云原生架构以其独特的优势成为企业实现高效、灵活和可扩展的关键。本文将深入探讨云原生的核心概念、关键技术以及实际应用案例,揭示其在推动企业数字化转型中的重要作用。
35 6
|
1月前
|
运维 Kubernetes Cloud Native
探索云原生架构:企业数字化转型的新引擎
【10月更文挑战第9天】 在当今数字化浪潮中,云原生架构以其独特的优势成为企业实现高效运营和快速创新的关键。本文将深入探讨云原生的核心概念、关键技术以及实际应用案例,揭示其如何助力企业加速数字化转型步伐。通过对云原生技术的剖析,我们将看到这一新兴架构是如何重新定义软件开发、部署和运维模式的,进而推动企业在激烈的市场竞争中脱颖而出。
下一篇
无影云桌面