android转web前端那些事
一转眼的功夫,新公司入职1年零3个月了,也算是成功从一个android原生开发转行到web前端开发了.一些小小感触:
对于开发而言,转语言并没有想象中难.
刚来的时候一度以为是HR给我分错了部门,说好的车联网呢,android车机呢,怎么变成做web页面了?

仅有的一个app还是用那个啥uniapp开发的,不就h5套壳应用么,这种上古hybrid方案我又不是没做过,还是自己开发的壳子.
给招聘的HR打电话了解了下,原来是他搞错了.这就比较尴尬了.
试用期转部门似乎也不太好,那就先从uniapp入手吧.
配环境,拉代码,再花晚上的加班时间看了总共2小时左右的教学视频,差不多就入手改bug了,真棒.
改了几天bug,就开始写新需求,copy一个页面,用改bug的思路去做,居然也做得有模有样.
程序员两大法宝:ctrl+c和ctrl+v,诚不欺我.
没过多久,遇到web前端的一个紧急需求,拉我去支持一下.也是硬着头皮上了,依旧是copy再改这个套路,边改边学.
作为新手,能做的只是尽量把注释都写完整.
说实在的,这种边学边做的模式,带来的是超高的学习效率.
跟前同事调侃:一年的时间就让我看起来像3年的开发经验~~~
原因是什么呢,我细想了下:
- 已经有过一门语言的经验在前,现在学习,会丢掉80%的语言相通部分,关注剩下的差异性部分,无形中起点高了很多很多.
- web前端和原生前端,在渲染这一块,殊途同归,都是基于mvvm和事件驱动,在性能优化和疑难问题上,有着意料之中的精准直觉.
全栈有存在的合理性,但不可为了全栈而全栈.
一向觉得全栈是垃圾的我,如今也算是开启了第二技术栈.
对全栈的观点算是发生了一点点的变化吧:
- 从技术角度,可以为了开辟新视角,便于领悟一些原本就殊途同归的东西而全栈,
- 从管理角度,可以为了扩大管理范围,防止外行知道内行而全栈,但万万不可以为了多做点业务需求而全栈.
还是那句话:人的经历是有限的,各方面都精通的人并不存在.
你可以多学几个技能,但是每个技能都想拿来吃饭,那我只能呵呵了.
有些所谓的”全栈”工程师,前端后端都能做,然而其在各端对应的”不全栈人士”看来,都是”小学生级别代码”…当然我并不是对这种工程师有意见,只是觉得:挺适合小公司的.
在大前端框架领域,web确实比原生优秀很多,但原因是关注点的区别.
最直接的感受:
做android的时候,对mvvm也只是有所了解.但并没有在项目中实施.结果到了web,发现已经是标配了.模板语言在这里发挥得淋漓尽致,比起android开启了databingding的xml都强了无数倍.
web前端开发效率高不是没有道理的.
原因也和关注点有关:
web前端更关注界面上的显示效果,开发人员的开发速度.
原生前端更关注界面的响应速度,软件的功能和稳定性.
- 由于对宿主资源使用能力比不上网页,因此android需要考虑性能优化.
- 由于采取安装包形式,因此android诞生了各种热更新,插件化的黑科技.
- 由于需要对接硬件,android要关注比web多得多的api.
举个例子:
网络库向来是原生开发中很重要的一个基础库.请求参数封装,线程池,连接和读写优化,响应解析,这些都是需要考虑的内容.
在web中呢?集成了常用了axios之后,基本上就做一下返回数据异常的处理就够了.
- 线程池?浏览器已经给你定死了并发量.
- 数据解析?js中可以直接处理json.
- 读写优化?你都接触不到byte那一层.
当然这并不是说web前端没有技术含量,技术含量在开发框架(比如vue这种)和打包阶段.但是前者基本也没有二次开发的必要,后者大多数业务都用不上.
toB的业务相对toC,技术水平差不少.
这是最值得吐槽的地方.
之前的所有工作都是做toC的软件.用户量大,暴露的技术问题也多,产品也有专门的团队,有自己的想法.整个项目的节奏把握得也很好.
嗯,很美好,这才是互联网软件开发应该有的样子.
自从做了toC,一切都变了:
- 用户量:日活100是常态.在这样的基数下,线上指标监控已经没什么意义了.
- 产品:都是用客户说了算.只要能让客户使用,客户提啥要求就做啥.
- 项目进度:还是客户说了算.
- 交互和UI:永远都是最低优先级,无关功能的东西,根本没有人在乎.
toB的软件,在前端侧,用户量已经和技术毫无关系了.
这带来一个很严重的问题:
长期做toB业务的,技能水平几乎毫无进步.
做为当下前端团队的Leader,这是必须要考虑的问题.暂时有了一些方向,不过这个话题就扯远了,日后再写吧.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!