“技术开发最应该做什么?”,聊聊我在服务端开发5年的理解和收获

简介: “技术开发最应该做什么?”,聊聊我在服务端开发5年的理解和收获




我们新推出大淘宝技术年度特刊《长期主义,往往从一些小事开始——工程师成长总结专题,专题收录多位工程师真诚的心路历程与经验思考,覆盖终端、服务端、数据算法、技术质量等7大技术领域,欢迎一起沟通交流。

本文为此系列第二篇内容。

第一篇:负责淘宝业务前端开发9年,聊聊我的心得




本文作者三尽17年本科毕业,兜兜转转做服务端开发5年了,“技术开发最应该做什么事”,这个问题时常在他的脑海回荡。


个人经历简述


我是一个从业经验已有5年的服务端开发,未毕业的时候就经历过创业的艰辛。毕业后,辗转几轮经历过传统互联网的沉寂,体验过直面用户的成熟toC产品,最终来到了阿里大淘宝技术做成熟的toB商家业务。在不同阶段的我,对开发岗位的理解也各不相同,以下是我的成长和收获,希望对你有所帮助。


2015~2016:不成熟的创业团队中,做唯一的技术开发


创业还是忽悠?我选择了退出


这段经历是我大三那年的经历。


在学校自学半年java的我,机缘巧合,“受邀”成为了某不知名“创业团队”的一员,抱着学习+锻炼能力的态度,一个人承担了团队对外的网站全部建设(后来才知道,当时没钱请不起外包做网站),包括前后端开发+买域名租服务器。


当时只学习了后端三板斧的我,每做一小步都得百度很久,依靠碎片线索去学习新的技术,翻CSDN,搜github,无所不用,经常从早忙到晚。幸运的是网站成功上线了,并稳定运行了半年之久,过程收获巨多。


当然散伙的原因也比较突然,某个午后,网站突然被“黑客”攻击无法访问,客户打电话投诉,而我只能频繁的去重启我那可怜的云服务器,非常尴尬(后来才知道是我那天手误开启了云服务器的某个高级安全策略,同一ip多次访问会拉黑半小时...)。


那件事之后,我意识到自身能力欠缺,也明白他们只想“白嫖”我,我立马找了个借口退出,火速散伙。随后在校招尾声中,随便投递了一家北京的公司,就只身飞了过去,进修技术。


 有收获成长的地方


做技术开发,需要有迎难而上的冲劲,遇到不懂的地方,主动找方法去解决。

能够看清自己的缺陷,及时止损。


 值得反思的地方


做决定太盲目,不管是没打听清楚就加入“创业团队”,还是随便找了个公司就奔去北京,都太过于仓促盲目,这样对自己是不负责的表现,需要反思和警惕。


2017~2018:传统互联网公司,做后端开发


毕业后第一份工作的无奈,自作自受


由于盲目的决定,导致我毕业后的第一份工作并没有做多久。


主要还是因为传统互联网公司的调性与我心中互联网公司的预期不一致导致的,项目节奏周期长,技术不够新颖,与外界存在明显断层,学不到心中自认为酷炫的技术等。


不过与之相对的是,因为节奏慢,所以能有充分的时间看书,我借着这段时间,慢慢弥补解决了之前碎片化学习技术,导致知识零散不连贯的问题。


 有收获成长的地方


真正意识到了盲目决策的苦果


2018~2020:北京新浪微博,做toC服务端开发

怎样才能保证月活上亿的app服务稳定


2018年的时候去了新浪微博做toC互动业务,想像中从零开始撸高并发高流量系统的愿景并没有实现,原来大家都是从现有的系统架构上添砖加瓦的吗?也是啊,怎么可能每次需求都需要重新撸高可用的架构呢?不现实。

从微博多机房部署,热点事件多级降级,动态扩缩容,热门评论模型,热点微博localcache化等,我开始一点点学会了怎么去保障一个月活上亿的app服务稳定。

此时我对一个成熟稳定的服务心中有了完整的印象,那么就是在设计之初需要考虑周全:存储容量,调用限流,下游依赖,异常兜底,降级预备。


有效的存储容量评估,能极大的减少成本浪费;可靠的调用限流,能保护系统不被打垮;清晰的下游,能在出问题时,随时上下信息串联;异常兜底设置,能让系统时刻在预期内运行;降级预备,任何非核心路径功能时刻都要考虑到为核心路径功能让路,降级掉非核心的请求压力,保障最核心功能的完整性。


 有收获成长的


明白了稳定服务必须具备的条件,同时明白了平台的重要性,我们搭建的服务都是依托当前已经成型的平台进行的,逃脱了平台加成,剩下的才是我们自己,不要生出膨胀的心理。


 需要反思的地方


平时埋头做业务,没做出突破性的技术成果,实属遗憾。


2020~至今:阿里大淘宝技术,做toB服务端开发


正视业务才能打破技术壁垒


2020年的时候来到阿里大淘宝技术,做toB商家千牛业务。

来到阿里后第一次体会到完善且成熟的基础设施有多便利,完整的监控体系,无人值守的发布流程,一键机器置换的便利等,能让技术同学全身心的投入到业务模型的开发设计中,不需要考虑额外的负担。基于此我也开始重新思考作为服务端开发,当运维相关的负担减除后,服务端难道只干好coding就可以了吗?这个疑问在后面的时间里,与同事和TL慢慢交流沟通后有了答案。

“正视业务”是我了解到周围厉害的同事都在做的事情,站在业务的视角去考虑问题,设计方案,评估产品的设计合理性等。说实话在来阿里之前,我的业务意识非常薄弱,每次需求评审只会考虑技术方案的可行性和稳定性,很少能会聚焦到业务本身上,也不过多追究业务的走向,现在细想,这完全是错误的做法,在一步步埋没自己的职业生涯。

举例一个需求例子,业务上需要做一个收集满意度的功能。但是技术上就不能单单只考虑单点,需要多想一些扩展的能力,比如业务上后续是否要在其他场景也支持?支持横向扩展;如果能力做的完整,是否可以对外做开放?普利大众,降低重复编码成本,提高技术影响力。如果在设计之初只考虑到了“点”,没看到延展的“线”和铺开的“面”,只能看到当前的功能点,那么当业务重新提来升级需求的时候,当前的架构就容易抓瞎,只能被迫打补丁,甚至拒绝需求,这完全是不合理的,也不是一个合格的技术人员应该做的事情。

什么是好的技术方案?好的技术方案是能够贴合业务,甚至能驱动业务前进的,技术方案需要在一开始就去考虑业务的未来布局和整体方向,最好是能与业务产品一起去沟通细节,而不是坐等“投喂”。好的方案是沟通出来的,绝对不是闭门造车。

当我有意识的去将业务和技术结合后,设计方案的思路也经常会灵感爆棚,带入业务的视角评估方案,有种重新认识技术开发岗位的感觉,时刻都有收获。

 有收获成长的地方


重新认识了业务和技术的关系,业务是船,技术是帆,顺势而为才能一日千里

 需要反思的地方

能想到,能做到,能做好是各不相同的阶段,还需要更耐心的投入



个人感悟总述


 代码方面


代码是程序员的灵魂,对代码一定要有追求,任何时刻都要对垃圾代码说拒绝,todo是骗人的鬼,不会有重构的机会的!“屎山”只会让后人反复的念叨自己!


 合作方面


不自我设边界,多做事情少偷懒,不可以耍滑头,多做了一件事不算吃亏,每个人都能看到谁在付出,认可是在平时一点一点积累出来的。


 沟通方面


多和老板聊天,当前如果和老板沟通有距离感,不适应,也可以多和师兄或者组长沟通交流,目的其实就是取经,能做你师兄或者组长的人,绝对有过人之处,向他们学习能少走很多弯路。


 身体方面


健康的身体才是职业生涯的保护伞,每周如果能保持少量的运动,对头发也是极好的。


 总结



17年本科毕业,兜兜转转做服务端开发5年了,“技术开发最应该做什么事”,这个问题时常在我脑海回荡。如果要问我现在有正确答案了吗?我的答案是看当前环境需要什么,永远做当前环境最需要,当前业务最紧迫的事情,满足了这个,那无论做什么都是正确答案。




团队介绍


我们是大淘宝-商家技术团队,用技术和产品能力,构建支撑商家持续经营的基础设施,数据化的为商家带来新的增长。
在技术上,我们精益求精,用端到端的技术平台,直面百万级别的QPS,为商家生意的爆发保驾护航。
在业务上,我们勇于突破,带领和支撑集团战略级的战役,从而推动整个淘宝天猫的增长。
在人才上,我们渴望怀揣着有技术梦想的同学加入我们团队,一起为阿里巴巴零售体系的未来布局。


相关文章
|
2月前
|
存储 Android开发 开发者
探索安卓开发之旅:从新手到专家的必经之路
【9月更文挑战第3天】在这篇文章中,我们将踏上一场激动人心的旅程,深入探索安卓开发的广阔天地。无论你是初涉编程世界的新手,还是期望提升技能的开发者,这里都有你需要的知识与技巧。我们将从基础概念讲起,逐步引导你了解安卓应用的核心组件,并分享实用的开发建议。准备好了吗?让我们一起开启这段成长之旅吧!
|
2天前
|
关系型数据库 数据库 开发者
探索后端开发之旅:从小白到专家的蜕变之路
在这个数字时代,后端开发是构建现代互联网应用不可或缺的一环。本文将带领初学者了解后端开发的基础知识,并逐步深入到高级概念。我们将一起探讨如何通过实践和学习,从一个对后端一无所知的新手成长为一个能够独立设计和实现复杂系统的后端开发专家。在这个过程中,你将学会如何选择合适的编程语言、框架以及数据库,并且掌握软件架构设计的原则。无论你的目标是成为一名全栈开发者还是专注于后端领域,这篇文章都将为你的职业发展提供指导和启发。记住印度圣雄甘地的话:“你必须成为你希望在世界上看到的改变。”让我们开始这段旅程吧!
|
1月前
|
前端开发 API 开发者
🥇前端宝藏:多项目掌握技能的冒险之旅🏆
在前端开发的学习旅程中,实践是提升技能的关键。本文介绍了多个前端项目,包括计算器、天气应用、经典游戏等,涵盖了从React到Svelte的各种技术栈。每个项目都附有在线演示和源代码,旨在帮助读者深入理解实现细节,激励更多人参与实际项目开发。通过这些项目,读者可以将理论知识转化为实践,拓展职业机会。
18 0
|
2月前
|
Java 关系型数据库 API
后端开发之道:从新手到专家的蜕变之旅
在数字化时代的浪潮中,后端开发如同一座桥梁,连接着数据世界的每一个角落。本文将带领读者踏上一段从零基础到精通后端开发的旅程,探索编程语言的选择、框架的应用、数据库的设计以及API的开发等关键知识点。我们将以通俗易懂的语言,结合条理清晰的结构,逐步揭开后端开发的神秘面纱,让每一位读者都能在这段旅途中找到属于自己的位置和方向。
|
2月前
|
存储 XML API
安卓应用程序开发:从新手到专家的旅程
【8月更文挑战第33天】在这篇文章中,我们将一起踏上一段激动人心的旅程,探索如何从一个对安卓应用程序开发一无所知的新手,成长为一个能够独立开发复杂应用程序的专家。我们将通过实际案例和代码示例,深入理解安卓开发的各个方面,包括用户界面设计、数据存储、网络通信等。无论你是刚刚入门,还是已经有一些基础,这篇文章都将为你提供宝贵的知识和技能,帮助你在安卓开发的道路上更进一步。
|
3月前
|
关系型数据库 Java 数据库
后端开发之道:从新手到高手的蜕变之旅
在数字时代的浪潮中,后端开发如同一座灯塔,指引着应用程序稳定运行的方向。本文将通过浅显易懂的语言,带领初学者了解后端开发的基本概念、核心技能和职业发展路径。我们将一起探索如何从零基础起步,逐步成长为一名能够独当一面的后端开发高手。无论你是编程新手,还是希望深化后端知识的开发者,这篇文章都将为你的职业之路提供宝贵的指导和启示。
|
3月前
|
人工智能 JavaScript Java
深入浅出后端开发:从新手到专家的旅程
在数字时代的浪潮中,后端开发如同宇宙中的暗物质,虽不为人所见,却支撑着整个互联网的运行。本文将带你探索后端开发的奥秘,从基础概念到技术栈选择,再到实战应用,我们将一起构建知识的桥梁,连接起初学者与资深开发者之间的鸿沟。你将了解到,如何通过不断学习和实践,像乔布斯所预见的那样,让生命中的每一个点在未来某个时刻连接起来,最终成为你希望在世界上看到的改变。
|
6月前
|
前端开发
前端小白如何开发新项目(速成版)
前端小白如何开发新项目(速成版)
111 0
|
人工智能 运维 中间件
推荐一位阿里朋友的巨作,助你成为顶尖服务端开发者——《服务端开发:技术、方法与实用解决方案》
推荐一位阿里朋友的巨作,助你成为顶尖服务端开发者——《服务端开发:技术、方法与实用解决方案》
601 0
|
消息中间件 NoSQL Dubbo
Java后端开发面试总结【25个技术专题】超详细!
编程的世界永远向所有热爱编程的人开放,这是一个自由,平等,共享的世界,我始终是这样坚信的。
454 0
下一篇
无影云桌面