在阿里这六年,发现P7级以上的开发人员都有一个共同之处,都是利用好了这“黄金五年”

本文讲述了Java程序员如何利用前五年的关键时期,从初级到高级逐步提升技术能力。在1-2年间,重点是熟悉设计模式、并发和框架源码;3-4年间,应广泛涉猎相关技术如大数据、分布式等;4-5年后,转向提高影响力,如发表技术文章、参与开源项目。同时,文章强调了学习源码分析、分布式架构、微服务、JVM以及工程化的重要性,并提供了一个全面的学习路线图,助力程序员进阶为架构师。

在Java程序界流行着一种默认的说法叫“黄金5年”,也就是一个程序员从入职的时候算起,前五年的选择直接影响着整个职业生涯中的职业发展方向和薪资走向,如何走好这5年,彻底从一个刚入行的菜鸟蜕变成可以以不变应万变的职业大牛,这是一个涉及到自身专业知识储备和选择的大难题,那么,这五年里,一个Java程序员如何做才能完成从入行到大牛的晋升之路呢?

参加工作1-2年之间

在这段时间里,想必对Java已经有了一个深入的了解。首先,你要非常熟悉设计模式,看一些关于代码编写优化的书,提高你的代码能力,能够写出一手优雅的代码;其次,你在工作过程中肯定接触过并发,你应该更加深入地去了解并发的相关知识;最后,你要对所使用的框架和Java的类库有一定的研究,还需要去看一些JDK中的类的源码,包括你所使用的框架的源码。总而言之,这个阶段,你需要做的是深入了解Java底层和Java类库,也就是JVM和JDK的相关内容。

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

参加工作3-4年之间

如果你处于这个阶段,说实话很难再提升代码能力了,因为这个阶段的学习会比较多样化。在前三年的工作中,你肯定不同程度地接触过其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等技术,你能精通任何一项,都将是你未来面试时巨大的优势。因此如果你对某一项技术感兴趣,这时可以深入去研究,这项技术不一定是你工作所用到的,但一定是相关的。

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

参加工作4-5年之间

参加工作四至五年的程序员,这时,你应该遇到技术的瓶颈了。不要急于提高自己的技术,此时更重要的是提高你的影响力,你可以尝试去一些知名公司提高你的就业背景;你也可以发表一些技术文章去影响更多的人;你还可以去Github创建一个属于你的开源项目,打造属于自己的产品。技术学到这个阶段,很容易遇到瓶颈,而且往往达到一定程度后,你再深入研究的效果就真的微乎其微了,除非你是专门做学术研究的。然而很可惜,大部分程序猿做不到这一步,那是科学家做的事情。这个时候提高影响力主要是影响力可以给你创造更多的机会,所以,你最大的任务是提高自己的影响力,为未来工作生涯做准备。

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

那如何快速学习并精通呢?

针对当前互联网公司的技术需求以及结合主流技术,年薪百万的首席架构师整理了一套系统的架构技术体系,当你技术过硬的时候,能够解决技术问题才会服众。不少公司都很重视高并发高可用的技术,特别是一线互联网公司,分布式、JVM、spring源码分析、微服务等知识点已是面试的必考题,这些东西可能你们平时在工作中接触过,但是缺少全面系统的学习。

百万年薪架构师分享一套全面的知识图谱,无论走架构,管理还是项目经理的路线这些技术你都应该有一定的了解及掌握!(迷茫的朋友可以参考下学习方向)

一、学会如何分析源码?

大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。因为它是两个原因造成的:

1:我们所有的教育和培训都在强调怎么写代码,并没有教大家如何读代码

2:大多数工作场景都是一个萝卜一个坑,我们只需要了解一个系统的局部便能开展工作,读不相干的代码,似乎没用

所以,要养成源码三问的习惯:

“为什么要有这样的架构”

“他是什么样子的”

“他是怎么工作的”

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

二、分布式架构专题

首先需要说明的是,分布式系统是一个复杂且宽泛的研究领域,学习一两门在线课程,看一两本书可能都是不能完全覆盖其所有内容的。

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

三、微服务为什么会这么火?

相信大家都了解业务越来越复杂,服务分层,微服务架构是架构升级的必由之路,而对于微服务的优点相信大家都不陌生。

比如:易于开发与维护 / 微服务相对小,易于理解 / 启动时间短,开发效率高 / 独立部署 / 伸缩性强 / 每个服务都可以在横向和纵向上扩展 / 微服务架构可以更好将架构和组织相匹配 / 每个团队独立负责某些服务,获得更高的生产力 / 降低尝试新技术的成本......

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

四、程序员到底要不要学习JVM?

总有人问这个东西好像用不上,于是要不要学这样的问题,然后又总有人担心一直搬砖成天做些重复没提升的东西。

如果你这辈子只甘心做一个平庸的Java码农,那么你完全没有必要去学习JVM相关的知识。

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

五、被我们忽略掉的工程化专题

在IT产业中,寡头化出现代表着创业公司减少--没人再去用声势浩大的发布会讲故事、没人再去宣传自己拿了多少融资。

这一代中国人自小的教育不比欧美的STEAM,而是重学术、轻手艺。我们往往会为工科和产能过剩画上等号。强大的资本和技术门槛为这些产业蒙上了一层神秘的面纱,让普通人很难真正了解到其中技术和工艺的复杂程度,也就更难明白其中的价值。可正是因为中国的工程化能力,才让我们有机会走到AI时代的第一梯队,而不仅仅是靠学术研究能力。

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

六、没有高并发经验,想进大公司该怎么办?

假如没有靠谱的公司,接触不到高并发的业务场景怎么办?你永远解决的是小问题,工作10年技术也未必提升多少。

很多程序员也经常找我说,没有经验就没有靠谱的公司收,没有靠谱的公司也就没有经验,我看了无数的书,自己做了无数的实验拼命想找个靠谱公司去深入,但是感觉好难,简直是个死循环

大家都比较关注高并发,原因很简单,想去BAT这样的大公司,你必须要有高并发的经验。今天普及下高并发的知识,希望大家对高并发有一个正确的认识。

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

七、学习千遍,不如项目实战成功一次

有人说:项目实战相信很多程序员都多少会有的,可是我们这个还要学习什么呢?

我的回答是:那就要看你想不想成为一个架构师了,为什么98%的程序员工作10年,一辈子还只是一个开发者,程序员们都要想一想这个问题,我是不是需要提升了。

我认为,学习项目实战最重要的还是学习项目管理,作为程序员,都应该学点项目管理。

凡事皆为“项目”项目的两类属性(复杂的逻辑,庞大的信息量)

这才是我们学习“项目实战”的终极意义。

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

路线图对应的相关教学视频资料

需要获取得话麻烦一键三连之后看下图小助理的微信:(bjmsb10)添加即可免费获取到哦

阿里P8级架构师分享:Java架构师必知必会技能总结「干货+福利」

 

阿里P8级架构师分享:Java架构师必知必会技能总结「干货+福利」

 

从阿里P6到阿里P8架构师首次分享Java程序员黄金五年进阶心得

 

现在开放资源免费领取,送给需要高清架构脑图,架构视频资料、架构电子书和Java面试文件,以及想要提升技术的朋友。资料获取方式

需要获取得话麻烦一键三连之后看下图小助理的微信:(bjmsb10)添加即可免费获取到哦

相信大家,在学习的路上也遇到了不少的坑,有人放弃,有人坚持,但是我相信作为程序员的你不会想终其一生也只是一个开发,所谓不想进阶架构师的程序员不是好程序员。

本文档是本人5年JAVA经验整理的文档(持续性的),由于优快云只能单个附件只能上传15MB,所以只好分包压缩了(4个包),希望各位同行能够理解。 本文档包括JAVA/FLEX/数据建模/Database/移动办公/项目管理/单点登录/软件架构/测试等相关性技术。 本文档还在持续维护中,各位可以通过《笔记变更说明》查看升日志。 在这里声明下,本文档一部分是个人从学习、工作中整理出来的(代码都是经过调试的),还有一部分是从网上整理的。 本站相关文档都是经过后期整理的,或是在实际工作中整理的实例代码总结而成的。 由于本人目前允许上传的资源太小,所以无法上传整个的技术学习笔记(JAVA 五年的工作经验和学习笔记),待以后有机会会分享给大家。 技术体系包括: J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)/LDAP/C++/Portal/即时通讯/数据建模/UML/UML设计工具(Rose、EA、PD等)/移动办公(Android、Symbian、Wap等技术)/项目管理(敏捷开发等)/软件架构(NoSQL、SaaS、设计模式等)/数据库(MySQL、Oracle、EDB、SQLServer等)/测试(单元测试、压力测试)/linux服务器等 其中含有大量实例源代码。 这里需要说明的时,该文档是本人5年工作经验的积累,文档中大部分知识点来源于实际工作中的总结,(除了JAR等资源文件外)其代码都是可运行的,还有一部分知识来源于网络或者其他书籍,这里做一些收集,使该体系更加完善。
<think>我们正在处理一个关于鸿蒙应用签名的问题,特别是针对已有安卓版本且已上线的应用在开发鸿蒙版本时的签名处理方式。 根据用户上一次的问题和我们的回答,我们知道鸿蒙应用的正式签名是在开发完成后、上架前申请的。现在用户想知道,当他们已经有一个安卓应用,现在要开发鸿蒙版本时,签名应该如何处理。 关键点: 1. 鸿蒙应用的签名和安卓应用的签名是独立的,因为它们是两个不同的操作系统。 2. 鸿蒙应用有自己的签名体系,需要按照鸿蒙的要求申请签名证书。 具体步骤: 1. 在华为开发者联盟为鸿蒙应用创建项目,申请App ID(注意:这个App ID通常需要与安卓的包名保持一致吗?但实际上,两个平台是独立的,包名可以不同,但为了品牌一致性,建议使用相同的包名结构,但具体要看华为的要求)。 2. 开发完成后,申请鸿蒙的发布证书(.p12文件)和Profile文件。 3. 在打包鸿蒙应用(.hap文件)时使用这个发布证书进行签名。 注意事项: - 虽然安卓和鸿蒙是两个独立的系统,但如果希望同一个应用在两个平台上被视为同一个应用(例如,在华为应用市场上,同一个应用同时有安卓和鸿蒙版本),那么通常需要使用相同的包名(Bundle ID)。因此,在华为开发者联盟创建鸿蒙应用时,应该填写与安卓应用相同的包名。 - 但是,签名证书是两个平台各自独立的。安卓应用使用安卓的签名证书(如.jks文件),鸿蒙应用使用鸿蒙的签名证书(.p12文件)。不能直接将安卓的签名证书用于鸿蒙,也不能将鸿蒙的签名证书用于安卓。 因此,处理方式是: 1. 在开发鸿蒙版本时,需要为鸿蒙版本单独申请一套签名证书(在华为开发者联盟)。 2. 在打包鸿蒙应用时,使用鸿蒙的签名证书进行签名。 引用我们之前的回答和参考信息: - 引用[2]提到:App Pack是发布上架的基本单元,用户下载时市场会拆分.hap文件并逐个签名安装。这说明了签名的重要性。 - 同时,我们之前的回答中提到:正式签名在开发完成后进行,以确保应用的安全性和上架要求。 另外,需要注意: - 如果应用有多个模块(例如,多个.hap文件),每个模块都需要签名,但可以使用同一个证书。 总结步骤: 已有安卓应用 → 开发鸿蒙版本(包名保持一致) → 开发完成后在华为开发者联盟申请鸿蒙发布签名证书 → 使用该证书对鸿蒙应用进行签名打包 → 上架到华为应用市场(同一个应用条目下,作为鸿蒙版本)。 相关问题: 1. 鸿蒙应用和安卓应用能否使用相同的签名证书? 2. 如何将鸿蒙应用上架到已有安卓应用的应用市场条目中? 3. 鸿蒙应用的包名是否必须与安卓应用一致? 我们将根据上述分析生成回答。 </think>针对已有安卓版本应用开发鸿蒙版本时的签名处理,需重点关注**跨平台签名独立性和流程衔接**,以下是具体处理方式: --- ### 签名处理核心原则 1. **双平台签名独立** - 安卓签名(.jks/.keystore)与鸿蒙签名(.p12 + .p7b)**完全独立**,不可共用 - 鸿蒙应用需在华为开发者联盟平台重新申请签名证书[^1] - 包名建议保持一致(如 `com.example.app`)以保持品牌一致性 2. **签名流程时序** ``` 安卓应用上线 → 鸿蒙版本开发 → 功能测试通过 → 申请鸿蒙正式签名 → 打包上架 ``` --- ### 具体操作步骤 1. **华为开发者账号准备** - 使用安卓应用相同的开发者账号登录[华为开发者联盟](https://developer.harmonyos.com/) - 在「我的项目」中创建新鸿蒙应用,**填入与安卓一致的APP名称和包名** 2. **签名证书申请** - 进入「证书管理」→「发布证书」 - 生成鸿蒙专用签名文件: - `.p12` 证书文件(私钥) - `.p7b` Profile文件(设备授权) - `.cer` CA证书 - 证书有效期默认3年,需确保覆盖应用生命周期 3. **开发环境配置** 在DevEco Studio的 `build.gradle` 配置正式签名: ```groovy harmonySigning { signAlg = "SHA256withECDSA" scheme = "Release" // 必须标记为发布模式 storeFile = file("your_release_cert.p12") keyAlias = "your_alias" keyPassword = "******" storePassword = "******" certPath = file("your_cer.cer") profile = file("your_profile.p7b") } ``` 4. **上架关联处理** - 在华为应用市场后台,将鸿蒙版本关联到现有安卓应用条目 - 用户下载时系统自动识别设备类型: - 安卓设备:安装APK - 鸿蒙设备:安装拆分后的HAP包[^2] --- ### 关键注意事项 - **签名时效性** 鸿蒙Profile文件包含设备授权列表,若安卓应用已上线多年,需检查证书有效期(通常1-3年),避免上架时过期[^1]。 - **跨端跳转签名验证** 若需实现安卓→鸿蒙的应用跳转(通过Deep Linking),双方应用需在`config.json`声明相同的uri scheme,但**签名无需关联**: ```json "abilities": [{ "skills": [{ "actions": ["ohos.want.action.viewData"], "uris": [{ "scheme": "myapp", "host": "detail" }] }] }] ``` - **企业应用特殊处理** 企业内部分发的应用需申请企业证书,但仍需单独生成鸿蒙签名,不可复用安卓企业证书。 --- ### 签名冲突解决方案 | 问题场景 | 解决方案 | |---------------------------|------------------------------| | 包名被其他鸿蒙应用占用 | 联系华为运营释放包名资源 | | 调试证书与发布证书冲突 | 删除`build`目录后重新构建 | | 多模块签名不一致 | 使用`agconnect-services.json`统一配置 | > ️ **重要提醒**:鸿蒙应用上架审核时会验证签名证书与开发者账号的绑定关系,需确保申请签名的账号与安卓应用开发者账号一致。 ``` 流程示意: [安卓应用] → (同账号/同包名) ↓ [华为开发者平台] → [申请鸿蒙签名] → [打包.hap] → [关联市场条目] ↑ [鸿蒙应用开发] ``` --- ### 相关问题 1. 鸿蒙与安卓应用共用同一华为开发者账号有何优势? 2. 如何迁移已过期的鸿蒙签名证书到新设备? 3. 鸿蒙应用签名与OpenHarmony开源项目签名有何区别? 4. 跨平台应用(安卓/iOS/鸿蒙)如何统一管理签名证书? [^1]: 签名证书关联应用包名和设备授权,是应用商店上架强制要求[^1]。 [^2]: 用户下载APP Pack后市场自动拆分签名安装,确保安全隔离[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值